intel/genxml: Add engine definition to render engine instructions (gen75)
authorToni Lönnberg <toni.lonnberg@intel.com>
Thu, 8 Nov 2018 15:23:08 +0000 (17:23 +0200)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 13 Nov 2018 15:10:12 +0000 (15:10 +0000)
Instructions meant for the render engine now have a definition specifying that
so that can differentiate instructions meant for different engines due to shared
opcodes.

v2: Divided into individual patches for each gen

v3: Added additional engine definitions.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/genxml/gen75.xml

index dfc3d8914982ae0bb5c84b8f1f279ea018e35d23..6ce31b4924135e7e1d95625aa2c01b23ca059bab 100644 (file)
     </field>
   </struct>
 
-  <instruction name="3DPRIMITIVE" bias="2" length="7">
+  <instruction name="3DPRIMITIVE" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="3"/>
     <field name="Base Vertex Location" start="192" end="223" type="int"/>
   </instruction>
 
-  <instruction name="3DSTATE_AA_LINE_PARAMETERS" bias="2" length="3">
+  <instruction name="3DSTATE_AA_LINE_PARAMETERS" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="AA Coverage EndCap Slope" start="64" end="71" type="u0.8"/>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_EDIT_DS" bias="2">
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_DS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_EDIT_GS" bias="2">
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_GS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_EDIT_HS" bias="2">
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_HS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_EDIT_PS" bias="2">
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_PS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_EDIT_VS" bias="2">
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_VS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_DS" bias="2" length="2">
+  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_DS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to DS Binding Table" start="37" end="47" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_GS" bias="2" length="2">
+  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_GS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to GS Binding Table" start="37" end="47" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_HS" bias="2" length="2">
+  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_HS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to HS Binding Table" start="37" end="47" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_PS" bias="2" length="2">
+  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_PS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to PS Binding Table" start="37" end="47" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_VS" bias="2" length="2">
+  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_VS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to VS Binding Table" start="37" end="47" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_BINDING_TABLE_POOL_ALLOC" bias="2" length="3">
+  <instruction name="3DSTATE_BINDING_TABLE_POOL_ALLOC" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Binding Table Pool Upper Bound" start="76" end="95" type="address"/>
   </instruction>
 
-  <instruction name="3DSTATE_BLEND_STATE_POINTERS" bias="2" length="2">
+  <instruction name="3DSTATE_BLEND_STATE_POINTERS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field start="32" end="32" type="mbo"/>
   </instruction>
 
-  <instruction name="3DSTATE_CC_STATE_POINTERS" bias="2" length="2">
+  <instruction name="3DSTATE_CC_STATE_POINTERS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field start="32" end="32" type="mbo"/>
   </instruction>
 
-  <instruction name="3DSTATE_CHROMA_KEY" bias="2" length="4">
+  <instruction name="3DSTATE_CHROMA_KEY" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="ChromaKey High Value" start="96" end="127" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_CLEAR_PARAMS" bias="2" length="3">
+  <instruction name="3DSTATE_CLEAR_PARAMS" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Depth Clear Value Valid" start="64" end="64" type="bool"/>
   </instruction>
 
-  <instruction name="3DSTATE_CLIP" bias="2" length="4">
+  <instruction name="3DSTATE_CLIP" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Maximum VP Index" start="96" end="99" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_CONSTANT_DS" bias="2" length="7">
+  <instruction name="3DSTATE_CONSTANT_DS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Constant Body" start="32" end="223" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
 
-  <instruction name="3DSTATE_CONSTANT_GS" bias="2" length="7">
+  <instruction name="3DSTATE_CONSTANT_GS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Constant Body" start="32" end="223" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
 
-  <instruction name="3DSTATE_CONSTANT_HS" bias="2" length="7">
+  <instruction name="3DSTATE_CONSTANT_HS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Constant Body" start="32" end="223" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
 
-  <instruction name="3DSTATE_CONSTANT_PS" bias="2" length="7">
+  <instruction name="3DSTATE_CONSTANT_PS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Constant Body" start="32" end="223" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
 
