genxml: Consistently use a numeric "MOCS" field
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 11 Dec 2018 08:34:11 +0000 (00:34 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 14 Dec 2018 08:44:54 +0000 (00:44 -0800)
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 <jordan.l.justen@intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
16 files changed:
src/intel/blorp/blorp_genX_exec.h
src/intel/genxml/gen10.xml
src/intel/genxml/gen11.xml
src/intel/genxml/gen6.xml
src/intel/genxml/gen7.xml
src/intel/genxml/gen75.xml
src/intel/genxml/gen8.xml
src/intel/genxml/gen9.xml
src/intel/isl/isl_emit_depth_stencil.c
src/intel/vulkan/anv_private.h
src/intel/vulkan/gen7_cmd_buffer.c
src/intel/vulkan/gen8_cmd_buffer.c
src/intel/vulkan/genX_cmd_buffer.c
src/intel/vulkan/genX_gpu_memcpy.c
src/intel/vulkan/genX_state.c
src/mesa/drivers/dri/i965/genX_state_upload.c

index 065980616ecc932bcbcda4b4c58897a79fe262e0..42494ffbc86215a77a85173ed8312e845987a685 100644 (file)
@@ -311,7 +311,7 @@ blorp_fill_vertex_buffer_state(struct blorp_batch *batch,
    vb[idx].BufferPitch = stride;
 
 #if GEN_GEN >= 6
-   vb[idx].VertexBufferMOCS = addr.mocs;
+   vb[idx].MOCS = addr.mocs;
 #endif
 
 #if GEN_GEN >= 7
index 2d3bc39b1b9e722e7913103f92832cb50bfef0c7..21cd8a17d9174787ca5e118f7003c5eb00f56fcb 100644 (file)
     <field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
   </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">
     <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="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+    <field name="MOCS" start="16" end="22" type="uint"/>
     <field name="Address Modify Enable" start="14" end="14" 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="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 - 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="Base Mip Level" start="51" end="55" type="u4.1"/>
     <field name="Surface QPitch" start="32" end="46" type="uint"/>
     <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 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">
       <value name="No Valid Data" value="0"/>
     </field>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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="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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="LOD" start="128" end="131" type="uint"/>
     <field name="Depth" start="181" end="191" 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="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+    <field name="MOCS" start="160" end="166" type="uint"/>
     <field name="Tiled Resource Mode" start="222" end="223" type="uint">
       <value name="NONE" value="0"/>
       <value name="TILEYF" value="1"/>
     <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 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"/>
   </instruction>
 
     <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="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="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+    <field name="MOCS" start="57" end="63" 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 QPitch" start="128" end="142" type="uint"/>
       <value name="WORD" value="1"/>
       <value name="DWORD" value="2"/>
     </field>
-    <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+    <field name="MOCS" start="32" end="38" type="uint"/>
     <field name="Buffer Starting Address" start="64" end="127" type="address"/>
     <field name="Buffer Size" start="128" end="159" type="uint"/>
   </instruction>
     <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 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="SO Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" type="uint"/>
     <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="Surface Base Address" start="66" end="111" type="address"/>
     <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="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="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" 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 QPitch" start="128" end="142" type="uint"/>
     <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="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="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 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="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="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="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="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="Instruction Buffer Size" start="492" end="511" type="uint"/>
     <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 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 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 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 Buffer Size" start="684" end="703" type="uint"/>
   </instruction>
index 1239ed011ed5729d3c3d4130f9cf8447f8c95ed7..54816458fc33bb0a1d507436b5a5083389e0e27b 100644 (file)
     <field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
   </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">
     <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="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+    <field name="MOCS" start="16" end="22" type="uint"/>
     <field name="Address Modify Enable" start="14" end="14" 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="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 - 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="Base Mip Level" start="51" end="55" type="u4.1"/>
     <field name="Surface QPitch" start="32" end="46" type="uint"/>
     <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 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">
       <value name="No Valid Data" value="0"/>
     </field>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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="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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="LOD" start="128" end="131" type="uint"/>
     <field name="Depth" start="181" end="191" 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="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+    <field name="MOCS" start="160" end="166" type="uint"/>
     <field name="Tiled Resource Mode" start="222" end="223" type="uint">
       <value name="NONE" value="0"/>
       <value name="TILEYF" value="1"/>
     <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 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"/>
   </instruction>
 
     <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="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="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+    <field name="MOCS" start="57" end="63" type="uint"/>
     <field name="Tiled Resource Mode" start="55" end="56" type="uint">
       <value name="NONE" value="0"/>
       <value name="TILEYF" value="1"/>
       <value name="WORD" value="1"/>
       <value name="DWORD" value="2"/>
     </field>
-    <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+    <field name="MOCS" start="32" end="38" type="uint"/>
     <field name="Buffer Starting Address" start="64" end="127" type="address"/>
     <field name="Buffer Size" start="128" end="159" type="uint"/>
   </instruction>
     <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 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="SO Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" type="uint"/>
     <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="Surface Base Address" start="66" end="111" type="address"/>
     <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="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="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" 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 QPitch" start="128" end="142" type="uint"/>
     <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="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="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 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="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="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="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="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="Instruction Buffer Size" start="492" end="511" type="uint"/>
     <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 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 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 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 Buffer Size" start="684" end="703" type="uint"/>
   </instruction>
index fff1e5a8411fc72d39829f9a30ebe6506131ffd4..b4976b33c347ddabe938b9dc7988cfbffe753c96 100644 (file)
       <value name="VERTEXDATA" value="0"/>
       <value name="INSTANCEDATA" value="1"/>
     </field>
-    <field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
+    <field name="MOCS" start="16" end="19" type="uint"/>
     <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="Buffer Pitch" start="0" end="11" type="uint"/>
       <value name="VALIGN_4" value="1"/>
     </field>
     <field name="Y Offset" start="180" end="183" type="uint"/>
-    <field name="Surface Object Control State" start="176" end="179" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="MOCS" start="176" end="179" type="uint"/>
   </struct>
 
     <field name="Buffer 2 Valid" start="14" end="14" type="bool"/>
     <field name="Buffer 1 Valid" start="13" end="13" type="bool"/>
     <field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
-    <field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="8" end="11" type="uint"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
     <field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="Buffer 2 Valid" start="14" end="14" type="bool"/>
     <field name="Buffer 1 Valid" start="13" end="13" type="bool"/>
     <field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
-    <field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="8" end="11" type="uint"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
     <field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="Buffer 2 Valid" start="14" end="14" type="bool"/>
     <field name="Buffer 1 Valid" start="13" end="13" type="bool"/>
     <field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
-    <field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="8" end="11" type="uint"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
     <field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="Render Target View Extent" start="129" end="137" type="uint"/>
     <field name="Depth Coordinate Offset Y" start="176" end="191" type="int"/>
     <field name="Depth Coordinate Offset X" start="160" end="175" type="int"/>
-    <field name="Depth Buffer Object Control State" start="219" end="223" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Depth Buffer MOCS" start="219" end="223" type="uint"/>
+    <field name="MOCS" start="219" end="223" type="uint"/>
   </instruction>
 
   <instruction name="3DSTATE_DRAWING_RECTANGLE" bias="2" length="4" engine="render">
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="15"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
-    <field name="Hierarchical Depth Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Hierarchical Depth Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="48" type="uint"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
     <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 Sub Opcode" start="16" end="23" type="uint" default="10"/>
-    <field name="Memory Object Control State" start="12" end="15" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="12" end="15" type="uint"/>
+    <field name="MOCS" start="12" end="15" type="uint"/>
     <field name="Cut Index Enable" start="10" end="10" type="bool"/>
     <field name="Index Format" start="8" end="9" type="uint" prefix="INDEX">
       <value name="BYTE" value="0"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="14"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
-    <field name="Stencil Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Stencil Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="48" type="uint"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
     <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="8"/>
     <field name="General State Base Address" start="44" end="63" type="address"/>
-    <field name="General State Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="General State MOCS" start="40" end="43" type="uint"/>
-    <field name="Stateless Data Port Access Memory Object Control State" start="36" end="39" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="Stateless Data Port Access MOCS" start="36" end="39" type="uint"/>
     <field name="Stateless Data Port Access Force Write Thru" start="35" end="35" type="uint"/>
     <field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
     <field name="Surface State Base Address" start="76" end="95" type="address"/>
-    <field name="Surface State Memory Object Control State" start="72" end="75" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="Surface State MOCS" start="72" end="75" type="uint"/>
     <field name="Surface State Base Address Modify Enable" start="64" end="64" type="bool"/>
     <field name="Dynamic State Base Address" start="108" end="127" type="address"/>
-    <field name="Dynamic State Memory Object Control State" start="104" end="107" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="Dynamic State MOCS" start="104" end="107" type="uint"/>
     <field name="Dynamic State Base Address Modify Enable" start="96" end="96" type="bool"/>
     <field name="Indirect Object Base Address" start="140" end="159" type="address"/>
-    <field name="Indirect Object Memory Object Control State" start="136" end="139" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="Indirect Object MOCS" start="136" end="139" type="uint"/>
     <field name="Indirect Object Base Address Modify Enable" start="128" end="128" type="bool"/>
     <field name="Instruction Base Address" start="172" end="191" type="address"/>
-    <field name="Instruction Memory Object Control State" start="168" end="171" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="Instruction MOCS" start="168" end="171" type="uint"/>
     <field name="Instruction Base Address Modify Enable" start="160" end="160" type="bool"/>
     <field name="General State Access Upper Bound" start="204" end="223" type="address"/>
index 49b08281993e8cb044d97f8e939ed7fa78fbf7d3..893c12b8af9ea00d96f3c26102588fbb51886b87 100644 (file)
     <group count="4" start="0" size="16">
       <field name="Read Length" start="0" end="15" type="uint"/>
     </group>
-    <field name="Constant Buffer Object Control State" start="64" end="68" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="64" end="68" type="uint"/>
     <group count="4" start="64" size="32">
       <field name="Buffer" start="5" end="31" type="address"/>
     </group>
       <value name="VERTEXDATA" value="0"/>
       <value name="INSTANCEDATA" value="1"/>
     </field>
-    <field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
+    <field name="MOCS" start="16" end="19" type="uint"/>
     <field name="Address Modify Enable" start="14" end="14" 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="Strbuf Minimum Array Element" start="128" end="154" type="uint"/>
     <field name="X Offset" start="185" end="191" type="uint"/>
     <field name="Y Offset" start="180" end="183" type="uint"/>
-    <field name="Surface Object Control State" start="176" end="179" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="MOCS" start="176" end="179" type="uint"/>
     <field name="Surface Min LOD" start="164" end="167" type="uint"/>
     <field name="MIP Count / LOD" start="160" end="163" type="uint"/>
       <value name="SURFTYPE_CUBE (must be zero)" value="0"/>
     </field>
     <field name="Minimum Array Element" start="138" end="148" type="uint"/>
-    <field name="Depth Buffer Object Control State" start="128" end="131" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Depth Buffer MOCS" start="128" end="131" type="uint"/>
+    <field name="MOCS" start="128" end="131" type="uint"/>
     <field name="Depth Coordinate Offset Y" start="176" end="191" type="int"/>
     <field name="Depth Coordinate Offset X" start="160" end="175" type="int"/>
     <field name="Render Target View Extent" start="213" end="223" type="uint"/>
     <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="DWord Length" start="0" end="7" type="uint" default="1"/>
-    <field name="Hierarchical Depth Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Hierarchical Depth Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="48" type="uint"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
     <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 Sub Opcode" start="16" end="23" type="uint" default="10"/>
-    <field name="Memory Object Control State" start="12" end="15" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="12" end="15" type="uint"/>
+    <field name="MOCS" start="12" end="15" type="uint"/>
     <field name="Cut Index Enable" start="10" end="10" type="bool"/>
     <field name="Index Format" start="8" end="9" type="uint" prefix="INDEX">
       <value name="BYTE" value="0"/>
     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
     <field name="SO Buffer Index" start="61" end="62" type="uint"/>
-    <field name="SO Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="SO Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="43" type="uint"/>
     <field name="Surface Base Address" start="66" end="95" type="address"/>
     <field name="Surface End Address" start="98" end="127" type="address"/>
     <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="6"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
-    <field name="Stencil Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Stencil Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="48" type="uint"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
     <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="8"/>
     <field name="General State Base Address" start="44" end="63" type="address"/>
-    <field name="General State Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Stateless Data Port Access Memory Object Control State" start="36" end="39" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="General State MOCS" start="40" end="43" type="uint"/>
+    <field name="Stateless Data Port Access MOCS" start="36" end="39" type="uint"/>
     <field name="Stateless Data Port Access Force Write Thru" start="35" end="35" type="uint"/>
     <field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
     <field name="Surface State Base Address" start="76" end="95" type="address"/>
-    <field name="Surface State Memory Object Control State" start="72" end="75" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Surface State MOCS" start="72" end="75" type="uint"/>
     <field name="Surface State Base Address Modify Enable" start="64" end="64" type="bool"/>
     <field name="Dynamic State Base Address" start="108" end="127" type="address"/>
-    <field name="Dynamic State Memory Object Control State" start="104" end="107" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Dynamic State MOCS" start="104" end="107" type="uint"/>
     <field name="Dynamic State Base Address Modify Enable" start="96" end="96" type="bool"/>
     <field name="Indirect Object Base Address" start="140" end="159" type="address"/>
-    <field name="Indirect Object Memory Object Control State" start="136" end="139" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Indirect Object MOCS" start="136" end="139" type="uint"/>
     <field name="Indirect Object Base Address Modify Enable" start="128" end="128" type="bool"/>
     <field name="Instruction Base Address" start="172" end="191" type="address"/>
-    <field name="Instruction Memory Object Control State" start="168" end="171" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Instruction MOCS" start="168" end="171" type="uint"/>
     <field name="Instruction Base Address Modify Enable" start="160" end="160" type="bool"/>
     <field name="General State Access Upper Bound" start="204" end="223" type="address"/>
     <field name="General State Access Upper Bound Modify Enable" start="192" end="192" type="bool"/>
     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
     <field name="SW Tessellation Base Address" start="44" end="63" type="address"/>
-    <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="SW Tessellation MOCS" start="40" end="43" type="uint"/>
   </instruction>
 
   <register name="IA_VERTICES_COUNT" length="2" num="0x2310">
index 6ce31b4924135e7e1d95625aa2c01b23ca059bab..009a123ad698fba8bdf2886febb8b322939f41a5 100644 (file)
     <group count="4" start="0" size="16">
       <field name="Read Length" start="0" end="15" type="uint"/>
     </group>
-    <field name="Constant Buffer Object Control State" start="64" end="68" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="64" end="68" type="uint"/>
     <group count="4" start="64" size="32">
       <field name="Buffer" start="5" end="31" type="address"/>
     </group>
       <value name="VERTEXDATA" value="0"/>
       <value name="INSTANCEDATA" value="1"/>
     </field>
-    <field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
+    <field name="MOCS" start="16" end="19" type="uint"/>
     <field name="Address Modify Enable" start="14" end="14" 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="Strbuf Minimum Array Element" start="128" end="154" type="uint"/>
     <field name="X Offset" start="185" end="191" type="uint"/>
     <field name="Y Offset" start="180" end="183" type="uint"/>
-    <field name="Surface Object Control State" start="176" end="179" type="MEMORY_OBJECT_CONTROL_STATE"/>
     <field name="MOCS" start="176" end="179" type="uint"/>
     <field name="Surface Min LOD" start="164" end="167" type="uint"/>
     <field name="MIP Count / LOD" start="160" end="163" type="uint"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
     <field name="Binding Table Pool Base Address" start="44" end="63" type="address"/>
     <field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
-    <field name="Surface Object Control State" start="39" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="39" end="42" type="uint"/>
     <field name="Binding Table Pool Upper Bound" start="76" end="95" type="address"/>
   </instruction>
 
       <value name="SURFTYPE_CUBE (must be zero)" value="0"/>
     </field>
     <field name="Minimum Array Element" start="138" end="148" type="uint"/>
-    <field name="Depth Buffer Object Control State" start="128" end="131" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Depth Buffer MOCS" start="128" end="131" type="uint"/>
+    <field name="MOCS" start="128" end="131" type="uint"/>
     <field name="Depth Coordinate Offset Y" start="176" end="191" type="int"/>
     <field name="Depth Coordinate Offset X" start="160" end="175" type="int"/>
     <field name="Render Target View Extent" start="213" end="223" type="uint"/>
     <field name="Gather Pool Base Address" start="44" end="63" type="address"/>
     <field name="Gather Pool Enable" start="43" end="43" type="bool"/>
     <field start="36" end="37" type="mbo"/>
-    <field name="Memory Object Control State" start="32" end="35" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="MOCS" start="32" end="35" type="uint"/>
     <field name="Gather Pool Upper Bound" start="76" end="95" type="address"/>
   </instruction>
 
     <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="DWord Length" start="0" end="7" type="uint" default="1"/>
-    <field name="Hierarchical Depth Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Hierarchical Depth Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="48" type="uint"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
     <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 Sub Opcode" start="16" end="23" type="uint" default="10"/>
-    <field name="Memory Object Control State" start="12" end="15" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="12" end="15" type="uint"/>
+    <field name="MOCS" start="12" end="15" type="uint"/>
     <field name="Index Format" start="8" end="9" type="uint" prefix="INDEX">
       <value name="BYTE" value="0"/>
       <value name="WORD" value="1"/>
     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
     <field name="SO Buffer Index" start="61" end="62" type="uint"/>
-    <field name="SO Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="SO Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="43" type="uint"/>
     <field name="Surface Base Address" start="66" end="95" type="address"/>
     <field name="Surface End Address" start="98" end="127" type="address"/>
     <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="1"/>
     <field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
-    <field name="Stencil Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Stencil Buffer MOCS" start="57" end="60" type="uint"/>
+    <field name="MOCS" start="57" end="60" type="uint"/>
     <field name="Surface Pitch" start="32" end="48" type="uint"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
     <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="8"/>
     <field name="General State Base Address" start="44" end="63" type="address"/>
-    <field name="General State Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="Stateless Data Port Access Memory Object Control State" start="36" end="39" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="General State MOCS" start="40" end="43" type="uint"/>
+    <field name="Stateless Data Port Access MOCS" start="36" end="39" type="uint"/>
     <field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
     <field name="Surface State Base Address" start="76" end="95" type="address"/>
-    <field name="Surface State Memory Object Control State" start="72" end="75" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Surface State MOCS" start="72" end="75" type="uint"/>
     <field name="Surface State Base Address Modify Enable" start="64" end="64" type="bool"/>
     <field name="Dynamic State Base Address" start="108" end="127" type="address"/>
-    <field name="Dynamic State Memory Object Control State" start="104" end="107" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Dynamic State MOCS" start="104" end="107" type="uint"/>
     <field name="Dynamic State Base Address Modify Enable" start="96" end="96" type="bool"/>
     <field name="Indirect Object Base Address" start="140" end="159" type="address"/>
-    <field name="Indirect Object Memory Object Control State" start="136" end="139" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Indirect Object MOCS" start="136" end="139" type="uint"/>
     <field name="Indirect Object Base Address Modify Enable" start="128" end="128" type="bool"/>
     <field name="Instruction Base Address" start="172" end="191" type="address"/>
-    <field name="Instruction Memory Object Control State" start="168" end="171" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="Instruction MOCS" start="168" end="171" type="uint"/>
     <field name="Instruction Base Address Modify Enable" start="160" end="160" type="bool"/>
     <field name="General State Access Upper Bound" start="204" end="223" type="address"/>
     <field name="General State Access Upper Bound Modify Enable" start="192" end="192" type="bool"/>
     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
     <field name="SW Tessellation Base Address" start="44" end="63" type="address"/>
-    <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="SW Tessellation MOCS" start="40" end="43" type="uint"/>
   </instruction>
 
   <register name="IA_VERTICES_COUNT" length="2" num="0x2310">
index a27cac128434de9ddbb09de48b782b35de9beea6..fd19b0c8b335bc8edc0eb02e6345583e8e6b6c8b 100644 (file)
 
   <struct name="VERTEX_BUFFER_STATE" length="4">
     <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="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+    <field name="MOCS" start="16" end="22" type="uint"/>
     <field name="Address Modify Enable" start="14" end="14" 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="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 - 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="Base Mip Level" start="51" end="55" type="u4.1"/>
     <field name="Surface QPitch" start="32" end="46" type="uint"/>
     <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 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">
       <value name="No Valid Data" value="0"/>
     </field>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 Sub Opcode" start="16" end="23" type="uint" default="23"/>
-    <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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="LOD" start="128" end="131" type="uint"/>
     <field name="Depth" start="181" end="191" 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="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+    <field name="MOCS" start="160" end="166" type="uint"/>
     <field name="Render Target View Extent" start="245" end="255" type="uint"/>
     <field name="Surface QPitch" start="224" end="238" type="uint"/>
   </instruction>
     <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 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"/>
   </instruction>
 
     <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="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="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+    <field name="MOCS" start="57" end="63" 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 QPitch" start="128" end="142" type="uint"/>
       <value name="WORD" value="1"/>
       <value name="DWORD" value="2"/>
     </field>
-    <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+    <field name="MOCS" start="32" end="38" type="uint"/>
     <field name="Buffer Starting Address" start="64" end="127" type="address"/>
     <field name="Buffer Size" start="128" end="159" type="uint"/>
   </instruction>
     <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 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="SO Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" type="uint"/>
     <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="Surface Base Address" start="66" end="111" type="address"/>
     <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="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="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" 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 QPitch" start="128" end="142" type="uint"/>
     <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="14"/>
     <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="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 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="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="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="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="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="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
     <field name="SW Tessellation Base Address" start="44" end="79" type="address"/>
-    <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
+    <field name="SW Tessellation MOCS" start="40" end="43" type="uint"/>
   </instruction>
 
   <register name="IA_VERTICES_COUNT" length="2" num="0x2310">
index 0f9a1d110e80e8956504320fac4d78fab490f890..c8b090ac191b36e2b1a2eb099e2d7907fe549e3a 100644 (file)
     <field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
   </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">
     <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="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+    <field name="MOCS" start="16" end="22" type="uint"/>
     <field name="Address Modify Enable" start="14" end="14" 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="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 - 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="Base Mip Level" start="51" end="55" type="u4.1"/>
     <field name="Surface QPitch" start="32" end="46" type="uint"/>
     <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 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">
       <value name="No Valid Data" value="0"/>
     </field>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 Sub Opcode" start="16" end="23" type="uint" default="23"/>
-    <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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <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 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="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
     <field name="LOD" start="128" end="131" type="uint"/>
     <field name="Depth" start="181" end="191" 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="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+    <field name="MOCS" start="160" end="166" type="uint"/>
     <field name="Tiled Resource Mode" start="222" end="223" type="uint">
       <value name="NONE" value="0"/>
       <value name="TILEYF" value="1"/>
     <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 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"/>
   </instruction>
 
     <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="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="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+    <field name="MOCS" start="57" end="63" 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 QPitch" start="128" end="142" type="uint"/>
       <value name="WORD" value="1"/>
       <value name="DWORD" value="2"/>
     </field>
-    <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
-    <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+    <field name="MOCS" start="32" end="38" type="uint"/>
     <field name="Buffer Starting Address" start="64" end="127" type="address"/>
     <field name="Buffer Size" start="128" end="159" type="uint"/>
   </instruction>
     <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 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="SO Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" type="uint"/>
     <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="Surface Base Address" start="66" end="111" type="address"/>
     <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="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="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+    <field name="MOCS" start="54" end="60" 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 QPitch" start="128" end="142" type="uint"/>
     <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="17"/>
     <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="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 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="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="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="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="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="Instruction Buffer Size" start="492" end="511" type="uint"/>
     <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 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 Size" start="588" end="607" type="uint"/>
   </instruction>
index 9cf5a476687d1f028c17725471405c72e619bb0a..d2dec3761e5e2782ab9f7397afd33fdaec2b4695 100644 (file)
@@ -94,7 +94,7 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch,
 #endif
       db.SurfaceBaseAddress = info->depth_address;
 #if GEN_GEN >= 6
-      db.DepthBufferMOCS = info->mocs;
+      db.MOCS = info->mocs;
 #endif
 
 #if GEN_GEN <= 6
@@ -138,7 +138,7 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch,
 #endif
       sb.SurfaceBaseAddress = info->stencil_address;
 #if GEN_GEN >= 6
-      sb.StencilBufferMOCS = info->mocs;
+      sb.MOCS = info->mocs;
 #endif
       sb.SurfacePitch = info->stencil_surf->row_pitch_B - 1;
 #if GEN_GEN >= 8
@@ -161,7 +161,7 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch,
       db.HierarchicalDepthBufferEnable = true;
 
       hiz.SurfaceBaseAddress = info->hiz_address;
-      hiz.HierarchicalDepthBufferMOCS = info->mocs;
+      hiz.MOCS = info->mocs;
       hiz.SurfacePitch = info->hiz_surf->row_pitch_B - 1;
 #if GEN_GEN >= 8
       /* From the SKL PRM Vol2a:
index aff076a55d9deaf2e40962369255f3f37df2ad0b..b3e9ace7ad896675a01f8a5523718b36a431e260 100644 (file)
@@ -1349,64 +1349,50 @@ _anv_combine_address(struct anv_batch *batch, void *location,
            _dst = NULL;                                                 \
          }))
 
-#define GEN7_MOCS (struct GEN7_MEMORY_OBJECT_CONTROL_STATE) {  \
-   .GraphicsDataTypeGFDT                        = 0,           \
-   .LLCCacheabilityControlLLCCC                 = 0,           \
-   .L3CacheabilityControlL3CC                   = 1,           \
-}
+/* MEMORY_OBJECT_CONTROL_STATE:
+ * .GraphicsDataTypeGFDT                        = 0,
+ * .LLCCacheabilityControlLLCCC                 = 0,
+ * .L3CacheabilityControlL3CC                   = 1,
+ */
+#define GEN7_MOCS 1
 
-#define GEN75_MOCS (struct GEN75_MEMORY_OBJECT_CONTROL_STATE) {  \
-   .LLCeLLCCacheabilityControlLLCCC             = 0,           \
-   .L3CacheabilityControlL3CC                   = 1,           \
-}
+/* MEMORY_OBJECT_CONTROL_STATE:
+ * .LLCeLLCCacheabilityControlLLCCC             = 0,
+ * .L3CacheabilityControlL3CC                   = 1,
+ */
+#define GEN75_MOCS 1
 
-#define GEN8_MOCS (struct GEN8_MEMORY_OBJECT_CONTROL_STATE) {  \
-      .MemoryTypeLLCeLLCCacheabilityControl = WB,              \
-      .TargetCache = L3DefertoPATforLLCeLLCselection,          \
-      .AgeforQUADLRU = 0                                       \
-   }
+/* MEMORY_OBJECT_CONTROL_STATE:
+ * .MemoryTypeLLCeLLCCacheabilityControl = WB,
+ * .TargetCache = L3DefertoPATforLLCeLLCselection,
+ * .AgeforQUADLRU = 0
+ */
+#define GEN8_MOCS 0x78
 
