vb[idx].BufferPitch = stride;
#if GEN_GEN >= 6
- vb[idx].VertexBufferMOCS = addr.mocs;
+ vb[idx].MOCS = addr.mocs;
#endif
#if GEN_GEN >= 7
<field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
</struct>
- <struct name="MEMORY_OBJECT_CONTROL_STATE" length="1">
- <field name="Index to MOCS Tables" start="1" end="6" type="uint"/>
- </struct>
-
<struct name="VERTEX_BUFFER_STATE" length="4">
<field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
- <field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+ <field name="MOCS" start="16" end="22" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/>
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
- <field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="56" end="62" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="Surface QPitch" start="32" end="46" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
- <field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
<value name="No Valid Data" value="0"/>
</field>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
<field name="Disable Gather at Set Shader Hint" start="15" end="15" type="uint"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="LOD" start="128" end="131" type="uint"/>
<field name="Depth" start="181" end="191" type="uint"/>
<field name="Minimum Array Element" start="170" end="180" type="uint"/>
- <field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+ <field name="MOCS" start="160" end="166" type="uint"/>
<field name="Tiled Resource Mode" start="222" end="223" type="uint">
<value name="NONE" value="0"/>
<value name="TILEYF" value="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Gather Pool Base Address" start="44" end="95" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+ <field name="MOCS" start="57" end="63" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<value name="WORD" value="1"/>
<value name="DWORD" value="2"/>
</field>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Buffer Starting Address" start="64" end="127" type="address"/>
<field name="Buffer Size" start="128" end="159" type="uint"/>
</instruction>
<field name="DWord Length" start="0" end="7" type="uint" default="6"/>
<field name="SO Buffer Enable" start="63" end="63" type="bool"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/>
- <field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
<field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
<field name="Surface Base Address" start="66" end="111" type="address"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
- <field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="20"/>
<field name="General State Base Address" start="44" end="95" type="address"/>
- <field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="General State MOCS" start="36" end="42" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint"/>
<field name="Surface State Base Address" start="140" end="191" type="address"/>
- <field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Surface State MOCS" start="132" end="138" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Dynamic State Base Address" start="204" end="255" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Dynamic State MOCS" start="196" end="202" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
<field name="Indirect Object Base Address" start="268" end="319" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Indirect Object MOCS" start="260" end="266" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
<field name="Instruction Base Address" start="332" end="383" type="address"/>
- <field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Instruction MOCS" start="324" end="330" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
<field name="General State Buffer Size" start="396" end="415" type="uint"/>
<field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
<field name="Instruction Buffer Size" start="492" end="511" type="uint"/>
<field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/>
<field name="Bindless Surface State Base Address" start="524" end="575" type="address"/>
- <field name="Bindless Surface State Memory Object Control State" start="516" end="522" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Bindless Surface State MOCS" start="516" end="522" type="uint"/>
<field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/>
<field name="Bindless Surface State Size" start="588" end="607" type="uint"/>
<field name="Bindless Sampler State Base Address" start="620" end="671" type="address"/>
- <field name="Bindless Sampler State Memory Object Control State" start="612" end="618" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Bindless Sampler State MOCS" start="612" end="618" type="uint"/>
<field name="Bindless Sampler State Base Address Modify Enable" start="608" end="608" type="bool"/>
<field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/>
</instruction>
<field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
</struct>
- <struct name="MEMORY_OBJECT_CONTROL_STATE" length="1">
- <field name="Index to MOCS Tables" start="1" end="6" type="uint"/>
- </struct>
-
<struct name="VERTEX_BUFFER_STATE" length="4">
<field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
- <field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+ <field name="MOCS" start="16" end="22" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/>
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
- <field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="56" end="62" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="Surface QPitch" start="32" end="46" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
- <field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
<value name="No Valid Data" value="0"/>
</field>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
<field name="Disable Gather at Set Shader Hint" start="15" end="15" type="uint"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="LOD" start="128" end="131" type="uint"/>
<field name="Depth" start="181" end="191" type="uint"/>
<field name="Minimum Array Element" start="170" end="180" type="uint"/>
- <field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+ <field name="MOCS" start="160" end="166" type="uint"/>
<field name="Tiled Resource Mode" start="222" end="223" type="uint">
<value name="NONE" value="0"/>
<value name="TILEYF" value="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Gather Pool Base Address" start="44" end="95" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+ <field name="MOCS" start="57" end="63" type="uint"/>
<field name="Tiled Resource Mode" start="55" end="56" type="uint">
<value name="NONE" value="0"/>
<value name="TILEYF" value="1"/>
<value name="WORD" value="1"/>
<value name="DWORD" value="2"/>
</field>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Buffer Starting Address" start="64" end="127" type="address"/>
<field name="Buffer Size" start="128" end="159" type="uint"/>
</instruction>
<field name="DWord Length" start="0" end="7" type="uint" default="6"/>
<field name="SO Buffer Enable" start="63" end="63" type="bool"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/>
- <field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
<field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
<field name="Surface Base Address" start="66" end="111" type="address"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
- <field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="20"/>
<field name="General State Base Address" start="44" end="95" type="address"/>
- <field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="General State MOCS" start="36" end="42" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint"/>
<field name="Surface State Base Address" start="140" end="191" type="address"/>
- <field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Surface State MOCS" start="132" end="138" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Dynamic State Base Address" start="204" end="255" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Dynamic State MOCS" start="196" end="202" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
<field name="Indirect Object Base Address" start="268" end="319" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Indirect Object MOCS" start="260" end="266" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
<field name="Instruction Base Address" start="332" end="383" type="address"/>
- <field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Instruction MOCS" start="324" end="330" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
<field name="General State Buffer Size" start="396" end="415" type="uint"/>
<field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
<field name="Instruction Buffer Size" start="492" end="511" type="uint"/>
<field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/>
<field name="Bindless Surface State Base Address" start="524" end="575" type="address"/>
- <field name="Bindless Surface State Memory Object Control State" start="516" end="522" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Bindless Surface State MOCS" start="516" end="522" type="uint"/>
<field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/>
<field name="Bindless Surface State Size" start="588" end="607" type="uint"/>
<field name="Bindless Sampler State Base Address" start="620" end="671" type="address"/>
- <field name="Bindless Sampler State Memory Object Control State" start="612" end="618" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Bindless Sampler State MOCS" start="612" end="618" type="uint"/>
<field name="Bindless Sampler State Base Address Modify Enable" start="608" end="608" type="bool"/>
<field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/>
</instruction>
<value name="VERTEXDATA" value="0"/>
<value name="INSTANCEDATA" value="1"/>
</field>
- <field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
+ <field name="MOCS" start="16" end="19" type="uint"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Vertex Fetch Invalidate" start="12" end="12" type="bool" default="0"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/>
<value name="VALIGN_4" value="1"/>
</field>
<field name="Y Offset" start="180" end="183" type="uint"/>
- <field name="Surface Object Control State" start="176" end="179" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="176" end="179" type="uint"/>
</struct>
<field name="Buffer 2 Valid" start="14" end="14" type="bool"/>
<field name="Buffer 1 Valid" start="13" end="13" type="bool"/>
<field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
- <field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="11" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Buffer 2 Valid" start="14" end="14" type="bool"/>
<field name="Buffer 1 Valid" start="13" end="13" type="bool"/>
<field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
- <field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="11" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Buffer 2 Valid" start="14" end="14" type="bool"/>
<field name="Buffer 1 Valid" start="13" end="13" type="bool"/>
<field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
- <field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="11" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Render Target View Extent" start="129" end="137" type="uint"/>
<field name="Depth Coordinate Offset Y" start="176" end="191" type="int"/>
<field name="Depth Coordinate Offset X" start="160" end="175" type="int"/>
- <field name="Depth Buffer Object Control State" start="219" end="223" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="219" end="223" type="uint"/>
+ <field name="MOCS" start="219" end="223" type="uint"/>
</instruction>
<instruction name="3DSTATE_DRAWING_RECTANGLE" bias="2" length="4" engine="render">
<field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="15"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="95" type="address"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
- <field name="Memory Object Control State" start="12" end="15" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="12" end="15" type="uint"/>
+ <field name="MOCS" start="12" end="15" type="uint"/>
<field name="Cut Index Enable" start="10" end="10" type="bool"/>
<field name="Index Format" start="8" end="9" type="uint" prefix="INDEX">
<value name="BYTE" value="0"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="14"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
- <field name="Stencil Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="95" type="address"/>
</instruction>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="8"/>
<field name="General State Base Address" start="44" end="63" type="address"/>
- <field name="General State Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="General State MOCS" start="40" end="43" type="uint"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="36" end="39" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="Stateless Data Port Access MOCS" start="36" end="39" type="uint"/>
<field name="Stateless Data Port Access Force Write Thru" start="35" end="35" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
<field name="Surface State Base Address" start="76" end="95" type="address"/>
- <field name="Surface State Memory Object Control State" start="72" end="75" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="Surface State MOCS" start="72" end="75" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="64" end="64" type="bool"/>
<field name="Dynamic State Base Address" start="108" end="127" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="104" end="107" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="Dynamic State MOCS" start="104" end="107" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="96" end="96" type="bool"/>
<field name="Indirect Object Base Address" start="140" end="159" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="136" end="139" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="Indirect Object MOCS" start="136" end="139" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Instruction Base Address" start="172" end="191" type="address"/>
- <field name="Instruction Memory Object Control State" start="168" end="171" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="Instruction MOCS" start="168" end="171" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="160" end="160" type="bool"/>
<field name="General State Access Upper Bound" start="204" end="223" type="address"/>
<group count="4" start="0" size="16">
<field name="Read Length" start="0" end="15" type="uint"/>
</group>
- <field name="Constant Buffer Object Control State" start="64" end="68" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="64" end="68" type="uint"/>
<group count="4" start="64" size="32">
<field name="Buffer" start="5" end="31" type="address"/>
</group>
<value name="VERTEXDATA" value="0"/>
<value name="INSTANCEDATA" value="1"/>
</field>
- <field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
+ <field name="MOCS" start="16" end="19" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Vertex Fetch Invalidate" start="12" end="12" type="bool" default="0"/>
<field name="Strbuf Minimum Array Element" start="128" end="154" type="uint"/>
<field name="X Offset" start="185" end="191" type="uint"/>
<field name="Y Offset" start="180" end="183" type="uint"/>
- <field name="Surface Object Control State" start="176" end="179" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="176" end="179" type="uint"/>
<field name="Surface Min LOD" start="164" end="167" type="uint"/>
<field name="MIP Count / LOD" start="160" end="163" type="uint"/>
<value name="SURFTYPE_CUBE (must be zero)" value="0"/>
</field>
<field name="Minimum Array Element" start="138" end="148" type="uint"/>
- <field name="Depth Buffer Object Control State" start="128" end="131" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="128" end="131" type="uint"/>
+ <field name="MOCS" start="128" end="131" type="uint"/>
<field name="Depth Coordinate Offset Y" start="176" end="191" type="int"/>
<field name="Depth Coordinate Offset X" start="160" end="175" type="int"/>
<field name="Render Target View Extent" start="213" end="223" type="uint"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="95" type="address"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
- <field name="Memory Object Control State" start="12" end="15" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="12" end="15" type="uint"/>
+ <field name="MOCS" start="12" end="15" type="uint"/>
<field name="Cut Index Enable" start="10" end="10" type="bool"/>
<field name="Index Format" start="8" end="9" type="uint" prefix="INDEX">
<value name="BYTE" value="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/>
- <field name="SO Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="SO Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="43" type="uint"/>
<field name="Surface Base Address" start="66" end="95" type="address"/>
<field name="Surface End Address" start="98" end="127" type="address"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
- <field name="Stencil Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="95" type="address"/>
</instruction>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="8"/>
<field name="General State Base Address" start="44" end="63" type="address"/>
- <field name="General State Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="36" end="39" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="General State MOCS" start="40" end="43" type="uint"/>
+ <field name="Stateless Data Port Access MOCS" start="36" end="39" type="uint"/>
<field name="Stateless Data Port Access Force Write Thru" start="35" end="35" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
<field name="Surface State Base Address" start="76" end="95" type="address"/>
- <field name="Surface State Memory Object Control State" start="72" end="75" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Surface State MOCS" start="72" end="75" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="64" end="64" type="bool"/>
<field name="Dynamic State Base Address" start="108" end="127" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="104" end="107" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Dynamic State MOCS" start="104" end="107" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="96" end="96" type="bool"/>
<field name="Indirect Object Base Address" start="140" end="159" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="136" end="139" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Indirect Object MOCS" start="136" end="139" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Instruction Base Address" start="172" end="191" type="address"/>
- <field name="Instruction Memory Object Control State" start="168" end="171" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Instruction MOCS" start="168" end="171" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="160" end="160" type="bool"/>
<field name="General State Access Upper Bound" start="204" end="223" type="address"/>
<field name="General State Access Upper Bound Modify Enable" start="192" end="192" type="bool"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
<field name="DWord Length" start="0" end="7" type="uint" default="0"/>
<field name="SW Tessellation Base Address" start="44" end="63" type="address"/>
- <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="SW Tessellation MOCS" start="40" end="43" type="uint"/>
</instruction>
<register name="IA_VERTICES_COUNT" length="2" num="0x2310">
<group count="4" start="0" size="16">
<field name="Read Length" start="0" end="15" type="uint"/>
</group>
- <field name="Constant Buffer Object Control State" start="64" end="68" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="64" end="68" type="uint"/>
<group count="4" start="64" size="32">
<field name="Buffer" start="5" end="31" type="address"/>
</group>
<value name="VERTEXDATA" value="0"/>
<value name="INSTANCEDATA" value="1"/>
</field>
- <field name="Vertex Buffer Memory Object Control State" start="16" end="19" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="19" type="uint"/>
+ <field name="MOCS" start="16" end="19" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Vertex Fetch Invalidate" start="12" end="12" type="bool" default="0"/>
<field name="Strbuf Minimum Array Element" start="128" end="154" type="uint"/>
<field name="X Offset" start="185" end="191" type="uint"/>
<field name="Y Offset" start="180" end="183" type="uint"/>
- <field name="Surface Object Control State" start="176" end="179" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="176" end="179" type="uint"/>
<field name="Surface Min LOD" start="164" end="167" type="uint"/>
<field name="MIP Count / LOD" start="160" end="163" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
<field name="Binding Table Pool Base Address" start="44" end="63" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
- <field name="Surface Object Control State" start="39" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="39" end="42" type="uint"/>
<field name="Binding Table Pool Upper Bound" start="76" end="95" type="address"/>
</instruction>
<value name="SURFTYPE_CUBE (must be zero)" value="0"/>
</field>
<field name="Minimum Array Element" start="138" end="148" type="uint"/>
- <field name="Depth Buffer Object Control State" start="128" end="131" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="128" end="131" type="uint"/>
+ <field name="MOCS" start="128" end="131" type="uint"/>
<field name="Depth Coordinate Offset Y" start="176" end="191" type="int"/>
<field name="Depth Coordinate Offset X" start="160" end="175" type="int"/>
<field name="Render Target View Extent" start="213" end="223" type="uint"/>
<field name="Gather Pool Base Address" start="44" end="63" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/>
<field start="36" end="37" type="mbo"/>
- <field name="Memory Object Control State" start="32" end="35" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="35" type="uint"/>
<field name="Gather Pool Upper Bound" start="76" end="95" type="address"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="95" type="address"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
- <field name="Memory Object Control State" start="12" end="15" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="12" end="15" type="uint"/>
+ <field name="MOCS" start="12" end="15" type="uint"/>
<field name="Index Format" start="8" end="9" type="uint" prefix="INDEX">
<value name="BYTE" value="0"/>
<value name="WORD" value="1"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/>
- <field name="SO Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="SO Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="43" type="uint"/>
<field name="Surface Base Address" start="66" end="95" type="address"/>
<field name="Surface End Address" start="98" end="127" type="address"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="1"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
- <field name="Stencil Buffer Object Control State" start="57" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="57" end="60" type="uint"/>
+ <field name="MOCS" start="57" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="95" type="address"/>
</instruction>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="8"/>
<field name="General State Base Address" start="44" end="63" type="address"/>
- <field name="General State Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="36" end="39" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="General State MOCS" start="40" end="43" type="uint"/>
+ <field name="Stateless Data Port Access MOCS" start="36" end="39" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
<field name="Surface State Base Address" start="76" end="95" type="address"/>
- <field name="Surface State Memory Object Control State" start="72" end="75" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Surface State MOCS" start="72" end="75" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="64" end="64" type="bool"/>
<field name="Dynamic State Base Address" start="108" end="127" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="104" end="107" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Dynamic State MOCS" start="104" end="107" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="96" end="96" type="bool"/>
<field name="Indirect Object Base Address" start="140" end="159" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="136" end="139" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Indirect Object MOCS" start="136" end="139" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Instruction Base Address" start="172" end="191" type="address"/>
- <field name="Instruction Memory Object Control State" start="168" end="171" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Instruction MOCS" start="168" end="171" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="160" end="160" type="bool"/>
<field name="General State Access Upper Bound" start="204" end="223" type="address"/>
<field name="General State Access Upper Bound Modify Enable" start="192" end="192" type="bool"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
<field name="DWord Length" start="0" end="7" type="uint" default="0"/>
<field name="SW Tessellation Base Address" start="44" end="63" type="address"/>
- <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="SW Tessellation MOCS" start="40" end="43" type="uint"/>
</instruction>
<register name="IA_VERTICES_COUNT" length="2" num="0x2310">
<struct name="VERTEX_BUFFER_STATE" length="4">
<field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
- <field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+ <field name="MOCS" start="16" end="22" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/>
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
- <field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="56" end="62" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="Surface QPitch" start="32" end="46" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
- <field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
<value name="No Valid Data" value="0"/>
</field>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="LOD" start="128" end="131" type="uint"/>
<field name="Depth" start="181" end="191" type="uint"/>
<field name="Minimum Array Element" start="170" end="180" type="uint"/>
- <field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+ <field name="MOCS" start="160" end="166" type="uint"/>
<field name="Render Target View Extent" start="245" end="255" type="uint"/>
<field name="Surface QPitch" start="224" end="238" type="uint"/>
</instruction>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Gather Pool Base Address" start="44" end="95" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+ <field name="MOCS" start="57" end="63" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<value name="WORD" value="1"/>
<value name="DWORD" value="2"/>
</field>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Buffer Starting Address" start="64" end="127" type="address"/>
<field name="Buffer Size" start="128" end="159" type="uint"/>
</instruction>
<field name="DWord Length" start="0" end="7" type="uint" default="6"/>
<field name="SO Buffer Enable" start="63" end="63" type="bool"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/>
- <field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
<field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
<field name="Surface Base Address" start="66" end="111" type="address"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
- <field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="14"/>
<field name="General State Base Address" start="44" end="95" type="address"/>
- <field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="General State MOCS" start="36" end="42" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint"/>
<field name="Surface State Base Address" start="140" end="191" type="address"/>
- <field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Surface State MOCS" start="132" end="138" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Dynamic State Base Address" start="204" end="255" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Dynamic State MOCS" start="196" end="202" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
<field name="Indirect Object Base Address" start="268" end="319" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Indirect Object MOCS" start="260" end="266" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
<field name="Instruction Base Address" start="332" end="383" type="address"/>
- <field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Instruction MOCS" start="324" end="330" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
<field name="General State Buffer Size" start="396" end="415" type="uint"/>
<field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
<field name="DWord Length" start="0" end="7" type="uint" default="0"/>
<field name="SW Tessellation Base Address" start="44" end="79" type="address"/>
- <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="SW Tessellation MOCS" start="40" end="43" type="uint"/>
</instruction>
<register name="IA_VERTICES_COUNT" length="2" num="0x2310">
<field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
</struct>
- <struct name="MEMORY_OBJECT_CONTROL_STATE" length="1">
- <field name="Index to MOCS Tables" start="1" end="6" type="uint"/>
- </struct>
-
<struct name="VERTEX_BUFFER_STATE" length="4">
<field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
- <field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
+ <field name="MOCS" start="16" end="22" type="uint"/>
<field name="Address Modify Enable" start="14" end="14" type="bool"/>
<field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
<field name="Buffer Pitch" start="0" end="11" type="uint"/>
<field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
<field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
<field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
- <field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
<field name="MOCS" start="56" end="62" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="Surface QPitch" start="32" end="46" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
<field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
- <field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
<value name="No Valid Data" value="0"/>
</field>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
- <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="8" end="14" type="uint"/>
<field name="DWord Length" start="0" end="7" type="uint" default="9"/>
<field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
</instruction>
<field name="LOD" start="128" end="131" type="uint"/>
<field name="Depth" start="181" end="191" type="uint"/>
<field name="Minimum Array Element" start="170" end="180" type="uint"/>
- <field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
+ <field name="MOCS" start="160" end="166" type="uint"/>
<field name="Tiled Resource Mode" start="222" end="223" type="uint">
<value name="NONE" value="0"/>
<value name="TILEYF" value="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="2"/>
<field name="Gather Pool Base Address" start="44" end="95" type="address"/>
<field name="Gather Pool Enable" start="43" end="43" type="bool"/>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
</instruction>
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
- <field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
+ <field name="MOCS" start="57" end="63" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<value name="WORD" value="1"/>
<value name="DWORD" value="2"/>
</field>
- <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
+ <field name="MOCS" start="32" end="38" type="uint"/>
<field name="Buffer Starting Address" start="64" end="127" type="address"/>
<field name="Buffer Size" start="128" end="159" type="uint"/>
</instruction>
<field name="DWord Length" start="0" end="7" type="uint" default="6"/>
<field name="SO Buffer Enable" start="63" end="63" type="bool"/>
<field name="SO Buffer Index" start="61" end="62" type="uint"/>
- <field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
<field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
<field name="Surface Base Address" start="66" end="111" type="address"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
<field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
- <field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
+ <field name="MOCS" start="54" end="60" type="uint"/>
<field name="Surface Pitch" start="32" end="48" type="uint"/>
<field name="Surface Base Address" start="64" end="127" type="address"/>
<field name="Surface QPitch" start="128" end="142" type="uint"/>
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
<field name="DWord Length" start="0" end="7" type="uint" default="17"/>
<field name="General State Base Address" start="44" end="95" type="address"/>
- <field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="General State MOCS" start="36" end="42" type="uint"/>
<field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
- <field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint"/>
<field name="Surface State Base Address" start="140" end="191" type="address"/>
- <field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Surface State MOCS" start="132" end="138" type="uint"/>
<field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
<field name="Dynamic State Base Address" start="204" end="255" type="address"/>
- <field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Dynamic State MOCS" start="196" end="202" type="uint"/>
<field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
<field name="Indirect Object Base Address" start="268" end="319" type="address"/>
- <field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Indirect Object MOCS" start="260" end="266" type="uint"/>
<field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
<field name="Instruction Base Address" start="332" end="383" type="address"/>
- <field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Instruction MOCS" start="324" end="330" type="uint"/>
<field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
<field name="General State Buffer Size" start="396" end="415" type="uint"/>
<field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
<field name="Instruction Buffer Size" start="492" end="511" type="uint"/>
<field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/>
<field name="Bindless Surface State Base Address" start="524" end="575" type="address"/>
- <field name="Bindless Surface State Memory Object Control State" start="516" end="522" type="MEMORY_OBJECT_CONTROL_STATE"/>
+ <field name="Bindless Surface State MOCS" start="516" end="522" type="uint"/>
<field name="Bindless Surface State Base Address Modify Enable" start="512" end="512" type="bool"/>
<field name="Bindless Surface State Size" start="588" end="607" type="uint"/>
</instruction>
#endif
db.SurfaceBaseAddress = info->depth_address;
#if GEN_GEN >= 6
- db.DepthBufferMOCS = info->mocs;
+ db.MOCS = info->mocs;
#endif
#if GEN_GEN <= 6
#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
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:
_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;
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,
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;
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)
# 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
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,
.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
.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
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
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
#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
};
*/
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);
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 =