-  <instruction name="3DSTATE_CONSTANT_VS" bias="2" length="7">
+  <instruction name="3DSTATE_CONSTANT_VS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Constant Body" start="32" end="223" type="3DSTATE_CONSTANT_BODY"/>
   </instruction>
 
-  <instruction name="3DSTATE_DEPTH_BUFFER" bias="2" length="7">
+  <instruction name="3DSTATE_DEPTH_BUFFER" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Render Target View Extent" start="213" end="223" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_DEPTH_STENCIL_STATE_POINTERS" bias="2" length="2">
+  <instruction name="3DSTATE_DEPTH_STENCIL_STATE_POINTERS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field start="32" end="32" type="mbo"/>
   </instruction>
 
-  <instruction name="3DSTATE_DRAWING_RECTANGLE" bias="2" length="4">
+  <instruction name="3DSTATE_DRAWING_RECTANGLE" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Drawing Rectangle Origin X" start="96" end="111" type="int"/>
   </instruction>
 
-  <instruction name="3DSTATE_DS" bias="2" length="6">
+  <instruction name="3DSTATE_DS" bias="2" length="6" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Enable" start="160" end="160" type="bool"/>
   </instruction>
 
-  <instruction name="3DSTATE_GATHER_CONSTANT_DS" bias="2">
+  <instruction name="3DSTATE_GATHER_CONSTANT_DS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_GATHER_CONSTANT_GS" bias="2">
+  <instruction name="3DSTATE_GATHER_CONSTANT_GS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_GATHER_CONSTANT_HS" bias="2">
+  <instruction name="3DSTATE_GATHER_CONSTANT_HS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_GATHER_CONSTANT_PS" bias="2">
+  <instruction name="3DSTATE_GATHER_CONSTANT_PS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_GATHER_CONSTANT_VS" bias="2">
+  <instruction name="3DSTATE_GATHER_CONSTANT_VS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_GATHER_POOL_ALLOC" bias="2" length="3">
+  <instruction name="3DSTATE_GATHER_POOL_ALLOC" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Gather Pool Upper Bound" start="76" end="95" type="address"/>
   </instruction>
 
-  <instruction name="3DSTATE_GS" bias="2" length="7">
+  <instruction name="3DSTATE_GS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Semaphore Handle" start="192" end="204" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_HIER_DEPTH_BUFFER" bias="2" length="3">
+  <instruction name="3DSTATE_HIER_DEPTH_BUFFER" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
 
-  <instruction name="3DSTATE_HS" bias="2" length="7">
+  <instruction name="3DSTATE_HS" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Semaphore Handle" start="192" end="204" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_INDEX_BUFFER" bias="2" length="3">
+  <instruction name="3DSTATE_INDEX_BUFFER" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Buffer Ending Address" start="64" end="95" type="address"/>
   </instruction>
 
-  <instruction name="3DSTATE_LINE_STIPPLE" bias="2" length="3">
+  <instruction name="3DSTATE_LINE_STIPPLE" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Line Stipple Repeat Count" start="64" end="72" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_MONOFILTER_SIZE" bias="2" length="2">
+  <instruction name="3DSTATE_MONOFILTER_SIZE" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Monochrome Filter Height" start="32" end="34" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_MULTISAMPLE" bias="2" length="4">
+  <instruction name="3DSTATE_MULTISAMPLE" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Sample4 Y Offset" start="96" end="99" type="u0.4"/>
   </instruction>
 
