pan/genxml: sort CS structs by enum-value

This matches the order from the V10 XML file.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41721>
This commit is contained in:
Erik Faye-Lund 2026-05-13 13:54:27 +02:00 committed by Marge Bot
parent 7cef8022ff
commit 69e429eb74
3 changed files with 699 additions and 701 deletions

View file

@ -699,94 +699,9 @@
<field name="Opcode" size="8" start="56" type="CS Opcode"/>
</struct>
<struct name="CS ADD_IMM32" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ADD_IMMEDIATE32"/>
</struct>
<struct name="CS ADD_IMM64" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ADD_IMMEDIATE64"/>
</struct>
<struct name="CS BRANCH" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Condition" size="4" start="28" type="CS Condition"/>
<field name="Value" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="BRANCH"/>
</struct>
<struct name="CS CALL" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="CALL"/>
</struct>
<struct name="CS ERROR_BARRIER" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ERROR_BARRIER"/>
</struct>
<struct name="CS FINISH_FRAGMENT" size="2">
<field name="Increment Fragment Completed" size="1" start="0" type="bool"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Last Heap Chunk" size="8" start="32" type="uint"/>
<field name="First Heap Chunk" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="hex"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_FRAGMENT"/>
</struct>
<struct name="CS FINISH_TILING" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_TILING"/>
</struct>
<struct name="CS FLUSH_CACHE2" size="2">
<field name="L2 Flush Mode" size="4" start="0" type="CS Flush Mode"/>
<field name="LSC Flush Mode" size="4" start="4" type="CS Flush Mode"/>
<field name="Other Flush Mode" size="4" start="8" type="CS Other Flush Mode"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Latest Flush ID" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FLUSH_CACHE2"/>
</struct>
<struct name="CS HEAP_SET" size="2">
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_SET"/>
</struct>
<struct name="CS HEAP_OPERATION" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Operation" size="3" start="32" type="CS Heap Operation"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_OPERATION"/>
</struct>
<struct name="CS JUMP" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="JUMP"/>
</struct>
<struct name="CS LOAD_MULTIPLE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Mask" size="16" start="16" type="hex"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Base Register" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOAD_MULTIPLE"/>
</struct>
<struct name="CS MOVE32" size="2">
<field name="Immediate" size="32" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE32"/>
<struct name="CS NOP" size="2">
<field name="Ignored" size="56" start="0" type="hex"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NOP"/>
</struct>
<struct name="CS MOVE48" size="2">
@ -795,39 +710,17 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE48"/>
</struct>
<struct name="CS NOP" size="2">
<field name="Ignored" size="56" start="0" type="hex"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NOP"/>
</struct>
<struct name="CS PROGRESS_STORE" size="2">
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_STORE"/>
</struct>
<struct name="CS PROGRESS_LOAD" size="2">
<struct name="CS MOVE32" size="2">
<field name="Immediate" size="32" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_LOAD"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE32"/>
</struct>
<struct name="CS PROGRESS_WAIT" size="2">
<field name="Queue" size="5" start="0" type="uint"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_WAIT"/>
</struct>
<struct name="CS PROT_REGION" size="2">
<field name="Size" size="16" start="0" type="uint" modifier="shr(3)"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROT_REGION"/>
</struct>
<struct name="CS REQ_RESOURCE" size="2">
<field name="Compute" size="1" start="0" type="bool"/>
<field name="Fragment" size="1" start="1" type="bool"/>
<field name="Tiler" size="1" start="2" type="bool"/>
<field name="IDVS" size="1" start="3" type="bool"/>
<field name="RT" size="1" start="4" type="bool"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="REQ_RESOURCE"/>
<struct name="CS WAIT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Wait Mode" size="1" start="33" type="CS Wait Mode" default="Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="WAIT"/>
</struct>
<struct name="CS RUN_COMPUTE" size="2">
@ -843,18 +736,6 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE"/>
</struct>
<struct name="CS RUN_COMPUTE_INDIRECT" size="2">
<field name="Workgroups Per Task" size="16" start="0" type="uint"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE_INDIRECT"/>
</struct>
<struct name="CS RUN_FRAGMENT" size="2">
<field name="Enable TEM" size="1" start="0" type="bool"/>
<field name="Tile Order" size="4" start="4" type="Tile Render Order"/>
@ -870,17 +751,68 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FULLSCREEN"/>
</struct>
<struct name="CS SET_EXCEPTION_HANDLER" size="2">
<field name="Exception type" size="8" start="0" type="CS Exception Type" default="Tiler OOM"/>
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_EXCEPTION_HANDLER"/>
<struct name="CS FINISH_TILING" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_TILING"/>
</struct>
<struct name="CS SET_SB_ENTRY" size="2">
<field name="Endpoint entry" size="4" start="0" type="uint"/>
<field name="Other Entry" size="4" start="4" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_SB_ENTRY"/>
<struct name="CS FINISH_FRAGMENT" size="2">
<field name="Increment Fragment Completed" size="1" start="0" type="bool"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Last Heap Chunk" size="8" start="32" type="uint"/>
<field name="First Heap Chunk" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="hex"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_FRAGMENT"/>
</struct>
<struct name="CS RUN_IDVS2" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Malloc Enable" size="1" start="33" type="CS Memory Allocation Enable" default="No Malloc"/>
<field name="Draw ID Register Enable" size="1" start="34" type="CS Draw ID Register Enable" default="No Drawid"/>
<field name="Vertex Shading Mode" size="2" start="35" type="IDVS Shading Mode" default="Early"/>
<field name="Draw ID" size="8" start="40" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_IDVS2"/>
</struct>
<struct name="CS ADD_IMM32" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ADD_IMMEDIATE32"/>
</struct>
<struct name="CS ADD_IMM64" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ADD_IMMEDIATE64"/>
</struct>
<struct name="CS UMIN32" size="2">
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="COMPARE_SELECT32"/>
</struct>
<struct name="CS LOGIC_OP32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS LOAD_MULTIPLE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Mask" size="16" start="16" type="hex"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Base Register" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOAD_MULTIPLE"/>
</struct>
<struct name="CS STORE_MULTIPLE" size="2">
@ -891,14 +823,95 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_MULTIPLE"/>
</struct>
<struct name="CS STORE_STATE" size="2">
<struct name="CS BRANCH" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="State" size="8" start="32" type="CS State"/>
<field name="Condition" size="4" start="28" type="CS Condition"/>
<field name="Value" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="BRANCH"/>
</struct>
<struct name="CS SET_SB_ENTRY" size="2">
<field name="Endpoint entry" size="4" start="0" type="uint"/>
<field name="Other Entry" size="4" start="4" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_SB_ENTRY"/>
</struct>
<struct name="CS PROGRESS_WAIT" size="2">
<field name="Queue" size="5" start="0" type="uint"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_WAIT"/>
</struct>
<struct name="CS SET_EXCEPTION_HANDLER" size="2">
<field name="Exception type" size="8" start="0" type="CS Exception Type" default="Tiler OOM"/>
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_EXCEPTION_HANDLER"/>
</struct>
<struct name="CS NEXT_SB_ENTRY" size="2">
<field name="SB Type" size="4" start="32" type="CS Scoreboard Type" default="No Change"/>
<field name="Format" size="1" start="36" type="CS Next SB Entry Format" default="Index"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NEXT_SB_ENTRY"/>
</struct>
<struct name="CS SET_STATE" size="2">
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE"/>
</struct>
<struct name="CS SET_STATE_IMM32" size="2">
<field name="Value" size="32" start="0" type="uint"/>
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE_IMM32"/>
</struct>
<struct name="CS SHARED_SB_INC" size="2">
<field name="SB Mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Shared SB Increment Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_INC"/>
</struct>
<struct name="CS SHARED_SB_DEC" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_DEC"/>
</struct>
<struct name="CS CALL" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="CALL"/>
</struct>
<struct name="CS JUMP" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="JUMP"/>
</struct>
<struct name="CS REQ_RESOURCE" size="2">
<field name="Compute" size="1" start="0" type="bool"/>
<field name="Fragment" size="1" start="1" type="bool"/>
<field name="Tiler" size="1" start="2" type="bool"/>
<field name="IDVS" size="1" start="3" type="bool"/>
<field name="RT" size="1" start="4" type="bool"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="REQ_RESOURCE"/>
</struct>
<struct name="CS FLUSH_CACHE2" size="2">
<field name="L2 Flush Mode" size="4" start="0" type="CS Flush Mode"/>
<field name="LSC Flush Mode" size="4" start="4" type="CS Flush Mode"/>
<field name="Other Flush Mode" size="4" start="8" type="CS Other Flush Mode"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Latest Flush ID" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_STATE"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FLUSH_CACHE2"/>
</struct>
<struct name="CS SYNC_ADD32" size="2">
@ -931,6 +944,69 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SYNC_WAIT32"/>
</struct>
<struct name="CS STORE_STATE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="State" size="8" start="32" type="CS State"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_STATE"/>
</struct>
<struct name="CS PROT_REGION" size="2">
<field name="Size" size="16" start="0" type="uint" modifier="shr(3)"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROT_REGION"/>
</struct>
<struct name="CS PROGRESS_STORE" size="2">
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_STORE"/>
</struct>
<struct name="CS PROGRESS_LOAD" size="2">
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_LOAD"/>
</struct>
<struct name="CS RUN_COMPUTE_INDIRECT" size="2">
<field name="Workgroups Per Task" size="16" start="0" type="uint"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE_INDIRECT"/>
</struct>
<struct name="CS ERROR_BARRIER" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ERROR_BARRIER"/>
</struct>
<struct name="CS HEAP_SET" size="2">
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_SET"/>
</struct>
<struct name="CS HEAP_OPERATION" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Operation" size="3" start="32" type="CS Heap Operation"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_OPERATION"/>
</struct>
<struct name="CS TRACE_POINT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Base Register" size="8" start="32" type="uint"/>
<field name="Register count" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="TRACE_POINT"/>
</struct>
<struct name="CS SYNC_ADD64" size="2">
<field name="Error Propagate" size="1" start="0" type="bool"/>
<field name="Scope" size="2" start="1" type="CS Sync Scope" default="System"/>
@ -961,38 +1037,6 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SYNC_WAIT64"/>
</struct>
<struct name="CS TRACE_POINT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Base Register" size="8" start="32" type="uint"/>
<field name="Register count" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="TRACE_POINT"/>
</struct>
<struct name="CS UMIN32" size="2">
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="COMPARE_SELECT32"/>
</struct>
<struct name="CS WAIT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Wait Mode" size="1" start="33" type="CS Wait Mode" default="Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="WAIT"/>
</struct>
<struct name="CS LOGIC_OP32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS MOVE_REG32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op" default="MOV_A"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
@ -1054,50 +1098,6 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS NEXT_SB_ENTRY" size="2">
<field name="SB Type" size="4" start="32" type="CS Scoreboard Type" default="No Change"/>
<field name="Format" size="1" start="36" type="CS Next SB Entry Format" default="Index"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NEXT_SB_ENTRY"/>
</struct>
<struct name="CS SET_STATE" size="2">
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE"/>
</struct>
<struct name="CS SET_STATE_IMM32" size="2">
<field name="Value" size="32" start="0" type="uint"/>
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE_IMM32"/>
</struct>
<struct name="CS SHARED_SB_DEC" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_DEC"/>
</struct>
<struct name="CS SHARED_SB_INC" size="2">
<field name="SB Mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Shared SB Increment Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_INC"/>
</struct>
<struct name="CS RUN_IDVS2" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Malloc Enable" size="1" start="33" type="CS Memory Allocation Enable" default="No Malloc"/>
<field name="Draw ID Register Enable" size="1" start="34" type="CS Draw ID Register Enable" default="No Drawid"/>
<field name="Vertex Shading Mode" size="2" start="35" type="IDVS Shading Mode" default="Early"/>
<field name="Draw ID" size="8" start="40" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_IDVS2"/>
</struct>
<enum name="COMPUTE SR">
<value name="SRT_0" value="0"/>
<value name="SRT_1" value="2"/>

