Line 773: |
Line 773: |
| | 0x4ED || SetAliasedLineWidthFloat || 1 || float || | | | 0x4ED || SetAliasedLineWidthFloat || 1 || float || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x50D || VertexBufferElementBase || 1 || uint || | + | | 0x506 || SetLineMultisampleOverride || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x519 || ZCullContextSave || 1 || trigger || 0 is written here to trigger ctx-save, uses ZCullContextStartAddr. | + | | 0x508 || SetAlphaHysteresis || 1 || || |
| + | |- |
| + | | 0x509 || InvalidateSamplerCacheNoWfi || 1 || || |
| + | |- |
| + | | 0x50A || InvalidateTextureHeaderCacheNoWfi || 1 || || |
| + | |- style="border-top: double" |
| + | | 0x50D || SetGlobalBaseVertexIndex || 1 || uint || |
| + | |- |
| + | | 0x509 || SetGlobalBaseInstanceIndex || 1 || || |
| + | |- style="border-top: double" |
| + | | 0x514 || SetPsWarpWatermarks || 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" |
| | 0x51F || PolygonOffsetClamp0 || 1 || float || | | | 0x51F || PolygonOffsetClamp0 || 1 || float || |
| + | |- |
| + | | 0x520+4*N || SetIteratedBlendConstantRed || 1 || || |
| + | |- |
| + | | 0x521+4*N || SetIteratedBlendConstantGreen || 1 || || |
| + | |- |
| + | | 0x522+4*N || SetIteratedBlendConstantBlue || 1 || || |
| + | |- style="border-top: double" |
| + | | 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 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x540 || ZCullContextRestore || 1 || trigger || 0 is written here to trigger ctx-restore, uses ZCullContextStartAddr. | + | | 0x54A || SetShaderExceptions || 1 || || |
| + | |- style="border-top: double" |
| + | | 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" |
− | | 0x546 || PointSize || 1 || float || | + | | 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 |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x54C || CounterReset || 1 || || Value written decides which counter to reset. | + | | 0x55B || SetSlopeScaleDepthBias || 1 || float || |
| |- | | |- |
− | | 0x54D || MultisampleEnable || 1 || || | + | | 0x55C || SetAntiAliasedLine || 1 || || |
| + | |- |
| + | | 0x55D || SetTexHeaderPoolA || 1 || gpuva || |
| + | |- |
| + | | 0x55E || SetTexHeaderPoolB || 1 || gpuva || |
| + | |- |
| + | | 0x55F || SetTexHeaderPoolC || 1 || bitfield || Bit0-21: MaximumIndex |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x54E || || 1 || bool || SetRenderTargets writes 0 here if an optional buffer is NULL. | + | | 0x564 || SetActiveZcullRegion || 1 || || |
| + | |- |
| + | | 0x565 || SetTwoSidedStencilTest || 1 || || |
| + | |- |
| + | | 0x566 || SetBackStencilOpFail || 1 || || |
| + | |- |
| + | | 0x567 || SetBackStencilOpZfail || 1 || || |
| |- | | |- |
− | | 0x54F || MultisampleControl || 1 || bool || bit0: AlphaToCoverageEnable, bit1+: ? | + | | 0x568 || SetBackStencilOpZpass || 1 || || |
| + | |- |
| + | | 0x569 || SetBackStencilFunc || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x554 || RenderEnableOffset || 2 || gpuva || | + | | 0x56D || CsaaEnable || 1 || bool || |
| + | |- |
| + | | 0x56E || SetSrgbWrite || 1 || || |
| + | |- |
| + | | 0x56F || SetDepthBias || 1 || float || Float multiplied by 2 is written here. |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x556 || RenderEnableMode || 1 || enum || 0=False, 1=True, 2=Conditional, 3=RenderIfEqual, 4=RenderIfNotEqual, | + | | 0x572 || SetZcullRegionFormat || 1 || || |
| |- | | |- |
− | | 0x557 || TexSamplerPoolOffset (???) || 2 || gpuva || | + | | 0x573 || SetRtLayer || 1 || || |
| |- | | |- |
− | | 0x558 || TexSamplerPoolMaximumIndex (???) || 1 || bitfield || Bit0-19: Maximum | + | | 0x574 || SetAntiAlias || 1 || || Written by SetRenderTargets, possible values: 0, 2, 4, 5, 6. |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x55B || PolygonOffsetFactor || 1 || float || | + | | 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" |
− | | 0x55D || TexHeaderPoolOffset (???) || 2 || gpuva || | + | | 0x58B || SetShaderBasedCull || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x55F || TexHeaderPoolMaximumIndex (???) || 1 || bitfield || Bit0-21: Maximum | + | | 0x58E || SetClassVersion || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x56D || CsaaEnable || 1 || bool || | + | | 0x591 || SetDaPrimitiveRestart || 1 || bool || |
| + | |- |
| + | | 0x592 || SetDaPrimitiveRestartIndex || 1 || uint || |
| + | |- |
| + | | 0x593 || SetDaOutput || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x56F || PolygonOffsetOffset || 1 || float || Float multiplied by 2 is written here. | + | | 0x596 || SetAntiAliasedPoint || 1 || || |
| + | |- |
| + | | 0x597 || SetPointCenterMode || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x574 || MultisampleMode || 1 || || Written by SetRenderTargets, possible values: 0, 2, 4, 5, 6. | + | | 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" |
− | | 0x57F || || 1 || || SetRenderTargets optionally writes 0 here. | + | | 0x5A8 || CheckClassVersion || 1 || || |
| + | |- |
| + | | 0x5A9 || SetSphVersion || 1 || || |
| |- | | |- |
− | | 0x580 || || 1 || || SetRenderTargets optionally writes 0 here. | + | | 0x5AA || CheckSphVersion || 1 || || |
| + | |- style="border-top: double" |
| + | | 0x5AD || SetAlphaToCoverageOverride || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x582 || ProgramRegion (???) || 2 || gpuva || | + | | 0x5C0+N || SetPolygonStipplePattern || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x591 || PrimitiveRestartEnable || 1 || bool || | + | | 0x5E4 || SetAamVersion || 1 || || |
| |- | | |- |
− | | 0x592 || PrimitiveRestartIndex || 1 || uint || | + | | 0x5E5 || CheckAamVersion || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x599 || CubeMapInterFaceFiltering (???) || 1 || bitfield || Bit0-1: Mode (0=UseWrap, 1=OverrideWrap, 2=AutoSpanSeam, 3=AutoCrossSeam) | + | | 0x5E7 || SetZtLayer || 1 || || |
| + | |- style="border-top: double" |
| + | | 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" |
− | | 0x5A4 || ShaderControl (???) || 1 || bitfield || Bit0: Partial (0=Zero, 1=Infinity), bit1: Fp32NanBehavior (0=Legacy, 1=Fp64Compatible), bit2: Fp32F21NanBehavior (0=PassZero, 1=PassIndefinite), bit16: ZeroTimesAnythingIsZero | + | | 0x61F || SetDepthBiasClamp || 1 || || |
| |- | | |- |
− | | 0x5A5 || BindConstantBuffer (???) || 1 || bitfield || Bit0: Valid, bit8-12: ShaderSlot | + | | 0x620+N || SetVertexStreamInstanceA || 16 || bool || n=0...15. |
| |- | | |- |
− | | 0x5A6 || InvalidateShaderCachesNoWfi (???) || 1 || bitfield || Bit0: Instruction, bit4: GlobalData, bit8: Uniform, bit12: Constant | + | | 0x630+N || SetVertexStreamInstanceB || 16 || bool || n=0...15. |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x5F2 || DrawElementsIndirectAddr || 2 || gpuva || TODO | + | | 0x644 || SetAttributePointSize || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x5F6 || DrawElementsIndirectFlag? || 1 || bool || TODO | + | | 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 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x620+N || VertexStreamNEnableDivisor || 1 || bool || n=0...15. | + | | 0x64B || SetViewportScaleOffset || 1 || || |
| + | |- |
| + | | 0x64C || InvalidateConstantBufferCache || 1 || bitfield || Bit0: ThruL2 |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x646 || PolygonCullFaceEnable || 1 || bool || | + | | 0x64F || SetViewportClipControl || 1 || || TODO: 0x101A is written when enabled, 0x181D when disabled. |
| |- | | |- |
− | | 0x647 || PolygonFrontFace || 1 || bitfield || Bit0: Enable. Always ORR'd with 0x9000. | + | | 0x650 || SetUserClipOp || 1 || || |
| |- | | |- |
− | | 0x648 || PolygonCullFaceConfig || 1 || bitfield || TODO: 0x404/0x405/0x408 | + | | 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" |
| + | | 0x656 || InvalidateZcull || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x651 || RenderEnableOverride || 1 || bitfield || Bit0-1: 0=UseRenderEnable, 1=AlwaysRender, 2=NeverRender | + | | 0x65A || SetZcull || 1 || || |
| + | |- |
| + | | 0x65B || SetZcullBounds || 1 || || |
| + | |- |
| + | | 0x65C || SetPrimitiveTopology || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x64C || InvalidateConstantBufferCache (???) || 1 || bitfield || Bit0: ThruL2 | + | | 0x65E || ZcullSync || 1 || || |
| + | |- |
| + | | 0x65F || SetClipIdTest || 1 || || |
| + | |- |
| + | | 0x660 || SetSurfaceClipIdWidth || 1 || || |
| + | |- |
| + | | 0x661 || SetClipId || 1 || || |
| + | |- style="border-top: double" |
| + | | 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 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x64F || DepthClamp || 1 || || TODO: 0x101A is written when enabled, 0x181D when disabled. | + | | 0x678+N || SetColorCompression || 8 || || |
| + | |- |
| + | | 0x680+N || SetCtWrite || 8 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x66F || DepthBoundsEnable || 1 || bool || | + | | 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" |
− | | 0x671 || ColorLogicOpEnable || 1 || bool || Used for all LogicOps except 3. | + | | 0x6C0 || SetReportSemaphoreA || 1 || gpuva || |
| + | |- |
| + | | 0x6C1 || SetReportSemaphoreB || 1 || gpuva || |
| + | |- |
| + | | 0x6C2 || SetReportSemaphoreC || 1 || || 0 is written here during most queries. |
| |- | | |- |
− | | 0x672 || ColorLogicOpType || 1 || bitfield || Bit0-7: LogicOp, bit8-15: unknown, always 0x15. | + | | 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" |
− | | 0x689 || SetSpare (???) || 1 || uint[4] || | + | | 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" |
− | | 0x68B || PipeNop || 1 || trigger || Always 0 is written here. During zcull ctx-save, spammed when enabling raster, ... | + | | 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" |
− | | 0x6C0 || ReportSemaphoreOffset || 2 || gpuva || | + | | 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: ? |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x6C2 || ReportSemaphorePayload || 1 || || 0 is written here during most queries. | + | | 0x7C0+2*N || SetVertexStreamLimitAA || 1 || gpuva || |
| |- | | |- |
− | | 0x6C3 || ReportSemaphoreControl || 1 || bitfield || Bit0-1: Operation (0=Release, 3=Trap), bit2: FlushDisable, bit20: AwakenEnable, bit28: StructureSize (0=FourWords, 1=OneWord) | + | | 0x7C1+2*N || SetVertexStreamLimitAB || 1 || gpuva || |
| |- 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 | + | | 0x7E0+2*N || SetVertexStreamLimitBA || 1 || gpuva || |
| |- | | |- |
− | | 0x701+4*N || VertexBufferStartAddr || 2 || gpuva || TODO: Incorrecto | + | | 0x7E1+2*N || SetVertexStreamLimitBB || 1 || gpuva || |
| + | |- style="border-top: double" |
| + | | 0x800+16*N || SetPipelineShader || 1 || || |
| |- | | |- |
− | | 0x703+4*N || VertexStreamNDivisor || || || | + | | 0x801+16*N || SetPipelineProgram || 1 || || |
| |- | | |- |
− | | 0x7C0+2*N || VertexBufferEndAddr || 2 || gpuva || | + | | 0x802+16*N || SetPipelineReservedA || 1 || || |
| |- | | |- |
− | | 0x781+8*N || BlendNRgbEquation || 1 || bitfield || Bit0-2: BlendEquation. | + | | 0x803+16*N || SetPipelineRegisterCount || 1 || || |
| |- | | |- |
− | | 0x782+8*N || BlendNRgbFunctionSrc || 1 || bitfield || Bit0-4: ?, bit14-15: ? | + | | 0x804+16*N || SetPipelineBinding || 1 || || |
| |- | | |- |
− | | 0x783+8*N || BlendNRgbFunctionDst || 1 || bitfield || Bit0-4: ?, bit14-15: ? | + | | 0x805+16*N || SetPipelineReservedB || 1 || || |
| |- | | |- |
− | | 0x784+8*N || BlendNAlphaEquation || 1 || bitfield || Bit0-2: BlendEquation | + | | 0x806+16*N || SetPipelineReservedC || 1 || || |
| |- | | |- |
− | | 0x785+8*N || BlendNAlphaFunctionSrc || 1 || bitfield || Bit0-4: ?, bit14-15: ? | + | | 0x807+16*N || SetPipelineReservedD || 1 || || |
| |- | | |- |
− | | 0x786+8*N || BlendNAlphaFunctionDst || 1 || bitfield || Bit0-4: ?, bit14-15: ? | + | | 0x808+16*N || SetPipelineReservedE || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
| | 0x820 || || 1 || || Select tessellation control program. | | | 0x820 || || 1 || || Select tessellation control program. |
Line 893: |
Line 1,135: |
| | 0x850 || || 1 || || Select fragment program. | | | 0x850 || || 1 || || Select fragment program. |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x8C0+N || FirmwareCallN || 8 || uint || Invokes GPU microcode firmware blob. | + | | 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" |
− | | 0x8E0 || ConstantBufferSelectorSize || 1 || uint || Bit0-16: Size | + | | 0x900+8*N || BindGroupReservedA || 1 || || |
| |- | | |- |
− | | 0x8E1 || ConstantBufferSelectorAddr || 2 || gpuva || | + | | 0x901+8*N || BindGroupReservedB || 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 | + | | 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" |
| + | | 0x980 || SetColorClamp || 1 || || |
| + | |- style="border-top: double" |
| + | | 0x982 || SetBindlessTexture || 1 || || |
| |- | | |- |
− | | 0x8E4 || LoadConstantBuffer || 1 || uint[16] || | + | | 0x983 || SetTrapHandler || 1 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0x904+8*N || ConstBufferNBind || 1 || bitfield || n=0..4. Bit0: Valid, bit4-8: Index | + | | 0xA00 || SetStreamOutLayoutSelect || 1 || || |
| + | |- style="border-top: double" |
| + | | 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 || || |
| |- style="border-top: double" | | |- style="border-top: double" |
− | | 0xD00 || SetMmeShadowScratch || uint[0x80] || 128 || Mostly general purpose, sometimes accessed by FirmwareCall. | + | | 0xD00+N || SetMmeShadowScratch || 128 || uint[0x80] || Mostly general purpose, sometimes accessed by FirmwareCall. |
| |- 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. | + | | 0xE00+N*2 || CallMmeMacro || 1 || uint || n=0..0x7f. Writing here calls a bound macro with value written put in r1. |
| |- | | |- |
− | | 0xE01+N*2 || CallMmeDataN || 1 || pipe || Used to send variable number of arguments to macro via the "parm" instruction. | + | | 0xE01+N*2 || CallMmeData || 1 || pipe || Used to send variable number of arguments to macro via the "parm" instruction. |
| |} | | |} |
| | | |