-#define GEN8_EXTERNAL_MOCS (struct GEN8_MEMORY_OBJECT_CONTROL_STATE) {     \
-      .MemoryTypeLLCeLLCCacheabilityControl = UCwithFenceifcoherentcycle,  \
-      .TargetCache = L3DefertoPATforLLCeLLCselection,                      \
-      .AgeforQUADLRU = 0                                                   \
-   }
+/* MEMORY_OBJECT_CONTROL_STATE:
+ * .MemoryTypeLLCeLLCCacheabilityControl = UCwithFenceifcoherentcycle,
+ * .TargetCache = L3DefertoPATforLLCeLLCselection,
+ * .AgeforQUADLRU = 0
+ */
+#define GEN8_EXTERNAL_MOCS 0x18
 
 /* Skylake: MOCS is now an index into an array of 62 different caching
  * configurations programmed by the kernel.
  */
 
-#define GEN9_MOCS (struct GEN9_MEMORY_OBJECT_CONTROL_STATE) {  \
-      /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */              \
-      .IndextoMOCSTables                           = 2         \
-   }
+/* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */
+#define GEN9_MOCS 2
 
-#define GEN9_EXTERNAL_MOCS (struct GEN9_MEMORY_OBJECT_CONTROL_STATE) {  \
-      /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */                       \
-      .IndextoMOCSTables                           = 1                  \
-   }
+/* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */
+#define GEN9_EXTERNAL_MOCS 1
 
 /* Cannonlake MOCS defines are duplicates of Skylake MOCS defines. */