View file

@ -742,39 +742,82 @@
<field name="Opcode" size="8" start="56" type="CS Opcode"/>
</struct>
<struct name="CS ARITH_IMM32 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM32"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM32 Sub Opcode"/>
<struct name="CS NOP" size="2">
<field name="Ignored" size="56" start="0" type="hex"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NOP"/>
</struct>
<struct name="CS ARITH_REG32 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<struct name="CS MOVE48" size="2">
<field name="Immediate" size="48" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE48"/>
</struct>
<struct name="CS ARITH_IMM64 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<struct name="CS MOVE32" size="2">
<field name="Immediate" size="32" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM64"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM64 Sub Opcode"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE32"/>
</struct>
<struct name="CS ARITH_REG64 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG64 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG64"/>
<struct name="CS WAIT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Wait Mode" size="1" start="33" type="CS Wait Mode" default="Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="WAIT"/>
</struct>
<struct name="CS RUN_COMPUTE" size="2">
<field name="Task Increment" size="14" start="0" type="uint"/>
<field name="Task Axis" size="2" start="14" type="Task Axis"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE"/>
</struct>
<struct name="CS RUN_FRAGMENT" size="2">
<field name="Enable TEM" size="1" start="0" type="bool"/>
<field name="Tile Order" size="4" start="4" type="Tile Render Order"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FRAGMENT"/>
</struct>
<struct name="CS RUN_FULLSCREEN" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="DCD" size="8" start="40" type="uint"/>
<field name="Tiler Flags2 Enable" size="1" start="55" type="bool" default="1"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FULLSCREEN"/>
</struct>
<struct name="CS FINISH_TILING" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_TILING"/>
</struct>
<struct name="CS FINISH_FRAGMENT" size="2">
<field name="Increment Fragment Completed" size="1" start="0" type="bool"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Last Heap Chunk" size="8" start="32" type="uint"/>
<field name="First Heap Chunk" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="hex"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_FRAGMENT"/>
</struct>
<struct name="CS RUN_IDVS2" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Malloc Enable" size="1" start="33" type="CS Memory Allocation Enable" default="No Malloc"/>
<field name="Draw ID Register Enable" size="1" start="34" type="CS Draw ID Register Enable" default="No Drawid"/>
<field name="Vertex Shading Mode" size="2" start="35" type="IDVS Shading Mode" default="Early"/>
<field name="Draw ID" size="8" start="40" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_IDVS2"/>
</struct>
<struct name="CS ADD_IMM32" size="2">
@ -793,66 +836,21 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM64"/>
</struct>
<struct name="CS BRANCH" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Condition" size="4" start="28" type="CS Condition"/>
<field name="Value" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="BRANCH"/>
<struct name="CS UMIN32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="UMIN32"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
</struct>
<struct name="CS CALL" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="CALL"/>
</struct>
<struct name="CS ERROR_BARRIER" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ERROR_BARRIER"/>
</struct>
<struct name="CS FINISH_FRAGMENT" size="2">
<field name="Increment Fragment Completed" size="1" start="0" type="bool"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Last Heap Chunk" size="8" start="32" type="uint"/>
<field name="First Heap Chunk" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="hex"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_FRAGMENT"/>
</struct>
<struct name="CS FINISH_TILING" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_TILING"/>
</struct>
<struct name="CS FLUSH_CACHE2" size="2">
<field name="L2 Flush Mode" size="4" start="0" type="CS Flush Mode"/>
<field name="LSC Flush Mode" size="4" start="4" type="CS Flush Mode"/>
<field name="Other Flush Mode" size="4" start="8" type="CS Other Flush Mode"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Latest Flush ID" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FLUSH_CACHE2"/>
</struct>
<struct name="CS HEAP_SET" size="2">
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_SET"/>
</struct>
<struct name="CS HEAP_OPERATION" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Operation" size="3" start="32" type="CS Heap Operation"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_OPERATION"/>
</struct>
<struct name="CS JUMP" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="JUMP"/>
<struct name="CS LOGIC_OP32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS LOAD_MULTIPLE" size="2">
@ -863,31 +861,25 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOAD_MULTIPLE"/>
</struct>
<struct name="CS MOVE32" size="2">
<field name="Immediate" size="32" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE32"/>
<struct name="CS STORE_MULTIPLE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Mask" size="16" start="16" type="hex"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Base Register" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_MULTIPLE"/>
</struct>
<struct name="CS MOVE48" size="2">
<field name="Immediate" size="48" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE48"/>
<struct name="CS BRANCH" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Condition" size="4" start="28" type="CS Condition"/>
<field name="Value" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="BRANCH"/>
</struct>
<struct name="CS NOP" size="2">
<field name="Ignored" size="56" start="0" type="hex"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NOP"/>
</struct>
<struct name="CS PROGRESS_STORE" size="2">
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_STORE"/>
</struct>
<struct name="CS PROGRESS_LOAD" size="2">
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_LOAD"/>
<struct name="CS SET_SB_ENTRY" size="2">
<field name="Endpoint entry" size="4" start="0" type="uint"/>
<field name="Other Entry" size="4" start="4" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_SB_ENTRY"/>
</struct>
<struct name="CS PROGRESS_WAIT" size="2">
@ -896,9 +888,56 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_WAIT"/>
</struct>
<struct name="CS PROT_REGION" size="2">
<field name="Size" size="16" start="0" type="uint" modifier="shr(3)"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROT_REGION"/>
<struct name="CS SET_EXCEPTION_HANDLER" size="2">
<field name="Exception type" size="8" start="0" type="CS Exception Type" default="Tiler OOM"/>
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_EXCEPTION_HANDLER"/>
</struct>
<struct name="CS NEXT_SB_ENTRY" size="2">
<field name="SB Type" size="4" start="32" type="CS Scoreboard Type" default="No Change"/>
<field name="Format" size="1" start="36" type="CS Next SB Entry Format" default="Index"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NEXT_SB_ENTRY"/>
</struct>
<struct name="CS SET_STATE" size="2">
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE"/>
</struct>
<struct name="CS SET_STATE_IMM32" size="2">
<field name="Value" size="32" start="0" type="uint"/>
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE_IMM32"/>
</struct>
<struct name="CS SHARED_SB_INC" size="2">
<field name="SB Mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Shared SB Increment Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_INC"/>
</struct>
<struct name="CS SHARED_SB_DEC" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_DEC"/>
</struct>
<struct name="CS CALL" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="CALL"/>
</struct>
<struct name="CS JUMP" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="JUMP"/>
</struct>
<struct name="CS REQ_RESOURCE" size="2">
@ -910,75 +949,15 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="REQ_RESOURCE"/>
</struct>
<struct name="CS RUN_COMPUTE" size="2">
<field name="Task Increment" size="14" start="0" type="uint"/>
<field name="Task Axis" size="2" start="14" type="Task Axis"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE"/>
</struct>
<struct name="CS RUN_COMPUTE_INDIRECT" size="2">
<field name="Workgroups Per Task" size="16" start="0" type="uint"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE_INDIRECT"/>
</struct>
<struct name="CS RUN_FRAGMENT" size="2">
<field name="Enable TEM" size="1" start="0" type="bool"/>
<field name="Tile Order" size="4" start="4" type="Tile Render Order"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FRAGMENT"/>
</struct>
<struct name="CS RUN_FULLSCREEN" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="DCD" size="8" start="40" type="uint"/>
<field name="Tiler Flags2 Enable" size="1" start="55" type="bool" default="1"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FULLSCREEN"/>
</struct>
<struct name="CS SET_EXCEPTION_HANDLER" size="2">
<field name="Exception type" size="8" start="0" type="CS Exception Type" default="Tiler OOM"/>
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_EXCEPTION_HANDLER"/>
</struct>
<struct name="CS SET_SB_ENTRY" size="2">
<field name="Endpoint entry" size="4" start="0" type="uint"/>
<field name="Other Entry" size="4" start="4" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_SB_ENTRY"/>
</struct>
<struct name="CS STORE_MULTIPLE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Mask" size="16" start="16" type="hex"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Base Register" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_MULTIPLE"/>
</struct>
<struct name="CS STORE_STATE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<struct name="CS FLUSH_CACHE2" size="2">
<field name="L2 Flush Mode" size="4" start="0" type="CS Flush Mode"/>
<field name="LSC Flush Mode" size="4" start="4" type="CS Flush Mode"/>
<field name="Other Flush Mode" size="4" start="8" type="CS Other Flush Mode"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="State" size="8" start="32" type="CS State"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Latest Flush ID" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_STATE"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FLUSH_CACHE2"/>
</struct>
<struct name="CS SYNC_ADD32" size="2">
@ -1011,6 +990,69 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SYNC_WAIT32"/>
</struct>
<struct name="CS STORE_STATE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="State" size="8" start="32" type="CS State"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_STATE"/>
</struct>
<struct name="CS PROT_REGION" size="2">
<field name="Size" size="16" start="0" type="uint" modifier="shr(3)"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROT_REGION"/>
</struct>
<struct name="CS PROGRESS_STORE" size="2">
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_STORE"/>
</struct>
<struct name="CS PROGRESS_LOAD" size="2">
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROGRESS_LOAD"/>
</struct>
<struct name="CS RUN_COMPUTE_INDIRECT" size="2">
<field name="Workgroups Per Task" size="16" start="0" type="uint"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE_INDIRECT"/>
</struct>
<struct name="CS ERROR_BARRIER" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ERROR_BARRIER"/>
</struct>
<struct name="CS HEAP_SET" size="2">
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_SET"/>
</struct>
<struct name="CS HEAP_OPERATION" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Operation" size="3" start="32" type="CS Heap Operation"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_OPERATION"/>
</struct>
<struct name="CS TRACE_POINT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Base Register" size="8" start="32" type="uint"/>
<field name="Register count" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="TRACE_POINT"/>
</struct>
<struct name="CS SYNC_ADD64" size="2">
<field name="Error Propagate" size="1" start="0" type="bool"/>
<field name="Scope" size="2" start="1" type="CS Sync Scope" default="System"/>
@ -1041,37 +1083,54 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SYNC_WAIT64"/>
</struct>
<struct name="CS TRACE_POINT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Base Register" size="8" start="32" type="uint"/>
<field name="Register count" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="TRACE_POINT"/>
</struct>
<struct name="CS UMIN32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="UMIN32"/>
<struct name="CS ADD32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="ADD32"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
</struct>
<struct name="CS WAIT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Wait Mode" size="1" start="33" type="CS Wait Mode" default="Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="WAIT"/>
</struct>
<struct name="CS LOGIC_OP32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
<struct name="CS ADD64" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG64 Sub Opcode" default="ADD64"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG64"/>
</struct>
<struct name="CS ARITH_IMM32 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM32"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM32 Sub Opcode"/>
</struct>
<struct name="CS ARITH_REG32 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
</struct>
<struct name="CS ARITH_IMM64 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM64"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM64 Sub Opcode"/>
</struct>
<struct name="CS ARITH_REG64 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG64 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG64"/>
</struct>
<struct name="CS MOVE_REG32" size="2">
@ -1135,66 +1194,6 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS NEXT_SB_ENTRY" size="2">
<field name="SB Type" size="4" start="32" type="CS Scoreboard Type" default="No Change"/>
<field name="Format" size="1" start="36" type="CS Next SB Entry Format" default="Index"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NEXT_SB_ENTRY"/>
</struct>
<struct name="CS SET_STATE" size="2">
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE"/>
</struct>
<struct name="CS SET_STATE_IMM32" size="2">
<field name="Value" size="32" start="0" type="uint"/>
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE_IMM32"/>
</struct>
<struct name="CS SHARED_SB_DEC" size="2">
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_DEC"/>
</struct>
<struct name="CS SHARED_SB_INC" size="2">
<field name="SB Mask" size="16" start="16" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Shared SB Increment Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_INC"/>
</struct>
<struct name="CS RUN_IDVS2" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Progress Increment" size="1" start="32" type="CS Progress Increment" default="No Increment"/>
<field name="Malloc Enable" size="1" start="33" type="CS Memory Allocation Enable" default="No Malloc"/>
<field name="Draw ID Register Enable" size="1" start="34" type="CS Draw ID Register Enable" default="No Drawid"/>
<field name="Vertex Shading Mode" size="2" start="35" type="IDVS Shading Mode" default="Early"/>
<field name="Draw ID" size="8" start="40" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_IDVS2"/>
</struct>
<struct name="CS ADD32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="ADD32"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
</struct>
<struct name="CS ADD64" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG64 Sub Opcode" default="ADD64"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG64"/>
</struct>
<struct name="CS BFEXT_U32" size="2">
<field name="Position" size="8" start="0" type="uint"/>
<field name="Width" size="8" start="8" type="uint"/>