-  <instruction name="3DSTATE_POLY_STIPPLE_OFFSET" bias="2" length="2">
+  <instruction name="3DSTATE_POLY_STIPPLE_OFFSET" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Polygon Stipple Y Offset" start="32" end="36" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_POLY_STIPPLE_PATTERN" bias="2" length="33">
+  <instruction name="3DSTATE_POLY_STIPPLE_PATTERN" bias="2" length="33" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_PS" bias="2" length="8">
+  <instruction name="3DSTATE_PS" bias="2" length="8" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Kernel Start Pointer 2" start="230" end="255" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_DS" bias="2" length="2">
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_DS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_GS" bias="2" length="2">
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_GS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_HS" bias="2" length="2">
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_HS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_PS" bias="2" length="2">
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_PS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_VS" bias="2" length="2">
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_VS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_RAST_MULTISAMPLE" bias="2" length="6">
+  <instruction name="3DSTATE_RAST_MULTISAMPLE" bias="2" length="6" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Sample12 Y Offset" start="160" end="163" type="u0.4"/>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD0" bias="2">
+  <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD0" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD1" bias="2">
+  <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD1" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_DS" bias="2" length="2">
+  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_DS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to DS Sampler State" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_GS" bias="2" length="2">
+  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_GS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to GS Sampler State" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_HS" bias="2" length="2">
+  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_HS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to HS Sampler State" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_PS" bias="2" length="2">
+  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_PS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to PS Sampler State" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_VS" bias="2" length="2">
+  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_VS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Pointer to VS Sampler State" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_SAMPLE_MASK" bias="2" length="2">
+  <instruction name="3DSTATE_SAMPLE_MASK" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Sample Mask" start="32" end="39" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_SBE" bias="2" length="14">
+  <instruction name="3DSTATE_SBE" bias="2" length="14" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Attribute 8 WrapShortest Enables" start="416" end="419" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_SCISSOR_STATE_POINTERS" bias="2" length="2">
+  <instruction name="3DSTATE_SCISSOR_STATE_POINTERS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Scissor Rect Pointer" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_SF" bias="2" length="7">
+  <instruction name="3DSTATE_SF" bias="2" length="7" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Global Depth Offset Clamp" start="192" end="223" type="float"/>
   </instruction>
 
-  <instruction name="3DSTATE_SO_BUFFER" bias="2" length="4">
+  <instruction name="3DSTATE_SO_BUFFER" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Surface End Address" start="98" end="127" type="address"/>
   </instruction>
 
-  <instruction name="3DSTATE_SO_DECL_LIST" bias="2">
+  <instruction name="3DSTATE_SO_DECL_LIST" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_STENCIL_BUFFER" bias="2" length="3">
+  <instruction name="3DSTATE_STENCIL_BUFFER" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Surface Base Address" start="64" end="95" type="address"/>
   </instruction>
 
-  <instruction name="3DSTATE_STREAMOUT" bias="2" length="3">
+  <instruction name="3DSTATE_STREAMOUT" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Stream 0 Vertex Read Length" start="64" end="68" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_TE" bias="2" length="4">
+  <instruction name="3DSTATE_TE" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Maximum Tessellation Factor Not Odd" start="96" end="127" type="float"/>
   </instruction>
 
-  <instruction name="3DSTATE_URB_DS" bias="2" length="2">
+  <instruction name="3DSTATE_URB_DS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="DS Number of URB Entries" start="32" end="47" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_URB_GS" bias="2" length="2">
+  <instruction name="3DSTATE_URB_GS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="GS Number of URB Entries" start="32" end="47" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_URB_HS" bias="2" length="2">
+  <instruction name="3DSTATE_URB_HS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="HS Number of URB Entries" start="32" end="47" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_URB_VS" bias="2" length="2">
+  <instruction name="3DSTATE_URB_VS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="VS Number of URB Entries" start="32" end="47" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_VERTEX_BUFFERS" bias="2">
+  <instruction name="3DSTATE_VERTEX_BUFFERS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_VERTEX_ELEMENTS" bias="2">
+  <instruction name="3DSTATE_VERTEX_ELEMENTS" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </group>
   </instruction>
 
-  <instruction name="3DSTATE_VF" bias="2" length="2">
+  <instruction name="3DSTATE_VF" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Cut Index" start="32" end="63" type="uint"/>
   </instruction>
 
-  <instruction name="3DSTATE_VF_STATISTICS" bias="1" length="1">
+  <instruction name="3DSTATE_VF_STATISTICS" bias="1" length="1" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="1"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Statistics Enable" start="0" end="0" type="bool"/>
   </instruction>
 
-  <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_CC" bias="2" length="2">
+  <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_CC" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="CC Viewport Pointer" start="37" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP" bias="2" length="2">
+  <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="SF Clip Viewport Pointer" start="38" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="3DSTATE_VS" bias="2" length="6">
+  <instruction name="3DSTATE_VS" bias="2" length="6" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Enable" start="160" end="160" type="bool"/>
   </instruction>
 
