Ejemplo n.º 1
0
 /// <summary>
 /// Creates a new instance of the DMA copy engine class.
 /// </summary>
 /// <param name="context">GPU context</param>
 /// <param name="channel">GPU channel</param>
 /// <param name="threedEngine">3D engine</param>
 public DmaClass(GpuContext context, GpuChannel channel, ThreedClass threedEngine)
 {
     _context  = context;
     _channel  = channel;
     _3dEngine = threedEngine;
     _state    = new DeviceState <DmaClassState>(new Dictionary <string, RwCallback>
     {
         { nameof(DmaClassState.LaunchDma), new RwCallback(LaunchDma, null) }
     });
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a new instance of the GPU General Purpose FIFO command processor.
        /// </summary>
        /// <param name="context">GPU context</param>
        /// <param name="channel">Channel that the GPFIFO processor belongs to</param>
        public GPFifoProcessor(GpuContext context, GpuChannel channel)
        {
            _channel = channel;

            _fifoClass    = new GPFifoClass(context, this);
            _3dClass      = new ThreedClass(context, channel, _fifoClass);
            _computeClass = new ComputeClass(context, channel, _3dClass);
            _i2mClass     = new InlineToMemoryClass(context, channel);
            _2dClass      = new TwodClass(channel);
            _dmaClass     = new DmaClass(context, channel, _3dClass);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a new instance of the compute engine class.
        /// </summary>
        /// <param name="context">GPU context</param>
        /// <param name="channel">GPU channel</param>
        /// <param name="threedEngine">3D engine</param>
        public ComputeClass(GpuContext context, GpuChannel channel, ThreedClass threedEngine)
        {
            _context  = context;
            _channel  = channel;
            _3dEngine = threedEngine;
            _state    = new DeviceState <ComputeClassState>(new Dictionary <string, RwCallback>
            {
                { nameof(ComputeClassState.LaunchDma), new RwCallback(LaunchDma, null) },
                { nameof(ComputeClassState.LoadInlineData), new RwCallback(LoadInlineData, null) },
                { nameof(ComputeClassState.SendSignalingPcasB), new RwCallback(SendSignalingPcasB, null) }
            });

            _i2mClass = new InlineToMemoryClass(context, channel, initializeState: false);
        }