summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2018-12-11 00:34:11 -0800
committerKenneth Graunke <kenneth@whitecape.org>2018-12-14 00:44:54 -0800
commit0b44644ca6886de4201e3edd911b7d418a9d7680 (patch)
tree56cab0cfb09f7f56411eda32ba3476b8aa76c378
parenta2ec78883f402ccfb60bce3c35ec819061e6338f (diff)
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 <jordan.l.justen@intel.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
-rw-r--r--src/intel/blorp/blorp_genX_exec.h2
-rw-r--r--src/intel/genxml/gen10.xml53
-rw-r--r--src/intel/genxml/gen11.xml53
-rw-r--r--src/intel/genxml/gen6.xml28
-rw-r--r--src/intel/genxml/gen7.xml35
-rw-r--r--src/intel/genxml/gen75.xml39
-rw-r--r--src/intel/genxml/gen8.xml47
-rw-r--r--src/intel/genxml/gen9.xml51
-rw-r--r--src/intel/isl/isl_emit_depth_stencil.c6
-rw-r--r--src/intel/vulkan/anv_private.h76
-rw-r--r--src/intel/vulkan/gen7_cmd_buffer.c2
-rw-r--r--src/intel/vulkan/gen8_cmd_buffer.c2
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c19
-rw-r--r--src/intel/vulkan/genX_gpu_memcpy.c4
-rw-r--r--src/intel/vulkan/genX_state.c6
-rw-r--r--src/mesa/drivers/dri/i965/genX_state_upload.c14
16 files changed, 177 insertions, 260 deletions
diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h
index 065980616e..42494ffbc8 100644
--- a/src/intel/blorp/blorp_genX_exec.h
+++ b/src/intel/blorp/blorp_genX_exec.h
@@ -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
diff --git a/src/intel/genxml/gen10.xml b/src/intel/genxml/gen10.xml
index 2d3bc39b1b..21cd8a17d9 100644
--- a/src/intel/genxml/gen10.xml
+++ b/src/intel/genxml/gen10.xml
@@ -219,14 +219,9 @@
<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"/>
@@ -495,7 +490,6 @@
<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"/>
@@ -993,7 +987,7 @@
<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>
@@ -1085,7 +1079,7 @@
<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>
@@ -1095,7 +1089,7 @@
<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>
@@ -1105,7 +1099,7 @@
<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>
@@ -1116,7 +1110,7 @@
<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>
@@ -1126,7 +1120,7 @@
<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>
@@ -1157,8 +1151,7 @@
<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"/>
@@ -1368,7 +1361,7 @@
<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>
@@ -1447,8 +1440,7 @@
<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"/>
@@ -1511,8 +1503,7 @@
<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>
@@ -2068,8 +2059,7 @@
<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"/>
@@ -2104,8 +2094,7 @@
<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"/>
@@ -3318,20 +3307,20 @@
<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"/>
@@ -3342,11 +3331,11 @@
<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>
diff --git a/src/intel/genxml/gen11.xml b/src/intel/genxml/gen11.xml
index 1239ed011e..54816458fc 100644
--- a/src/intel/genxml/gen11.xml
+++ b/src/intel/genxml/gen11.xml
@@ -220,14 +220,9 @@
<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"/>
@@ -496,7 +491,6 @@
<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"/>
@@ -1012,7 +1006,7 @@
<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>
@@ -1104,7 +1098,7 @@
<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>
@@ -1114,7 +1108,7 @@
<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>
@@ -1124,7 +1118,7 @@
<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>
@@ -1135,7 +1129,7 @@
<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>
@@ -1145,7 +1139,7 @@
<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>
@@ -1176,8 +1170,7 @@
<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"/>
@@ -1386,7 +1379,7 @@
<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>
@@ -1463,8 +1456,7 @@
<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"/>
@@ -1531,8 +1523,7 @@
<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>
@@ -2088,8 +2079,7 @@
<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"/>
@@ -2124,8 +2114,7 @@
<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"/>
@@ -3321,20 +3310,20 @@
<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"/>
@@ -3345,11 +3334,11 @@
<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>
diff --git a/src/intel/genxml/gen6.xml b/src/intel/genxml/gen6.xml
index fff1e5a841..b4976b33c3 100644
--- a/src/intel/genxml/gen6.xml
+++ b/src/intel/genxml/gen6.xml
@@ -126,8 +126,7 @@
<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"/>
@@ -384,7 +383,6 @@
<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>
@@ -642,7 +640,7 @@
<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>
@@ -656,7 +654,7 @@
<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>
@@ -670,7 +668,7 @@
<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>
@@ -720,8 +718,7 @@
<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">
@@ -804,8 +801,7 @@
<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>
@@ -815,8 +811,7 @@
<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"/>
@@ -1068,8 +1063,7 @@
<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>
@@ -1696,26 +1690,20 @@
<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"/>
diff --git a/src/intel/genxml/gen7.xml b/src/intel/genxml/gen7.xml
index 49b0828199..893c12b8af 100644
--- a/src/intel/genxml/gen7.xml
+++ b/src/intel/genxml/gen7.xml
@@ -157,7 +157,7 @@
<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>
@@ -169,8 +169,7 @@
<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"/>
@@ -443,7 +442,6 @@
<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"/>
@@ -815,8 +813,7 @@
<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"/>
@@ -949,8 +946,7 @@
<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>
@@ -996,8 +992,7 @@
<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"/>
@@ -1422,8 +1417,7 @@
<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"/>
@@ -1454,8 +1448,7 @@
<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>
@@ -2238,21 +2231,21 @@
<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"/>
@@ -2290,7 +2283,7 @@
<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">
diff --git a/src/intel/genxml/gen75.xml b/src/intel/genxml/gen75.xml
index 6ce31b4924..009a123ad6 100644
--- a/src/intel/genxml/gen75.xml
+++ b/src/intel/genxml/gen75.xml
@@ -165,7 +165,7 @@
<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>
@@ -188,8 +188,7 @@
<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"/>
@@ -463,7 +462,6 @@
<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"/>
@@ -826,7 +824,7 @@
<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>
@@ -999,8 +997,7 @@
<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"/>
@@ -1160,7 +1157,7 @@
<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>
@@ -1233,8 +1230,7 @@
<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>
@@ -1284,8 +1280,7 @@
<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"/>
@@ -1736,8 +1731,7 @@
<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"/>
@@ -1769,8 +1763,7 @@
<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>
@@ -2702,20 +2695,20 @@
<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"/>
@@ -2753,7 +2746,7 @@
<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">
diff --git a/src/intel/genxml/gen8.xml b/src/intel/genxml/gen8.xml
index a27cac1284..fd19b0c8b3 100644
--- a/src/intel/genxml/gen8.xml
+++ b/src/intel/genxml/gen8.xml
@@ -216,8 +216,7 @@
<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"/>
@@ -462,7 +461,6 @@
<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"/>
@@ -894,7 +892,7 @@
<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>
@@ -986,7 +984,7 @@
<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>
@@ -996,7 +994,7 @@
<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>
@@ -1006,7 +1004,7 @@
<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>
@@ -1016,7 +1014,7 @@
<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>
@@ -1026,7 +1024,7 @@
<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>
@@ -1059,8 +1057,7 @@
<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>
@@ -1221,7 +1218,7 @@
<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>
@@ -1299,8 +1296,7 @@
<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"/>
@@ -1356,8 +1352,7 @@
<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>
@@ -1837,8 +1832,7 @@
<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"/>
@@ -1873,8 +1867,7 @@
<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"/>
@@ -2962,20 +2955,20 @@
<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"/>
@@ -3013,7 +3006,7 @@
<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">
diff --git a/src/intel/genxml/gen9.xml b/src/intel/genxml/gen9.xml
index 0f9a1d110e..c8b090ac19 100644
--- a/src/intel/genxml/gen9.xml
+++ b/src/intel/genxml/gen9.xml
@@ -219,14 +219,9 @@
<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"/>
@@ -494,7 +489,6 @@
<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"/>
@@ -952,7 +946,7 @@
<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>
@@ -1044,7 +1038,7 @@
<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>
@@ -1054,7 +1048,7 @@
<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>
@@ -1064,7 +1058,7 @@
<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>
@@ -1074,7 +1068,7 @@
<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>
@@ -1084,7 +1078,7 @@
<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>
@@ -1115,8 +1109,7 @@
<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"/>
@@ -1326,7 +1319,7 @@
<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>
@@ -1405,8 +1398,7 @@
<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"/>
@@ -1469,8 +1461,7 @@
<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>
@@ -2020,8 +2011,7 @@
<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"/>
@@ -2056,8 +2046,7 @@
<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"/>
@@ -3251,20 +3240,20 @@
<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"/>
@@ -3275,7 +3264,7 @@
<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>
diff --git a/src/intel/isl/isl_emit_depth_stencil.c b/src/intel/isl/isl_emit_depth_stencil.c
index 9cf5a47668..d2dec3761e 100644
--- a/src/intel/isl/isl_emit_depth_stencil.c
+++ b/src/intel/isl/isl_emit_depth_stencil.c
@@ -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:
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index aff076a55d..b3e9ace7ad 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -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;
diff --git a/src/intel/vulkan/gen7_cmd_buffer.c b/src/intel/vulkan/gen7_cmd_buffer.c
index da51cb9781..08bebd44ad 100644
--- a/src/intel/vulkan/gen7_cmd_buffer.c
+++ b/src/intel/vulkan/gen7_cmd_buffer.c
@@ -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,
diff --git a/src/intel/vulkan/gen8_cmd_buffer.c b/src/intel/vulkan/gen8_cmd_buffer.c
index 752d04f301..5bacfed71c 100644
--- a/src/intel/vulkan/gen8_cmd_buffer.c
+++ b/src/intel/vulkan/gen8_cmd_buffer.c
@@ -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;
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index fb70cd2e38..1aaf83e97e 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -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
diff --git a/src/intel/vulkan/genX_gpu_memcpy.c b/src/intel/vulkan/genX_gpu_memcpy.c
index 1bee1c6dc1..ea35daa412 100644
--- a/src/intel/vulkan/genX_gpu_memcpy.c
+++ b/src/intel/vulkan/genX_gpu_memcpy.c
@@ -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
diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c
index 42800a2581..0f6b77492f 100644
--- a/src/intel/vulkan/genX_state.c
+++ b/src/intel/vulkan/genX_state.c
@@ -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
diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
index bad0aff9c6..8c38d5f4e8 100644
--- a/src/mesa/drivers/dri/i965/genX_state_upload.c
+++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
@@ -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 =