-  <instruction name="3DSTATE_WM" bias="2" length="3">
+  <instruction name="3DSTATE_WM" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     </field>
   </instruction>
 
-  <instruction name="GPGPU_CSR_BASE_ADDRESS" bias="2" length="2">
+  <instruction name="GPGPU_CSR_BASE_ADDRESS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="GPGPU CSR Base Address" start="44" end="63" type="address"/>
   </instruction>
 
-  <instruction name="GPGPU_OBJECT" bias="2" length="8">
+  <instruction name="GPGPU_OBJECT" bias="2" length="8" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Execution Mask" start="224" end="255" type="uint"/>
   </instruction>
 
-  <instruction name="GPGPU_WALKER" bias="2" length="11">
+  <instruction name="GPGPU_WALKER" bias="2" length="11" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Bottom Execution Mask" start="320" end="351" type="uint"/>
   </instruction>
 
-  <instruction name="MEDIA_CURBE_LOAD" bias="2" length="4">
+  <instruction name="MEDIA_CURBE_LOAD" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="CURBE Data Start Address" start="96" end="127" type="uint"/>
   </instruction>
 
-  <instruction name="MEDIA_INTERFACE_DESCRIPTOR_LOAD" bias="2" length="4">
+  <instruction name="MEDIA_INTERFACE_DESCRIPTOR_LOAD" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Interface Descriptor Data Start Address" start="96" end="127" type="offset"/>
   </instruction>
 
-  <instruction name="MEDIA_OBJECT" bias="2">
+  <instruction name="MEDIA_OBJECT" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Media Command Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="MEDIA_OBJECT_PRT" bias="2" length="16">
+  <instruction name="MEDIA_OBJECT_PRT" bias="2" length="16" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="MEDIA_OBJECT_WALKER" bias="2">
+  <instruction name="MEDIA_OBJECT_WALKER" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
     </group>
   </instruction>
 
-  <instruction name="MEDIA_STATE_FLUSH" bias="2" length="2">
+  <instruction name="MEDIA_STATE_FLUSH" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
   </instruction>
 
-  <instruction name="MEDIA_VFE_STATE" bias="2" length="8">
+  <instruction name="MEDIA_VFE_STATE" bias="2" length="8" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Batch Buffer Start Address" start="34" end="63" type="address"/>
   </instruction>
 
-  <instruction name="MI_CLFLUSH" bias="2">
+  <instruction name="MI_CLFLUSH" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="39"/>
     <field name="Use Global GTT" start="22" end="22" type="bool"/>
     <field name="Compare Address" start="67" end="95" type="address"/>
   </instruction>
 
-  <instruction name="MI_FLUSH" bias="1" length="1">
+  <instruction name="MI_FLUSH" bias="1" length="1" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="4"/>
     <field name="Indirect State Pointers Disable" start="5" end="5" type="bool"/>
     <field name="Destination Register Address" start="66" end="86" type="offset"/>
   </instruction>
 
-  <instruction name="MI_LOAD_SCAN_LINES_EXCL" bias="2" length="2">
+  <instruction name="MI_LOAD_SCAN_LINES_EXCL" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="19"/>
     <field name="Display (Plane) Select" start="19" end="21" type="uint">
     <field name="End Scan Line Number" start="32" end="44" type="uint"/>
   </instruction>
 
-  <instruction name="MI_LOAD_SCAN_LINES_INCL" bias="2" length="2">
+  <instruction name="MI_LOAD_SCAN_LINES_INCL" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="18"/>
     <field name="Display (Plane) Select" start="19" end="21" type="uint">
     <field name="Memory Address" start="70" end="95" type="address"/>
   </instruction>
 
-  <instruction name="MI_MATH" bias="2">
+  <instruction name="MI_MATH" bias="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="26"/>
     <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="7"/>
   </instruction>
 