View file

@ -738,39 +738,79 @@
<field name="Opcode" size="8" start="56" type="CS Opcode"/>
</struct>
<struct name="CS ARITH_IMM32 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM32"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM32 Sub Opcode"/>
<struct name="CS NOP" size="2">
<field name="Ignored" size="56" start="0" type="hex"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NOP"/>
</struct>
<struct name="CS ARITH_REG32 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<struct name="CS MOVE48" size="2">
<field name="Immediate" size="48" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE48"/>
</struct>
<struct name="CS ARITH_IMM64 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<struct name="CS MOVE32" size="2">
<field name="Immediate" size="32" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM64"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM64 Sub Opcode"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE32"/>
</struct>
<struct name="CS ARITH_REG64 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG64 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG64"/>
<struct name="CS WAIT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Wait Mode" size="1" start="33" type="CS Wait Mode" default="Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="WAIT"/>
</struct>
<struct name="CS RUN_COMPUTE" size="2">
<field name="Task Increment" size="14" start="0" type="uint"/>
<field name="Task Axis" size="2" start="14" type="Task Axis"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE"/>
</struct>
<struct name="CS RUN_FULLSCREEN" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="DCD" size="8" start="40" type="uint"/>
<field name="Tiler Flags2 Enable" size="1" start="55" type="bool" default="1"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FULLSCREEN"/>
</struct>
<struct name="CS FINISH_TILING" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_TILING"/>
</struct>
<struct name="CS FINISH_FRAGMENT" size="2">
<field name="Increment Fragment Completed" size="1" start="0" type="bool"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Last Heap Chunk" size="8" start="32" type="uint"/>
<field name="First Heap Chunk" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="hex"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_FRAGMENT"/>
</struct>
<struct name="CS RUN_IDVS2" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Malloc Enable" size="1" start="33" type="CS Memory Allocation Enable" default="No Malloc"/>
<field name="Draw ID Register Enable" size="1" start="34" type="CS Draw ID Register Enable" default="No Drawid"/>
<field name="Vertex Shading Mode" size="2" start="35" type="IDVS Shading Mode" default="Early"/>
<field name="Draw ID" size="8" start="40" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_IDVS2"/>
</struct>
<struct name="CS RUN_FRAGMENT2" size="2">
<field name="Enable TEM" size="1" start="0" type="bool"/>
<field name="Tile Order" size="4" start="4" type="Tile Render Order"/>
<field name="Ep Offset" size="8" start="16" type="uint" default="28"/>
<field name="Staging Count" size="8" start="24" type="uint" default="56"/>
<field name="Base Register" size="8" start="48" type="uint" default="0"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FRAGMENT2"/>
</struct>
<struct name="CS ADD_IMM32" size="2">
@ -789,70 +829,21 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM64"/>
</struct>
<struct name="CS BRANCH" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Condition" size="4" start="28" type="CS Condition"/>
<field name="Value" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="BRANCH"/>
<struct name="CS UMIN32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="UMIN32"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
</struct>
<struct name="CS CALL" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="CALL"/>
</struct>
<struct name="CS ENOP" size="2">
<field name="Driver Meta Data" size="56" start="0" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ENOP"/>
</struct>
<struct name="CS ERROR_BARRIER" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ERROR_BARRIER"/>
</struct>
<struct name="CS FINISH_FRAGMENT" size="2">
<field name="Increment Fragment Completed" size="1" start="0" type="bool"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Last Heap Chunk" size="8" start="32" type="uint"/>
<field name="First Heap Chunk" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="hex"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_FRAGMENT"/>
</struct>
<struct name="CS FINISH_TILING" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FINISH_TILING"/>
</struct>
<struct name="CS FLUSH_CACHE2" size="2">
<field name="L2 Flush Mode" size="4" start="0" type="CS Flush Mode"/>
<field name="LSC Flush Mode" size="4" start="4" type="CS Flush Mode"/>
<field name="Other Flush Mode" size="4" start="8" type="CS Other Flush Mode"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="Latest Flush ID" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FLUSH_CACHE2"/>
</struct>
<struct name="CS HEAP_SET" size="2">
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_SET"/>
</struct>
<struct name="CS HEAP_OPERATION" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Operation" size="3" start="32" type="CS Heap Operation"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_OPERATION"/>
</struct>
<struct name="CS JUMP" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="JUMP"/>
<struct name="CS LOGIC_OP32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS LOAD_MULTIPLE" size="2">
@ -863,26 +854,75 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOAD_MULTIPLE"/>
</struct>
<struct name="CS MOVE32" size="2">
<field name="Immediate" size="32" start="0" type="uint"/>
<struct name="CS STORE_MULTIPLE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Mask" size="16" start="16" type="hex"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Base Register" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_MULTIPLE"/>
</struct>
<struct name="CS BRANCH" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Condition" size="4" start="28" type="CS Condition"/>
<field name="Value" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="BRANCH"/>
</struct>
<struct name="CS SET_SB_ENTRY" size="2">
<field name="Endpoint entry" size="4" start="0" type="uint"/>
<field name="Other Entry" size="4" start="4" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_SB_ENTRY"/>
</struct>
<struct name="CS SET_EXCEPTION_HANDLER" size="2">
<field name="Exception type" size="8" start="0" type="CS Exception Type" default="Tiler OOM"/>
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_EXCEPTION_HANDLER"/>
</struct>
<struct name="CS NEXT_SB_ENTRY" size="2">
<field name="SB Type" size="4" start="32" type="CS Scoreboard Type" default="No Change"/>
<field name="Format" size="1" start="36" type="CS Next SB Entry Format" default="Index"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE32"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NEXT_SB_ENTRY"/>
</struct>
<struct name="CS MOVE48" size="2">
<field name="Immediate" size="48" start="0" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="MOVE48"/>
<struct name="CS SET_STATE" size="2">
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE"/>
</struct>
<struct name="CS NOP" size="2">
<field name="Ignored" size="56" start="0" type="hex"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NOP"/>
<struct name="CS SET_STATE_IMM32" size="2">
<field name="Value" size="32" start="0" type="uint"/>
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE_IMM32"/>
</struct>
<struct name="CS PROT_REGION" size="2">
<field name="Size" size="16" start="0" type="uint" modifier="shr(3)"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROT_REGION"/>
<struct name="CS SHARED_SB_INC" size="2">
<field name="SB Mask" size="16" start="16" type="hex"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Shared SB Increment Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_INC"/>
</struct>
<struct name="CS SHARED_SB_DEC" size="2">
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_DEC"/>
</struct>
<struct name="CS CALL" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="CALL"/>
</struct>
<struct name="CS JUMP" size="2">
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="JUMP"/>
</struct>
<struct name="CS REQ_RESOURCE" size="2">
@ -894,74 +934,15 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="REQ_RESOURCE"/>
</struct>
<struct name="CS RUN_COMPUTE" size="2">
<field name="Task Increment" size="14" start="0" type="uint"/>
<field name="Task Axis" size="2" start="14" type="Task Axis"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE"/>
</struct>
<struct name="CS RUN_COMPUTE_INDIRECT" size="2">
<field name="Workgroups Per Task" size="16" start="0" type="uint"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE_INDIRECT"/>
</struct>
<struct name="CS RUN_FRAGMENT2" size="2">
<field name="Enable TEM" size="1" start="0" type="bool"/>
<field name="Tile Order" size="4" start="4" type="Tile Render Order"/>
<field name="Ep Offset" size="8" start="16" type="uint" default="28"/>
<field name="Staging Count" size="8" start="24" type="uint" default="56"/>
<field name="Base Register" size="8" start="48" type="uint" default="0"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FRAGMENT2"/>
</struct>
<struct name="CS RUN_FULLSCREEN" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="DCD" size="8" start="40" type="uint"/>
<field name="Tiler Flags2 Enable" size="1" start="55" type="bool" default="1"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_FULLSCREEN"/>
</struct>
<struct name="CS SET_EXCEPTION_HANDLER" size="2">
<field name="Exception type" size="8" start="0" type="CS Exception Type" default="Tiler OOM"/>
<field name="Length" size="8" start="32" type="uint"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_EXCEPTION_HANDLER"/>
</struct>
<struct name="CS SET_SB_ENTRY" size="2">
<field name="Endpoint entry" size="4" start="0" type="uint"/>
<field name="Other Entry" size="4" start="4" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_SB_ENTRY"/>
</struct>
<struct name="CS STORE_MULTIPLE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Mask" size="16" start="16" type="hex"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Base Register" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_MULTIPLE"/>
</struct>
<struct name="CS STORE_STATE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<struct name="CS FLUSH_CACHE2" size="2">
<field name="L2 Flush Mode" size="4" start="0" type="CS Flush Mode"/>
<field name="LSC Flush Mode" size="4" start="4" type="CS Flush Mode"/>
<field name="Other Flush Mode" size="4" start="8" type="CS Other Flush Mode"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="State" size="8" start="32" type="CS State"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Latest Flush ID" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_STATE"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="FLUSH_CACHE2"/>
</struct>
<struct name="CS SYNC_ADD32" size="2">
@ -994,6 +975,58 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SYNC_WAIT32"/>
</struct>
<struct name="CS STORE_STATE" size="2">
<field name="Offset" size="16" start="0" type="int"/>
<field name="Wait Mask" size="16" start="16" type="hex"/>
<field name="State" size="8" start="32" type="CS State"/>
<field name="Address" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="STORE_STATE"/>
</struct>
<struct name="CS PROT_REGION" size="2">
<field name="Size" size="16" start="0" type="uint" modifier="shr(3)"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="PROT_REGION"/>
</struct>
<struct name="CS RUN_COMPUTE_INDIRECT" size="2">
<field name="Workgroups Per Task" size="16" start="0" type="uint"/>
<field name="Ep Limit" size="8" start="16" type="uint"/>
<field name="SRT Select" size="2" start="40" type="uint"/>
<field name="SPD Select" size="2" start="42" type="uint"/>
<field name="TSD Select" size="2" start="44" type="uint"/>
<field name="FAU Select" size="2" start="46" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_COMPUTE_INDIRECT"/>
</struct>
<struct name="CS ERROR_BARRIER" size="2">
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ERROR_BARRIER"/>
</struct>
<struct name="CS HEAP_SET" size="2">
<field name="Address" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_SET"/>
</struct>
<struct name="CS HEAP_OPERATION" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Operation" size="3" start="32" type="CS Heap Operation"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="HEAP_OPERATION"/>
</struct>
<struct name="CS TRACE_POINT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Base Register" size="8" start="32" type="uint"/>
<field name="Register count" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="TRACE_POINT"/>
</struct>
<struct name="CS SYNC_ADD64" size="2">
<field name="Error Propagate" size="1" start="0" type="bool"/>
<field name="Scope" size="2" start="1" type="CS Sync Scope" default="System"/>
@ -1024,36 +1057,43 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SYNC_WAIT64"/>
</struct>
<struct name="CS TRACE_POINT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Base Register" size="8" start="32" type="uint"/>
<field name="Register count" size="8" start="40" type="uint"/>
<field name="Signal slot" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="TRACE_POINT"/>
<struct name="CS ARITH_REG64 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG64 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG64"/>
</struct>
<struct name="CS UMIN32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="UMIN32"/>
<struct name="CS ENOP" size="2">
<field name="Driver Meta Data" size="56" start="0" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ENOP"/>
</struct>
<struct name="CS ARITH_IMM32 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM32"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM32 Sub Opcode"/>
</struct>
<struct name="CS ARITH_REG32 Base" size="2">
<field name="Immediate" size="24" start="0" type="int"/>
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_REG32"/>
</struct>
<struct name="CS WAIT" size="2">
<field name="Wait mask" size="16" start="16" type="hex"/>
<field name="Wait Mode" size="1" start="33" type="CS Wait Mode" default="Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="WAIT"/>
</struct>
<struct name="CS LOGIC_OP32" size="2">
<field name="Mode" size="4" start="0" type="CS Logic Op"/>
<field name="Index" size="1" start="4" type="CS Logic Op Index" default="DIRECT"/>
<field name="Source 1" size="8" start="32" type="uint"/>
<field name="Source 0" size="8" start="40" type="uint"/>
<struct name="CS ARITH_IMM64 Base" size="2">
<field name="Immediate" size="32" start="0" type="int"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="ARITH_IMM64"/>
<field name="Sub Opcode" size="8" start="32" type="CS ARITH_IMM64 Sub Opcode"/>
</struct>
<struct name="CS MOVE_REG32" size="2">
@ -1117,47 +1157,6 @@
<field name="Opcode" size="8" start="56" type="CS Opcode" default="LOGIC_OP32"/>
</struct>
<struct name="CS NEXT_SB_ENTRY" size="2">
<field name="SB Type" size="4" start="32" type="CS Scoreboard Type" default="No Change"/>
<field name="Format" size="1" start="36" type="CS Next SB Entry Format" default="Index"/>
<field name="Destination" size="8" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="NEXT_SB_ENTRY"/>
</struct>
<struct name="CS SET_STATE" size="2">
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Source" size="8" start="40" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE"/>
</struct>
<struct name="CS SET_STATE_IMM32" size="2">
<field name="Value" size="32" start="0" type="uint"/>
<field name="State" size="8" start="32" type="CS Set State Type"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SET_STATE_IMM32"/>
</struct>
<struct name="CS SHARED_SB_DEC" size="2">
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_DEC"/>
</struct>
<struct name="CS SHARED_SB_INC" size="2">
<field name="SB Mask" size="16" start="16" type="hex"/>
<field name="Shared Entry" size="4" start="48" type="uint"/>
<field name="Defer Mode" size="1" start="52" type="CS Shared SB Increment Defer Mode" default="Defer Immediate"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="SHARED_SB_INC"/>
</struct>
<struct name="CS RUN_IDVS2" size="2">
<field name="Flags Override" size="32" start="0" type="hex"/>
<field name="Malloc Enable" size="1" start="33" type="CS Memory Allocation Enable" default="No Malloc"/>
<field name="Draw ID Register Enable" size="1" start="34" type="CS Draw ID Register Enable" default="No Drawid"/>
<field name="Vertex Shading Mode" size="2" start="35" type="IDVS Shading Mode" default="Early"/>
<field name="Draw ID" size="8" start="40" type="uint"/>
<field name="Stage" size="4" start="48" type="IDVS Pipeline Stage" default="Internal"/>
<field name="Opcode" size="8" start="56" type="CS Opcode" default="RUN_IDVS2"/>
</struct>
<struct name="CS ADD32" size="2">
<field name="Sub Opcode" size="8" start="24" type="CS ARITH_REG32 Sub Opcode" default="ADD32"/>
<field name="Source 1" size="8" start="32" type="uint"/>