intel/genxml: Media instructions and structures for gen6
authorToni Lönnberg <toni.lonnberg@intel.com>
Wed, 16 Jan 2019 11:52:11 +0000 (13:52 +0200)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 28 Mar 2019 04:26:30 +0000 (04:26 +0000)
v2: Fixed MI_WAIT_FOR_EVENT to be for blitter and video also

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

index b4976b33c347ddabe938b9dc7988cfbffe753c96..f672160bd3dce42e6d585405a016e0509b7224d1 100644 (file)
     <field name="Scoreboard 4 Delta X" start="224" end="227" type="int"/>
   </instruction>
 
+  <instruction name="MFC_AVC_FQM_STATE" bias="2" length="113" engine="video">
+    <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 A" start="21" end="23" type="uint" default="2"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="111"/>
+    <group count="8" start="32" size="32">
+      <field name="Luma4x4 Intra InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="8" start="288" size="32">
+      <field name="Cb4x4 Intra InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="8" start="544" size="32">
+      <field name="Cr4x4 Intra InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="6" start="800" size="32">
+      <field name="Luma4x4 Inter InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="10" start="992" size="32">
+      <field name="Cb4x4 Inter InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="8" start="1312" size="32">
+      <field name="Cr4x4 Inter InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="32" start="1568" size="32">
+      <field name="Luma8x8 Intra InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="32" start="2592" size="32">
+      <field name="Luma8x8 Inter InvWeightScale" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFC_AVC_PAK_INSERT_OBJECT" bias="2" engine="video">
+    <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 A" start="21" end="23" type="uint" default="2"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="8"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="0"/>
+    <field name="Data Byte Offset" start="48" end="49" type="uint"/>
+    <field name="Data Bits In Last DW" start="40" end="45" type="uint"/>
+    <field name="Skip Emulation Byte Count" start="36" end="39" type="uint"/>
+    <field name="Emulation Byte Bits Insert Enable" start="35" end="35" type="bool"/>
+    <field name="Last Header" start="34" end="34" type="bool"/>
+    <field name="End of Slice" start="33" end="33" type="bool"/>
+    <field name="Bitstream Start Reset" start="32" end="32" type="bool"/>
+    <group count="0" start="64" size="32">
+      <field name="Insert Data PayLoad" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFC_AVC_PAK_OBJECT" bias="2" length="11" engine="video">
+    <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 A" start="21" end="23" type="uint" default="2"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="9"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="9"/>
+    <field name="Indirect PAK-MV Data Length" start="32" end="41" type="uint"/>
+    <field name="Indirect PAK-MV Data Start Address Offset" start="64" end="92" type="offset"/>
+    <group count="8" start="96" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFC_STITCH_OBJECT" bias="2" engine="video">
+    <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 A" start="21" end="23" type="uint" default="2"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="10"/>
+    <field name="DWord Length" start="0" end="11" type="uint"/>
+    <field name="Src Data Starting Byte Offset" start="48" end="49" type="uint"/>
+    <field name="SrC Data Ending Bit Inclusion" start="40" end="45" type="uint"/>
+    <field name="Last Src Header Data Insert Command" start="34" end="34" type="bool"/>
+    <field name="Last Dst Data Insert Command" start="33" end="33" type="bool"/>
+    <field name="Indirect Data Length" start="64" end="82" type="uint"/>
+    <field name="Indirect Data Start Address" start="96" end="127" type="address"/>
+    <group count="0" start="128" size="32">
+      <field name="Insert Data PayLoad" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFD_AVC_BSD_OBJECT" bias="2" length="6" engine="video">
+    <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 A" start="21" end="23" type="uint" default="1"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="8"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="4"/>
+    <field name="Indirect BSD Data Length" start="32" end="53" type="uint"/>
+    <field name="Indirect BSD Data Start Address" start="64" end="92" type="address"/>
+    <group count="3" start="96" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFD_IT_OBJECT" bias="2" engine="video">
+    <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 A" start="21" end="23" type="uint" default="1"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="9"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="12"/>
+    <field name="Indirect IT-MV Data Length" start="32" end="41" type="uint"/>
+    <field name="Indirect IT-MV Data Start Address Offset" start="64" end="92" type="offset"/>
+    <field name="Indirect IT-COEFF Data Length" start="96" end="107" type="uint"/>
+    <field name="Indirect IT-COEFF Data Start Address Offset" start="128" end="156" type="offset"/>
+    <field name="Indirect IT-DBLK Control Data Length" start="160" end="165" type="uint"/>
+    <field name="Indirect IT-DBLK Control Data Start Address Offset" start="192" end="220" type="offset"/>
+    <group count="0" start="224" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFD_MPEG2_BSD_OBJECT" bias="2" length="5" engine="video">
+    <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="3"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="1"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="8"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="3"/>
+    <field name="Indirect Data Length" start="32" end="48" type="uint"/>
+    <field name="Indirect Data Start Address" start="64" end="92" type="address"/>
+    <group count="2" start="96" size="32">
+      <field name="Inline Data" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFD_VC1_BSD_OBJECT" bias="2" length="4" engine="video">
+    <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="2"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="1"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="8"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="2"/>
+    <field name="Indirect Data Length" start="32" end="53" type="uint"/>
+    <field name="Indirect Data Start Address" start="64" end="92" type="address"/>
+    <field name="Slice Start Vertical Position" start="120" end="127" type="uint"/>
+    <field name="Next Slice Start Vertical Position" start="112" end="119" type="uint"/>
+    <field name="First MB Bit Offset" start="96" end="98" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_AVC_DIRECTMODE_STATE" bias="2" length="69" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="67"/>
+    <group count="32" start="32" size="32">
+      <field name="Direct MV Buffer - Address" start="6" end="31" type="address"/>
+      <field name="Direct MV Buffer - Arbitration Priority Control" start="4" end="5" type="uint">
+        <value name="Highest priority" value="0"/>
+        <value name="Second highest priority" value="1"/>
+        <value name="Third highest priority" value="2"/>
+        <value name="Lowest priority" value="3"/>
+      </field>
+      <field name="Direct MV Buffer - Graphics Data Type" start="2" end="2" type="uint"/>
+      <field name="Direct MV Buffer - Cacheability Control" start="0" end="1" type="uint">
+        <value name="GTT entry" value="0"/>
+        <value name="Not in LLC or MLC" value="1"/>
+        <value name="In LLC but not MLC" value="2"/>
+        <value name="Both LLC and MLC" value="3"/>
+      </field>
+    </group>
+    <group count="2" start="1056" size="32">
+      <field name="Direct MV Buffer (Write) - Address" start="6" end="31" type="address"/>
+      <field name="Direct MV Buffer (Write) - Arbitration Priority Control" start="4" end="5" type="uint">
+        <value name="Highest priority" value="0"/>
+        <value name="Second highest priority" value="1"/>
+        <value name="Third highest priority" value="2"/>
+        <value name="Lowest priority" value="3"/>
+      </field>
+      <field name="Direct MV Buffer (Write) - Graphics Data Type" start="2" end="2" type="uint"/>
+      <field name="Direct MV Buffer (Write) - Cacheability Control" start="0" end="1" type="uint">
+        <value name="GTT entry" value="0"/>
+        <value name="Not in LLC or MLC" value="1"/>
+        <value name="In LLC but not MLC" value="2"/>
+        <value name="Both LLC and MLC" value="3"/>
+      </field>
+    </group>
+    <group count="34" start="1120" size="32">
+      <field name="POC List" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFX_AVC_IMG_STATE" bias="2" length="13" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="11"/>
+    <field name="Frame Size" start="32" end="47" type="uint"/>
+    <field name="Frame Height" start="80" end="87" type="uint"/>
+    <field name="Frame Width" start="64" end="71" type="uint"/>
+    <field name="Second Chroma QP Offset" start="120" end="124" type="uint"/>
+    <field name="Intra MB Conformance" start="110" end="110" type="bool"/>
+    <field name="Inter MB Conformance" start="109" end="109" type="bool"/>
+    <field name="Monochrome PWT Decoding Mode" start="108" end="108" type="bool"/>
+    <field name="QM Present" start="106" end="106" type="bool"/>
+    <field name="Image Structure" start="104" end="105" type="uint">
+      <value name="Frame Picture" value="0"/>
+      <value name="Top Field Picture" value="1"/>
+      <value name="Bottom Field Picture" value="3"/>
+      <value name="Invalid, not allowed" value="2"/>
+    </field>
+    <field name="Current Decoded Image Frame Store ID" start="96" end="103" type="uint"/>
+    <field name="Minimum Frame Size" start="144" end="159" type="uint"/>
+    <field name="MB Status Read" start="143" end="143" type="bool"/>
+    <field name="Load Bitstream Pointer Per Slice" start="142" end="142" type="bool"/>
+    <field name="MV Unpacked Enable" start="140" end="140" type="bool"/>
+    <field name="Chroma Format IDC" start="138" end="139" type="uint">
+      <value name="Monochrome picture" value="0"/>
+      <value name="4:2:0 picture" value="1"/>
+      <value name="4:2:2 picture (not supported)" value="2"/>
+      <value name="4:4:4 picture (not supported)" value="3"/>
+    </field>
+    <field name="Entropy Coding" start="135" end="135" type="bool"/>
+    <field name="Non-Reference Picture" start="134" end="134" type="bool"/>
+    <field name="Constrained Intra Prediction" start="133" end="133" type="bool"/>
+    <field name="Direct 8x8 Inference" start="132" end="132" type="bool"/>
+    <field name="8x8 IDCT Transform Mode" start="131" end="131" type="bool"/>
+    <field name="Frame MB Only" start="130" end="130" type="bool"/>
+    <field name="MBAFF Mode" start="129" end="129" type="bool"/>
+    <field name="Field Picture" start="128" end="128" type="bool"/>
+    <field name="Frame Size Rate Control" start="176" end="176" type="bool"/>
+    <field name="Inter MB Force CBP to Zero Control" start="172" end="172" type="bool"/>
+    <field name="MB Level Rate Control" start="169" end="169" type="bool"/>
+    <field name="Force IPCM Control" start="167" end="167" type="bool"/>
+    <field name="Frame Bitrate Min Report" start="163" end="163" type="bool"/>
+    <field name="Frame Bitrate Max Report" start="162" end="162" type="bool"/>
+    <field name="Inter MB Max Bit Control" start="161" end="161" type="bool"/>
+    <field name="Intra MB Max Bit Control" start="160" end="160" type="bool"/>
+    <field name="Inter MB Conformance Max Size" start="208" end="219" type="uint"/>
+    <field name="Intra MB Conformance Max Size" start="192" end="203" type="uint"/>
+    <field name="Slice Delta QP Max[3]" start="280" end="287" type="int"/>
+    <field name="Slice Delta QP Max[2]" start="272" end="279" type="int"/>
+    <field name="Slice Delta QP Max[1]" start="264" end="271" type="int"/>
+    <field name="Slice Delta QP Max[0]" start="256" end="263" type="int"/>
+    <field name="Slice Delta QP Min[3]" start="312" end="319" type="int"/>
+    <field name="Slice Delta QP Min[2]" start="304" end="311" type="int"/>
+    <field name="Slice Delta QP Min[1]" start="296" end="303" type="int"/>
+    <field name="Slice Delta QP Min[0]" start="288" end="295" type="int"/>
+    <field name="Frame Bitrate Max Unit" start="351" end="351" type="uint"/>
+    <field name="Frame Bitrate Max" start="336" end="347" type="uint"/>
+    <field name="Frame Bitrate Min Unit" start="335" end="335" type="uint"/>
+    <field name="Frame Bitrate Min" start="320" end="331" type="uint"/>
+    <field name="Frame Bitrate Max Delta" start="368" end="379" type="uint"/>
+    <field name="Frame Bitrate Min Delta" start="352" end="363" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_AVC_QM_STATE" bias="2" length="2" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="1"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="0"/>
+    <field name="Use built-in Default QM Flags for the current Slice" start="40" end="47" type="uint"/>
+    <field name="QM List Present Flags for the current Slice" start="32" end="39" type="uint"/>
+    <group count="4" start="64" size="32">
+      <field name="Luma4x4 Intra Weight Scale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="4" start="192" size="32">
+      <field name="Cb4x4 Intra Weight Scale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="4" start="320" size="32">
+      <field name="Cr4x4 Intra Weight Scale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="4" start="448" size="32">
+      <field name="Luma4x4 Inter Weight Scale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="4" start="576" size="32">
+      <field name="Cb4x4 Inter Weight Scale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="4" start="704" size="32">
+      <field name="Cr4x4 Inter Weight Scale" start="0" end="31" type="uint"/>
+    </group>
+    <group count="4" start="832" size="128">
+      <field name="Luma8x8 Intra Weight Scale" start="0" end="127" type="uint"/>
+    </group>
+    <group count="4" start="1344" size="128">
+      <field name="Luma8x8 Inter Weight Scale" start="0" end="127" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFX_AVC_REF_IDX_STATE" bias="2" length="10" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="4"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="8"/>
+    <field name="Reference Picture List Select" start="32" end="32" type="uint"/>
+    <group count="32" start="64" size="8">
+      <field name="Reference List Entry" start="0" end="7" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFX_AVC_SLICE_STATE" bias="2" length="10" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="3"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="8"/>
+    <field name="Slice Type" start="32" end="35" type="uint">
+      <value name="P Slice" value="0"/>
+      <value name="B Slice" value="1"/>
+      <value name="I Slice" value="2"/>
+    </field>
+    <field name="Number of Reference Pictures in Inter-prediction List 1" start="88" end="93" type="uint"/>
+    <field name="Number of Reference Pictures in Inter-prediction List 0" start="80" end="85" type="uint"/>
+    <field name="Log2 Weight Denominator Chroma" start="72" end="74" type="uint"/>
+    <field name="Log2 Weight Denominator Luma" start="64" end="66" type="uint"/>
+    <field name="Weighted Prediction Indicator" start="126" end="127" type="uint"/>
+    <field name="Direct Prediction Type" start="125" end="125" type="uint">
+      <value name="Temporal" value="0"/>
+      <value name="Spatial" value="1"/>
+    </field>
+    <field name="Disable Deblocking Filter Indicator" start="123" end="124" type="uint"/>
+    <field name="CABAC Init IDC" start="120" end="121" type="uint"/>
+    <field name="Slice Quantization Parameter" start="112" end="117" type="uint"/>
+    <field name="Slice Beta Offset Div2" start="104" end="107" type="int"/>
+    <field name="Slice Alpha C0 Offset Div2" start="96" end="99" type="int"/>
+    <field name="Slice Vertical Position" start="152" end="159" type="uint"/>
+    <field name="Slice Horizontal Position" start="144" end="151" type="uint"/>
+    <field name="Slice Start MB Number" start="128" end="142" type="uint"/>
+    <field name="Next Slice Vertical Position" start="176" end="183" type="uint"/>
+    <field name="Next Slice Horizontal Position" start="160" end="167" type="uint"/>
+    <field name="Rate Control Counter Enable" start="223" end="223" type="bool"/>
+    <field name="Reset Rate Control Counter" start="222" end="222" type="bool"/>
+    <field name="Rate Control Triggle Mode" start="220" end="221" type="uint">
+      <value name="Always Rate Control" value="0"/>
+      <value name="Gentle Rate Control" value="1"/>
+      <value name="Loose Rate Control" value="2"/>
+    </field>
+    <field name="Rate Control Stable Tolerance" start="216" end="219" type="uint"/>
+    <field name="Rate Control Panic Enable" start="215" end="215" type="bool"/>
+    <field name="Rate Control Panic Type" start="214" end="214" type="uint">
+      <value name="QP Panic" value="0"/>
+      <value name="CBP Panic" value="1"/>
+    </field>
+    <field name="MB Type Direct Conversion Disable" start="213" end="213" type="bool"/>
+    <field name="MB Type Skip Conversion Disable" start="212" end="212" type="bool"/>
+    <field name="Last Slice Group" start="211" end="211" type="bool"/>
+    <field name="Header Insertion Present" start="209" end="209" type="bool"/>
+    <field name="Slice Data Insertion Present" start="208" end="208" type="bool"/>
+    <field name="Tail Insertion Present" start="207" end="207" type="bool"/>
+    <field name="Emulation Byte Slice Insert Enable" start="205" end="205" type="bool"/>
+    <field name="CABAC Zero Word Insertion Enable" start="204" end="204" type="bool"/>
+    <field name="Slice ID" start="196" end="199" type="uint"/>
+    <field name="Stream ID" start="192" end="193" type="uint"/>
+    <field name="Indirect PAK-BSE Data Start Address" start="224" end="252" type="offset"/>
+    <field name="QP Max Negative Modifier Magnitude" start="280" end="287" type="uint"/>
+    <field name="QP Max Positive Modifier Magnitude" start="272" end="279" type="uint"/>
+    <field name="Shrink Resistance" start="268" end="271" type="uint"/>
+    <field name="Shrink Init" start="264" end="267" type="uint"/>
+    <field name="Grow Resistance" start="260" end="263" type="uint"/>
+    <field name="Grow Init" start="256" end="259" type="uint"/>
+    <field name="Correct 6" start="308" end="311" type="uint"/>
+    <field name="Correct 5" start="304" end="307" type="uint"/>
+    <field name="Correct 4" start="300" end="303" type="uint"/>
+    <field name="Correct 3" start="296" end="299" type="uint"/>
+    <field name="Correct 2" start="292" end="295" type="uint"/>
+    <field name="Correct 1" start="288" end="291" type="uint"/>
+    <field name="CV7" start="348" end="351" type="uint"/>
+    <field name="CV6" start="344" end="347" type="uint"/>
+    <field name="CV5" start="340" end="343" type="uint"/>
+    <field name="CV4" start="336" end="339" type="uint"/>
+    <field name="CV3" start="332" end="335" type="uint"/>
+    <field name="CV2" start="328" end="331" type="uint"/>
+    <field name="CV1" start="324" end="327" type="uint"/>
+    <field name="CV0" start="320" end="323" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_AVC_WEIGHTOFFSET_STATE" bias="2" length="50" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="5"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="48"/>
+    <field name="Weight and Offset Select" start="32" end="32" type="uint">
+      <value name="L0 table" value="0"/>
+      <value name="L1 table" value="1"/>
+    </field>
+    <group count="96" start="64" size="32">
+      <field name="Weight Offset" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFX_BSP_BUF_BASE_ADDR_STATE" bias="2" length="4" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="4"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="2"/>
+    <field name="BSD/MPC Row Store Scratch Buffer - Address" start="38" end="63" type="address"/>
+    <field name="BSD/MPC Row Store Scratch Buffer - Arbitration Priority Control" start="36" end="37" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="BSP Row Store Scratch Buffer - Graphics Data Type" start="34" end="34" type="uint"/>
+    <field name="BSP Row Store Scratch Buffer - Cacheability Control" start="32" end="33" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="MPR Row Store Scratch Buffer - Address" start="70" end="95" type="address"/>
+    <field name="MPR Row Store Scratch Buffer - Arbitration Priority Control" start="68" end="69" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MPR Row Store Scratch Buffer - Graphics Data Type" start="66" end="66" type="uint"/>
+    <field name="MPR Row Store Scratch Buffer - Cacheability Control" start="64" end="65" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Bitplane Read Buffer - Address" start="102" end="127" type="address"/>
+    <field name="Bitplane Read Buffer - Arbitration Priority Control" start="100" end="101" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Bitplane Read Buffer - Graphics Data Type" start="98" end="98" type="uint"/>
+    <field name="Bitplane Read Buffer - Cacheability Control" start="96" end="97" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+  </instruction>
+
+  <instruction name="MFX_IND_OBJ_BASE_ADDR_STATE" bias="2" length="11" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="3"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="9"/>
+    <field name="MFX Indirect Bitstream Object - Address" start="44" end="63" type="address"/>
+    <field name="MFX Indirect Bitstream Object - Arbitration Priority Control" start="36" end="37" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MFX Indirect Bitstream Object - Graphics Data Type" start="34" end="34" type="uint"/>
+    <field name="MFX Indirect Bitstream Object - Cacheability Control" start="32" end="33" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="MFX Indirect Bitstream Object - Access Upper Bound" start="76" end="95" type="address"/>
+    <field name="MFX Indirect MV Object - Address" start="108" end="127" type="address"/>
+    <field name="MFX Indirect MV Object - Arbitration Priority Control" start="100" end="101" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MFX Indirect MV Object - Graphics Data Type" start="98" end="98" type="uint"/>
+    <field name="MFX Indirect MV Object - Cacheability Control" start="96" end="97" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="MFX Indirect MV Object - Access Upper Bound" start="140" end="159" type="address"/>
+    <field name="MFD Indirect IT-COEFF Object - Address" start="172" end="191" type="address"/>
+    <field name="MFD Indirect IT-COEFF Object - Arbitration Priority Control" start="164" end="165" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MFD Indirect IT-COEFF Object - Graphics Data Type" start="162" end="162" type="uint"/>
+    <field name="MFD Indirect IT-COEFF Object - Cacheability Control" start="160" end="161" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="MFD Indirect IT-COEFF Object - Access Upper Bound" start="204" end="223" type="address"/>
+    <field name="MFD Indirect IT-DBLK Object - Address" start="236" end="255" type="address"/>
+    <field name="MFD Indirect IT-DBLK Object - Arbitration Priority Control" start="228" end="229" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MFD Indirect IT-DBLK Object - Graphics Data Type" start="226" end="226" type="uint"/>
+    <field name="MFD Indirect IT-DBLK Object - Cacheability Control" start="224" end="225" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="MFD Indirect IT-DBLK Object - Access Upper Bound" start="268" end="287" type="address"/>
+    <field name="MFC Indirect PAK-BSE Object - Address" start="300" end="319" type="address"/>
+    <field name="MFC Indirect PAK-BSE Object - Arbitration Priority Control" start="292" end="293" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MFC Indirect PAK-BSE Object - Graphics Data Type" start="290" end="290" type="uint"/>
+    <field name="MFC Indirect PAK-BSE Object - Cacheability Control" start="288" end="289" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="MFC Indirect PAK-BSE Object - Access Upper Bound" start="332" end="351" type="address"/>
+  </instruction>
+
+  <instruction name="MFX_MPEG2_PIC_STATE" bias="2" length="3" engine="video">
+    <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="3"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="1"/>
+    <field name="F_code[1][1]" start="60" end="63" type="uint"/>
+    <field name="F_code[1][0]" start="56" end="59" type="uint"/>
+    <field name="F_code[0][1]" start="52" end="55" type="uint"/>
+    <field name="F_code[0][0]" start="48" end="51" type="uint"/>
+    <field name="Intra DC Precision" start="46" end="47" type="uint"/>
+    <field name="Picture Structure" start="44" end="45" type="uint">
+      <value name="MPEG_TOP_FIELD" value="1"/>
+      <value name="MPEG_BOTTOM_FIELD" value="2"/>
+      <value name="MPEG_FRAME" value="3"/>
+    </field>
+    <field name="Top Field First" start="43" end="43" type="bool"/>
+    <field name="Frame Prediction Frame DCT" start="42" end="42" type="uint"/>
+    <field name="Concealment MV" start="41" end="41" type="bool"/>
+    <field name="Quantizer Scale Type" start="40" end="40" type="uint">
+      <value name="MPEG_QSCALE_LINEAR" value="0"/>
+      <value name="MPEG_QSCALE_NONLINEAR" value="1"/>
+    </field>
+    <field name="Intra VLC Format" start="39" end="39" type="uint"/>
+    <field name="Scan Order" start="38" end="38" type="uint">
+      <value name="MPEG_ZIGZAG_SCAN" value="0"/>
+      <value name="MPEG_ALTERNATE_VERTICAL_SCAN" value="1"/>
+    </field>
+    <field name="Picture Coding Type" start="64" end="74" type="uint">
+      <value name="MPEG_I_PICTURE" value="1"/>
+      <value name="MPEG_P_PICTURE" value="2"/>
+      <value name="MPEG_B_PICTURE" value="3"/>
+    </field>
+    <field name="Frame Height In MBs" start="112" end="119" type="uint"/>
+    <field name="Frame Width In MBs" start="96" end="103" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_MPEG2_QM_STATE" bias="2" length="18" engine="video">
+    <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="3"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="1"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="16"/>
+    <field name="QM Type" start="32" end="32" type="uint">
+      <value name="MPEG_INTRA_QUANTIZER_MATRIX" value="0"/>
+      <value name="MPEG_NON_INTRA_QUANTIZER_MATRIX" value="1"/>
+    </field>
+    <group count="16" start="64" size="32">
+      <field name="Quantizer Matrix" start="0" end="31" type="uint"/>
+    </group>
+  </instruction>
+
+  <instruction name="MFX_PIPE_BUF_ADDR_STATE" bias="2" length="24" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="22"/>
+    <field name="Pre Deblocking - Address" start="38" end="63" type="address"/>
+    <field name="Pre Deblocking - Arbitration Priority Control" start="36" end="37" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Pre Deblocking - Graphics Data Type" start="34" end="34" type="uint"/>
+    <field name="Pre Deblocking - Cacheability Control" start="32" end="33" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Post Deblocking - Address" start="70" end="95" type="address"/>
+    <field name="Post Deblocking - Arbitration Priority Control" start="68" end="69" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Post Deblocking - Graphics Data Type" start="66" end="66" type="uint"/>
+    <field name="Post Deblocking - Cacheability Control" start="64" end="65" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Original Uncompressed Picture Source - Address" start="102" end="127" type="address"/>
+    <field name="Original Uncompressed Picture Source - Arbitration Priority Control" start="100" end="101" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Original Uncompressed Picture Source - Graphics Data Type" start="98" end="98" type="uint"/>
+    <field name="Original Uncompressed Picture Source - Cacheability Control" start="96" end="97" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Stream-Out Data Destination - Address" start="134" end="159" type="offset"/>
+    <field name="Stream-Out Data Destination - Arbitration Priority Control" start="132" end="133" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Stream-Out Data Destination - Graphics Data Type" start="130" end="130" type="uint"/>
+    <field name="Stream-Out Data Destination - Cacheability Control" start="128" end="129" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Intra Row Store Scratch Buffer - Address" start="166" end="191" type="address"/>
+    <field name="Intra Row Store Scratch Buffer - Arbitration Priority Control" start="164" end="165" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Intra Row Store Scratch Buffer - Graphics Data Type" start="162" end="162" type="uint"/>
+    <field name="Intra Row Store Scratch Buffer - Cacheability Control" start="160" end="161" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Deblocking Filter Row Store Scratch Buffer - Address" start="198" end="223" type="address"/>
+    <field name="Deblocking Filter Row Store Scratch Buffer - Arbitration Priority Control" start="196" end="197" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Deblocking Filter Row Store Scratch Buffer - Graphics Data Type" start="194" end="194" type="uint"/>
+    <field name="Deblocking Filter Row Store Scratch Buffer - Cacheability Control" start="192" end="193" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <group count="16" start="224" size="32">
+      <field name="Reference Picture - Address" start="6" end="31" type="address"/>
+      <field name="Reference Picture - Arbitration Priority Control" start="4" end="5" type="uint">
+        <value name="Highest priority" value="0"/>
+        <value name="Second highest priority" value="1"/>
+        <value name="Third highest priority" value="2"/>
+        <value name="Lowest priority" value="3"/>
+      </field>
+      <field name="Reference Picture - Graphics Data Type" start="2" end="2" type="uint"/>
+      <field name="Reference Picture - Cacheability Control" start="0" end="1" type="uint">
+        <value name="GTT entry" value="0"/>
+        <value name="Not in LLC or MLC" value="1"/>
+        <value name="In LLC but not MLC" value="2"/>
+        <value name="Both LLC and MLC" value="3"/>
+      </field>
+    </group>
+    <field name="MB Status Buffer - Address" start="742" end="767" type="address"/>
+    <field name="MB Status Buffer - Arbitration Priority Control" start="740" end="741" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="MB Status Buffer - Graphics Data Type" start="738" end="738" type="uint"/>
+    <field name="MB Status Buffer - Cacheability Control" start="736" end="737" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+  </instruction>
+
+  <instruction name="MFX_PIPE_MODE_SELECT" bias="2" length="4" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="2"/>
+    <field name="Decoder Mode select" start="48" end="48" type="uint">
+      <value name="LD Mode" value="0"/>
+      <value name="IT Mode" value="1"/>
+    </field>
+    <field name="Stream-Out Enable" start="42" end="42" type="bool"/>
+    <field name="Post Deblocking Output Enable" start="41" end="41" type="bool"/>
+    <field name="Pre Deblocking Output Enable" start="40" end="40" type="bool"/>
+    <field name="ZLR TLB Prefetch Enable" start="39" end="39" type="bool"/>
+    <field name="Stitch Mode" start="37" end="37" type="bool"/>
+    <field name="Codec Select" start="36" end="36" type="uint">
+      <value name="Decode" value="0"/>
+      <value name="Encode" value="1"/>
+    </field>
+    <field name="Standard Select" start="32" end="33" type="uint" prefix="SS">
+      <value name="VC1" value="1"/>
+      <value name="AVC" value="2"/>
+    </field>
+    <field name="Slice PB Rounding" start="84" end="84" type="uint"/>
+    <field name="Intra 8x8 Rounding" start="83" end="83" type="uint"/>
+    <field name="Clock Gate Enable at Slice-level" start="70" end="70" type="bool"/>
+    <field name="AVC MV/POC Table Error Disable" start="68" end="68" type="uint">
+      <value name="Terminates" value="0"/>
+      <value name="Will not terminate" value="1"/>
+    </field>
+    <field name="AVC Mbdata Error Disable" start="67" end="67" type="uint"/>
+    <field name="AVC CABAC/CAVLC Decode Error Disable" start="66" end="66" type="uint">
+      <value name="Terminate" value="0"/>
+      <value name="Will not terminate" value="1"/>
+    </field>
+    <field name="AVC Long Field MV" start="65" end="65" type="uint">
+      <value name="13 bits precision" value="0"/>
+      <value name="12 bits precision" value="1"/>
+    </field>
+    <field name="AVC ILDB Boundary Strength Calculation" start="64" end="64" type="uint">
+      <value name="Calculated only when post-filter is ON" value="0"/>
+      <value name="Calculated all the time" value="1"/>
+    </field>
+  </instruction>
+
+  <instruction name="MFX_STATE_POINTER" bias="2" length="2" engine="video">
+    <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 A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="6"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="0"/>
+    <field name="State Pointer" start="37" end="63" type="uint"/>
+    <field name="State Pointer Index" start="32" end="33" type="uint">
+      <value name="Indirect state pointer 0" value="0"/>
+      <value name="Indirect state pointer 1" value="1"/>
+      <value name="Indirect state pointer 2" value="2"/>
+      <value name="Indirect state pointer 3" value="3"/>
+    </field>
+  </instruction>
+
+  <instruction name="MFX_SURFACE_STATE" bias="2" length="6" engine="video">
+    <field name="Command Type" start="29" end="31" type="uint" default="3"/>
+    <field name="Pipeline" start="27" end="28" type="uint" default="0"/>
+    <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="4"/>
+    <field name="Height" start="83" end="95" type="uint"/>
+    <field name="Width" start="70" end="82" type="uint"/>
+    <field name="Cr(V)/Cb(U) Pixel Offset V Direction" start="64" end="65" type="uint"/>
+    <field name="Surface Format" start="124" end="127" type="uint">
+      <value name="YCRCB_NORMAL" value="0"/>
+      <value name="YCRCB_SWAPUVY" value="1"/>
+      <value name="YCRCB_SWAPUV" value="2"/>
+      <value name="YCRCB_SWAPY" value="3"/>
+      <value name="PLANAR_420_8" value="4"/>
+      <value name="PLANAR_411_8" value="5"/>
+      <value name="PLANAR_422_8" value="6"/>
+      <value name="STMM_DN_STATISTICS" value="7"/>
+      <value name="R10G10B10A2_UNORM" value="8"/>
+      <value name="R8G8B8A8_UNORM" value="9"/>
+      <value name="R8B8_UNORM (CrCb)" value="10"/>
+      <value name="R8_UNORM (Cr/Cb)" value="11"/>
+      <value name="Y8_UNORM" value="12"/>
+    </field>
+    <field name="Interleave Chroma" start="123" end="123" type="bool"/>
+    <field name="Surface Pitch" start="99" end="115" type="uint"/>
+    <field name="Half Pitch for Chroma" start="98" end="98" type="bool"/>
+    <field name="Tiled Surface" start="97" end="97" type="bool"/>
+    <field name="Tile Walk" start="96" end="96" type="uint" prefix="TW">
+      <value name="XMAJOR" value="0"/>
+      <value name="YMAJOR" value="1"/>
+    </field>
+    <field name="X Offset for U(Cb)" start="144" end="156" type="uint"/>
+    <field name="Y Offset for U(Cb)" start="128" end="140" type="uint"/>
+    <field name="X Offset for V(Cr)" start="176" end="188" type="uint"/>
+    <field name="Y Offset for V(Cr)" start="160" end="172" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_VC1_DIRECTMODE_STATE" bias="2" length="3" engine="video">
+    <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="2"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="2"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="1"/>
+    <field name="Direct MV Write Buffer - Address" start="38" end="63" type="address"/>
+    <field name="Direct MV Write Buffer - Arbitration Priority Control" start="36" end="37" type="uint">
+      <value name="Highest Priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest Priority" value="3"/>
+    </field>
+    <field name="Direct MV Write Buffer - Graphics Data Type" start="34" end="34" type="uint"/>
+    <field name="Direct MV Write Buffer - Cacheability Control" start="32" end="33" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+    <field name="Direct MV Read Buffer - Address" start="70" end="95" type="address"/>
+    <field name="Direct MV Read Buffer - Arbitration Priority Control" start="68" end="69" type="uint">
+      <value name="Highest priority" value="0"/>
+      <value name="Second highest priority" value="1"/>
+      <value name="Third highest priority" value="2"/>
+      <value name="Lowest priority" value="3"/>
+    </field>
+    <field name="Direct MV Read Buffer - Graphics Data Type" start="66" end="66" type="uint"/>
+    <field name="Direct MV Read Buffer - Cacheability Control" start="64" end="65" type="uint">
+      <value name="GTT entry" value="0"/>
+      <value name="Not in LLC or MLC" value="1"/>
+      <value name="In LLC but not MLC" value="2"/>
+      <value name="Both LLC and MLC" value="3"/>
+    </field>
+  </instruction>
+
+  <instruction name="MFX_VC1_PIC_STATE" bias="2" length="6" engine="video">
+    <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="2"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="0"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="4"/>
+    <field name="Picture Height in MBs" start="48" end="55" type="uint"/>
+    <field name="Picture Width in MBs" start="32" end="39" type="uint"/>
+    <field name="Sync Marker" start="95" end="95" type="bool"/>
+    <field name="Concealment Enable" start="93" end="93" type="bool"/>
+    <field name="Alternative PQ Value" start="88" end="92" type="uint"/>
+    <field name="Loop Filter Enable" start="87" end="87" type="bool"/>
+    <field name="Overlap Smoothing Enable" start="86" end="86" type="bool"/>
+    <field name="Implicit Quantizer" start="85" end="85" type="bool"/>
+    <field name="PQ Value" start="80" end="84" type="uint"/>
+    <field name="Alternative PQ Edge Mask" start="76" end="79" type="uint"/>
+    <field name="Alternative PQ Configuration" start="74" end="75" type="uint"/>
+    <field name="Half QP" start="73" end="73" type="uint"/>
+    <field name="PQ Uniform" start="72" end="72" type="bool"/>
+    <field name="CONDOVER" start="70" end="71" type="uint"/>
+    <field name="Second Field" start="69" end="69" type="bool"/>
+    <field name="Picture Type" start="66" end="68" type="uint"/>
+    <field name="Frame Coding Mode" start="64" end="65" type="uint">
+      <value name="Progressive Frame Picture" value="0"/>
+      <value name="Interlaced Frame Picture" value="1"/>
+      <value name="Field Picture with Top Field First" value="2"/>
+      <value name="Field Picture with Bottom Field First" value="3"/>
+    </field>
+    <field name="Bitplane Buffer Present" start="119" end="119" type="bool"/>
+    <field name="FORWARDMB Raw" start="118" end="118" type="bool"/>
+    <field name="MVTYPEMB Raw" start="117" end="117" type="bool"/>
+    <field name="SKIPMB Raw" start="116" end="116" type="bool"/>
+    <field name="DIRECTMB Raw" start="115" end="115" type="bool"/>
+    <field name="OVERFLAGS Raw" start="114" end="114" type="bool"/>
+    <field name="ACPRED Raw" start="113" end="113" type="bool"/>
+    <field name="FIELDTX Raw" start="112" end="112" type="bool"/>
+    <field name="Extended DMV Range" start="110" end="111" type="uint"/>
+    <field name="Extended MV Range" start="108" end="109" type="uint"/>
+    <field name="Four MV Switch" start="107" end="107" type="uint">
+      <value name="Only 1-MV" value="0"/>
+      <value name="1, 2, or 4 MVs" value="1"/>
+    </field>
+    <field name="Fast UV Motion Compensation" start="106" end="106" type="uint">
+      <value name="No Rounding" value="0"/>
+      <value name="Quarter-Pel offsets to Half/Full pel positions" value="1"/>
+    </field>
+    <field name="Unified MV Mode" start="104" end="105" type="uint">
+      <value name="1-MV half-pel bilinear" value="3"/>
+      <value name="1-MV" value="1"/>
+      <value name="1-MV half-pel" value="2"/>
+      <value name="Mixed MV" value="0"/>
+    </field>
+    <field name="Reference Field Picture Polarity" start="102" end="102" type="uint">
+      <value name="Top (even) Field" value="0"/>
+      <value name="Bottom (odd) Field" value="1"/>
+    </field>
+    <field name="Number of References" start="101" end="101" type="uint">
+      <value name="One field referenced" value="0"/>
+      <value name="Two fields referenced" value="1"/>
+    </field>
+    <field name="FRFD Reference Distance" start="96" end="100" type="uint"/>
+    <field name="Scale Factor" start="152" end="159" type="uint"/>
+    <field name="MV Table" start="148" end="150" type="uint"/>
+    <field name="4-MV Block Pattern Table" start="146" end="147" type="uint"/>
+    <field name="2-MV Block Pattern Table" start="144" end="145" type="uint"/>
+    <field name="Picture-level Transform Type" start="140" end="141" type="uint">
+      <value name="8x8 Transform" value="0"/>
+      <value name="8x4 Transform" value="1"/>
+      <value name="4x8 Transform" value="2"/>
+      <value name="4x4 Transform" value="3"/>
+    </field>
+    <field name="MB Transform Type" start="139" end="139" type="uint"/>
+    <field name="MB Mode Table" start="136" end="138" type="uint"/>
+    <field name="Picture-level Transform Luma AC Coding Set Index" start="134" end="135" type="uint"/>
+    <field name="Picture-level Transform Chroma AC Coding Set Index" start="132" end="133" type="uint"/>
+    <field name="Intra Transform DC Table" start="131" end="131" type="uint"/>
+    <field name="Coded Block Pattern Table" start="128" end="130" type="uint"/>
+    <field name="DMV Surface Valid" start="173" end="173" type="bool"/>
+    <field name="BRFD Reference Distance" start="168" end="172" type="uint"/>
+    <field name="Bitplane Buffer Pitch" start="160" end="167" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_VC1_PRED_PIPE_STATE" bias="2" length="4" engine="video">
+    <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="2"/>
+    <field name="SubOpcode A" start="21" end="23" type="uint" default="0"/>
+    <field name="SubOpcode B" start="16" end="20" type="uint" default="1"/>
+    <field name="DWord Length" start="0" end="11" type="uint" default="2"/>
+    <field name="Reference Frame Boundary Replication Mode" start="40" end="43" type="uint">
+      <value name="Progressive Frame Replication" value="0"/>
+      <value name="Interlace Frame Replication" value="1"/>
+    </field>
+    <field name="Interpolation Rounder Control" start="36" end="36" type="uint"/>
+    <field name="VC1 Profile" start="34" end="35" type="uint">
+      <value name="Simple Profile" value="0"/>
+      <value name="Main Profile" value="1"/>
+      <value name="Advanced Profile" value="2"/>
+    </field>
+    <field name="LumShift2 - single - FWD" start="88" end="93" type="uint"/>
+    <field name="LumShift1 - single - FWD" start="80" end="85" type="uint"/>
+    <field name="LumScale2 - single - FWD" start="72" end="77" type="uint"/>
+    <field name="LumScale1 - single - FWD" start="64" end="69" type="uint"/>
+    <field name="LumShift2 - double - FWD" start="120" end="125" type="uint"/>
+    <field name="LumShift1 - double - FWD" start="112" end="117" type="uint"/>
+    <field name="LumScale2 - double - FWD" start="104" end="109" type="uint"/>
+    <field name="LumScale1 - double - FWD" start="96" end="101" type="uint"/>
+    <field name="LumShift2 - single - BWD" start="152" end="157" type="uint"/>
+    <field name="LumShift1 - single - BWD" start="144" end="149" type="uint"/>
+    <field name="LumScale2 - single - BWD" start="136" end="141" type="uint"/>
+    <field name="LumScale1 - single - BWD" start="128" end="133" type="uint"/>
+    <field name="LumShift2 - double - BWD" start="184" end="189" type="uint"/>
+    <field name="LumShift1 - double - BWD" start="176" end="181" type="uint"/>
+    <field name="LumScale2 - double - BWD" start="168" end="173" type="uint"/>
+    <field name="LumScale1 - double - BWD" start="160" end="165" type="uint"/>
+    <field name="MV Mode" start="211" end="212" type="uint">
+      <value name="Half-pel bicubic" value="0"/>
+      <value name="Quarter-pel bicubic" value="1"/>
+    </field>
+    <field name="Fast UV Compensation" start="210" end="210" type="bool"/>
+    <field name="Range Reduction Scale" start="209" end="209" type="uint"/>
+    <field name="Range Reduction" start="208" end="208" type="bool"/>
+    <field name="Vin Intensity Compensation Double Forward Enable" start="198" end="199" type="uint"/>
+    <field name="Vin Intensity Compensation Double Backward Enable" start="196" end="197" type="uint"/>
+    <field name="Vin Intensity Compensation Single Forward Enable" start="194" end="195" type="uint"/>
+    <field name="Vin Intensity Compensation Single Backward Enable" start="192" end="193" type="uint"/>
+  </instruction>
+
+  <instruction name="MFX_WAIT" bias="1" length="1" engine="video">
+    <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="SubOpcode" start="16" end="26" type="uint" default="0"/>
+    <field name="MFX Sync Control Flag" start="8" end="8" type="bool"/>
+    <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
+  </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"/>
     </field>
   </instruction>
 
