i965/genxml: Add gen10.xml
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 11 May 2017 21:16:44 +0000 (14:16 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Fri, 9 Jun 2017 23:00:49 +0000 (16:00 -0700)
V2(Anuj):
Add default value for length of 3DPRIMITIVE command
Add values for 'Attribute Active Component Format'
Rename few fields to match gen9.xml

V3 (Ander Conselvan de Oliveira)
Add gen10 alias for MOCS
Make 3DSTATE_CONSTANT_BODY on Gen10 use arrays

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Tested-by: Anuj Phogat <anuj.phogat@gmail.com>
src/intel/genxml/gen10.xml [new file with mode: 0644]

diff --git a/src/intel/genxml/gen10.xml b/src/intel/genxml/gen10.xml
new file mode 100644 (file)
index 0000000..ebeb5da
--- /dev/null
@@ -0,0 +1,3562 @@
+<?xml version="1.0" ?>
+<genxml name="CNL" gen="10">
+  <enum name="3D_Prim_Topo_Type" prefix="3DPRIM">
+    <value name="POINTLIST" value="1"/>
+    <value name="LINELIST" value="2"/>
+    <value name="LINESTRIP" value="3"/>
+    <value name="TRILIST" value="4"/>
+    <value name="TRISTRIP" value="5"/>
+    <value name="TRIFAN" value="6"/>
+    <value name="QUADLIST" value="7"/>
+    <value name="QUADSTRIP" value="8"/>
+    <value name="LINELIST_ADJ" value="9"/>
+    <value name="LINESTRIP_ADJ" value="10"/>
+    <value name="TRILIST_ADJ" value="11"/>
+    <value name="TRISTRIP_ADJ" value="12"/>
+    <value name="TRISTRIP_REVERSE" value="13"/>
+    <value name="POLYGON" value="14"/>
+    <value name="RECTLIST" value="15"/>
+    <value name="LINELOOP" value="16"/>
+    <value name="POINTLIST _BF" value="17"/>
+    <value name="LINESTRIP_CONT" value="18"/>
+    <value name="LINESTRIP_BF" value="19"/>
+    <value name="LINESTRIP_CONT_BF" value="20"/>
+    <value name="TRIFAN_NOSTIPPLE" value="22"/>
+    <value name="PATCHLIST_1" value="32"/>
+    <value name="PATCHLIST_2" value="33"/>
+    <value name="PATCHLIST_3" value="34"/>
+    <value name="PATCHLIST_4" value="35"/>
+    <value name="PATCHLIST_5" value="36"/>
+    <value name="PATCHLIST_6" value="37"/>
+    <value name="PATCHLIST_7" value="38"/>
+    <value name="PATCHLIST_8" value="39"/>
+    <value name="PATCHLIST_9" value="40"/>
+    <value name="PATCHLIST_10" value="41"/>
+    <value name="PATCHLIST_11" value="42"/>
+    <value name="PATCHLIST_12" value="43"/>
+    <value name="PATCHLIST_13" value="44"/>
+    <value name="PATCHLIST_14" value="45"/>
+    <value name="PATCHLIST_15" value="46"/>
+    <value name="PATCHLIST_16" value="47"/>
+    <value name="PATCHLIST_17" value="48"/>
+    <value name="PATCHLIST_18" value="49"/>
+    <value name="PATCHLIST_19" value="50"/>
+    <value name="PATCHLIST_20" value="51"/>
+    <value name="PATCHLIST_21" value="52"/>
+    <value name="PATCHLIST_22" value="53"/>
+    <value name="PATCHLIST_23" value="54"/>
+    <value name="PATCHLIST_24" value="55"/>
+    <value name="PATCHLIST_25" value="56"/>
+    <value name="PATCHLIST_26" value="57"/>
+    <value name="PATCHLIST_27" value="58"/>
+    <value name="PATCHLIST_28" value="59"/>
+    <value name="PATCHLIST_29" value="60"/>
+    <value name="PATCHLIST_30" value="61"/>
+    <value name="PATCHLIST_31" value="62"/>
+    <value name="PATCHLIST_32" value="63"/>
+  </enum>
+
+  <enum name="3D_Vertex_Component_Control" prefix="VFCOMP">
+    <value name="NOSTORE" value="0"/>
+    <value name="STORE_SRC" value="1"/>
+    <value name="STORE_0" value="2"/>
+    <value name="STORE_1_FP" value="3"/>
+    <value name="STORE_1_INT" value="4"/>
+    <value name="STORE_PID" value="7"/>
+  </enum>
+
+  <enum name="COMPONENT_ENABLES" prefix="CE">
+    <value name="NONE" value="0"/>
+    <value name="X" value="1"/>
+    <value name="Y" value="2"/>
+    <value name="XY" value="3"/>
+    <value name="Z" value="4"/>
+    <value name="XZ" value="5"/>
+    <value name="YZ" value="6"/>
+    <value name="XYZ" value="7"/>
+    <value name="W" value="8"/>
+    <value name="XW" value="9"/>
+    <value name="YW" value="10"/>
+    <value name="XYW" value="11"/>
+    <value name="ZW" value="12"/>
+    <value name="XZW" value="13"/>
+    <value name="YZW" value="14"/>
+    <value name="XYZW" value="15"/>
+  </enum>
+
+  <enum name="Attribute_Component_Format" prefix="ACF">
+    <value name="disabled" value="0"/>
+    <value name=".xy" value="1"/>
+    <value name=".xyz" value="2"/>
+    <value name=".xyzw" value="3"/>
+  </enum>
+
+  <enum name="WRAP_SHORTEST_ENABLE" prefix="WSE">
+    <value name="X" value="1"/>
+    <value name="Y" value="2"/>
+    <value name="XY" value="3"/>
+    <value name="Z" value="4"/>
+    <value name="XZ" value="5"/>
+    <value name="YZ" value="6"/>
+    <value name="XYZ" value="7"/>
+    <value name="W" value="8"/>
+    <value name="XW" value="9"/>
+    <value name="YW" value="10"/>
+    <value name="XYW" value="11"/>
+    <value name="ZW" value="12"/>
+    <value name="XZW" value="13"/>
+    <value name="YZW" value="14"/>
+    <value name="XYZW" value="15"/>
+  </enum>
+
+  <enum name="3D_Stencil_Operation" prefix="STENCILOP">
+    <value name="KEEP" value="0"/>
+    <value name="ZERO" value="1"/>
+    <value name="REPLACE" value="2"/>
+    <value name="INCRSAT" value="3"/>
+    <value name="DECRSAT" value="4"/>
+    <value name="INCR" value="5"/>
+    <value name="DECR" value="6"/>
+    <value name="INVERT" value="7"/>
+  </enum>
+
+  <enum name="3D_Color_Buffer_Blend_Factor" prefix="BLENDFACTOR">
+    <value name="ONE" value="1"/>
+    <value name="SRC_COLOR" value="2"/>
+    <value name="SRC_ALPHA" value="3"/>
+    <value name="DST_ALPHA" value="4"/>
+    <value name="DST_COLOR" value="5"/>
+    <value name="SRC_ALPHA_SATURATE" value="6"/>
+    <value name="CONST_COLOR" value="7"/>
+    <value name="CONST_ALPHA" value="8"/>
+    <value name="SRC1_COLOR" value="9"/>
+    <value name="SRC1_ALPHA" value="10"/>
+    <value name="ZERO" value="17"/>
+    <value name="INV_SRC_COLOR" value="18"/>
+    <value name="INV_SRC_ALPHA" value="19"/>
+    <value name="INV_DST_ALPHA" value="20"/>
+    <value name="INV_DST_COLOR" value="21"/>
+    <value name="INV_CONST_COLOR" value="23"/>
+    <value name="INV_CONST_ALPHA" value="24"/>
+    <value name="INV_SRC1_COLOR" value="25"/>
+    <value name="INV_SRC1_ALPHA" value="26"/>
+  </enum>
+
+  <enum name="3D_Color_Buffer_Blend_Function" prefix="BLENDFUNCTION">
+    <value name="ADD" value="0"/>
+    <value name="SUBTRACT" value="1"/>
+    <value name="REVERSE_SUBTRACT" value="2"/>
+    <value name="MIN" value="3"/>
+    <value name="MAX" value="4"/>
+  </enum>
+
+  <enum name="3D_Compare_Function" prefix="COMPAREFUNCTION">
+    <value name="ALWAYS" value="0"/>
+    <value name="NEVER" value="1"/>
+    <value name="LESS" value="2"/>
+    <value name="EQUAL" value="3"/>
+    <value name="LEQUAL" value="4"/>
+    <value name="GREATER" value="5"/>
+    <value name="NOTEQUAL" value="6"/>
+    <value name="GEQUAL" value="7"/>
+  </enum>
+
+  <enum name="3D_Logic_Op_Function" prefix="LOGICOP">
+    <value name="CLEAR" value="0"/>
+    <value name="NOR" value="1"/>
+    <value name="AND_INVERTED" value="2"/>
+    <value name="COPY_INVERTED" value="3"/>
+    <value name="AND_REVERSE" value="4"/>
+    <value name="INVERT" value="5"/>
+    <value name="XOR" value="6"/>
+    <value name="NAND" value="7"/>
+    <value name="AND" value="8"/>
+    <value name="EQUIV" value="9"/>
+    <value name="NOOP" value="10"/>
+    <value name="OR_INVERTED" value="11"/>
+    <value name="COPY" value="12"/>
+    <value name="OR_REVERSE" value="13"/>
+    <value name="OR" value="14"/>
+    <value name="SET" value="15"/>
+  </enum>
+
+  <enum name="SURFACE_FORMAT" prefix="SF">
+    <value name="R32G32B32A32_FLOAT" value="0"/>
+    <value name="R32G32B32A32_SINT" value="1"/>
+    <value name="R32G32B32A32_UINT" value="2"/>
+    <value name="R32G32B32A32_UNORM" value="3"/>
+    <value name="R32G32B32A32_SNORM" value="4"/>
+    <value name="R64G64_FLOAT" value="5"/>
+    <value name="R32G32B32X32_FLOAT" value="6"/>
+    <value name="R32G32B32A32_SSCALED" value="7"/>
+    <value name="R32G32B32A32_USCALED" value="8"/>
+    <value name="R32G32B32A32_SFIXED" value="32"/>
+    <value name="R64G64_PASSTHRU" value="33"/>
+    <value name="R32G32B32_FLOAT" value="64"/>
+    <value name="R32G32B32_SINT" value="65"/>
+    <value name="R32G32B32_UINT" value="66"/>
+    <value name="R32G32B32_UNORM" value="67"/>
+    <value name="R32G32B32_SNORM" value="68"/>
+    <value name="R32G32B32_SSCALED" value="69"/>
+    <value name="R32G32B32_USCALED" value="70"/>
+    <value name="R32G32B32_SFIXED" value="80"/>
+    <value name="R16G16B16A16_UNORM" value="128"/>
+    <value name="R16G16B16A16_SNORM" value="129"/>
+    <value name="R16G16B16A16_SINT" value="130"/>
+    <value name="R16G16B16A16_UINT" value="131"/>
+    <value name="R16G16B16A16_FLOAT" value="132"/>
+    <value name="R32G32_FLOAT" value="133"/>
+    <value name="R32G32_SINT" value="134"/>
+    <value name="R32G32_UINT" value="135"/>
+    <value name="R32_FLOAT_X8X24_TYPELESS" value="136"/>
+    <value name="X32_TYPELESS_G8X24_UINT" value="137"/>
+    <value name="L32A32_FLOAT" value="138"/>
+    <value name="R32G32_UNORM" value="139"/>
+    <value name="R32G32_SNORM" value="140"/>
+    <value name="R64_FLOAT" value="141"/>
+    <value name="R16G16B16X16_UNORM" value="142"/>
+    <value name="R16G16B16X16_FLOAT" value="143"/>
+    <value name="A32X32_FLOAT" value="144"/>
+    <value name="L32X32_FLOAT" value="145"/>
+    <value name="I32X32_FLOAT" value="146"/>
+    <value name="R16G16B16A16_SSCALED" value="147"/>
+    <value name="R16G16B16A16_USCALED" value="148"/>
+    <value name="R32G32_SSCALED" value="149"/>
+    <value name="R32G32_USCALED" value="150"/>
+    <value name="R32G32_SFIXED" value="160"/>
+    <value name="R64_PASSTHRU" value="161"/>
+    <value name="B8G8R8A8_UNORM" value="192"/>
+    <value name="B8G8R8A8_UNORM_SRGB" value="193"/>
+    <value name="R10G10B10A2_UNORM" value="194"/>
+    <value name="R10G10B10A2_UNORM_SRGB" value="195"/>
+    <value name="R10G10B10A2_UINT" value="196"/>
+    <value name="R10G10B10_SNORM_A2_UNORM" value="197"/>
+    <value name="R8G8B8A8_UNORM" value="199"/>
+    <value name="R8G8B8A8_UNORM_SRGB" value="200"/>
+    <value name="R8G8B8A8_SNORM" value="201"/>
+    <value name="R8G8B8A8_SINT" value="202"/>
+    <value name="R8G8B8A8_UINT" value="203"/>
+    <value name="R16G16_UNORM" value="204"/>
+    <value name="R16G16_SNORM" value="205"/>
+    <value name="R16G16_SINT" value="206"/>
+    <value name="R16G16_UINT" value="207"/>
+    <value name="R16G16_FLOAT" value="208"/>
+    <value name="B10G10R10A2_UNORM" value="209"/>
+    <value name="B10G10R10A2_UNORM_SRGB" value="210"/>
+    <value name="R11G11B10_FLOAT" value="211"/>
+    <value name="R32_SINT" value="214"/>
+    <value name="R32_UINT" value="215"/>
+    <value name="R32_FLOAT" value="216"/>
+    <value name="R24_UNORM_X8_TYPELESS" value="217"/>
+    <value name="X24_TYPELESS_G8_UINT" value="218"/>
+    <value name="L32_UNORM" value="221"/>
+    <value name="A32_UNORM" value="222"/>
+    <value name="L16A16_UNORM" value="223"/>
+    <value name="I24X8_UNORM" value="224"/>
+    <value name="L24X8_UNORM" value="225"/>
+    <value name="A24X8_UNORM" value="226"/>
+    <value name="I32_FLOAT" value="227"/>
+    <value name="L32_FLOAT" value="228"/>
+    <value name="A32_FLOAT" value="229"/>
+    <value name="X8B8_UNORM_G8R8_SNORM" value="230"/>
+    <value name="A8X8_UNORM_G8R8_SNORM" value="231"/>
+    <value name="B8X8_UNORM_G8R8_SNORM" value="232"/>
+    <value name="B8G8R8X8_UNORM" value="233"/>
+    <value name="B8G8R8X8_UNORM_SRGB" value="234"/>
+    <value name="R8G8B8X8_UNORM" value="235"/>
+    <value name="R8G8B8X8_UNORM_SRGB" value="236"/>
+    <value name="R9G9B9E5_SHAREDEXP" value="237"/>
+    <value name="B10G10R10X2_UNORM" value="238"/>
+    <value name="L16A16_FLOAT" value="240"/>
+    <value name="R32_UNORM" value="241"/>
+    <value name="R32_SNORM" value="242"/>
+    <value name="R10G10B10X2_USCALED" value="243"/>
+    <value name="R8G8B8A8_SSCALED" value="244"/>
+    <value name="R8G8B8A8_USCALED" value="245"/>
+    <value name="R16G16_SSCALED" value="246"/>
+    <value name="R16G16_USCALED" value="247"/>
+    <value name="R32_SSCALED" value="248"/>
+    <value name="R32_USCALED" value="249"/>
+    <value name="B5G6R5_UNORM" value="256"/>
+    <value name="B5G6R5_UNORM_SRGB" value="257"/>
+    <value name="B5G5R5A1_UNORM" value="258"/>
+    <value name="B5G5R5A1_UNORM_SRGB" value="259"/>
+    <value name="B4G4R4A4_UNORM" value="260"/>
+    <value name="B4G4R4A4_UNORM_SRGB" value="261"/>
+    <value name="R8G8_UNORM" value="262"/>
+    <value name="R8G8_SNORM" value="263"/>
+    <value name="R8G8_SINT" value="264"/>
+    <value name="R8G8_UINT" value="265"/>
+    <value name="R16_UNORM" value="266"/>
+    <value name="R16_SNORM" value="267"/>
+    <value name="R16_SINT" value="268"/>
+    <value name="R16_UINT" value="269"/>
+    <value name="R16_FLOAT" value="270"/>
+    <value name="A8P8_UNORM_PALETTE0" value="271"/>
+    <value name="A8P8_UNORM_PALETTE1" value="272"/>
+    <value name="I16_UNORM" value="273"/>
+    <value name="L16_UNORM" value="274"/>
+    <value name="A16_UNORM" value="275"/>
+    <value name="L8A8_UNORM" value="276"/>
+    <value name="I16_FLOAT" value="277"/>
+    <value name="L16_FLOAT" value="278"/>
+    <value name="A16_FLOAT" value="279"/>
+    <value name="L8A8_UNORM_SRGB" value="280"/>
+    <value name="R5G5_SNORM_B6_UNORM" value="281"/>
+    <value name="B5G5R5X1_UNORM" value="282"/>
+    <value name="B5G5R5X1_UNORM_SRGB" value="283"/>
+    <value name="R8G8_SSCALED" value="284"/>
+    <value name="R8G8_USCALED" value="285"/>
+    <value name="R16_SSCALED" value="286"/>
+    <value name="R16_USCALED" value="287"/>
+    <value name="P8A8_UNORM_PALETTE0" value="290"/>
+    <value name="P8A8_UNORM_PALETTE1" value="291"/>
+    <value name="A1B5G5R5_UNORM" value="292"/>
+    <value name="A4B4G4R4_UNORM" value="293"/>
+    <value name="L8A8_UINT" value="294"/>
+    <value name="L8A8_SINT" value="295"/>
+    <value name="R8_UNORM" value="320"/>
+    <value name="R8_SNORM" value="321"/>
+    <value name="R8_SINT" value="322"/>
+    <value name="R8_UINT" value="323"/>
+    <value name="A8_UNORM" value="324"/>
+    <value name="I8_UNORM" value="325"/>
+    <value name="L8_UNORM" value="326"/>
+    <value name="P4A4_UNORM_PALETTE0" value="327"/>
+    <value name="A4P4_UNORM_PALETTE0" value="328"/>
+    <value name="R8_SSCALED" value="329"/>
+    <value name="R8_USCALED" value="330"/>
+    <value name="P8_UNORM_PALETTE0" value="331"/>
+    <value name="L8_UNORM_SRGB" value="332"/>
+    <value name="P8_UNORM_PALETTE1" value="333"/>
+    <value name="P4A4_UNORM_PALETTE1" value="334"/>
+    <value name="A4P4_UNORM_PALETTE1" value="335"/>
+    <value name="Y8_UNORM" value="336"/>
+    <value name="L8_UINT" value="338"/>
+    <value name="L8_SINT" value="339"/>
+    <value name="I8_UINT" value="340"/>
+    <value name="I8_SINT" value="341"/>
+    <value name="DXT1_RGB_SRGB" value="384"/>
+    <value name="R1_UNORM" value="385"/>
+    <value name="YCRCB_NORMAL" value="386"/>
+    <value name="YCRCB_SWAPUVY" value="387"/>
+    <value name="P2_UNORM_PALETTE0" value="388"/>
+    <value name="P2_UNORM_PALETTE1" value="389"/>
+    <value name="BC1_UNORM" value="390"/>
+    <value name="BC2_UNORM" value="391"/>
+    <value name="BC3_UNORM" value="392"/>
+    <value name="BC4_UNORM" value="393"/>
+    <value name="BC5_UNORM" value="394"/>
+    <value name="BC1_UNORM_SRGB" value="395"/>
+    <value name="BC2_UNORM_SRGB" value="396"/>
+    <value name="BC3_UNORM_SRGB" value="397"/>
+    <value name="MONO8" value="398"/>
+    <value name="YCRCB_SWAPUV" value="399"/>
+    <value name="YCRCB_SWAPY" value="400"/>
+    <value name="DXT1_RGB" value="401"/>
+    <value name="FXT1" value="402"/>
+    <value name="R8G8B8_UNORM" value="403"/>
+    <value name="R8G8B8_SNORM" value="404"/>
+    <value name="R8G8B8_SSCALED" value="405"/>
+    <value name="R8G8B8_USCALED" value="406"/>
+    <value name="R64G64B64A64_FLOAT" value="407"/>
+    <value name="R64G64B64_FLOAT" value="408"/>
+    <value name="BC4_SNORM" value="409"/>
+    <value name="BC5_SNORM" value="410"/>
+    <value name="R16G16B16_FLOAT" value="411"/>
+    <value name="R16G16B16_UNORM" value="412"/>
+    <value name="R16G16B16_SNORM" value="413"/>
+    <value name="R16G16B16_SSCALED" value="414"/>
+    <value name="R16G16B16_USCALED" value="415"/>
+    <value name="BC6H_SF16" value="417"/>
+    <value name="BC7_UNORM" value="418"/>
+    <value name="BC7_UNORM_SRGB" value="419"/>
+    <value name="BC6H_UF16" value="420"/>
+    <value name="PLANAR_420_8" value="421"/>
+    <value name="PLANAR_420_16" value="422"/>
+    <value name="R8G8B8_UNORM_SRGB" value="424"/>
+    <value name="ETC1_RGB8" value="425"/>
+    <value name="ETC2_RGB8" value="426"/>
+    <value name="EAC_R11" value="427"/>
+    <value name="EAC_RG11" value="428"/>
+    <value name="EAC_SIGNED_R11" value="429"/>
+    <value name="EAC_SIGNED_RG11" value="430"/>
+    <value name="ETC2_SRGB8" value="431"/>
+    <value name="R16G16B16_UINT" value="432"/>
+    <value name="R16G16B16_SINT" value="433"/>
+    <value name="R32_SFIXED" value="434"/>
+    <value name="R10G10B10A2_SNORM" value="435"/>
+    <value name="R10G10B10A2_USCALED" value="436"/>
+    <value name="R10G10B10A2_SSCALED" value="437"/>
+    <value name="R10G10B10A2_SINT" value="438"/>
+    <value name="B10G10R10A2_SNORM" value="439"/>
+    <value name="B10G10R10A2_USCALED" value="440"/>
+    <value name="B10G10R10A2_SSCALED" value="441"/>
+    <value name="B10G10R10A2_UINT" value="442"/>
+    <value name="B10G10R10A2_SINT" value="443"/>
+    <value name="R64G64B64A64_PASSTHRU" value="444"/>
+    <value name="R64G64B64_PASSTHRU" value="445"/>
+    <value name="ETC2_RGB8_PTA" value="448"/>
+    <value name="ETC2_SRGB8_PTA" value="449"/>
+    <value name="ETC2_EAC_RGBA8" value="450"/>
+    <value name="ETC2_EAC_SRGB8_A8" value="451"/>
+    <value name="R8G8B8_UINT" value="456"/>
+    <value name="R8G8B8_SINT" value="457"/>
+    <value name="RAW" value="511"/>
+  </enum>
+
+  <enum name="Shader Channel Select" prefix="SCS">
+    <value name="ZERO" value="0"/>
+    <value name="ONE" value="1"/>
+    <value name="RED" value="4"/>
+    <value name="GREEN" value="5"/>
+    <value name="BLUE" value="6"/>
+    <value name="ALPHA" value="7"/>
+  </enum>
+
+  <enum name="Texture Coordinate Mode" prefix="TCM">
+    <value name="WRAP" value="0"/>
+    <value name="MIRROR" value="1"/>
+    <value name="CLAMP" value="2"/>
+    <value name="CUBE" value="3"/>
+    <value name="CLAMP_BORDER" value="4"/>
+    <value name="MIRROR_ONCE" value="5"/>
+    <value name="HALF_BORDER" value="6"/>
+  </enum>
+
+  <struct name="3DSTATE_CONSTANT_BODY" length="10">
+    <group count="4" start="0" size="16">
+      <field name="Read Length" start="0" end="15" type="uint"/>
+    </group>
+    <group count="4" start="64" size="64">
+      <field name="Buffer" start="5" end="63" type="address"/>
+    </group>
+  </struct>
+
+  <struct name="BINDING_TABLE_EDIT_ENTRY" length="1">
+    <field name="Binding Table Index" start="16" end="23" type="uint"/>
+    <field name="Surface State Pointer" start="0" end="15" type="offset"/>
+  </struct>
+
+  <struct name="GATHER_CONSTANT_ENTRY" length="1">
+    <field name="Constant Buffer Offset" start="8" end="15" type="offset"/>
+    <field name="Channel Mask" start="4" end="7" type="uint"/>
+    <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="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="Buffer Starting Address" start="32" end="95" type="address"/>
+    <field name="Buffer Size" start="96" end="127" type="uint"/>
+  </struct>
+
+  <struct name="VERTEX_ELEMENT_STATE" length="2">
+    <field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
+    <field name="Valid" start="25" end="25" type="bool"/>
+    <field name="Source Element Format" start="16" end="24" type="SURFACE_FORMAT"/>
+    <field name="Edge Flag Enable" start="15" end="15" type="bool"/>
+    <field name="Source Element Offset" start="0" end="11" type="uint"/>
+    <field name="Component 0 Control" start="60" end="62" type="3D_Vertex_Component_Control"/>
+    <field name="Component 1 Control" start="56" end="58" type="3D_Vertex_Component_Control"/>
+    <field name="Component 2 Control" start="52" end="54" type="3D_Vertex_Component_Control"/>
+    <field name="Component 3 Control" start="48" end="50" type="3D_Vertex_Component_Control"/>
+  </struct>
+
+  <struct name="SO_DECL" length="1">
+    <field name="Output Buffer Slot" start="12" end="13" type="uint"/>
+    <field name="Hole Flag" start="11" end="11" type="uint"/>
+    <field name="Register Index" start="4" end="9" type="uint"/>
+    <field name="Component Mask" start="0" end="3" type="uint" default="0"/>
+  </struct>
+
+  <struct name="SO_DECL_ENTRY" length="2">
+    <field name="Stream 3 Decl" start="48" end="63" type="SO_DECL"/>
+    <field name="Stream 2 Decl" start="32" end="47" type="SO_DECL"/>
+    <field name="Stream 1 Decl" start="16" end="31" type="SO_DECL"/>
+    <field name="Stream 0 Decl" start="0" end="15" type="SO_DECL"/>
+  </struct>
+
+  <struct name="SF_OUTPUT_ATTRIBUTE_DETAIL" length="1">
+    <field name="Component Override W" start="15" end="15" type="bool"/>
+    <field name="Component Override Z" start="14" end="14" type="bool"/>
+    <field name="Component Override Y" start="13" end="13" type="bool"/>
+    <field name="Component Override X" start="12" end="12" type="bool"/>
+    <field name="Swizzle Control Mode" start="11" end="11" type="uint"/>
+    <field name="Constant Source" start="9" end="10" type="uint">
+      <value name="CONST_0000" value="0"/>
+      <value name="CONST_0001_FLOAT" value="1"/>
+      <value name="CONST_1111_FLOAT" value="2"/>
+      <value name="PRIM_ID" value="3"/>
+    </field>
+    <field name="Swizzle Select" start="6" end="7" type="uint">
+      <value name="INPUTATTR" value="0"/>
+      <value name="INPUTATTR_FACING" value="1"/>
+      <value name="INPUTATTR_W" value="2"/>
+      <value name="INPUTATTR_FACING_W" value="3"/>
+    </field>
+    <field name="Source Attribute" start="0" end="4" type="uint"/>
+  </struct>
+
+  <struct name="SCISSOR_RECT" length="2">
+    <field name="Scissor Rectangle Y Min" start="16" end="31" type="uint"/>
+    <field name="Scissor Rectangle X Min" start="0" end="15" type="uint"/>
+    <field name="Scissor Rectangle Y Max" start="48" end="63" type="uint"/>
+    <field name="Scissor Rectangle X Max" start="32" end="47" type="uint"/>
+  </struct>
+
+  <struct name="SF_CLIP_VIEWPORT" length="16">
+    <field name="Viewport Matrix Element m00" start="0" end="31" type="float"/>
+    <field name="Viewport Matrix Element m11" start="32" end="63" type="float"/>
+    <field name="Viewport Matrix Element m22" start="64" end="95" type="float"/>
+    <field name="Viewport Matrix Element m30" start="96" end="127" type="float"/>
+    <field name="Viewport Matrix Element m31" start="128" end="159" type="float"/>
+    <field name="Viewport Matrix Element m32" start="160" end="191" type="float"/>
+    <field name="X Min Clip Guardband" start="256" end="287" type="float"/>
+    <field name="X Max Clip Guardband" start="288" end="319" type="float"/>
+    <field name="Y Min Clip Guardband" start="320" end="351" type="float"/>
+    <field name="Y Max Clip Guardband" start="352" end="383" type="float"/>
+    <field name="X Min ViewPort" start="384" end="415" type="float"/>
+    <field name="X Max ViewPort" start="416" end="447" type="float"/>
+    <field name="Y Min ViewPort" start="448" end="479" type="float"/>
+    <field name="Y Max ViewPort" start="480" end="511" type="float"/>
+  </struct>
+
+  <struct name="BLEND_STATE_ENTRY" length="2">
+    <field name="Logic Op Enable" start="63" end="63" type="bool"/>
+    <field name="Logic Op Function" start="59" end="62" type="3D_Logic_Op_Function"/>
+    <field name="Pre-Blend Source Only Clamp Enable" start="36" end="36" type="bool"/>
+    <field name="Color Clamp Range" start="34" end="35" type="uint">
+      <value name="COLORCLAMP_UNORM" value="0"/>
+      <value name="COLORCLAMP_SNORM" value="1"/>
+      <value name="COLORCLAMP_RTFORMAT" value="2"/>
+    </field>
+    <field name="Pre-Blend Color Clamp Enable" start="33" end="33" type="bool"/>
+    <field name="Post-Blend Color Clamp Enable" start="32" end="32" type="bool"/>
+    <field name="Color Buffer Blend Enable" start="31" end="31" type="bool"/>
+    <field name="Source Blend Factor" start="26" end="30" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Destination Blend Factor" start="21" end="25" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Color Blend Function" start="18" end="20" type="3D_Color_Buffer_Blend_Function"/>
+    <field name="Source Alpha Blend Factor" start="13" end="17" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Destination Alpha Blend Factor" start="8" end="12" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Alpha Blend Function" start="5" end="7" type="3D_Color_Buffer_Blend_Function"/>
+    <field name="Write Disable Alpha" start="3" end="3" type="bool"/>
+    <field name="Write Disable Red" start="2" end="2" type="bool"/>
+    <field name="Write Disable Green" start="1" end="1" type="bool"/>
+    <field name="Write Disable Blue" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="BLEND_STATE" length="17">
+    <field name="Alpha To Coverage Enable" start="31" end="31" type="bool"/>
+    <field name="Independent Alpha Blend Enable" start="30" end="30" type="bool"/>
+    <field name="Alpha To One Enable" start="29" end="29" type="bool"/>
+    <field name="Alpha To Coverage Dither Enable" start="28" end="28" type="bool"/>
+    <field name="Alpha Test Enable" start="27" end="27" type="bool"/>
+    <field name="Alpha Test Function" start="24" end="26" type="3D_Compare_Function"/>
+    <field name="Color Dither Enable" start="23" end="23" type="bool"/>
+    <field name="X Dither Offset" start="21" end="22" type="uint"/>
+    <field name="Y Dither Offset" start="19" end="20" type="uint"/>
+    <group count="8" start="32" size="64">
+      <field name="Entry" start="0" end="63" type="BLEND_STATE_ENTRY"/>
+    </group>
+  </struct>
+
+  <struct name="CC_VIEWPORT" length="2">
+    <field name="Minimum Depth" start="0" end="31" type="float"/>
+    <field name="Maximum Depth" start="32" end="63" type="float"/>
+  </struct>
+
+  <struct name="COLOR_CALC_STATE" length="6">
+    <field name="Round Disable Function Disable" start="15" end="15" type="bool"/>
+    <field name="Alpha Test Format" start="0" end="0" type="uint">
+      <value name="ALPHATEST_UNORM8" value="0"/>
+      <value name="ALPHATEST_FLOAT32" value="1"/>
+    </field>
+    <field name="Alpha Reference Value As UNORM8" start="32" end="63" type="uint"/>
+    <field name="Alpha Reference Value As FLOAT32" start="32" end="63" type="float"/>
+    <field name="Blend Constant Color Red" start="64" end="95" type="float"/>
+    <field name="Blend Constant Color Green" start="96" end="127" type="float"/>
+    <field name="Blend Constant Color Blue" start="128" end="159" type="float"/>
+    <field name="Blend Constant Color Alpha" start="160" end="191" type="float"/>
+  </struct>
+
+  <struct name="EXECUTION_UNIT_EXTENDED_MESSAGE_DESCRIPTOR" length="1">
+    <field name="Extended Message Length" start="6" end="9" type="uint"/>
+    <field name="End Of Thread" start="5" end="5" type="uint">
+      <value name="No Termination" value="0"/>
+      <value name="EOT" value="1"/>
+    </field>
+    <field name="Target Function ID" start="0" end="3" type="uint"/>
+  </struct>
+
+  <struct name="INTERFACE_DESCRIPTOR_DATA" length="8">
+    <field name="Kernel Start Pointer" start="6" end="47" type="offset"/>
+    <field name="Thread Preemption disable" start="84" end="84" type="bool"/>
+    <field name="Denorm Mode" start="83" end="83" type="uint">
+      <value name="Ftz" value="0"/>
+      <value name="SetByKernel" value="1"/>
+    </field>
+    <field name="Single Program Flow" start="82" end="82" type="bool"/>
+    <field name="Thread Priority" start="81" end="81" type="uint">
+      <value name="Normal Priority" value="0"/>
+      <value name="High Priority" value="1"/>
+    </field>
+    <field name="Floating Point Mode" start="80" end="80" type="uint">
+      <value name="IEEE-754" value="0"/>
+      <value name="Alternate" value="1"/>
+    </field>
+    <field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
+    <field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
+    <field name="Software Exception Enable" start="71" end="71" type="bool"/>
+    <field name="Sampler State Pointer" start="101" end="127" type="offset"/>
+    <field name="Sampler Count" start="98" end="100" type="uint">
+      <value name="No samplers used" value="0"/>
+      <value name="Between 1 and 4 samplers used" value="1"/>
+      <value name="Between 5 and 8 samplers used" value="2"/>
+      <value name="Between 9 and 12 samplers used" value="3"/>
+      <value name="Between 13 and 16 samplers used" value="4"/>
+    </field>
+    <field name="Binding Table Pointer" start="133" end="143" type="offset"/>
+    <field name="Binding Table Entry Count" start="128" end="132" type="uint"/>
+    <field name="Constant URB Entry Read Length" start="176" end="191" type="uint"/>
+    <field name="Constant URB Entry Read Offset" start="160" end="175" type="uint"/>
+    <field name="Rounding Mode" start="214" end="215" type="uint">
+      <value name="RTNE" value="0"/>
+      <value name="RU" value="1"/>
+      <value name="RD" value="2"/>
+      <value name="RTZ" value="3"/>
+    </field>
+    <field name="Barrier Enable" start="213" end="213" type="bool"/>
+    <field name="Shared Local Memory Size" start="208" end="212" type="uint">
+      <value name="Encodes 0K" value="0"/>
+      <value name="Encodes 1K" value="1"/>
+      <value name="Encodes 2K" value="2"/>
+      <value name="Encodes 4K" value="3"/>
+      <value name="Encodes 8K" value="4"/>
+      <value name="Encodes 16K" value="5"/>
+      <value name="Encodes 32K" value="6"/>
+      <value name="Encodes 64K" value="7"/>
+    </field>
+    <field name="Global Barrier Enable" start="207" end="207" type="bool"/>
+    <field name="Number of Threads in GPGPU Thread Group" start="192" end="201" type="uint"/>
+    <field name="Cross-Thread Constant Data Read Length" start="224" end="231" type="uint"/>
+  </struct>
+
+  <struct name="ROUNDINGPRECISIONTABLE_3_BITS" length="1">
+    <field name="Rounding Precision" start="0" end="2" type="uint">
+      <value name="+1/16" value="0"/>
+      <value name="+2/16" value="1"/>
+      <value name="+3/16" value="2"/>
+      <value name="+4/16" value="3"/>
+      <value name="+5/16" value="4"/>
+      <value name="+6/16" value="5"/>
+      <value name="+7/16" value="6"/>
+      <value name="+8/16" value="7"/>
+    </field>
+  </struct>
+
+  <struct name="PALETTE_ENTRY" length="1">
+    <field name="Alpha" start="24" end="31" type="uint"/>
+    <field name="Red" start="16" end="23" type="uint"/>
+    <field name="Green" start="8" end="15" type="uint"/>
+    <field name="Blue" start="0" end="7" type="uint"/>
+  </struct>
+
+  <struct name="BINDING_TABLE_STATE" length="1">
+    <field name="Surface State Pointer" start="6" end="31" type="offset"/>
+  </struct>
+
+  <struct name="RENDER_SURFACE_STATE" length="16">
+    <field name="Surface Type" start="29" end="31" type="uint">
+      <value name="SURFTYPE_1D" value="0"/>
+      <value name="SURFTYPE_2D" value="1"/>
+      <value name="SURFTYPE_3D" value="2"/>
+      <value name="SURFTYPE_CUBE" value="3"/>
+      <value name="SURFTYPE_BUFFER" value="4"/>
+      <value name="SURFTYPE_STRBUF" value="5"/>
+      <value name="SURFTYPE_NULL" value="7"/>
+    </field>
+    <field name="Surface Array" start="28" end="28" type="bool"/>
+    <field name="Surface Format" start="18" end="27" type="SURFACE_FORMAT"/>
+    <field name="Surface Vertical Alignment" start="16" end="17" type="uint">
+      <value name="VALIGN 4" value="1"/>
+      <value name="VALIGN 8" value="2"/>
+      <value name="VALIGN 16" value="3"/>
+    </field>
+    <field name="Surface Horizontal Alignment" start="14" end="15" type="uint">
+      <value name="HALIGN 4" value="1"/>
+      <value name="HALIGN 8" value="2"/>
+      <value name="HALIGN 16" value="3"/>
+    </field>
+    <field name="Tile Mode" start="12" end="13" type="uint">
+      <value name="LINEAR" value="0"/>
+      <value name="WMAJOR" value="1"/>
+      <value name="XMAJOR" value="2"/>
+      <value name="YMAJOR" value="3"/>
+    </field>
+    <field name="Vertical Line Stride" start="11" end="11" type="uint"/>
+    <field name="Vertical Line Stride Offset" start="10" end="10" type="uint"/>
+    <field name="Sampler L2 Bypass Mode Disable" start="9" end="9" type="bool"/>
+    <field name="Render Cache Read Write Mode" start="8" end="8" type="uint">
+      <value name="Write-Only Cache" value="0"/>
+      <value name="Read-Write Cache" value="1"/>
+    </field>
+    <field name="Media Boundary Pixel Mode" start="6" end="7" type="uint">
+      <value name="NORMAL_MODE" value="0"/>
+      <value name="PROGRESSIVE_FRAME" value="2"/>
+      <value name="INTERLACED_FRAME" value="3"/>
+    </field>
+    <field name="Cube Face Enable - Positive Z" start="0" end="0" type="bool"/>
+    <field name="Cube Face Enable - Negative Z" start="1" end="1" type="bool"/>
+    <field name="Cube Face Enable - Positive Y" start="2" end="2" type="bool"/>
+    <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="Height" start="80" end="93" type="uint"/>
+    <field name="Width" start="64" end="77" type="uint"/>
+    <field name="Depth" start="117" end="127" type="uint"/>
+    <field name="Tile Address Mapping Mode" start="116" end="116" type="uint">
+      <value name="Gen9" value="0"/>
+      <value name="Gen10+" value="1"/>
+    </field>
+    <field name="Surface Pitch" start="96" end="113" type="uint"/>
+    <field name="Force Non-Comparison Reduction Type" start="159" end="159" type="bool"/>
+    <field name="Render Target And Sample Unorm Rotation" start="157" end="158" type="uint">
+      <value name="0DEG" value="0"/>
+      <value name="90DEG" value="1"/>
+      <value name="180DEG" value="2"/>
+      <value name="270DEG" value="3"/>
+    </field>
+    <field name="Minimum Array Element" start="146" end="156" type="uint"/>
+    <field name="Render Target View Extent" start="135" end="145" type="uint"/>
+    <field name="Multisampled Surface Storage Format" start="134" end="134" type="uint">
+      <value name="MSFMT_MSS" value="0"/>
+      <value name="MSFMT_DEPTH_STENCIL" value="1"/>
+    </field>
+    <field name="Number of Multisamples" start="131" end="133" type="uint">
+      <value name="MULTISAMPLECOUNT_1" value="0"/>
+      <value name="MULTISAMPLECOUNT_2" value="1"/>
+      <value name="MULTISAMPLECOUNT_4" value="2"/>
+      <value name="MULTISAMPLECOUNT_8" value="3"/>
+      <value name="MULTISAMPLECOUNT_16" value="4"/>
+    </field>
+    <field name="Multisample Position Palette Index" start="128" end="130" type="uint"/>
+    <field name="X Offset" start="185" end="191" type="uint"/>
+    <field name="Y Offset" start="181" end="183" type="uint"/>
+    <field name="EWA Disable For Cube" start="180" end="180" type="bool"/>
+    <field name="Tiled Resource Mode" start="178" end="179" type="uint">
+      <value name="NONE" value="0"/>
+      <value name="4KB" value="1"/>
+      <value name="64KB" value="2"/>
+      <value name="TILEYF" value="1"/>
+      <value name="TILEYS" value="2"/>
+    </field>
+    <field name="Coherency Type" start="174" end="174" type="uint">
+      <value name="GPU coherent" value="0"/>
+      <value name="IA coherent" value="1"/>
+    </field>
+    <field name="Mip Tail Start LOD" start="168" end="171" 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="Auxiliary Surface QPitch" start="208" end="222" type="uint"/>
+    <field name="Auxiliary Surface Pitch" start="195" end="203" type="uint"/>
+    <field name="Auxiliary Surface Mode" start="192" end="194" type="uint">
+      <value name="AUX_NONE" value="0"/>
+      <value name="AUX_CCS_D" value="1"/>
+      <value name="AUX_APPEND" value="2"/>
+      <value name="AUX_HIZ" value="3"/>
+      <value name="AUX_CCS_E" value="5"/>
+    </field>
+    <field name="Separate UV Plane Enable" start="223" end="223" type="bool"/>
+    <field name="X Offset for U or UV Plane" start="208" end="221" type="uint"/>
+    <field name="Y Offset for U or UV Plane" start="192" end="205" type="uint"/>
+    <field name="Memory Compression Mode" start="255" end="255" type="uint">
+      <value name="Horizontal" value="0"/>
+      <value name="Vertical" value="1"/>
+    </field>
+    <field name="Memory Compression Enable" start="254" end="254" type="bool"/>
+    <field name="Shader Channel Select Red" start="249" end="251" type="uint"/>
+    <field name="Shader Channel Select Green" start="246" end="248" type="uint"/>
+    <field name="Shader Channel Select Blue" start="243" end="245" type="uint"/>
+    <field name="Shader Channel Select Alpha" start="240" end="242" type="uint"/>
+    <field name="Resource Min LOD" start="224" end="235" type="u4.8"/>
+    <field name="Surface Base Address" start="256" end="319" type="address"/>
+    <field name="X Offset for V Plane" start="368" end="381" type="uint"/>
+    <field name="Y Offset for V Plane" start="352" end="365" type="uint"/>
+    <field name="Auxiliary Table Index for Media Compressed Surface" start="341" end="351" type="uint"/>
+    <field name="Auxiliary Surface Base Address" start="332" end="383" type="address"/>
+    <field name="Clear Value Address Enable" start="330" end="330" type="bool"/>
+    <field name="Quilt Height" start="325" end="329" type="uint"/>
+    <field name="Quilt Width" start="320" end="324" type="uint"/>
+    <field name="Red Clear Color" start="384" end="415" type="int"/>
+    <field name="Clear Color Address" start="390" end="415" type="address"/>
+    <field name="Clear Depth Address Low" start="390" end="415" type="address"/>
+    <field name="Green Clear Color" start="416" end="447" type="int"/>
+    <field name="Clear Color Address High" start="416" end="431" type="address"/>
+    <field name="Clear Depth Address High" start="416" end="431" type="address"/>
+    <field name="Blue Clear Color" start="448" end="479" type="int"/>
+    <field name="Alpha Clear Color" start="480" end="511" type="int"/>
+  </struct>
+
+  <struct name="SAMPLER_INDIRECT_STATE_BORDER_COLOR" length="4">
+    <field name="Border Color Red As S31" start="0" end="31" type="int"/>
+    <field name="Border Color Red As U32" start="0" end="31" type="uint"/>
+    <field name="Border Color Red As Float" start="0" end="31" type="float"/>
+    <field name="Border Color Alpha As U8" start="24" end="31" type="uint"/>
+    <field name="Border Color Blue As U8" start="16" end="23" type="uint"/>
+    <field name="Border Color Green As U8" start="8" end="15" type="uint"/>
+    <field name="Border Color Red As U8" start="0" end="7" type="uint"/>
+    <field name="Border Color Green As S31" start="32" end="63" type="int"/>
+    <field name="Border Color Green As U32" start="32" end="63" type="uint"/>
+    <field name="Border Color Green As Float" start="32" end="63" type="float"/>
+    <field name="Border Color Blue As S31" start="64" end="95" type="int"/>
+    <field name="Border Color Blue As U32" start="64" end="95" type="uint"/>
+    <field name="Border Color Blue As Float" start="64" end="95" type="float"/>
+    <field name="Border Color Alpha As S31" start="96" end="127" type="int"/>
+    <field name="Border Color Alpha As U32" start="96" end="127" type="uint"/>
+    <field name="Border Color Alpha As Float" start="96" end="127" type="float"/>
+  </struct>
+
+  <struct name="FILTER_COEFFICIENT" length="1">
+    <field name="Filter Coefficient" start="0" end="7" type="s1.6"/>
+  </struct>
+
+  <struct name="SAMPLER_BORDER_COLOR_STATE" length="4">
+    <field name="Border Color Float Red" start="0" end="31" type="float"/>
+    <field name="Border Color Float Green" start="32" end="63" type="float"/>
+    <field name="Border Color Float Blue" start="64" end="95" type="float"/>
+    <field name="Border Color Float Alpha" start="96" end="127" type="float"/>
+
+    <field name="Border Color 32bit Red" start="0" end="31" type="uint"/>
+    <field name="Border Color 32bit Green" start="32" end="63" type="uint"/>
+    <field name="Border Color 32bit Blue" start="64" end="95" type="uint"/>
+    <field name="Border Color 32bit Alpha" start="96" end="127" type="uint"/>
+  </struct>
+
+  <struct name="SAMPLER_STATE" length="4">
+    <field name="Sampler Disable" start="31" end="31" type="bool"/>
+    <field name="Texture Border Color Mode" start="29" end="29" type="uint">
+      <value name="DX10/OGL" value="0"/>
+      <value name="DX9" value="1"/>
+    </field>
+    <field name="LOD PreClamp Mode" start="27" end="28" type="uint" prefix="CLAMP_MODE">
+      <value name="NONE" value="0"/>
+      <value name="OGL" value="2"/>
+    </field>
+    <field name="Coarse LOD Quality Mode" start="22" end="26" type="uint"/>
+    <field name="Mip Mode Filter" start="20" end="21" type="uint" prefix="MIPFILTER">
+      <value name="NONE" value="0"/>
+      <value name="NEAREST" value="1"/>
+      <value name="LINEAR" value="3"/>
+    </field>
+    <field name="Mag Mode Filter" start="17" end="19" type="uint" prefix="MAPFILTER">
+      <value name="NEAREST" value="0"/>
+      <value name="LINEAR" value="1"/>
+      <value name="ANISOTROPIC" value="2"/>
+      <value name="MONO" value="6"/>
+    </field>
+    <field name="Min Mode Filter" start="14" end="16" type="uint" prefix="MAPFILTER">
+      <value name="NEAREST" value="0"/>
+      <value name="LINEAR" value="1"/>
+      <value name="ANISOTROPIC" value="2"/>
+      <value name="MONO" value="6"/>
+    </field>
+    <field name="Texture LOD Bias" start="1" end="13" type="s4.8"/>
+    <field name="Anisotropic Algorithm" start="0" end="0" type="uint">
+      <value name="LEGACY" value="0"/>
+      <value name="EWA Approximation" value="1"/>
+    </field>
+    <field name="Min LOD" start="52" end="63" type="u4.8"/>
+    <field name="Max LOD" start="40" end="51" type="u4.8"/>
+    <field name="ChromaKey Enable" start="39" end="39" type="bool"/>
+    <field name="ChromaKey Index" start="37" end="38" type="uint"/>
+    <field name="ChromaKey Mode" start="36" end="36" type="uint">
+      <value name="KEYFILTER_KILL_ON_ANY_MATCH" value="0"/>
+      <value name="KEYFILTER_REPLACE_BLACK" value="1"/>
+    </field>
+    <field name="Shadow Function" start="33" end="35" type="uint">
+      <value name="PREFILTEROP ALWAYS" value="0"/>
+      <value name="PREFILTEROP NEVER" value="1"/>
+      <value name="PREFILTEROP LESS" value="2"/>
+      <value name="PREFILTEROP EQUAL" value="3"/>
+      <value name="PREFILTEROP LEQUAL" value="4"/>
+      <value name="PREFILTEROP GREATER" value="5"/>
+      <value name="PREFILTEROP NOTEQUAL" value="6"/>
+      <value name="PREFILTEROP GEQUAL" value="7"/>
+    </field>
+    <field name="Cube Surface Control Mode" start="32" end="32" type="uint">
+      <value name="PROGRAMMED" value="0"/>
+      <value name="OVERRIDE" value="1"/>
+    </field>
+    <field name="Indirect State Pointer" start="70" end="87" type="offset"/>
+    <field name="Force gather4 Behavior" start="69" end="69" type="bool"/>
+    <field name="LOD Clamp Magnification Mode" start="64" end="64" type="uint">
+      <value name="MIPNONE" value="0"/>
+      <value name="MIPFILTER" value="1"/>
+    </field>
+    <field name="Reduction Type" start="118" end="119" type="uint">
+      <value name="STD_FILTER" value="0"/>
+      <value name="COMPARISON" value="1"/>
+      <value name="MINIMUM" value="2"/>
+      <value name="MAXIMUM" value="3"/>
+    </field>
+    <field name="Maximum Anisotropy" start="115" end="117" type="uint">
+      <value name="RATIO 2:1" value="0"/>
+      <value name="RATIO 4:1" value="1"/>
+      <value name="RATIO 6:1" value="2"/>
+      <value name="RATIO 8:1" value="3"/>
+      <value name="RATIO 10:1" value="4"/>
+      <value name="RATIO 12:1" value="5"/>
+      <value name="RATIO 14:1" value="6"/>
+      <value name="RATIO 16:1" value="7"/>
+    </field>
+    <field name="R Address Min Filter Rounding Enable" start="109" end="109" type="bool"/>
+    <field name="R Address Mag Filter Rounding Enable" start="110" end="110" type="bool"/>
+    <field name="V Address Min Filter Rounding Enable" start="111" end="111" type="bool"/>
+    <field name="V Address Mag Filter Rounding Enable" start="112" end="112" type="bool"/>
+    <field name="U Address Min Filter Rounding Enable" start="113" end="113" type="bool"/>
+    <field name="U Address Mag Filter Rounding Enable" start="114" end="114" type="bool"/>
+    <field name="Trilinear Filter Quality" start="107" end="108" type="uint">
+      <value name="FULL" value="0"/>
+      <value name="HIGH" value="1"/>
+      <value name="MED" value="2"/>
+      <value name="LOW" value="3"/>
+    </field>
+    <field name="Non-normalized Coordinate Enable" start="106" end="106" type="bool"/>
+    <field name="Reduction Type Enable" start="105" end="105" type="bool"/>
+    <field name="TCX Address Control Mode" start="102" end="104" type="uint"/>
+    <field name="TCY Address Control Mode" start="99" end="101" type="uint"/>
+    <field name="TCZ Address Control Mode" start="96" end="98" type="uint"/>
+  </struct>
+
+  <struct name="SAMPLER_STATE_8X8_AVS_COEFFICIENTS" length="8">
+    <field name="Table 0Y Filter Coefficient[n,1]" start="24" end="31" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,1]" start="16" end="23" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,0]" start="8" end="15" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,0]" start="0" end="7" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,3]" start="56" end="63" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,3]" start="48" end="55" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,2]" start="40" end="47" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,2]" start="32" end="39" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,5]" start="88" end="95" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,5]" start="80" end="87" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,4]" start="72" end="79" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,4]" start="64" end="71" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,7]" start="120" end="127" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,7]" start="112" end="119" type="s1.6"/>
+    <field name="Table 0Y Filter Coefficient[n,6]" start="104" end="111" type="s1.6"/>
+    <field name="Table 0X Filter Coefficient[n,6]" start="96" end="103" type="s1.6"/>
+    <field name="Table 1X Filter Coefficient[n,3]" start="152" end="159" type="s1.6"/>
+    <field name="Table 1X Filter Coefficient[n,2]" start="144" end="151" type="s1.6"/>
+    <field name="Table 1X Filter Coefficient[n,5]" start="168" end="175" type="s1.6"/>
+    <field name="Table 1X Filter Coefficient[n,4]" start="160" end="167" type="s1.6"/>
+    <field name="Table 1Y Filter Coefficient[n,3]" start="216" end="223" type="s1.6"/>
+    <field name="Table 1Y Filter Coefficient[n,2]" start="208" end="215" type="s1.6"/>
+    <field name="Table 1Y Filter Coefficient[n,5]" start="232" end="239" type="s1.6"/>
+    <field name="Table 1Y Filter Coefficient[n,4]" start="224" end="231" type="s1.6"/>
+  </struct>
+
+  <instruction name="3DPRIMITIVE" bias="2" length="7">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="0"/>
+    <field name="Extended Parameters Present" start="11" end="11" type="uint"/>
+    <field name="Indirect Parameter Enable" start="10" end="10" type="bool"/>
+    <field name="UAV Coherency Required" start="9" end="9" type="bool"/>
+    <field name="Predicate Enable" start="8" end="8" type="bool"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="5"/>
+    <field name="End Offset Enable" start="41" end="41" type="bool"/>
+    <field name="Vertex Access Type" start="40" end="40" type="uint">
+      <value name="SEQUENTIAL" value="0"/>
+      <value name="RANDOM" value="1"/>
+    </field>
+    <field name="Primitive Topology Type" start="32" end="37" type="3D_Prim_Topo_Type"/>
+    <field name="Vertex Count Per Instance" start="64" end="95" type="uint"/>
+    <field name="Start Vertex Location" start="96" end="127" type="uint"/>
+    <field name="Instance Count" start="128" end="159" type="uint"/>
+    <field name="Start Instance Location" start="160" end="191" type="uint"/>
+    <field name="Base Vertex Location" start="192" end="223" type="int"/>
+    <field name="Extended Parameter 0" start="224" end="255" type="uint"/>
+    <field name="Extended Parameter 1" start="256" end="287" type="uint"/>
+    <field name="Extended Parameter 2" start="288" end="319" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_AA_LINE_PARAMETERS" bias="2" length="3">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="AA Point Coverage Bias" start="56" end="63" type="u0.8"/>
+    <field name="AA Coverage Bias" start="48" end="55" type="u0.8"/>
+    <field name="AA Point Coverage Slope" start="40" end="47" type="u0.8"/>
+    <field name="AA Coverage Slope" start="32" end="39" type="u0.8"/>
+    <field name="AA Point Coverage EndCap Bias" start="88" end="95" type="u0.8"/>
+    <field name="AA Coverage EndCap Bias" start="80" end="87" type="u0.8"/>
+    <field name="AA Point Coverage EndCap Slope" start="72" end="79" type="u0.8"/>
+    <field name="AA Coverage EndCap Slope" start="64" end="71" type="u0.8"/>
+  </instruction>
+
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_DS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="70"/>
+    <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
+    <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
+    <field name="Binding Table Edit Target" start="32" end="33" type="uint">
+      <value name="All Cores" value="3"/>
+      <value name="Core 1" value="2"/>
+      <value name="Core 0" value="1"/>
+    </field>
+    <group count="0" start="64" size="32">
+      <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_GS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="68"/>
+    <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
+    <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
+    <field name="Binding Table Edit Target" start="32" end="33" type="uint">
+      <value name="All Cores" value="3"/>
+      <value name="Core 1" value="2"/>
+      <value name="Core 0" value="1"/>
+    </field>
+    <group count="0" start="64" size="32">
+      <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_HS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="69"/>
+    <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
+    <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
+    <field name="Binding Table Edit Target" start="32" end="33" type="uint">
+      <value name="All Cores" value="3"/>
+      <value name="Core 1" value="2"/>
+      <value name="Core 0" value="1"/>
+    </field>
+    <group count="0" start="64" size="32">
+      <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_PS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="71"/>
+    <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
+    <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
+    <field name="Binding Table Edit Target" start="32" end="33" type="uint">
+      <value name="All Cores" value="3"/>
+      <value name="Core 1" value="2"/>
+      <value name="Core 0" value="1"/>
+    </field>
+    <group count="0" start="64" size="32">
+      <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_BINDING_TABLE_EDIT_VS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="67"/>
+    <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
+    <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
+    <field name="Binding Table Edit Target" start="32" end="33" type="uint">
+      <value name="All Cores" value="3"/>
+      <value name="Core 1" value="2"/>
+      <value name="Core 0" value="1"/>
+    </field>
+    <group count="0" start="64" size="32">
+      <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_BINDING_TABLE_POINTERS_DS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="40"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="41"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="39"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="42"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="38"/>
+    <field name="DWord Length" start="0" end="7" 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="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
+    <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="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
+      <value name="No Valid Data" value="0"/>
+    </field>
+  </instruction>
+
+  <instruction name="3DSTATE_BLEND_STATE_POINTERS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="36"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Blend State Pointer" start="38" end="63" type="offset"/>
+    <field name="Blend State Pointer Valid" start="32" end="32" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CC_STATE_POINTERS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="14"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Color Calc State Pointer" start="38" end="63" type="offset"/>
+    <field name="Color Calc State Pointer Valid" start="32" end="32" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CHROMA_KEY" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="ChromaKey Table Index" start="62" end="63" type="uint"/>
+    <field name="ChromaKey Low Value" start="64" end="95" type="uint"/>
+    <field name="ChromaKey High Value" start="96" end="127" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CLEAR_PARAMS" bias="2" length="3">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Depth Clear Value" start="32" end="63" type="float"/>
+    <field name="Depth Clear Value Valid" start="64" end="64" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CLIP" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="18"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Force User Clip Distance Cull Test Enable Bitmask" start="52" end="52" type="bool"/>
+    <field name="Vertex Sub Pixel Precision Select" start="51" end="51" type="uint">
+      <value name="8 Bit" value="0"/>
+      <value name="4 Bit" value="1"/>
+    </field>
+    <field name="Early Cull Enable" start="50" end="50" type="bool"/>
+    <field name="Force User Clip Distance Clip Test Enable Bitmask" start="49" end="49" type="bool"/>
+    <field name="Force Clip Mode" start="48" end="48" type="bool"/>
+    <field name="Statistics Enable" start="42" end="42" type="bool"/>
+    <field name="User Clip Distance Cull Test Enable Bitmask" start="32" end="39" type="uint"/>
+    <field name="Clip Enable" start="95" end="95" type="bool"/>
+    <field name="API Mode" start="94" end="94" type="uint">
+      <value name="APIMODE_OGL" value="0"/>
+      <value name="APIMODE_D3D" value="1"/>
+    </field>
+    <field name="Viewport XY Clip Test Enable" start="92" end="92" type="bool"/>
+    <field name="Guardband Clip Test Enable" start="90" end="90" type="bool"/>
+    <field name="User Clip Distance Clip Test Enable Bitmask" start="80" end="87" type="uint"/>
+    <field name="Clip Mode" start="77" end="79" type="uint">
+      <value name="CLIPMODE_NORMAL" value="0"/>
+      <value name="CLIPMODE_REJECT_ALL" value="3"/>
+      <value name="CLIPMODE_ACCEPT_ALL" value="4"/>
+    </field>
+    <field name="Perspective Divide Disable" start="73" end="73" type="bool"/>
+    <field name="Non-Perspective Barycentric Enable" start="72" end="72" type="bool"/>
+    <field name="Triangle Strip/List Provoking Vertex Select" start="68" end="69" type="uint"/>
+    <field name="Line Strip/List Provoking Vertex Select" start="66" end="67" type="uint"/>
+    <field name="Triangle Fan Provoking Vertex Select" start="64" end="65" type="uint"/>
+    <field name="Minimum Point Width" start="113" end="123" type="u8.3"/>
+    <field name="Maximum Point Width" start="102" end="112" type="u8.3"/>
+    <field name="Force Zero RTA Index Enable" start="101" end="101" type="bool"/>
+    <field name="Maximum VP Index" start="96" end="99" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CONSTANT_DS" bias="2" length="11">
+    <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="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="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CONSTANT_GS" bias="2" length="11">
+    <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="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="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CONSTANT_HS" bias="2" length="11">
+    <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="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="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CONSTANT_PS" bias="2" length="11">
+    <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="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="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
+  </instruction>
+
+  <instruction name="3DSTATE_CONSTANT_VS" bias="2" length="11">
+    <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="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="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
+  </instruction>
+
+  <instruction name="3DSTATE_DEPTH_BUFFER" bias="2" length="8">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="5"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="6"/>
+    <field name="Surface Type" start="61" end="63" type="uint">
+      <value name="SURFTYPE_2D" value="1"/>
+      <value name="SURFTYPE_CUBE" value="3"/>
+      <value name="SURFTYPE_NULL" value="7"/>
+    </field>
+    <field name="Depth Write Enable" start="60" end="60" type="bool"/>
+    <field name="Stencil Write Enable" start="59" end="59" type="bool"/>
+    <field name="Hierarchical Depth Buffer Enable" start="54" end="54" type="bool"/>
+    <field name="Surface Format" start="50" end="52" type="uint">
+      <value name="D32_FLOAT" value="1"/>
+      <value name="D24_UNORM_X8_UINT" value="3"/>
+      <value name="D16_UNORM" value="5"/>
+    </field>
+    <field name="Surface Pitch" start="32" end="49" type="uint"/>
+    <field name="Surface Base Address" start="64" end="127" type="address"/>
+    <field name="Height" start="146" end="159" type="uint"/>
+    <field name="Width" start="132" end="145" type="uint"/>
+    <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="Tiled Resource Mode" start="222" end="223" type="uint">
+      <value name="NONE" value="0"/>
+      <value name="TILEYF" value="1"/>
+      <value name="TILEYS" value="2"/>
+    </field>
+    <field name="Mip Tail Start LOD" start="218" end="221" 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>
+
+  <instruction name="3DSTATE_DRAWING_RECTANGLE" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="0"/>
+    <field name="Core Mode Select" start="14" end="15" type="uint">
+      <value name="Legacy" value="0"/>
+      <value name="Core 0 Enabled" value="1"/>
+      <value name="Core 1 Enabled" value="2"/>
+    </field>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Clipped Drawing Rectangle Y Min" start="48" end="63" type="uint"/>
+    <field name="Clipped Drawing Rectangle X Min" start="32" end="47" type="uint"/>
+    <field name="Clipped Drawing Rectangle Y Max" start="80" end="95" type="uint"/>
+    <field name="Clipped Drawing Rectangle X Max" start="64" end="79" type="uint"/>
+    <field name="Drawing Rectangle Origin Y" start="112" end="127" type="int"/>
+    <field name="Drawing Rectangle Origin X" start="96" end="111" type="int"/>
+  </instruction>
+
+  <instruction name="3DSTATE_DS" bias="2" length="11">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="29"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <field name="Kernel Start Pointer" start="38" end="95" type="offset"/>
+    <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
+    <field name="Sampler Count" start="123" end="125" type="uint">
+      <value name="No Samplers" value="0"/>
+      <value name="1-4 Samplers" value="1"/>
+      <value name="5-8 Samplers" value="2"/>
+      <value name="9-12 Samplers" value="3"/>
+      <value name="13-16 Samplers" value="4"/>
+    </field>
+    <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
+    <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
+      <value name="High" value="1"/>
+    </field>
+    <field name="Floating Point Mode" start="112" end="112" type="uint">
+      <value name="IEEE-754" value="0"/>
+      <value name="Alternate" value="1"/>
+    </field>
+    <field name="Accesses UAV" start="110" end="110" type="bool"/>
+    <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
+    <field name="Software Exception Enable" start="103" end="103" type="bool"/>
+    <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
+    <field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
+    <field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
+    <field name="Patch URB Entry Read Length" start="203" end="209" type="uint"/>
+    <field name="Patch URB Entry Read Offset" start="196" end="201" type="uint"/>
+    <field name="Maximum Number of Threads" start="245" end="254" type="uint"/>
+    <field name="Statistics Enable" start="234" end="234" type="bool"/>
+    <field name="Dispatch Mode" start="227" end="228" type="uint" prefix="DISPATCH_MODE">
+      <value name="SIMD4X2" value="0"/>
+      <value name="SIMD8_SINGLE_PATCH" value="1"/>
+      <value name="SIMD8_SINGLE_OR_DUAL_PATCH" value="2"/>
+    </field>
+    <field name="Compute W Coordinate Enable" start="226" end="226" type="bool"/>
+    <field name="Cache Disable" start="225" end="225" type="bool"/>
+    <field name="Enable" start="224" end="224" type="bool"/>
+    <field name="Vertex URB Entry Output Read Offset" start="277" end="282" type="uint"/>
+    <field name="Vertex URB Entry Output Length" start="272" end="276" type="uint"/>
+    <field name="User Clip Distance Clip Test Enable Bitmask" start="264" end="271" type="uint"/>
+    <field name="User Clip Distance Cull Test Enable Bitmask" start="256" end="263" type="uint"/>
+    <field name="DUAL_PATCH Kernel Start Pointer" start="294" end="351" type="offset"/>
+  </instruction>
+
+  <instruction name="3DSTATE_GATHER_CONSTANT_DS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="55"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
+    <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
+    <field name="Update Gather Table Only" start="33" end="33" type="uint">
+      <value name="Commit Gather" value="0"/>
+      <value name="Non-Commit Gather" value="1"/>
+    </field>
+    <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
+    <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
+    <field name="On-Die Table" start="67" end="67" type="uint">
+      <value name="Load" value="0"/>
+      <value name="Read" value="1"/>
+    </field>
+    <group count="0" start="96" size="32">
+      <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
+      <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_GATHER_CONSTANT_GS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="53"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
+    <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
+    <field name="Update Gather Table Only" start="33" end="33" type="uint">
+      <value name="Commit Gather" value="0"/>
+      <value name="Non-Commit Gather" value="1"/>
+    </field>
+    <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
+    <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
+    <field name="On-Die Table" start="67" end="67" type="uint">
+      <value name="Load" value="0"/>
+      <value name="Read" value="1"/>
+    </field>
+    <group count="0" start="96" size="32">
+      <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
+      <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_GATHER_CONSTANT_HS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="54"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
+    <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
+    <field name="Update Gather Table Only" start="33" end="33" type="uint">
+      <value name="Commit Gather" value="0"/>
+      <value name="Non-Commit Gather" value="1"/>
+    </field>
+    <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
+    <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
+    <field name="On-Die Table" start="67" end="67" type="uint">
+      <value name="Load" value="0"/>
+      <value name="Read" value="1"/>
+    </field>
+    <group count="0" start="96" size="32">
+      <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
+      <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_GATHER_CONSTANT_PS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="56"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
+    <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
+    <field name="Update Gather Table Only" start="33" end="33" type="uint">
+      <value name="Commit Gather" value="0"/>
+      <value name="Non-Commit Gather" value="1"/>
+    </field>
+    <field name="DX9 On-Die Register Read Enable" start="32" end="32" type="bool"/>
+    <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
+    <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
+    <field name="Constant Buffer Dx9 Enable" start="68" end="68" type="bool"/>
+    <field name="On-Die Table" start="67" end="67" type="uint">
+      <value name="Load" value="0"/>
+      <value name="Read" value="1"/>
+    </field>
+    <group count="0" start="96" size="32">
+      <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
+      <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_GATHER_CONSTANT_VS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="52"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
+    <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
+    <field name="Update Gather Table Only" start="33" end="33" type="uint">
+      <value name="Commit Gather" value="0"/>
+      <value name="Non-Commit Gather" value="1"/>
+    </field>
+    <field name="DX9 On-Die Register Read Enable" start="32" end="32" type="bool"/>
+    <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
+    <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
+    <field name="Constant Buffer Dx9 Enable" start="68" end="68" type="bool"/>
+    <field name="On-Die Table" start="67" end="67" type="uint">
+      <value name="Load" value="0"/>
+      <value name="Read" value="1"/>
+    </field>
+    <group count="0" start="96" size="32">
+      <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
+      <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_GATHER_POOL_ALLOC" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
+    <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="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_GS" bias="2" length="10">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="17"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="8"/>
+    <field name="Kernel Start Pointer" start="38" end="95" type="offset"/>
+    <field name="Single Program Flow" start="127" end="127" type="bool"/>
+    <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
+    <field name="Sampler Count" start="123" end="125" type="uint">
+      <value name="No Samplers" value="0"/>
+      <value name="1-4 Samplers" value="1"/>
+      <value name="5-8 Samplers" value="2"/>
+      <value name="9-12 Samplers" value="3"/>
+      <value name="13-16 Samplers" value="4"/>
+    </field>
+    <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
+    <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
+      <value name="High" value="1"/>
+    </field>
+    <field name="Floating Point Mode" start="112" end="112" type="uint">
+      <value name="IEEE-754" value="0"/>
+      <value name="Alternate" value="1"/>
+    </field>
+    <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
+    <field name="Accesses UAV" start="108" end="108" type="bool"/>
+    <field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
+    <field name="Software Exception Enable" start="103" end="103" type="bool"/>
+    <field name="Expected Vertex Count" start="96" end="101" type="uint"/>
+    <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
+    <field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
+    <field name="Dispatch GRF Start Register For URB Data [5:4]" start="221" end="222" type="uint"/>
+    <field name="Output Vertex Size" start="215" end="220" type="uint"/>
+    <field name="Output Topology" start="209" end="214" type="3D_Prim_Topo_Type"/>
+    <field name="Vertex URB Entry Read Length" start="203" end="208" type="uint"/>
+    <field name="Include Vertex Handles" start="202" end="202" type="bool"/>
+    <field name="Vertex URB Entry Read Offset" start="196" end="201" type="uint"/>
+    <field name="Dispatch GRF Start Register For URB Data" start="192" end="195" type="uint"/>
+    <field name="Control Data Header Size" start="244" end="247" type="uint"/>
+    <field name="Instance Control" start="239" end="243" type="uint"/>
+    <field name="Default Stream Id" start="237" end="238" type="uint"/>
+    <field name="Dispatch Mode" start="235" end="236" type="uint" prefix="DISPATCH_MODE">
+      <value name="Dual Instance" value="1"/>
+      <value name="Dual Object" value="2"/>
+      <value name="SIMD8" value="3"/>
+    </field>
+    <field name="Statistics Enable" start="234" end="234" type="bool"/>
+    <field name="Invocations Increment Value" start="229" end="233" type="uint"/>
+    <field name="Include Primitive ID" start="228" end="228" type="bool"/>
+    <field name="Hint" start="227" end="227" type="uint"/>
+    <field name="Reorder Mode" start="226" end="226" type="uint">
+      <value name="LEADING" value="0"/>
+      <value name="TRAILING" value="1"/>
+    </field>
+    <field name="Discard Adjacency" start="225" end="225" type="bool"/>
+    <field name="Enable" start="224" end="224" type="bool"/>
+    <field name="Control Data Format" start="287" end="287" type="uint">
+      <value name="CUT" value="0"/>
+      <value name="SID" value="1"/>
+    </field>
+    <field name="Static Output" start="286" end="286" type="bool"/>
+    <field name="Static Output Vertex Count" start="272" end="282" type="uint"/>
+    <field name="Maximum Number of Threads" start="256" end="264" type="uint"/>
+    <field name="Vertex URB Entry Output Read Offset" start="309" end="314" type="uint"/>
+    <field name="Vertex URB Entry Output Length" start="304" end="308" type="uint"/>
+    <field name="User Clip Distance Clip Test Enable Bitmask" start="296" end="303" type="uint"/>
+    <field name="User Clip Distance Cull Test Enable Bitmask" start="288" end="295" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_HIER_DEPTH_BUFFER" bias="2" length="5">
+    <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="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="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"/>
+  </instruction>
+
+  <instruction name="3DSTATE_HS" bias="2" length="9">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="27"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
+    <field name="Sampler Count" start="59" end="61" type="uint">
+      <value name="No Samplers" value="0"/>
+      <value name="1-4 Samplers" value="1"/>
+      <value name="5-8 Samplers" value="2"/>
+      <value name="9-12 Samplers" value="3"/>
+      <value name="13-16 Samplers" value="4"/>
+    </field>
+    <field name="Binding Table Entry Count" start="50" end="57" type="uint"/>
+    <field name="Thread Dispatch Priority" start="49" end="49" type="uint">
+      <value name="High" value="1"/>
+    </field>
+    <field name="Floating Point Mode" start="48" end="48" type="uint">
+      <value name="IEEE-754" value="0"/>
+      <value name="alternate" value="1"/>
+    </field>
+    <field name="Illegal Opcode Exception Enable" start="45" end="45" type="bool"/>
+    <field name="Software Exception Enable" start="44" end="44" type="bool"/>
+    <field name="Enable" start="95" end="95" type="bool"/>
+    <field name="Statistics Enable" start="93" end="93" type="bool"/>
+    <field name="Maximum Number of Threads" start="72" end="80" type="uint"/>
+    <field name="Instance Count" start="64" end="67" type="uint"/>
+    <field name="Kernel Start Pointer" start="102" end="159" type="offset"/>
+    <field name="Scratch Space Base Pointer" start="170" end="223" type="address"/>
+    <field name="Per-Thread Scratch Space" start="160" end="163" type="uint"/>
+    <field name="Dispatch GRF Start Register For URB Data [5]" start="252" end="252" type="uint"/>
+    <field name="Single Program Flow" start="251" end="251" type="bool"/>
+    <field name="Vector Mask Enable" start="250" end="250" type="bool"/>
+    <field name="Accesses UAV" start="249" end="249" type="bool"/>
+    <field name="Include Vertex Handles" start="248" end="248" type="bool"/>
+    <field name="Dispatch GRF Start Register For URB Data" start="243" end="247" type="uint"/>
+    <field name="Dispatch Mode" start="241" end="242" type="uint" prefix="DISPATCH_MODE">
+      <value name="SINGLE_PATCH" value="0"/>
+      <value name="DUAL_PATCH" value="1"/>
+      <value name="8_PATCH" value="2"/>
+    </field>
+    <field name="Vertex URB Entry Read Length" start="235" end="240" type="uint"/>
+    <field name="Vertex URB Entry Read Offset" start="228" end="233" type="uint"/>
+    <field name="Include Primitive ID" start="224" end="224" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_INDEX_BUFFER" bias="2" length="5">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <field name="Index Format" start="40" end="41" type="uint" prefix="INDEX">
+      <value name="BYTE" value="0"/>
+      <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="Buffer Starting Address" start="64" end="127" type="address"/>
+    <field name="Buffer Size" start="128" end="159" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_LINE_STIPPLE" bias="2" length="3">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="8"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Modify Enable (Current Repeat Counter, Current Stipple Index)" start="63" end="63" type="bool"/>
+    <field name="Current Repeat Counter" start="53" end="61" type="uint"/>
+    <field name="Current Stipple Index" start="48" end="51" type="uint"/>
+    <field name="Line Stipple Pattern" start="32" end="47" type="uint"/>
+    <field name="Line Stipple Inverse Repeat Count" start="79" end="95" type="u1.16"/>
+    <field name="Line Stipple Repeat Count" start="64" end="72" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_MONOFILTER_SIZE" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="17"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Monochrome Filter Width" start="35" end="37" type="uint"/>
+    <field name="Monochrome Filter Height" start="32" end="34" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_MULTISAMPLE" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="13"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Pixel Position Offset Enable" start="37" end="37" type="bool"/>
+    <field name="Pixel Location" start="36" end="36" type="uint">
+      <value name="CENTER" value="0"/>
+      <value name="UL_CORNER" value="1"/>
+    </field>
+    <field name="Number of Multisamples" start="33" end="35" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_POLY_STIPPLE_OFFSET" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Polygon Stipple X Offset" start="40" end="44" type="uint"/>
+    <field name="Polygon Stipple Y Offset" start="32" end="36" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_POLY_STIPPLE_PATTERN" bias="2" length="33">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="31"/>
+    <group count="32" start="32" size="32">
+      <field name="Pattern Row" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_PS" bias="2" length="12">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="32"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="10"/>
+    <field name="Kernel Start Pointer 0" start="38" end="95" type="offset"/>
+    <field name="Single Program Flow" start="127" end="127" type="bool"/>
+    <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
+    <field name="Sampler Count" start="123" end="125" type="uint">
+      <value name="No Samplers" value="0"/>
+      <value name="1-4 Samplers" value="1"/>
+      <value name="5-8 Samplers" value="2"/>
+      <value name="9-12 Samplers" value="3"/>
+      <value name="13-16 Samplers" value="4"/>
+    </field>
+    <field name="Single Precision Denormal Mode" start="122" end="122" type="uint">
+      <value name="Flushed to Zero" value="0"/>
+      <value name="Retained" value="1"/>
+    </field>
+    <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
+    <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
+      <value name="High" value="1"/>
+    </field>
+    <field name="Floating Point Mode" start="112" end="112" type="uint">
+      <value name="IEEE-754" value="0"/>
+      <value name="Alternate" value="1"/>
+    </field>
+    <field name="Rounding Mode" start="110" end="111" type="uint">
+      <value name="RTNE" value="0"/>
+      <value name="RU" value="1"/>
+      <value name="RD" value="2"/>
+      <value name="RTZ" value="3"/>
+    </field>
+    <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
+    <field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
+    <field name="Software Exception Enable" start="103" end="103" type="bool"/>
+    <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
+    <field name="Per Thread Scratch Space" start="128" end="131" type="uint"/>
+    <field name="Maximum Number of Threads Per PSD" start="215" end="223" type="uint"/>
+    <field name="Push Constant Enable" start="203" end="203" type="bool"/>
+    <field name="Render Target Fast Clear Enable" start="200" end="200" type="bool"/>
+    <field name="Render Target Resolve Type" start="198" end="199" type="uint">
+      <value name="RESOLVE_DISABLED" value="0"/>
+      <value name="RESOLVE_PARTIAL" value="1"/>
+      <value name="FAST_CLEAR_0" value="2"/>
+      <value name="RESOLVE_FULL" value="3"/>
+    </field>
+    <field name="Position XY Offset Select" start="195" end="196" type="uint">
+      <value name="POSOFFSET_NONE" value="0"/>
+      <value name="POSOFFSET_CENTROID" value="2"/>
+      <value name="POSOFFSET_SAMPLE" value="3"/>
+    </field>
+    <field name="32 Pixel Dispatch Enable" start="194" end="194" type="bool"/>
+    <field name="16 Pixel Dispatch Enable" start="193" end="193" type="bool"/>
+    <field name="8 Pixel Dispatch Enable" start="192" end="192" type="bool"/>
+    <field name="Dispatch GRF Start Register For Constant/Setup Data 0" start="240" end="246" type="uint"/>
+    <field name="Dispatch GRF Start Register For Constant/Setup Data 1" start="232" end="238" type="uint"/>
+    <field name="Dispatch GRF Start Register For Constant/Setup Data 2" start="224" end="230" type="uint"/>
+    <field name="Kernel Start Pointer 1" start="262" end="319" type="offset"/>
+    <field name="Kernel Start Pointer 2" start="326" end="383" type="offset"/>
+  </instruction>
+
+  <instruction name="3DSTATE_PS_BLEND" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="77"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Alpha To Coverage Enable" start="63" end="63" type="bool"/>
+    <field name="Has Writeable RT" start="62" end="62" type="bool"/>
+    <field name="Color Buffer Blend Enable" start="61" end="61" type="bool"/>
+    <field name="Source Alpha Blend Factor" start="56" end="60" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Destination Alpha Blend Factor" start="51" end="55" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Source Blend Factor" start="46" end="50" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Destination Blend Factor" start="41" end="45" type="3D_Color_Buffer_Blend_Factor"/>
+    <field name="Alpha Test Enable" start="40" end="40" type="bool"/>
+    <field name="Independent Alpha Blend Enable" start="39" end="39" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_PS_EXTRA" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="79"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Pixel Shader Valid" start="63" end="63" type="bool"/>
+    <field name="Pixel Shader Does not write to RT" start="62" end="62" type="bool"/>
+    <field name="oMask Present to Render Target" start="61" end="61" type="bool"/>
+    <field name="Pixel Shader Kills Pixel" start="60" end="60" type="bool"/>
+    <field name="Pixel Shader Computed Depth Mode" start="58" end="59" type="uint">
+      <value name="PSCDEPTH_OFF" value="0"/>
+      <value name="PSCDEPTH_ON" value="1"/>
+      <value name="PSCDEPTH_ON_GE" value="2"/>
+      <value name="PSCDEPTH_ON_LE" value="3"/>
+    </field>
+    <field name="Force Computed Depth" start="57" end="57" type="bool"/>
+    <field name="Pixel Shader Uses Source Depth" start="56" end="56" type="bool"/>
+    <field name="Pixel Shader Uses Source W" start="55" end="55" type="bool"/>
+    <field name="Pixel Shader Requires Source Depth and/or W Plane Coefficients" start="53" end="53" type="bool"/>
+    <field name="Pixel Shader Requires Perspective Bary Plane Coefficients" start="52" end="52" type="bool"/>
+    <field name="Pixel Shader Requires Non-Perspective Bary Plane Coefficients" start="51" end="51" type="bool"/>
+    <field name="Pixel Shader Requires Subpixel Sample Offsets" start="50" end="50" type="bool"/>
+    <field name="Simple PS Hint" start="41" end="41" type="bool"/>
+    <field name="Attribute Enable" start="40" end="40" type="bool"/>
+    <field name="Pixel Shader Disables Alpha To Coverage" start="39" end="39" type="bool"/>
+    <field name="Pixel Shader Is Per Sample" start="38" end="38" type="bool"/>
+    <field name="Pixel Shader Computes Stencil" start="37" end="37" type="bool"/>
+    <field name="Pixel Shader Pulls Bary" start="35" end="35" type="bool"/>
+    <field name="Pixel Shader Has UAV" start="34" end="34" type="bool"/>
+    <field name="Input Coverage Mask State" start="32" end="33" type="uint" prefix="ICMS">
+      <value name="NONE" value="0"/>
+      <value name="NORMAL" value="1"/>
+      <value name="INNER_CONSERVATIVE" value="2"/>
+      <value name="DEPTH_COVERAGE" value="3"/>
+    </field>
+  </instruction>
+
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_DS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="20"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
+    <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_GS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
+    <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_HS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="19"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
+    <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_PS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
+    <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_VS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="18"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
+    <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_RASTER" bias="2" length="5">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="80"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <field name="Viewport Z Far Clip Test Enable" start="58" end="58" type="bool"/>
+    <field name="Conservative Rasterization Enable" start="56" end="56" type="bool"/>
+    <field name="API Mode" start="54" end="55" type="uint">
+      <value name="DX9/OGL" value="0"/>
+      <value name="DX10.0" value="1"/>
+      <value name="DX10.1+" value="2"/>
+    </field>
+    <field name="Front Winding" start="53" end="53" type="uint">
+      <value name="Clockwise" value="0"/>
+      <value name="Counter Clockwise" value="1"/>
+    </field>
+    <field name="Forced Sample Count" start="50" end="52" type="uint" prefix="FSC">
+      <value name="NUMRASTSAMPLES_0" value="0"/>
+      <value name="NUMRASTSAMPLES_1" value="1"/>
+      <value name="NUMRASTSAMPLES_2" value="2"/>
+      <value name="NUMRASTSAMPLES_4" value="3"/>
+      <value name="NUMRASTSAMPLES_8" value="4"/>
+      <value name="NUMRASTSAMPLES_16" value="5"/>
+    </field>
+    <field name="Cull Mode" start="48" end="49" type="uint" prefix="CULLMODE">
+      <value name="BOTH" value="0"/>
+      <value name="NONE" value="1"/>
+      <value name="FRONT" value="2"/>
+      <value name="BACK" value="3"/>
+    </field>
+    <field name="Force Multisampling" start="46" end="46" type="uint"/>
+    <field name="Smooth Point Enable" start="45" end="45" type="bool"/>
+    <field name="DX Multisample Rasterization Enable" start="44" end="44" type="bool"/>
+    <field name="DX Multisample Rasterization Mode" start="42" end="43" type="uint">
+      <value name="MSRASTMODE_ OFF_PIXEL" value="0"/>
+      <value name="MSRASTMODE_ OFF_PATTERN" value="1"/>
+      <value name="MSRASTMODE_ ON_PIXEL" value="2"/>
+      <value name="MSRASTMODE_ ON_PATTERN" value="3"/>
+    </field>
+    <field name="Global Depth Offset Enable Solid" start="41" end="41" type="bool"/>
+    <field name="Global Depth Offset Enable Wireframe" start="40" end="40" type="bool"/>
+    <field name="Global Depth Offset Enable Point" start="39" end="39" type="bool"/>
+    <field name="Front Face Fill Mode" start="37" end="38" type="uint" prefix="FILL_MODE">
+      <value name="SOLID" value="0"/>
+      <value name="WIREFRAME" value="1"/>
+      <value name="POINT" value="2"/>
+    </field>
+    <field name="Back Face Fill Mode" start="35" end="36" type="uint" prefix="FILL_MODE">
+      <value name="SOLID" value="0"/>
+      <value name="WIREFRAME" value="1"/>
+      <value name="POINT" value="2"/>
+    </field>
+    <field name="Antialiasing Enable" start="34" end="34" type="bool"/>
+    <field name="Scissor Rectangle Enable" start="33" end="33" type="bool"/>
+    <field name="Viewport Z Near Clip Test Enable" start="32" end="32" type="bool"/>
+    <field name="Global Depth Offset Constant" start="64" end="95" type="float"/>
+    <field name="Global Depth Offset Scale" start="96" end="127" type="float"/>
+    <field name="Global Depth Offset Clamp" start="128" end="159" type="float"/>
+  </instruction>
+
+  <instruction name="3DSTATE_RS_CONSTANT_POINTER" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="84"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Shader Select" start="60" end="62" type="uint">
+      <value name="VS" value="0"/>
+      <value name="PS" value="4"/>
+    </field>
+    <field name="Operation Load or Store" start="44" end="44" type="uint" prefix="RS">
+      <value name="Store" value="0"/>
+      <value name="Load" value="1"/>
+    </field>
+    <field name="Global Constant Buffer Address" start="70" end="95" type="address"/>
+    <field name="Global Constant Buffer Address High" start="96" end="127" type="address"/>
+  </instruction>
+
+  <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD0" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="7" type="uint"/>
+    <group count="0" start="32" size="32">
+      <field name="Entry" start="0" end="31" type="PALETTE_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD1" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="12"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <group count="0" start="32" size="32">
+      <field name="Palette Alpha[0:N-1]" start="24" end="31" type="uint"/>
+      <field name="Palette Red[0:N-1]" start="16" end="23" type="uint"/>
+      <field name="Palette Green[0:N-1]" start="8" end="15" type="uint"/>
+      <field name="Palette Blue[0:N-1]" start="0" end="7" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_DS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="45"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="46"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="44"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="47"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="43"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Sample Mask" start="32" end="47" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_SAMPLE_PATTERN" bias="2" length="9">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="28"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
+    <field name="16x Sample3 X Offset" start="60" end="63" type="u0.4"/>
+    <field name="16x Sample3 Y Offset" start="56" end="59" type="u0.4"/>
+    <field name="16x Sample2 X Offset" start="52" end="55" type="u0.4"/>
+    <field name="16x Sample2 Y Offset" start="48" end="51" type="u0.4"/>
+    <field name="16x Sample1 X Offset" start="44" end="47" type="u0.4"/>
+    <field name="16x Sample1 Y Offset" start="40" end="43" type="u0.4"/>
+    <field name="16x Sample0 X Offset" start="36" end="39" type="u0.4"/>
+    <field name="16x Sample0 Y Offset" start="32" end="35" type="u0.4"/>
+    <field name="16x Sample7 X Offset" start="92" end="95" type="u0.4"/>
+    <field name="16x Sample7 Y Offset" start="88" end="91" type="u0.4"/>
+    <field name="16x Sample6 X Offset" start="84" end="87" type="u0.4"/>
+    <field name="16x Sample6 Y Offset" start="80" end="83" type="u0.4"/>
+    <field name="16x Sample5 X Offset" start="76" end="79" type="u0.4"/>
+    <field name="16x Sample5 Y Offset" start="72" end="75" type="u0.4"/>
+    <field name="16x Sample4 X Offset" start="68" end="71" type="u0.4"/>
+    <field name="16x Sample4 Y Offset" start="64" end="67" type="u0.4"/>
+    <field name="16x Sample11 X Offset" start="124" end="127" type="u0.4"/>
+    <field name="16x Sample11 Y Offset" start="120" end="123" type="u0.4"/>
+    <field name="16x Sample10 X Offset" start="116" end="119" type="u0.4"/>
+    <field name="16x Sample10 Y Offset" start="112" end="115" type="u0.4"/>
+    <field name="16x Sample9 X Offset" start="108" end="111" type="u0.4"/>
+    <field name="16x Sample9 Y Offset" start="104" end="107" type="u0.4"/>
+    <field name="16x Sample8 X Offset" start="100" end="103" type="u0.4"/>
+    <field name="16x Sample8 Y Offset" start="96" end="99" type="u0.4"/>
+    <field name="16x Sample15 X Offset" start="156" end="159" type="u0.4"/>
+    <field name="16x Sample15 Y Offset" start="152" end="155" type="u0.4"/>
+    <field name="16x Sample14 X Offset" start="148" end="151" type="u0.4"/>
+    <field name="16x Sample14 Y Offset" start="144" end="147" type="u0.4"/>
+    <field name="16x Sample13 X Offset" start="140" end="143" type="u0.4"/>
+    <field name="16x Sample13 Y Offset" start="136" end="139" type="u0.4"/>
+    <field name="16x Sample12 X Offset" start="132" end="135" type="u0.4"/>
+    <field name="16x Sample12 Y Offset" start="128" end="131" type="u0.4"/>
+    <field name="8x Sample7 X Offset" start="188" end="191" type="u0.4"/>
+    <field name="8x Sample7 Y Offset" start="184" end="187" type="u0.4"/>
+    <field name="8x Sample6 X Offset" start="180" end="183" type="u0.4"/>
+    <field name="8x Sample6 Y Offset" start="176" end="179" type="u0.4"/>
+    <field name="8x Sample5 X Offset" start="172" end="175" type="u0.4"/>
+    <field name="8x Sample5 Y Offset" start="168" end="171" type="u0.4"/>
+    <field name="8x Sample4 X Offset" start="164" end="167" type="u0.4"/>
+    <field name="8x Sample4 Y Offset" start="160" end="163" type="u0.4"/>
+    <field name="8x Sample3 X Offset" start="220" end="223" type="u0.4"/>
+    <field name="8x Sample3 Y Offset" start="216" end="219" type="u0.4"/>
+    <field name="8x Sample2 X Offset" start="212" end="215" type="u0.4"/>
+    <field name="8x Sample2 Y Offset" start="208" end="211" type="u0.4"/>
+    <field name="8x Sample1 X Offset" start="204" end="207" type="u0.4"/>
+    <field name="8x Sample1 Y Offset" start="200" end="203" type="u0.4"/>
+    <field name="8x Sample0 X Offset" start="196" end="199" type="u0.4"/>
+    <field name="8x Sample0 Y Offset" start="192" end="195" type="u0.4"/>
+    <field name="4x Sample3 X Offset" start="252" end="255" type="u0.4"/>
+    <field name="4x Sample3 Y Offset" start="248" end="251" type="u0.4"/>
+    <field name="4x Sample2 X Offset" start="244" end="247" type="u0.4"/>
+    <field name="4x Sample2 Y Offset" start="240" end="243" type="u0.4"/>
+    <field name="4x Sample1 X Offset" start="236" end="239" type="u0.4"/>
+    <field name="4x Sample1 Y Offset" start="232" end="235" type="u0.4"/>
+    <field name="4x Sample0 X Offset" start="228" end="231" type="u0.4"/>
+    <field name="4x Sample0 Y Offset" start="224" end="227" type="u0.4"/>
+    <field name="1x Sample0 X Offset" start="276" end="279" type="u0.4"/>
+    <field name="1x Sample0 Y Offset" start="272" end="275" type="u0.4"/>
+    <field name="2x Sample1 X Offset" start="268" end="271" type="u0.4"/>
+    <field name="2x Sample1 Y Offset" start="264" end="267" type="u0.4"/>
+    <field name="2x Sample0 X Offset" start="260" end="263" type="u0.4"/>
+    <field name="2x Sample0 Y Offset" start="256" end="259" type="u0.4"/>
+  </instruction>
+
+  <instruction name="3DSTATE_SBE" bias="2" length="6">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="31"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="4"/>
+    <field name="Force Vertex URB Entry Read Length" start="61" end="61" type="bool"/>
+    <field name="Force Vertex URB Entry Read Offset" start="60" end="60" type="bool"/>
+    <field name="Number of SF Output Attributes" start="54" end="59" type="uint"/>
+    <field name="Attribute Swizzle Enable" start="53" end="53" type="bool"/>
+    <field name="Point Sprite Texture Coordinate Origin" start="52" end="52" type="uint">
+      <value name="UPPERLEFT" value="0"/>
+      <value name="LOWERLEFT" value="1"/>
+    </field>
+    <field name="Primitive ID Override Component W" start="51" end="51" type="bool"/>
+    <field name="Primitive ID Override Component Z" start="50" end="50" type="bool"/>
+    <field name="Primitive ID Override Component Y" start="49" end="49" type="bool"/>
+    <field name="Primitive ID Override Component X" start="48" end="48" type="bool"/>
+    <field name="Vertex URB Entry Read Length" start="43" end="47" type="uint"/>
+    <field name="Vertex URB Entry Read Offset" start="37" end="42" type="uint"/>
+    <field name="Primitive ID Override Attribute Select" start="32" end="36" type="uint"/>
+    <field name="Point Sprite Texture Coordinate Enable" start="64" end="95" type="uint"/>
+    <field name="Constant Interpolation Enable" start="96" end="127" type="uint"/>
+    <group count="32" start="128" size="2">
+      <field name="Attribute Active Component Format" start="0" end="1" type="uint" prefix="ACTIVE_COMPONENT">
+         <value name="DISABLED" value="0"/>
+         <value name="XY" value="1"/>
+         <value name="XYZ" value="2"/>
+         <value name="XYZW" value="3"/>
+      </field>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_SBE_SWIZ" bias="2" length="11">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="81"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
+    <group count="16" start="32" size="16">
+      <field name="Attribute" start="0" end="15" type="SF_OUTPUT_ATTRIBUTE_DETAIL"/>
+    </group>
+    <group count="16" start="288" size="4">
+      <field name="Attribute Wrap Shortest Enables" start="0" end="3" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_SCISSOR_STATE_POINTERS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="15"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Scissor Rect Pointer" start="37" end="63" type="offset"/>
+  </instruction>
+
+  <instruction name="3DSTATE_SF" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="19"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Line Width" start="44" end="61" type="u11.7"/>
+    <field name="Legacy Global Depth Bias Enable" start="43" end="43" type="bool"/>
+    <field name="Statistics Enable" start="42" end="42" type="bool"/>
+    <field name="Viewport Transform Enable" start="33" end="33" type="bool"/>
+    <field name="Line End Cap Antialiasing Region Width" start="80" end="81" type="uint">
+      <value name="0.5 pixels" value="0"/>
+      <value name="1.0 pixels" value="1"/>
+      <value name="2.0 pixels" value="2"/>
+      <value name="4.0 pixels" value="3"/>
+    </field>
+    <field name="Last Pixel Enable" start="127" end="127" type="bool"/>
+    <field name="Triangle Strip/List Provoking Vertex Select" start="125" end="126" type="uint"/>
+    <field name="Line Strip/List Provoking Vertex Select" start="123" end="124" type="uint"/>
+    <field name="Triangle Fan Provoking Vertex Select" start="121" end="122" type="uint"/>
+    <field name="AA Line Distance Mode" start="110" end="110" type="uint">
+      <value name="AALINEDISTANCE_TRUE" value="1"/>
+    </field>
+    <field name="Smooth Point Enable" start="109" end="109" type="bool"/>
+    <field name="Vertex Sub Pixel Precision Select" start="108" end="108" type="uint"/>
+    <field name="Point Width Source" start="107" end="107" type="uint">
+      <value name="Vertex" value="0"/>
+      <value name="State" value="1"/>
+    </field>
+    <field name="Point Width" start="96" end="106" type="u8.3"/>
+  </instruction>
+
+  <instruction name="3DSTATE_SO_BUFFER" bias="2" length="8">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
+    <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="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="Surface Size" start="128" end="157" type="uint"/>
+    <field name="Stream Output Buffer Offset Address" start="162" end="207" type="address"/>
+    <field name="Stream Offset" start="224" end="255" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_SO_DECL_LIST" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
+    <field name="DWord Length" start="0" end="8" type="uint"/>
+    <field name="Stream to Buffer Selects [3]" start="44" end="47" type="uint"/>
+    <field name="Stream to Buffer Selects [2]" start="40" end="43" type="uint"/>
+    <field name="Stream to Buffer Selects [1]" start="36" end="39" type="uint"/>
+    <field name="Stream to Buffer Selects [0]" start="32" end="35" type="uint"/>
+    <field name="Num Entries [3]" start="88" end="95" type="uint"/>
+    <field name="Num Entries [2]" start="80" end="87" type="uint"/>
+    <field name="Num Entries [1]" start="72" end="79" type="uint"/>
+    <field name="Num Entries [0]" start="64" end="71" type="uint"/>
+    <group count="0" start="96" size="64">
+      <field name="Entry" start="0" end="63" type="SO_DECL_ENTRY"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_STENCIL_BUFFER" bias="2" length="5">
+    <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="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="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"/>
+  </instruction>
+
+  <instruction name="3DSTATE_STREAMOUT" bias="2" length="5">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="30"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <field name="SO Function Enable" start="63" end="63" type="bool"/>
+    <field name="Rendering Disable" start="62" end="62" type="bool"/>
+    <field name="Render Stream Select" start="59" end="60" type="uint"/>
+    <field name="Reorder Mode" start="58" end="58" type="uint">
+      <value name="LEADING" value="0"/>
+      <value name="TRAILING" value="1"/>
+    </field>
+    <field name="SO Statistics Enable" start="57" end="57" type="bool"/>
+    <field name="Force Rendering" start="55" end="56" type="uint">
+      <value name="Resreved" value="1"/>
+      <value name="Force_Off" value="2"/>
+      <value name="Force_on" value="3"/>
+    </field>
+    <field name="Stream 3 Vertex Read Offset" start="93" end="93" type="uint"/>
+    <field name="Stream 3 Vertex Read Length" start="88" end="92" type="uint"/>
+    <field name="Stream 2 Vertex Read Offset" start="85" end="85" type="uint"/>
+    <field name="Stream 2 Vertex Read Length" start="80" end="84" type="uint"/>
+    <field name="Stream 1 Vertex Read Offset" start="77" end="77" type="uint"/>
+    <field name="Stream 1 Vertex Read Length" start="72" end="76" type="uint"/>
+    <field name="Stream 0 Vertex Read Offset" start="69" end="69" type="uint"/>
+    <field name="Stream 0 Vertex Read Length" start="64" end="68" type="uint"/>
+    <field name="Buffer 1 Surface Pitch" start="112" end="123" type="uint"/>
+    <field name="Buffer 0 Surface Pitch" start="96" end="107" type="uint"/>
+    <field name="Buffer 3 Surface Pitch" start="144" end="155" type="uint"/>
+    <field name="Buffer 2 Surface Pitch" start="128" end="139" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_TE" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="28"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Partitioning" start="44" end="45" type="uint">
+      <value name="INTEGER" value="0"/>
+      <value name="ODD_FRACTIONAL" value="1"/>
+      <value name="EVEN_FRACTIONAL" value="2"/>
+    </field>
+    <field name="Output Topology" start="40" end="41" type="uint" prefix="OUTPUT">
+      <value name="POINT" value="0"/>
+      <value name="LINE" value="1"/>
+      <value name="TRI_CW" value="2"/>
+      <value name="TRI_CCW" value="3"/>
+    </field>
+    <field name="TE Domain" start="36" end="37" type="uint">
+      <value name="QUAD" value="0"/>
+      <value name="TRI" value="1"/>
+      <value name="ISOLINE" value="2"/>
+    </field>
+    <field name="TE Mode" start="33" end="34" type="uint">
+      <value name="HW_TESS" value="0"/>
+    </field>
+    <field name="TE Enable" start="32" end="32" type="bool"/>
+    <field name="Maximum Tessellation Factor Odd" start="64" end="95" type="float"/>
+    <field name="Maximum Tessellation Factor Not Odd" start="96" end="127" type="float"/>
+  </instruction>
+
+  <instruction name="3DSTATE_URB_CLEAR" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="29"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="URB Clear Length" start="48" end="61" type="uint"/>
+    <field name="URB Address" start="32" end="46" type="offset"/>
+  </instruction>
+
+  <instruction name="3DSTATE_URB_DS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="50"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="DS URB Starting Address" start="57" end="63" type="uint"/>
+    <field name="DS URB Entry Allocation Size" start="48" end="56" type="uint"/>
+    <field name="DS Number of URB Entries" start="32" end="47" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_URB_GS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="51"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="GS URB Starting Address" start="57" end="63" type="uint"/>
+    <field name="GS URB Entry Allocation Size" start="48" end="56" type="uint"/>
+    <field name="GS Number of URB Entries" start="32" end="47" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_URB_HS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="49"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="HS URB Starting Address" start="57" end="63" type="uint"/>
+    <field name="HS URB Entry Allocation Size" start="48" end="56" type="uint"/>
+    <field name="HS Number of URB Entries" start="32" end="47" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_URB_VS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="48"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="VS URB Starting Address" start="57" end="63" type="uint"/>
+    <field name="VS URB Entry Allocation Size" start="48" end="56" type="uint"/>
+    <field name="VS Number of URB Entries" start="32" end="47" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VERTEX_BUFFERS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="8"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <group count="0" start="32" size="128">
+      <field name="Vertex Buffer State" start="0" end="127" type="VERTEX_BUFFER_STATE"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_VERTEX_ELEMENTS" bias="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="9"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <group count="0" start="32" size="64">
+      <field name="Element" start="0" end="63" type="VERTEX_ELEMENT_STATE"/>
+    </group>
+  </instruction>
+
+  <instruction name="3DSTATE_VF" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="12"/>
+    <field name="VertexID Offset Enable" start="11" end="11" type="bool"/>
+    <field name="Sequential Draw Cut Index Enable" start="10" end="10" type="bool"/>
+    <field name="Component Packing Enable" start="9" end="9" type="bool"/>
+    <field name="Indexed Draw Cut Index Enable" start="8" end="8" type="bool"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Cut Index" start="32" end="63" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VF_COMPONENT_PACKING" bias="2" length="5">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="85"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <field name="Vertex Element 07 Enables" start="60" end="63" type="uint"/>
+    <field name="Vertex Element 06 Enables" start="56" end="59" type="uint"/>
+    <field name="Vertex Element 05 Enables" start="52" end="55" type="uint"/>
+    <field name="Vertex Element 04 Enables" start="48" end="51" type="uint"/>
+    <field name="Vertex Element 03 Enables" start="44" end="47" type="uint"/>
+    <field name="Vertex Element 02 Enables" start="40" end="43" type="uint"/>
+    <field name="Vertex Element 01 Enables" start="36" end="39" type="uint"/>
+    <field name="Vertex Element 00 Enables" start="32" end="35" type="uint"/>
+    <field name="Vertex Element 15 Enables" start="92" end="95" type="uint"/>
+    <field name="Vertex Element 14 Enables" start="88" end="91" type="uint"/>
+    <field name="Vertex Element 13 Enables" start="84" end="87" type="uint"/>
+    <field name="Vertex Element 12 Enables" start="80" end="83" type="uint"/>
+    <field name="Vertex Element 11 Enables" start="76" end="79" type="uint"/>
+    <field name="Vertex Element 10 Enables" start="72" end="75" type="uint"/>
+    <field name="Vertex Element 09 Enables" start="68" end="71" type="uint"/>
+    <field name="Vertex Element 08 Enables" start="64" end="67" type="uint"/>
+    <field name="Vertex Element 23 Enables" start="124" end="127" type="uint"/>
+    <field name="Vertex Element 22 Enables" start="120" end="123" type="uint"/>
+    <field name="Vertex Element 21 Enables" start="116" end="119" type="uint"/>
+    <field name="Vertex Element 20 Enables" start="112" end="115" type="uint"/>
+    <field name="Vertex Element 19 Enables" start="108" end="111" type="uint"/>
+    <field name="Vertex Element 18 Enables" start="104" end="107" type="uint"/>
+    <field name="Vertex Element 17 Enables" start="100" end="103" type="uint"/>
+    <field name="Vertex Element 16 Enables" start="96" end="99" type="uint"/>
+    <field name="Vertex Element 31 Enables" start="156" end="159" type="uint"/>
+    <field name="Vertex Element 30 Enables" start="152" end="155" type="uint"/>
+    <field name="Vertex Element 29 Enables" start="148" end="151" type="uint"/>
+    <field name="Vertex Element 28 Enables" start="144" end="147" type="uint"/>
+    <field name="Vertex Element 27 Enables" start="140" end="143" type="uint"/>
+    <field name="Vertex Element 26 Enables" start="136" end="139" type="uint"/>
+    <field name="Vertex Element 25 Enables" start="132" end="135" type="uint"/>
+    <field name="Vertex Element 24 Enables" start="128" end="131" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VF_INSTANCING" bias="2" length="3">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="73"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Instancing Enable" start="40" end="40" type="bool"/>
+    <field name="Vertex Element Index" start="32" end="37" type="uint"/>
+    <field name="Instance Data Step Rate" start="64" end="95" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VF_SGVS" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="74"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="InstanceID Enable" start="63" end="63" type="bool"/>
+    <field name="InstanceID Component Number" start="61" end="62" type="uint">
+      <value name="COMP_0" value="0"/>
+      <value name="COMP_1" value="1"/>
+      <value name="COMP_2" value="2"/>
+      <value name="COMP_3" value="3"/>
+    </field>
+    <field name="InstanceID Element Offset" start="48" end="53" type="uint"/>
+    <field name="VertexID Enable" start="47" end="47" type="bool"/>
+    <field name="VertexID Component Number" start="45" end="46" type="uint">
+      <value name="COMP_0" value="0"/>
+      <value name="COMP_1" value="1"/>
+      <value name="COMP_2" value="2"/>
+      <value name="COMP_3" value="3"/>
+    </field>
+    <field name="VertexID Element Offset" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VF_SGVS_2" bias="2" length="3">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="86"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="XP1 Enable" start="63" end="63" type="uint"/>
+    <field name="XP1 Component Number" start="61" end="62" type="uint">
+      <value name="COMP_0" value="0"/>
+      <value name="COMP_1" value="1"/>
+      <value name="COMP_2" value="2"/>
+      <value name="COMP_3" value="3"/>
+    </field>
+    <field name="XP1 Source Select" start="60" end="60" type="uint">
+      <value name="Start Instance Location" value="1"/>
+      <value name="XP1_PARAMETER" value="0"/>
+    </field>
+    <field name="XP1 Element Offset" start="48" end="53" type="uint"/>
+    <field name="XP0 Enable" start="47" end="47" type="uint"/>
+    <field name="XP0 Component Number" start="45" end="46" type="uint">
+      <value name="COMP_0" value="0"/>
+      <value name="COMP_1" value="1"/>
+      <value name="COMP_2" value="2"/>
+      <value name="COMP_3" value="3"/>
+    </field>
+    <field name="XP0 Source Select" start="44" end="44" type="uint">
+      <value name="VERTEX_LOCATION" value="1"/>
+      <value name="XP0_PARAMETER" value="0"/>
+    </field>
+    <field name="XP0 Element Offset" start="32" end="37" type="uint"/>
+    <field name="XP2 Enable" start="79" end="79" type="uint"/>
+    <field name="XP2 Component Number" start="77" end="78" type="uint">
+      <value name="COMP_0" value="0"/>
+      <value name="COMP_1" value="1"/>
+      <value name="COMP_2" value="2"/>
+      <value name="COMP_3" value="3"/>
+    </field>
+    <field name="XP2 Element Offset" start="64" end="69" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VF_STATISTICS" bias="1" length="1">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="11"/>
+    <field name="Statistics Enable" start="0" end="0" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VF_TOPOLOGY" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="75"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Primitive Topology Type" start="32" end="37" type="3D_Prim_Topo_Type"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_CC" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="35"/>
+    <field name="DWord Length" start="0" end="7" 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">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="33"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="SF Clip Viewport Pointer" start="38" end="63" type="offset"/>
+  </instruction>
+
+  <instruction name="3DSTATE_VS" bias="2" length="9">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="16"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
+    <field name="Kernel Start Pointer" start="38" end="95" type="offset"/>
+    <field name="Single Vertex Dispatch" start="127" end="127" type="bool"/>
+    <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
+    <field name="Sampler Count" start="123" end="125" type="uint">
+      <value name="No Samplers" value="0"/>
+      <value name="1-4 Samplers" value="1"/>
+      <value name="5-8 Samplers" value="2"/>
+      <value name="9-12 Samplers" value="3"/>
+      <value name="13-16 Samplers" value="4"/>
+    </field>
+    <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
+    <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
+      <value name="High" value="1"/>
+    </field>
+    <field name="Floating Point Mode" start="112" end="112" type="uint">
+      <value name="IEEE-754" value="0"/>
+      <value name="Alternate" value="1"/>
+    </field>
+    <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
+    <field name="Accesses UAV" start="108" end="108" type="bool"/>
+    <field name="Software Exception Enable" start="103" end="103" type="bool"/>
+    <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
+    <field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
+    <field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
+    <field name="Vertex URB Entry Read Length" start="203" end="208" type="uint"/>
+    <field name="Vertex URB Entry Read Offset" start="196" end="201" type="uint"/>
+    <field name="Maximum Number of Threads" start="246" end="255" type="uint"/>
+    <field name="Statistics Enable" start="234" end="234" type="bool"/>
+    <field name="SIMD8 Single Instance Dispatch Enable" start="233" end="233" type="bool"/>
+    <field name="SIMD8 Dispatch Enable" start="226" end="226" type="bool"/>
+    <field name="Vertex Cache Disable" start="225" end="225" type="bool"/>
+    <field name="Enable" start="224" end="224" type="bool"/>
+    <field name="Vertex URB Entry Output Read Offset" start="277" end="282" type="uint"/>
+    <field name="Vertex URB Entry Output Length" start="272" end="276" type="uint"/>
+    <field name="User Clip Distance Clip Test Enable Bitmask" start="264" end="271" type="uint"/>
+    <field name="User Clip Distance Cull Test Enable Bitmask" start="256" end="263" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_WM" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="20"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Statistics Enable" start="63" end="63" type="bool"/>
+    <field name="Legacy Depth Buffer Clear Enable" start="62" end="62" type="bool"/>
+    <field name="Legacy Depth Buffer Resolve Enable" start="60" end="60" type="bool"/>
+    <field name="Legacy Hierarchical Depth Buffer Resolve Enable" start="59" end="59" type="bool"/>
+    <field name="Legacy Diamond Line Rasterization" start="58" end="58" type="bool"/>
+    <field name="Early Depth/Stencil Control" start="53" end="54" type="uint">
+      <value name="EDSC_NORMAL" value="0"/>
+      <value name="EDSC_PSEXEC" value="1"/>
+      <value name="EDSC_PREPS" value="2"/>
+    </field>
+    <field name="Force Thread Dispatch Enable" start="51" end="52" type="uint">
+      <value name="ForceOff" value="1"/>
+      <value name="ForceON" value="2"/>
+    </field>
+    <field name="Position ZW Interpolation Mode" start="49" end="50" type="uint">
+      <value name="INTERP_PIXEL" value="0"/>
+      <value name="INTERP_CENTROID" value="2"/>
+      <value name="INTERP_SAMPLE" value="3"/>
+    </field>
+    <field name="Barycentric Interpolation Mode" start="43" end="48" type="uint">
+      <value name="BIM_PERSPECTIVE_PIXEL" value="1"/>
+      <value name="BIM_PERSPECTIVE_CENTROID" value ="2"/>
+      <value name="BIM_PERSPECTIVE_SAMPLE" value="4"/>
+      <value name="BIM_LINEAR_PIXEL" value="8"/>
+      <value name="BIM_LINEAR_CENTROID" value="16"/>
+      <value name="BIM_LINEAR_SAMPLE" value="32"/>
+    </field>
+    <field name="Line End Cap Antialiasing Region Width" start="40" end="41" type="uint">
+      <value name="0.5 pixels" value="0"/>
+      <value name="1.0 pixels" value="1"/>
+      <value name="2.0 pixels" value="2"/>
+      <value name="4.0 pixels" value="3"/>
+    </field>
+    <field name="Line Antialiasing Region Width" start="38" end="39" type="uint">
+      <value name="0.5 pixels" value="0"/>
+      <value name="1.0 pixels" value="1"/>
+      <value name="2.0 pixels" value="2"/>
+      <value name="4.0 pixels" value="3"/>
+    </field>
+    <field name="Polygon Stipple Enable" start="36" end="36" type="bool"/>
+    <field name="Line Stipple Enable" start="35" end="35" type="bool"/>
+    <field name="Point Rasterization Rule" start="34" end="34" type="uint">
+      <value name="RASTRULE_UPPER_LEFT" value="0"/>
+      <value name="RASTRULE_UPPER_RIGHT" value="1"/>
+    </field>
+    <field name="Force Kill Pixel Enable" start="32" end="33" type="uint">
+      <value name="ForceOff" value="1"/>
+      <value name="ForceON" value="2"/>
+    </field>
+  </instruction>
+
+  <instruction name="3DSTATE_WM_CHROMAKEY" bias="2" length="2">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="76"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="ChromaKey Kill Enable" start="63" end="63" type="bool"/>
+  </instruction>
+
+  <instruction name="3DSTATE_WM_DEPTH_STENCIL" bias="2" length="4">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="78"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Stencil Fail Op" start="61" end="63" type="3D_Stencil_Operation"/>
+    <field name="Stencil Pass Depth Fail Op" start="58" end="60" type="3D_Stencil_Operation"/>
+    <field name="Stencil Pass Depth Pass Op" start="55" end="57" type="3D_Stencil_Operation"/>
+    <field name="Backface Stencil Test Function" start="52" end="54" type="3D_Compare_Function"/>
+    <field name="Backface Stencil Fail Op" start="49" end="51" type="3D_Stencil_Operation"/>
+    <field name="Backface Stencil Pass Depth Fail Op" start="46" end="48" type="3D_Stencil_Operation"/>
+    <field name="Backface Stencil Pass Depth Pass Op" start="43" end="45" type="3D_Stencil_Operation"/>
+    <field name="Stencil Test Function" start="40" end="42" type="3D_Compare_Function"/>
+    <field name="Depth Test Function" start="37" end="39" type="3D_Compare_Function"/>
+    <field name="Double Sided Stencil Enable" start="36" end="36" type="bool"/>
+    <field name="Stencil Test Enable" start="35" end="35" type="bool"/>
+    <field name="Stencil Buffer Write Enable" start="34" end="34" type="bool"/>
+    <field name="Depth Test Enable" start="33" end="33" type="bool"/>
+    <field name="Depth Buffer Write Enable" start="32" end="32" type="bool"/>
+    <field name="Stencil Test Mask" start="88" end="95" type="uint"/>
+    <field name="Stencil Write Mask" start="80" end="87" type="uint"/>
+    <field name="Backface Stencil Test Mask" start="72" end="79" type="uint"/>
+    <field name="Backface Stencil Write Mask" start="64" end="71" type="uint"/>
+    <field name="Stencil Reference Value" start="104" end="111" type="uint"/>
+    <field name="Backface Stencil Reference Value" start="96" end="103" type="uint"/>
+  </instruction>
+
+  <instruction name="3DSTATE_WM_HZ_OP" bias="2" length="5">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="82"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <field name="Stencil Buffer Clear Enable" start="63" end="63" type="bool"/>
+    <field name="Depth Buffer Clear Enable" start="62" end="62" type="bool"/>
+    <field name="Scissor Rectangle Enable" start="61" end="61" type="bool"/>
+    <field name="Depth Buffer Resolve Enable" start="60" end="60" type="bool"/>
+    <field name="Hierarchical Depth Buffer Resolve Enable" start="59" end="59" type="bool"/>
+    <field name="Pixel Position Offset Enable" start="58" end="58" type="bool"/>
+    <field name="Full Surface Depth and Stencil Clear" start="57" end="57" type="bool"/>
+    <field name="Stencil Clear Value" start="48" end="55" type="uint"/>
+    <field name="Number of Multisamples" start="45" end="47" type="uint"/>
+    <field name="Clear Rectangle Y Min" start="80" end="95" type="uint"/>
+    <field name="Clear Rectangle X Min" start="64" end="79" type="uint"/>
+    <field name="Clear Rectangle Y Max" start="112" end="127" type="uint"/>
+    <field name="Clear Rectangle X Max" start="96" end="111" type="uint"/>
+    <field name="Sample Mask" start="128" end="143" type="uint"/>
+  </instruction>
+
+  <instruction name="GPGPU_WALKER" bias="2" length="15">
+    <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="SubOpcode" start="16" end="23" type="uint" default="5"/>
+    <field name="Indirect Parameter Enable" start="10" end="10" type="bool"/>
+    <field name="Predicate Enable" start="8" end="8" type="bool"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="13"/>
+    <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
+    <field name="Indirect Data Length" start="64" end="80" type="uint"/>
+    <field name="Indirect Data Start Address" start="102" end="127" type="offset"/>
+    <field name="SIMD Size" start="158" end="159" type="uint">
+      <value name="SIMD8" value="0"/>
+      <value name="SIMD16" value="1"/>
+      <value name="SIMD32" value="2"/>
+    </field>
+    <field name="Thread Depth Counter Maximum" start="144" end="149" type="uint"/>
+    <field name="Thread Height Counter Maximum" start="136" end="141" type="uint"/>
+    <field name="Thread Width Counter Maximum" start="128" end="133" type="uint"/>
+    <field name="Thread Group ID Starting X" start="160" end="191" type="uint"/>
+    <field name="Thread Group ID X Dimension" start="224" end="255" type="uint"/>
+    <field name="Thread Group ID Starting Y" start="256" end="287" type="uint"/>
+    <field name="Thread Group ID Y Dimension" start="320" end="351" type="uint"/>
+    <field name="Thread Group ID Starting/Resume Z" start="352" end="383" type="uint"/>
+    <field name="Thread Group ID Z Dimension" start="384" end="415" type="uint"/>
+    <field name="Right Execution Mask" start="416" end="447" type="uint"/>
+    <field name="Bottom Execution Mask" start="448" end="479" type="uint"/>
+  </instruction>
+
+  <instruction name="MEDIA_CURBE_LOAD" bias="2" length="4">
+    <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="SubOpcode" start="16" end="23" type="uint" default="1"/>
+    <field name="DWord Length" start="0" end="15" type="uint" default="2"/>
+    <field name="CURBE Total Data Length" start="64" end="80" type="uint"/>
+    <field name="CURBE Data Start Address" start="96" end="127" type="uint"/>
+  </instruction>
+
+  <instruction name="MEDIA_INTERFACE_DESCRIPTOR_LOAD" bias="2" length="4">
+    <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="SubOpcode" start="16" end="23" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="15" type="uint" default="2"/>
+    <field name="Interface Descriptor Total Length" start="64" end="80" type="uint"/>
+    <field name="Interface Descriptor Data Start Address" start="96" end="127" type="offset"/>
+  </instruction>
+
+  <instruction name="MEDIA_OBJECT" bias="2">
+    <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"/>
+    <field name="Media Command Sub-Opcode" start="16" end="23" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="14" type="uint" default="4"/>
+    <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
+    <field name="Children Present" start="95" end="95" type="bool"/>
+    <field name="Slice Destination Select MSBs" start="89" end="90" type="uint"/>
+    <field name="Thread Synchronization" start="88" end="88" type="uint">
+      <value name="No thread synchronization" value="0"/>
+      <value name="Thread dispatch is synchronized by the 'spawn root thread' message" value="1"/>
+    </field>
+    <field name="Force Destination" start="86" end="86" type="uint"/>
+    <field name="Use Scoreboard" start="85" end="85" type="uint">
+      <value name="Not using scoreboard" value="0"/>
+      <value name="Using scoreboard" value="1"/>
+    </field>
+    <field name="Slice Destination Select" start="83" end="84" type="uint">
+      <value name="Slice 0" value="0"/>
+      <value name="Slice 1" value="1"/>
+      <value name="Slice 2" value="2"/>
+    </field>
+    <field name="SubSlice Destination Select" start="81" end="82" type="uint">
+      <value name="Subslice 3" value="3"/>
+      <value name="SubSlice 2" value="2"/>
+      <value name="SubSlice 1" value="1"/>
+      <value name="SubSlice 0" value="0"/>
+    </field>
+    <field name="Indirect Data Length" start="64" end="80" type="uint"/>
+    <field name="Indirect Data Start Address" start="96" end="127" type="address"/>
+    <field name="Scoredboard Y" start="144" end="152" type="uint"/>
+    <field name="Scoreboard X" start="128" end="136" type="uint"/>
+    <field name="Scoreboard Color" start="176" end="179" type="uint"/>
+    <field name="Scoreboard Mask" start="160" end="167" type="uint"/>
+    <group count="0" start="192" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MEDIA_OBJECT_GRPID" bias="2">
+    <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"/>
+    <field name="Media Command Sub-Opcode" start="16" end="23" type="uint" default="6"/>
+    <field name="DWord Length" start="0" end="15" type="uint" default="5"/>
+    <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
+    <field name="End of Thread Group" start="87" end="87" type="uint"/>
+    <field name="Use Scoreboard" start="85" end="85" type="uint">
+      <value name="Not using scoreboard" value="0"/>
+      <value name="Using scoreboard" value="1"/>
+    </field>
+    <field name="Indirect Data Length" start="64" end="80" type="uint"/>
+    <field name="Indirect Data Start Address" start="96" end="127" type="address"/>
+    <field name="Scoreboard Y" start="144" end="152" type="uint"/>
+    <field name="Scoreboard X" start="128" end="136" type="uint"/>
+    <field name="Scoreboard Color" start="176" end="179" type="uint"/>
+    <field name="Scoreboard Mask" start="160" end="167" type="uint"/>
+    <field name="GroupID" start="192" end="223" type="uint"/>
+    <group count="0" start="224" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MEDIA_OBJECT_PRT" bias="2" length="16">
+    <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="SubOpcode" start="16" end="23" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="14" type="uint" default="14"/>
+    <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
+    <field name="Children Present" start="95" end="95" type="bool"/>
+    <field name="PRT_Fence Needed" start="87" end="87" type="bool"/>
+    <field name="PRT_FenceType" start="86" end="86" type="uint">
+      <value name="Root thread queue" value="0"/>
+      <value name="VFE state flush" value="1"/>
+    </field>
+    <group count="12" start="128" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MEDIA_OBJECT_WALKER" bias="2">
+    <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="SubOpcode" start="16" end="23" type="uint" default="3"/>
+    <field name="DWord Length" start="0" end="14" type="uint" default="15"/>
+    <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
+    <field name="Thread Synchronization" start="88" end="88" type="uint">
+      <value name="No thread synchronization" value="0"/>
+      <value name="Thread dispatch is synchronized by the 'spawn root thread' message" value="1"/>
+    </field>
+    <field name="Masked Dispatch" start="86" end="87" type="uint"/>
+    <field name="Use Scoreboard" start="85" end="85" type="uint">
+      <value name="Not using scoreboard" value="0"/>
+      <value name="Using scoreboard" value="1"/>
+    </field>
+    <field name="Indirect Data Length" start="64" end="80" type="uint"/>
+    <field name="Indirect Data Start Address" start="96" end="127" type="uint"/>
+    <field name="Group ID Loop Select" start="168" end="191" type="uint">
+      <value name="No_Groups" value="0"/>
+      <value name="Color_Groups" value="1"/>
+      <value name="InnerLocal_Groups" value="2"/>
+      <value name="MidLocal_Groups" value="3"/>
+      <value name="OuterLocal_Groups" value="4"/>
+      <value name="InnerGlobal_Groups" value="5"/>
+    </field>
+    <field name="Scoreboard Mask" start="160" end="167" type="uint"/>
+    <field name="Color Count Minus One" start="216" end="219" type="uint"/>
+    <field name="Middle Loop Extra Steps" start="208" end="212" type="uint"/>
+    <field name="Local Mid-Loop Unit Y" start="204" end="205" type="int"/>
+    <field name="Mid-Loop Unit X" start="200" end="201" type="int"/>
+    <field name="Global Loop Exec Count" start="240" end="251" type="uint"/>
+    <field name="Local Loop Exec Count" start="224" end="235" type="uint"/>
+    <field name="Block Resolution Y" start="272" end="282" type="uint"/>
+    <field name="Block Resolution X" start="256" end="266" type="uint"/>
+    <field name="Local Start Y" start="304" end="314" type="uint"/>
+    <field name="Local Start X" start="288" end="298" type="uint"/>
+    <field name="Local Outer Loop Stride Y" start="368" end="379" type="int"/>
+    <field name="Local Outer Loop Stride X" start="352" end="363" type="int"/>
+    <field name="Local Inner Loop Unit Y" start="400" end="411" type="int"/>
+    <field name="Local Inner Loop Unit X" start="384" end="395" type="int"/>
+    <field name="Global Resolution Y" start="432" end="442" type="uint"/>
+    <field name="Global Resolution X" start="416" end="426" type="uint"/>
+    <field name="Global Start Y" start="464" end="475" type="int"/>
+    <field name="Global Start X" start="448" end="459" type="int"/>
+    <field name="Global Outer Loop Stride Y" start="496" end="507" type="int"/>
+    <field name="Global Outer Loop Stride X" start="480" end="491" type="int"/>
+    <field name="Global Inner Loop Unit Y" start="528" end="539" type="int"/>
+    <field name="Global Inner Loop Unit X" start="512" end="523" type="int"/>
+    <group count="0" start="544" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MEDIA_STATE_FLUSH" bias="2" length="2">
+    <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="SubOpcode" start="16" end="23" type="uint" default="4"/>
+    <field name="DWord Length" start="0" end="15" type="uint" default="0"/>
+    <field name="Flush to GO" start="39" end="39" type="bool"/>
+    <field name="Watermark Required" start="38" end="38" type="uint"/>
+    <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
+  </instruction>
+
+  <instruction name="MEDIA_VFE_STATE" bias="2" length="9">
+    <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="SubOpcode" start="16" end="23" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="15" type="uint" default="7"/>
+    <field name="Scratch Space Base Pointer" start="42" end="79" type="address"/>
+    <field name="Stack Size" start="36" end="39" type="uint"/>
+    <field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
+    <field name="Maximum Number of Threads" start="112" end="127" type="uint"/>
+    <field name="Number of URB Entries" start="104" end="111" type="uint"/>
+    <field name="Reset Gateway Timer" start="103" end="103" type="uint">
+      <value name="Maintaining the existing timestamp state" value="0"/>
+      <value name="Resetting relative timer and latching the global timestamp" value="1"/>
+    </field>
+    <field name="Thread Dispatch Selection Policy" start="100" end="101" type="uint">
+      <value name="Legacy" value="0"/>
+      <value name="Prefer 1SS" value="1"/>
+      <value name="Prefer 2SS" value="2"/>
+      <value name="Load Balance" value="3"/>
+    </field>
+    <field name="SLM Bank Selection Policy" start="99" end="99" type="uint">
+      <value name="Legacy" value="0"/>
+      <value name="SLM Load Balance" value="1"/>
+    </field>
+    <field name="Slice Disable" start="128" end="129" type="uint">
+      <value name="All Subslices Enabled" value="0"/>
+      <value name="Only Slice 0 Enabled" value="1"/>
+      <value name="Only Slice 0 Subslice 0 Enabled" value="3"/>
+    </field>
+    <field name="URB Entry Allocation Size" start="176" end="191" type="uint"/>
+    <field name="CURBE Allocation Size" start="160" end="175" type="uint"/>
+    <field name="Scoreboard Enable" start="223" end="223" type="bool"/>
+    <field name="Scoreboard Type" start="222" end="222" type="uint">
+      <value name="Stalling Scoreboard" value="0"/>
+      <value name="Non-Stalling Scoreboard" value="1"/>
+    </field>
+    <field name="Number of Media Objects per Pre-Emption Checkpoint" start="200" end="207" type="uint"/>
+    <field name="Scoreboard Mask" start="192" end="199" type="uint"/>
+    <field name="Scoreboard 3 Delta Y" start="252" end="255" type="int"/>
+    <field name="Scoreboard 3 Delta X" start="248" end="251" type="int"/>
+    <field name="Scoreboard 2 Delta Y" start="244" end="247" type="int"/>
+    <field name="Scoreboard 2 Delta X" start="240" end="243" type="int"/>
+    <field name="Scoreboard 1 Delta Y" start="236" end="239" type="int"/>
+    <field name="Scoreboard 1 Delta X" start="232" end="235" type="int"/>
+    <field name="Scoreboard 0 Delta Y" start="228" end="231" type="int"/>
+    <field name="Scoreboard 0 Delta X" start="224" end="227" type="int"/>
+    <field name="Scoreboard 7 Delta Y" start="284" end="287" type="int"/>
+    <field name="Scoreboard 7 Delta X" start="280" end="283" type="int"/>
+    <field name="Scoreboard 6 Delta Y" start="276" end="279" type="int"/>
+    <field name="Scoreboard 6 Delta X" start="272" end="275" type="int"/>
+    <field name="Scoreboard 5 Delta Y" start="268" end="271" type="int"/>
+    <field name="Scoreboard 5 Delta X" start="264" end="267" type="int"/>
+    <field name="Scoreboard 4 Delta Y" start="260" end="263" type="int"/>
+    <field name="Scoreboard 4 Delta X" start="256" end="259" type="int"/>
+  </instruction>
+
+  <instruction name="MI_ARB_CHECK" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="5"/>
+  </instruction>
+
+  <instruction name="MI_ATOMIC" bias="2" length="3">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="47"/>
+    <field name="Memory Type" start="22" end="22" type="uint">
+      <value name="Per Process Graphics Address" value="0"/>
+      <value name="Global Graphics Address" value="1"/>
+    </field>
+    <field name="Post-Sync Operation" start="21" end="21" type="bool"/>
+    <field name="Data Size" start="19" end="20" type="uint">
+      <value name="DWORD" value="0"/>
+      <value name="QWORD" value="1"/>
+      <value name="OCTWORD" value="2"/>
+      <value name="RESERVED" value="3"/>
+    </field>
+    <field name="Inline Data" start="18" end="18" type="uint"/>
+    <field name="CS STALL" start="17" end="17" type="uint"/>
+    <field name="Return Data Control" start="16" end="16" type="uint"/>
+    <field name="ATOMIC OPCODE" start="8" end="15" type="uint"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Memory Address" start="34" end="79" type="address"/>
+    <field name="Operand1 Data Dword 0" start="96" end="127" type="uint"/>
+    <field name="Operand2 Data Dword 0" start="128" end="159" type="uint"/>
+    <field name="Operand1 Data Dword 1" start="160" end="191" type="uint"/>
+    <field name="Operand2 Data Dword 1" start="192" end="223" type="uint"/>
+    <field name="Operand1 Data Dword 2" start="224" end="255" type="uint"/>
+    <field name="Operand2 Data Dword 2" start="256" end="287" type="uint"/>
+    <field name="Operand1 Data Dword 3" start="288" end="319" type="uint"/>
+    <field name="Operand2 Data Dword 3" start="320" end="351" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_BATCH_BUFFER_END" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="10"/>
+    <field name="End Context" start="0" end="0" type="bool"/>
+  </instruction>
+
+  <instruction name="MI_BATCH_BUFFER_START" bias="2" length="3">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="49"/>
+    <field name="Second Level Batch Buffer" start="22" end="22" type="uint">
+      <value name="First level batch" value="0"/>
+      <value name="Second level batch" value="1"/>
+    </field>
+    <field name="Add Offset Enable" start="16" end="16" type="bool"/>
+    <field name="Predication Enable" start="15" end="15" type="bool"/>
+    <field name="Resource Streamer Enable" start="10" end="10" type="bool"/>
+    <field name="Address Space Indicator" start="8" end="8" type="uint" prefix="ASI">
+      <value name="GGTT" value="0"/>
+      <value name="PPGTT" value="1"/>
+    </field>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Batch Buffer Start Address" start="34" end="95" type="address"/>
+  </instruction>
+
+  <instruction name="MI_CLFLUSH" bias="2">
+    <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="DWord Length" start="0" end="9" type="uint" default="1"/>
+    <field name="Page Base Address" start="44" end="79" type="address"/>
+    <field name="Starting Cacheline Offset" start="38" end="43" type="uint"/>
+    <group count="0" start="96" size="32">
+      <field name="DW Representing a Half Cache Line" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MI_CONDITIONAL_BATCH_BUFFER_END" bias="2" length="4">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="54"/>
+    <field name="Use Global GTT" start="22" end="22" type="bool"/>
+    <field name="Compare Semaphore" start="21" end="21" type="uint" default="0"/>
+    <field name="Compare Mask Mode" start="19" end="19" type="uint">
+      <value name="Compare Mask Mode Disabled" value="0"/>
+      <value name="Compare Mask Mode Enabled" value="1"/>
+    </field>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Compare Data Dword" start="32" end="63" type="uint"/>
+    <field name="Compare Address" start="67" end="127" type="address"/>
+  </instruction>
+
+  <instruction name="MI_COPY_MEM_MEM" bias="2" length="5">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="46"/>
+    <field name="Use Global GTT Source" start="22" end="22" type="bool"/>
+    <field name="Use Global GTT Destination" start="21" end="21" type="bool"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
+    <field name="Destination Memory Address" start="34" end="95" type="address"/>
+    <field name="Source Memory Address" start="98" end="159" type="address"/>
+  </instruction>
+
+  <instruction name="MI_DISPLAY_FLIP" bias="2" length="3">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="20"/>
+    <field name="Async Flip Indicator" start="22" end="22" type="bool"/>
+    <field name="Display Plane Select" start="8" end="12" type="uint">
+      <value name="Display Plane 1" value="0"/>
+      <value name="Display Plane 2" value="1"/>
+      <value name="Display Plane 3" value="2"/>
+      <value name="Display Plane 4" value="4"/>
+      <value name="Display Plane 5" value="5"/>
+      <value name="Display Plane 6" value="6"/>
+      <value name="Display Plane 7" value="7"/>
+      <value name="Display Plane 8" value="8"/>
+      <value name="Display Plane 9" value="9"/>
+      <value name="Display Plane 10" value="10"/>
+      <value name="Display Plane 11" value="11"/>
+      <value name="Display Plane 12" value="12"/>
+    </field>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Stereoscopic 3D Mode" start="63" end="63" type="bool"/>
+    <field name="Display Buffer Pitch" start="38" end="47" type="uint"/>
+    <field name="Tile Parameter" start="32" end="34" type="bool"/>
+    <field name="Display Buffer Base Address" start="76" end="95" type="address"/>
+    <field name="VRR Master Flip" start="75" end="75" type="uint"/>
+    <field name="Flip Type" start="64" end="65" type="uint">
+      <value name="Sync Flip" value="0"/>
+      <value name="Async Flip" value="1"/>
+      <value name="Stereo 3D Flip" value="2"/>
+    </field>
+    <field name="Left Eye Display Buffer Base Address" start="108" end="127" type="address"/>
+  </instruction>
+
+  <instruction name="MI_FORCE_WAKEUP" bias="2" length="2">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="29"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Mask Bits" start="48" end="63" type="uint"/>
+    <field name="Force Render Awake" start="33" end="33" type="uint"/>
+    <field name="Force Media Awake" start="32" end="32" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_LOAD_REGISTER_IMM" bias="2" length="3">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="34"/>
+    <field name="Byte Write Disables" start="8" end="11" type="uint"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Register Offset" start="34" end="54" type="offset"/>
+    <field name="Data DWord" start="64" end="95" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_LOAD_REGISTER_MEM" bias="2" length="4">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="41"/>
+    <field name="Use Global GTT" start="22" end="22" type="bool"/>
+    <field name="Async Mode Enable" start="21" end="21" type="bool"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Register Address" start="34" end="54" type="offset"/>
+    <field name="Memory Address" start="66" end="127" type="address"/>
+  </instruction>
+
+  <instruction name="MI_LOAD_REGISTER_REG" bias="2" length="3">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="42"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Source Register Address" start="34" end="54" type="offset"/>
+    <field name="Destination Register Address" start="66" end="86" type="offset"/>
+  </instruction>
+
+  <instruction name="MI_LOAD_SCAN_LINES_EXCL" bias="2" length="2">
+    <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">
+      <value name="Display Plane A" value="0"/>
+      <value name="Display Plane B" value="1"/>
+      <value name="Display Plane C" value="4"/>
+    </field>
+    <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
+    <field name="Start Scan Line Number" start="48" end="60" 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">
+    <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">
+      <value name="Display Plane 1 A" value="0"/>
+      <value name="Display Plane 1 B" value="1"/>
+      <value name="Display Plane 1 C" value="4"/>
+    </field>
+    <field name="Scan Line Event Done Forward" start="17" end="18" type="bool"/>
+    <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
+    <field name="Start Scan Line Number" start="48" end="60" type="uint"/>
+    <field name="End Scan Line Number" start="32" end="44" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_MATH" bias="2">
+    <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="7" type="uint" default="0"/>
+    <field name="ALU INSTRUCTION 1" start="32" end="63" type="uint"/>
+    <field name="ALU INSTRUCTION 2" start="64" end="95" type="uint"/>
+    <group count="0" start="96" size="32">
+      <field name="ALU INSTRUCTION n" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MI_NOOP" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="0"/>
+    <field name="Identification Number Register Write Enable" start="22" end="22" type="bool"/>
+    <field name="Identification Number" start="0" end="21" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_PREDICATE" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="12"/>
+    <field name="Load Operation" start="6" end="7" type="uint" prefix="LOAD">
+      <value name="KEEP" value="0"/>
+      <value name="LOAD" value="2"/>
+      <value name="LOADINV" value="3"/>
+    </field>
+    <field name="Combine Operation" start="3" end="4" type="uint" prefix="COMBINE">
+      <value name="SET" value="0"/>
+      <value name="AND" value="1"/>
+      <value name="OR" value="2"/>
+      <value name="XOR" value="3"/>
+    </field>
+    <field name="Compare Operation" start="0" end="1" type="uint" prefix="COMPARE">
+      <value name="SRCS_EQUAL" value="2"/>
+      <value name="DELTAS_EQUAL" value="3"/>
+    </field>
+  </instruction>
+
+  <instruction name="MI_REPORT_HEAD" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" 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="4">
+    <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="2"/>
+    <field name="Memory Address" start="38" end="95" type="address"/>
+    <field name="Core Mode Enable" start="36" end="36" type="uint"/>
+    <field name="Use Global GTT" start="32" end="32" type="bool"/>
+    <field name="Report ID" start="96" end="127" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_RS_CONTEXT" bias="1" length="1">
+    <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">
+      <value name="Restore" value="0"/>
+      <value name="Save" value="1"/>
+    </field>
+  </instruction>
+
+  <instruction name="MI_RS_CONTROL" bias="1" length="1">
+    <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">
+      <value name="Stop" value="0"/>
+      <value name="Start" value="1"/>
+    </field>
+  </instruction>
+
+  <instruction name="MI_RS_STORE_DATA_IMM" bias="2" length="4">
+    <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="Destination Address" start="34" end="95" type="address"/>
+    <field name="Core Mode Enable" start="32" end="32" type="uint"/>
+    <field name="Data DWord 0" start="96" end="127" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_SEMAPHORE_SIGNAL" bias="2" length="2">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="27"/>
+    <field name="Post-Sync Operation" start="21" end="21" type="bool"/>
+    <field name="Target Engine Select" start="15" end="17" type="uint">
+      <value name="RCS" value="0"/>
+      <value name="VCS0" value="1"/>
+      <value name="BCS" value="2"/>
+      <value name="VECS" value="3"/>
+      <value name="VCS1" value="4"/>
+    </field>
+    <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
+    <field name="Target Context ID" start="32" end="63" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_SEMAPHORE_WAIT" bias="2" length="4">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="28"/>
+    <field name="Memory Type" start="22" end="22" type="uint">
+      <value name="Per Process Graphics Address" value="0"/>
+      <value name="Global Graphics Address" value="1"/>
+    </field>
+    <field name="Register Poll Mode" start="16" end="16" type="bool"/>
+    <field name="Wait Mode" start="15" end="15" type="uint">
+      <value name="Polling Mode" value="1"/>
+      <value name="Signal Mode" value="0"/>
+    </field>
+    <field name="Compare Operation" start="12" end="14" type="uint" prefix="COMPARE">
+      <value name="SAD_GREATER_THAN_SDD" value="0"/>
+      <value name="SAD_GREATER_THAN_OR_EQUAL_SDD" value="1"/>
+      <value name="SAD_LESS_THAN_SDD" value="2"/>
+      <value name="SAD_LESS_THAN_OR_EQUAL_SDD" value="3"/>
+      <value name="SAD_EQUAL_SDD" value="4"/>
+      <value name="SAD_NOT_EQUAL_SDD" value="5"/>
+    </field>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Semaphore Data Dword" start="32" end="63" type="uint"/>
+    <field name="Semaphore Address" start="66" end="127" type="address"/>
+  </instruction>
+
+  <instruction name="MI_SET_CONTEXT" bias="2" length="2">
+    <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="Logical Context Address" start="44" end="63" type="address"/>
+    <field name="Reserved, Must be 1" start="40" end="40" type="uint"/>
+    <field name="Core Mode Enable" start="36" end="36" type="bool"/>
+    <field name="Resource Streamer State Save Enable" start="35" end="35" type="bool"/>
+    <field name="Resource Streamer State Restore Enable" start="34" end="34" type="bool"/>
+    <field name="Force Restore" start="33" end="33" type="uint"/>
+    <field name="Restore Inhibit" start="32" end="32" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_SET_PREDICATE" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="1"/>
+    <field name="PREDICATE ENABLE" start="0" end="3" type="uint">
+      <value name="NOOP Never" value="0"/>
+      <value name="NOOP on Result2 clear" value="1"/>
+      <value name="NOOP on Result2 set" value="2"/>
+      <value name="NOOP on Result clear" value="3"/>
+      <value name="NOOP on Result set" value="4"/>
+      <value name="NOOP Always" value="15"/>
+    </field>
+  </instruction>
+
+  <instruction name="MI_STORE_DATA_IMM" bias="2" length="4">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="32"/>
+    <field name="Use Global GTT" start="22" end="22" type="bool"/>
+    <field name="Store Qword" start="21" end="21" type="uint"/>
+    <field name="DWord Length" start="0" end="9" type="uint" default="2"/>
+    <field name="Address" start="34" end="79" type="address"/>
+    <field name="Core Mode Enable" start="32" end="32" type="uint"/>
+    <field name="Data DWord 0" start="96" end="127" type="uint"/>
+    <field name="Data DWord 1" start="128" end="159" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_STORE_DATA_INDEX" bias="2" length="3">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="33"/>
+    <field name="Use Per-Process Hardware Status Page" start="21" end="21" type="uint"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="Offset" start="34" end="43" type="uint"/>
+    <field name="Data DWord 0" start="64" end="95" type="uint"/>
+    <field name="Data DWord 1" start="96" end="127" type="uint"/>
+  </instruction>
+
+  <instruction name="MI_STORE_REGISTER_MEM" bias="2" length="4">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="36"/>
+    <field name="Use Global GTT" start="22" end="22" type="bool"/>
+    <field name="Predicate Enable" start="21" end="21" type="bool"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
+    <field name="Register Address" start="34" end="54" type="offset"/>
+    <field name="Memory Address" start="66" end="127" type="address"/>
+  </instruction>
+
+  <instruction name="MI_SUSPEND_FLUSH" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="11"/>
+    <field name="Suspend Flush" start="0" end="0" type="bool"/>
+  </instruction>
+
+  <instruction name="MI_TOPOLOGY_FILTER" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="13"/>
+    <field name="Topology Filter Value" start="0" end="5" type="3D_Prim_Topo_Type"/>
+  </instruction>
+
+  <instruction name="MI_UPDATE_GTT" bias="2">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="35"/>
+    <field name="DWord Length" start="0" end="9" type="uint" default="0"/>
+    <field name="Entry Address" start="44" end="63" type="address"/>
+    <group count="0" start="64" size="64">
+      <field name="Entry Data" start="0" end="63" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MI_USER_INTERRUPT" bias="1" length="1">
+    <field name="Command Type" start="29" end="31" 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">
+    <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 Plane 1 C Vertical Blank Wait Enable" start="21" end="21" type="bool"/>
+    <field name="Display Plane 6 Flip Pending Wait Enable" start="20" end="20" type="bool"/>
+    <field name="Display Plane 12 Flip Pending Wait Enable" start="19" end="19" type="bool"/>
+    <field name="Display Plane 11 Flip Pending Wait Enable" start="18" end="18" type="bool"/>
+    <field name="Display Plane 10 Flip Pending Wait Enable" start="17" end="17" type="bool"/>
+    <field name="Display Plane 9 Flip Pending Wait Enable" start="16" end="16" type="bool"/>
+    <field name="Display Plane 3 Flip Pending Wait Enable" start="15" end="15" type="bool"/>
+    <field name="Display Plane 1 C Scan Line Wait Enable" start="14" end="14" type="bool"/>
+    <field name="Display Plane 1 B Vertical Blank Wait Enable" start="11" end="11" type="bool"/>
+    <field name="Display Plane 5 Flip Pending Wait Enable" start="10" end="10" type="bool"/>
+    <field name="Display Plane 2 Flip Pending Wait Enable" start="9" end="9" type="bool"/>
+    <field name="Display Plane 1 B Scan Line Wait Enable" start="8" end="8" type="bool"/>
+    <field name="Display Plane 8 Flip Pending Wait Enable" start="7" end="7" type="bool"/>
+    <field name="Display Plane 7 Flip Pending Wait Enable" start="6" end="6" type="bool"/>
+    <field name="Display Plane 1 A Vertical Blank Wait Enable" start="3" end="3" type="bool"/>
+    <field name="Display Plane 4 Flip Pending Wait Enable" start="2" end="2" type="bool"/>
+    <field name="Display Plane 1 Flip Pending Wait Enable" start="1" end="1" type="bool"/>
+    <field name="Display Plnae 1 A Scan Line Wait Enable" start="0" end="0" type="bool"/>
+  </instruction>
+
+  <instruction name="PIPELINE_SELECT" bias="1" length="1">
+    <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 name="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
+    <field name="Mask Bits" start="8" end="15" type="uint"/>
+    <field name="Force Media Awake" start="5" end="5" type="bool"/>
+    <field name="Media Sampler DOP Clock Gate Enable" start="4" end="4" type="bool"/>
+    <field name="Pipeline Selection" start="0" end="1" type="uint">
+      <value name="3D" value="0"/>
+      <value name="Media" value="1"/>
+      <value name="GPGPU" value="2"/>
+    </field>
+  </instruction>
+
+  <instruction name="PIPE_CONTROL" bias="2" length="6">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="4"/>
+    <field name="Flush LLC" start="58" end="58" type="bool"/>
+    <field name="Destination Address Type" start="56" end="56" type="uint" prefix="DAT">
+      <value name="PPGTT" value="0"/>
+      <value name="GGTT" value="1"/>
+    </field>
+    <field name="LRI Post Sync Operation" start="55" end="55" type="uint">
+      <value name="No LRI Operation" value="0"/>
+      <value name="MMIO Write Immediate Data" value="1"/>
+    </field>
+    <field name="Store Data Index" start="53" end="53" type="uint"/>
+    <field name="Command Streamer Stall Enable" start="52" end="52" type="bool"/>
+    <field name="Global Snapshot Count Reset" start="51" end="51" type="bool"/>
+    <field name="TLB Invalidate" start="50" end="50" type="bool"/>
+    <field name="PSD Sync Enable" start="49" end="49" type="bool"/>
+    <field name="Generic Media State Clear" start="48" end="48" type="bool"/>
+    <field name="Post Sync Operation" start="46" end="47" type="uint">
+      <value name="No Write" value="0"/>
+      <value name="Write Immediate Data" value="1"/>
+      <value name="Write PS Depth Count" value="2"/>
+      <value name="Write Timestamp" value="3"/>
+    </field>
+    <field name="Depth Stall Enable" start="45" end="45" type="bool"/>
+    <field name="Render Target Cache Flush Enable" start="44" end="44" type="bool"/>
+    <field name="Instruction Cache Invalidate Enable" start="43" end="43" type="bool"/>
+    <field name="Texture Cache Invalidation Enable" start="42" end="42" type="bool"/>
+    <field name="Indirect State Pointers Disable" start="41" end="41" type="bool"/>
+    <field name="Notify Enable" start="40" end="40" type="bool"/>
+    <field name="Pipe Control Flush Enable" start="39" end="39" type="bool"/>
+    <field name="DC Flush Enable" start="37" end="37" type="bool"/>
+    <field name="VF Cache Invalidation Enable" start="36" end="36" type="bool"/>
+    <field name="Constant Cache Invalidation Enable" start="35" end="35" type="bool"/>
+    <field name="State Cache Invalidation Enable" start="34" end="34" type="bool"/>
+    <field name="Stall At Pixel Scoreboard" start="33" end="33" type="bool"/>
+    <field name="Depth Cache Flush Enable" start="32" end="32" type="bool"/>
+    <field name="Address" start="66" end="111" type="address"/>
+    <field name="Immediate Data" start="128" end="191" type="uint"/>
+  </instruction>
+
+  <instruction name="STATE_BASE_ADDRESS" bias="2" length="22">
+    <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="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 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="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 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 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 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 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="Dynamic State Buffer Size" start="428" end="447" type="uint"/>
+    <field name="Dynamic State Buffer Size Modify Enable" start="416" end="416" type="bool"/>
+    <field name="Indirect Object Buffer Size" start="460" end="479" type="uint"/>
+    <field name="Indirect Object Buffer Size Modify Enable" start="448" end="448" 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 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 Base Address Modify Enable" start="608" end="608" type="bool"/>
+    <field name="Bindless Sampler State Buffer Size" start="684" end="703" type="uint"/>
+  </instruction>
+
+  <instruction name="STATE_SIP" bias="2" length="3">
+    <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="3D Command Sub Opcode" start="16" end="23" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
+    <field name="System Instruction Pointer" start="36" end="95" type="offset"/>
+  </instruction>
+
+  <register name="L3CNTLREG" length="1" num="0x7034">
+    <field name="SLM Enable" start="0" end="0" type="uint"/>
+    <field name="URB Allocation" start="1" end="7" type="uint"/>
+    <field name="RO Allocation" start="11" end="17" type="uint"/>
+    <field name="DC Allocation" start="18" end="24" type="uint"/>
+    <field name="All Allocation" start="25" end="31" type="uint"/>
+  </register>
+
+  <register name="SO_WRITE_OFFSET0" length="1" num="0x5280">
+    <field name="Write Offset" start="2" end="31" type="offset"/>
+  </register>
+
+  <register name="SO_WRITE_OFFSET1" length="1" num="0x5284">
+    <field name="Write Offset" start="2" end="31" type="offset"/>
+  </register>
+
+  <register name="SO_WRITE_OFFSET2" length="1" num="0x5288">
+    <field name="Write Offset" start="2" end="31" type="offset"/>
+  </register>
+
+  <register name="SO_WRITE_OFFSET3" length="1" num="0x528c">
+    <field name="Write Offset" start="2" end="31" type="offset"/>
+  </register>
+
+  <register name="CACHE_MODE_0" length="1" num="0x7000">
+    <field name="Null tile fix disable" start="0" end="0" type="bool"/>
+    <field name="Disable clock gating in the pixel backend" start="1" end="1" type="bool"/>
+    <field name="Hierarchical Z RAW Stall Optimization Disable" start="2" end="2" type="bool"/>
+    <field name="RCC Eviction Policy" start="4" end="4" type="bool"/>
+    <field name="STC PMA Optimization Enable" start="5" end="5" type="bool"/>
+    <field name="Sampler L2 Request Arbitration" start="6" end="7" type="uint">
+      <value name="Round Robin" value="0"/>
+      <value name="Fetch are Highest Priority" value="1"/>
+      <value name="Constants are Highest Priority" value="2"/>
+    </field>
+    <field name="Sampler L2 TLB Prefetch Enable" start="9" end="9" type="bool"/>
+    <field name="Sampler Set Remapping for 3D Disable" start="11" end="11" type="bool"/>
+    <field name="MSAA Compression Plane Number Threshold for eLLC" start="12" end="14" type="uint"/>
+    <field name="Sampler L2 Disable" start="15" end="15" type="bool"/>
+
+    <field name="Null tile fix disable Mask" start="16" end="16" type="bool"/>
+    <field name="Disable clock gating in the pixel backend Mask" start="17" end="17" type="bool"/>
+    <field name="Hierarchical Z RAW Stall Optimization Disable Mask" start="18" end="18" type="bool"/>
+    <field name="RCC Eviction Policy Mask" start="20" end="20" type="bool"/>
+    <field name="STC PMA Optimization Enable Mask" start="21" end="21" type="bool"/>
+    <field name="Sampler L2 Request Arbitration Mask" start="22" end="23" type="uint"/>
+    <field name="Sampler L2 TLB Prefetch Enable Mask" start="25" end="25" type="bool"/>
+    <field name="Sampler Set Remapping for 3D Disable Mask" start="27" end="27" type="bool"/>
+    <field name="MSAA Compression Plane Number Threshold for eLLC Mask" start="28" end="30" type="uint"/>
+    <field name="Sampler L2 Disable Mask" start="31" end="31" type="bool"/>
+  </register>
+
+</genxml>