-#define GEN10_MOCS (struct GEN10_MEMORY_OBJECT_CONTROL_STATE) {  \
-      /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */              \
-      .IndextoMOCSTables                           = 2         \
-   }
-
-#define GEN10_EXTERNAL_MOCS (struct GEN10_MEMORY_OBJECT_CONTROL_STATE) {   \
-      /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */                          \
-      .IndextoMOCSTables                           = 1                     \
-   }
+#define GEN10_MOCS GEN9_MOCS
+#define GEN10_EXTERNAL_MOCS GEN9_EXTERNAL_MOCS
 
 /* Ice Lake MOCS defines are duplicates of Skylake MOCS defines. */
-#define GEN11_MOCS (struct GEN11_MEMORY_OBJECT_CONTROL_STATE) {  \
-      /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */              \
-      .IndextoMOCSTables                           = 2         \
-   }
-
-#define GEN11_EXTERNAL_MOCS (struct GEN11_MEMORY_OBJECT_CONTROL_STATE) {   \
-      /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */                          \
-      .IndextoMOCSTables                           = 1                     \
-   }
+#define GEN11_MOCS GEN9_MOCS
+#define GEN11_EXTERNAL_MOCS GEN9_EXTERNAL_MOCS
 
 struct anv_device_memory {
    struct anv_bo *                              bo;
index da51cb9781cf6eaea7c6d3633b4a3a913606adca..08bebd44adbfa83d50cdf469f8415320a8dc1a03 100644 (file)
@@ -246,7 +246,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer)
          ib.CutIndexEnable             = pipeline->primitive_restart;
 #endif
          ib.IndexFormat                = cmd_buffer->state.gfx.gen7.index_type;
