// This file was auto-generated from NVIDIA official Maxwell definitions. namespace Ryujinx.Graphics.Gpu.Engine.Dma { /// /// Physical mode target. /// enum SetPhysModeTarget { LocalFb = 0, CoherentSysmem = 1, NoncoherentSysmem = 2, } /// /// DMA data transfer type. /// enum LaunchDmaDataTransferType { None = 0, Pipelined = 1, NonPipelined = 2, } /// /// DMA semaphore type. /// enum LaunchDmaSemaphoreType { None = 0, ReleaseOneWordSemaphore = 1, ReleaseFourWordSemaphore = 2, } /// /// DMA interrupt type. /// enum LaunchDmaInterruptType { None = 0, Blocking = 1, NonBlocking = 2, } /// /// DMA destination memory layout. /// enum LaunchDmaMemoryLayout { Blocklinear = 0, Pitch = 1, } /// /// DMA type. /// enum LaunchDmaType { Virtual = 0, Physical = 1, } /// /// DMA semaphore reduction operation. /// enum LaunchDmaSemaphoreReduction { Imin = 0, Imax = 1, Ixor = 2, Iand = 3, Ior = 4, Iadd = 5, Inc = 6, Dec = 7, Fadd = 10, } /// /// DMA semaphore reduction signedness. /// enum LaunchDmaSemaphoreReductionSign { Signed = 0, Unsigned = 1, } /// /// DMA L2 cache bypass. /// enum LaunchDmaBypassL2 { UsePteSetting = 0, ForceVolatile = 1, } /// /// DMA component remapping source component. /// enum SetRemapComponentsDst { SrcX = 0, SrcY = 1, SrcZ = 2, SrcW = 3, ConstA = 4, ConstB = 5, NoWrite = 6, } /// /// DMA component remapping component size. /// enum SetRemapComponentsComponentSize { One = 0, Two = 1, Three = 2, Four = 3, } /// /// DMA component remapping number of components. /// enum SetRemapComponentsNumComponents { One = 0, Two = 1, Three = 2, Four = 3, } /// /// Width in GOBs of the destination texture. /// enum SetBlockSizeWidth { QuarterGob = 14, OneGob = 0, } /// /// Height in GOBs of the destination texture. /// enum SetBlockSizeHeight { OneGob = 0, TwoGobs = 1, FourGobs = 2, EightGobs = 3, SixteenGobs = 4, ThirtytwoGobs = 5, } /// /// Depth in GOBs of the destination texture. /// enum SetBlockSizeDepth { OneGob = 0, TwoGobs = 1, FourGobs = 2, EightGobs = 3, SixteenGobs = 4, ThirtytwoGobs = 5, } /// /// Height of a single GOB in lines. /// enum SetBlockSizeGobHeight { GobHeightTesla4 = 0, GobHeightFermi8 = 1, } /// /// DMA copy class state. /// unsafe struct DmaClassState { #pragma warning disable CS0649 public fixed uint Reserved00[64]; public uint Nop; public fixed uint Reserved104[15]; public uint PmTrigger; public fixed uint Reserved144[63]; public uint SetSemaphoreA; public int SetSemaphoreAUpper => (int)(SetSemaphoreA & 0xFF); public uint SetSemaphoreB; public uint SetSemaphorePayload; public fixed uint Reserved24C[2]; public uint SetRenderEnableA; public int SetRenderEnableAUpper => (int)(SetRenderEnableA & 0xFF); public uint SetRenderEnableB; public uint SetRenderEnableC; public int SetRenderEnableCMode => (int)(SetRenderEnableC & 0x7); public uint SetSrcPhysMode; public SetPhysModeTarget SetSrcPhysModeTarget => (SetPhysModeTarget)(SetSrcPhysMode & 0x3); public uint SetDstPhysMode; public SetPhysModeTarget SetDstPhysModeTarget => (SetPhysModeTarget)(SetDstPhysMode & 0x3); public fixed uint Reserved268[38]; public uint LaunchDma; public LaunchDmaDataTransferType LaunchDmaDataTransferType => (LaunchDmaDataTransferType)(LaunchDma & 0x3); public bool LaunchDmaFlushEnable => (LaunchDma & 0x4) != 0; public LaunchDmaSemaphoreType LaunchDmaSemaphoreType => (LaunchDmaSemaphoreType)((LaunchDma >> 3) & 0x3); public LaunchDmaInterruptType LaunchDmaInterruptType => (LaunchDmaInterruptType)((LaunchDma >> 5) & 0x3); public LaunchDmaMemoryLayout LaunchDmaSrcMemoryLayout => (LaunchDmaMemoryLayout)((LaunchDma >> 7) & 0x1); public LaunchDmaMemoryLayout LaunchDmaDstMemoryLayout => (LaunchDmaMemoryLayout)((LaunchDma >> 8) & 0x1); public bool LaunchDmaMultiLineEnable => (LaunchDma & 0x200) != 0; public bool LaunchDmaRemapEnable => (LaunchDma & 0x400) != 0; public bool LaunchDmaForceRmwdisable => (LaunchDma & 0x800) != 0; public LaunchDmaType LaunchDmaSrcType => (LaunchDmaType)((LaunchDma >> 12) & 0x1); public LaunchDmaType LaunchDmaDstType => (LaunchDmaType)((LaunchDma >> 13) & 0x1); public LaunchDmaSemaphoreReduction LaunchDmaSemaphoreReduction => (LaunchDmaSemaphoreReduction)((LaunchDma >> 14) & 0xF); public LaunchDmaSemaphoreReductionSign LaunchDmaSemaphoreReductionSign => (LaunchDmaSemaphoreReductionSign)((LaunchDma >> 18) & 0x1); public bool LaunchDmaSemaphoreReductionEnable => (LaunchDma & 0x80000) != 0; public LaunchDmaBypassL2 LaunchDmaBypassL2 => (LaunchDmaBypassL2)((LaunchDma >> 20) & 0x1); public fixed uint Reserved304[63]; public uint OffsetInUpper; public int OffsetInUpperUpper => (int)(OffsetInUpper & 0xFF); public uint OffsetInLower; public uint OffsetOutUpper; public int OffsetOutUpperUpper => (int)(OffsetOutUpper & 0xFF); public uint OffsetOutLower; public uint PitchIn; public uint PitchOut; public uint LineLengthIn; public uint LineCount; public fixed uint Reserved420[184]; public uint SetRemapConstA; public uint SetRemapConstB; public uint SetRemapComponents; public SetRemapComponentsDst SetRemapComponentsDstX => (SetRemapComponentsDst)(SetRemapComponents & 0x7); public SetRemapComponentsDst SetRemapComponentsDstY => (SetRemapComponentsDst)((SetRemapComponents >> 4) & 0x7); public SetRemapComponentsDst SetRemapComponentsDstZ => (SetRemapComponentsDst)((SetRemapComponents >> 8) & 0x7); public SetRemapComponentsDst SetRemapComponentsDstW => (SetRemapComponentsDst)((SetRemapComponents >> 12) & 0x7); public SetRemapComponentsComponentSize SetRemapComponentsComponentSize => (SetRemapComponentsComponentSize)((SetRemapComponents >> 16) & 0x3); public SetRemapComponentsNumComponents SetRemapComponentsNumSrcComponents => (SetRemapComponentsNumComponents)((SetRemapComponents >> 20) & 0x3); public SetRemapComponentsNumComponents SetRemapComponentsNumDstComponents => (SetRemapComponentsNumComponents)((SetRemapComponents >> 24) & 0x3); public uint SetDstBlockSize; public SetBlockSizeWidth SetDstBlockSizeWidth => (SetBlockSizeWidth)(SetDstBlockSize & 0xF); public SetBlockSizeHeight SetDstBlockSizeHeight => (SetBlockSizeHeight)((SetDstBlockSize >> 4) & 0xF); public SetBlockSizeDepth SetDstBlockSizeDepth => (SetBlockSizeDepth)((SetDstBlockSize >> 8) & 0xF); public SetBlockSizeGobHeight SetDstBlockSizeGobHeight => (SetBlockSizeGobHeight)((SetDstBlockSize >> 12) & 0xF); public uint SetDstWidth; public uint SetDstHeight; public uint SetDstDepth; public uint SetDstLayer; public uint SetDstOrigin; public int SetDstOriginX => (int)(SetDstOrigin & 0xFFFF); public int SetDstOriginY => (int)((SetDstOrigin >> 16) & 0xFFFF); public uint Reserved724; public uint SetSrcBlockSize; public SetBlockSizeWidth SetSrcBlockSizeWidth => (SetBlockSizeWidth)(SetSrcBlockSize & 0xF); public SetBlockSizeHeight SetSrcBlockSizeHeight => (SetBlockSizeHeight)((SetSrcBlockSize >> 4) & 0xF); public SetBlockSizeDepth SetSrcBlockSizeDepth => (SetBlockSizeDepth)((SetSrcBlockSize >> 8) & 0xF); public SetBlockSizeGobHeight SetSrcBlockSizeGobHeight => (SetBlockSizeGobHeight)((SetSrcBlockSize >> 12) & 0xF); public uint SetSrcWidth; public uint SetSrcHeight; public uint SetSrcDepth; public uint SetSrcLayer; public uint SetSrcOrigin; public int SetSrcOriginX => (int)(SetSrcOrigin & 0xFFFF); public int SetSrcOriginY => (int)((SetSrcOrigin >> 16) & 0xFFFF); public fixed uint Reserved740[629]; public uint PmTriggerEnd; public fixed uint Reserved1118[2490]; #pragma warning restore CS0649 } }