Commit 0b44644c authored by Kenneth Graunke's avatar Kenneth Graunke
Browse files

genxml: Consistently use a numeric "MOCS" field



When we first started using genxml, we decided to represent MOCS as an
actual structure, and pack values.  However, in many places, it was more
convenient to use a numeric value rather than treating it as a struct,
so we added secondary setters in a bunch of places as well.

We were not entirely consistent, either.  Some places only had one.
Gen6 had both kinds of setters for STATE_BASE_ADDRESS, but newer gens
only had the struct-based setters.  The names were sometimes "Constant
Buffer Object Control State" instead of "Memory", making it harder to
find.  Many had prefixes like "Vertex Buffer MOCS"...in a vertex buffer
packet...which is a bit redundant.

On modern hardware, MOCS is simply an index into a table, but we were
still carrying around the structure with an "Index to MOCS Table" field,
in addition to the direct numeric setters.  This is clunky - we really
just want a number on new hardware.

This patch eliminates the struct-based setters, and makes the numeric
setters be consistently called "MOCS".  We leave the struct definition
around on Gen7-8 for reference purposes, but it is unused.

v2: Drop bonus "Depth Buffer MOCS" fields on Gen7.5 and Gen9
Reviewed-by: Jordan Justen's avatarJordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kristian H. Kristensen's avatarKristian H. Kristensen <hoegsberg@google.com>
parent a2ec7888
...@@ -311,7 +311,7 @@ blorp_fill_vertex_buffer_state(struct blorp_batch *batch, ...@@ -311,7 +311,7 @@ blorp_fill_vertex_buffer_state(struct blorp_batch *batch,
vb[idx].BufferPitch = stride; vb[idx].BufferPitch = stride;
#if GEN_GEN >= 6 #if GEN_GEN >= 6
vb[idx].VertexBufferMOCS = addr.mocs; vb[idx].MOCS = addr.mocs;
#endif #endif
#if GEN_GEN >= 7 #if GEN_GEN >= 7
......
...@@ -219,14 +219,9 @@ ...@@ -219,14 +219,9 @@
<field name="Binding Table Index Offset" start="0" end="3" type="uint"/> <field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
</struct> </struct>
<struct name="MEMORY_OBJECT_CONTROL_STATE" length="1">
<field name="Index to MOCS Tables" start="1" end="6" type="uint"/>
</struct>
<struct name="VERTEX_BUFFER_STATE" length="4"> <struct name="VERTEX_BUFFER_STATE" length="4">
<field name="Vertex Buffer Index" start="26" end="31" type="uint"/> <field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
<field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="16" end="22" type="uint"/>
<field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/> <field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/> <field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/> <field name="Buffer Pitch" start="0" end="11" type="uint"/>
...@@ -495,7 +490,6 @@ ...@@ -495,7 +490,6 @@
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/> <field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/> <field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/> <field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
<field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="56" end="62" type="uint"/> <field name="MOCS" start="56" end="62" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/> <field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="Surface QPitch" start="32" end="46" type="uint"/> <field name="Surface QPitch" start="32" end="46" type="uint"/>
...@@ -993,7 +987,7 @@ ...@@ -993,7 +987,7 @@
<field name="DWord Length" start="0" end="7" type="uint" default="2"/> <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Binding Table Pool Base Address" start="44" end="95" type="address"/> <field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/> <field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
<field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint"> <field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
<value name="No Valid Data" value="0"/> <value name="No Valid Data" value="0"/>
</field> </field>
...@@ -1085,7 +1079,7 @@ ...@@ -1085,7 +1079,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1095,7 +1089,7 @@ ...@@ -1095,7 +1089,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1105,7 +1099,7 @@ ...@@ -1105,7 +1099,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1116,7 +1110,7 @@ ...@@ -1116,7 +1110,7 @@
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
<field name="Disable Gather at Set Shader Hint" start="15" end="15" type="uint"/> <field name="Disable Gather at Set Shader Hint" start="15" end="15" type="uint"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1126,7 +1120,7 @@ ...@@ -1126,7 +1120,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1157,8 +1151,7 @@ ...@@ -1157,8 +1151,7 @@
<field name="LOD" start="128" end="131" type="uint"/> <field name="LOD" start="128" end="131" type="uint"/>
<field name="Depth" start="181" end="191" type="uint"/> <field name="Depth" start="181" end="191" type="uint"/>
<field name="Minimum Array Element" start="170" end="180" type="uint"/> <field name="Minimum Array Element" start="170" end="180" type="uint"/>
<field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="160" end="166" type="uint"/>
<field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
<field name="Tiled Resource Mode" start="222" end="223" type="uint"> <field name="Tiled Resource Mode" start="222" end="223" type="uint">
<value name="NONE" value="0"/> <value name="NONE" value="0"/>
<value name="TILEYF" value="1"/> <value name="TILEYF" value="1"/>
...@@ -1368,7 +1361,7 @@ ...@@ -1368,7 +1361,7 @@
<field name="DWord Length" start="0" end="7" type="uint" default="2"/> <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Gather Pool Base Address" start="44" end="95" type="address"/> <field name="Gather Pool Base Address" start="44" end="95" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/> <field name="Gather Pool Enable" start="43" end="43" type="bool"/>
<field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/> <field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
</instruction> </instruction>
...@@ -1447,8 +1440,7 @@ ...@@ -1447,8 +1440,7 @@
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/> <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="57" end="63" type="uint"/>
<field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/> <field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/> <field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/> <field name="Surface QPitch" start="128" end="142" type="uint"/>
...@@ -1511,8 +1503,7 @@ ...@@ -1511,8 +1503,7 @@
<value name="WORD" value="1"/> <value name="WORD" value="1"/>
<value name="DWORD" value="2"/> <value name="DWORD" value="2"/>
</field> </field>
<field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="32" end="38" type="uint"/>
<field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
<field name="Buffer Starting Address" start="64" end="127" type="address"/> <field name="Buffer Starting Address" start="64" end="127" type="address"/>
<field name="Buffer Size" start="128" end="159" type="uint"/> <field name="Buffer Size" start="128" end="159" type="uint"/>
</instruction> </instruction>
...@@ -2068,8 +2059,7 @@ ...@@ -2068,8 +2059,7 @@
<field name="DWord Length" start="0" end="7" type="uint" default="6"/> <field name="DWord Length" start="0" end="7" type="uint" default="6"/>
<field name="SO Buffer Enable" start="63" end="63" type="bool"/> <field name="SO Buffer Enable" start="63" end="63" type="bool"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/> <field name="SO Buffer Index" start="61" end="62" type="uint"/>
<field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="54" end="60" type="uint"/>
<field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
<field name="Stream Offset Write Enable" start="53" end="53" type="bool"/> <field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
<field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/> <field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
<field name="Surface Base Address" start="66" end="111" type="address"/> <field name="Surface Base Address" start="66" end="111" type="address"/>
...@@ -2104,8 +2094,7 @@ ...@@ -2104,8 +2094,7 @@
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/> <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/> <field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
<field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/> <field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/> <field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/> <field name="Surface QPitch" start="128" end="142" type="uint"/>
...@@ -3318,20 +3307,20 @@ ...@@ -3318,20 +3307,20 @@
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="20"/> <field name="DWord Length" start="0" end="7" type="uint" default="20"/>
<field name="General State Base Address" start="44" end="95" type="address"/> <field name="General State Base Address" start="44" end="95" type="address"/>
<field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="General State MOCS" start="36" end="42" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/> <field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
<field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint"/>
<field name="Surface State Base Address" start="140" end="191" type="address"/> <field name="Surface State Base Address" start="140" end="191" type="address"/>
<field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Surface State MOCS" start="132" end="138" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/> <field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Dynamic State Base Address" start="204" end="255" type="address"/> <field name="Dynamic State Base Address" start="204" end="255" type="address"/>
<field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Dynamic State MOCS" start="196" end="202" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/> <field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
<field name="Indirect Object Base Address" start="268" end="319" type="address"/> <field name="Indirect Object Base Address" start="268" end="319" type="address"/>
<field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Indirect Object MOCS" start="260" end="266" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/> <field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
<field name="Instruction Base Address" start="332" end="383" type="address"/> <field name="Instruction Base Address" start="332" end="383" type="address"/>
<field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Instruction MOCS" start="324" end="330" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/> <field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
<field name="General State Buffer Size" start="396" end="415" type="uint"/> <field name="General State Buffer Size" start="396" end="415" type="uint"/>
<field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/> <field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
...@@ -3342,11 +3331,11 @@ ...@@ -3342,11 +3331,11 @@
<field name="Instruction Buffer Size" start="492" end="511" type="uint"/> <field name="Instruction Buffer Size" start="492" end="511" type="uint"/>
<field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/> <field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/>
<field name="Bindless Surface State Base Address" start="524" end="575" type="address"/> <field name="Bindless Surface State Base Address" start="524" end="575" type="address"/>
<field name="Bindless Surface State Memory Object Control State" start="516" end="522" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Bindless Surface State MOCS" start="516" end="522" type="uint"/>
<field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/> <field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/>
<field name="Bindless Surface State Size" start="588" end="607" type="uint"/> <field name="Bindless Surface State Size" start="588" end="607" type="uint"/>
<field name="Bindless Sampler State Base Address" start="620" end="671" type="address"/> <field name="Bindless Sampler State Base Address" start="620" end="671" type="address"/>
<field name="Bindless Sampler State Memory Object Control State" start="612" end="618" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Bindless Sampler State MOCS" start="612" end="618" type="uint"/>
<field name="Bindless Sampler State Base Address Modify Enable" start="608" end="608" type="bool"/> <field name="Bindless Sampler State Base Address Modify Enable" start="608" end="608" type="bool"/>
<field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/> <field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/>
</instruction> </instruction>
......
...@@ -220,14 +220,9 @@ ...@@ -220,14 +220,9 @@
<field name="Binding Table Index Offset" start="0" end="3" type="uint"/> <field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
</struct> </struct>
<struct name="MEMORY_OBJECT_CONTROL_STATE" length="1">
<field name="Index to MOCS Tables" start="1" end="6" type="uint"/>
</struct>
<struct name="VERTEX_BUFFER_STATE" length="4"> <struct name="VERTEX_BUFFER_STATE" length="4">
<field name="Vertex Buffer Index" start="26" end="31" type="uint"/> <field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
<field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="16" end="22" type="uint"/>
<field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/> <field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/> <field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/> <field name="Buffer Pitch" start="0" end="11" type="uint"/>
...@@ -496,7 +491,6 @@ ...@@ -496,7 +491,6 @@
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/> <field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/> <field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/> <field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
<field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="56" end="62" type="uint"/> <field name="MOCS" start="56" end="62" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/> <field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="Surface QPitch" start="32" end="46" type="uint"/> <field name="Surface QPitch" start="32" end="46" type="uint"/>
...@@ -1012,7 +1006,7 @@ ...@@ -1012,7 +1006,7 @@
<field name="DWord Length" start="0" end="7" type="uint" default="2"/> <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Binding Table Pool Base Address" start="44" end="95" type="address"/> <field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/> <field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
<field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint"> <field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
<value name="No Valid Data" value="0"/> <value name="No Valid Data" value="0"/>
</field> </field>
...@@ -1104,7 +1098,7 @@ ...@@ -1104,7 +1098,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1114,7 +1108,7 @@ ...@@ -1114,7 +1108,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1124,7 +1118,7 @@ ...@@ -1124,7 +1118,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1135,7 +1129,7 @@ ...@@ -1135,7 +1129,7 @@
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
<field name="Disable Gather at Set Shader Hint" start="15" end="15" type="uint"/> <field name="Disable Gather at Set Shader Hint" start="15" end="15" type="uint"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1145,7 +1139,7 @@ ...@@ -1145,7 +1139,7 @@
<field name="Command SubType" start="27" end="28" type="uint" default="3"/> <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
<field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/> <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/> <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction> </instruction>
...@@ -1176,8 +1170,7 @@ ...@@ -1176,8 +1170,7 @@
<field name="LOD" start="128" end="131" type="uint"/> <field name="LOD" start="128" end="131" type="uint"/>
<field name="Depth" start="181" end="191" type="uint"/> <field name="Depth" start="181" end="191" type="uint"/>
<field name="Minimum Array Element" start="170" end="180" type="uint"/> <field name="Minimum Array Element" start="170" end="180" type="uint"/>
<field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="160" end="166" type="uint"/>
<field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
<field name="Tiled Resource Mode" start="222" end="223" type="uint"> <field name="Tiled Resource Mode" start="222" end="223" type="uint">
<value name="NONE" value="0"/> <value name="NONE" value="0"/>
<value name="TILEYF" value="1"/> <value name="TILEYF" value="1"/>
...@@ -1386,7 +1379,7 @@ ...@@ -1386,7 +1379,7 @@
<field name="DWord Length" start="0" end="7" type="uint" default="2"/> <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Gather Pool Base Address" start="44" end="95" type="address"/> <field name="Gather Pool Base Address" start="44" end="95" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/> <field name="Gather Pool Enable" start="43" end="43" type="bool"/>
<field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/> <field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
</instruction> </instruction>
...@@ -1463,8 +1456,7 @@ ...@@ -1463,8 +1456,7 @@
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/> <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/> <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="57" end="63" type="uint"/>
<field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
<field name="Tiled Resource Mode" start="55" end="56" type="uint"> <field name="Tiled Resource Mode" start="55" end="56" type="uint">
<value name="NONE" value="0"/> <value name="NONE" value="0"/>
<value name="TILEYF" value="1"/> <value name="TILEYF" value="1"/>
...@@ -1531,8 +1523,7 @@ ...@@ -1531,8 +1523,7 @@
<value name="WORD" value="1"/> <value name="WORD" value="1"/>
<value name="DWORD" value="2"/> <value name="DWORD" value="2"/>
</field> </field>
<field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="32" end="38" type="uint"/>
<field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
<field name="Buffer Starting Address" start="64" end="127" type="address"/> <field name="Buffer Starting Address" start="64" end="127" type="address"/>
<field name="Buffer Size" start="128" end="159" type="uint"/> <field name="Buffer Size" start="128" end="159" type="uint"/>
</instruction> </instruction>
...@@ -2088,8 +2079,7 @@ ...@@ -2088,8 +2079,7 @@
<field name="DWord Length" start="0" end="7" type="uint" default="6"/> <field name="DWord Length" start="0" end="7" type="uint" default="6"/>
<field name="SO Buffer Enable" start="63" end="63" type="bool"/> <field name="SO Buffer Enable" start="63" end="63" type="bool"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/> <field name="SO Buffer Index" start="61" end="62" type="uint"/>
<field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="54" end="60" type="uint"/>
<field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
<field name="Stream Offset Write Enable" start="53" end="53" type="bool"/> <field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
<field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/> <field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
<field name="Surface Base Address" start="66" end="111" type="address"/> <field name="Surface Base Address" start="66" end="111" type="address"/>
...@@ -2124,8 +2114,7 @@ ...@@ -2124,8 +2114,7 @@
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/> <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/> <field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
<field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/> <field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/> <field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/> <field name="Surface QPitch" start="128" end="142" type="uint"/>
...@@ -3321,20 +3310,20 @@ ...@@ -3321,20 +3310,20 @@
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/> <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="20"/> <field name="DWord Length" start="0" end="7" type="uint" default="20"/>
<field name="General State Base Address" start="44" end="95" type="address"/> <field name="General State Base Address" start="44" end="95" type="address"/>
<field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="General State MOCS" start="36" end="42" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/> <field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
<field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint"/>
<field name="Surface State Base Address" start="140" end="191" type="address"/> <field name="Surface State Base Address" start="140" end="191" type="address"/>
<field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Surface State MOCS" start="132" end="138" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/> <field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Dynamic State Base Address" start="204" end="255" type="address"/> <field name="Dynamic State Base Address" start="204" end="255" type="address"/>
<field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Dynamic State MOCS" start="196" end="202" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/> <field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
<field name="Indirect Object Base Address" start="268" end="319" type="address"/> <field name="Indirect Object Base Address" start="268" end="319" type="address"/>
<field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Indirect Object MOCS" start="260" end="266" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/> <field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
<field name="Instruction Base Address" start="332" end="383" type="address"/> <field name="Instruction Base Address" start="332" end="383" type="address"/>
<field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Instruction MOCS" start="324" end="330" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/> <field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
<field name="General State Buffer Size" start="396" end="415" type="uint"/> <field name="General State Buffer Size" start="396" end="415" type="uint"/>
<field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/> <field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
...@@ -3345,11 +3334,11 @@ ...@@ -3345,11 +3334,11 @@
<field name="Instruction Buffer Size" start="492" end="511" type="uint"/> <field name="Instruction Buffer Size" start="492" end="511" type="uint"/>
<field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/> <field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/>
<field name="Bindless Surface State Base Address" start="524" end="575" type="address"/> <field name="Bindless Surface State Base Address" start="524" end="575" type="address"/>
<field name="Bindless Surface State Memory Object Control State" start="516" end="522" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Bindless Surface State MOCS" start="516" end="522" type="uint"/>
<field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/> <field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/>
<field name="Bindless Surface State Size" start="588" end="607" type="uint"/> <field name="Bindless Surface State Size" start="588" end="607" type="uint"/>
<field name="Bindless Sampler State Base Address" start="620" end="671" type="address"/> <field name="Bindless Sampler State Base Address" start="620" end="671" type="address"/>
<field name="Bindless Sampler State Memory Object Control State" start="612" end="618" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="Bindless Sampler State MOCS" start="612" end="618" type="uint"/>
<field name="Bindless Sampler State Base Address Modify Enable" start="608" end="608" type="bool"/> <field name="Bindless Sampler State Base Address Modify Enable" start="608" end="608" type="bool"/>
<field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/> <field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/>
</instruction> </instruction>
......
...@@ -126,8 +126,7 @@ ...@@ -126,8 +126,7 @@
<value name="VERTEXDATA" value="0"/> <value name="VERTEXDATA" value="0"/>
<value name="INSTANCEDATA" value="1"/> <value name="INSTANCEDATA" value="1"/>
</field> </field>
<field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/> <field name="MOCS" start="16" end="19" type="uint"/>
<field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/> <field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Vertex Fetch Invalidate" start="12" end="12" type="bool" default="0"/> <field name="Vertex Fetch Invalidate" start="12" end="12" type="bool" default="0"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/> <field name="Buffer Pitch" start="0" end="11" type="uint"/>
...@@ -384,7 +383,6 @@ ...@@ -384,7 +383,6 @@
<value name="VALIGN_4" value="1"/> <value name="VALIGN_4" value="1"/>
</field> </field>
<field name="Y Offset" start="180" end="183" type="uint"/> <field name="Y Offset" start="180" end="183" type="uint"/>
<field name="Surface Object Control State" start="176" end="179" typ