/// <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) } }); }
/// <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); }
/// <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); }