-  <instruction name="MI_REPORT_PERF_COUNT" bias="2" length="3">
+  <instruction name="MI_REPORT_PERF_COUNT" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="40"/>
     <field name="DWord Length" start="0" end="5" type="uint" default="1"/>
     <field name="Report ID" start="64" end="95" type="uint"/>
   </instruction>
 
-  <instruction name="MI_RS_CONTEXT" bias="1" length="1">
+  <instruction name="MI_RS_CONTEXT" bias="1" length="1" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="15"/>
     <field name="Resource Streamer Save" start="0" end="0" type="uint" prefix="RS">
     </field>
   </instruction>
 
-  <instruction name="MI_RS_CONTROL" bias="1" length="1">
+  <instruction name="MI_RS_CONTROL" bias="1" length="1" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="6"/>
     <field name="Resource Streamer Control" start="0" end="0" type="uint" prefix="RS">
     </field>
   </instruction>
 
-  <instruction name="MI_RS_STORE_DATA_IMM" bias="2" length="4">
+  <instruction name="MI_RS_STORE_DATA_IMM" bias="2" length="4" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="43"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
     <field name="Semaphore Data Dword" start="32" end="63" type="uint"/>
   </instruction>
 
-  <instruction name="MI_SET_CONTEXT" bias="2" length="2">
+  <instruction name="MI_SET_CONTEXT" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="24"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
     <field name="Memory Address" start="66" end="95" type="address"/>
   </instruction>
 
-  <instruction name="MI_STORE_URB_MEM" bias="2" length="3">
+  <instruction name="MI_STORE_URB_MEM" bias="2" length="3" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="45"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
     <field name="Topology Filter Value" start="0" end="5" type="3D_Prim_Topo_Type"/>
   </instruction>
 
-  <instruction name="MI_URB_ATOMIC_ALLOC" bias="1" length="1">
+  <instruction name="MI_URB_ATOMIC_ALLOC" bias="1" length="1" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="9"/>
     <field name="URB Atomic Storage Offset" start="12" end="19" type="uint"/>
     <field name="URB Atomic Storage Size" start="0" end="8" type="uint"/>
   </instruction>
 
-  <instruction name="MI_URB_CLEAR" bias="2" length="2">
+  <instruction name="MI_URB_CLEAR" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="25"/>
     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="2"/>
   </instruction>
 
-  <instruction name="MI_WAIT_FOR_EVENT" bias="1" length="1">
+  <instruction name="MI_WAIT_FOR_EVENT" bias="1" length="1" engine="render|blitter">
     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
     <field name="MI Command Opcode" start="23" end="28" type="uint" default="3"/>
     <field name="Display Pipe C Horizontal Blank Wait Enable" start="22" end="22" type="bool"/>
     <field name="Display Pipe A Scan Line Wait Enable" start="0" end="0" type="bool"/>
   </instruction>
 
-  <instruction name="PIPELINE_SELECT" bias="1" length="1">
+  <instruction name="PIPELINE_SELECT" bias="1" length="1" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="1"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     </field>
   </instruction>
 
-  <instruction name="PIPE_CONTROL" bias="2" length="5">
+  <instruction name="PIPE_CONTROL" bias="2" length="5" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="2"/>
     <field name="Immediate Data" start="96" end="159" type="uint"/>
   </instruction>
 
-  <instruction name="STATE_BASE_ADDRESS" bias="2" length="10">
+  <instruction name="STATE_BASE_ADDRESS" bias="2" length="10" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="Instruction Access Upper Bound Modify Enable" start="288" end="288" type="bool"/>
   </instruction>
 
-  <instruction name="STATE_PREFETCH" bias="2" length="2">
+  <instruction name="STATE_PREFETCH" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
     <field name="Prefetch Count" start="32" end="34" type="uint"/>
   </instruction>
 
-  <instruction name="STATE_SIP" bias="2" length="2">
+  <instruction name="STATE_SIP" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
     <field name="System Instruction Pointer" start="36" end="63" type="offset"/>
   </instruction>
 
-  <instruction name="SWTESS_BASE_ADDRESS" bias="2" length="2">
+  <instruction name="SWTESS_BASE_ADDRESS" bias="2" length="2" engine="render">
     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>