+  <instruction name="MI_FLUSH_DW" bias="2" length="4" engine="video">
+    <field name="Command Type" start="29" end="31" type="uint" default="0"/>
+    <field name="MI Command Opcode" start="23" end="28" type="uint" default="38"/>
+    <field name="Store Data Index" start="21" end="21" type="bool"/>
+    <field name="TLB Invalidate" start="18" end="18" type="bool"/>
+    <field name="Synchronize GFDT Surface" start="17" end="17" type="bool"/>
+    <field name="Post-Sync Operation" start="14" end="15" type="uint"/>
+    <field name="Notify Enable" start="8" end="8" type="bool"/>
+    <field name="Video Pipeline Cache Invalidate" start="7" end="7" type="bool"/>
+    <field name="DWord Length" start="0" end="5" type="uint"/>
+    <field name="Address" start="35" end="63" type="address"/>
+    <field name="Destination Address Type" start="34" end="34" type="uint" prefix="DAT">
+      <value name="PPGTT" value="0"/>
+      <value name="GGTT" value="1"/>
+    </field>
+    <group count="2" start="64" size="32">
+      <field name="Immediate Data" start="0" end="31" type="uint"/>
+    </group>
+  </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="MI Command Opcode" start="23" end="28" type="uint" default="2"/>
   </instruction>
 
-  <instruction name="MI_WAIT_FOR_EVENT" bias="1" length="1" engine="render">
+  <instruction name="MI_WAIT_FOR_EVENT" bias="1" length="1" engine="render|blitter|video">
     <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="Condition Code Wait Select" start="16" end="19" type="uint">