[Mesa-dev] [PATCH] genxml: Consistently use a numeric "MOCS" field
Jordan Justen
jordan.l.justen at intel.com
Wed Dec 12 05:25:30 UTC 2018
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
On 2018-12-11 20:23:06, Kenneth Graunke wrote:
> 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.
> ---
> src/intel/blorp/blorp_genX_exec.h | 2 +-
> src/intel/genxml/gen10.xml | 53 +++++--------
> src/intel/genxml/gen11.xml | 53 +++++--------
> src/intel/genxml/gen6.xml | 28 ++-----
> src/intel/genxml/gen7.xml | 35 ++++-----
> src/intel/genxml/gen75.xml | 38 ++++------
> src/intel/genxml/gen8.xml | 47 +++++-------
> src/intel/genxml/gen9.xml | 50 +++++-------
> src/intel/isl/isl_emit_depth_stencil.c | 6 +-
> src/intel/vulkan/anv_private.h | 76 ++++++++-----------
> src/intel/vulkan/gen7_cmd_buffer.c | 2 +-
> src/intel/vulkan/gen8_cmd_buffer.c | 2 +-
> src/intel/vulkan/genX_cmd_buffer.c | 19 +++--
> src/intel/vulkan/genX_gpu_memcpy.c | 4 +-
> src/intel/vulkan/genX_state.c | 6 +-
> src/mesa/drivers/dri/i965/genX_state_upload.c | 14 ++--
> 16 files changed, 177 insertions(+), 258 deletions(-)
>
> diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h
> index 065980616ec..42494ffbc86 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 2d3bc39b1b9..21cd8a17d91 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 1239ed011ed..54816458fc3 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 fff1e5a8411..b4976b33c34 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 49b08281993..893c12b8af9 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 6ce31b49241..4a858eb7fea 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,7 +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="MOCS" start="128" end="131" type="uint"/>
> <field name="Depth Buffer 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"/>
> @@ -1160,7 +1158,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 +1231,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 +1281,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 +1732,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 +1764,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 +2696,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 +2747,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 a27cac12843..fd19b0c8b33 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 0f9a1d110e8..9349e24b0f0 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,7 +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="MOCS" start="160" end="166" type="uint"/>
> <field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
> <field name="Tiled Resource Mode" start="222" end="223" type="uint">
> <value name="NONE" value="0"/>
> @@ -1326,7 +1320,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 +1399,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 +1462,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 +2012,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 +2047,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 +3241,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 +3265,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 9cf5a476687..d2dec3761e5 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 aff076a55d9..b3e9ace7ad8 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 da51cb9781c..08bebd44adb 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 752d04f3013..5bacfed71c8 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 fb70cd2e386..1aaf83e97e8 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 1bee1c6dc17..ea35daa4126 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 42800a2581e..0f6b77492fb 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 8e3fcbf12ec..93147a253ed 100644
> --- a/src/mesa/drivers/dri/i965/genX_state_upload.c
> +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
> @@ -363,15 +363,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
> };
>
> @@ -965,7 +965,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);
> @@ -3847,7 +3847,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 =
> --
> 2.19.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list