Difference between revisions of "GPU Classes"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Add info from source code found in linux drivers)
(Official name)
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
Subchannels:
 
 
{| class=wikitable
 
{| class=wikitable
 
! Id || Subchannel (nvn) || Name
 
! Id || Subchannel (nvn) || Name
 
|-
 
|-
| 0xB197 || 0 || 3D
+
| 0xB197 || 0 || [[#MAXWELL_B|MAXWELL_B]]
 
|-
 
|-
| 0xB1C0 || 1 || Compute
+
| 0xB1C0 || 1 || [[#MAXWELL_COMPUTE_B|MAXWELL_COMPUTE_B]]
 
|-
 
|-
| 0xA140 || 2 || Inline-to-Memory
+
| 0xA140 || 2 || [[#KEPLER_INLINE_TO_MEMORY_B|KEPLER_INLINE_TO_MEMORY_B]]
 
|-
 
|-
| 0x902D || 3 || 2D
+
| 0x902D || 3 || [[#FERMI_TWOD_A|FERMI_TWOD_A]]
 
|-
 
|-
| 0xB0B5 || 4 || DMA
+
| 0xB0B5 || 4 || [[#MAXWELL_DMA_COPY_A|MAXWELL_DMA_COPY_A]]
 +
|-
 +
| 0xB06F || - || [[#MAXWELL_CHANNEL_GPFIFO_A|MAXWELL_CHANNEL_GPFIFO_A]]
 
|}
 
|}
  
= 3D =
+
= MAXWELL_B =
 
{| class=wikitable
 
{| class=wikitable
 
! Register || Name || Size || Type || Notes
 
! Register || Name || Size || Type || Notes
 
|-
 
|-
| 0 || SetObject || 1 || bitfield || Bit0-15: ClassId, bit16-20: EngineId
+
| 0x0 || SetObject || 1 || bitfield || Bit0-15: ClassId, bit16-20: EngineId
 
|- style="border-top: double"
 
|- style="border-top: double"
 
| 0x40 || NoOperation || 1 || ||
 
| 0x40 || NoOperation || 1 || ||
Line 39: Line 40:
 
|-
 
|-
 
| 0x49 || SetMmeShadowRamControl || 1 || uint || 0=MethodTrack, 1=MethodTrackWithFilter, 2=MethodPassthrough, 3=MethodReplay. Used during ClearColor.
 
| 0x49 || SetMmeShadowRamControl || 1 || uint || 0=MethodTrack, 1=MethodTrackWithFilter, 2=MethodPassthrough, 3=MethodReplay. Used during ClearColor.
 +
|-
 +
| 0x4A || PeerSemaphoreReleaseOffsetUpper || 1 || ||
 +
|-
 +
| 0x4B || PeerSemaphoreReleaseOffset || 1 || ||
 +
|-
 +
| 0x4C || SetGlobalRenderEnableA || 1 || ||
 +
|-
 +
| 0x4D || SetGlobalRenderEnableB || 1 || ||
 +
|-
 +
| 0x4E || SetGlobalRenderEnableC || 1 || ||
 +
|-
 +
| 0x4F || SendGoIdle || 1 || ||
 +
|-
 +
| 0x50 || PmTrigger || 1 || ||
 +
|-
 +
| 0x51 || PmTriggerWfi || 1 || ||
 +
|- style="border-top: double"
 +
| 0x54 || SetInstrumentationMethodHeader || 1 || ||
 +
|-
 +
| 0x55 || SetInstrumentationMethodData || 1 || ||
 +
|- style="border-top: double"
 +
| 0x60 || LineLengthIn || 1 || ||
 +
|-
 +
| 0x61 || LineCount || 1 || ||
 +
|-
 +
| 0x62 || OffsetOutUpper || 1 || ||
 +
|-
 +
| 0x63 || OffsetOut || 1 || ||
 +
|-
 +
| 0x64 || PitchOut || 1 || ||
 +
|-
 +
| 0x65 || SetDstBlockSize || 1 || ||
 +
|-
 +
| 0x66 || SetDstWidth || 1 || ||
 +
|-
 +
| 0x67 || SetDstHeight || 1 || ||
 +
|-
 +
| 0x68 || SetDstDepth || 1 || ||
 +
|-
 +
| 0x69 || SetDstLayer || 1 || ||
 +
|-
 +
| 0x6A || SetDstOriginBytesX || 1 || ||
 +
|-
 +
| 0x6B || SetDstOriginSamplesY || 1 || ||
 +
|-
 +
| 0x6C || LaunchDma || 1 || ||
 +
|-
 +
| 0x6D || LoadInlineData || 1 || ||
 +
|- style="border-top: double"
 +
| 0x77 || SetI2mSemaphoreA || 1 || ||
 +
|-
 +
| 0x78 || SetI2mSemaphoreB || 1 || ||
 +
|-
 +
| 0x79 || SetI2mSemaphoreC || 1 || ||
 +
|- style="border-top: double"
 +
| 0x7C || SetI2mSpareNoop00 || 1 || ||
 +
|-
 +
| 0x7D || SetI2mSpareNoop01 || 1 || ||
 +
|-
 +
| 0x7E || SetI2mSpareNoop02 || 1 || ||
 +
|-
 +
| 0x7F || SetI2mSpareNoop03 || 1 || ||
 +
|-
 +
| 0x80 || RunDsNow || 1 || ||
 +
|-
 +
| 0x81 || SetOpportunisticEarlyZHysteresis || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x83 || LineWidthSeparate || 1 || bool ||
+
| 0x83 || SetAliasedLineWidthEnable || 1 || bool ||
 +
|-
 +
| 0x84 || SetApiMandatedEarlyZ || 1 || bool ||
 +
|-
 +
| 0x85 || SetGsDmFifo || 1 || ||
 +
|-
 +
| 0x86 || SetL2CacheControlForRopPrefetchReadRequests || 1 || ||
 
|-
 
|-
| 0x84 || ForceEarlyFragmentTests || 1 || bool ||
+
| 0x87 || InvalidateShaderCaches || 1 || bitfield ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x87 || Barrier || 1 || bitfield ||
+
| 0xB0 || || 1 || ||
 +
|- style="border-top: double"
 +
| 0xB2 || IncrementSyncPoint || 1 || ||
 +
|- style="border-top: double"
 +
| 0xB4 || SetPrimCircularBufferThrottle || 1 || ||
 +
|-
 +
| 0xB5 || FlushAndInvalidateRopMiniCache || 1 || ||
 +
|-
 +
| 0xB6 || SetSurfaceClipIdBlockSize || 1 || ||
 +
|-
 +
| 0xB7 || SetAlphaCircularBufferSize || 1 || ||
 +
|-
 +
| 0xB8 || DecompressSurface || 1 || ||
 +
|-
 +
| 0xB9 || SetZcullRopBypass || 1 || ||
 +
|-
 +
| 0xBA || SetZcullSubregion || 1 || || SetRenderTargets writes 1/0 here an optional buffer != NULL, and depending on type.
 +
|-
 +
| 0xBB || SetRasterBoundingBox || 1 || ||
 +
|-
 +
| 0xBC || PeerSemaphoreRelease || 1 || ||
 +
|-
 +
| 0xBD || SetIteratedBlendOptimization || 1 || ||
 +
|-
 +
| 0xBE || SetZcullSubregionAllocation || 1 || pipe || SetRenderTargets writes here repeatedly 16 times, if an optional buffer != NULL and is a given type.
 +
|-
 +
| 0xBF || AssignZcullSubregions || 1 || bool || SetRenderTargets writes 1 here after 0xBE has been written 16 times, and 0xDC been written.
 +
|-
 +
| 0xC0 || SetPsOutputSampleMaskUsage || 1 || ||
 +
|-
 +
| 0xC1 || DrawZeroIndex || 1 || ||
 +
|-
 +
| 0xC2 || SetL1Configuration || 1 || enum ||
 +
|-
 +
| 0xC3 || SetRenderEnableControl || 1 || ||
 +
|-
 +
| 0xC4 || SetSpaVersion || 1 || ||
 +
|-
 +
| 0xC5 || SetIeeeCleanUpdate || 1 || ||
 +
|-
 +
| 0xC6 || SetSnapGridLine || 1 || ||
 +
|-
 +
| 0xC7 || SetSnapGridNonLine || 1 || ||
 +
|-
 +
| 0xC8 || SetTessellationParameters || 1 || bitfield || Bit0-1: DomainType (0=Isoline, 1=Triangle, 2=Quad), bit4-5: Spacing (0=Integer, 1=FractionalOdd, 2=FractionalEven), bit8-9: OutputPrimitives (0=Points, 1=Lines, 2=TrianglesCw, 3=TrianglesCcw)
 +
|-
 +
| 0xC9 || SetTessellationLodU0OrDensity || 1 || float ||
 +
|-
 +
| 0xCA || SetTessellationLodV0OrDetail || 1 || float ||
 +
|-
 +
| 0xCB || SetTessellationLodU1OrW0 || 1 || float ||
 +
|-
 +
| 0xCC || SetTessellationLodV1 || 1 || float ||
 +
|-
 +
| 0xCD || SetTgLodInteriorU || 1 || float ||
 +
|-
 +
| 0xCE || SetTgLodInteriorV || 1 || float ||
 +
|-
 +
| 0xCF || ReservedTg07 || 1 || ||
 +
|-
 +
| 0xD0 || ReservedTg08 || 1 || ||
 +
|-
 +
| 0xD1 || ReservedTg09 || 1 || ||
 +
|-
 +
| 0xD2 || ReservedTg10 || 1 || ||
 +
|-
 +
| 0xD3 || ReservedTg11 || 1 || ||
 +
|-
 +
| 0xD4 || ReservedTg12 || 1 || ||
 +
|-
 +
| 0xD5 || ReservedTg13 || 1 || ||
 +
|-
 +
| 0xD6 || ReservedTg14 || 1 || ||
 +
|-
 +
| 0xD7 || ReservedTg15 || 1 || ||
 +
|-
 +
| 0xD8 || SetSubtilingPerfKnobA || 1 || ||
 +
|-
 +
| 0xD9 || SetSubtilingPerfKnobB || 1 || ||
 +
|-
 +
| 0xDA || SetSubtilingPerfKnobC || 1 || ||
 +
|-
 +
| 0xDB || SetZcullSubregionToReport || 1 || ||
 +
|-
 +
| 0xDC || SetZcullSubregionReportType || 1 || bool || SetRenderTargets writes 1 here, if an optional buffer != NULL and is a given type.
 +
|-
 +
| 0xDD || SetBalancedPrimitiveWorkload || 1 || ||
 +
|-
 +
| 0xDE || SetMaxPatchesPerBatch || 1 || ||
 +
|-
 +
| 0xDF || SetRasterEnable || 1 || bool ||
 +
|-
 +
| 0xE0+8*N || SetStreamOutBufferEnable || 1 || bool || n=0..3
 +
|-
 +
| 0xE1+8*N || SetStreamOutBufferAddressA || 1 || ||
 +
|-
 +
| 0xE2+8*N || SetStreamOutBufferAddressB || 1 || ||
 +
|-
 +
| 0xE3+8*N || SetStreamOutBufferSize || 1 || ||
 +
|-
 +
| 0xE4+8*N || SetStreamOutBufferLoadWritePointer || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xBA || || 1 || || SetRenderTargets writes 1/0 here an optional buffer != NULL, and depending on type.
+
| 0x1C0+4*N || SetStreamOutControlStream || 1 || bitfield ||
 +
|-
 +
| 0x1C1+4*N || SetStreamOutControlComponentCount || 1 || uint ||
 +
|-
 +
| 0x1C2+4*N || SetStreamOutControlStride || 1 || uint ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xBE || || 1 || pipe || SetRenderTargets writes here repeatedly 16 times, if an optional buffer != NULL and is a given type.
+
| 0x1D0 || SetRasterInput || 1 || ||
 +
|-
 +
| 0x1D1 || SetStreamOutput || 1 || bool ||
 +
|-
 +
| 0x1D2 || SetDaPrimitiveRestartTopologyChange || 1 || ||
 +
|-
 +
| 0x1D3 || SetAlphaFraction || 1 || || GpuInit writes 0x3f here.
 
|-
 
|-
| 0xBF || || 1 || bool || SetRenderTargets writes 1 here after 0xBE has been written 16 times, and 0xDC been written.
+
| 0x1D4 || || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xC2 || CacheSplit || 1 || enum ||
+
| 0x1D5 || SetHybridAntiAliasControl || 1 || bitfield || Bit0-3: ?, bit4: Enable
 +
|-
 +
| 0x1D6 || || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xC8 || TesselationMode || 1 || bitfield || Bit0-1: PrimitiveType (0=Isolines, 1=Triangles, 2=Quads), bit4-5: Spacing (0=Equal, 1=FractionalOdd, 2=FractionalEven), bit8-9: WindingAndConnectednessFlags (0=CcwAndNotConnected, 1=IsolineConnected, 1=TriangleCw, 2=TriangleConnected, 3=TriangleConnectedCw)
+
| 0x1D8 || || 1 || ||
 +
|-
 +
| 0x1D9 || || 1 || ||
 +
|-
 +
| 0x1DA || || 1 || ||
 +
|-
 +
| 0x1DB || || 1 || ||
 +
|-
 +
| 0x1DC || || 1 || ||
 +
|-
 +
| 0x1DD || || 1 || ||
 +
|-
 +
| 0x1DE || || 1 || ||
 +
|-
 +
| 0x1DF || SetShaderLocalMemoryWindow || 1 || uint ||
 +
|-
 +
| 0x1E0 || || 1 || ||
 +
|-
 +
| 0x1E1 || || 1 || ||
 +
|-
 +
| 0x1E2 || || 1 || ||
 +
|-
 +
| 0x1E3 || || 1 || ||
 +
|-
 +
| 0x1E4 || SetShaderLocalMemoryA || 1 || ||
 +
|-
 +
| 0x1E5 || SetShaderLocalMemoryB || 1 || ||
 +
|-
 +
| 0x1E6 || SetShaderLocalMemoryC || 1 || ||
 +
|-
 +
| 0x1E7 || SetShaderLocalMemoryD || 1 || ||
 +
|-
 +
| 0x1E8 || SetShaderLocalMemoryE || 1 || ||
 +
|-
 +
| 0x1E9 || SetColorZeroBandwidthClear || 1 || ||
 +
|-
 +
| 0x1EA || SetZZeroBandwidthClear || 1 || ||
 
|-
 
|-
| 0xC9 || TesselationOuterLevels || 4 || float[4] ||
+
| 0x1EB || SetIsbeSaveRestoreProgram || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xCD || TesselationInnerLevels || 2 || float[2] ||
+
| 0x1F0 || SetZcullRegionSizeA || 1 || || SetRenderTargets optionally uses this.
 +
|-
 +
| 0x1F1 || SetZcullRegionSizeB || 1 || || SetRenderTargets optionally uses this.
 +
|-
 +
| 0x1F2 || SetZcullRegionSizeC || 1 || || SetRenderTargets optionally uses this.
 +
|-
 +
| 0x1F3 || SetZcullRegionPixelOffsetC || 1 || || SetRenderTargets optionally writes 0 here.
 +
|-
 +
| 0x1F4 || || 1 || ||
 +
|-
 +
| 0x1F5 || || 1 || ||
 +
|-
 +
| 0x1F6 || || 1 || ||
 +
|-
 +
| 0x1F7 || SetCullBeforeFetch || 1 || ||
 +
|-
 +
| 0x1F8 || SetZcullRegionLocation || 1 || || SetRenderTargets optionally uses this.
 +
|-
 +
| 0x1F9 || SetZcullRegionAliquots || 1 || || SetRenderTargets optionally uses this.
 +
|-
 +
| 0x1FA || SetZcullStorageA || 1 || gpuva ||
 +
|-
 +
| 0x1FB || SetZcullStorageB || 1 || gpuva ||
 +
|-
 +
| 0x1FC || SetZcullStorageC || 1 || gpuva ||
 +
|-
 +
| 0x1FD || SetZcullStorageD || 1 || gpuva ||
 +
|-
 +
| 0x1FE || SetZtReadOnly || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xDC || || 1 || bool || SetRenderTargets writes 1 here, if an optional buffer != NULL and is a given type.
+
| 0x200+16*N || SetColorTargetA || 1 || gpuva ||
 +
|-
 +
| 0x201+16*N || SetColorTargetB || 1 || gpuva ||
 +
|-
 +
| 0x202+16*N || SetColorTargetWidth || 1 || ||
 +
|-
 +
| 0x203+16*N || SetColorTargetHeight || 1 || ||
 +
|-
 +
| 0x204+16*N || SetColorTargetFormat || 1 || ||
 +
|-
 +
| 0x205+16*N || SetColorTargetMemory || 1 || bitfield || Bit0-3: Width, bit4-7: Height, bit8-10: Depth, bit12: Layout, bit16: ?
 +
|-
 +
| 0x206+16*N || SetColorTargetThirdDimension || 1 || bitfield || Bit0-15: Layers, bit16: Volume
 +
|-
 +
| 0x207+16*N || SetColorTargetArrayPitch || 1 || uint || In units of 4 bytes.
 +
|-
 +
| 0x208+16*N || SetColorTargetLayer || 1 || ||
 +
|-
 +
| 0x209+16*N || SetColorTargetMark || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xDF || RasterizerEnable || 1 || bool ||
+
| 0x280+8*N || SetViewportScaleX || 1 || float || n=0..15
 +
|-
 +
| 0x281+8*N || SetViewportScaleY || 1 || float ||
 +
|-
 +
| 0x282+8*N || SetViewportScaleZ || 1 || float ||
 +
|-
 +
| 0x283+8*N || SetViewportOffsetX || 1 || float ||
 +
|-
 +
| 0x284+8*N || SetViewportOffsetY || 1 || float ||
 +
|-
 +
| 0x285+8*N || SetViewportOffsetZ || 1 || float ||
 +
|-
 +
| 0x286+8*N || SetViewportCoordinateSwizzle || 1 || bitfield ||
 +
|-
 +
| 0x287+8*N || SetViewportIncreaseSnapGridPrecision || 1 || bitfield || Bit0-4: BiasX, bit8-bit11: BiasY
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xE0+8*N || TransformFeedbackBufferEnable || 1 || bool || n=0..3
+
| 0x300+4*N || SetViewportClipHorizontal || 1 || bitfield || Bit0-15: X, bit16-31: Width
 +
|-
 +
| 0x301+4*N || SetViewportClipVertical || 1 || bitfield || Bit0-15: Y, bit16-31: Height
 
|-
 
|-
| 0xE1+8*N || TransformFeedbackBufferAddr || 2 || gpuva ||
+
| 0x302+4*N || SetViewportClipMinZ || 1 || float ||
 
|-
 
|-
| 0xE3+8*N || TransformFeedbackBufferFlags || 1 || ||
+
| 0x303+4*N || SetViewportClipMaxZ || 1 || float ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1C0+4*N || TransformFeedbackBufferStream || 1 || bitfield ||
+
| 0x340+2*N || SetWindowClipHorizontal || 1 || || n=0..7, TODO
 
|-
 
|-
| 0x1C1+4*N || TransformFeedbackVaryingCount || 1 || uint ||
+
| 0x341+2*N || SetWindowClipVertical || 1 || || TODO
 +
|- style="border-top: double"
 +
| 0x350+2*N || SetClipIdExtentX || 1 || ||
 
|-
 
|-
| 0x1C2+4*N || TransformFeedbackStride || 1 || uint ||
+
| 0x351+2*N || SetClipIdExtentY || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1D1 || TransformFeedbackEnable || 1 || bool ||
+
| 0x358 || SetMaxStreamOutputGsInstancesPerTask || 1 || ||
 +
|-
 +
| 0x359 || SetApiVisibleCallLimit || 1 || uint || 0=FullLimit, 1...8=?, 15=Unlimited
 +
|-
 +
| 0x35A || SetStatisticsCounter || 1 || bitfield || Bit0: ?, bit1: ?, ... bit15: ?
 +
|-
 +
| 0x35B || SetClearRectHorizontal || 1 || ||
 +
|-
 +
| 0x35C || SetClearRectVertical || 1 || ||
 +
|-
 +
| 0x35D || SetVertexArrayStart || 1 || ||
 +
|-
 +
| 0x35E || DrawVertexArray || 1 || ||
 +
|-
 +
| 0x35F || SetViewportZClip || 1 || bool ||
 +
|-
 +
| 0x360+N || SetColorClearValue || 4 || float ||
 +
|-
 +
| 0x364 || SetZClearValue || 1 || float ||
 +
|-
 +
| 0x365 || SetShaderCacheControl || 1 || ||
 +
|-
 +
| 0x366 || ForceTransitionToBeta || 1 || ||
 +
|-
 +
| 0x367 || SetReduceColorThresholdsEnable || 1 || ||
 +
|-
 +
| 0x368 || SetStencilClearValue || 1 || ||
 +
|-
 +
| 0x368 || InvalidateShaderCachesNoWfi || 1 || ||
 +
|-
 +
| 0x368 || SetZcullSerialization || 1 || ||
 +
|-
 +
| 0x36B || SetFrontPolygonMode || 1 || bitfield || 0x1B00/0x1B01/0x1B02
 +
|-
 +
| 0x36C || SetBackPolygonMode || 1 || bitfield || 0x1B00/0x1B01/0x1B02
 +
|-
 +
| 0x36D || SetPolySmooth || 1 || bool ||
 +
|-
 +
| 0x36E || SetZtMark || 1 || ||
 +
|-
 +
| 0x36F || SetZcullDirFormat || 1 || bitfield || Bit0:?, bit16:?. Used by ClearDepthStencil.
 +
|-
 +
| 0x370 || SetPolyOffsetPoint || 1 || bool ||
 +
|-
 +
| 0x371 || SetPolyOffsetLine || 1 || bool ||
 +
|-
 +
| 0x372 || SetPolyOffsetFill || 1 || bool ||
 +
|-
 +
| 0x373 || SetPatch || 1 || || Small value, always fits in 12 bits. In number of vertices.
 +
|-
 +
| 0x374 || SetIteratedBlend || 1 || || 0 written here for "simple" BlendState.
 +
|-
 +
| 0x375 || SetIteratedBlendPass || 1 || ||
 +
|-
 +
| 0x376 || SetZcullCriterion || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1D3 || || 1 || || GpuInit writes 0x3f here.
+
| 0x378 || PixelShaderBarrier || 1 || ||
 +
|-
 +
| 0x379 || SetSmTimeoutInterval || 1 || ||
 +
|-
 +
| 0x37A || SetDaPrimitiveRestartVertexArray || 1 || boolean ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1D5 || SampleShading || 1 || bitfield || Bit0-3: ?, bit4: Enable
+
| 0x37C || LoadIteratedBlendInstructionPointer || 1 || ||
 +
|-
 +
| 0x37D || LoadIteratedBlendInstruction || 1 || ||
 +
|-
 +
| 0x37E || SetWindowOffsetX || 1 || int ||
 +
|-
 +
| 0x37F || SetWindowOffsetY || 1 || int ||
 +
|-
 +
| 0x380+4*N || SetScissorEnable || 1 || bool || n=0..15. GpuInit writes 1 here.
 +
|-
 +
| 0x381+4*N || SetScissorHorizontal || 1 || bitfield || Bit0-15: min, bit16-31: max
 +
|-
 +
| 0x382+4*N || SetScissorVertical || 1 || bitfield || Bit0-15: min, bit16-31: max
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1DF || LocalBase || 1 || uint || TODO
+
| 0x3C4 || SetSelectMaxwellTextureHeaders || 1 || ||
 +
|-
 +
| 0x3C5 || SetVpcPerfKnob || 1 || ||
 +
|-
 +
| 0x3C6 || PmLocalTrigger || 1 || ||
 +
|-
 +
| 0x3C7 || SetPostZPsImask || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1F0 || ZCullWidth || 1 || || SetRenderTargets optionally uses this.
+
| 0x3D0 || SetConstantColorRendering || 1 || ||
 +
|-
 +
| 0x3D1 || SetConstantColorRenderingRed || 1 || ||
 +
|-
 +
| 0x3D2 || SetConstantColorRenderingGreen || 1 || ||
 +
|-
 +
| 0x3D3 || SetConstantColorRenderingBlue || 1 || ||
 +
|-
 +
| 0x3D4 || SetConstantColorRenderingAlpha || 1 || ||
 +
|-
 +
| 0x3D5 || SetBackStencilFuncRef || 1 || ||
 +
|-
 +
| 0x3D6 || SetBackStencilMask || 1 || bool ||
 +
|-
 +
| 0x3D7 || SetBackStencilFuncMask || 1 || ||
 +
|-
 +
| 0x3D8 || SetTiledCache || 1 || bool || Trigger?
 +
|-
 +
| 0x3D9 || SetTiledCacheTileSize || 1 || bitfield || Bit0-15: ?, bit16-31: ?
 +
|-
 +
| 0x3DA || || 1 || ||
 +
|-
 +
| 0x3DB || || 1 || ||
 +
|-
 +
| 0x3DC || || 1 || ||
 +
|-
 +
| 0x3DD || || 1 || ||
 +
|-
 +
| 0x3DE || TiledCacheInvalidate || 1 || bitfield || Bit4-6: DiscardColorIndex, bit0: DiscardDepthStencil
 +
|-
 +
| 0x3DF || || 1 || ||
 +
|-
 +
| 0x3E0 || TiledCacheFlush || 1 || bool || Trigger?
 +
|-
 +
| 0x3E1 || SetVertexStreamSubstituteA || 1 || ||
 
|-
 
|-
| 0x1F1 || ZCullHeight || 1 || || SetRenderTargets optionally uses this.
+
| 0x3E2 || SetVertexStreamSubstituteB || 1 || ||
 
|-
 
|-
| 0x1F2 || || 1 || || SetRenderTargets optionally uses this.
+
| 0x3E3 || SetLineModePolygonClip || 1 || ||
 
|-
 
|-
| 0x1F3 || || 1 || || SetRenderTargets optionally writes 0 here.
+
| 0x3E4 || SetSingleCtWriteControl || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x1F8 || || 1 || || SetRenderTargets optionally uses this.
+
| 0x3E6 || SetVtgWarpWatermarks || 1 || ||
 +
|-
 +
| 0x3E7 || SetDepthBoundsMin || 1 || float ||
 +
|-
 +
| 0x3E8 || SetDepthBoundsMax || 1 || float ||
 +
|-
 +
| 0x3E9 || SetSampleMask || 1 || ||
 +
|-
 +
| 0x3EA || SetColorTargetSampleMask || 1 || ||
 +
|-
 +
| 0x3EB || SetCtMrtEnable || 1 || ||
 +
|-
 +
| 0x3EC || SetNonmultisampledZ || 1 || ||
 +
|-
 +
| 0x3ED || SetTir || 1 || bool || Also written 0 when clearing all colors.
 +
|-
 +
| 0x3EE || SetAntiAliasRaster || 1 || bitfield || 2=Four, 4=Eight, 5=?, 6=Sixteen
 +
|-
 +
| 0x3EF || SetSampleMaskX0Y0 || 1 || ||
 +
|-
 +
| 0x3F0 || SetSampleMaskX1Y0 || 1 || ||
 +
|-
 +
| 0x3F1 || SetSampleMaskX0Y1 || 1 || ||
 +
|-
 +
| 0x3F2 || SetSampleMaskX1Y1 || 1 || ||
 +
|-
 +
| 0x3F3 || SetSurfaceClipIdMemoryA || 1 || ||
 +
|-
 +
| 0x3F4 || SetSurfaceClipIdMemoryB || 1 || ||
 +
|-
 +
| 0x3F5 || SetTirModulation || 1 || ||
 +
|-
 +
| 0x3F6 || SetTirModulationFunction || 1 || ||
 +
|-
 +
| 0x3F7 || SetBlendOptControl || 1 || ||
 +
|-
 +
| 0x3F8 || SetZtA || 1 || gpuva || SetRenderTargets writes the address of an optional buffer here.
 +
|-
 +
| 0x3F9 || SetZtB || 1 || gpuva || SetRenderTargets writes the address of an optional buffer here.
 +
|-
 +
| 0x3FA || SetZtFormat || 1 ||  || SetRenderTargets writes here optionally.
 +
|-
 +
| 0x3FB || SetZtBlockSize || 1 ||  || SetRenderTargets writes here optionally.
 +
|-
 +
| 0x3FC || SetZtArrayPitch || 1 ||  || SetRenderTargets writes here optionally.
 +
|-
 +
| 0x3FD || SetSurfaceClipHorizontal || 1 || || SetRenderTargets writes here
 +
|-
 +
| 0x3FE || SetSurfaceClipVertical || 1 || ||
 +
|-
 +
| 0x3FF || SetTiledCacheBundleControl || 1 || ||
 +
|-
 +
| 0x400 || SetL2CacheControlForVafRequests || 1 || ||
 +
|-
 +
| 0x401 || SetViewportMulticast || 1 || ||
 +
|-
 +
| 0x402 || SetTessellationCutHeight || 1 || ||
 +
|-
 +
| 0x403 || SetMaxGsInstancesPerTask || 1 || ||
 +
|-
 +
| 0x404 || SetMaxGsOutputVerticesPerTask || 1 || ||
 +
|-
 +
| 0x405 || SetReservedSwMethod00 || 1 || ||
 +
|-
 +
| 0x406 || SetGsOutputCbStorageMultiplier || 1 || ||
 +
|-
 +
| 0x407 || SetBetaCbStorageConstraint || 1 || ||
 +
|-
 +
| 0x408 || SetTiOutputCbStorageMultiplier || 1 || ||
 
|-
 
|-
| 0x1F9 || || 1 || || SetRenderTargets optionally uses this.
+
| 0x409 || SetAlphaCbStorageConstraint || 1 || ||
 
|-
 
|-
| 0x1FA || ZCullContextStartAddr || 2 || gpuva ||
+
| 0x40A || SetReservedSwMethod01 || 1 || ||
 
|-
 
|-
| 0x1FC || ZCullContextEndAddr || 2 || gpuva ||
+
| 0x40B || SetReservedSwMethod02 || 1 || ||
 +
|-
 +
| 0x40C+N || SetTirModulationCoefficientTable || 4 || float[4] ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x200+16*N || RenderTargetNAddr || 2 || gpuva ||
+
| 0x410 || || 1 || ||
 +
|-
 +
| 0x411 || SetSpareNoop01 || 1 || ||
 +
|-
 +
| 0x412 || SetSpareNoop02 || 1 || ||
 +
|-
 +
| 0x413 || SetSpareNoop03 || 1 || ||
 +
|-
 +
| 0x414 || SetSpareNoop04 || 1 || ||
 +
|-
 +
| 0x415 || SetSpareNoop05 || 1 || ||
 +
|-
 +
| 0x416 || SetSpareNoop06 || 1 || ||
 +
|-
 +
| 0x417 || SetSpareNoop07 || 1 || ||
 +
|-
 +
| 0x418 || SetSpareNoop08 || 1 || ||
 +
|-
 +
| 0x419 || SetSpareNoop09 || 1 || ||
 +
|-
 +
| 0x41A || SetSpareNoop10 || 1 || ||
 +
|-
 +
| 0x41B || SetSpareNoop11 || 1 || ||
 +
|-
 +
| 0x41C || SetSpareNoop12 || 1 || ||
 +
|-
 +
| 0x41D || SetSpareNoop13 || 1 || ||
 +
|-
 +
| 0x41E || SetSpareNoop14 || 1 || ||
 +
|-
 +
| 0x41F || SetSpareNoop15 || 1 || ||
 +
|-
 +
| 0x420 || || 1 || ||
 +
|-
 +
| 0x421 || || 1 || ||
 +
|-
 +
| 0x422 || || 1 || ||
 +
|-
 +
| 0x423 || || 1 || ||
 +
|-
 +
| 0x424 || || 1 || ||
 +
|-
 +
| 0x425 || || 1 || ||
 +
|-
 +
| 0x426 || || 1 || ||
 +
|-
 +
| 0x427 || || 1 || ||
 +
|-
 +
| 0x428 || || 1 || ||
 +
|-
 +
| 0x429 || || 1 || ||
 +
|-
 +
| 0x42A || || 1 || ||
 +
|-
 +
| 0x42B || || 1 || ||
 +
|-
 +
| 0x42C || SetReservedSwMethod03 || 1 || ||
 +
|-
 +
| 0x42D || SetReservedSwMethod04 || 1 || ||
 
|-
 
|-
| 0x202+16*N || RenderTargetNHorizontal || 1 || ||
+
| 0x42E || SetReservedSwMethod05 || 1 || ||
 
|-
 
|-
| 0x203+16*N || RenderTargetNVertical || 1 || ||
+
| 0x42F || SetReservedSwMethod06 || 1 || ||
 
|-
 
|-
| 0x204+16*N || RenderTargetNFormat || 1 || ||
+
| 0x430 || SetReservedSwMethod07 || 1 || ||
 
|-
 
|-
| 0x205+16*N || RenderTargetNTileMode || 1 || bitfield || Bit0-3: Width, bit4-7: Height, bit8-10: Depth, bit12: Layout, bit16: ?
+
| 0x431 || SetReservedSwMethod08 || 1 || ||
 
|-
 
|-
| 0x206+16*N || RenderTargetNArrayMode || 1 || bitfield || Bit0-15: Layers, bit16: Volume
+
| 0x432 || SetReservedSwMethod09 || 1 || ||
 
|-
 
|-
| 0x207+16*N || RenderTargetNLayerStride || 1 || uint || In units of 4 bytes.
+
| 0x433 || SetReduceColorThresholdsUnorm8 || 1 || || GpuInit writes 4 here.
 
|-
 
|-
| 0x208+16*N || RenderTargetNBaseLayer || 1 || ||
+
| 0x434 || SetReservedSwMethod10 || 1 || ||
 
|-
 
|-
| 0x280+8*N || ViewportNScaleX || 1 || float || n=0..15
+
| 0x435 || SetReservedSwMethod11 || 1 || ||
 
|-
 
|-
| 0x281+8*N || ViewportNScaleY || 1 || float ||
+
| 0x436 || SetReservedSwMethod12 || 1 || ||
 
|-
 
|-
| 0x282+8*N || ViewportNScaleZ || 1 || float ||
+
| 0x437 || SetReservedSwMethod13 || 1 || ||
 
|-
 
|-
| 0x283+8*N || ViewportNTranslateX || 1 || float ||
+
| 0x438 || SetReduceColorThresholdsUnorm10 || 1 || || GpuInit writes 0xFF here.
 
|-
 
|-
| 0x284+8*N || ViewportNTranslateY || 1 || float ||
+
| 0x439 || SetReduceColorThresholdsUnorm16 || 1 || || GpuInit writes 0xFF here.
 
|-
 
|-
| 0x285+8*N || ViewportNTranslateZ || 1 || float ||
+
| 0x43A || SetReduceColorThresholdsFp11 || 1 || ||
 
|-
 
|-
| 0x286+8*N || ViewportNSwizzles || 1 || bitfield ||  
+
| 0x43B || SetReduceColorThresholdsFp16 || 1 || || GpuInit writes 0xFF here.
 
|-
 
|-
| 0x287+8*N || ViewportNSubpixelPrecisionBias || 1 || bitfield || Bit0-4: BiasX, bit8-bit11: BiasY
+
| 0x43C || SetReduceColorThresholdsSrgb8 || 1 || || GpuInit writes 4 here.
 
|-
 
|-
| 0x300+4*N || ViewportNHorizontal || 1 || bitfield || Bit0-15: X, bit16-31: Width
+
| 0x43D || UnbindAll || 1 || bitfield || Bit0: InvalidateTextureHeaders, bit4: InvalidateTextureSamplers, bit8: InvalidateConstBuffers
 
|-
 
|-
| 0x301+4*N || ViewportNVertical || 1 || bitfield || Bit0-15: Y, bit16-31: Height
+
| 0x43E || SetClearSurfaceControl || 1 || || GpuInit writes 0x101 here.
 
|-
 
|-
| 0x302+4*N || ViewportNDepthRangeNear || 1 || float ||
+
| 0x43F || SetL2CacheControlForRopNoninterlockedReadRequests || 1 || ||
 
|-
 
|-
| 0x303+4*N || ViewportNDepthRangeFar || 1 || float ||
+
| 0x440 || SetReservedSwMethod14 || 1 || ||
 
|-
 
|-
| 0x340+2*N || ClipRectNHorizontal || 1 || || n=0..7, TODO
+
| 0x441 || SetReservedSwMethod15 || 1 || ||
 
|-
 
|-
| 0x341+2*N || ClipRectNVertical || 1 || || TODO
+
| 0x442 || || 1 || ||
 
|-
 
|-
| 0x359 || CallLimit || 1 || uint || 0=FullLimit, 1...8=?, 15=Unlimited
+
| 0x443 || NoOperationDataHi || 1 || ||
 
|-
 
|-
| 0x35A || CounterEnable || 1 || bitfield || Bit0: ?, bit1: ?, ... bit15: ?
+
| 0x444 || SetDepthBiasControl || 1 || ||
 
|-
 
|-
| 0x35D || VertexBufferFirst || 1 || ||
+
| 0x445 || PmTriggerEnd || 1 || ||
 
|-
 
|-
| 0x35E || VertexBufferCount || 1 || ||
+
| 0x446 || SetVertexIdBase || 1 || bool ||
 
|-
 
|-
| 0x35F || DepthClipAllowNegativeZ || 1 || bool ||
+
| 0x447 || SetStencilCompression || 1 || ||
 
|-
 
|-
| 0x360 || ClearColor || 4 || float ||
+
| 0x448+N || SetDaOutputAttributeSkipMaskA || 2 || ||
 +
|-
 +
| 0x44A+N || SetDaOutputAttributeSkipMaskB || 2 || ||
 +
|-
 +
| 0x44C || SetTirControl || 1 || ||
 +
|-
 +
| 0x44D || SetMutableMethodControl || 1 || bool || Trigger?
 +
|-
 +
| 0x44E || SetPostPsInitialCoverage || 1 || ||
 +
|-
 +
| 0x44F || SetFillViaTriangle || 1 || ||
 +
|-
 +
| 0x450 || SetBlendPerFormatEnable || 1 || ||
 +
|-
 +
| 0x451 || FlushPendingWrites || 1 || ||
 +
|-
 +
| 0x452 || SetConservativeRaster || 1 || bool ||
 +
|- style="border-top: double"
 +
| 0x458+N || SetVertexAttributeA || 4 || bitfield[16] || Bit0-4: StreamIndex, bit7-20: Format0, bit21-30: Format1
 
|-
 
|-
| 0x364 || ClearDepth || 1 || float ||
+
| 0x468+N || SetVertexAttributeB || 4 || bitfield[16] || Bit0-4: StreamIndex, bit7-20: Format0, bit21-30: Format1
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x368 || ClearStencil || 1 || ||
+
| 0x478+N || SetAntiAliasSamplePositions || 3 || bitfield[3] || Bit0-3: x0, bit4-7: y0, bit8-11: x1, etc..
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x36B || PolygonModeFront || 1 || bitfield || 0x1B00/0x1B01/0x1B02
+
| 0x47C || SetOffsetRenderTargetIndex || 1 || trigger || BindProgram writes 0 here sometimes.
 +
|-
 +
| 0x47D || ForceHeavyweightMethodSync || 1 || ||
 +
|-
 +
| 0x47E || SetCoverageToColor || 1 || bitfield || Bit0: Enable, bit4-6: ?
 
|-
 
|-
| 0x36C || PolygonModeBack || 1 || bitfield || 0x1B00/0x1B01/0x1B02
+
| 0x47F || DecompressZetaSurface || 1 || trigger || 1 is written here to trigger.
 
|-
 
|-
| 0x36D || PolygonSmoothEnable || 1 || bool ||
+
| 0x480 || || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x36F || ? || 1 || bitfield || Bit0:?, bit16:?. Used by ClearDepthStencil.
+
| 0x482 || SetZtSparse || 1 || ||
 +
|-
 +
| 0x483 || InvalidateSamplerCacheAll || 1 || ||
 +
|-
 +
| 0x484 || InvalidateTextureHeaderCacheAll || 1 || ||
 +
|-
 +
| 0x485 || DrawVertexArrayBeginEndInstanceFirst || 1 || ||
 +
|-
 +
| 0x486 || DrawVertexArrayBeginEndInstanceSubsequent || 1 || ||
 +
|-
 +
| 0x487 || SetCtSelect || 1 || bitfield || Bit0-3: NumberOfRenderTargets, bunch of other flags. Used by SetRenderTargets.
 
|-
 
|-
| 0x370 || PolygonOffsetPointEnable || 1 || bool ||
+
| 0x488 || SetCompressionThreshold || 1 || ||
 
|-
 
|-
| 0x371 || PolygonOffsetLineEnable || 1 || bool ||
+
| 0x489 || SetPixelShaderInterlockControl || 1 || ||
 
|-
 
|-
| 0x372 || PolygonOffsetFillEnable || 1 || bool ||
+
| 0x48A || SetZtSizeA || 1 || || Optionally used by SetRenderTargets.
 
|-
 
|-
| 0x373 || PatchSize || 1 || || Small value, always fits in 12 bits. In number of vertices.
+
| 0x48B || SetZtSizeB || 1 || || Optionally used by SetRenderTargets.
 
|-
 
|-
| 0x374 || || 1 || || 0 written here for "simple" BlendState.
+
| 0x48C || SetZtSizeC || 1 || || Optionally used by SetRenderTargets.
 +
|-
 +
| 0x48D || SetSamplerBinding || 1 || enum || 0=Independently, 1=ViaHeaderBinding
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x379 || WatchdogTimer || 1 || ||
+
| 0x48F || DrawAuto || 1 || ||
 
|-
 
|-
| 0x37A || PrimitiveRestartWithDrayArrays || 1 || boolean ||
+
| 0x490+N || SetPostVtgShaderAttributeSkipMask || 8 || ||
 +
|-
 +
| 0x498 || SetPixelShaderTicketDispenserValue || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4A0 || SetCircularBufferSize || 1 || ||
 +
|-
 +
| 0x4A1 || SetVtgRegisterWatermarks || 1 || ||
 +
|-
 +
| 0x4A2 || InvalidateTextureDataCacheNoWfi || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
 +
|- style="border-top: double"
 +
| 0x4A4 || SetL2CacheControlForRopInterlockedReadRequests || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4A9 || SetDaPrimitiveRestartIndexTopologyChange || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4AB || ShaderScheduling || 1 || enum || 0=OldestThreadFirst, 1=RoundRobin
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x37E || WindowOffsetX || 1 || int ||
+
| 0x4B2 || ClearZcullRegion || 1 || ||
 +
|-
 +
| 0x4B3 || SetDepthTest || 1 || bool || Enables DepthWriteEnable and DepthFunc.
 +
|-
 +
| 0x4B4 || SetFillMode || 1 || ||
 +
|-
 +
| 0x4B5 || SetShadeMode || 1 || ||
 +
|-
 +
| 0x4B6 || SetL2CacheControlForRopNoninterlockedWriteRequests || 1 || ||
 +
|-
 +
| 0x4B7 || SetL2CacheControlForRopInterlockedWriteRequests || 1 || ||
 +
|-
 +
| 0x4B8 || SetAlphaToCoverageDitherControl || 1 || bool ||
 +
|-
 +
| 0x4B9 || SetBlendStatePerTarget || 1 || bool || 1 written here for "simple" BlendState.
 
|-
 
|-
| 0x37F || WindowOffsetY || 1 || int ||
+
| 0x4BA || SetDepthWrite || 1 || bool ||
 +
|-
 +
| 0x4BB || SetAlphaTest || 1 || bool ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x380+4*N || ScissorNEnable || 1 || bool || n=0..15. GpuInit writes 1 here.
+
| 0x4C0 || SetInlineIndex4x8Align || 1 || ||
 +
|-
 +
| 0x4C1 || DrawInlineIndex4x8 || 1 || ||
 +
|-
 +
| 0x4C2 || D3dSetCullMode || 1 || ||
 +
|-
 +
| 0x4C3 || SetDepthFunc || 1 || bitfield || Bit0-3: DepthFunc
 +
|-
 +
| 0x4C4 || SetAlphaRef || 1 || float ||
 +
|-
 +
| 0x4C5 || SetAlphaFunc || 1 || bitfield || Bit0-3: AlphaTestFunc
 +
|-
 +
| 0x4C6 || SetDrawAutoStride || 1 || ||
 +
|-
 +
| 0x4C7 || SetBlendConstRed || 1 || float ||
 +
|-
 +
| 0x4C8 || SetBlendConstGreen || 1 || float ||
 
|-
 
|-
| 0x381+4*N || ScissorNHorizontal || 1 || bitfield || Bit0-15: min, bit16-31: max
+
| 0x4C9 || SetBlendConstBlue || 1 || float ||
 
|-
 
|-
| 0x382+4*N || ScissorNVertical || 1 || bitfield || Bit0-15: min, bit16-31: max
+
| 0x4CA || SetBlendConstAlpha || 1 || float ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3D5 || StencilBackRefValue || 1 || ||
+
| 0x4CC || InvalidateSamplerCache || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
 +
|-
 +
| 0x4CD || InvalidateTextureHeaderCache || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
 +
|-
 +
| 0x4CE || InvalidateTextureDataCache || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
 +
|-
 +
| 0x4CF || SetBlendSeparateForAlpha || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
 +
|-
 +
| 0x4D0 || SetBlendColorOp || 1 || ||
 +
|-
 +
| 0x4D1 || SetBlendColorSourceCoeff || 1 || ||
 +
|-
 +
| 0x4D2 || SetBlendColorDestCoeff || 1 || ||
 +
|-
 +
| 0x4D3 || SetBlendAlphaOp || 1 || ||
 +
|-
 +
| 0x4D4 || SetBlendAlphaSourceCoeff || 1 || ||
 +
|-
 +
| 0x4D5 || SetGlobalColorKey || 1 || ||
 +
|-
 +
| 0x4D6 || SetBlendAlphaDestCoeff || 1 || ||
 +
|-
 +
| 0x4D7 || SetSingleRopControl || 1 || ||
 +
|-
 +
| 0x4D8+N || SetBlend || 8 || ||
 +
|-
 +
| 0x4E0 || SetStencilTest || 1 || bool ||
 +
|-
 +
| 0x4E1 || SetStencilOpFail || 1 || ||
 +
|-
 +
| 0x4E2 || SetStencilOpZfail || 1 || ||
 +
|-
 +
| 0x4E3 || SetStencilOpZpass || 1 || ||
 
|-
 
|-
| 0x3D6 || StencilBackEnable || 1 || bool ||
+
| 0x4E4 || SetStencilFunc || 1 || ||
 
|-
 
|-
| 0x3D7 || StencilBackValueMask || 1 || ||
+
| 0x4E5 || SetStencilFuncRef || 1 || ||
 
|-
 
|-
| 0x3D8 || TiledCacheAction0 || 1 || bool || Trigger?
+
| 0x4E6 || SetStencilFuncMask || 1 || ||
 
|-
 
|-
| 0x3D9 || TiledCacheTileSize || 1 || bitfield || Bit0-15: ?, bit16-31: ?
+
| 0x4E7 || SetStencilMask || 1 || bool ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3DE || DiscardTrigger || 1 || bitfield || Bit4-6: DiscardColorIndex, bit0: DiscardDepthStencil
+
| 0x4E9 || SetDrawAutoStart || 1 || ||
 +
|-
 +
| 0x4EA || SetPsSaturate || 1 || ||
 +
|-
 +
| 0x4EB || SetWindowOrigin || 1 || ||
 +
|-
 +
| 0x4EC || SetLineWidthFloat || 1 || float ||
 +
|-
 +
| 0x4ED || SetAliasedLineWidthFloat || 1 || float ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3E0 || TiledCacheAction1 || 1 || bool || Trigger?
+
| 0x506 || SetLineMultisampleOverride || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3E7 || DepthBounds || 2 || float[2] ||
+
| 0x508 || SetAlphaHysteresis || 1 || ||
 +
|-
 +
| 0x509 || InvalidateSamplerCacheNoWfi || 1 || ||
 +
|-
 +
| 0x50A || InvalidateTextureHeaderCacheNoWfi || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3ED || MultisampleRasterEnable || 1 || bool || Also written 0 when clearing all colors.
+
| 0x50D || SetGlobalBaseVertexIndex || 1 || uint ||
 
|-
 
|-
| 0x3EE || MultisampleRasterSamples || 1 || bitfield || 2=Four, 4=Eight, 5=?, 6=Sixteen
+
| 0x509 || SetGlobalBaseInstanceIndex || 1 || ||
 +
|- style="border-top: double"
 +
| 0x511 || || 1 || ||
 
|-
 
|-
| 0x3EF || MultisampleCoverageModulationMode || 1 || ||
+
| 0x512 || || 1 || ||
 
|-
 
|-
| 0x3F0 || SampleMask0 || 1 || ||
+
| 0x513 || || 1 || ||
 
|-
 
|-
| 0x3F1 || SampleMask1 || 1 || ||
+
| 0x514 || SetPsWarpWatermarks || 1 || ||
 
|-
 
|-
| 0x3F2 || SampleMask2 || 1 || ||
+
| 0x515 || SetPsRegisterWatermarks || 1 || ||
 +
|- style="border-top: double"
 +
| 0x519 || StoreZcull || 1 || trigger || 0 is written here to trigger ctx-save, uses ZCullContextStartAddr.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3F5 || Multisample_Related2 || 1 || || TODO
+
| 0x51F || PolygonOffsetClamp0 || 1 || float ||
 
|-
 
|-
| 0x3F6 || CoverageModulationEnable || 1 || bool ||
+
| 0x520+4*N || SetIteratedBlendConstantRed || 1 || ||
 +
|-
 +
| 0x521+4*N || SetIteratedBlendConstantGreen || 1 || ||
 +
|-
 +
| 0x522+4*N || SetIteratedBlendConstantBlue || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x3F8 || Unknown?Addr || 2 || gpuva || SetRenderTargets writes the address of an optional buffer here.
+
| 0x540 || LoadZcull || 1 || trigger || 0 is written here to trigger ctx-restore, uses ZCullContextStartAddr.
 +
|-
 +
| 0x541 || SetSurfaceClipIdHeight || 1 || ||
 +
|-
 +
| 0x542 || SetClipIdClearRectHorizontal || 1 || ||
 +
|-
 +
| 0x543 || SetClipIdClearRectVertical || 1 || ||
 +
|-
 +
| 0x544 || SetUserClipEnable || 1 || ||
 
|-
 
|-
| 0x3FA || Unknown?TileMode || 1 || || SetRenderTargets writes here optionally.
+
| 0x545 || SetZpassPixelCount || 1 || ||
 
|-
 
|-
| 0x3FB || Unknown?ArrayMode || 1 || || SetRenderTargets writes here optionally.
+
| 0x546 || SetPointSize || 1 || float ||
 
|-
 
|-
| 0x3FC || Unknown?BaseLayer || 1 || || SetRenderTargets writes here optionally.
+
| 0x547 || SetZcullStats || 1 || ||
 
|-
 
|-
| 0x3FD || || 1 || bitfield?[2] || SetRenderTargets writes here
+
| 0x548 || SetPointSprite || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x40C || CoverageModulationTable || 4 || float[4] ||
+
| 0x54A || SetShaderExceptions || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x433 || || 1 || || GpuInit writes 4 here.
+
| 0x54C || ClearReportValue || 1 || || Value written decides which counter to reset.
 +
|-
 +
| 0x54D || SetAntiAliasEnable || 1 || ||
 +
|-
 +
| 0x54E || SetZtSelect || 1 || bool || SetRenderTargets writes 0 here if an optional buffer is NULL.
 +
|-
 +
| 0x54F || SetAntiAliasAlphaControl || 1 || bool || bit0: AlphaToCoverageEnable, bit1+: ?
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x438 || || 1 || || GpuInit writes 0xFF here.
+
| 0x554 || SetRenderEnableA || 1 || gpuva ||
 +
|-
 +
| 0x555 || SetRenderEnableB || 1 || gpuva ||
 +
|-
 +
| 0x556 || SetRenderEnableC || 1 || enum || 0=False, 1=True, 2=Conditional, 3=RenderIfEqual, 4=RenderIfNotEqual,
 
|-
 
|-
| 0x439 || || 1 || || GpuInit writes 0xFF here.
+
| 0x557 || SetTexSamplerPoolA || 1 || gpuva ||
 +
|-
 +
| 0x558 || SetTexSamplerPoolB || 1 || gpuva ||
 +
|-
 +
| 0x559 || SetTexSamplerPoolC || 1 || bitfield || Bit0-19: MaximumIndex
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x43B || || 1 || || GpuInit writes 0xFF here.
+
| 0x55B || SetSlopeScaleDepthBias || 1 || float ||
 +
|-
 +
| 0x55C || SetAntiAliasedLine || 1 || ||
 +
|-
 +
| 0x55D || SetTexHeaderPoolA || 1 || gpuva ||
 +
|-
 +
| 0x55E || SetTexHeaderPoolB || 1 || gpuva ||
 +
|-
 +
| 0x55F || SetTexHeaderPoolC || 1 || bitfield || Bit0-21: MaximumIndex
 +
|- style="border-top: double"
 +
| 0x564 || SetActiveZcullRegion || 1 || ||
 +
|-
 +
| 0x565 || SetTwoSidedStencilTest || 1 || ||
 +
|-
 +
| 0x566 || SetBackStencilOpFail || 1 || ||
 
|-
 
|-
| 0x43C || || 1 || || GpuInit writes 4 here.
+
| 0x567 || SetBackStencilOpZfail || 1 || ||
 
|-
 
|-
| 0x43D || Unbind (???) || 1 || bitfield || Bit0: InvalidateTextureHeaders, bit4: InvalidateTextureSamplers, bit8: InvalidateConstBuffers
+
| 0x568 || SetBackStencilOpZpass || 1 || ||
 
|-
 
|-
| 0x43E || ClearFlags? || 1 || || GpuInit writes 0x101 here.
+
| 0x569 || SetBackStencilFunc || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x446 || DrawElementsEnableBaseVertex? || 1 || bool || TODO
+
| 0x56D || SetCsaa || 1 || bool ||
 +
|-
 +
| 0x56E || SetSrgbWrite || 1 || ||
 +
|-
 +
| 0x56F || SetDepthBias || 1 || float || Float multiplied by 2 is written here.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x44D || TiledCacheAction2 || 1 || bool || Trigger?
+
| 0x572 || SetZcullRegionFormat || 1 || ||
 +
|-
 +
| 0x573 || SetRtLayer || 1 || ||
 +
|-
 +
| 0x574 || SetAntiAlias || 1 || || Written by SetRenderTargets, possible values: 0, 2, 4, 5, 6.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x452 || RasterEnable || 1 || bool ||
+
| 0x579 || SetEdgeFlag || 1 || ||
 +
|-
 +
| 0x57A || DrawInlineIndex || 1 || ||
 +
|-
 +
| 0x57B || SetInlineIndex2x16Align || 1 || ||
 +
|-
 +
| 0x57C || DrawInlineIndex2x16 || 1 || ||
 +
|-
 +
| 0x57D || SetVertexGlobalBaseOffsetA || 1 || ||
 +
|-
 +
| 0x57E || SetVertexGlobalBaseOffsetB || 1 || ||
 +
|-
 +
| 0x57F || SetZcullRegionPixelOffsetA || 1 || || SetRenderTargets optionally writes 0 here.
 +
|-
 +
| 0x580 || SetZcullRegionPixelOffsetB || 1 || || SetRenderTargets optionally writes 0 here.
 +
|-
 +
| 0x581 || SetPointSpriteSelect || 1 || ||
 +
|-
 +
| 0x582 || SetProgramRegionA || 1 || gpuva ||
 +
|-
 +
| 0x583 || SetProgramRegionB || 1 || gpuva ||
 +
|-
 +
| 0x584 || SetAttributeDefault || 1 || ||
 +
|-
 +
| 0x585 || End || 1 || ||
 +
|-
 +
| 0x586 || Begin || 1 || ||
 +
|-
 +
| 0x587 || SetVertexIdCopy || 1 || ||
 +
|-
 +
| 0x588 || AddToPrimitiveId || 1 || ||
 +
|-
 +
| 0x589 || LoadPrimitiveId || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x458 || VertexStreamNAttrib || 4 || bitfield[16] || Bit0-4: StreamIndex, bit7-20: Format0, bit21-30: Format1
+
| 0x58B || SetShaderBasedCull || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x478 || MultisampleGrid || 3 || bitfield[3] || Bit0-3: x0, bit4-7: y0, bit8-11: x1, etc..
+
| 0x58E || SetClassVersion || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x47C || || 1 || trigger || BindProgram writes 0 here sometimes.
+
| 0x591 || SetDaPrimitiveRestart || 1 || bool ||
 +
|-
 +
| 0x592 || SetDaPrimitiveRestartIndex || 1 || uint ||
 +
|-
 +
| 0x593 || SetDaOutput || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x47E || MultisampleCoverageToColor || 1 || bitfield || Bit0: Enable, bit4-6: ?
+
| 0x596 || SetAntiAliasedPoint || 1 || ||
 
|-
 
|-
| 0x47F || DepthBufferResolve || 1 || trigger || 1 is written here to trigger.
+
| 0x597 || SetPointCenterMode || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x487 || RenderTargetControl || 1 || bitfield || Bit0-3: NumberOfRenderTargets, bunch of other flags. Used by SetRenderTargets.
+
| 0x599 || CubeMapInterFaceFiltering || 1 || bitfield || Bit0-1: Mode (0=UseWrap, 1=OverrideWrap, 2=AutoSpanSeam, 3=AutoCrossSeam)
 +
|-
 +
| 0x59A || SetLineSmoothParameters || 1 || ||
 +
|-
 +
| 0x59B || SetLineStipple || 1 || ||
 +
|-
 +
| 0x59C+N || SetLineSmoothEdgeTable || 4 || ||
 +
|-
 +
| 0x5A0 || SetLineStippleParameters || 1 || ||
 +
|-
 +
| 0x5A1 || SetProvokingVertex || 1 || ||
 +
|-
 +
| 0x5A2 || SetTwoSidedLight || 1 || ||
 +
|-
 +
| 0x5A3 || SetPolygonStipple || 1 || ||
 +
|-
 +
| 0x5A4 || SetShaderControl || 1 || bitfield || Bit0: DefaultPartial (0=Zero, 1=Infinity), bit1: Fp32NanBehavior (0=Legacy, 1=Fp64Compatible), bit2: Fp32F21NanBehavior (0=PassZero, 1=PassIndefinite), bit16: ZeroTimesAnythingIsZero
 +
|-
 +
| 0x5A5 || BindConstantBuffer || 1 || bitfield || Bit0: Valid, bit8-12: ShaderSlot
 +
|-
 +
| 0x5A6 || InvalidateShaderCachesNoWfi || 1 || bitfield || Bit0: Instruction, bit4: GlobalData, bit8: Uniform, bit12: Constant
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x48A || || 1 || || Optionally used by SetRenderTargets.
+
| 0x5A8 || CheckClassVersion || 1 || ||
 
|-
 
|-
| 0x48B || || 1 || || Optionally used by SetRenderTargets.
+
| 0x5A9 || SetSphVersion || 1 || ||
 
|-
 
|-
| 0x48C || || 1 || || Optionally used by SetRenderTargets.
+
| 0x5AA || CheckSphVersion || 1 || ||
 +
|- style="border-top: double"
 +
| 0x5AD || SetAlphaToCoverageOverride || 1 || ||
 +
|- style="border-top: double"
 +
| 0x5C0+N || SetPolygonStipplePattern || 1 || ||
 +
|- style="border-top: double"
 +
| 0x5E4 || SetAamVersion || 1 || ||
 
|-
 
|-
| 0x48D || SamplerBinding (???) || 1 || enum || 0=Independently, 1=ViaHeaderBinding
+
| 0x5E5 || CheckAamVersion || 1 || ||
 +
|- style="border-top: double"
 +
| 0x5E7 || SetZtLayer || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4A2 || InvalidateTextureDataNoWfi (???) || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
+
| 0x5F2 || SetIndexBufferA || 1 || gpuva ||
 +
|-
 +
| 0x5F3 || SetIndexBufferB || 1 || gpuva ||
 +
|-
 +
| 0x5F4 || SetIndexBufferC || 1 || gpuva ||
 +
|-
 +
| 0x5F5 || SetIndexBufferD || 1 || gpuva ||
 +
|-
 +
| 0x5F6 || SetIndexBufferE || 1 || bool ||
 +
|-
 +
| 0x5F7 || SetIndexBufferF || 1 || ||
 +
|-
 +
| 0x5F8 || DrawIndexBuffer || 1 || ||
 +
|-
 +
| 0x5F9 || DrawIndexBuffer32BeginEndInstanceFirst || 1 || ||
 +
|-
 +
| 0x5FA || DrawIndexBuffer16BeginEndInstanceFirst || 1 || ||
 +
|-
 +
| 0x5FB || DrawIndexBuffer8BeginEndInstanceFirst || 1 || ||
 +
|-
 +
| 0x5FC || DrawIndexBuffer32BeginEndInstanceSubsequent || 1 || ||
 +
|-
 +
| 0x5FD || DrawIndexBuffer16BeginEndInstanceSubsequent || 1 || ||
 +
|-
 +
| 0x5FE || DrawIndexBuffer8BeginEndInstanceSubsequent || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4AB || ShaderScheduling (???) || 1 || enum || 0=OldestThreadFirst, 1=RoundRobin
+
| 0x61F || SetDepthBiasClamp || 1 || ||
 +
|-
 +
| 0x620+N || SetVertexStreamInstanceA || 16 || bool || n=0...15.
 +
|-
 +
| 0x630+N || SetVertexStreamInstanceB || 16 || bool || n=0...15.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4B3 || DepthTestEnable || 1 || bool || Enables DepthWriteEnable and DepthFunc.
+
| 0x644 || SetAttributePointSize || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4B8 || MultisampleAlphaToCoverageDither || 1 || bool ||
+
| 0x646 || OglSetCull || 1 || bool ||
 +
|-
 +
| 0x647 || OglSetFrontFace || 1 || bitfield || Bit0: Enable. Always ORR'd with 0x9000.
 
|-
 
|-
| 0x4B9 || BlendIndependent || 1 || bool || 1 written here for "simple" BlendState.
+
| 0x648 || OglSetCullFace || 1 || bitfield || 0x404=Front, 0x405=Back, 0x408=FrontAndBack
 
|-
 
|-
| 0x4BA || DepthWriteEnable || 1 || bool ||
+
| 0x649 || SetViewportPixel || 1 || ||
 +
|- style="border-top: double"
 +
| 0x64B || SetViewportScaleOffset || 1 || ||
 
|-
 
|-
| 0x4BB || AlphaTestEnable || 1 || bool ||
+
| 0x64C || InvalidateConstantBufferCache || 1 || bitfield || Bit0: ThruL2
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4C3 || DepthFunc || 1 || bitfield || Bit0-3: DepthFunc
+
| 0x64F || SetViewportClipControl  || 1 || || TODO: 0x101A is written when enabled, 0x181D when disabled.
 
|-
 
|-
| 0x4C4 || AlphaTestRefValue || 1 || float ||
+
| 0x650 || SetUserClipOp || 1 || ||
 
|-
 
|-
| 0x4C5 || AlphaTestFunc || 1 || bitfield || Bit0-3: AlphaTestFunc
+
| 0x651 || SetRenderEnableOverride || 1 || bitfield || Bit0-1: 0=UseRenderEnable, 1=AlwaysRender, 2=NeverRender
 +
|-
 +
| 0x652 || SetPrimitiveTopologyControl || 1 || ||
 +
|-
 +
| 0x653 || SetWindowClipEnable || 1 || ||
 +
|-
 +
| 0x654 || SetWindowClipType || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4C7 || BlendColor || 4 || float[4] || TODO
+
| 0x656 || InvalidateZcull || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4CC || InvalidateSamplerCache (???) || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
+
| 0x65A || SetZcull || 1 || ||
 
|-
 
|-
| 0x4CD || InvalidateTextureHeaderCache (???) || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
+
| 0x65B || SetZcullBounds || 1 || ||
 
|-
 
|-
| 0x4CE || InvalidateTextureDataCache (???) || 1 || bitfield || bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
+
| 0x65C || SetPrimitiveTopology || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4E0 || StencilEnable || 1 || bool ||
+
| 0x65E || ZcullSync || 1 || ||
 +
|-
 +
| 0x65F || SetClipIdTest || 1 || ||
 +
|-
 +
| 0x660 || SetSurfaceClipIdWidth || 1 || ||
 +
|-
 +
| 0x661 || SetClipId || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4E5 || StencilFrontRefValue || 1 || ||
+
| 0x66F || SetDepthBoundsTest || 1 || bool ||
 +
|-
 +
| 0x670 || SetBlendFloatOption || 1 || ||
 +
|-
 +
| 0x671 || SetLogicOp || 1 || bool || Used for all LogicOps except 3.
 +
|-
 +
| 0x672 || SetLogicOpFunc || 1 || bitfield || Bit0-7: LogicOp, bit8-15: unknown, always 0x15.
 +
|-
 +
| 0x673 || SetZCompression || 1 || ||
 
|-
 
|-
| 0x4E6 || StencilFrontMaskValue || 1 || ||
+
| 0x674 || ClearSurface || 1 || ||
 
|-
 
|-
| 0x4E7 || StencilFrontEnable || 1 || bool ||
+
| 0x675 || ClearClipIdSurface || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x4EC || LineWidthSmooth || 1 || float ||
+
| 0x678+N || SetColorCompression || 8 || ||
 
|-
 
|-
| 0x4ED || LineWidthAliased || 1 || float ||
+
| 0x680+N || SetCtWrite || 8 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x50D || VertexBufferElementBase || 1 || uint ||
+
| 0x689 || || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x519 || ZCullContextSave || 1 || trigger || 0 is written here to trigger ctx-save, uses ZCullContextStartAddr.
+
| 0x68B || PipeNop || 1 || trigger || Always 0 is written here. During zcull ctx-save, spammed when enabling raster, ...
 +
|-
 +
| 0x68C || SetSpare00 || 1 || uint ||
 +
|-
 +
| 0x68D || SetSpare01 || 1 || uint ||
 +
|-
 +
| 0x68E || SetSpare02 || 1 || uint ||
 +
|-
 +
| 0x68F || SetSpare03 || 1 || uint ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x51F || PolygonOffsetClamp0 || 1 || float ||
+
| 0x6C0 || SetReportSemaphoreA || 1 || gpuva ||
 +
|-
 +
| 0x6C1 || SetReportSemaphoreB || 1 || gpuva ||
 +
|-
 +
| 0x6C2 || SetReportSemaphoreC || 1 || || 0 is written here during most queries.
 +
|-
 +
| 0x6C3 || SetReportSemaphoreD || 1 || bitfield || Bit0-1: Operation (0=Release, 3=Trap), bit2: FlushDisable, bit20: AwakenEnable, bit28: StructureSize (0=FourWords, 1=OneWord)
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x540 || ZCullContextRestore || 1 || trigger || 0 is written here to trigger ctx-restore, uses ZCullContextStartAddr.
+
| 0x700+4*N || SetVertexStreamAFormat || 1 || uint || Bit0-11: Stride. Bit12: Enable.
 +
|-
 +
| 0x701+4*N || SetVertexStreamALocationA || 1 || gpuva ||
 +
|-
 +
| 0x702+4*N || SetVertexStreamALocationB || 1 || gpuva ||
 +
|-
 +
| 0x703+4*N || SetVertexStreamAFrequency || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x546 || PointSize || 1 || float ||
+
| 0x740+4*N || SetVertexStreamBFormat || 1 || ||
 +
|-
 +
| 0x741+4*N || SetVertexStreamBLocationA || 1 || gpuva ||
 +
|-
 +
| 0x742+4*N || SetVertexStreamBLocationB || 1 || gpuva ||
 +
|-
 +
| 0x743+4*N || SetVertexStreamBFrequency || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x54C || CounterReset || 1 || || Value written decides which counter to reset.
+
| 0x780+8*N || SetBlendPerTargetSeparateForAlpha || 1 || ||
 +
|-
 +
| 0x781+8*N || SetBlendPerTargetColorOp || 1 || bitfield || Bit0-2: BlendEquation.  
 +
|-
 +
| 0x782+8*N || SetBlendPerTargetColorSourceCoeff || 1 || bitfield || Bit0-4: ?, bit14-15: ?
 +
|-
 +
| 0x783+8*N || SetBlendPerTargetColorDestCoeff || 1 || bitfield || Bit0-4: ?, bit14-15: ?
 +
|-
 +
| 0x784+8*N || SetBlendPerTargetAlphaOp || 1 || bitfield || Bit0-2: BlendEquation
 
|-
 
|-
| 0x54D || MultisampleEnable || 1 || ||
+
| 0x785+8*N || SetBlendPerTargetAlphaSourceCoeff || 1 || bitfield || Bit0-4: ?, bit14-15: ?
 +
|-
 +
| 0x786+8*N || SetBlendPerTargetAlphaDestCoeff || 1 || bitfield || Bit0-4: ?, bit14-15: ?
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x54E || || 1 || bool || SetRenderTargets writes 0 here if an optional buffer is NULL.
+
| 0x7C0+2*N || SetVertexStreamLimitAA || 1 || gpuva ||
 
|-
 
|-
| 0x54F || MultisampleControl || 1 || bool || bit0: AlphaToCoverageEnable, bit1+: ?
+
| 0x7C1+2*N || SetVertexStreamLimitAB || 1 || gpuva ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x554 || RenderEnableOffset || 2 || gpuva ||
+
| 0x7E0+2*N || SetVertexStreamLimitBA || 1 || gpuva ||
 +
|-
 +
| 0x7E1+2*N || SetVertexStreamLimitBB || 1 || gpuva ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x556 || RenderEnableMode || 1 || enum || 0=False, 1=True, 2=Conditional, 3=RenderIfEqual, 4=RenderIfNotEqual,
+
| 0x800+16*N || SetPipelineShader || 1 || ||
 +
|-
 +
| 0x801+16*N || SetPipelineProgram || 1 || ||
 +
|-
 +
| 0x802+16*N || SetPipelineReservedA || 1 || ||
 +
|-
 +
| 0x803+16*N || SetPipelineRegisterCount || 1 || ||
 +
|-
 +
| 0x804+16*N || SetPipelineBinding || 1 || ||
 +
|-
 +
| 0x805+16*N || SetPipelineReservedB || 1 || ||
 +
|-
 +
| 0x806+16*N || SetPipelineReservedC || 1 || ||
 +
|-
 +
| 0x807+16*N || SetPipelineReservedD || 1 || ||
 
|-
 
|-
| 0x557 || TexSamplerPoolOffset (???) || 2 || gpuva ||
+
| 0x808+16*N || SetPipelineReservedE || 1 || ||
 +
|- style="border-top: double"
 +
| 0x820 || || 1 || || Select tessellation control program.
 
|-
 
|-
| 0x558 || TexSamplerPoolMaximumIndex (???) || 1 || bitfield || Bit0-19: Maximum
+
| 0x821 || || 1 || || Specify tessellation control program entry point.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x55B || PolygonOffsetFactor || 1 || float ||
+
| 0x830 || || 1 || || Select tessellation evaluation program.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x55D || TexHeaderPoolOffset (???) || 2 || gpuva ||
+
| 0x840 || || 1 || || Select geometry program.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x55F || TexHeaderPoolMaximumIndex (???) || 1 || bitfield || Bit0-21: Maximum
+
| 0x850 || || 1 || || Select fragment program.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x56D || CsaaEnable || 1 || bool ||
+
| 0x8C0 || SetFalcon00 || 1 || uint ||
 +
|-
 +
| 0x8C1 || SetFalcon01 || 1 || uint ||
 +
|-
 +
| 0x8C2 || SetFalcon02 || 1 || uint ||
 +
|-
 +
| 0x8C3 || SetFalcon03 || 1 || uint ||
 +
|-
 +
| 0x8C4 || SetFalcon04 || 1 || uint ||
 +
|-
 +
| 0x8C5 || SetFalcon05 || 1 || uint ||
 +
|-
 +
| 0x8C6 || SetFalcon06 || 1 || uint ||
 +
|-
 +
| 0x8C7 || SetFalcon07 || 1 || uint ||
 +
|-
 +
| 0x8C8 || SetFalcon08 || 1 || uint ||
 +
|-
 +
| 0x8C9 || SetFalcon09 || 1 || uint ||
 +
|-
 +
| 0x8CA || SetFalcon10 || 1 || uint ||
 +
|-
 +
| 0x8CB || SetFalcon11 || 1 || uint ||
 +
|-
 +
| 0x8CC || SetFalcon12 || 1 || uint ||
 +
|-
 +
| 0x8CD || SetFalcon13 || 1 || uint ||
 +
|-
 +
| 0x8CE || SetFalcon14 || 1 || uint ||
 +
|-
 +
| 0x8CF || SetFalcon15 || 1 || uint ||
 +
|-
 +
| 0x8D0 || SetFalcon16 || 1 || uint ||
 +
|-
 +
| 0x8D1 || SetFalcon17 || 1 || uint ||
 +
|-
 +
| 0x8D2 || SetFalcon18 || 1 || uint ||
 +
|-
 +
| 0x8D3 || SetFalcon19 || 1 || uint ||
 +
|-
 +
| 0x8D4 || SetFalcon20 || 1 || uint ||
 +
|-
 +
| 0x8D5 || SetFalcon21 || 1 || uint ||
 +
|-
 +
| 0x8D6 || SetFalcon22 || 1 || uint ||
 +
|-
 +
| 0x8D7 || SetFalcon23 || 1 || uint ||
 +
|-
 +
| 0x8D8 || SetFalcon24 || 1 || uint ||
 +
|-
 +
| 0x8D9 || SetFalcon25 || 1 || uint ||
 +
|-
 +
| 0x8DA || SetFalcon26 || 1 || uint ||
 +
|-
 +
| 0x8DB || SetFalcon27 || 1 || uint ||
 +
|-
 +
| 0x8DC || SetFalcon28 || 1 || uint ||
 +
|-
 +
| 0x8DD || SetFalcon29 || 1 || uint ||
 +
|-
 +
| 0x8DE || SetFalcon30 || 1 || uint ||
 +
|-
 +
| 0x8DF || SetFalcon31 || 1 || uint ||
 +
|-
 +
| 0x8E0 || SetConstantBufferSelectorA || 1 || uint || Bit0-16: Size
 +
|-
 +
| 0x8E1 || SetConstantBufferSelectorB || 1 || gpuva ||
 +
|-
 +
| 0x8E2 || SetConstantBufferSelectorC || 1 || gpuva ||
 +
|-
 +
| 0x8E3 || LoadConstantBufferOffset || 1 || uint || Bit0-15: Offset. BindImage writes "8*i + 0x120" here. BindSeparateSampler writes "8*i + 0x568" here. BindSeparateTexture uses "8*i + 0x168". BindTexture uses 8*i + 32. TODO: BindStorageBuffer, UpdateUniformBuffer, etc
 +
|-
 +
| 0x8E4+N || LoadConstantBuffer || 16 || uint ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x56F || PolygonOffsetOffset || 1 || float || Float multiplied by 2 is written here.
+
| 0x900+8*N || BindGroupReservedA || 1 || ||
 +
|-
 +
| 0x901+8*N || BindGroupReservedB || 1 || ||
 +
|-
 +
| 0x902+8*N || BindGroupReservedC || 1 || ||
 +
|-
 +
| 0x903+8*N || BindGroupReservedD || 1 || ||
 +
|-
 +
| 0x904+8*N || BindGroupConstantBuffer || 1 || bitfield || n=0..4. Bit0: Valid, bit4-8: ShaderSlot
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x574 || MultisampleMode || 1 || || Written by SetRenderTargets, possible values: 0, 2, 4, 5, 6.
+
| 0x980 || SetColorClamp || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x57F || || 1 || || SetRenderTargets optionally writes 0 here.
+
| 0x982 || SetBindlessTexture || 1 || ||
 
|-
 
|-
| 0x580 || || 1 || || SetRenderTargets optionally writes 0 here.
+
| 0x983 || SetTrapHandler || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x582 || ProgramRegion (???) || 2 || gpuva ||
+
| 0xA00 || SetStreamOutLayoutSelect || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x591 || PrimitiveRestartEnable || 1 || bool ||
+
| 0xCCF+N || SetShaderPerformanceCounterValueUpper || 8 || ||
 +
|-
 +
| 0xCD7+N || SetShaderPerformanceCounterValue || 8 || ||
 +
|-
 +
| 0xCDF+N || SetShaderPerformanceCounterEvent || 8 || ||
 +
|-
 +
| 0xCE7+N || SetShaderPerformanceCounterControlA || 8 || ||
 +
|-
 +
| 0xCEF+N || SetShaderPerformanceCounterControlB || 8 || ||
 
|-
 
|-
| 0x592 || PrimitiveRestartIndex || 1 || uint ||
+
| 0xCF7 || SetShaderPerformanceCounterTrapControl || 1 || ||
 +
|-
 +
| 0xCF8 || StartShaderPerformanceCounter || 1 || ||
 +
|-
 +
| 0xCF9 || StopShaderPerformanceCounter || 1 || ||
 +
|- style="border-top: double"
 +
| 0xD00+N || SetMmeShadowScratch || 128 || uint[0x80] || Mostly general purpose, sometimes accessed by FirmwareCall.
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x599 || CubeMapInterFaceFiltering (???) || 1 || bitfield || Bit0-1: Mode (0=UseWrap, 1=OverrideWrap, 2=AutoSpanSeam, 3=AutoCrossSeam)
+
| 0xE00+N*2 || CallMmeMacro || 1 || uint || n=0..0x7f. Writing here calls a bound macro with value written put in r1.
 +
|-
 +
| 0xE01+N*2 || CallMmeData || 1 || pipe || Used to send variable number of arguments to macro via the "parm" instruction.
 +
|}
 +
 
 +
= MAXWELL_COMPUTE_B =
 +
{| class=wikitable
 +
! Register || Name || Size || Type || Notes
 +
|-
 +
| 0x0 || SetObject || 1 || bitfield || Bit0-15: ClassId, bit16-20: EngineId
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x5A4 || ShaderControl (???) || 1 || bitfield || Bit0: Partial (0=Zero, 1=Infinity), bit1: Fp32NanBehavior (0=Legacy, 1=Fp64Compatible), bit2: Fp32F21NanBehavior (0=PassZero, 1=PassIndefinite), bit16: ZeroTimesAnythingIsZero
+
| 0x40 || NoOperation || 1 || ||
 +
|-
 +
| 0x41 || SetNotifyA || 1 || gpuva ||
 +
|-
 +
| 0x42 || SetNotifyB || 1 || gpuva ||
 
|-
 
|-
| 0x5A5 || BindConstantBuffer (???) || 1 || bitfield || Bit0: Valid, bit8-12: ShaderSlot
+
| 0x43 || Notify || 1 || || 0=WriteOnly, 1=WriteThenAwaken
 
|-
 
|-
| 0x5A6 || InvalidateShaderCachesNoWfi (???) || 1 || bitfield || Bit0: Instruction, bit4: GlobalData, bit8: Uniform, bit12: Constant
+
| 0x44 || WaitForIdle || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x5F2 || DrawElementsIndirectAddr || 2 || gpuva || TODO
+
| 0x4C || SetGlobalRenderEnableA || 1 || ||
 +
|-
 +
| 0x4D || SetGlobalRenderEnableB || 1 || ||
 +
|-
 +
| 0x4E || SetGlobalRenderEnableC || 1 || ||
 +
|-
 +
| 0x4F || SendGoIdle || 1 || ||
 +
|-
 +
| 0x50 || PmTrigger || 1 || ||
 +
|-
 +
| 0x51 || PmTriggerWfi || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x5F6 || DrawElementsIndirectFlag? || 1 || bool || TODO
+
| 0x54 || SetInstrumentationMethodHeader || 1 || ||
 +
|-
 +
| 0x55 || SetInstrumentationMethodData || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x620+N || VertexStreamNEnableDivisor || 1 || bool || n=0...15.
+
| 0x60 || LineLengthIn || 1 || ||
 +
|-
 +
| 0x61 || LineCount || 1 || ||
 +
|-
 +
| 0x62 || OffsetOutUpper || 1 || ||
 +
|-
 +
| 0x63 || OffsetOut || 1 || ||
 +
|-
 +
| 0x64 || PitchOut || 1 || ||
 +
|-
 +
| 0x65 || SetDstBlockSize || 1 || ||
 +
|-
 +
| 0x66 || SetDstWidth || 1 || ||
 +
|-
 +
| 0x67 || SetDstHeight || 1 || ||
 +
|-
 +
| 0x68 || SetDstDepth || 1 || ||
 +
|-
 +
| 0x69 || SetDstLayer || 1 || ||
 +
|-
 +
| 0x6A || SetDstOriginBytesX || 1 || ||
 +
|-
 +
| 0x6B || SetDstOriginSamplesY || 1 || ||
 +
|-
 +
| 0x6C || LaunchDma || 1 || ||
 +
|-
 +
| 0x6D || LoadInlineData || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x646 || PolygonCullFaceEnable || 1 || bool ||
+
| 0x77 || SetI2mSemaphoreA || 1 || ||
 
|-
 
|-
| 0x647 || PolygonFrontFace || 1 || bitfield || Bit0: Enable. Always ORR'd with 0x9000.
+
| 0x78 || SetI2mSemaphoreB || 1 || ||
 
|-
 
|-
| 0x648 || PolygonCullFaceConfig || 1 || bitfield || TODO: 0x404/0x405/0x408
+
| 0x79 || SetI2mSemaphoreC || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x651 || RenderEnableOverride || 1 || bitfield || Bit0-1: 0=UseRenderEnable, 1=AlwaysRender, 2=NeverRender
+
| 0x7C || SetI2mSpareNoop00 || 1 || ||
 +
|-
 +
| 0x7D || SetI2mSpareNoop01 || 1 || ||
 +
|-
 +
| 0x7E || SetI2mSpareNoop02 || 1 || ||
 +
|-
 +
| 0x7F || SetI2mSpareNoop03 || 1 || ||
 +
|-
 +
| 0x80 || SetValidSpanOverflowAreaA || 1 || ||
 +
|-
 +
| 0x81 || SetValidSpanOverflowAreaB || 1 || ||
 +
|-
 +
| 0x82 || SetValidSpanOverflowAreaC || 1 || ||
 +
|-
 +
| 0x83 || SetCoalesceWaitingPeriodUnit || 1 || ||
 +
|-
 +
| 0x84 || PerfmonTransfer || 1 || ||
 +
|-
 +
| 0x85 || SetShaderSharedMemoryWindow || 1 || ||
 +
|-
 +
| 0x86 || SetSelectMaxwellTextureHeaders || 1 || ||
 +
|-
 +
| 0x87 || InvalidateShaderCaches || 1 || ||
 +
|-
 +
| 0x88 || SetReservedSwMethod00 || 1 || ||
 +
|-
 +
| 0x89 || SetReservedSwMethod01 || 1 || ||
 +
|-
 +
| 0x8A || SetReservedSwMethod02 || 1 || ||
 +
|-
 +
| 0x8B || SetReservedSwMethod03 || 1 || ||
 +
|-
 +
| 0x8C || SetReservedSwMethod04 || 1 || ||
 +
|-
 +
| 0x8D || SetReservedSwMethod05 || 1 || ||
 +
|-
 +
| 0x8E || SetReservedSwMethod06 || 1 || ||
 +
|-
 +
| 0x8F || SetReservedSwMethod07 || 1 || ||
 +
|-
 +
| 0x90 || SetCwdControl || 1 || ||
 +
|-
 +
| 0x91 || InvalidateTextureHeaderCacheNoWfi || 1 || ||
 +
|-
 +
| 0x92 || SetCwdRefCounter || 1 || ||
 +
|-
 +
| 0x93 || SetReservedSwMethod08 || 1 || ||
 +
|-
 +
| 0x94 || SetReservedSwMethod09 || 1 || ||
 +
|-
 +
| 0x95 || SetReservedSwMethod10 || 1 || ||
 +
|-
 +
| 0x96 || SetReservedSwMethod11 || 1 || ||
 +
|-
 +
| 0x97 || SetReservedSwMethod12 || 1 || ||
 +
|-
 +
| 0x98 || SetReservedSwMethod13 || 1 || ||
 +
|-
 +
| 0x99 || SetReservedSwMethod14 || 1 || ||
 +
|-
 +
| 0x9A || SetReservedSwMethod15 || 1 || ||
 +
|-
 +
| 0x9B || SetGwcScgType || 1 || ||
 +
|-
 +
| 0x9C || SetScgControl || 1 || ||
 +
|-
 +
| 0x9D || InvalidateConstantBufferCacheA || 1 || ||
 +
|-
 +
| 0x9E || InvalidateConstantBufferCacheB || 1 || ||
 +
|-
 +
| 0x9F || InvalidateConstantBufferCacheC || 1 || ||
 +
|-
 +
| 0xA0 || SetComputeClassVersion || 1 || ||
 +
|-
 +
| 0xA1 || CheckComputeClassVersion || 1 || ||
 +
|-
 +
| 0xA2 || SetQmdVersion || 1 || ||
 +
|-
 +
| 0xA3 || SetWfiConfig || 1 || ||
 +
|-
 +
| 0xA4 || CheckQmdVersion || 1 || ||
 +
|-
 +
| 0xA5 || WaitForIdleScgType || 1 || ||
 +
|-
 +
| 0xA6 || InvalidateSkedCaches || 1 || ||
 +
|-
 +
| 0xA7 || SetScgRenderEnableControl || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x64C || InvalidateConstantBufferCache (???) || 1 || bitfield || Bit0: ThruL2
+
| 0xAC || SetCwdSlotCount || 1 || ||
 +
|-
 +
| 0xAD || SendPcasA || 1 || ||
 +
|-
 +
| 0xAE || SendPcasB || 1 || ||
 +
|-
 +
| 0xAF || SendSignalingPcasB || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x64F || DepthClamp || 1 || || TODO: 0x101A is written when enabled, 0x181D when disabled.
+
| 0xB9 || SetShaderLocalMemoryNonThrottledA || 1 || ||
 +
|-
 +
| 0xBA || SetShaderLocalMemoryNonThrottledB || 1 || ||
 +
|-
 +
| 0xBB || SetShaderLocalMemoryNonThrottledC || 1 || ||
 +
|-
 +
| 0xBC || SetShaderLocalMemoryThrottledA || 1 || ||
 +
|-
 +
| 0xBD || SetShaderLocalMemoryThrottledB || 1 || ||
 +
|-
 +
| 0xBE || SetShaderLocalMemoryThrottledC || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x66F || DepthBoundsEnable || 1 || bool ||
+
| 0xC4 || SetSpaVersion || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x671 || ColorLogicOpEnable || 1 || bool || Used for all LogicOps except 3.
+
| 0x140 || SetFalcon00 || 1 || ||
 +
|-
 +
| 0x141 || SetFalcon01 || 1 || ||
 +
|-
 +
| 0x142 || SetFalcon02 || 1 || ||
 +
|-
 +
| 0x143 || SetFalcon03 || 1 || ||
 +
|-
 +
| 0x144 || SetFalcon04 || 1 || ||
 +
|-
 +
| 0x145 || SetFalcon05 || 1 || ||
 +
|-
 +
| 0x146 || SetFalcon06 || 1 || ||
 +
|-
 +
| 0x147 || SetFalcon07 || 1 || ||
 +
|-
 +
| 0x148 || SetFalcon08 || 1 || ||
 +
|-
 +
| 0x149 || SetFalcon09 || 1 || ||
 +
|-
 +
| 0x14A || SetFalcon10 || 1 || ||
 +
|-
 +
| 0x14B || SetFalcon11 || 1 || ||
 +
|-
 +
| 0x14C || SetFalcon12 || 1 || ||
 +
|-
 +
| 0x14D || SetFalcon13 || 1 || ||
 +
|-
 +
| 0x14E || SetFalcon14 || 1 || ||
 +
|-
 +
| 0x14F || SetFalcon15 || 1 || ||
 +
|-
 +
| 0x150 || SetFalcon16 || 1 || ||
 +
|-
 +
| 0x151 || SetFalcon17 || 1 || ||
 +
|-
 +
| 0x152 || SetFalcon18 || 1 || ||
 +
|-
 +
| 0x153 || SetFalcon19 || 1 || ||
 +
|-
 +
| 0x154 || SetFalcon20 || 1 || ||
 +
|-
 +
| 0x155 || SetFalcon21 || 1 || ||
 +
|-
 +
| 0x156 || SetFalcon22 || 1 || ||
 +
|-
 +
| 0x157 || SetFalcon23 || 1 || ||
 +
|-
 +
| 0x158 || SetFalcon24 || 1 || ||
 +
|-
 +
| 0x159 || SetFalcon25 || 1 || ||
 +
|-
 +
| 0x15A || SetFalcon26 || 1 || ||
 +
|-
 +
| 0x15B || SetFalcon27 || 1 || ||
 +
|-
 +
| 0x15C || SetFalcon28 || 1 || ||
 +
|-
 +
| 0x15D || SetFalcon29 || 1 || ||
 +
|-
 +
| 0x15E || SetFalcon30 || 1 || ||
 
|-
 
|-
| 0x672 || ColorLogicOpType || 1 || bitfield || Bit0-7: LogicOp, bit8-15: unknown, always 0x15.
+
| 0x15F || SetFalcon31 || 1 || ||
 +
|- style="border-top: double"
 +
| 0x1DF || SetShaderLocalMemoryWindow || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x689 || SetSpare (???) || 1 || uint[4] ||
+
| 0x1E4 || SetShaderLocalMemoryA || 1 || ||
 +
|-
 +
| 0x1E8 || SetShaderLocalMemoryB || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x68B || PipeNop || 1 || trigger || Always 0 is written here. During zcull ctx-save, spammed when enabling raster, ...
+
| 0x365 || SetShaderCacheControl || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x6C0 || ReportSemaphoreOffset || 2 || gpuva ||
+
| 0x379 || SetSmTimeoutInterval || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x6C2 || ReportSemaphorePayload || 1 || || 0 is written here during most queries.
+
| 0x3D1 || SetSpareNoop12 || 1 || ||
 +
|-
 +
| 0x3D2 || SetSpareNoop13 || 1 || ||
 
|-
 
|-
| 0x6C3 || ReportSemaphoreControl || 1 || bitfield || Bit0-1: Operation (0=Release, 3=Trap), bit2: FlushDisable, bit20: AwakenEnable, bit28: StructureSize (0=FourWords, 1=OneWord)
+
| 0x3D3 || SetSpareNoop14 || 1 || ||
 +
|-
 +
| 0x3D4 || SetSpareNoop15 || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x700+4*N || VertexStreamNStride || 1 || uint || Bit0-11: Stride. TODO: This has more stuff according to nouveau. n=0..31
+
| 0x410 || SetSpareNoop00 || 1 || ||
 +
|-
 +
| 0x411 || SetSpareNoop01 || 1 || ||
 +
|-
 +
| 0x412 || SetSpareNoop02 || 1 || ||
 +
|-
 +
| 0x413 || SetSpareNoop03 || 1 || ||
 +
|-
 +
| 0x414 || SetSpareNoop04 || 1 || ||
 +
|-
 +
| 0x415 || SetSpareNoop05 || 1 || ||
 +
|-
 +
| 0x416 || SetSpareNoop06 || 1 || ||
 +
|-
 +
| 0x417 || SetSpareNoop07 || 1 || ||
 +
|-
 +
| 0x418 || SetSpareNoop08 || 1 || ||
 
|-
 
|-
| 0x701+4*N || VertexBufferStartAddr || 2 || gpuva || TODO: Incorrecto
+
| 0x419 || SetSpareNoop09 || 1 || ||
 
|-
 
|-
| 0x703+4*N || VertexStreamNDivisor || || ||
+
| 0x41A || SetSpareNoop10 || 1 || ||
 
|-
 
|-
| 0x7C0+2*N || VertexBufferEndAddr || 2 || gpuva ||
+
| 0x41B || SetSpareNoop11 || 1 || ||
 +
|- style="border-top: double"
 +
| 0x483 || InvalidateSamplerCacheAll || 1 || ||
 
|-
 
|-
| 0x781+8*N || BlendNRgbEquation || 1 || bitfield || Bit0-2: BlendEquation.
+
| 0x484 || InvalidateTextureHeaderCacheAll || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4A2 || InvalidateTextureDataCacheNoWfi || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4AA || ActivatePerfSettingsForComputeContext || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4CC || InvalidateSamplerCache || 1 || ||
 
|-
 
|-
| 0x782+8*N || BlendNRgbFunctionSrc || 1 || bitfield || Bit0-4: ?, bit14-15: ?
+
| 0x4CD || InvalidateTextureHeaderCache || 1 || ||
 
|-
 
|-
| 0x783+8*N || BlendNRgbFunctionDst || 1 || bitfield || Bit0-4: ?, bit14-15: ?
+
| 0x4CE || InvalidateTextureDataCache || 1 || ||
 +
|- style="border-top: double"
 +
| 0x509 || InvalidateSamplerCacheNoWfi || 1 || ||
 +
|- style="border-top: double"
 +
| 0x54A || SetShaderExceptions || 1 || ||
 +
|- style="border-top: double"
 +
| 0x554 || SetRenderEnableA || 1 || ||
 
|-
 
|-
| 0x784+8*N || BlendNAlphaEquation || 1 || bitfield || Bit0-2: BlendEquation
+
| 0x555 || SetRenderEnableB || 1 || ||
 
|-
 
|-
| 0x785+8*N || BlendNAlphaFunctionSrc || 1 || bitfield || Bit0-4: ?, bit14-15: ?
+
| 0x556 || SetRenderEnableC || 1 || ||
 
|-
 
|-
| 0x786+8*N || BlendNAlphaFunctionDst || 1 || bitfield || Bit0-4: ?, bit14-15: ?
+
| 0x557 || SetTexSamplerPoolA || 1 || ||
 +
|-
 +
| 0x558 || SetTexSamplerPoolB || 1 || ||
 +
|-
 +
| 0x559 || SetTexSamplerPoolC || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x820 || || 1 || || Select tessellation control program.
+
| 0x55D || SetTexHeaderPoolA || 1 || ||
 +
|-
 +
| 0x55E || SetTexHeaderPoolB || 1 || ||
 
|-
 
|-
| 0x821 || || 1 || || Specify tessellation control program entry point.
+
| 0x55F || SetTexHeaderPoolC || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x830 || || 1 || || Select tessellation evaluation program.
+
| 0x582 || SetProgramRegionA || 1 || ||
 +
|-
 +
| 0x583 || SetProgramRegionB || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x840 || || 1 || || Select geometry program.
+
| 0x5A6 || InvalidateShaderCachesNoWfi || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x850 || || 1 || || Select fragment program.
+
| 0x651 || SetRenderEnableOverride || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x8C0+N || FirmwareCallN || 8 || uint || Invokes GPU microcode firmware blob.
+
| 0x68B || PipeNop || 1 || ||
 +
|-
 +
| 0x68C || SetSpare00 || 1 || ||
 +
|-
 +
| 0x68D || SetSpare01 || 1 || ||
 +
|-
 +
| 0x68E || SetSpare02 || 1 || ||
 +
|-
 +
| 0x68F || SetSpare03 || 1 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x8E0 || ConstantBufferSelectorSize || 1 || uint || Bit0-16: Size
+
| 0x6C0 || SetReportSemaphoreA || 1 || ||
 +
|-
 +
| 0x6C1 || SetReportSemaphoreB || 1 || ||
 
|-
 
|-
| 0x8E1 || ConstantBufferSelectorAddr || 2 || gpuva ||
+
| 0x6C2 || SetReportSemaphoreC || 1 || ||
 
|-
 
|-
| 0x8E3 || LoadConstantBufferOffset || 1 || uint || Bit0-15: Offset. BindImage writes "8*i + 0x120" here. BindSeparateSampler writes "8*i + 0x568" here. BindSeparateTexture uses "8*i + 0x168". BindTexture uses 8*i + 32. TODO: BindStorageBuffer, UpdateUniformBuffer, etc
+
| 0x6C3 || SetReportSemaphoreD || 1 || ||
 +
|- style="border-top: double"
 +
| 0x982 || SetBindlessTexture || 1 || ||
 
|-
 
|-
| 0x8E4 || LoadConstantBuffer || 1 || uint[16] ||
+
| 0x983 || SetTrapHandler || 1 || ||
 +
|- style="border-top: double"
 +
| 0xCCF || SetShaderPerformanceCounterValueUpper || 8 || ||
 +
|- style="border-top: double"
 +
| 0xCD7 || SetShaderPerformanceCounterValue || 8 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x904+8*N || ConstBufferNBind || 1 || bitfield || n=0..4. Bit0: Valid, bit4-8: Index
+
| 0xCDF || SetShaderPerformanceCounterEvent || 8 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xD00 || SetMmeShadowScratch || uint[0x80] || 128 || Mostly general purpose, sometimes accessed by FirmwareCall.
+
| 0xCE7 || SetShaderPerformanceCounterControlA || 8 || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0xE00+N*2 || CallMmeMacroN || 1 || uint || n=0..0x7f. Writing here calls a bound macro with value written put in r1.
+
| 0xCEF || SetShaderPerformanceCounterControlB || 8 || ||
 +
|- style="border-top: double"
 +
| 0xCF7 || SetShaderPerformanceCounterTrapControl || 1 || ||
 
|-
 
|-
| 0xE01+N*2 || CallMmeDataN || 1 || pipe || Used to send variable number of arguments to macro via the "parm" instruction.
+
| 0xCF8 || StartShaderPerformanceCounter || 1 || ||
 +
|-
 +
| 0xCF9 || StopShaderPerformanceCounter || 1 || ||
 +
|- style="border-top: double"
 +
| 0xD00 || SetMmeShadowScratch || 8 || ||
 
|}
 
|}
  
TODO: (Tiled)Downsample, Copy*, Dispatch*, DrawTexture/DrawTransformFeedback, BindImages, BindProgram, BindSeprarateSamplers, BindSeprarateTextures, BindTextures.
+
= KEPLER_INLINE_TO_MEMORY_B =
 +
{| class=wikitable
 +
! Register || Name || Size || Type || Notes
 +
|-
 +
| 0x0 || SetObject || 1 || bitfield || Bit0-15: ClassId, bit16-20: EngineId
 +
|- style="border-top: double"
 +
| 0x40 || NoOperation || 1 || ||
 +
|-
 +
| 0x41 || SetNotifyA || 1 || gpuva ||
 +
|-
 +
| 0x42 || SetNotifyB || 1 || gpuva ||
 +
|-
 +
| 0x43 || Notify || 1 || || 0=WriteOnly, 1=WriteThenAwaken
 +
|-
 +
| 0x44 || WaitForIdle || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4C || SetGlobalRenderEnableA || 1 || ||
 +
|-
 +
| 0x4D || SetGlobalRenderEnableB || 1 || ||
 +
|-
 +
| 0x4E || SetGlobalRenderEnableC || 1 || ||
 +
|-
 +
| 0x4F || SendGoIdle || 1 || ||
 +
|-
 +
| 0x50 || PmTrigger || 1 || ||
 +
|-
 +
| 0x51 || PmTriggerWfi || 1 || ||
 +
|- style="border-top: double"
 +
| 0x54 || SetInstrumentationMethodHeader || 1 || ||
 +
|-
 +
| 0x55 || SetInstrumentationMethodData || 1 || ||
 +
|- style="border-top: double"
 +
| 0x60 || LineLengthIn || 1 || ||
 +
|-
 +
| 0x61 || LineCount || 1 || ||
 +
|-
 +
| 0x62 || OffsetOutUpper || 1 || ||
 +
|-
 +
| 0x63 || OffsetOut || 1 || ||
 +
|-
 +
| 0x64 || PitchOut || 1 || ||
 +
|-
 +
| 0x65 || SetDstBlockSize || 1 || ||
 +
|-
 +
| 0x66 || SetDstWidth || 1 || ||
 +
|-
 +
| 0x67 || SetDstHeight || 1 || ||
 +
|-
 +
| 0x68 || SetDstDepth || 1 || ||
 +
|-
 +
| 0x69 || SetDstLayer || 1 || ||
 +
|-
 +
| 0x6A || SetDstOriginBytesX || 1 || ||
 +
|-
 +
| 0x6B || SetDstOriginSamplesY || 1 || ||
 +
|-
 +
| 0x6C || LaunchDma || 1 || ||
 +
|-
 +
| 0x6D || LoadInlineData || 1 || ||
 +
|- style="border-top: double"
 +
| 0x77 || SetI2mSemaphoreA || 1 || ||
 +
|-
 +
| 0x78 || SetI2mSemaphoreB || 1 || ||
 +
|-
 +
| 0x79 || SetI2mSemaphoreC || 1 || ||
 +
|- style="border-top: double"
 +
| 0x7C || SetI2mSpareNoop00 || 1 || ||
 +
|-
 +
| 0x7D || SetI2mSpareNoop01 || 1 || ||
 +
|-
 +
| 0x7E || SetI2mSpareNoop02 || 1 || ||
 +
|-
 +
| 0x7F || SetI2mSpareNoop03 || 1 || ||
 +
|-
 +
| 0x80 || SetFalcon00 || 1 || ||
 +
|-
 +
| 0x81 || SetFalcon01 || 1 || ||
 +
|-
 +
| 0x82 || SetFalcon02 || 1 || ||
 +
|-
 +
| 0x83 || SetFalcon03 || 1 || ||
 +
|-
 +
| 0x84 || SetFalcon04 || 1 || ||
 +
|-
 +
| 0x85 || SetFalcon05 || 1 || ||
 +
|-
 +
| 0x86 || SetFalcon06 || 1 || ||
 +
|-
 +
| 0x87 || SetFalcon07 || 1 || ||
 +
|-
 +
| 0x88 || SetFalcon08 || 1 || ||
 +
|-
 +
| 0x89 || SetFalcon09 || 1 || ||
 +
|-
 +
| 0x8A || SetFalcon10 || 1 || ||
 +
|-
 +
| 0x8B || SetFalcon11 || 1 || ||
 +
|-
 +
| 0x8C || SetFalcon12 || 1 || ||
 +
|-
 +
| 0x8D || SetFalcon13 || 1 || ||
 +
|-
 +
| 0x8E || SetFalcon14 || 1 || ||
 +
|-
 +
| 0x8F || SetFalcon15 || 1 || ||
 +
|-
 +
| 0x90 || SetFalcon16 || 1 || ||
 +
|-
 +
| 0x91 || SetFalcon17 || 1 || ||
 +
|-
 +
| 0x92 || SetFalcon18 || 1 || ||
 +
|-
 +
| 0x93 || SetFalcon19 || 1 || ||
 +
|-
 +
| 0x94 || SetFalcon20 || 1 || ||
 +
|-
 +
| 0x95 || SetFalcon21 || 1 || ||
 +
|-
 +
| 0x96 || SetFalcon22 || 1 || ||
 +
|-
 +
| 0x97 || SetFalcon23 || 1 || ||
 +
|-
 +
| 0x98 || SetFalcon24 || 1 || ||
 +
|-
 +
| 0x99 || SetFalcon25 || 1 || ||
 +
|-
 +
| 0x9A || SetFalcon26 || 1 || ||
 +
|-
 +
| 0x9B || SetFalcon27 || 1 || ||
 +
|-
 +
| 0x9C || SetFalcon28 || 1 || ||
 +
|-
 +
| 0x9D || SetFalcon29 || 1 || ||
 +
|-
 +
| 0x9E || SetFalcon30 || 1 || ||
 +
|-
 +
| 0x9F || SetFalcon31 || 1 || ||
 +
|- style="border-top: double"
 +
| 0x554 || SetRenderEnableA || 1 || ||
 +
|-
 +
| 0x555 || SetRenderEnableB || 1 || ||
 +
|-
 +
| 0x556 || SetRenderEnableC || 1 || ||
 +
|- style="border-top: double"
 +
| 0x651 || SetRenderEnableOverride || 1 || ||
 +
|- style="border-top: double"
 +
| 0xD00 || SetMmeShadowScratch || uint[0x100] || 256 || Mostly general purpose, sometimes accessed by FirmwareCall.
 +
|}
  
= DMA =
+
= FERMI_TWOD_A =
 
{| class=wikitable
 
{| class=wikitable
 
! Register || Name || Size || Type || Notes
 
! Register || Name || Size || Type || Notes
 
|-
 
|-
| 0x090 || SetSemaphoreA || 1 || ||  
+
| 0x0 || SetObject || 1 || bitfield || Bit0-15: ClassId, bit16-20: EngineId
 +
|- style="border-top: double"
 +
| 0x40 || NoOperation || 1 || ||
 +
|-
 +
| 0x41 || SetNotifyA || 1 || gpuva ||
 +
|-
 +
| 0x42 || SetNotifyB || 1 || gpuva ||
 +
|-
 +
| 0x43 || Notify || 1 || || 0=WriteOnly, 1=WriteThenAwaken
 +
|-
 +
| 0x44 || WaitForIdle || 1 || ||
 +
|-
 +
| 0x45 || LoadMmeInstructionRamPointer || 1 || uint ||
 +
|-
 +
| 0x46 || LoadMmeInstructionRam || 1 || pipe || Writes to and increments MmeInstructionRamPointer by 1.
 +
|-
 +
| 0x47 || LoadMmeStartAddressRamPointer || 1 || uint ||
 +
|-
 +
| 0x48 || LoadMmeStartAddressRam || 1 || pipe ||
 +
|-
 +
| 0x49 || SetMmeShadowRamControl || 1 || uint || 0=MethodTrack, 1=MethodTrackWithFilter, 2=MethodPassthrough, 3=MethodReplay. Used during ClearColor.
 +
|- style="border-top: double"
 +
| 0x4C || SetGlobalRenderEnableA || 1 || ||
 +
|-
 +
| 0x4D || SetGlobalRenderEnableB || 1 || ||
 +
|-
 +
| 0x4E || SetGlobalRenderEnableC || 1 || ||
 +
|-
 +
| 0x4F || SendGoIdle || 1 || ||
 +
|-
 +
| 0x50 || PmTrigger || 1 || ||
 +
|- style="border-top: double"
 +
| 0x54 || SetInstrumentationMethodHeader || 1 || ||
 +
|-
 +
| 0x55 || SetInstrumentationMethodData || 1 || ||
 +
|- style="border-top: double"
 +
| 0x7B || SetMmeSwitchState || 1 || ||
 +
|- style="border-top: double"
 +
| 0x80 || SetDstFormat || 1 || ||
 +
|-
 +
| 0x81 || SetDstMemoryLayout || 1 || ||
 +
|-
 +
| 0x82 || SetDstBlockSize || 1 || ||
 +
|-
 +
| 0x83 || SetDstDepth || 1 || ||
 +
|-
 +
| 0x84 || SetDstLayer || 1 || ||
 +
|-
 +
| 0x85 || SetDstPitch || 1 || ||
 +
|-
 +
| 0x86 || SetDstWidth || 1 || ||
 +
|-
 +
| 0x87 || SetDstHeight || 1 || ||
 +
|-
 +
| 0x88 || SetDstOffsetUpper || 1 || ||
 +
|-
 +
| 0x89 || SetDstOffsetLower || 1 || ||
 +
|-
 +
| 0x8A || FlushAndInvalidateRopMiniCache || 1 || ||
 +
|-
 +
| 0x8B || SetSpareNoop06 || 1 || ||
 +
|-
 +
| 0x8C || SetSrcFormat || 1 || ||
 +
|-
 +
| 0x8D || SetSrcMemoryLayout || 1 || ||
 +
|-
 +
| 0x8E || SetSrcBlockSize || 1 || ||
 +
|-
 +
| 0x8F || SetSrcDepth || 1 || ||
 +
|-
 +
| 0x90 || TwodInvalidateTextureDataCache || 1 || ||
 +
|-
 +
| 0x91 || SetSrcPitch || 1 || ||
 +
|-
 +
| 0x92 || SetSrcWidth || 1 || ||
 +
|-
 +
| 0x93 || SetSrcHeight || 1 || ||
 +
|-
 +
| 0x94 || SetSrcOffsetUpper || 1 || ||
 +
|-
 +
| 0x95 || SetSrcOffsetLower || 1 || ||
 +
|-
 +
| 0x96 || SetPixelsFromMemorySectorPromotion || 1 || ||
 +
|-
 +
| 0x97 || SetSpareNoop12 || 1 || ||
 +
|-
 +
| 0x98 || SetNumProcessingClusters || 1 || ||
 +
|-
 +
| 0x99 || SetRenderEnableA || 1 || ||
 +
|-
 +
| 0x9A || SetRenderEnableB || 1 || ||
 +
|-
 +
| 0x9B || SetRenderEnableC || 1 || ||
 +
|-
 +
| 0x9C || SetSpareNoop08 || 1 || ||
 +
|-
 +
| 0x9D || SetSpareNoop01 || 1 || ||
 +
|-
 +
| 0x9E || SetSpareNoop11 || 1 || ||
 +
|-
 +
| 0x9F || SetSpareNoop07 || 1 || ||
 +
|-
 +
| 0xA0 || SetClipX0 || 1 || ||
 +
|-
 +
| 0xA1 || SetClipY0 || 1 || ||
 +
|-
 +
| 0xA2 || SetClipWidth || 1 || ||
 +
|-
 +
| 0xA3 || SetClipHeight || 1 || ||
 +
|-
 +
| 0xA4 || SetClipEnable || 1 || ||
 +
|-
 +
| 0xA5 || SetColorKeyFormat || 1 || ||
 +
|-
 +
| 0xA6 || SetColorKey || 1 || ||
 +
|-
 +
| 0xA7 || SetColorKeyEnable || 1 || ||
 +
|-
 +
| 0xA8 || SetRop || 1 || ||
 +
|-
 +
| 0xA9 || SetBeta1 || 1 || ||
 +
|-
 +
| 0xAA || SetBeta4 || 1 || ||
 +
|-
 +
| 0xAB || SetOperation || 1 || ||
 +
|-
 +
| 0xAC || SetPatternOffset || 1 || ||
 +
|-
 +
| 0xAD || SetPatternSelect || 1 || ||
 +
|-
 +
| 0xAE || SetDstColorRenderToZetaSurface || 1 || ||
 +
|-
 +
| 0xAF || SetSpareNoop04 || 1 || ||
 +
|-
 +
| 0xB0 || SetSpareNoop15 || 1 || ||
 +
|-
 +
| 0xB1 || SetSpareNoop13 || 1 || ||
 +
|-
 +
| 0xB2 || SetSpareNoop03 || 1 || ||
 +
|-
 +
| 0xB3 || SetSpareNoop14 || 1 || ||
 +
|-
 +
| 0xB4 || SetSpareNoop02 || 1 || ||
 +
|-
 +
| 0xB5 || SetCompression || 1 || ||
 +
|-
 +
| 0xB6 || SetSpareNoop09 || 1 || ||
 +
|-
 +
| 0xB7 || SetRenderEnableOverride || 1 || ||
 +
|-
 +
| 0xB8 || SetPixelsFromMemoryDirection || 1 || ||
 +
|-
 +
| 0xB9 || SetSpareNoop10 || 1 || ||
 +
|-
 +
| 0xBA || SetMonochromePatternColorFormat || 1 || ||
 +
|-
 +
| 0xBB || SetMonochromePatternFormat || 1 || ||
 +
|-
 +
| 0xBC || SetMonochromePatternColor0 || 1 || ||
 +
|-
 +
| 0xBD || SetMonochromePatternColor1 || 1 || ||
 +
|-
 +
| 0xBE || SetMonochromePattern0 || 1 || ||
 +
|-
 +
| 0xBF || SetMonochromePattern1 || 1 || ||
 +
|-
 +
| 0xC0 || ColorPatternX8R8G8B8 || 64 || ||
 +
|- style="border-top: double"
 +
| 0x100 || ColorPatternR5G6B5 || 32 || ||
 +
|- style="border-top: double"
 +
| 0x120 || ColorPatternX1R5G5B5 || 32 || ||
 +
|- style="border-top: double"
 +
| 0x140 || ColorPatternY8 || 16 || ||
 +
|- style="border-top: double"
 +
| 0x150 || SetRenderSolidPrimColor0 || 1 || ||
 +
|-
 +
| 0x151 || SetRenderSolidPrimColor1 || 1 || ||
 +
|-
 +
| 0x152 || SetRenderSolidPrimColor2 || 1 || ||
 +
|-
 +
| 0x153 || SetRenderSolidPrimColor3 || 1 || ||
 +
|-
 +
| 0x154 || SetMmeMemAddressA || 1 || ||
 +
|-
 +
| 0x155 || SetMmeMemAddressB || 1 || ||
 +
|-
 +
| 0x156 || SetMmeDataRamAddress || 1 || ||
 +
|-
 +
| 0x157 || MmeDmaRead || 1 || ||
 +
|-
 +
| 0x158 || MmeDmaReadFifoed || 1 || ||
 +
|-
 +
| 0x159 || MmeDmaWrite || 1 || ||
 +
|-
 +
| 0x15A || MmeDmaReduction || 1 || ||
 +
|-
 +
| 0x15B || MmeDmaSysmembar || 1 || ||
 +
|-
 +
| 0x15C || MmeDmaSync || 1 || ||
 +
|-
 +
| 0x15D || SetMmeDataFifoConfig || 1 || ||
 +
|- style="border-top: double"
 +
| 0x160 || RenderSolidPrimMode || 1 || ||
 +
|-
 +
| 0x161 || SetRenderSolidPrimColorFormat || 1 || ||
 +
|-
 +
| 0x162 || SetRenderSolidPrimColor || 1 || ||
 +
|-
 +
| 0x163 || SetRenderSolidLineTieBreakBits || 1 || ||
 +
|- style="border-top: double"
 +
| 0x178 || RenderSolidPrimPointXY || 1 || ||
 +
|- style="border-top: double"
 +
| 0x180 || RenderSolidPrimPoint || 128 || ||
 +
|- style="border-top: double"
 +
| 0x200 || SetPixelsFromCpuDataType || 1 || ||
 +
|-
 +
| 0x201 || SetPixelsFromCpuColorFormat || 1 || ||
 +
|-
 +
| 0x202 || SetPixelsFromCpuIndexFormat || 1 || ||
 +
|-
 +
| 0x203 || SetPixelsFromCpuMonoFormat || 1 || ||
 +
|-
 +
| 0x204 || SetPixelsFromCpuWrap || 1 || ||
 +
|-
 +
| 0x205 || SetPixelsFromCpuColor0 || 1 || ||
 +
|-
 +
| 0x206 || SetPixelsFromCpuColor1 || 1 || ||
 +
|-
 +
| 0x207 || SetPixelsFromCpuMonoOpacity || 1 || ||
 +
|- style="border-top: double"
 +
| 0x20E || SetPixelsFromCpuSrcWidth || 1 || ||
 +
|-
 +
| 0x20F || SetPixelsFromCpuSrcHeight || 1 || ||
 +
|-
 +
| 0x210 || SetPixelsFromCpuDxDuFrac || 1 || ||
 +
|-
 +
| 0x211 || SetPixelsFromCpuDxDuInt || 1 || ||
 +
|-
 +
| 0x212 || SetPixelsFromCpuDyDvFrac || 1 || ||
 +
|-
 +
| 0x213 || SetPixelsFromCpuDyDvInt || 1 || ||
 +
|-
 +
| 0x214 || SetPixelsFromCpuDstX0Frac || 1 || ||
 +
|-
 +
| 0x215 || SetPixelsFromCpuDstX0Int || 1 || ||
 +
|-
 +
| 0x216 || SetPixelsFromCpuDstY0Frac || 1 || ||
 +
|-
 +
| 0x217 || SetPixelsFromCpuDstY0Int || 1 || ||
 +
|-
 +
| 0x218 || PixelsFromCpuData || 1 || ||
 +
|- style="border-top: double"
 +
| 0x21C || SetBigEndianControl || 1 || ||
 +
|- style="border-top: double"
 +
| 0x220 || SetPixelsFromMemoryBlockShape || 1 || ||
 +
|-
 +
| 0x221 || SetPixelsFromMemoryCorralSize || 1 || ||
 +
|-
 +
| 0x222 || SetPixelsFromMemorySafeOverlap || 1 || ||
 +
|-
 +
| 0x223 || SetPixelsFromMemorySampleMode || 1 || ||
 +
|- style="border-top: double"
 +
| 0x22C || SetPixelsFromMemoryDstX0 || 1 || ||
 +
|-
 +
| 0x22D || SetPixelsFromMemoryDstY0 || 1 || ||
 +
|-
 +
| 0x22E || SetPixelsFromMemoryDstWidth || 1 || ||
 +
|-
 +
| 0x22F || SetPixelsFromMemoryDstHeight || 1 || ||
 +
|-
 +
| 0x230 || SetPixelsFromMemoryDuDxFrac || 1 || ||
 +
|-
 +
| 0x231 || SetPixelsFromMemoryDuDxInt || 1 || ||
 +
|-
 +
| 0x232 || SetPixelsFromMemoryDvDyFrac || 1 || ||
 +
|-
 +
| 0x233 || SetPixelsFromMemoryDvDyInt || 1 || ||
 +
|-
 +
| 0x234 || SetPixelsFromMemorySrcX0Frac || 1 || ||
 +
|-
 +
| 0x235 || SetPixelsFromMemorySrcX0Int || 1 || ||
 +
|-
 +
| 0x236 || SetPixelsFromMemorySrcY0Frac || 1 || ||
 +
|-
 +
| 0x237 || PixelsFromMemorySrcY0Int|| 1 || ||
 +
|-
 +
| 0x238 || SetFalcon00 || 1 || ||
 +
|-
 +
| 0x239 || SetFalcon01 || 1 || ||
 +
|-
 +
| 0x23A || SetFalcon02 || 1 || ||
 +
|-
 +
| 0x23B || SetFalcon03 || 1 || ||
 +
|-
 +
| 0x23C || SetFalcon04 || 1 || ||
 +
|-
 +
| 0x23D || SetFalcon05 || 1 || ||
 +
|-
 +
| 0x23E || SetFalcon06 || 1 || ||
 +
|-
 +
| 0x23F || SetFalcon07 || 1 || ||
 +
|-
 +
| 0x240 || SetFalcon08 || 1 || ||
 +
|-
 +
| 0x241 || SetFalcon09 || 1 || ||
 +
|-
 +
| 0x242 || SetFalcon10 || 1 || ||
 +
|-
 +
| 0x243 || SetFalcon11 || 1 || ||
 +
|-
 +
| 0x244 || SetFalcon12 || 1 || ||
 +
|-
 +
| 0x245 || SetFalcon13 || 1 || ||
 +
|-
 +
| 0x246 || SetFalcon14 || 1 || ||
 +
|-
 +
| 0x247 || SetFalcon15 || 1 || ||
 +
|-
 +
| 0x248 || SetFalcon16 || 1 || ||
 +
|-
 +
| 0x249 || SetFalcon17 || 1 || ||
 +
|-
 +
| 0x24A || SetFalcon18 || 1 || ||
 +
|-
 +
| 0x24B || SetFalcon19 || 1 || ||
 +
|-
 +
| 0x24C || SetFalcon20 || 1 || ||
 +
|-
 +
| 0x24D || SetFalcon21 || 1 || ||
 +
|-
 +
| 0x24E || SetFalcon22 || 1 || ||
 +
|-
 +
| 0x24F || SetFalcon23 || 1 || ||
 +
|-
 +
| 0x250 || SetFalcon24 || 1 || ||
 +
|-
 +
| 0x251 || SetFalcon25 || 1 || ||
 +
|-
 +
| 0x252 || SetFalcon26 || 1 || ||
 +
|-
 +
| 0x253 || SetFalcon27 || 1 || ||
 +
|-
 +
| 0x254 || SetFalcon28 || 1 || ||
 
|-
 
|-
| 0x091 || SetSemaphoreB || 1 || ||  
+
| 0x255 || SetFalcon29 || 1 || ||
 
|-
 
|-
| 0x092 || SetSemaphorePayload || 1 || ||  
+
| 0x256 || SetFalcon30 || 1 || ||
 
|-
 
|-
| 0x095 || SetRenderEnableA || 1 || ||  
+
| 0x257 || SetFalcon31 || 1 || ||
 +
|- style="border-top: double"
 +
| 0x37B || MmeDmaWriteMethodBarrier || 1 || ||
 +
|- style="border-top: double"
 +
| 0xD00 || SetMmeShadowScratch || uint[0x100] || 256 || Mostly general purpose, sometimes accessed by FirmwareCall.
 +
|- style="border-top: double"
 +
| 0xE00+N*2 || CallMmeMacro || 1 || uint || n=0..0x7f. Writing here calls a bound macro with value written put in r1.
 +
|-
 +
| 0xE01+N*2 || CallMmeData || 1 || pipe || Used to send variable number of arguments to macro via the "parm" instruction.
 +
|}
 +
 
 +
= MAXWELL_DMA_COPY_A =
 +
{| class=wikitable
 +
! Register || Name || Size || Type || Notes
 +
|-
 +
| 0x40 || Nop || 1 || ||
 +
|- style="border-top: double"
 +
| 0x50 || PmTrigger || 1 || ||
 +
|- style="border-top: double"
 +
| 0x90 || SetSemaphoreA || 1 || ||  
 
|-
 
|-
| 0x096 || SetRenderEnableB || 1 || ||  
+
| 0x91 || SetSemaphoreB || 1 || ||  
 
|-
 
|-
| 0x097 || SetRenderEnableC || 1 || ||  
+
| 0x92 || SetSemaphorePayload || 1 || ||
 +
|- style="border-top: double"
 +
| 0x95 || SetRenderEnableA || 1 || ||  
 
|-
 
|-
| 0x098 || SetSrcPhysMode || 1 || ||  
+
| 0x96 || SetRenderEnableB || 1 || ||  
 
|-
 
|-
| 0x099 || SetDstPhysMode || 1 || ||  
+
| 0x97 || SetRenderEnableC || 1 || ||  
 
|-
 
|-
| 0x0C0 || LaunchDma || 1 || bitfield || With 0x186 Src/DstStride is not used. With 0x586 memset-functionality is used.
+
| 0x98 || SetSrcPhysMode || 1 || ||  
 
|-
 
|-
 +
| 0x99 || SetDstPhysMode || 1 || ||
 +
|- style="border-top: double"
 +
| 0xC0 || LaunchDma || 1 || bitfield || With 0x186 Src/DstStride is not used. With 0x586 memset-functionality is used.
 +
|- style="border-top: double"
 
| 0x100 || OffsetInUpper || 1 || gpuva ||
 
| 0x100 || OffsetInUpper || 1 || gpuva ||
 
|-
 
|-
Line 493: Line 2,251:
 
| 0x106 || LineLengthIn || 1 || uint || At most 0x3FFFFF.
 
| 0x106 || LineLengthIn || 1 || uint || At most 0x3FFFFF.
 
|-
 
|-
| 0x106 || LineCount || 1 || uint || At most 0x3FFFFF.
+
| 0x107 || LineCount || 1 || uint || At most 0x3FFFFF.
|-
+
|- style="border-top: double"
 
| 0x1C0 || SetRemapConstA || 1 || uint ||
 
| 0x1C0 || SetRemapConstA || 1 || uint ||
 
|-
 
|-
Line 501: Line 2,259:
 
| 0x1C2 || SetRemapComponents || 1 || bitfield || Seen: 0x34444
 
| 0x1C2 || SetRemapComponents || 1 || bitfield || Seen: 0x34444
 
|-
 
|-
| 0x1C4 || ? || 1 || uint || In units of 4 bytes.
+
| 0x1C3 || SetDstBlockSize || 1 || uint ||
 +
|-
 +
| 0x1C4 || SetDstWidth || 1 || uint || In units of 4 bytes.
 +
|-
 +
| 0x1C5 || SetDstHeight || 1 || || Seen: 1
 +
|-
 +
| 0x1C6 || SetDstDepth || 1 || ||
 +
|-
 +
| 0x1C7 || SetDstLayer || 1 || ||
 +
|-
 +
| 0x1C8 || SetDstOrigin || 1 || ||
 +
|- style="border-top: double"
 +
| 0x1CA || SetSrcBlockSize || 1 || ||
 +
|-
 +
| 0x1CB || SetSrcWidth || 1 || ||
 +
|-
 +
| 0x1CC || SetSrcHeight || 1 || ||
 +
|-
 +
| 0x1CD || SetSrcDepth || 1 || ||
 +
|-
 +
| 0x1CE || SetSrcLayer || 1 || ||
 +
|-
 +
| 0x1CF || SetSrcOrigin || 1 || ||
 +
|- style="border-top: double"
 +
| 0x445 || PmTriggerEnd || 1 || ||
 +
|}
 +
 
 +
= MAXWELL_CHANNEL_GPFIFO_A =
 +
{| class=wikitable
 +
! Register || Name || Size || Type || Notes
 +
|-
 +
| 0x0 || SetObject || 1 || bitfield || Bit0-15: ClassId, bit16-20: EngineId
 +
|-
 +
| 0x1 || Illegal || 1 || ||
 +
|-
 +
| 0x2 || Nop || 1 || ||
 +
|- style="border-top: double"
 +
| 0x4 || SemaphoreA || 1 || ||
 +
|-
 +
| 0x5 || SemaphoreB || 1 || ||
 +
|-
 +
| 0x6 || SemaphoreC || 1 || ||
 +
|-
 +
| 0x7 || SemaphoreD || 1 || ||
 +
|-
 +
| 0x8 || NonStallInterrupt || 1 || ||
 +
|-
 +
| 0x9 || FbFlush || 1 || ||
 +
|- style="border-top: double"
 +
| 0xC || MemOpC || 1 || ||
 +
|-
 +
| 0xD || MemOpD || 1 || ||
 +
|- style="border-top: double"
 +
| 0x10 || Put || 1 || ||
 +
|-
 +
| 0x11 || Get || 1 || ||
 +
|-
 +
| 0x12 || Reference || 1 || ||
 +
|-
 +
| 0x13 || PutHi || 1 || ||
 +
|-
 +
| 0x14 || SetReference || 1 || ||
 +
|- style="border-top: double"
 +
| 0x16 || TopLevelGet || 1 || ||
 +
|-
 +
| 0x17 || TopLevelGetHi || 1 || ||
 +
|-
 +
| 0x18 || GetHi || 1 || ||
 +
|- style="border-top: double"
 +
| 0x1E || Wfi || 1 || ||
 +
|-
 +
| 0x1F || CrcCheck || 1 || ||
 +
|-
 +
| 0x20 || Yield || 1 || ||
 +
|- style="border-top: double"
 +
| 0x22 || GPGet || 1 || ||
 
|-
 
|-
| 0x1C5 || ? || 1 || || Seen: 1
+
| 0x23 || GPPut || 1 || ||
 
|}
 
|}

Latest revision as of 19:53, 4 May 2024

Id Subchannel (nvn) Name
0xB197 0 MAXWELL_B
0xB1C0 1 MAXWELL_COMPUTE_B
0xA140 2 KEPLER_INLINE_TO_MEMORY_B
0x902D 3 FERMI_TWOD_A
0xB0B5 4 MAXWELL_DMA_COPY_A
0xB06F - MAXWELL_CHANNEL_GPFIFO_A

MAXWELL_B

Register Name Size Type Notes
0x0 SetObject 1 bitfield Bit0-15: ClassId, bit16-20: EngineId
0x40 NoOperation 1
0x41 SetNotifyA 1 gpuva
0x42 SetNotifyB 1 gpuva
0x43 Notify 1 0=WriteOnly, 1=WriteThenAwaken
0x44 WaitForIdle 1
0x45 LoadMmeInstructionRamPointer 1 uint
0x46 LoadMmeInstructionRam 1 pipe Writes to and increments MmeInstructionRamPointer by 1.
0x47 LoadMmeStartAddressRamPointer 1 uint
0x48 LoadMmeStartAddressRam 1 pipe
0x49 SetMmeShadowRamControl 1 uint 0=MethodTrack, 1=MethodTrackWithFilter, 2=MethodPassthrough, 3=MethodReplay. Used during ClearColor.
0x4A PeerSemaphoreReleaseOffsetUpper 1
0x4B PeerSemaphoreReleaseOffset 1
0x4C SetGlobalRenderEnableA 1
0x4D SetGlobalRenderEnableB 1
0x4E SetGlobalRenderEnableC 1
0x4F SendGoIdle 1
0x50 PmTrigger 1
0x51 PmTriggerWfi 1
0x54 SetInstrumentationMethodHeader 1
0x55 SetInstrumentationMethodData 1
0x60 LineLengthIn 1
0x61 LineCount 1
0x62 OffsetOutUpper 1
0x63 OffsetOut 1
0x64 PitchOut 1
0x65 SetDstBlockSize 1
0x66 SetDstWidth 1
0x67 SetDstHeight 1
0x68 SetDstDepth 1
0x69 SetDstLayer 1
0x6A SetDstOriginBytesX 1
0x6B SetDstOriginSamplesY 1
0x6C LaunchDma 1
0x6D LoadInlineData 1
0x77 SetI2mSemaphoreA 1
0x78 SetI2mSemaphoreB 1
0x79 SetI2mSemaphoreC 1
0x7C SetI2mSpareNoop00 1
0x7D SetI2mSpareNoop01 1
0x7E SetI2mSpareNoop02 1
0x7F SetI2mSpareNoop03 1
0x80 RunDsNow 1
0x81 SetOpportunisticEarlyZHysteresis 1
0x83 SetAliasedLineWidthEnable 1 bool
0x84 SetApiMandatedEarlyZ 1 bool
0x85 SetGsDmFifo 1
0x86 SetL2CacheControlForRopPrefetchReadRequests 1
0x87 InvalidateShaderCaches 1 bitfield
0xB0 1
0xB2 IncrementSyncPoint 1
0xB4 SetPrimCircularBufferThrottle 1
0xB5 FlushAndInvalidateRopMiniCache 1
0xB6 SetSurfaceClipIdBlockSize 1
0xB7 SetAlphaCircularBufferSize 1
0xB8 DecompressSurface 1
0xB9 SetZcullRopBypass 1
0xBA SetZcullSubregion 1 SetRenderTargets writes 1/0 here an optional buffer != NULL, and depending on type.
0xBB SetRasterBoundingBox 1
0xBC PeerSemaphoreRelease 1
0xBD SetIteratedBlendOptimization 1
0xBE SetZcullSubregionAllocation 1 pipe SetRenderTargets writes here repeatedly 16 times, if an optional buffer != NULL and is a given type.
0xBF AssignZcullSubregions 1 bool SetRenderTargets writes 1 here after 0xBE has been written 16 times, and 0xDC been written.
0xC0 SetPsOutputSampleMaskUsage 1
0xC1 DrawZeroIndex 1
0xC2 SetL1Configuration 1 enum
0xC3 SetRenderEnableControl 1
0xC4 SetSpaVersion 1
0xC5 SetIeeeCleanUpdate 1
0xC6 SetSnapGridLine 1
0xC7 SetSnapGridNonLine 1
0xC8 SetTessellationParameters 1 bitfield Bit0-1: DomainType (0=Isoline, 1=Triangle, 2=Quad), bit4-5: Spacing (0=Integer, 1=FractionalOdd, 2=FractionalEven), bit8-9: OutputPrimitives (0=Points, 1=Lines, 2=TrianglesCw, 3=TrianglesCcw)
0xC9 SetTessellationLodU0OrDensity 1 float
0xCA SetTessellationLodV0OrDetail 1 float
0xCB SetTessellationLodU1OrW0 1 float
0xCC SetTessellationLodV1 1 float
0xCD SetTgLodInteriorU 1 float
0xCE SetTgLodInteriorV 1 float
0xCF ReservedTg07 1
0xD0 ReservedTg08 1
0xD1 ReservedTg09 1
0xD2 ReservedTg10 1
0xD3 ReservedTg11 1
0xD4 ReservedTg12 1
0xD5 ReservedTg13 1
0xD6 ReservedTg14 1
0xD7 ReservedTg15 1
0xD8 SetSubtilingPerfKnobA 1
0xD9 SetSubtilingPerfKnobB 1
0xDA SetSubtilingPerfKnobC 1
0xDB SetZcullSubregionToReport 1
0xDC SetZcullSubregionReportType 1 bool SetRenderTargets writes 1 here, if an optional buffer != NULL and is a given type.
0xDD SetBalancedPrimitiveWorkload 1
0xDE SetMaxPatchesPerBatch 1
0xDF SetRasterEnable 1 bool
0xE0+8*N SetStreamOutBufferEnable 1 bool n=0..3
0xE1+8*N SetStreamOutBufferAddressA 1
0xE2+8*N SetStreamOutBufferAddressB 1
0xE3+8*N SetStreamOutBufferSize 1
0xE4+8*N SetStreamOutBufferLoadWritePointer 1
0x1C0+4*N SetStreamOutControlStream 1 bitfield
0x1C1+4*N SetStreamOutControlComponentCount 1 uint
0x1C2+4*N SetStreamOutControlStride 1 uint
0x1D0 SetRasterInput 1
0x1D1 SetStreamOutput 1 bool
0x1D2 SetDaPrimitiveRestartTopologyChange 1
0x1D3 SetAlphaFraction 1 GpuInit writes 0x3f here.
0x1D4 1
0x1D5 SetHybridAntiAliasControl 1 bitfield Bit0-3: ?, bit4: Enable
0x1D6 1
0x1D8 1
0x1D9 1
0x1DA 1
0x1DB 1
0x1DC 1
0x1DD 1
0x1DE 1
0x1DF SetShaderLocalMemoryWindow 1 uint
0x1E0 1
0x1E1 1
0x1E2 1
0x1E3 1
0x1E4 SetShaderLocalMemoryA 1
0x1E5 SetShaderLocalMemoryB 1
0x1E6 SetShaderLocalMemoryC 1
0x1E7 SetShaderLocalMemoryD 1
0x1E8 SetShaderLocalMemoryE 1
0x1E9 SetColorZeroBandwidthClear 1
0x1EA SetZZeroBandwidthClear 1
0x1EB SetIsbeSaveRestoreProgram 1
0x1F0 SetZcullRegionSizeA 1 SetRenderTargets optionally uses this.
0x1F1 SetZcullRegionSizeB 1 SetRenderTargets optionally uses this.
0x1F2 SetZcullRegionSizeC 1 SetRenderTargets optionally uses this.
0x1F3 SetZcullRegionPixelOffsetC 1 SetRenderTargets optionally writes 0 here.
0x1F4 1
0x1F5 1
0x1F6 1
0x1F7 SetCullBeforeFetch 1
0x1F8 SetZcullRegionLocation 1 SetRenderTargets optionally uses this.
0x1F9 SetZcullRegionAliquots 1 SetRenderTargets optionally uses this.
0x1FA SetZcullStorageA 1 gpuva
0x1FB SetZcullStorageB 1 gpuva
0x1FC SetZcullStorageC 1 gpuva
0x1FD SetZcullStorageD 1 gpuva
0x1FE SetZtReadOnly 1
0x200+16*N SetColorTargetA 1 gpuva
0x201+16*N SetColorTargetB 1 gpuva
0x202+16*N SetColorTargetWidth 1
0x203+16*N SetColorTargetHeight 1
0x204+16*N SetColorTargetFormat 1
0x205+16*N SetColorTargetMemory 1 bitfield Bit0-3: Width, bit4-7: Height, bit8-10: Depth, bit12: Layout, bit16: ?
0x206+16*N SetColorTargetThirdDimension 1 bitfield Bit0-15: Layers, bit16: Volume
0x207+16*N SetColorTargetArrayPitch 1 uint In units of 4 bytes.
0x208+16*N SetColorTargetLayer 1
0x209+16*N SetColorTargetMark 1
0x280+8*N SetViewportScaleX 1 float n=0..15
0x281+8*N SetViewportScaleY 1 float
0x282+8*N SetViewportScaleZ 1 float
0x283+8*N SetViewportOffsetX 1 float
0x284+8*N SetViewportOffsetY 1 float
0x285+8*N SetViewportOffsetZ 1 float
0x286+8*N SetViewportCoordinateSwizzle 1 bitfield
0x287+8*N SetViewportIncreaseSnapGridPrecision 1 bitfield Bit0-4: BiasX, bit8-bit11: BiasY
0x300+4*N SetViewportClipHorizontal 1 bitfield Bit0-15: X, bit16-31: Width
0x301+4*N SetViewportClipVertical 1 bitfield Bit0-15: Y, bit16-31: Height
0x302+4*N SetViewportClipMinZ 1 float
0x303+4*N SetViewportClipMaxZ 1 float
0x340+2*N SetWindowClipHorizontal 1 n=0..7, TODO
0x341+2*N SetWindowClipVertical 1 TODO
0x350+2*N SetClipIdExtentX 1
0x351+2*N SetClipIdExtentY 1
0x358 SetMaxStreamOutputGsInstancesPerTask 1
0x359 SetApiVisibleCallLimit 1 uint 0=FullLimit, 1...8=?, 15=Unlimited
0x35A SetStatisticsCounter 1 bitfield Bit0: ?, bit1: ?, ... bit15: ?
0x35B SetClearRectHorizontal 1
0x35C SetClearRectVertical 1
0x35D SetVertexArrayStart 1
0x35E DrawVertexArray 1
0x35F SetViewportZClip 1 bool
0x360+N SetColorClearValue 4 float
0x364 SetZClearValue 1 float
0x365 SetShaderCacheControl 1
0x366 ForceTransitionToBeta 1
0x367 SetReduceColorThresholdsEnable 1
0x368 SetStencilClearValue 1
0x368 InvalidateShaderCachesNoWfi 1
0x368 SetZcullSerialization 1
0x36B SetFrontPolygonMode 1 bitfield 0x1B00/0x1B01/0x1B02
0x36C SetBackPolygonMode 1 bitfield 0x1B00/0x1B01/0x1B02
0x36D SetPolySmooth 1 bool
0x36E SetZtMark 1
0x36F SetZcullDirFormat 1 bitfield Bit0:?, bit16:?. Used by ClearDepthStencil.
0x370 SetPolyOffsetPoint 1 bool
0x371 SetPolyOffsetLine 1 bool
0x372 SetPolyOffsetFill 1 bool
0x373 SetPatch 1 Small value, always fits in 12 bits. In number of vertices.
0x374 SetIteratedBlend 1 0 written here for "simple" BlendState.
0x375 SetIteratedBlendPass 1
0x376 SetZcullCriterion 1
0x378 PixelShaderBarrier 1
0x379 SetSmTimeoutInterval 1
0x37A SetDaPrimitiveRestartVertexArray 1 boolean
0x37C LoadIteratedBlendInstructionPointer 1
0x37D LoadIteratedBlendInstruction 1
0x37E SetWindowOffsetX 1 int
0x37F SetWindowOffsetY 1 int
0x380+4*N SetScissorEnable 1 bool n=0..15. GpuInit writes 1 here.
0x381+4*N SetScissorHorizontal 1 bitfield Bit0-15: min, bit16-31: max
0x382+4*N SetScissorVertical 1 bitfield Bit0-15: min, bit16-31: max
0x3C4 SetSelectMaxwellTextureHeaders 1
0x3C5 SetVpcPerfKnob 1
0x3C6 PmLocalTrigger 1
0x3C7 SetPostZPsImask 1
0x3D0 SetConstantColorRendering 1
0x3D1 SetConstantColorRenderingRed 1
0x3D2 SetConstantColorRenderingGreen 1
0x3D3 SetConstantColorRenderingBlue 1
0x3D4 SetConstantColorRenderingAlpha 1
0x3D5 SetBackStencilFuncRef 1
0x3D6 SetBackStencilMask 1 bool
0x3D7 SetBackStencilFuncMask 1
0x3D8 SetTiledCache 1 bool Trigger?
0x3D9 SetTiledCacheTileSize 1 bitfield Bit0-15: ?, bit16-31: ?
0x3DA 1
0x3DB 1
0x3DC 1
0x3DD 1
0x3DE TiledCacheInvalidate 1 bitfield Bit4-6: DiscardColorIndex, bit0: DiscardDepthStencil
0x3DF 1
0x3E0 TiledCacheFlush 1 bool Trigger?
0x3E1 SetVertexStreamSubstituteA 1
0x3E2 SetVertexStreamSubstituteB 1
0x3E3 SetLineModePolygonClip 1
0x3E4 SetSingleCtWriteControl 1
0x3E6 SetVtgWarpWatermarks 1
0x3E7 SetDepthBoundsMin 1 float
0x3E8 SetDepthBoundsMax 1 float
0x3E9 SetSampleMask 1
0x3EA SetColorTargetSampleMask 1
0x3EB SetCtMrtEnable 1
0x3EC SetNonmultisampledZ 1
0x3ED SetTir 1 bool Also written 0 when clearing all colors.
0x3EE SetAntiAliasRaster 1 bitfield 2=Four, 4=Eight, 5=?, 6=Sixteen
0x3EF SetSampleMaskX0Y0 1
0x3F0 SetSampleMaskX1Y0 1
0x3F1 SetSampleMaskX0Y1 1
0x3F2 SetSampleMaskX1Y1 1
0x3F3 SetSurfaceClipIdMemoryA 1
0x3F4 SetSurfaceClipIdMemoryB 1
0x3F5 SetTirModulation 1
0x3F6 SetTirModulationFunction 1
0x3F7 SetBlendOptControl 1
0x3F8 SetZtA 1 gpuva SetRenderTargets writes the address of an optional buffer here.
0x3F9 SetZtB 1 gpuva SetRenderTargets writes the address of an optional buffer here.
0x3FA SetZtFormat 1 SetRenderTargets writes here optionally.
0x3FB SetZtBlockSize 1 SetRenderTargets writes here optionally.
0x3FC SetZtArrayPitch 1 SetRenderTargets writes here optionally.
0x3FD SetSurfaceClipHorizontal 1 SetRenderTargets writes here
0x3FE SetSurfaceClipVertical 1
0x3FF SetTiledCacheBundleControl 1
0x400 SetL2CacheControlForVafRequests 1
0x401 SetViewportMulticast 1
0x402 SetTessellationCutHeight 1
0x403 SetMaxGsInstancesPerTask 1
0x404 SetMaxGsOutputVerticesPerTask 1
0x405 SetReservedSwMethod00 1
0x406 SetGsOutputCbStorageMultiplier 1
0x407 SetBetaCbStorageConstraint 1
0x408 SetTiOutputCbStorageMultiplier 1
0x409 SetAlphaCbStorageConstraint 1
0x40A SetReservedSwMethod01 1
0x40B SetReservedSwMethod02 1
0x40C+N SetTirModulationCoefficientTable 4 float[4]
0x410 1
0x411 SetSpareNoop01 1
0x412 SetSpareNoop02 1
0x413 SetSpareNoop03 1
0x414 SetSpareNoop04 1
0x415 SetSpareNoop05 1
0x416 SetSpareNoop06 1
0x417 SetSpareNoop07 1
0x418 SetSpareNoop08 1
0x419 SetSpareNoop09 1
0x41A SetSpareNoop10 1
0x41B SetSpareNoop11 1
0x41C SetSpareNoop12 1
0x41D SetSpareNoop13 1
0x41E SetSpareNoop14 1
0x41F SetSpareNoop15 1
0x420 1
0x421 1
0x422 1
0x423 1
0x424 1
0x425 1
0x426 1
0x427 1
0x428 1
0x429 1
0x42A 1
0x42B 1
0x42C SetReservedSwMethod03 1
0x42D SetReservedSwMethod04 1
0x42E SetReservedSwMethod05 1
0x42F SetReservedSwMethod06 1
0x430 SetReservedSwMethod07 1
0x431 SetReservedSwMethod08 1
0x432 SetReservedSwMethod09 1
0x433 SetReduceColorThresholdsUnorm8 1 GpuInit writes 4 here.
0x434 SetReservedSwMethod10 1
0x435 SetReservedSwMethod11 1
0x436 SetReservedSwMethod12 1
0x437 SetReservedSwMethod13 1
0x438 SetReduceColorThresholdsUnorm10 1 GpuInit writes 0xFF here.
0x439 SetReduceColorThresholdsUnorm16 1 GpuInit writes 0xFF here.
0x43A SetReduceColorThresholdsFp11 1
0x43B SetReduceColorThresholdsFp16 1 GpuInit writes 0xFF here.
0x43C SetReduceColorThresholdsSrgb8 1 GpuInit writes 4 here.
0x43D UnbindAll 1 bitfield Bit0: InvalidateTextureHeaders, bit4: InvalidateTextureSamplers, bit8: InvalidateConstBuffers
0x43E SetClearSurfaceControl 1 GpuInit writes 0x101 here.
0x43F SetL2CacheControlForRopNoninterlockedReadRequests 1
0x440 SetReservedSwMethod14 1
0x441 SetReservedSwMethod15 1
0x442 1
0x443 NoOperationDataHi 1
0x444 SetDepthBiasControl 1
0x445 PmTriggerEnd 1
0x446 SetVertexIdBase 1 bool
0x447 SetStencilCompression 1
0x448+N SetDaOutputAttributeSkipMaskA 2
0x44A+N SetDaOutputAttributeSkipMaskB 2
0x44C SetTirControl 1
0x44D SetMutableMethodControl 1 bool Trigger?
0x44E SetPostPsInitialCoverage 1
0x44F SetFillViaTriangle 1
0x450 SetBlendPerFormatEnable 1
0x451 FlushPendingWrites 1
0x452 SetConservativeRaster 1 bool
0x458+N SetVertexAttributeA 4 bitfield[16] Bit0-4: StreamIndex, bit7-20: Format0, bit21-30: Format1
0x468+N SetVertexAttributeB 4 bitfield[16] Bit0-4: StreamIndex, bit7-20: Format0, bit21-30: Format1
0x478+N SetAntiAliasSamplePositions 3 bitfield[3] Bit0-3: x0, bit4-7: y0, bit8-11: x1, etc..
0x47C SetOffsetRenderTargetIndex 1 trigger BindProgram writes 0 here sometimes.
0x47D ForceHeavyweightMethodSync 1
0x47E SetCoverageToColor 1 bitfield Bit0: Enable, bit4-6: ?
0x47F DecompressZetaSurface 1 trigger 1 is written here to trigger.
0x480 1
0x482 SetZtSparse 1
0x483 InvalidateSamplerCacheAll 1
0x484 InvalidateTextureHeaderCacheAll 1
0x485 DrawVertexArrayBeginEndInstanceFirst 1
0x486 DrawVertexArrayBeginEndInstanceSubsequent 1
0x487 SetCtSelect 1 bitfield Bit0-3: NumberOfRenderTargets, bunch of other flags. Used by SetRenderTargets.
0x488 SetCompressionThreshold 1
0x489 SetPixelShaderInterlockControl 1
0x48A SetZtSizeA 1 Optionally used by SetRenderTargets.
0x48B SetZtSizeB 1 Optionally used by SetRenderTargets.
0x48C SetZtSizeC 1 Optionally used by SetRenderTargets.
0x48D SetSamplerBinding 1 enum 0=Independently, 1=ViaHeaderBinding
0x48F DrawAuto 1
0x490+N SetPostVtgShaderAttributeSkipMask 8
0x498 SetPixelShaderTicketDispenserValue 1
0x4A0 SetCircularBufferSize 1
0x4A1 SetVtgRegisterWatermarks 1
0x4A2 InvalidateTextureDataCacheNoWfi 1 bitfield bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
0x4A4 SetL2CacheControlForRopInterlockedReadRequests 1
0x4A9 SetDaPrimitiveRestartIndexTopologyChange 1
0x4AB ShaderScheduling 1 enum 0=OldestThreadFirst, 1=RoundRobin
0x4B2 ClearZcullRegion 1
0x4B3 SetDepthTest 1 bool Enables DepthWriteEnable and DepthFunc.
0x4B4 SetFillMode 1
0x4B5 SetShadeMode 1
0x4B6 SetL2CacheControlForRopNoninterlockedWriteRequests 1
0x4B7 SetL2CacheControlForRopInterlockedWriteRequests 1
0x4B8 SetAlphaToCoverageDitherControl 1 bool
0x4B9 SetBlendStatePerTarget 1 bool 1 written here for "simple" BlendState.
0x4BA SetDepthWrite 1 bool
0x4BB SetAlphaTest 1 bool
0x4C0 SetInlineIndex4x8Align 1
0x4C1 DrawInlineIndex4x8 1
0x4C2 D3dSetCullMode 1
0x4C3 SetDepthFunc 1 bitfield Bit0-3: DepthFunc
0x4C4 SetAlphaRef 1 float
0x4C5 SetAlphaFunc 1 bitfield Bit0-3: AlphaTestFunc
0x4C6 SetDrawAutoStride 1
0x4C7 SetBlendConstRed 1 float
0x4C8 SetBlendConstGreen 1 float
0x4C9 SetBlendConstBlue 1 float
0x4CA SetBlendConstAlpha 1 float
0x4CC InvalidateSamplerCache 1 bitfield bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
0x4CD InvalidateTextureHeaderCache 1 bitfield bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
0x4CE InvalidateTextureDataCache 1 bitfield bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
0x4CF SetBlendSeparateForAlpha 1 bitfield bit0: 0=AllLines, 1=OneLine, bit4-25: Tag
0x4D0 SetBlendColorOp 1
0x4D1 SetBlendColorSourceCoeff 1
0x4D2 SetBlendColorDestCoeff 1
0x4D3 SetBlendAlphaOp 1
0x4D4 SetBlendAlphaSourceCoeff 1
0x4D5 SetGlobalColorKey 1
0x4D6 SetBlendAlphaDestCoeff 1
0x4D7 SetSingleRopControl 1
0x4D8+N SetBlend 8
0x4E0 SetStencilTest 1 bool
0x4E1 SetStencilOpFail 1
0x4E2 SetStencilOpZfail 1
0x4E3 SetStencilOpZpass 1
0x4E4 SetStencilFunc 1
0x4E5 SetStencilFuncRef 1
0x4E6 SetStencilFuncMask 1
0x4E7 SetStencilMask 1 bool
0x4E9 SetDrawAutoStart 1
0x4EA SetPsSaturate 1
0x4EB SetWindowOrigin 1
0x4EC SetLineWidthFloat 1 float
0x4ED SetAliasedLineWidthFloat 1 float
0x506 SetLineMultisampleOverride 1
0x508 SetAlphaHysteresis 1
0x509 InvalidateSamplerCacheNoWfi 1
0x50A InvalidateTextureHeaderCacheNoWfi 1
0x50D SetGlobalBaseVertexIndex 1 uint
0x509 SetGlobalBaseInstanceIndex 1
0x511 1
0x512 1
0x513 1
0x514 SetPsWarpWatermarks 1
0x515 SetPsRegisterWatermarks 1
0x519 StoreZcull 1 trigger 0 is written here to trigger ctx-save, uses ZCullContextStartAddr.
0x51F PolygonOffsetClamp0 1 float
0x520+4*N SetIteratedBlendConstantRed 1
0x521+4*N SetIteratedBlendConstantGreen 1
0x522+4*N SetIteratedBlendConstantBlue 1
0x540 LoadZcull 1 trigger 0 is written here to trigger ctx-restore, uses ZCullContextStartAddr.
0x541 SetSurfaceClipIdHeight 1
0x542 SetClipIdClearRectHorizontal 1
0x543 SetClipIdClearRectVertical 1
0x544 SetUserClipEnable 1
0x545 SetZpassPixelCount 1
0x546 SetPointSize 1 float
0x547 SetZcullStats 1
0x548 SetPointSprite 1
0x54A SetShaderExceptions 1
0x54C ClearReportValue 1 Value written decides which counter to reset.
0x54D SetAntiAliasEnable 1
0x54E SetZtSelect 1 bool SetRenderTargets writes 0 here if an optional buffer is NULL.
0x54F SetAntiAliasAlphaControl 1 bool bit0: AlphaToCoverageEnable, bit1+: ?
0x554 SetRenderEnableA 1 gpuva
0x555 SetRenderEnableB 1 gpuva
0x556 SetRenderEnableC 1 enum 0=False, 1=True, 2=Conditional, 3=RenderIfEqual, 4=RenderIfNotEqual,
0x557 SetTexSamplerPoolA 1 gpuva
0x558 SetTexSamplerPoolB 1 gpuva
0x559 SetTexSamplerPoolC 1 bitfield Bit0-19: MaximumIndex
0x55B SetSlopeScaleDepthBias 1 float
0x55C SetAntiAliasedLine 1
0x55D SetTexHeaderPoolA 1 gpuva
0x55E SetTexHeaderPoolB 1 gpuva
0x55F SetTexHeaderPoolC 1 bitfield Bit0-21: MaximumIndex
0x564 SetActiveZcullRegion 1
0x565 SetTwoSidedStencilTest 1
0x566 SetBackStencilOpFail 1
0x567 SetBackStencilOpZfail 1
0x568 SetBackStencilOpZpass 1
0x569 SetBackStencilFunc 1
0x56D SetCsaa 1 bool
0x56E SetSrgbWrite 1
0x56F SetDepthBias 1 float Float multiplied by 2 is written here.
0x572 SetZcullRegionFormat 1
0x573 SetRtLayer 1
0x574 SetAntiAlias 1 Written by SetRenderTargets, possible values: 0, 2, 4, 5, 6.
0x579 SetEdgeFlag 1
0x57A DrawInlineIndex 1
0x57B SetInlineIndex2x16Align 1
0x57C DrawInlineIndex2x16 1
0x57D SetVertexGlobalBaseOffsetA 1
0x57E SetVertexGlobalBaseOffsetB 1
0x57F SetZcullRegionPixelOffsetA 1 SetRenderTargets optionally writes 0 here.
0x580 SetZcullRegionPixelOffsetB 1 SetRenderTargets optionally writes 0 here.
0x581 SetPointSpriteSelect 1
0x582 SetProgramRegionA 1 gpuva
0x583 SetProgramRegionB 1 gpuva
0x584 SetAttributeDefault 1
0x585 End 1
0x586 Begin 1
0x587 SetVertexIdCopy 1
0x588 AddToPrimitiveId 1
0x589 LoadPrimitiveId 1
0x58B SetShaderBasedCull 1
0x58E SetClassVersion 1
0x591 SetDaPrimitiveRestart 1 bool
0x592 SetDaPrimitiveRestartIndex 1 uint
0x593 SetDaOutput 1
0x596 SetAntiAliasedPoint 1
0x597 SetPointCenterMode 1
0x599 CubeMapInterFaceFiltering 1 bitfield Bit0-1: Mode (0=UseWrap, 1=OverrideWrap, 2=AutoSpanSeam, 3=AutoCrossSeam)
0x59A SetLineSmoothParameters 1
0x59B SetLineStipple 1
0x59C+N SetLineSmoothEdgeTable 4
0x5A0 SetLineStippleParameters 1
0x5A1 SetProvokingVertex 1
0x5A2 SetTwoSidedLight 1
0x5A3 SetPolygonStipple 1
0x5A4 SetShaderControl 1 bitfield Bit0: DefaultPartial (0=Zero, 1=Infinity), bit1: Fp32NanBehavior (0=Legacy, 1=Fp64Compatible), bit2: Fp32F21NanBehavior (0=PassZero, 1=PassIndefinite), bit16: ZeroTimesAnythingIsZero
0x5A5 BindConstantBuffer 1 bitfield Bit0: Valid, bit8-12: ShaderSlot
0x5A6 InvalidateShaderCachesNoWfi 1 bitfield Bit0: Instruction, bit4: GlobalData, bit8: Uniform, bit12: Constant
0x5A8 CheckClassVersion 1
0x5A9 SetSphVersion 1
0x5AA CheckSphVersion 1
0x5AD SetAlphaToCoverageOverride 1
0x5C0+N SetPolygonStipplePattern 1
0x5E4 SetAamVersion 1
0x5E5 CheckAamVersion 1
0x5E7 SetZtLayer 1
0x5F2 SetIndexBufferA 1 gpuva
0x5F3 SetIndexBufferB 1 gpuva
0x5F4 SetIndexBufferC 1 gpuva
0x5F5 SetIndexBufferD 1 gpuva
0x5F6 SetIndexBufferE 1 bool
0x5F7 SetIndexBufferF 1
0x5F8 DrawIndexBuffer 1
0x5F9 DrawIndexBuffer32BeginEndInstanceFirst 1
0x5FA DrawIndexBuffer16BeginEndInstanceFirst 1
0x5FB DrawIndexBuffer8BeginEndInstanceFirst 1
0x5FC DrawIndexBuffer32BeginEndInstanceSubsequent 1
0x5FD DrawIndexBuffer16BeginEndInstanceSubsequent 1
0x5FE DrawIndexBuffer8BeginEndInstanceSubsequent 1
0x61F SetDepthBiasClamp 1
0x620+N SetVertexStreamInstanceA 16 bool n=0...15.
0x630+N SetVertexStreamInstanceB 16 bool n=0...15.
0x644 SetAttributePointSize 1
0x646 OglSetCull 1 bool
0x647 OglSetFrontFace 1 bitfield Bit0: Enable. Always ORR'd with 0x9000.
0x648 OglSetCullFace 1 bitfield 0x404=Front, 0x405=Back, 0x408=FrontAndBack
0x649 SetViewportPixel 1
0x64B SetViewportScaleOffset 1
0x64C InvalidateConstantBufferCache 1 bitfield Bit0: ThruL2
0x64F SetViewportClipControl 1 TODO: 0x101A is written when enabled, 0x181D when disabled.
0x650 SetUserClipOp 1
0x651 SetRenderEnableOverride 1 bitfield Bit0-1: 0=UseRenderEnable, 1=AlwaysRender, 2=NeverRender
0x652 SetPrimitiveTopologyControl 1
0x653 SetWindowClipEnable 1
0x654 SetWindowClipType 1
0x656 InvalidateZcull 1
0x65A SetZcull 1
0x65B SetZcullBounds 1
0x65C SetPrimitiveTopology 1
0x65E ZcullSync 1
0x65F SetClipIdTest 1
0x660 SetSurfaceClipIdWidth 1
0x661 SetClipId 1
0x66F SetDepthBoundsTest 1 bool
0x670 SetBlendFloatOption 1
0x671 SetLogicOp 1 bool Used for all LogicOps except 3.
0x672 SetLogicOpFunc 1 bitfield Bit0-7: LogicOp, bit8-15: unknown, always 0x15.
0x673 SetZCompression 1
0x674 ClearSurface 1
0x675 ClearClipIdSurface 1
0x678+N SetColorCompression 8
0x680+N SetCtWrite 8
0x689 1
0x68B PipeNop 1 trigger Always 0 is written here. During zcull ctx-save, spammed when enabling raster, ...
0x68C SetSpare00 1 uint
0x68D SetSpare01 1 uint
0x68E SetSpare02 1 uint
0x68F SetSpare03 1 uint
0x6C0 SetReportSemaphoreA 1 gpuva
0x6C1 SetReportSemaphoreB 1 gpuva
0x6C2 SetReportSemaphoreC 1 0 is written here during most queries.
0x6C3 SetReportSemaphoreD 1 bitfield Bit0-1: Operation (0=Release, 3=Trap), bit2: FlushDisable, bit20: AwakenEnable, bit28: StructureSize (0=FourWords, 1=OneWord)
0x700+4*N SetVertexStreamAFormat 1 uint Bit0-11: Stride. Bit12: Enable.
0x701+4*N SetVertexStreamALocationA 1 gpuva
0x702+4*N SetVertexStreamALocationB 1 gpuva
0x703+4*N SetVertexStreamAFrequency 1
0x740+4*N SetVertexStreamBFormat 1
0x741+4*N SetVertexStreamBLocationA 1 gpuva
0x742+4*N SetVertexStreamBLocationB 1 gpuva
0x743+4*N SetVertexStreamBFrequency 1
0x780+8*N SetBlendPerTargetSeparateForAlpha 1
0x781+8*N SetBlendPerTargetColorOp 1 bitfield Bit0-2: BlendEquation.
0x782+8*N SetBlendPerTargetColorSourceCoeff 1 bitfield Bit0-4: ?, bit14-15: ?
0x783+8*N SetBlendPerTargetColorDestCoeff 1 bitfield Bit0-4: ?, bit14-15: ?
0x784+8*N SetBlendPerTargetAlphaOp 1 bitfield Bit0-2: BlendEquation
0x785+8*N SetBlendPerTargetAlphaSourceCoeff 1 bitfield Bit0-4: ?, bit14-15: ?
0x786+8*N SetBlendPerTargetAlphaDestCoeff 1 bitfield Bit0-4: ?, bit14-15: ?
0x7C0+2*N SetVertexStreamLimitAA 1 gpuva
0x7C1+2*N SetVertexStreamLimitAB 1 gpuva
0x7E0+2*N SetVertexStreamLimitBA 1 gpuva
0x7E1+2*N SetVertexStreamLimitBB 1 gpuva
0x800+16*N SetPipelineShader 1
0x801+16*N SetPipelineProgram 1
0x802+16*N SetPipelineReservedA 1
0x803+16*N SetPipelineRegisterCount 1
0x804+16*N SetPipelineBinding 1
0x805+16*N SetPipelineReservedB 1
0x806+16*N SetPipelineReservedC 1
0x807+16*N SetPipelineReservedD 1
0x808+16*N SetPipelineReservedE 1
0x820 1 Select tessellation control program.
0x821 1 Specify tessellation control program entry point.
0x830 1 Select tessellation evaluation program.
0x840 1 Select geometry program.
0x850 1 Select fragment program.
0x8C0 SetFalcon00 1 uint
0x8C1 SetFalcon01 1 uint
0x8C2 SetFalcon02 1 uint
0x8C3 SetFalcon03 1 uint
0x8C4 SetFalcon04 1 uint
0x8C5 SetFalcon05 1 uint
0x8C6 SetFalcon06 1 uint
0x8C7 SetFalcon07 1 uint
0x8C8 SetFalcon08 1 uint
0x8C9 SetFalcon09 1 uint
0x8CA SetFalcon10 1 uint
0x8CB SetFalcon11 1 uint
0x8CC SetFalcon12 1 uint
0x8CD SetFalcon13 1 uint
0x8CE SetFalcon14 1 uint
0x8CF SetFalcon15 1 uint
0x8D0 SetFalcon16 1 uint
0x8D1 SetFalcon17 1 uint
0x8D2 SetFalcon18 1 uint
0x8D3 SetFalcon19 1 uint
0x8D4 SetFalcon20 1 uint
0x8D5 SetFalcon21 1 uint
0x8D6 SetFalcon22 1 uint
0x8D7 SetFalcon23 1 uint
0x8D8 SetFalcon24 1 uint
0x8D9 SetFalcon25 1 uint
0x8DA SetFalcon26 1 uint
0x8DB SetFalcon27 1 uint
0x8DC SetFalcon28 1 uint
0x8DD SetFalcon29 1 uint
0x8DE SetFalcon30 1 uint
0x8DF SetFalcon31 1 uint
0x8E0 SetConstantBufferSelectorA 1 uint Bit0-16: Size
0x8E1 SetConstantBufferSelectorB 1 gpuva
0x8E2 SetConstantBufferSelectorC 1 gpuva
0x8E3 LoadConstantBufferOffset 1 uint Bit0-15: Offset. BindImage writes "8*i + 0x120" here. BindSeparateSampler writes "8*i + 0x568" here. BindSeparateTexture uses "8*i + 0x168". BindTexture uses 8*i + 32. TODO: BindStorageBuffer, UpdateUniformBuffer, etc
0x8E4+N LoadConstantBuffer 16 uint
0x900+8*N BindGroupReservedA 1
0x901+8*N BindGroupReservedB 1
0x902+8*N BindGroupReservedC 1
0x903+8*N BindGroupReservedD 1
0x904+8*N BindGroupConstantBuffer 1 bitfield n=0..4. Bit0: Valid, bit4-8: ShaderSlot
0x980 SetColorClamp 1
0x982 SetBindlessTexture 1
0x983 SetTrapHandler 1
0xA00 SetStreamOutLayoutSelect 1
0xCCF+N SetShaderPerformanceCounterValueUpper 8
0xCD7+N SetShaderPerformanceCounterValue 8
0xCDF+N SetShaderPerformanceCounterEvent 8
0xCE7+N SetShaderPerformanceCounterControlA 8
0xCEF+N SetShaderPerformanceCounterControlB 8
0xCF7 SetShaderPerformanceCounterTrapControl 1
0xCF8 StartShaderPerformanceCounter 1
0xCF9 StopShaderPerformanceCounter 1
0xD00+N SetMmeShadowScratch 128 uint[0x80] Mostly general purpose, sometimes accessed by FirmwareCall.
0xE00+N*2 CallMmeMacro 1 uint n=0..0x7f. Writing here calls a bound macro with value written put in r1.
0xE01+N*2 CallMmeData 1 pipe Used to send variable number of arguments to macro via the "parm" instruction.

MAXWELL_COMPUTE_B

Register Name Size Type Notes
0x0 SetObject 1 bitfield Bit0-15: ClassId, bit16-20: EngineId
0x40 NoOperation 1
0x41 SetNotifyA 1 gpuva
0x42 SetNotifyB 1 gpuva
0x43 Notify 1 0=WriteOnly, 1=WriteThenAwaken
0x44 WaitForIdle 1
0x4C SetGlobalRenderEnableA 1
0x4D SetGlobalRenderEnableB 1
0x4E SetGlobalRenderEnableC 1
0x4F SendGoIdle 1
0x50 PmTrigger 1
0x51 PmTriggerWfi 1
0x54 SetInstrumentationMethodHeader 1
0x55 SetInstrumentationMethodData 1
0x60 LineLengthIn 1
0x61 LineCount 1
0x62 OffsetOutUpper 1
0x63 OffsetOut 1
0x64 PitchOut 1
0x65 SetDstBlockSize 1
0x66 SetDstWidth 1
0x67 SetDstHeight 1
0x68 SetDstDepth 1
0x69 SetDstLayer 1
0x6A SetDstOriginBytesX 1
0x6B SetDstOriginSamplesY 1
0x6C LaunchDma 1
0x6D LoadInlineData 1
0x77 SetI2mSemaphoreA 1
0x78 SetI2mSemaphoreB 1
0x79 SetI2mSemaphoreC 1
0x7C SetI2mSpareNoop00 1
0x7D SetI2mSpareNoop01 1
0x7E SetI2mSpareNoop02 1
0x7F SetI2mSpareNoop03 1
0x80 SetValidSpanOverflowAreaA 1
0x81 SetValidSpanOverflowAreaB 1
0x82 SetValidSpanOverflowAreaC 1
0x83 SetCoalesceWaitingPeriodUnit 1
0x84 PerfmonTransfer 1
0x85 SetShaderSharedMemoryWindow 1
0x86 SetSelectMaxwellTextureHeaders 1
0x87 InvalidateShaderCaches 1
0x88 SetReservedSwMethod00 1
0x89 SetReservedSwMethod01 1
0x8A SetReservedSwMethod02 1
0x8B SetReservedSwMethod03 1
0x8C SetReservedSwMethod04 1
0x8D SetReservedSwMethod05 1
0x8E SetReservedSwMethod06 1
0x8F SetReservedSwMethod07 1
0x90 SetCwdControl 1
0x91 InvalidateTextureHeaderCacheNoWfi 1
0x92 SetCwdRefCounter 1
0x93 SetReservedSwMethod08 1
0x94 SetReservedSwMethod09 1
0x95 SetReservedSwMethod10 1
0x96 SetReservedSwMethod11 1
0x97 SetReservedSwMethod12 1
0x98 SetReservedSwMethod13 1
0x99 SetReservedSwMethod14 1
0x9A SetReservedSwMethod15 1
0x9B SetGwcScgType 1
0x9C SetScgControl 1
0x9D InvalidateConstantBufferCacheA 1
0x9E InvalidateConstantBufferCacheB 1
0x9F InvalidateConstantBufferCacheC 1
0xA0 SetComputeClassVersion 1
0xA1 CheckComputeClassVersion 1
0xA2 SetQmdVersion 1
0xA3 SetWfiConfig 1
0xA4 CheckQmdVersion 1
0xA5 WaitForIdleScgType 1
0xA6 InvalidateSkedCaches 1
0xA7 SetScgRenderEnableControl 1
0xAC SetCwdSlotCount 1
0xAD SendPcasA 1
0xAE SendPcasB 1
0xAF SendSignalingPcasB 1
0xB9 SetShaderLocalMemoryNonThrottledA 1
0xBA SetShaderLocalMemoryNonThrottledB 1
0xBB SetShaderLocalMemoryNonThrottledC 1
0xBC SetShaderLocalMemoryThrottledA 1
0xBD SetShaderLocalMemoryThrottledB 1
0xBE SetShaderLocalMemoryThrottledC 1
0xC4 SetSpaVersion 1
0x140 SetFalcon00 1
0x141 SetFalcon01 1
0x142 SetFalcon02 1
0x143 SetFalcon03 1
0x144 SetFalcon04 1
0x145 SetFalcon05 1
0x146 SetFalcon06 1
0x147 SetFalcon07 1
0x148 SetFalcon08 1
0x149 SetFalcon09 1
0x14A SetFalcon10 1
0x14B SetFalcon11 1
0x14C SetFalcon12 1
0x14D SetFalcon13 1
0x14E SetFalcon14 1
0x14F SetFalcon15 1
0x150 SetFalcon16 1
0x151 SetFalcon17 1
0x152 SetFalcon18 1
0x153 SetFalcon19 1
0x154 SetFalcon20 1
0x155 SetFalcon21 1
0x156 SetFalcon22 1
0x157 SetFalcon23 1
0x158 SetFalcon24 1
0x159 SetFalcon25 1
0x15A SetFalcon26 1
0x15B SetFalcon27 1
0x15C SetFalcon28 1
0x15D SetFalcon29 1
0x15E SetFalcon30 1
0x15F SetFalcon31 1
0x1DF SetShaderLocalMemoryWindow 1
0x1E4 SetShaderLocalMemoryA 1
0x1E8 SetShaderLocalMemoryB 1
0x365 SetShaderCacheControl 1
0x379 SetSmTimeoutInterval 1
0x3D1 SetSpareNoop12 1
0x3D2 SetSpareNoop13 1
0x3D3 SetSpareNoop14 1
0x3D4 SetSpareNoop15 1
0x410 SetSpareNoop00 1
0x411 SetSpareNoop01 1
0x412 SetSpareNoop02 1
0x413 SetSpareNoop03 1
0x414 SetSpareNoop04 1
0x415 SetSpareNoop05 1
0x416 SetSpareNoop06 1
0x417 SetSpareNoop07 1
0x418 SetSpareNoop08 1
0x419 SetSpareNoop09 1
0x41A SetSpareNoop10 1
0x41B SetSpareNoop11 1
0x483 InvalidateSamplerCacheAll 1
0x484 InvalidateTextureHeaderCacheAll 1
0x4A2 InvalidateTextureDataCacheNoWfi 1
0x4AA ActivatePerfSettingsForComputeContext 1
0x4CC InvalidateSamplerCache 1
0x4CD InvalidateTextureHeaderCache 1
0x4CE InvalidateTextureDataCache 1
0x509 InvalidateSamplerCacheNoWfi 1
0x54A SetShaderExceptions 1
0x554 SetRenderEnableA 1
0x555 SetRenderEnableB 1
0x556 SetRenderEnableC 1
0x557 SetTexSamplerPoolA 1
0x558 SetTexSamplerPoolB 1
0x559 SetTexSamplerPoolC 1
0x55D SetTexHeaderPoolA 1
0x55E SetTexHeaderPoolB 1
0x55F SetTexHeaderPoolC 1
0x582 SetProgramRegionA 1
0x583 SetProgramRegionB 1
0x5A6 InvalidateShaderCachesNoWfi 1
0x651 SetRenderEnableOverride 1
0x68B PipeNop 1
0x68C SetSpare00 1
0x68D SetSpare01 1
0x68E SetSpare02 1
0x68F SetSpare03 1
0x6C0 SetReportSemaphoreA 1
0x6C1 SetReportSemaphoreB 1
0x6C2 SetReportSemaphoreC 1
0x6C3 SetReportSemaphoreD 1
0x982 SetBindlessTexture 1
0x983 SetTrapHandler 1
0xCCF SetShaderPerformanceCounterValueUpper 8
0xCD7 SetShaderPerformanceCounterValue 8
0xCDF SetShaderPerformanceCounterEvent 8
0xCE7 SetShaderPerformanceCounterControlA 8
0xCEF SetShaderPerformanceCounterControlB 8
0xCF7 SetShaderPerformanceCounterTrapControl 1
0xCF8 StartShaderPerformanceCounter 1
0xCF9 StopShaderPerformanceCounter 1
0xD00 SetMmeShadowScratch 8

KEPLER_INLINE_TO_MEMORY_B

Register Name Size Type Notes
0x0 SetObject 1 bitfield Bit0-15: ClassId, bit16-20: EngineId
0x40 NoOperation 1
0x41 SetNotifyA 1 gpuva
0x42 SetNotifyB 1 gpuva
0x43 Notify 1 0=WriteOnly, 1=WriteThenAwaken
0x44 WaitForIdle 1
0x4C SetGlobalRenderEnableA 1
0x4D SetGlobalRenderEnableB 1
0x4E SetGlobalRenderEnableC 1
0x4F SendGoIdle 1
0x50 PmTrigger 1
0x51 PmTriggerWfi 1
0x54 SetInstrumentationMethodHeader 1
0x55 SetInstrumentationMethodData 1
0x60 LineLengthIn 1
0x61 LineCount 1
0x62 OffsetOutUpper 1
0x63 OffsetOut 1
0x64 PitchOut 1
0x65 SetDstBlockSize 1
0x66 SetDstWidth 1
0x67 SetDstHeight 1
0x68 SetDstDepth 1
0x69 SetDstLayer 1
0x6A SetDstOriginBytesX 1
0x6B SetDstOriginSamplesY 1
0x6C LaunchDma 1
0x6D LoadInlineData 1
0x77 SetI2mSemaphoreA 1
0x78 SetI2mSemaphoreB 1
0x79 SetI2mSemaphoreC 1
0x7C SetI2mSpareNoop00 1
0x7D SetI2mSpareNoop01 1
0x7E SetI2mSpareNoop02 1
0x7F SetI2mSpareNoop03 1
0x80 SetFalcon00 1
0x81 SetFalcon01 1
0x82 SetFalcon02 1
0x83 SetFalcon03 1
0x84 SetFalcon04 1
0x85 SetFalcon05 1
0x86 SetFalcon06 1
0x87 SetFalcon07 1
0x88 SetFalcon08 1
0x89 SetFalcon09 1
0x8A SetFalcon10 1
0x8B SetFalcon11 1
0x8C SetFalcon12 1
0x8D SetFalcon13 1
0x8E SetFalcon14 1
0x8F SetFalcon15 1
0x90 SetFalcon16 1
0x91 SetFalcon17 1
0x92 SetFalcon18 1
0x93 SetFalcon19 1
0x94 SetFalcon20 1
0x95 SetFalcon21 1
0x96 SetFalcon22 1
0x97 SetFalcon23 1
0x98 SetFalcon24 1
0x99 SetFalcon25 1
0x9A SetFalcon26 1
0x9B SetFalcon27 1
0x9C SetFalcon28 1
0x9D SetFalcon29 1
0x9E SetFalcon30 1
0x9F SetFalcon31 1
0x554 SetRenderEnableA 1
0x555 SetRenderEnableB 1
0x556 SetRenderEnableC 1
0x651 SetRenderEnableOverride 1
0xD00 SetMmeShadowScratch uint[0x100] 256 Mostly general purpose, sometimes accessed by FirmwareCall.

FERMI_TWOD_A

Register Name Size Type Notes
0x0 SetObject 1 bitfield Bit0-15: ClassId, bit16-20: EngineId
0x40 NoOperation 1
0x41 SetNotifyA 1 gpuva
0x42 SetNotifyB 1 gpuva
0x43 Notify 1 0=WriteOnly, 1=WriteThenAwaken
0x44 WaitForIdle 1
0x45 LoadMmeInstructionRamPointer 1 uint
0x46 LoadMmeInstructionRam 1 pipe Writes to and increments MmeInstructionRamPointer by 1.
0x47 LoadMmeStartAddressRamPointer 1 uint
0x48 LoadMmeStartAddressRam 1 pipe
0x49 SetMmeShadowRamControl 1 uint 0=MethodTrack, 1=MethodTrackWithFilter, 2=MethodPassthrough, 3=MethodReplay. Used during ClearColor.
0x4C SetGlobalRenderEnableA 1
0x4D SetGlobalRenderEnableB 1
0x4E SetGlobalRenderEnableC 1
0x4F SendGoIdle 1
0x50 PmTrigger 1
0x54 SetInstrumentationMethodHeader 1
0x55 SetInstrumentationMethodData 1
0x7B SetMmeSwitchState 1
0x80 SetDstFormat 1
0x81 SetDstMemoryLayout 1
0x82 SetDstBlockSize 1
0x83 SetDstDepth 1
0x84 SetDstLayer 1
0x85 SetDstPitch 1
0x86 SetDstWidth 1
0x87 SetDstHeight 1
0x88 SetDstOffsetUpper 1
0x89 SetDstOffsetLower 1
0x8A FlushAndInvalidateRopMiniCache 1
0x8B SetSpareNoop06 1
0x8C SetSrcFormat 1
0x8D SetSrcMemoryLayout 1
0x8E SetSrcBlockSize 1
0x8F SetSrcDepth 1
0x90 TwodInvalidateTextureDataCache 1
0x91 SetSrcPitch 1
0x92 SetSrcWidth 1
0x93 SetSrcHeight 1
0x94 SetSrcOffsetUpper 1
0x95 SetSrcOffsetLower 1
0x96 SetPixelsFromMemorySectorPromotion 1
0x97 SetSpareNoop12 1
0x98 SetNumProcessingClusters 1
0x99 SetRenderEnableA 1
0x9A SetRenderEnableB 1
0x9B SetRenderEnableC 1
0x9C SetSpareNoop08 1
0x9D SetSpareNoop01 1
0x9E SetSpareNoop11 1
0x9F SetSpareNoop07 1
0xA0 SetClipX0 1
0xA1 SetClipY0 1
0xA2 SetClipWidth 1
0xA3 SetClipHeight 1
0xA4 SetClipEnable 1
0xA5 SetColorKeyFormat 1
0xA6 SetColorKey 1
0xA7 SetColorKeyEnable 1
0xA8 SetRop 1
0xA9 SetBeta1 1
0xAA SetBeta4 1
0xAB SetOperation 1
0xAC SetPatternOffset 1
0xAD SetPatternSelect 1
0xAE SetDstColorRenderToZetaSurface 1
0xAF SetSpareNoop04 1
0xB0 SetSpareNoop15 1
0xB1 SetSpareNoop13 1
0xB2 SetSpareNoop03 1
0xB3 SetSpareNoop14 1
0xB4 SetSpareNoop02 1
0xB5 SetCompression 1
0xB6 SetSpareNoop09 1
0xB7 SetRenderEnableOverride 1
0xB8 SetPixelsFromMemoryDirection 1
0xB9 SetSpareNoop10 1
0xBA SetMonochromePatternColorFormat 1
0xBB SetMonochromePatternFormat 1
0xBC SetMonochromePatternColor0 1
0xBD SetMonochromePatternColor1 1
0xBE SetMonochromePattern0 1
0xBF SetMonochromePattern1 1
0xC0 ColorPatternX8R8G8B8 64
0x100 ColorPatternR5G6B5 32
0x120 ColorPatternX1R5G5B5 32
0x140 ColorPatternY8 16
0x150 SetRenderSolidPrimColor0 1
0x151 SetRenderSolidPrimColor1 1
0x152 SetRenderSolidPrimColor2 1
0x153 SetRenderSolidPrimColor3 1
0x154 SetMmeMemAddressA 1
0x155 SetMmeMemAddressB 1
0x156 SetMmeDataRamAddress 1
0x157 MmeDmaRead 1
0x158 MmeDmaReadFifoed 1
0x159 MmeDmaWrite 1
0x15A MmeDmaReduction 1
0x15B MmeDmaSysmembar 1
0x15C MmeDmaSync 1
0x15D SetMmeDataFifoConfig 1
0x160 RenderSolidPrimMode 1
0x161 SetRenderSolidPrimColorFormat 1
0x162 SetRenderSolidPrimColor 1
0x163 SetRenderSolidLineTieBreakBits 1
0x178 RenderSolidPrimPointXY 1
0x180 RenderSolidPrimPoint 128
0x200 SetPixelsFromCpuDataType 1
0x201 SetPixelsFromCpuColorFormat 1
0x202 SetPixelsFromCpuIndexFormat 1
0x203 SetPixelsFromCpuMonoFormat 1
0x204 SetPixelsFromCpuWrap 1
0x205 SetPixelsFromCpuColor0 1
0x206 SetPixelsFromCpuColor1 1
0x207 SetPixelsFromCpuMonoOpacity 1
0x20E SetPixelsFromCpuSrcWidth 1
0x20F SetPixelsFromCpuSrcHeight 1
0x210 SetPixelsFromCpuDxDuFrac 1
0x211 SetPixelsFromCpuDxDuInt 1
0x212 SetPixelsFromCpuDyDvFrac 1
0x213 SetPixelsFromCpuDyDvInt 1
0x214 SetPixelsFromCpuDstX0Frac 1
0x215 SetPixelsFromCpuDstX0Int 1
0x216 SetPixelsFromCpuDstY0Frac 1
0x217 SetPixelsFromCpuDstY0Int 1
0x218 PixelsFromCpuData 1
0x21C SetBigEndianControl 1
0x220 SetPixelsFromMemoryBlockShape 1
0x221 SetPixelsFromMemoryCorralSize 1
0x222 SetPixelsFromMemorySafeOverlap 1
0x223 SetPixelsFromMemorySampleMode 1
0x22C SetPixelsFromMemoryDstX0 1
0x22D SetPixelsFromMemoryDstY0 1
0x22E SetPixelsFromMemoryDstWidth 1
0x22F SetPixelsFromMemoryDstHeight 1
0x230 SetPixelsFromMemoryDuDxFrac 1
0x231 SetPixelsFromMemoryDuDxInt 1
0x232 SetPixelsFromMemoryDvDyFrac 1
0x233 SetPixelsFromMemoryDvDyInt 1
0x234 SetPixelsFromMemorySrcX0Frac 1
0x235 SetPixelsFromMemorySrcX0Int 1
0x236 SetPixelsFromMemorySrcY0Frac 1
0x237 PixelsFromMemorySrcY0Int 1
0x238 SetFalcon00 1
0x239 SetFalcon01 1
0x23A SetFalcon02 1
0x23B SetFalcon03 1
0x23C SetFalcon04 1
0x23D SetFalcon05 1
0x23E SetFalcon06 1
0x23F SetFalcon07 1
0x240 SetFalcon08 1
0x241 SetFalcon09 1
0x242 SetFalcon10 1
0x243 SetFalcon11 1
0x244 SetFalcon12 1
0x245 SetFalcon13 1
0x246 SetFalcon14 1
0x247 SetFalcon15 1
0x248 SetFalcon16 1
0x249 SetFalcon17 1
0x24A SetFalcon18 1
0x24B SetFalcon19 1
0x24C SetFalcon20 1
0x24D SetFalcon21 1
0x24E SetFalcon22 1
0x24F SetFalcon23 1
0x250 SetFalcon24 1
0x251 SetFalcon25 1
0x252 SetFalcon26 1
0x253 SetFalcon27 1
0x254 SetFalcon28 1
0x255 SetFalcon29 1
0x256 SetFalcon30 1
0x257 SetFalcon31 1
0x37B MmeDmaWriteMethodBarrier 1
0xD00 SetMmeShadowScratch uint[0x100] 256 Mostly general purpose, sometimes accessed by FirmwareCall.
0xE00+N*2 CallMmeMacro 1 uint n=0..0x7f. Writing here calls a bound macro with value written put in r1.
0xE01+N*2 CallMmeData 1 pipe Used to send variable number of arguments to macro via the "parm" instruction.

MAXWELL_DMA_COPY_A

Register Name Size Type Notes
0x40 Nop 1
0x50 PmTrigger 1
0x90 SetSemaphoreA 1
0x91 SetSemaphoreB 1
0x92 SetSemaphorePayload 1
0x95 SetRenderEnableA 1
0x96 SetRenderEnableB 1
0x97 SetRenderEnableC 1
0x98 SetSrcPhysMode 1
0x99 SetDstPhysMode 1
0xC0 LaunchDma 1 bitfield With 0x186 Src/DstStride is not used. With 0x586 memset-functionality is used.
0x100 OffsetInUpper 1 gpuva
0x101 OffsetInLower 1 gpuva
0x102 OffsetOutUpper 1 gpuva
0x103 OffsetOutLower 1 gpuva
0x104 PitchIn 1 uint
0x105 PitchOut 1 uint
0x106 LineLengthIn 1 uint At most 0x3FFFFF.
0x107 LineCount 1 uint At most 0x3FFFFF.
0x1C0 SetRemapConstA 1 uint
0x1C1 SetRemapConstB 1 uint
0x1C2 SetRemapComponents 1 bitfield Seen: 0x34444
0x1C3 SetDstBlockSize 1 uint
0x1C4 SetDstWidth 1 uint In units of 4 bytes.
0x1C5 SetDstHeight 1 Seen: 1
0x1C6 SetDstDepth 1
0x1C7 SetDstLayer 1
0x1C8 SetDstOrigin 1
0x1CA SetSrcBlockSize 1
0x1CB SetSrcWidth 1
0x1CC SetSrcHeight 1
0x1CD SetSrcDepth 1
0x1CE SetSrcLayer 1
0x1CF SetSrcOrigin 1
0x445 PmTriggerEnd 1

MAXWELL_CHANNEL_GPFIFO_A

Register Name Size Type Notes
0x0 SetObject 1 bitfield Bit0-15: ClassId, bit16-20: EngineId
0x1 Illegal 1
0x2 Nop 1
0x4 SemaphoreA 1
0x5 SemaphoreB 1
0x6 SemaphoreC 1
0x7 SemaphoreD 1
0x8 NonStallInterrupt 1
0x9 FbFlush 1
0xC MemOpC 1
0xD MemOpD 1
0x10 Put 1
0x11 Get 1
0x12 Reference 1
0x13 PutHi 1
0x14 SetReference 1
0x16 TopLevelGet 1
0x17 TopLevelGetHi 1
0x18 GetHi 1
0x1E Wfi 1
0x1F CrcCheck 1
0x20 Yield 1
0x22 GPGet 1
0x23 GPPut 1