-         ib.IndexBufferMOCS            = anv_mocs_for_bo(cmd_buffer->device,
+         ib.MOCS                       = anv_mocs_for_bo(cmd_buffer->device,
                                                          buffer->address.bo);
 
          ib.BufferStartingAddress      = anv_address_add(buffer->address,
index 752d04f30135ab55f9db909fff6e4bb6eb8232bd..5bacfed71c801ce94234d1427e72af3f254346f4 100644 (file)
@@ -565,7 +565,7 @@ void genX(CmdBindIndexBuffer)(
 
    anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_INDEX_BUFFER), ib) {
       ib.IndexFormat                = vk_to_gen_index_type[indexType];
-      ib.IndexBufferMOCS            = anv_mocs_for_bo(cmd_buffer->device,
+      ib.MOCS                       = anv_mocs_for_bo(cmd_buffer->device,
                                                       buffer->address.bo);
       ib.BufferStartingAddress      = anv_address_add(buffer->address, offset);
       ib.BufferSize                 = buffer->size - offset;
index fb70cd2e386ac747acae58d89e954258bade4a09..1aaf83e97e8488e367c41fe23bfb4604ae1b498e 100644 (file)
@@ -86,26 +86,26 @@ genX(cmd_buffer_emit_state_base_address)(struct anv_cmd_buffer *cmd_buffer)
 
    anv_batch_emit(&cmd_buffer->batch, GENX(STATE_BASE_ADDRESS), sba) {
       sba.GeneralStateBaseAddress = (struct anv_address) { NULL, 0 };
-      sba.GeneralStateMemoryObjectControlState = GENX(MOCS);
+      sba.GeneralStateMOCS = GENX(MOCS);
       sba.GeneralStateBaseAddressModifyEnable = true;
 
       sba.SurfaceStateBaseAddress =
          anv_cmd_buffer_surface_base_address(cmd_buffer);
-      sba.SurfaceStateMemoryObjectControlState = GENX(MOCS);
+      sba.SurfaceStateMOCS = GENX(MOCS);
       sba.SurfaceStateBaseAddressModifyEnable = true;
 
       sba.DynamicStateBaseAddress =
          (struct anv_address) { &device->dynamic_state_pool.block_pool.bo, 0 };
-      sba.DynamicStateMemoryObjectControlState = GENX(MOCS);
+      sba.DynamicStateMOCS = GENX(MOCS);
       sba.DynamicStateBaseAddressModifyEnable = true;
 
       sba.IndirectObjectBaseAddress = (struct anv_address) { NULL, 0 };
-      sba.IndirectObjectMemoryObjectControlState = GENX(MOCS);
+      sba.IndirectObjectMOCS = GENX(MOCS);
       sba.IndirectObjectBaseAddressModifyEnable = true;
 
       sba.InstructionBaseAddress =
          (struct anv_address) { &device->instruction_state_pool.block_pool.bo, 0 };
-      sba.InstructionMemoryObjectControlState = GENX(MOCS);
+      sba.InstructionMOCS = GENX(MOCS);
       sba.InstructionBaseAddressModifyEnable = true;
 
 #  if (GEN_GEN >= 8)
@@ -124,13 +124,13 @@ genX(cmd_buffer_emit_state_base_address)(struct anv_cmd_buffer *cmd_buffer)
 #  endif
 #  if (GEN_GEN >= 9)
       sba.BindlessSurfaceStateBaseAddress = (struct anv_address) { NULL, 0 };
-      sba.BindlessSurfaceStateMemoryObjectControlState = GENX(MOCS);
+      sba.BindlessSurfaceStateMOCS = GENX(MOCS);
       sba.BindlessSurfaceStateBaseAddressModifyEnable = true;
       sba.BindlessSurfaceStateSize = 0;
 #  endif
 #  if (GEN_GEN >= 10)
       sba.BindlessSamplerStateBaseAddress = (struct anv_address) { NULL, 0 };
-      sba.BindlessSamplerStateMemoryObjectControlState = GENX(MOCS);
+      sba.BindlessSamplerStateMOCS = GENX(MOCS);
       sba.BindlessSamplerStateBaseAddressModifyEnable = true;
       sba.BindlessSamplerStateBufferSize = 0;
 #  endif
@@ -2572,8 +2572,7 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer)
          struct GENX(VERTEX_BUFFER_STATE) state = {
             .VertexBufferIndex = vb,
 
-            .VertexBufferMOCS = anv_mocs_for_bo(cmd_buffer->device,
-                                                buffer->address.bo),
+            .MOCS = anv_mocs_for_bo(cmd_buffer->device, buffer->address.bo),
 #if GEN_GEN <= 7
             .BufferAccessType = pipeline->vb[vb].instanced ? INSTANCEDATA : VERTEXDATA,
             .InstanceDataStepRate = pipeline->vb[vb].instance_divisor,
@@ -2691,7 +2690,7 @@ emit_vertex_bo(struct anv_cmd_buffer *cmd_buffer,
          .VertexBufferIndex = index,
          .AddressModifyEnable = true,
          .BufferPitch = 0,
-         .VertexBufferMOCS = anv_mocs_for_bo(cmd_buffer->device, addr.bo),
+         .MOCS = anv_mocs_for_bo(cmd_buffer->device, addr.bo),
 #if (GEN_GEN >= 8)
          .BufferStartingAddress = addr,
          .BufferSize = size
index 1bee1c6dc1780873cee7cd9494943f4bb1af5900..ea35daa41264cfe1801482d24109d67676b76320 100644 (file)
@@ -167,7 +167,7 @@ genX(cmd_buffer_so_memcpy)(struct anv_cmd_buffer *cmd_buffer,
          .AddressModifyEnable = true,
          .BufferStartingAddress = src,
          .BufferPitch = bs,
-         .VertexBufferMOCS = anv_mocs_for_bo(cmd_buffer->device, src.bo),
+         .MOCS = anv_mocs_for_bo(cmd_buffer->device, src.bo),
 #if (GEN_GEN >= 8)
          .BufferSize = size,
 #else
@@ -227,7 +227,7 @@ genX(cmd_buffer_so_memcpy)(struct anv_cmd_buffer *cmd_buffer,
 
    anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_SO_BUFFER), sob) {
       sob.SOBufferIndex = 0;
-      sob.SOBufferMOCS = anv_mocs_for_bo(cmd_buffer->device, dst.bo),
+      sob.MOCS = anv_mocs_for_bo(cmd_buffer->device, dst.bo),
       sob.SurfaceBaseAddress = dst;
 
 #if GEN_GEN >= 8
index 42800a2581e5c980f7a40b646b767fe383385db4..0f6b77492fbe0e79f7b38fef97bbac90cbcf70c7 100644 (file)
@@ -91,11 +91,9 @@ gen10_emit_wa_lri_to_cache_mode_zero(struct anv_batch *batch)
 VkResult
 genX(init_device_state)(struct anv_device *device)
 {
-   GENX(MEMORY_OBJECT_CONTROL_STATE_pack)(NULL, &device->default_mocs,
-                                          &GENX(MOCS));
+   device->default_mocs = GENX(MOCS);
 #if GEN_GEN >= 8
-   GENX(MEMORY_OBJECT_CONTROL_STATE_pack)(NULL, &device->external_mocs,
-                                          &GENX(EXTERNAL_MOCS));
+   device->external_mocs = GENX(EXTERNAL_MOCS);
 #else
    device->external_mocs = device->default_mocs;
 #endif
index bad0aff9c67ad8f497346773159c901959aae326..8c38d5f4e821c4be54664973b465142aa7c02779 100644 (file)
@@ -394,15 +394,15 @@ genX(emit_vertex_buffer_state)(struct brw_context *brw,
 #endif
 
 #if GEN_GEN == 11
-      .VertexBufferMOCS = ICL_MOCS_WB,
+      .MOCS = ICL_MOCS_WB,
 #elif GEN_GEN == 10
-      .VertexBufferMOCS = CNL_MOCS_WB,
+      .MOCS = CNL_MOCS_WB,
 #elif GEN_GEN == 9
-      .VertexBufferMOCS = SKL_MOCS_WB,
+      .MOCS = SKL_MOCS_WB,
 #elif GEN_GEN == 8
-      .VertexBufferMOCS = BDW_MOCS_WB,
+      .MOCS = BDW_MOCS_WB,
 #elif GEN_GEN == 7
-      .VertexBufferMOCS = GEN7_MOCS_L3,
+      .MOCS = GEN7_MOCS_L3,
 #endif
    };
 
@@ -996,7 +996,7 @@ genX(emit_index_buffer)(struct brw_context *brw)
        */
       ib.BufferStartingAddress = ro_32_bo(brw->ib.bo, 0);
 #if GEN_GEN >= 8
-      ib.IndexBufferMOCS = GEN_GEN >= 9 ? SKL_MOCS_WB : BDW_MOCS_WB;
+      ib.MOCS = GEN_GEN >= 9 ? SKL_MOCS_WB : BDW_MOCS_WB;
       ib.BufferSize = brw->ib.size;
 #else
       ib.BufferEndingAddress = ro_bo(brw->ib.bo, brw->ib.size - 1);
@@ -3878,7 +3878,7 @@ genX(upload_3dstate_so_buffers)(struct brw_context *brw)
          sob.SOBufferEnable = true;
          sob.StreamOffsetWriteEnable = true;
          sob.StreamOutputBufferOffsetAddressEnable = true;
-         sob.SOBufferMOCS = mocs_wb;
+         sob.MOCS = mocs_wb;
 
          sob.SurfaceSize = MAX2(xfb_obj->Size[i] / 4, 1) - 1;
          sob.StreamOutputBufferOffsetAddress =