GPU Classes: Difference between revisions

No edit summary
Line 80: Line 80:
| 0x3F2 || SampleMask2 || 1 || ||
| 0x3F2 || SampleMask2 || 1 || ||
|-
|-
| 0x3F5 || Multisample_Related2 || 1 || ||
| 0x3F5 || Multisample_Related2 || 1 || || TODO
|-
|-
| 0x3F6 || CoverageModulationEnable || 1 || bool ||
| 0x3F6 || CoverageModulationEnable || 1 || bool ||
Line 94: Line 94:
| 0x4B3 || DepthTestEnable || 1 || bool || Enables DepthWriteEnable and DepthFunc.
| 0x4B3 || DepthTestEnable || 1 || bool || Enables DepthWriteEnable and DepthFunc.
|-
|-
| 0x4B8 || Multisample_Config2 || 1 || bool ||
| 0x4B8 || Multisample_Config2 || 1 || bool || TODO
|-
|-
| 0x4BA || DepthWriteEnable || 1 || bool ||
| 0x4BA || DepthWriteEnable || 1 || bool ||
Line 124: Line 124:
| 0x4C7 || BlendColor || 4 || float[4] ||
| 0x4C7 || BlendColor || 4 || float[4] ||
|-
|-
| 0x47C || || 1 || || BindProgram writes 0 here sometimes.
| 0x47C || || 1 || trigger || BindProgram writes 0 here sometimes.
|-
|-
| 0x47F || DepthBuffer_Resolve || 1 || || 1 is written here to trigger.
| 0x47F || DepthBufferResolve || 1 || trigger || 1 is written here to trigger.
|-
|-
| 0x519 || ZCullCtx_Save || 1 || || 0 is written here to trigger ctx-save, uses both ZCullCtx_Addr0/1.
| 0x519 || ZCullContextSave || 1 || trigger || 0 is written here to trigger ctx-save, uses ZCullContextStartAddr.
|-
|-
| 0x51F || PolygonOffsetClamp0 || 1 || float ||
| 0x51F || PolygonOffsetClamp0 || 1 || float ||
|-
|-
| 0x540 || ZCullCtx_Restore || 1 || || 0 is written here to trigger ctx-restore, uses both ZCullCtx_Addr0/1.
| 0x540 || ZCullContextRestore || 1 || trigger || 0 is written here to trigger ctx-restore, uses ZCullContextStartAddr.
|-
|-
| 0x546 || PointSize || 1 || float ||
| 0x546 || PointSize || 1 || float ||
|-
|-
| 0x554 || RendererEnableConditionAddr || 2 || gpuva ||
| 0x554 || RendererConditionAddr || 2 || gpuva ||
|-
|-
| 0x556 || RendererEnable || 1 || || 0=disabled unconditional, 1=enabled unconditional, 3=unknown conditional, 4=unknown conditional,  
| 0x556 || RendererConditionMode || 1 || || 0=disabled unconditional, 1=enabled unconditional, 3=unknown conditional, 4=unknown conditional,  
|-
|-
| 0x54C || Counter_Reset || 1 || || Value written decides which counter to reset.
| 0x54C || CounterReset || 1 || || Value written decides which counter to reset.
|-
|-
| 0x54D || MultisampleEnable || 1 || ||
| 0x54D || MultisampleEnable || 1 || ||
|-
|-
| 0x54F || MultisampleAlphaToCoverageEnable || 1 || bool ||
| 0x54F || MultisampleAlphaToCoverageEnable || 1 || bool || TODO: Has more fields?
|-
|-
| 0x55B || PolygonOffsetClamp1 || 1 || float ||
| 0x55B || PolygonOffsetFactor || 1 || float ||
|-
|-
| 0x56F || PolygonOffsetClamp2 || 1 || float || Float multiplied by 2 is written here.
| 0x56F || PolygonOffsetOffset || 1 || float || Float multiplied by 2 is written here.
|-
|-
| 0x591 || PrimitiveRestart_Enable || 1 || bool ||
| 0x591 || PrimitiveRestartEnable || 1 || bool ||
|-
|-
| 0x592 || PrimitiveRestart_Value || 1 || ||
| 0x592 || PrimitiveRestartIndex || 1 || uint ||
|-
|-
| 0x646 || PolygonCullFaceEnable || 1 || bool ||
| 0x646 || PolygonCullFaceEnable || 1 || bool ||
Line 158: Line 158:
| 0x647 || PolygonFrontFace || 1 || bitfield || Bit0: Enable. Always ORR'd with 0x9000.
| 0x647 || PolygonFrontFace || 1 || bitfield || Bit0: Enable. Always ORR'd with 0x9000.
|-
|-
| 0x648 || PolygonCullFaceConfig || 1 || bitfield || 0x404/0x405/0x408
| 0x648 || PolygonCullFaceConfig || 1 || bitfield || TODO: 0x404/0x405/0x408
|-
|-
| 0x64F || DepthClamp || 1 || || 0x101A is written when enabled, 0x181D when disabled.
| 0x64F || DepthClamp || 1 || || TODO: 0x101A is written when enabled, 0x181D when disabled.
|-
|-
| 0x66F || DepthBounds_Enable || 1 || bool ||
| 0x66F || DepthBoundsEnable || 1 || bool ||
|-
|-
| 0x671 || ColorStateLogicOpEnable || 1 || bool || Used for all LogicOps except 3.
| 0x671 || ColorLogicOpEnable || 1 || bool || Used for all LogicOps except 3.
|-
|-
| 0x672 || ColorStateLogicOpType || 1 || || Bit0-7: LogicOp, bit8-15: unknown, always 0x15.
| 0x672 || ColorLogicOpType || 1 || bitfield || Bit0-7: LogicOp, bit8-15: unknown, always 0x15.
|-
|-
| 0x68B || Barrier? || 1 || trigger || Always 0 is written here. During zcull ctx-save, spammed when enabling raster, ...
| 0x68B || Barrier? || 1 || trigger || Always 0 is written here. During zcull ctx-save, spammed when enabling raster, ...
|-
|-
| 0x6C0 || Poke_Addr || 2 || gpuva ||
| 0x6C0 || QueryAddr || 2 || gpuva ||
|-
|-
| 0x6C2 || Poke_WriteVal || 1 || || 0 is written here during most queries.
| 0x6C2 || QuerySequence || 1 || || 0 is written here during most queries.
|-
|-
| 0x6C3 || Poke_Control || 1 || || Big bitfield. After write, the result of query is written to 4 bytes at Poke_Addr.
| 0x6C3 || QueryControl || 1 || bitfield || After write, the result of query is written to 4 bytes at QueryAddr.
|-
|-
| 0x701+2*N || VertexBufferStartAddr || 2 || gpuva ||
| 0x701+2*N || VertexBufferStartAddr || 2 || gpuva || TODO: Doesn't match nouveau
|-
|-
| 0x7C0+2*N || VertexBufferEndAddr || 2 || gpuva ||
| 0x7C0+2*N || VertexBufferEndAddr || 2 || gpuva ||