OSDN Git Service

intel/genxml: Fix some more fake booleans in genxml.
[android-x86/external-mesa.git] / src / intel / genxml / gen8.xml
1 <?xml version="1.0" ?>
2 <genxml name="BDW" gen="8">
3   <enum name="3D_Prim_Topo_Type" prefix="3DPRIM">
4     <value name="POINTLIST" value="1"/>
5     <value name="LINELIST" value="2"/>
6     <value name="LINESTRIP" value="3"/>
7     <value name="TRILIST" value="4"/>
8     <value name="TRISTRIP" value="5"/>
9     <value name="TRIFAN" value="6"/>
10     <value name="QUADLIST" value="7"/>
11     <value name="QUADSTRIP" value="8"/>
12     <value name="LINELIST_ADJ" value="9"/>
13     <value name="LINESTRIP_ADJ" value="10"/>
14     <value name="TRILIST_ADJ" value="11"/>
15     <value name="TRISTRIP_ADJ" value="12"/>
16     <value name="TRISTRIP_REVERSE" value="13"/>
17     <value name="POLYGON" value="14"/>
18     <value name="RECTLIST" value="15"/>
19     <value name="LINELOOP" value="16"/>
20     <value name="POINTLIST _BF" value="17"/>
21     <value name="LINESTRIP_CONT" value="18"/>
22     <value name="LINESTRIP_BF" value="19"/>
23     <value name="LINESTRIP_CONT_BF" value="20"/>
24     <value name="TRIFAN_NOSTIPPLE" value="22"/>
25     <value name="PATCHLIST_1" value="32"/>
26     <value name="PATCHLIST_2" value="33"/>
27     <value name="PATCHLIST_3" value="34"/>
28     <value name="PATCHLIST_4" value="35"/>
29     <value name="PATCHLIST_5" value="36"/>
30     <value name="PATCHLIST_6" value="37"/>
31     <value name="PATCHLIST_7" value="38"/>
32     <value name="PATCHLIST_8" value="39"/>
33     <value name="PATCHLIST_9" value="40"/>
34     <value name="PATCHLIST_10" value="41"/>
35     <value name="PATCHLIST_11" value="42"/>
36     <value name="PATCHLIST_12" value="43"/>
37     <value name="PATCHLIST_13" value="44"/>
38     <value name="PATCHLIST_14" value="45"/>
39     <value name="PATCHLIST_15" value="46"/>
40     <value name="PATCHLIST_16" value="47"/>
41     <value name="PATCHLIST_17" value="48"/>
42     <value name="PATCHLIST_18" value="49"/>
43     <value name="PATCHLIST_19" value="50"/>
44     <value name="PATCHLIST_20" value="51"/>
45     <value name="PATCHLIST_21" value="52"/>
46     <value name="PATCHLIST_22" value="53"/>
47     <value name="PATCHLIST_23" value="54"/>
48     <value name="PATCHLIST_24" value="55"/>
49     <value name="PATCHLIST_25" value="56"/>
50     <value name="PATCHLIST_26" value="57"/>
51     <value name="PATCHLIST_27" value="58"/>
52     <value name="PATCHLIST_28" value="59"/>
53     <value name="PATCHLIST_29" value="60"/>
54     <value name="PATCHLIST_30" value="61"/>
55     <value name="PATCHLIST_31" value="62"/>
56     <value name="PATCHLIST_32" value="63"/>
57   </enum>
58
59   <enum name="3D_Vertex_Component_Control" prefix="VFCOMP">
60     <value name="NOSTORE" value="0"/>
61     <value name="STORE_SRC" value="1"/>
62     <value name="STORE_0" value="2"/>
63     <value name="STORE_1_FP" value="3"/>
64     <value name="STORE_1_INT" value="4"/>
65     <value name="STORE_PID" value="7"/>
66   </enum>
67
68   <enum name="WRAP_SHORTEST_ENABLE" prefix="WSE">
69     <value name="X" value="1"/>
70     <value name="Y" value="2"/>
71     <value name="XY" value="3"/>
72     <value name="Z" value="4"/>
73     <value name="XZ" value="5"/>
74     <value name="YZ" value="6"/>
75     <value name="XYZ" value="7"/>
76     <value name="W" value="8"/>
77     <value name="XW" value="9"/>
78     <value name="YW" value="10"/>
79     <value name="XYW" value="11"/>
80     <value name="ZW" value="12"/>
81     <value name="XZW" value="13"/>
82     <value name="YZW" value="14"/>
83     <value name="XYZW" value="15"/>
84   </enum>
85
86   <enum name="3D_Stencil_Operation" prefix="STENCILOP">
87     <value name="KEEP" value="0"/>
88     <value name="ZERO" value="1"/>
89     <value name="REPLACE" value="2"/>
90     <value name="INCRSAT" value="3"/>
91     <value name="DECRSAT" value="4"/>
92     <value name="INCR" value="5"/>
93     <value name="DECR" value="6"/>
94     <value name="INVERT" value="7"/>
95   </enum>
96
97   <enum name="3D_Color_Buffer_Blend_Factor" prefix="BLENDFACTOR">
98     <value name="ONE" value="1"/>
99     <value name="SRC_COLOR" value="2"/>
100     <value name="SRC_ALPHA" value="3"/>
101     <value name="DST_ALPHA" value="4"/>
102     <value name="DST_COLOR" value="5"/>
103     <value name="SRC_ALPHA_SATURATE" value="6"/>
104     <value name="CONST_COLOR" value="7"/>
105     <value name="CONST_ALPHA" value="8"/>
106     <value name="SRC1_COLOR" value="9"/>
107     <value name="SRC1_ALPHA" value="10"/>
108     <value name="ZERO" value="17"/>
109     <value name="INV_SRC_COLOR" value="18"/>
110     <value name="INV_SRC_ALPHA" value="19"/>
111     <value name="INV_DST_ALPHA" value="20"/>
112     <value name="INV_DST_COLOR" value="21"/>
113     <value name="INV_CONST_COLOR" value="23"/>
114     <value name="INV_CONST_ALPHA" value="24"/>
115     <value name="INV_SRC1_COLOR" value="25"/>
116     <value name="INV_SRC1_ALPHA" value="26"/>
117   </enum>
118
119   <enum name="3D_Color_Buffer_Blend_Function" prefix="BLENDFUNCTION">
120     <value name="ADD" value="0"/>
121     <value name="SUBTRACT" value="1"/>
122     <value name="REVERSE_SUBTRACT" value="2"/>
123     <value name="MIN" value="3"/>
124     <value name="MAX" value="4"/>
125   </enum>
126
127   <enum name="3D_Compare_Function" prefix="COMPAREFUNCTION">
128     <value name="ALWAYS" value="0"/>
129     <value name="NEVER" value="1"/>
130     <value name="LESS" value="2"/>
131     <value name="EQUAL" value="3"/>
132     <value name="LEQUAL" value="4"/>
133     <value name="GREATER" value="5"/>
134     <value name="NOTEQUAL" value="6"/>
135     <value name="GEQUAL" value="7"/>
136   </enum>
137
138   <enum name="3D_Logic_Op_Function" prefix="LOGICOP">
139     <value name="CLEAR" value="0"/>
140     <value name="NOR" value="1"/>
141     <value name="AND_INVERTED" value="2"/>
142     <value name="COPY_INVERTED" value="3"/>
143     <value name="AND_REVERSE" value="4"/>
144     <value name="INVERT" value="5"/>
145     <value name="XOR" value="6"/>
146     <value name="NAND" value="7"/>
147     <value name="AND" value="8"/>
148     <value name="EQUIV" value="9"/>
149     <value name="NOOP" value="10"/>
150     <value name="OR_INVERTED" value="11"/>
151     <value name="COPY" value="12"/>
152     <value name="OR_REVERSE" value="13"/>
153     <value name="OR" value="14"/>
154     <value name="SET" value="15"/>
155   </enum>
156
157   <enum name="Shader Channel Select" prefix="SCS">
158     <value name="ZERO" value="0"/>
159     <value name="ONE" value="1"/>
160     <value name="RED" value="4"/>
161     <value name="GREEN" value="5"/>
162     <value name="BLUE" value="6"/>
163     <value name="ALPHA" value="7"/>
164   </enum>
165
166   <enum name="Clear Color">
167     <value name="CC_ZERO" value="0"/>
168     <value name="CC_ONE" value="1"/>
169   </enum>
170
171   <enum name="Texture Coordinate Mode" prefix="TCM">
172     <value name="WRAP" value="0"/>
173     <value name="MIRROR" value="1"/>
174     <value name="CLAMP" value="2"/>
175     <value name="CUBE" value="3"/>
176     <value name="CLAMP_BORDER" value="4"/>
177     <value name="MIRROR_ONCE" value="5"/>
178     <value name="HALF_BORDER" value="6"/>
179   </enum>
180
181   <struct name="3DSTATE_CONSTANT_BODY" length="10">
182     <group count="4" start="0" size="16">
183       <field name="Read Length" start="0" end="15" type="uint"/>
184     </group>
185     <group count="4" start="64" size="64">
186       <field name="Buffer" start="5" end="63" type="address"/>
187     </group>
188   </struct>
189
190   <struct name="BINDING_TABLE_EDIT_ENTRY" length="1">
191     <field name="Binding Table Index" start="16" end="23" type="uint"/>
192     <field name="Surface State Pointer" start="0" end="15" type="offset"/>
193   </struct>
194
195   <struct name="GATHER_CONSTANT_ENTRY" length="1">
196     <field name="Constant Buffer Offset" start="8" end="15" type="offset"/>
197     <field name="Channel Mask" start="4" end="7" type="uint"/>
198     <field name="Binding Table Index Offset" start="0" end="3" type="uint"/>
199   </struct>
200
201   <struct name="MEMORY_OBJECT_CONTROL_STATE" length="1">
202     <field name="Memory Type:LLC/eLLC Cacheability Control" start="5" end="6" type="uint">
203       <value name=" UC with Fence (if coherent cycle)" value="0"/>
204       <value name="UC (Uncacheable)" value="1"/>
205       <value name="WT" value="2"/>
206       <value name="WB" value="3"/>
207     </field>
208     <field name="Target Cache" start="3" end="4" type="uint">
209       <value name="eLLC Only (when eDRAM is present, else gets allocated in LLC)" value="0"/>
210       <value name="LLC Only" value="1"/>
211       <value name="LLC/eLLC Allowed" value="2"/>
212       <value name="L3 + Defer to PAT for LLC/eLLC selection" value="3"/>
213     </field>
214     <field name="Age for QUADLRU" start="0" end="1" type="uint"/>
215   </struct>
216
217   <struct name="VERTEX_BUFFER_STATE" length="4">
218     <field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
219     <field name="Memory Object Control State" start="16" end="22" type="MEMORY_OBJECT_CONTROL_STATE"/>
220     <field name="Vertex Buffer MOCS" start="16" end="22" type="uint"/>
221     <field name="Address Modify Enable" start="14" end="14" type="bool"/>
222     <field name="Null Vertex Buffer" start="13" end="13" type="bool"/>
223     <field name="Buffer Pitch" start="0" end="11" type="uint"/>
224     <field name="Buffer Starting Address" start="32" end="95" type="address"/>
225     <field name="Buffer Size" start="96" end="127" type="uint"/>
226   </struct>
227
228   <struct name="VERTEX_ELEMENT_STATE" length="2">
229     <field name="Vertex Buffer Index" start="26" end="31" type="uint"/>
230     <field name="Valid" start="25" end="25" type="bool"/>
231     <field name="Source Element Format" start="16" end="24" type="uint"/>
232     <field name="Edge Flag Enable" start="15" end="15" type="bool"/>
233     <field name="Source Element Offset" start="0" end="11" type="uint"/>
234     <field name="Component 0 Control" start="60" end="62" type="3D_Vertex_Component_Control"/>
235     <field name="Component 1 Control" start="56" end="58" type="3D_Vertex_Component_Control"/>
236     <field name="Component 2 Control" start="52" end="54" type="3D_Vertex_Component_Control"/>
237     <field name="Component 3 Control" start="48" end="50" type="3D_Vertex_Component_Control"/>
238   </struct>
239
240   <struct name="SO_DECL" length="1">
241     <field name="Output Buffer Slot" start="12" end="13" type="uint"/>
242     <field name="Hole Flag" start="11" end="11" type="uint"/>
243     <field name="Register Index" start="4" end="9" type="uint"/>
244     <field name="Component Mask" start="0" end="3" type="uint" default="0"/>
245   </struct>
246
247   <struct name="SO_DECL_ENTRY" length="2">
248     <field name="Stream 3 Decl" start="48" end="63" type="SO_DECL"/>
249     <field name="Stream 2 Decl" start="32" end="47" type="SO_DECL"/>
250     <field name="Stream 1 Decl" start="16" end="31" type="SO_DECL"/>
251     <field name="Stream 0 Decl" start="0" end="15" type="SO_DECL"/>
252   </struct>
253
254   <struct name="SF_OUTPUT_ATTRIBUTE_DETAIL" length="1">
255     <field name="Component Override W" start="15" end="15" type="bool"/>
256     <field name="Component Override Z" start="14" end="14" type="bool"/>
257     <field name="Component Override Y" start="13" end="13" type="bool"/>
258     <field name="Component Override X" start="12" end="12" type="bool"/>
259     <field name="Swizzle Control Mode" start="11" end="11" type="uint"/>
260     <field name="Constant Source" start="9" end="10" type="uint">
261       <value name="CONST_0000" value="0"/>
262       <value name="CONST_0001_FLOAT" value="1"/>
263       <value name="CONST_1111_FLOAT" value="2"/>
264       <value name="PRIM_ID" value="3"/>
265     </field>
266     <field name="Swizzle Select" start="6" end="7" type="uint">
267       <value name="INPUTATTR" value="0"/>
268       <value name="INPUTATTR_FACING" value="1"/>
269       <value name="INPUTATTR_W" value="2"/>
270       <value name="INPUTATTR_FACING_W" value="3"/>
271     </field>
272     <field name="Source Attribute" start="0" end="4" type="uint"/>
273   </struct>
274
275   <struct name="SCISSOR_RECT" length="2">
276     <field name="Scissor Rectangle Y Min" start="16" end="31" type="uint"/>
277     <field name="Scissor Rectangle X Min" start="0" end="15" type="uint"/>
278     <field name="Scissor Rectangle Y Max" start="48" end="63" type="uint"/>
279     <field name="Scissor Rectangle X Max" start="32" end="47" type="uint"/>
280   </struct>
281
282   <struct name="SF_CLIP_VIEWPORT" length="16">
283     <field name="Viewport Matrix Element m00" start="0" end="31" type="float"/>
284     <field name="Viewport Matrix Element m11" start="32" end="63" type="float"/>
285     <field name="Viewport Matrix Element m22" start="64" end="95" type="float"/>
286     <field name="Viewport Matrix Element m30" start="96" end="127" type="float"/>
287     <field name="Viewport Matrix Element m31" start="128" end="159" type="float"/>
288     <field name="Viewport Matrix Element m32" start="160" end="191" type="float"/>
289     <field name="X Min Clip Guardband" start="256" end="287" type="float"/>
290     <field name="X Max Clip Guardband" start="288" end="319" type="float"/>
291     <field name="Y Min Clip Guardband" start="320" end="351" type="float"/>
292     <field name="Y Max Clip Guardband" start="352" end="383" type="float"/>
293     <field name="X Min ViewPort" start="384" end="415" type="float"/>
294     <field name="X Max ViewPort" start="416" end="447" type="float"/>
295     <field name="Y Min ViewPort" start="448" end="479" type="float"/>
296     <field name="Y Max ViewPort" start="480" end="511" type="float"/>
297   </struct>
298
299   <struct name="BLEND_STATE_ENTRY" length="2">
300     <field name="Logic Op Enable" start="63" end="63" type="bool"/>
301     <field name="Logic Op Function" start="59" end="62" type="3D_Logic_Op_Function"/>
302     <field name="Pre-Blend Source Only Clamp Enable" start="36" end="36" type="bool"/>
303     <field name="Color Clamp Range" start="34" end="35" type="uint">
304       <value name="COLORCLAMP_UNORM" value="0"/>
305       <value name="COLORCLAMP_SNORM" value="1"/>
306       <value name="COLORCLAMP_RTFORMAT" value="2"/>
307     </field>
308     <field name="Pre-Blend Color Clamp Enable" start="33" end="33" type="bool"/>
309     <field name="Post-Blend Color Clamp Enable" start="32" end="32" type="bool"/>
310     <field name="Color Buffer Blend Enable" start="31" end="31" type="bool"/>
311     <field name="Source Blend Factor" start="26" end="30" type="3D_Color_Buffer_Blend_Factor"/>
312     <field name="Destination Blend Factor" start="21" end="25" type="3D_Color_Buffer_Blend_Factor"/>
313     <field name="Color Blend Function" start="18" end="20" type="3D_Color_Buffer_Blend_Function"/>
314     <field name="Source Alpha Blend Factor" start="13" end="17" type="3D_Color_Buffer_Blend_Factor"/>
315     <field name="Destination Alpha Blend Factor" start="8" end="12" type="3D_Color_Buffer_Blend_Factor"/>
316     <field name="Alpha Blend Function" start="5" end="7" type="3D_Color_Buffer_Blend_Function"/>
317     <field name="Write Disable Alpha" start="3" end="3" type="bool"/>
318     <field name="Write Disable Red" start="2" end="2" type="bool"/>
319     <field name="Write Disable Green" start="1" end="1" type="bool"/>
320     <field name="Write Disable Blue" start="0" end="0" type="bool"/>
321   </struct>
322
323   <struct name="BLEND_STATE" length="1">
324     <field name="Alpha To Coverage Enable" start="31" end="31" type="bool"/>
325     <field name="Independent Alpha Blend Enable" start="30" end="30" type="bool"/>
326     <field name="Alpha To One Enable" start="29" end="29" type="bool"/>
327     <field name="Alpha To Coverage Dither Enable" start="28" end="28" type="bool"/>
328     <field name="Alpha Test Enable" start="27" end="27" type="bool"/>
329     <field name="Alpha Test Function" start="24" end="26" type="3D_Compare_Function"/>
330     <field name="Color Dither Enable" start="23" end="23" type="bool"/>
331     <field name="X Dither Offset" start="21" end="22" type="uint"/>
332     <field name="Y Dither Offset" start="19" end="20" type="uint"/>
333     <group count="0" start="32" size="64">
334       <field name="Entry" start="0" end="63" type="BLEND_STATE_ENTRY"/>
335     </group>
336   </struct>
337
338   <struct name="CC_VIEWPORT" length="2">
339     <field name="Minimum Depth" start="0" end="31" type="float"/>
340     <field name="Maximum Depth" start="32" end="63" type="float"/>
341   </struct>
342
343   <struct name="COLOR_CALC_STATE" length="6">
344     <field name="Stencil Reference Value" start="24" end="31" type="uint"/>
345     <field name="Backface Stencil Reference Value" start="16" end="23" type="uint"/>
346     <field name="Round Disable Function Disable" start="15" end="15" type="bool"/>
347     <field name="Alpha Test Format" start="0" end="0" type="uint">
348       <value name="ALPHATEST_UNORM8" value="0"/>
349       <value name="ALPHATEST_FLOAT32" value="1"/>
350     </field>
351     <field name="Alpha Reference Value As UNORM8" start="32" end="63" type="uint"/>
352     <field name="Alpha Reference Value As FLOAT32" start="32" end="63" type="float"/>
353     <field name="Blend Constant Color Red" start="64" end="95" type="float"/>
354     <field name="Blend Constant Color Green" start="96" end="127" type="float"/>
355     <field name="Blend Constant Color Blue" start="128" end="159" type="float"/>
356     <field name="Blend Constant Color Alpha" start="160" end="191" type="float"/>
357   </struct>
358
359   <struct name="INTERFACE_DESCRIPTOR_DATA" length="8">
360     <field name="Kernel Start Pointer" start="6" end="47" type="offset"/>
361     <field name="Denorm Mode" start="83" end="83" type="uint">
362       <value name="Ftz" value="0"/>
363       <value name="SetByKernel" value="1"/>
364     </field>
365     <field name="Single Program Flow" start="82" end="82" type="bool"/>
366     <field name="Thread Priority" start="81" end="81" type="uint">
367       <value name="Normal Priority" value="0"/>
368       <value name="High Priority" value="1"/>
369     </field>
370     <field name="Floating Point Mode" start="80" end="80" type="uint">
371       <value name="IEEE-754" value="0"/>
372       <value name="Alternate" value="1"/>
373     </field>
374     <field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
375     <field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
376     <field name="Software Exception Enable" start="71" end="71" type="bool"/>
377     <field name="Sampler State Pointer" start="101" end="127" type="offset"/>
378     <field name="Sampler Count" start="98" end="100" type="uint">
379       <value name="No samplers used" value="0"/>
380       <value name="Between 1 and 4 samplers used" value="1"/>
381       <value name="Between 5 and 8 samplers used" value="2"/>
382       <value name="Between 9 and 12 samplers used" value="3"/>
383       <value name="Between 13 and 16 samplers used" value="4"/>
384     </field>
385     <field name="Binding Table Pointer" start="133" end="143" type="offset"/>
386     <field name="Binding Table Entry Count" start="128" end="132" type="uint"/>
387     <field name="Constant URB Entry Read Length" start="176" end="191" type="uint"/>
388     <field name="Constant URB Entry Read Offset" start="160" end="175" type="uint"/>
389     <field name="Rounding Mode" start="214" end="215" type="uint">
390       <value name="RTNE" value="0"/>
391       <value name="RU" value="1"/>
392       <value name="RD" value="2"/>
393       <value name="RTZ" value="3"/>
394     </field>
395     <field name="Barrier Enable" start="213" end="213" type="bool"/>
396     <field name="Shared Local Memory Size" start="208" end="212" type="uint">
397       <value name="Encodes 0k" value="0"/>
398       <value name="Encodes 4k" value="1"/>
399       <value name="Encodes 8k" value="2"/>
400       <value name="Encodes 16k" value="4"/>
401       <value name="Encodes 32k" value="8"/>
402       <value name="Encodes 64k" value="16"/>
403     </field>
404     <field name="Number of Threads in GPGPU Thread Group" start="192" end="201" type="uint"/>
405     <field name="Cross-Thread Constant Data Read Length" start="224" end="231" type="uint"/>
406   </struct>
407
408   <struct name="PALETTE_ENTRY" length="1">
409     <field name="Alpha" start="24" end="31" type="uint"/>
410     <field name="Red" start="16" end="23" type="uint"/>
411     <field name="Green" start="8" end="15" type="uint"/>
412     <field name="Blue" start="0" end="7" type="uint"/>
413   </struct>
414
415   <struct name="BINDING_TABLE_STATE" length="1">
416     <field name="Surface State Pointer" start="6" end="31" type="offset"/>
417   </struct>
418
419   <struct name="RENDER_SURFACE_STATE" length="16">
420     <field name="Surface Type" start="29" end="31" type="uint">
421       <value name="SURFTYPE_1D" value="0"/>
422       <value name="SURFTYPE_2D" value="1"/>
423       <value name="SURFTYPE_3D" value="2"/>
424       <value name="SURFTYPE_CUBE" value="3"/>
425       <value name="SURFTYPE_BUFFER" value="4"/>
426       <value name="SURFTYPE_STRBUF" value="5"/>
427       <value name="SURFTYPE_NULL" value="7"/>
428     </field>
429     <field name="Surface Array" start="28" end="28" type="bool"/>
430     <field name="Surface Format" start="18" end="26" type="uint"/>
431     <field name="Surface Vertical Alignment" start="16" end="17" type="uint">
432       <value name="VALIGN 4" value="1"/>
433       <value name="VALIGN 8" value="2"/>
434       <value name="VALIGN 16" value="3"/>
435     </field>
436     <field name="Surface Horizontal Alignment" start="14" end="15" type="uint">
437       <value name="HALIGN 4" value="1"/>
438       <value name="HALIGN 8" value="2"/>
439       <value name="HALIGN 16" value="3"/>
440     </field>
441     <field name="Tile Mode" start="12" end="13" type="uint">
442       <value name="LINEAR" value="0"/>
443       <value name="WMAJOR" value="1"/>
444       <value name="XMAJOR" value="2"/>
445       <value name="YMAJOR" value="3"/>
446     </field>
447     <field name="Vertical Line Stride" start="11" end="11" type="uint"/>
448     <field name="Vertical Line Stride Offset" start="10" end="10" type="uint"/>
449     <field name="Sampler L2 Bypass Mode Disable" start="9" end="9" type="bool"/>
450     <field name="Render Cache Read Write Mode" start="8" end="8" type="uint">
451       <value name="Write-Only Cache" value="0"/>
452       <value name="Read-Write Cache" value="1"/>
453     </field>
454     <field name="Media Boundary Pixel Mode" start="6" end="7" type="uint">
455       <value name="NORMAL_MODE" value="0"/>
456       <value name="PROGRESSIVE_FRAME" value="2"/>
457       <value name="INTERLACED_FRAME" value="3"/>
458     </field>
459     <field name="Cube Face Enable - Positive Z" start="0" end="0" type="bool"/>
460     <field name="Cube Face Enable - Negative Z" start="1" end="1" type="bool"/>
461     <field name="Cube Face Enable - Positive Y" start="2" end="2" type="bool"/>
462     <field name="Cube Face Enable - Negative Y" start="3" end="3" type="bool"/>
463     <field name="Cube Face Enable - Positive X" start="4" end="4" type="bool"/>
464     <field name="Cube Face Enable - Negative X" start="5" end="5" type="bool"/>
465     <field name="Memory Object Control State" start="56" end="62" type="MEMORY_OBJECT_CONTROL_STATE"/>
466     <field name="MOCS" start="56" end="62" type="uint"/>
467     <field name="Base Mip Level" start="51" end="55" type="u4.1"/>
468     <field name="Surface QPitch" start="32" end="46" type="uint"/>
469     <field name="Height" start="80" end="93" type="uint"/>
470     <field name="Width" start="64" end="77" type="uint"/>
471     <field name="Depth" start="117" end="127" type="uint"/>
472     <field name="Surface Pitch" start="96" end="113" type="uint"/>
473     <field name="Render Target And Sample Unorm Rotation" start="157" end="158" type="uint">
474       <value name="0DEG" value="0"/>
475       <value name="90DEG" value="1"/>
476       <value name="270DEG" value="3"/>
477     </field>
478     <field name="Minimum Array Element" start="146" end="156" type="uint"/>
479     <field name="Render Target View Extent" start="135" end="145" type="uint"/>
480     <field name="Multisampled Surface Storage Format" start="134" end="134" type="uint">
481       <value name="MSFMT_MSS" value="0"/>
482       <value name="MSFMT_DEPTH_STENCIL" value="1"/>
483     </field>
484     <field name="Number of Multisamples" start="131" end="133" type="uint">
485       <value name="MULTISAMPLECOUNT_1" value="0"/>
486       <value name="MULTISAMPLECOUNT_2" value="1"/>
487       <value name="MULTISAMPLECOUNT_4" value="2"/>
488       <value name="MULTISAMPLECOUNT_8" value="3"/>
489     </field>
490     <field name="Multisample Position Palette Index" start="128" end="130" type="uint"/>
491     <field name="X Offset" start="185" end="191" type="uint"/>
492     <field name="Y Offset" start="181" end="183" type="uint"/>
493     <field name="EWA Disable For Cube" start="180" end="180" type="bool"/>
494     <field name="Coherency Type" start="174" end="174" type="uint">
495       <value name="GPU coherent" value="0"/>
496       <value name="IA coherent" value="1"/>
497     </field>
498     <field name="Surface Min LOD" start="164" end="167" type="uint"/>
499     <field name="MIP Count / LOD" start="160" end="163" type="uint"/>
500     <field name="Auxiliary Surface QPitch" start="208" end="222" type="uint"/>
501     <field name="Auxiliary Surface Pitch" start="195" end="203" type="uint"/>
502     <field name="Auxiliary Surface Mode" start="192" end="194" type="uint">
503       <value name="AUX_NONE" value="0"/>
504       <value name="AUX_MCS" value="1"/>
505       <value name="AUX_APPEND" value="2"/>
506       <value name="AUX_HIZ" value="3"/>
507     </field>
508     <field name="Separate UV Plane Enable" start="223" end="223" type="bool"/>
509     <field name="X Offset for U or UV Plane" start="208" end="221" type="uint"/>
510     <field name="Y Offset for U or UV Plane" start="192" end="205" type="uint"/>
511     <field name="Red Clear Color" start="255" end="255" type="Clear Color"/>
512     <field name="Green Clear Color" start="254" end="254" type="Clear Color"/>
513     <field name="Blue Clear Color" start="253" end="253" type="Clear Color"/>
514     <field name="Alpha Clear Color" start="252" end="252" type="Clear Color"/>
515     <field name="Shader Channel Select Red" start="249" end="251" type="Shader Channel Select"/>
516     <field name="Shader Channel Select Green" start="246" end="248" type="Shader Channel Select"/>
517     <field name="Shader Channel Select Blue" start="243" end="245" type="Shader Channel Select"/>
518     <field name="Shader Channel Select Alpha" start="240" end="242" type="Shader Channel Select"/>
519     <field name="Resource Min LOD" start="224" end="235" type="u4.8"/>
520     <field name="Surface Base Address" start="256" end="319" type="address"/>
521     <field name="X Offset for V Plane" start="368" end="381" type="uint"/>
522     <field name="Y Offset for V Plane" start="352" end="365" type="uint"/>
523     <field name="Auxiliary Table Index for Media Compressed Surface" start="341" end="351" type="uint"/>
524     <field name="Auxiliary Surface Base Address" start="332" end="383" type="address"/>
525   </struct>
526
527   <struct name="FILTER_COEFFICIENT" length="1">
528     <field name="Filter Coefficient" start="0" end="7" type="s1.6"/>
529   </struct>
530
531   <struct name="SAMPLER_BORDER_COLOR_STATE" length="4">
532     <field name="Border Color Float Red" start="0" end="31" type="float"/>
533     <field name="Border Color Float Green" start="32" end="63" type="float"/>
534     <field name="Border Color Float Blue" start="64" end="95" type="float"/>
535     <field name="Border Color Float Alpha" start="96" end="127" type="float"/>
536
537     <field name="Border Color 32bit Red" start="0" end="31" type="uint"/>
538     <field name="Border Color 32bit Green" start="32" end="63" type="uint"/>
539     <field name="Border Color 32bit Blue" start="64" end="95" type="uint"/>
540     <field name="Border Color 32bit Alpha" start="96" end="127" type="uint"/>
541   </struct>
542
543   <struct name="SAMPLER_STATE" length="4">
544     <field name="Sampler Disable" start="31" end="31" type="bool"/>
545     <field name="Texture Border Color Mode" start="29" end="29" type="uint">
546       <value name="DX10/OGL" value="0"/>
547       <value name="DX9" value="1"/>
548     </field>
549     <field name="LOD PreClamp Mode" start="27" end="28" type="uint" prefix="CLAMP_MODE">
550       <value name="NONE" value="0"/>
551       <value name="OGL" value="2"/>
552     </field>
553     <field name="Base Mip Level" start="22" end="26" type="u4.1"/>
554     <field name="Mip Mode Filter" start="20" end="21" type="uint" prefix="MIPFILTER">
555       <value name="NONE" value="0"/>
556       <value name="NEAREST" value="1"/>
557       <value name="LINEAR" value="3"/>
558     </field>
559     <field name="Mag Mode Filter" start="17" end="19" type="uint" prefix="MAPFILTER">
560       <value name="NEAREST" value="0"/>
561       <value name="LINEAR" value="1"/>
562       <value name="ANISOTROPIC" value="2"/>
563       <value name="MONO" value="6"/>
564     </field>
565     <field name="Min Mode Filter" start="14" end="16" type="uint" prefix="MAPFILTER">
566       <value name="NEAREST" value="0"/>
567       <value name="LINEAR" value="1"/>
568       <value name="ANISOTROPIC" value="2"/>
569       <value name="MONO" value="6"/>
570     </field>
571     <field name="Texture LOD Bias" start="1" end="13" type="s4.8"/>
572     <field name="Anisotropic Algorithm" start="0" end="0" type="uint">
573       <value name="LEGACY" value="0"/>
574       <value name="EWA Approximation" value="1"/>
575     </field>
576     <field name="Min LOD" start="52" end="63" type="u4.8"/>
577     <field name="Max LOD" start="40" end="51" type="u4.8"/>
578     <field name="ChromaKey Enable" start="39" end="39" type="bool"/>
579     <field name="ChromaKey Index" start="37" end="38" type="uint"/>
580     <field name="ChromaKey Mode" start="36" end="36" type="uint">
581       <value name="KEYFILTER_KILL_ON_ANY_MATCH" value="0"/>
582       <value name="KEYFILTER_REPLACE_BLACK" value="1"/>
583     </field>
584     <field name="Shadow Function" start="33" end="35" type="uint">
585       <value name="PREFILTEROP ALWAYS" value="0"/>
586       <value name="PREFILTEROP NEVER" value="1"/>
587       <value name="PREFILTEROP LESS" value="2"/>
588       <value name="PREFILTEROP EQUAL" value="3"/>
589       <value name="PREFILTEROP LEQUAL" value="4"/>
590       <value name="PREFILTEROP GREATER" value="5"/>
591       <value name="PREFILTEROP NOTEQUAL" value="6"/>
592       <value name="PREFILTEROP GEQUAL" value="7"/>
593     </field>
594     <field name="Cube Surface Control Mode" start="32" end="32" type="uint">
595       <value name="PROGRAMMED" value="0"/>
596       <value name="OVERRIDE" value="1"/>
597     </field>
598     <field name="Border Color Pointer" start="70" end="87" type="offset"/>
599     <field name="LOD Clamp Magnification Mode" start="64" end="64" type="uint">
600       <value name="MIPNONE" value="0"/>
601       <value name="MIPFILTER" value="1"/>
602     </field>
603     <field name="Maximum Anisotropy" start="115" end="117" type="uint">
604       <value name="RATIO 2:1" value="0"/>
605       <value name="RATIO 4:1" value="1"/>
606       <value name="RATIO 6:1" value="2"/>
607       <value name="RATIO 8:1" value="3"/>
608       <value name="RATIO 10:1" value="4"/>
609       <value name="RATIO 12:1" value="5"/>
610       <value name="RATIO 14:1" value="6"/>
611       <value name="RATIO 16:1" value="7"/>
612     </field>
613     <field name="R Address Min Filter Rounding Enable" start="109" end="109" type="bool"/>
614     <field name="R Address Mag Filter Rounding Enable" start="110" end="110" type="bool"/>
615     <field name="V Address Min Filter Rounding Enable" start="111" end="111" type="bool"/>
616     <field name="V Address Mag Filter Rounding Enable" start="112" end="112" type="bool"/>
617     <field name="U Address Min Filter Rounding Enable" start="113" end="113" type="bool"/>
618     <field name="U Address Mag Filter Rounding Enable" start="114" end="114" type="bool"/>
619     <field name="Trilinear Filter Quality" start="107" end="108" type="uint">
620       <value name="FULL" value="0"/>
621       <value name="HIGH" value="1"/>
622       <value name="MED" value="2"/>
623       <value name="LOW" value="3"/>
624     </field>
625     <field name="Non-normalized Coordinate Enable" start="106" end="106" type="bool"/>
626     <field name="TCX Address Control Mode" start="102" end="104" type="Texture Coordinate Mode"/>
627     <field name="TCY Address Control Mode" start="99" end="101" type="Texture Coordinate Mode"/>
628     <field name="TCZ Address Control Mode" start="96" end="98" type="Texture Coordinate Mode"/>
629   </struct>
630
631   <struct name="SAMPLER_STATE_8X8_AVS_COEFFICIENTS" length="8">
632     <field name="Table 0Y Filter Coefficient[n,1]" start="24" end="31" type="s1.6"/>
633     <field name="Table 0X Filter Coefficient[n,1]" start="16" end="23" type="s1.6"/>
634     <field name="Table 0Y Filter Coefficient[n,0]" start="8" end="15" type="s1.6"/>
635     <field name="Table 0X Filter Coefficient[n,0]" start="0" end="7" type="s1.6"/>
636     <field name="Table 0Y Filter Coefficient[n,3]" start="56" end="63" type="s1.6"/>
637     <field name="Table 0X Filter Coefficient[n,3]" start="48" end="55" type="s1.6"/>
638     <field name="Table 0Y Filter Coefficient[n,2]" start="40" end="47" type="s1.6"/>
639     <field name="Table 0X Filter Coefficient[n,2]" start="32" end="39" type="s1.6"/>
640     <field name="Table 0Y Filter Coefficient[n,5]" start="88" end="95" type="s1.6"/>
641     <field name="Table 0X Filter Coefficient[n,5]" start="80" end="87" type="s1.6"/>
642     <field name="Table 0Y Filter Coefficient[n,4]" start="72" end="79" type="s1.6"/>
643     <field name="Table 0X Filter Coefficient[n,4]" start="64" end="71" type="s1.6"/>
644     <field name="Table 0Y Filter Coefficient[n,7]" start="120" end="127" type="s1.6"/>
645     <field name="Table 0X Filter Coefficient[n,7]" start="112" end="119" type="s1.6"/>
646     <field name="Table 0Y Filter Coefficient[n,6]" start="104" end="111" type="s1.6"/>
647     <field name="Table 0X Filter Coefficient[n,6]" start="96" end="103" type="s1.6"/>
648     <field name="Table 1X Filter Coefficient[n,3]" start="152" end="159" type="s1.6"/>
649     <field name="Table 1X Filter Coefficient[n,2]" start="144" end="151" type="s1.6"/>
650     <field name="Table 1X Filter Coefficient[n,5]" start="168" end="175" type="s1.6"/>
651     <field name="Table 1X Filter Coefficient[n,4]" start="160" end="167" type="s1.6"/>
652     <field name="Table 1Y Filter Coefficient[n,3]" start="216" end="223" type="s1.6"/>
653     <field name="Table 1Y Filter Coefficient[n,2]" start="208" end="215" type="s1.6"/>
654     <field name="Table 1Y Filter Coefficient[n,5]" start="232" end="239" type="s1.6"/>
655     <field name="Table 1Y Filter Coefficient[n,4]" start="224" end="231" type="s1.6"/>
656   </struct>
657
658   <struct name="MI_MATH_ALU_INSTRUCTION" length="1">
659     <field name="ALU Opcode" start="20" end="31" type="uint" prefix="MI_ALU">
660       <value name="NOOP" value="0x000"/>
661       <value name="LOAD" value="0x080"/>
662       <value name="LOADINV" value="0x480"/>
663       <value name="LOAD0" value="0x081"/>
664       <value name="LOAD1" value="0x481"/>
665       <value name="ADD" value="0x100"/>
666       <value name="SUB" value="0x101"/>
667       <value name="AND" value="0x102"/>
668       <value name="OR" value="0x103"/>
669       <value name="XOR" value="0x104"/>
670       <value name="STORE" value="0x180"/>
671       <value name="STOREINV" value="0x580"/>
672     </field>
673     <field name="Operand 1" start="10" end="19" type="uint" prefix="MI_ALU">
674       <value name="REG0" value="0x00"/>
675       <value name="REG1" value="0x01"/>
676       <value name="REG2" value="0x02"/>
677       <value name="REG3" value="0x03"/>
678       <value name="REG4" value="0x04"/>
679       <value name="REG5" value="0x05"/>
680       <value name="REG6" value="0x06"/>
681       <value name="REG7" value="0x07"/>
682       <value name="REG8" value="0x08"/>
683       <value name="REG9" value="0x09"/>
684       <value name="REG10" value="0x0a"/>
685       <value name="REG11" value="0x0b"/>
686       <value name="REG12" value="0x0c"/>
687       <value name="REG13" value="0x0d"/>
688       <value name="REG14" value="0x0e"/>
689       <value name="REG15" value="0x0f"/>
690       <value name="SRCA" value="0x20"/>
691       <value name="SRCB" value="0x21"/>
692       <value name="ACCU" value="0x31"/>
693       <value name="ZF" value="0x32"/>
694       <value name="CF" value="0x33"/>
695     </field>
696     <field name="Operand 2" start="0" end="9" type="uint" prefix="MI_ALU">
697       <value name="REG0" value="0x00"/>
698       <value name="REG1" value="0x01"/>
699       <value name="REG2" value="0x02"/>
700       <value name="REG3" value="0x03"/>
701       <value name="REG4" value="0x04"/>
702       <value name="REG5" value="0x05"/>
703       <value name="REG6" value="0x06"/>
704       <value name="REG7" value="0x07"/>
705       <value name="REG8" value="0x08"/>
706       <value name="REG9" value="0x09"/>
707       <value name="REG10" value="0x0a"/>
708       <value name="REG11" value="0x0b"/>
709       <value name="REG12" value="0x0c"/>
710       <value name="REG13" value="0x0d"/>
711       <value name="REG14" value="0x0e"/>
712       <value name="REG15" value="0x0f"/>
713       <value name="SRCA" value="0x20"/>
714       <value name="SRCB" value="0x21"/>
715       <value name="ACCU" value="0x31"/>
716       <value name="ZF" value="0x32"/>
717       <value name="CF" value="0x33"/>
718     </field>
719   </struct>
720
721   <instruction name="3DPRIMITIVE" bias="2" length="7">
722     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
723     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
724     <field name="3D Command Opcode" start="24" end="26" type="uint" default="3"/>
725     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="0"/>
726     <field name="Indirect Parameter Enable" start="10" end="10" type="bool"/>
727     <field name="UAV Coherency Required" start="9" end="9" type="bool"/>
728     <field name="Predicate Enable" start="8" end="8" type="bool"/>
729     <field name="DWord Length" start="0" end="7" type="uint" default="5"/>
730     <field name="End Offset Enable" start="41" end="41" type="bool"/>
731     <field name="Vertex Access Type" start="40" end="40" type="uint">
732       <value name="SEQUENTIAL" value="0"/>
733       <value name="RANDOM" value="1"/>
734     </field>
735     <field name="Primitive Topology Type" start="32" end="37" type="3D_Prim_Topo_Type"/>
736     <field name="Vertex Count Per Instance" start="64" end="95" type="uint"/>
737     <field name="Start Vertex Location" start="96" end="127" type="uint"/>
738     <field name="Instance Count" start="128" end="159" type="uint"/>
739     <field name="Start Instance Location" start="160" end="191" type="uint"/>
740     <field name="Base Vertex Location" start="192" end="223" type="int"/>
741   </instruction>
742
743   <instruction name="3DSTATE_AA_LINE_PARAMETERS" bias="2" length="3">
744     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
745     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
746     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
747     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
748     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
749     <field name="AA Point Coverage Bias" start="56" end="63" type="u0.8"/>
750     <field name="AA Coverage Bias" start="48" end="55" type="u0.8"/>
751     <field name="AA Point Coverage Slope" start="40" end="47" type="u0.8"/>
752     <field name="AA Coverage Slope" start="32" end="39" type="u0.8"/>
753     <field name="AA Point Coverage EndCap Bias" start="88" end="95" type="u0.8"/>
754     <field name="AA Coverage EndCap Bias" start="80" end="87" type="u0.8"/>
755     <field name="AA Point Coverage EndCap Slope" start="72" end="79" type="u0.8"/>
756     <field name="AA Coverage EndCap Slope" start="64" end="71" type="u0.8"/>
757   </instruction>
758
759   <instruction name="3DSTATE_BINDING_TABLE_EDIT_DS" bias="2">
760     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
761     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
762     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
763     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="70"/>
764     <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
765     <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
766     <field name="Binding Table Edit Target" start="32" end="33" type="uint">
767       <value name="All Cores" value="3"/>
768       <value name="Core 1" value="2"/>
769       <value name="Core 0" value="1"/>
770     </field>
771     <group count="0" start="64" size="32">
772       <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
773     </group>
774   </instruction>
775
776   <instruction name="3DSTATE_BINDING_TABLE_EDIT_GS" bias="2">
777     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
778     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
779     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
780     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="68"/>
781     <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
782     <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
783     <field name="Binding Table Edit Target" start="32" end="33" type="uint">
784       <value name="All Cores" value="3"/>
785       <value name="Core 1" value="2"/>
786       <value name="Core 0" value="1"/>
787     </field>
788     <group count="0" start="64" size="32">
789       <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
790     </group>
791   </instruction>
792
793   <instruction name="3DSTATE_BINDING_TABLE_EDIT_HS" bias="2">
794     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
795     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
796     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
797     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="69"/>
798     <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
799     <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
800     <field name="Binding Table Edit Target" start="32" end="33" type="uint">
801       <value name="All Cores" value="3"/>
802       <value name="Core 1" value="2"/>
803       <value name="Core 0" value="1"/>
804     </field>
805     <group count="0" start="64" size="32">
806       <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
807     </group>
808   </instruction>
809
810   <instruction name="3DSTATE_BINDING_TABLE_EDIT_PS" bias="2">
811     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
812     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
813     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
814     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="71"/>
815     <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
816     <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
817     <field name="Binding Table Edit Target" start="32" end="33" type="uint">
818       <value name="All Cores" value="3"/>
819       <value name="Core 1" value="2"/>
820       <value name="Core 0" value="1"/>
821     </field>
822     <group count="0" start="64" size="32">
823       <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
824     </group>
825   </instruction>
826
827   <instruction name="3DSTATE_BINDING_TABLE_EDIT_VS" bias="2">
828     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
829     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
830     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
831     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="67"/>
832     <field name="DWord Length" start="0" end="8" type="uint" default="0"/>
833     <field name="Binding Table Block Clear" start="48" end="63" type="uint"/>
834     <field name="Binding Table Edit Target" start="32" end="33" type="uint">
835       <value name="All Cores" value="3"/>
836       <value name="Core 1" value="2"/>
837       <value name="Core 0" value="1"/>
838     </field>
839     <group count="0" start="64" size="32">
840       <field name="Entry [n]" start="0" end="31" type="BINDING_TABLE_EDIT_ENTRY"/>
841     </group>
842   </instruction>
843
844   <instruction name="3DSTATE_BINDING_TABLE_POINTERS_DS" bias="2" length="2">
845     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
846     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
847     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
848     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="40"/>
849     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
850     <field name="Pointer to DS Binding Table" start="37" end="47" type="offset"/>
851   </instruction>
852
853   <instruction name="3DSTATE_BINDING_TABLE_POINTERS_GS" bias="2" length="2">
854     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
855     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
856     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
857     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="41"/>
858     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
859     <field name="Pointer to GS Binding Table" start="37" end="47" type="offset"/>
860   </instruction>
861
862   <instruction name="3DSTATE_BINDING_TABLE_POINTERS_HS" bias="2" length="2">
863     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
864     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
865     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
866     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="39"/>
867     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
868     <field name="Pointer to HS Binding Table" start="37" end="47" type="offset"/>
869   </instruction>
870
871   <instruction name="3DSTATE_BINDING_TABLE_POINTERS_PS" bias="2" length="2">
872     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
873     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
874     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
875     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="42"/>
876     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
877     <field name="Pointer to PS Binding Table" start="37" end="47" type="offset"/>
878   </instruction>
879
880   <instruction name="3DSTATE_BINDING_TABLE_POINTERS_VS" bias="2" length="2">
881     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
882     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
883     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
884     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="38"/>
885     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
886     <field name="Pointer to VS Binding Table" start="37" end="47" type="offset"/>
887   </instruction>
888
889   <instruction name="3DSTATE_BINDING_TABLE_POOL_ALLOC" bias="2" length="4">
890     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
891     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
892     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
893     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
894     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
895     <field name="Binding Table Pool Base Address" start="44" end="95" type="address"/>
896     <field name="Binding Table Pool Enable" start="43" end="43" type="uint"/>
897     <field name="Surface Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
898     <field name="Binding Table Pool Buffer Size" start="108" end="127" type="uint">
899       <value name="No Valid Data" value="0"/>
900     </field>
901   </instruction>
902
903   <instruction name="3DSTATE_BLEND_STATE_POINTERS" bias="2" length="2">
904     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
905     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
906     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
907     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="36"/>
908     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
909     <field name="Blend State Pointer" start="38" end="63" type="offset"/>
910     <field name="Blend State Pointer Valid" start="32" end="32" type="bool"/>
911   </instruction>
912
913   <instruction name="3DSTATE_CC_STATE_POINTERS" bias="2" length="2">
914     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
915     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
916     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
917     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="14"/>
918     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
919     <field name="Color Calc State Pointer" start="38" end="63" type="offset"/>
920     <field name="Color Calc State Pointer Valid" start="32" end="32" type="bool"/>
921   </instruction>
922
923   <instruction name="3DSTATE_CHROMA_KEY" bias="2" length="4">
924     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
925     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
926     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
927     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
928     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
929     <field name="ChromaKey Table Index" start="62" end="63" type="uint"/>
930     <field name="ChromaKey Low Value" start="64" end="95" type="uint"/>
931     <field name="ChromaKey High Value" start="96" end="127" type="uint"/>
932   </instruction>
933
934   <instruction name="3DSTATE_CLEAR_PARAMS" bias="2" length="3">
935     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
936     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
937     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
938     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
939     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
940     <field name="Depth Clear Value" start="32" end="63" type="float"/>
941     <field name="Depth Clear Value Valid" start="64" end="64" type="bool"/>
942   </instruction>
943
944   <instruction name="3DSTATE_CLIP" bias="2" length="4">
945     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
946     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
947     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
948     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="18"/>
949     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
950     <field name="Force User Clip Distance Cull Test Enable Bitmask" start="52" end="52" type="bool"/>
951     <field name="Vertex Sub Pixel Precision Select" start="51" end="51" type="uint">
952       <value name="8 Bit" value="0"/>
953       <value name="4 Bit" value="1"/>
954     </field>
955     <field name="Early Cull Enable" start="50" end="50" type="bool"/>
956     <field name="Force User Clip Distance Clip Test Enable Bitmask" start="49" end="49" type="bool"/>
957     <field name="Force Clip Mode" start="48" end="48" type="bool"/>
958     <field name="Statistics Enable" start="42" end="42" type="bool"/>
959     <field name="User Clip Distance Cull Test Enable Bitmask" start="32" end="39" type="uint"/>
960     <field name="Clip Enable" start="95" end="95" type="bool"/>
961     <field name="API Mode" start="94" end="94" type="uint">
962       <value name="APIMODE_OGL" value="0"/>
963       <value name="APIMODE_D3D" value="1"/>
964     </field>
965     <field name="Viewport XY Clip Test Enable" start="92" end="92" type="bool"/>
966     <field name="Guardband Clip Test Enable" start="90" end="90" type="bool"/>
967     <field name="User Clip Distance Clip Test Enable Bitmask" start="80" end="87" type="uint"/>
968     <field name="Clip Mode" start="77" end="79" type="uint">
969       <value name="CLIPMODE_NORMAL" value="0"/>
970       <value name="CLIPMODE_REJECT_ALL" value="3"/>
971       <value name="CLIPMODE_ACCEPT_ALL" value="4"/>
972     </field>
973     <field name="Perspective Divide Disable" start="73" end="73" type="bool"/>
974     <field name="Non-Perspective Barycentric Enable" start="72" end="72" type="bool"/>
975     <field name="Triangle Strip/List Provoking Vertex Select" start="68" end="69" type="uint"/>
976     <field name="Line Strip/List Provoking Vertex Select" start="66" end="67" type="uint"/>
977     <field name="Triangle Fan Provoking Vertex Select" start="64" end="65" type="uint"/>
978     <field name="Minimum Point Width" start="113" end="123" type="u8.3"/>
979     <field name="Maximum Point Width" start="102" end="112" type="u8.3"/>
980     <field name="Force Zero RTA Index Enable" start="101" end="101" type="bool"/>
981     <field name="Maximum VP Index" start="96" end="99" type="uint"/>
982   </instruction>
983
984   <instruction name="3DSTATE_CONSTANT_DS" bias="2" length="11">
985     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
986     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
987     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
988     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
989     <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
990     <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
991     <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
992   </instruction>
993
994   <instruction name="3DSTATE_CONSTANT_GS" bias="2" length="11">
995     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
996     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
997     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
998     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
999     <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
1000     <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
1001     <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
1002   </instruction>
1003
1004   <instruction name="3DSTATE_CONSTANT_HS" bias="2" length="11">
1005     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1006     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1007     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1008     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="25"/>
1009     <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
1010     <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
1011     <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
1012   </instruction>
1013
1014   <instruction name="3DSTATE_CONSTANT_PS" bias="2" length="11">
1015     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1016     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1017     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1018     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
1019     <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
1020     <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
1021     <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
1022   </instruction>
1023
1024   <instruction name="3DSTATE_CONSTANT_VS" bias="2" length="11">
1025     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1026     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1027     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1028     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
1029     <field name="Constant Buffer Object Control State" start="8" end="14" type="MEMORY_OBJECT_CONTROL_STATE"/>
1030     <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
1031     <field name="Constant Body" start="32" end="351" type="3DSTATE_CONSTANT_BODY"/>
1032   </instruction>
1033
1034   <instruction name="3DSTATE_DEPTH_BUFFER" bias="2" length="8">
1035     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1036     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1037     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1038     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="5"/>
1039     <field name="DWord Length" start="0" end="7" type="uint" default="6"/>
1040     <field name="Surface Type" start="61" end="63" type="uint">
1041       <value name="SURFTYPE_1D" value="0"/>
1042       <value name="SURFTYPE_2D" value="1"/>
1043       <value name="SURFTYPE_3D" value="2"/>
1044       <value name="SURFTYPE_CUBE" value="3"/>
1045       <value name="SURFTYPE_NULL" value="7"/>
1046     </field>
1047     <field name="Depth Write Enable" start="60" end="60" type="bool"/>
1048     <field name="Stencil Write Enable" start="59" end="59" type="bool"/>
1049     <field name="Hierarchical Depth Buffer Enable" start="54" end="54" type="bool"/>
1050     <field name="Surface Format" start="50" end="52" type="uint">
1051       <value name="D32_FLOAT" value="1"/>
1052       <value name="D24_UNORM_X8_UINT" value="3"/>
1053       <value name="D16_UNORM" value="5"/>
1054     </field>
1055     <field name="Surface Pitch" start="32" end="49" type="uint"/>
1056     <field name="Surface Base Address" start="64" end="127" type="address"/>
1057     <field name="Height" start="146" end="159" type="uint"/>
1058     <field name="Width" start="132" end="145" type="uint"/>
1059     <field name="LOD" start="128" end="131" type="uint"/>
1060     <field name="Depth" start="181" end="191" type="uint"/>
1061     <field name="Minimum Array Element" start="170" end="180" type="uint"/>
1062     <field name="Depth Buffer Object Control State" start="160" end="166" type="MEMORY_OBJECT_CONTROL_STATE"/>
1063     <field name="Depth Buffer MOCS" start="160" end="166" type="uint"/>
1064     <field name="Render Target View Extent" start="245" end="255" type="uint"/>
1065     <field name="Surface QPitch" start="224" end="238" type="uint"/>
1066   </instruction>
1067
1068   <instruction name="3DSTATE_DRAWING_RECTANGLE" bias="2" length="4">
1069     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1070     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1071     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1072     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="0"/>
1073     <field name="Core Mode Select" start="14" end="15" type="uint">
1074       <value name="Legacy" value="0"/>
1075       <value name="Core 0 Enabled" value="1"/>
1076       <value name="Core 1 Enabled" value="2"/>
1077     </field>
1078     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
1079     <field name="Clipped Drawing Rectangle Y Min" start="48" end="63" type="uint"/>
1080     <field name="Clipped Drawing Rectangle X Min" start="32" end="47" type="uint"/>
1081     <field name="Clipped Drawing Rectangle Y Max" start="80" end="95" type="uint"/>
1082     <field name="Clipped Drawing Rectangle X Max" start="64" end="79" type="uint"/>
1083     <field name="Drawing Rectangle Origin Y" start="112" end="127" type="int"/>
1084     <field name="Drawing Rectangle Origin X" start="96" end="111" type="int"/>
1085   </instruction>
1086
1087   <instruction name="3DSTATE_DS" bias="2" length="9">
1088     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1089     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1090     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1091     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="29"/>
1092     <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
1093     <field name="Kernel Start Pointer" start="38" end="95" type="offset"/>
1094     <field name="Single Domain Point Dispatch" start="127" end="127" type="uint"/>
1095     <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
1096     <field name="Sampler Count" start="123" end="125" type="uint">
1097       <value name="No Samplers" value="0"/>
1098       <value name="1-4 Samplers" value="1"/>
1099       <value name="5-8 Samplers" value="2"/>
1100       <value name="9-12 Samplers" value="3"/>
1101       <value name="13-16 Samplers" value="4"/>
1102     </field>
1103     <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
1104     <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
1105       <value name="High" value="1"/>
1106     </field>
1107     <field name="Floating Point Mode" start="112" end="112" type="uint">
1108       <value name="IEEE-754" value="0"/>
1109       <value name="Alternate" value="1"/>
1110     </field>
1111     <field name="Accesses UAV" start="110" end="110" type="bool"/>
1112     <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
1113     <field name="Software Exception Enable" start="103" end="103" type="bool"/>
1114     <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
1115     <field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
1116     <field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
1117     <field name="Patch URB Entry Read Length" start="203" end="209" type="uint"/>
1118     <field name="Patch URB Entry Read Offset" start="196" end="201" type="uint"/>
1119     <field name="Maximum Number of Threads" start="245" end="253" type="uint"/>
1120     <field name="Statistics Enable" start="234" end="234" type="bool"/>
1121     <field name="Dispatch Mode" start="227" end="227" type="uint" prefix="DISPATCH_MODE">
1122       <value name="SIMD4X2" value="0"/>
1123       <value name="SIMD8_SINGLE_PATCH" value="1"/>
1124     </field>
1125     <field name="Compute W Coordinate Enable" start="226" end="226" type="bool"/>
1126     <field name="Cache Disable" start="225" end="225" type="bool"/>
1127     <field name="Enable" start="224" end="224" type="bool"/>
1128     <field name="Vertex URB Entry Output Read Offset" start="277" end="282" type="uint"/>
1129     <field name="Vertex URB Entry Output Length" start="272" end="276" type="uint"/>
1130     <field name="User Clip Distance Clip Test Enable Bitmask" start="264" end="271" type="uint"/>
1131     <field name="User Clip Distance Cull Test Enable Bitmask" start="256" end="263" type="uint"/>
1132   </instruction>
1133
1134   <instruction name="3DSTATE_GATHER_CONSTANT_DS" bias="2">
1135     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1136     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1137     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1138     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="55"/>
1139     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
1140     <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
1141     <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
1142     <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
1143     <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
1144     <group count="0" start="96" size="32">
1145       <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
1146       <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
1147     </group>
1148   </instruction>
1149
1150   <instruction name="3DSTATE_GATHER_CONSTANT_GS" bias="2">
1151     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1152     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1153     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1154     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="53"/>
1155     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
1156     <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
1157     <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
1158     <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
1159     <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
1160     <group count="0" start="96" size="32">
1161       <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
1162       <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
1163     </group>
1164   </instruction>
1165
1166   <instruction name="3DSTATE_GATHER_CONSTANT_HS" bias="2">
1167     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1168     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1169     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1170     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="54"/>
1171     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
1172     <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
1173     <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
1174     <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
1175     <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
1176     <group count="0" start="96" size="32">
1177       <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
1178       <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
1179     </group>
1180   </instruction>
1181
1182   <instruction name="3DSTATE_GATHER_CONSTANT_PS" bias="2">
1183     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1184     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1185     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1186     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="56"/>
1187     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
1188     <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
1189     <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
1190     <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
1191     <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
1192     <field name="Constant Buffer Dx9 Enable" start="68" end="68" type="bool"/>
1193     <group count="0" start="96" size="32">
1194       <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
1195       <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
1196     </group>
1197   </instruction>
1198
1199   <instruction name="3DSTATE_GATHER_CONSTANT_VS" bias="2">
1200     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1201     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1202     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1203     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="52"/>
1204     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1205     <field name="Constant Buffer Valid" start="48" end="63" type="uint"/>
1206     <field name="Constant Buffer Binding Table Block" start="44" end="47" type="uint"/>
1207     <field name="Gather Buffer Offset" start="70" end="86" type="offset"/>
1208     <field name="Constant Buffer Dx9 Generate Stall" start="69" end="69" type="bool"/>
1209     <field name="Constant Buffer Dx9 Enable" start="68" end="68" type="bool"/>
1210     <group count="0" start="96" size="32">
1211       <field name="Entry_0" start="0" end="15" type="GATHER_CONSTANT_ENTRY"/>
1212       <field name="Entry_1" start="16" end="31" type="GATHER_CONSTANT_ENTRY"/>
1213     </group>
1214   </instruction>
1215
1216   <instruction name="3DSTATE_GATHER_POOL_ALLOC" bias="2" length="4">
1217     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1218     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1219     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1220     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="26"/>
1221     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
1222     <field name="Gather Pool Base Address" start="44" end="95" type="address"/>
1223     <field name="Gather Pool Enable" start="43" end="43" type="bool"/>
1224     <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
1225     <field name="Gather Pool Buffer Size" start="108" end="127" type="uint"/>
1226   </instruction>
1227
1228   <instruction name="3DSTATE_GS" bias="2" length="10">
1229     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1230     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1231     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1232     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="17"/>
1233     <field name="DWord Length" start="0" end="7" type="uint" default="8"/>
1234     <field name="Kernel Start Pointer" start="38" end="95" type="offset"/>
1235     <field name="Single Program Flow" start="127" end="127" type="bool"/>
1236     <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
1237     <field name="Sampler Count" start="123" end="125" type="uint">
1238       <value name="No Samplers" value="0"/>
1239       <value name="1-4 Samplers" value="1"/>
1240       <value name="5-8 Samplers" value="2"/>
1241       <value name="9-12 Samplers" value="3"/>
1242       <value name="13-16 Samplers" value="4"/>
1243     </field>
1244     <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
1245     <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
1246       <value name="High" value="1"/>
1247     </field>
1248     <field name="Floating Point Mode" start="112" end="112" type="uint">
1249       <value name="IEEE-754" value="0"/>
1250       <value name="Alternate" value="1"/>
1251     </field>
1252     <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
1253     <field name="Accesses UAV" start="108" end="108" type="bool"/>
1254     <field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
1255     <field name="Software Exception Enable" start="103" end="103" type="bool"/>
1256     <field name="Expected Vertex Count" start="96" end="101" type="uint"/>
1257     <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
1258     <field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
1259     <field name="Output Vertex Size" start="215" end="220" type="uint"/>
1260     <field name="Output Topology" start="209" end="214" type="3D_Prim_Topo_Type"/>
1261     <field name="Vertex URB Entry Read Length" start="203" end="208" type="uint"/>
1262     <field name="Include Vertex Handles" start="202" end="202" type="bool"/>
1263     <field name="Vertex URB Entry Read Offset" start="196" end="201" type="uint"/>
1264     <field name="Dispatch GRF Start Register For URB Data" start="192" end="195" type="uint"/>
1265     <field name="Maximum Number of Threads" start="248" end="255" type="uint"/>
1266     <field name="Control Data Header Size" start="244" end="247" type="uint"/>
1267     <field name="Instance Control" start="239" end="243" type="uint"/>
1268     <field name="Default Stream Id" start="237" end="238" type="uint"/>
1269     <field name="Dispatch Mode" start="235" end="236" type="uint" prefix="DISPATCH_MODE">
1270       <value name="Dual Instance" value="1"/>
1271       <value name="Dual Object" value="2"/>
1272       <value name="SIMD8" value="3"/>
1273     </field>
1274     <field name="Statistics Enable" start="234" end="234" type="bool"/>
1275     <field name="Invocations Increment Value" start="229" end="233" type="uint"/>
1276     <field name="Include Primitive ID" start="228" end="228" type="bool"/>
1277     <field name="Hint" start="227" end="227" type="uint"/>
1278     <field name="Reorder Mode" start="226" end="226" type="uint">
1279       <value name="LEADING" value="0"/>
1280       <value name="TRAILING" value="1"/>
1281     </field>
1282     <field name="Discard Adjacency" start="225" end="225" type="bool"/>
1283     <field name="Enable" start="224" end="224" type="bool"/>
1284     <field name="Control Data Format" start="287" end="287" type="uint">
1285       <value name="CUT" value="0"/>
1286       <value name="SID" value="1"/>
1287     </field>
1288     <field name="Static Output" start="286" end="286" type="bool"/>
1289     <field name="Static Output Vertex Count" start="272" end="282" type="uint"/>
1290     <field name="Vertex URB Entry Output Read Offset" start="309" end="314" type="uint"/>
1291     <field name="Vertex URB Entry Output Length" start="304" end="308" type="uint"/>
1292     <field name="User Clip Distance Clip Test Enable Bitmask" start="296" end="303" type="uint"/>
1293     <field name="User Clip Distance Cull Test Enable Bitmask" start="288" end="295" type="uint"/>
1294   </instruction>
1295
1296   <instruction name="3DSTATE_HIER_DEPTH_BUFFER" bias="2" length="5">
1297     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1298     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1299     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1300     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
1301     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
1302     <field name="Hierarchical Depth Buffer Object Control State" start="57" end="63" type="MEMORY_OBJECT_CONTROL_STATE"/>
1303     <field name="Hierarchical Depth Buffer MOCS" start="57" end="63" type="uint"/>
1304     <field name="Surface Pitch" start="32" end="48" type="uint"/>
1305     <field name="Surface Base Address" start="64" end="127" type="address"/>
1306     <field name="Surface QPitch" start="128" end="142" type="uint"/>
1307   </instruction>
1308
1309   <instruction name="3DSTATE_HS" bias="2" length="9">
1310     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1311     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1312     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1313     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="27"/>
1314     <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
1315     <field name="Sampler Count" start="59" end="61" type="uint">
1316       <value name="No Samplers" value="0"/>
1317       <value name="1-4 Samplers" value="1"/>
1318       <value name="5-8 Samplers" value="2"/>
1319       <value name="9-12 Samplers" value="3"/>
1320       <value name="13-16 Samplers" value="4"/>
1321     </field>
1322     <field name="Binding Table Entry Count" start="50" end="57" type="uint"/>
1323     <field name="Thread Dispatch Priority" start="49" end="49" type="uint">
1324       <value name="High" value="1"/>
1325     </field>
1326     <field name="Floating Point Mode" start="48" end="48" type="uint">
1327       <value name="IEEE-754" value="0"/>
1328       <value name="alternate" value="1"/>
1329     </field>
1330     <field name="Illegal Opcode Exception Enable" start="45" end="45" type="bool"/>
1331     <field name="Software Exception Enable" start="44" end="44" type="bool"/>
1332     <field name="Enable" start="95" end="95" type="bool"/>
1333     <field name="Statistics Enable" start="93" end="93" type="bool"/>
1334     <field name="Maximum Number of Threads" start="72" end="80" type="uint"/>
1335     <field name="Instance Count" start="64" end="67" type="uint"/>
1336     <field name="Kernel Start Pointer" start="102" end="159" type="offset"/>
1337     <field name="Scratch Space Base Pointer" start="170" end="223" type="address"/>
1338     <field name="Per-Thread Scratch Space" start="160" end="163" type="uint"/>
1339     <field name="Single Program Flow" start="251" end="251" type="bool"/>
1340     <field name="Vector Mask Enable" start="250" end="250" type="bool"/>
1341     <field name="Accesses UAV" start="249" end="249" type="bool"/>
1342     <field name="Include Vertex Handles" start="248" end="248" type="bool"/>
1343     <field name="Dispatch GRF Start Register For URB Data" start="243" end="247" type="uint"/>
1344     <field name="Vertex URB Entry Read Length" start="235" end="240" type="uint"/>
1345     <field name="Vertex URB Entry Read Offset" start="228" end="233" type="uint"/>
1346   </instruction>
1347
1348   <instruction name="3DSTATE_INDEX_BUFFER" bias="2" length="5">
1349     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1350     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1351     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1352     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="10"/>
1353     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
1354     <field name="Index Format" start="40" end="41" type="uint" prefix="INDEX">
1355       <value name="BYTE" value="0"/>
1356       <value name="WORD" value="1"/>
1357       <value name="DWORD" value="2"/>
1358     </field>
1359     <field name="Memory Object Control State" start="32" end="38" type="MEMORY_OBJECT_CONTROL_STATE"/>
1360     <field name="IndexBufferMOCS" start="32" end="38" type="uint"/>
1361     <field name="Buffer Starting Address" start="64" end="127" type="address"/>
1362     <field name="Buffer Size" start="128" end="159" type="uint"/>
1363   </instruction>
1364
1365   <instruction name="3DSTATE_LINE_STIPPLE" bias="2" length="3">
1366     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1367     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1368     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1369     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="8"/>
1370     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
1371     <field name="Modify Enable (Current Repeat Counter, Current Stipple Index)" start="63" end="63" type="bool"/>
1372     <field name="Current Repeat Counter" start="53" end="61" type="uint"/>
1373     <field name="Current Stipple Index" start="48" end="51" type="uint"/>
1374     <field name="Line Stipple Pattern" start="32" end="47" type="uint"/>
1375     <field name="Line Stipple Inverse Repeat Count" start="79" end="95" type="u1.16"/>
1376     <field name="Line Stipple Repeat Count" start="64" end="72" type="uint"/>
1377   </instruction>
1378
1379   <instruction name="3DSTATE_MONOFILTER_SIZE" bias="2" length="2">
1380     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1381     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1382     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1383     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="17"/>
1384     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1385     <field name="Monochrome Filter Width" start="35" end="37" type="uint"/>
1386     <field name="Monochrome Filter Height" start="32" end="34" type="uint"/>
1387   </instruction>
1388
1389   <instruction name="3DSTATE_MULTISAMPLE" bias="2" length="2">
1390     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1391     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1392     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1393     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="13"/>
1394     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1395     <field name="Pixel Position Offset Enable" start="37" end="37" type="bool"/>
1396     <field name="Pixel Location" start="36" end="36" type="uint">
1397       <value name="CENTER" value="0"/>
1398       <value name="UL_CORNER" value="1"/>
1399     </field>
1400     <field name="Number of Multisamples" start="33" end="35" type="uint"/>
1401   </instruction>
1402
1403   <instruction name="3DSTATE_POLY_STIPPLE_OFFSET" bias="2" length="2">
1404     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1405     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1406     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1407     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
1408     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1409     <field name="Polygon Stipple X Offset" start="40" end="44" type="uint"/>
1410     <field name="Polygon Stipple Y Offset" start="32" end="36" type="uint"/>
1411   </instruction>
1412
1413   <instruction name="3DSTATE_POLY_STIPPLE_PATTERN" bias="2" length="33">
1414     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1415     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1416     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1417     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="7"/>
1418     <field name="DWord Length" start="0" end="7" type="uint" default="31"/>
1419     <group count="32" start="32" size="32">
1420       <field name="Pattern Row" start="0" end="31" type="uint"/>
1421     </group>
1422   </instruction>
1423
1424   <instruction name="3DSTATE_PS" bias="2" length="12">
1425     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1426     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1427     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1428     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="32"/>
1429     <field name="DWord Length" start="0" end="7" type="uint" default="10"/>
1430     <field name="Kernel Start Pointer 0" start="38" end="95" type="offset"/>
1431     <field name="Single Program Flow" start="127" end="127" type="bool"/>
1432     <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
1433     <field name="Sampler Count" start="123" end="125" type="uint">
1434       <value name="No Samplers" value="0"/>
1435       <value name="1-4 Samplers" value="1"/>
1436       <value name="5-8 Samplers" value="2"/>
1437       <value name="9-12 Samplers" value="3"/>
1438       <value name="13-16 Samplers" value="4"/>
1439     </field>
1440     <field name="Single Precision Denormal Mode" start="122" end="122" type="uint">
1441       <value name="Flushed to Zero" value="0"/>
1442       <value name="Retained" value="1"/>
1443     </field>
1444     <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
1445     <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
1446       <value name="High" value="1"/>
1447     </field>
1448     <field name="Floating Point Mode" start="112" end="112" type="uint">
1449       <value name="IEEE-754" value="0"/>
1450       <value name="Alternate" value="1"/>
1451     </field>
1452     <field name="Rounding Mode" start="110" end="111" type="uint">
1453       <value name="RTNE" value="0"/>
1454       <value name="RU" value="1"/>
1455       <value name="RD" value="2"/>
1456       <value name="RTZ" value="3"/>
1457     </field>
1458     <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
1459     <field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
1460     <field name="Software Exception Enable" start="103" end="103" type="bool"/>
1461     <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
1462     <field name="Per Thread Scratch Space" start="128" end="131" type="uint"/>
1463     <field name="Maximum Number of Threads Per PSD" start="215" end="223" type="uint"/>
1464     <field name="Push Constant Enable" start="203" end="203" type="bool"/>
1465     <field name="Render Target Fast Clear Enable" start="200" end="200" type="bool"/>
1466     <field name="Render Target Resolve Enable" start="198" end="198" type="bool"/>
1467     <field name="Position XY Offset Select" start="195" end="196" type="uint">
1468       <value name="POSOFFSET_NONE" value="0"/>
1469       <value name="POSOFFSET_CENTROID" value="2"/>
1470       <value name="POSOFFSET_SAMPLE" value="3"/>
1471     </field>
1472     <field name="32 Pixel Dispatch Enable" start="194" end="194" type="bool"/>
1473     <field name="16 Pixel Dispatch Enable" start="193" end="193" type="bool"/>
1474     <field name="8 Pixel Dispatch Enable" start="192" end="192" type="bool"/>
1475     <field name="Dispatch GRF Start Register For Constant/Setup Data 0" start="240" end="246" type="uint"/>
1476     <field name="Dispatch GRF Start Register For Constant/Setup Data 1" start="232" end="238" type="uint"/>
1477     <field name="Dispatch GRF Start Register For Constant/Setup Data 2" start="224" end="230" type="uint"/>
1478     <field name="Kernel Start Pointer 1" start="262" end="319" type="offset"/>
1479     <field name="Kernel Start Pointer 2" start="326" end="383" type="offset"/>
1480   </instruction>
1481
1482   <instruction name="3DSTATE_PS_BLEND" bias="2" length="2">
1483     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1484     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1485     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1486     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="77"/>
1487     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1488     <field name="Alpha To Coverage Enable" start="63" end="63" type="bool"/>
1489     <field name="Has Writeable RT" start="62" end="62" type="bool"/>
1490     <field name="Color Buffer Blend Enable" start="61" end="61" type="bool"/>
1491     <field name="Source Alpha Blend Factor" start="56" end="60" type="uint"/>
1492     <field name="Destination Alpha Blend Factor" start="51" end="55" type="uint"/>
1493     <field name="Source Blend Factor" start="46" end="50" type="uint"/>
1494     <field name="Destination Blend Factor" start="41" end="45" type="uint"/>
1495     <field name="Alpha Test Enable" start="40" end="40" type="bool"/>
1496     <field name="Independent Alpha Blend Enable" start="39" end="39" type="bool"/>
1497   </instruction>
1498
1499   <instruction name="3DSTATE_PS_EXTRA" bias="2" length="2">
1500     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1501     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1502     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1503     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="79"/>
1504     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1505     <field name="Pixel Shader Valid" start="63" end="63" type="bool"/>
1506     <field name="Pixel Shader Does not write to RT" start="62" end="62" type="bool"/>
1507     <field name="oMask Present to Render Target" start="61" end="61" type="bool"/>
1508     <field name="Pixel Shader Kills Pixel" start="60" end="60" type="bool"/>
1509     <field name="Pixel Shader Computed Depth Mode" start="58" end="59" type="uint">
1510       <value name="PSCDEPTH_OFF" value="0"/>
1511       <value name="PSCDEPTH_ON" value="1"/>
1512       <value name="PSCDEPTH_ON_GE" value="2"/>
1513       <value name="PSCDEPTH_ON_LE" value="3"/>
1514     </field>
1515     <field name="Force Computed Depth" start="57" end="57" type="bool"/>
1516     <field name="Pixel Shader Uses Source Depth" start="56" end="56" type="bool"/>
1517     <field name="Pixel Shader Uses Source W" start="55" end="55" type="bool"/>
1518     <field name="Attribute Enable" start="40" end="40" type="bool"/>
1519     <field name="Pixel Shader Disables Alpha To Coverage" start="39" end="39" type="bool"/>
1520     <field name="Pixel Shader Is Per Sample" start="38" end="38" type="bool"/>
1521     <field name="Pixel Shader Has UAV" start="34" end="34" type="bool"/>
1522     <field name="Pixel Shader Uses Input Coverage Mask" start="33" end="33" type="bool"/>
1523   </instruction>
1524
1525   <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_DS" bias="2" length="2">
1526     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1527     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1528     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1529     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="20"/>
1530     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1531     <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
1532     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
1533   </instruction>
1534
1535   <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_GS" bias="2" length="2">
1536     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1537     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1538     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1539     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="21"/>
1540     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1541     <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
1542     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
1543   </instruction>
1544
1545   <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_HS" bias="2" length="2">
1546     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1547     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1548     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1549     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="19"/>
1550     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1551     <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
1552     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
1553   </instruction>
1554
1555   <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_PS" bias="2" length="2">
1556     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1557     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1558     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1559     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="22"/>
1560     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1561     <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
1562     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
1563   </instruction>
1564
1565   <instruction name="3DSTATE_PUSH_CONSTANT_ALLOC_VS" bias="2" length="2">
1566     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1567     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1568     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1569     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="18"/>
1570     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1571     <field name="Constant Buffer Offset" start="48" end="52" type="uint"/>
1572     <field name="Constant Buffer Size" start="32" end="37" type="uint"/>
1573   </instruction>
1574
1575   <instruction name="3DSTATE_RASTER" bias="2" length="5">
1576     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1577     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1578     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1579     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="80"/>
1580     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
1581     <field name="API Mode" start="54" end="55" type="uint">
1582       <value name="DX9/OGL" value="0"/>
1583       <value name="DX10.0" value="1"/>
1584       <value name="DX10.1+" value="2"/>
1585     </field>
1586     <field name="Front Winding" start="53" end="53" type="uint">
1587       <value name="Clockwise" value="0"/>
1588       <value name="Counter Clockwise" value="1"/>
1589     </field>
1590     <field name="Forced Sample Count" start="50" end="52" type="uint" prefix="FSC">
1591       <value name="NUMRASTSAMPLES_0" value="0"/>
1592       <value name="NUMRASTSAMPLES_1" value="1"/>
1593       <value name="NUMRASTSAMPLES_2" value="2"/>
1594       <value name="NUMRASTSAMPLES_4" value="3"/>
1595       <value name="NUMRASTSAMPLES_8" value="4"/>
1596       <value name="NUMRASTSAMPLES_16" value="5"/>
1597     </field>
1598     <field name="Cull Mode" start="48" end="49" type="uint" prefix="CULLMODE">
1599       <value name="BOTH" value="0"/>
1600       <value name="NONE" value="1"/>
1601       <value name="FRONT" value="2"/>
1602       <value name="BACK" value="3"/>
1603     </field>
1604     <field name="Force Multisampling" start="46" end="46" type="uint"/>
1605     <field name="Smooth Point Enable" start="45" end="45" type="bool"/>
1606     <field name="DX Multisample Rasterization Enable" start="44" end="44" type="bool"/>
1607     <field name="DX Multisample Rasterization Mode" start="42" end="43" type="uint">
1608       <value name="MSRASTMODE_ OFF_PIXEL" value="0"/>
1609       <value name="MSRASTMODE_ OFF_PATTERN" value="1"/>
1610       <value name="MSRASTMODE_ ON_PIXEL" value="2"/>
1611       <value name="MSRASTMODE_ ON_PATTERN" value="3"/>
1612     </field>
1613     <field name="Global Depth Offset Enable Solid" start="41" end="41" type="bool"/>
1614     <field name="Global Depth Offset Enable Wireframe" start="40" end="40" type="bool"/>
1615     <field name="Global Depth Offset Enable Point" start="39" end="39" type="bool"/>
1616     <field name="Front Face Fill Mode" start="37" end="38" type="uint" prefix="FILL_MODE">
1617       <value name="SOLID" value="0"/>
1618       <value name="WIREFRAME" value="1"/>
1619       <value name="POINT" value="2"/>
1620     </field>
1621     <field name="Back Face Fill Mode" start="35" end="36" type="uint" prefix="FILL_MODE">
1622       <value name="SOLID" value="0"/>
1623       <value name="WIREFRAME" value="1"/>
1624       <value name="POINT" value="2"/>
1625     </field>
1626     <field name="Antialiasing Enable" start="34" end="34" type="bool"/>
1627     <field name="Scissor Rectangle Enable" start="33" end="33" type="bool"/>
1628     <field name="Viewport Z Clip Test Enable" start="32" end="32" type="bool"/>
1629     <field name="Global Depth Offset Constant" start="64" end="95" type="float"/>
1630     <field name="Global Depth Offset Scale" start="96" end="127" type="float"/>
1631     <field name="Global Depth Offset Clamp" start="128" end="159" type="float"/>
1632   </instruction>
1633
1634   <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD0" bias="2">
1635     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1636     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1637     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1638     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="2"/>
1639     <field name="DWord Length" start="0" end="7" type="uint"/>
1640     <group count="0" start="32" size="32">
1641       <field name="Entry" start="0" end="31" type="PALETTE_ENTRY"/>
1642     </group>
1643   </instruction>
1644
1645   <instruction name="3DSTATE_SAMPLER_PALETTE_LOAD1" bias="2">
1646     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1647     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1648     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1649     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="12"/>
1650     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1651     <group count="0" start="32" size="32">
1652       <field name="Palette Alpha[0:N-1]" start="24" end="31" type="uint"/>
1653       <field name="Palette Red[0:N-1]" start="16" end="23" type="uint"/>
1654       <field name="Palette Green[0:N-1]" start="8" end="15" type="uint"/>
1655       <field name="Palette Blue[0:N-1]" start="0" end="7" type="uint"/>
1656     </group>
1657   </instruction>
1658
1659   <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_DS" bias="2" length="2">
1660     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1661     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1662     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1663     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="45"/>
1664     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1665     <field name="Pointer to DS Sampler State" start="37" end="63" type="offset"/>
1666   </instruction>
1667
1668   <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_GS" bias="2" length="2">
1669     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1670     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1671     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1672     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="46"/>
1673     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1674     <field name="Pointer to GS Sampler State" start="37" end="63" type="offset"/>
1675   </instruction>
1676
1677   <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_HS" bias="2" length="2">
1678     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1679     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1680     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1681     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="44"/>
1682     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1683     <field name="Pointer to HS Sampler State" start="37" end="63" type="offset"/>
1684   </instruction>
1685
1686   <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_PS" bias="2" length="2">
1687     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1688     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1689     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1690     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="47"/>
1691     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1692     <field name="Pointer to PS Sampler State" start="37" end="63" type="offset"/>
1693   </instruction>
1694
1695   <instruction name="3DSTATE_SAMPLER_STATE_POINTERS_VS" bias="2" length="2">
1696     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1697     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1698     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1699     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="43"/>
1700     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1701     <field name="Pointer to VS Sampler State" start="37" end="63" type="offset"/>
1702   </instruction>
1703
1704   <instruction name="3DSTATE_SAMPLE_MASK" bias="2" length="2">
1705     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1706     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1707     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1708     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
1709     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1710     <field name="Sample Mask" start="32" end="47" type="uint"/>
1711   </instruction>
1712
1713   <instruction name="3DSTATE_SAMPLE_PATTERN" bias="2" length="9">
1714     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1715     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1716     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1717     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="28"/>
1718     <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
1719     <field name="8x Sample7 X Offset" start="188" end="191" type="u0.4"/>
1720     <field name="8x Sample7 Y Offset" start="184" end="187" type="u0.4"/>
1721     <field name="8x Sample6 X Offset" start="180" end="183" type="u0.4"/>
1722     <field name="8x Sample6 Y Offset" start="176" end="179" type="u0.4"/>
1723     <field name="8x Sample5 X Offset" start="172" end="175" type="u0.4"/>
1724     <field name="8x Sample5 Y Offset" start="168" end="171" type="u0.4"/>
1725     <field name="8x Sample4 X Offset" start="164" end="167" type="u0.4"/>
1726     <field name="8x Sample4 Y Offset" start="160" end="163" type="u0.4"/>
1727     <field name="8x Sample3 X Offset" start="220" end="223" type="u0.4"/>
1728     <field name="8x Sample3 Y Offset" start="216" end="219" type="u0.4"/>
1729     <field name="8x Sample2 X Offset" start="212" end="215" type="u0.4"/>
1730     <field name="8x Sample2 Y Offset" start="208" end="211" type="u0.4"/>
1731     <field name="8x Sample1 X Offset" start="204" end="207" type="u0.4"/>
1732     <field name="8x Sample1 Y Offset" start="200" end="203" type="u0.4"/>
1733     <field name="8x Sample0 X Offset" start="196" end="199" type="u0.4"/>
1734     <field name="8x Sample0 Y Offset" start="192" end="195" type="u0.4"/>
1735     <field name="4x Sample3 X Offset" start="252" end="255" type="u0.4"/>
1736     <field name="4x Sample3 Y Offset" start="248" end="251" type="u0.4"/>
1737     <field name="4x Sample2 X Offset" start="244" end="247" type="u0.4"/>
1738     <field name="4x Sample2 Y Offset" start="240" end="243" type="u0.4"/>
1739     <field name="4x Sample1 X Offset" start="236" end="239" type="u0.4"/>
1740     <field name="4x Sample1 Y Offset" start="232" end="235" type="u0.4"/>
1741     <field name="4x Sample0 X Offset" start="228" end="231" type="u0.4"/>
1742     <field name="4x Sample0 Y Offset" start="224" end="227" type="u0.4"/>
1743     <field name="1x Sample0 X Offset" start="276" end="279" type="u0.4"/>
1744     <field name="1x Sample0 Y Offset" start="272" end="275" type="u0.4"/>
1745     <field name="2x Sample1 X Offset" start="268" end="271" type="u0.4"/>
1746     <field name="2x Sample1 Y Offset" start="264" end="267" type="u0.4"/>
1747     <field name="2x Sample0 X Offset" start="260" end="263" type="u0.4"/>
1748     <field name="2x Sample0 Y Offset" start="256" end="259" type="u0.4"/>
1749   </instruction>
1750
1751   <instruction name="3DSTATE_SBE" bias="2" length="4">
1752     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1753     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1754     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1755     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="31"/>
1756     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
1757     <field name="Force Vertex URB Entry Read Length" start="61" end="61" type="bool"/>
1758     <field name="Force Vertex URB Entry Read Offset" start="60" end="60" type="bool"/>
1759     <field name="Number of SF Output Attributes" start="54" end="59" type="uint"/>
1760     <field name="Attribute Swizzle Enable" start="53" end="53" type="bool"/>
1761     <field name="Point Sprite Texture Coordinate Origin" start="52" end="52" type="uint">
1762       <value name="UPPERLEFT" value="0"/>
1763       <value name="LOWERLEFT" value="1"/>
1764     </field>
1765     <field name="Primitive ID Override Component W" start="51" end="51" type="bool"/>
1766     <field name="Primitive ID Override Component Z" start="50" end="50" type="bool"/>
1767     <field name="Primitive ID Override Component Y" start="49" end="49" type="bool"/>
1768     <field name="Primitive ID Override Component X" start="48" end="48" type="bool"/>
1769     <field name="Vertex URB Entry Read Length" start="43" end="47" type="uint"/>
1770     <field name="Vertex URB Entry Read Offset" start="37" end="42" type="uint"/>
1771     <field name="Primitive ID Override Attribute Select" start="32" end="36" type="uint"/>
1772     <field name="Point Sprite Texture Coordinate Enable" start="64" end="95" type="uint"/>
1773     <field name="Constant Interpolation Enable" start="96" end="127" type="uint"/>
1774   </instruction>
1775
1776   <instruction name="3DSTATE_SBE_SWIZ" bias="2" length="11">
1777     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1778     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1779     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1780     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="81"/>
1781     <field name="DWord Length" start="0" end="7" type="uint" default="9"/>
1782     <group count="16" start="32" size="16">
1783       <field name="Attribute" start="0" end="15" type="SF_OUTPUT_ATTRIBUTE_DETAIL"/>
1784     </group>
1785     <group count="16" start="288" size="4">
1786       <field name="Attribute Wrap Shortest Enables" start="0" end="3" type="uint"/>
1787     </group>
1788   </instruction>
1789
1790   <instruction name="3DSTATE_SCISSOR_STATE_POINTERS" bias="2" length="2">
1791     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1792     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1793     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1794     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="15"/>
1795     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1796     <field name="Scissor Rect Pointer" start="37" end="63" type="offset"/>
1797   </instruction>
1798
1799   <instruction name="3DSTATE_SF" bias="2" length="4">
1800     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1801     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1802     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1803     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="19"/>
1804     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
1805     <field name="Legacy Global Depth Bias Enable" start="43" end="43" type="bool"/>
1806     <field name="Statistics Enable" start="42" end="42" type="bool"/>
1807     <field name="Viewport Transform Enable" start="33" end="33" type="bool"/>
1808     <field name="CHV Line Width" start="44" end="61" type="u11.7"/>
1809     <field name="Line Width" start="82" end="91" type="u3.7"/>
1810     <field name="Line End Cap Antialiasing Region Width" start="80" end="81" type="uint">
1811       <value name="0.5 pixels" value="0"/>
1812       <value name="1.0 pixels" value="1"/>
1813       <value name="2.0 pixels" value="2"/>
1814       <value name="4.0 pixels" value="3"/>
1815     </field>
1816     <field name="Last Pixel Enable" start="127" end="127" type="bool"/>
1817     <field name="Triangle Strip/List Provoking Vertex Select" start="125" end="126" type="uint"/>
1818     <field name="Line Strip/List Provoking Vertex Select" start="123" end="124" type="uint"/>
1819     <field name="Triangle Fan Provoking Vertex Select" start="121" end="122" type="uint"/>
1820     <field name="AA Line Distance Mode" start="110" end="110" type="uint">
1821       <value name="AALINEDISTANCE_TRUE" value="1"/>
1822     </field>
1823     <field name="Smooth Point Enable" start="109" end="109" type="bool"/>
1824     <field name="Vertex Sub Pixel Precision Select" start="108" end="108" type="uint"/>
1825     <field name="Point Width Source" start="107" end="107" type="uint">
1826       <value name="Vertex" value="0"/>
1827       <value name="State" value="1"/>
1828     </field>
1829     <field name="Point Width" start="96" end="106" type="u8.3"/>
1830   </instruction>
1831
1832   <instruction name="3DSTATE_SO_BUFFER" bias="2" length="8">
1833     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1834     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1835     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1836     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="24"/>
1837     <field name="DWord Length" start="0" end="7" type="uint" default="6"/>
1838     <field name="SO Buffer Enable" start="63" end="63" type="bool"/>
1839     <field name="SO Buffer Index" start="61" end="62" type="uint"/>
1840     <field name="SO Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
1841     <field name="SO Buffer MOCS" start="54" end="60" type="uint"/>
1842     <field name="Stream Offset Write Enable" start="53" end="53" type="bool"/>
1843     <field name="Stream Output Buffer Offset Address Enable" start="52" end="52" type="bool"/>
1844     <field name="Surface Base Address" start="66" end="111" type="address"/>
1845     <field name="Surface Size" start="128" end="157" type="uint"/>
1846     <field name="Stream Output Buffer Offset Address" start="162" end="207" type="address"/>
1847     <field name="Stream Offset" start="224" end="255" type="uint"/>
1848   </instruction>
1849
1850   <instruction name="3DSTATE_SO_DECL_LIST" bias="2">
1851     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1852     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1853     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
1854     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="23"/>
1855     <field name="DWord Length" start="0" end="8" type="uint"/>
1856     <field name="Stream to Buffer Selects [3]" start="44" end="47" type="uint"/>
1857     <field name="Stream to Buffer Selects [2]" start="40" end="43" type="uint"/>
1858     <field name="Stream to Buffer Selects [1]" start="36" end="39" type="uint"/>
1859     <field name="Stream to Buffer Selects [0]" start="32" end="35" type="uint"/>
1860     <field name="Num Entries [3]" start="88" end="95" type="uint"/>
1861     <field name="Num Entries [2]" start="80" end="87" type="uint"/>
1862     <field name="Num Entries [1]" start="72" end="79" type="uint"/>
1863     <field name="Num Entries [0]" start="64" end="71" type="uint"/>
1864     <group count="0" start="96" size="64">
1865       <field name="Entry" start="0" end="63" type="SO_DECL_ENTRY"/>
1866     </group>
1867   </instruction>
1868
1869   <instruction name="3DSTATE_STENCIL_BUFFER" bias="2" length="5">
1870     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1871     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1872     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1873     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="6"/>
1874     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
1875     <field name="Stencil Buffer Enable" start="63" end="63" type="bool"/>
1876     <field name="Stencil Buffer Object Control State" start="54" end="60" type="MEMORY_OBJECT_CONTROL_STATE"/>
1877     <field name="Stencil Buffer MOCS" start="54" end="60" type="uint"/>
1878     <field name="Surface Pitch" start="32" end="48" type="uint"/>
1879     <field name="Surface Base Address" start="64" end="127" type="address"/>
1880     <field name="Surface QPitch" start="128" end="142" type="uint"/>
1881   </instruction>
1882
1883   <instruction name="3DSTATE_STREAMOUT" bias="2" length="5">
1884     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1885     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1886     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1887     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="30"/>
1888     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
1889     <field name="SO Function Enable" start="63" end="63" type="bool"/>
1890     <field name="Rendering Disable" start="62" end="62" type="bool"/>
1891     <field name="Render Stream Select" start="59" end="60" type="uint"/>
1892     <field name="Reorder Mode" start="58" end="58" type="uint">
1893       <value name="LEADING" value="0"/>
1894       <value name="TRAILING" value="1"/>
1895     </field>
1896     <field name="SO Statistics Enable" start="57" end="57" type="bool"/>
1897     <field name="Force Rendering" start="55" end="56" type="uint">
1898       <value name="Resreved" value="1"/>
1899       <value name="Force_Off" value="2"/>
1900       <value name="Force_on" value="3"/>
1901     </field>
1902     <field name="Stream 3 Vertex Read Offset" start="93" end="93" type="uint"/>
1903     <field name="Stream 3 Vertex Read Length" start="88" end="92" type="uint"/>
1904     <field name="Stream 2 Vertex Read Offset" start="85" end="85" type="uint"/>
1905     <field name="Stream 2 Vertex Read Length" start="80" end="84" type="uint"/>
1906     <field name="Stream 1 Vertex Read Offset" start="77" end="77" type="uint"/>
1907     <field name="Stream 1 Vertex Read Length" start="72" end="76" type="uint"/>
1908     <field name="Stream 0 Vertex Read Offset" start="69" end="69" type="uint"/>
1909     <field name="Stream 0 Vertex Read Length" start="64" end="68" type="uint"/>
1910     <field name="Buffer 1 Surface Pitch" start="112" end="123" type="uint"/>
1911     <field name="Buffer 0 Surface Pitch" start="96" end="107" type="uint"/>
1912     <field name="Buffer 3 Surface Pitch" start="144" end="155" type="uint"/>
1913     <field name="Buffer 2 Surface Pitch" start="128" end="139" type="uint"/>
1914   </instruction>
1915
1916   <instruction name="3DSTATE_TE" bias="2" length="4">
1917     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1918     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1919     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1920     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="28"/>
1921     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
1922     <field name="Partitioning" start="44" end="45" type="uint">
1923       <value name="INTEGER" value="0"/>
1924       <value name="ODD_FRACTIONAL" value="1"/>
1925       <value name="EVEN_FRACTIONAL" value="2"/>
1926     </field>
1927     <field name="Output Topology" start="40" end="41" type="uint" prefix="OUTPUT">
1928       <value name="POINT" value="0"/>
1929       <value name="LINE" value="1"/>
1930       <value name="TRI_CW" value="2"/>
1931       <value name="TRI_CCW" value="3"/>
1932     </field>
1933     <field name="TE Domain" start="36" end="37" type="uint">
1934       <value name="QUAD" value="0"/>
1935       <value name="TRI" value="1"/>
1936       <value name="ISOLINE" value="2"/>
1937     </field>
1938     <field name="TE Mode" start="33" end="34" type="uint">
1939       <value name="HW_TESS" value="0"/>
1940       <value name="SW_TESS" value="1"/>
1941     </field>
1942     <field name="TE Enable" start="32" end="32" type="bool"/>
1943     <field name="Maximum Tessellation Factor Odd" start="64" end="95" type="float"/>
1944     <field name="Maximum Tessellation Factor Not Odd" start="96" end="127" type="float"/>
1945   </instruction>
1946
1947   <instruction name="3DSTATE_URB_DS" bias="2" length="2">
1948     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1949     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1950     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1951     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="50"/>
1952     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1953     <field name="DS URB Starting Address" start="57" end="63" type="uint"/>
1954     <field name="DS URB Entry Allocation Size" start="48" end="56" type="uint"/>
1955     <field name="DS Number of URB Entries" start="32" end="47" type="uint"/>
1956   </instruction>
1957
1958   <instruction name="3DSTATE_URB_GS" bias="2" length="2">
1959     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1960     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1961     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1962     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="51"/>
1963     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1964     <field name="GS URB Starting Address" start="57" end="63" type="uint"/>
1965     <field name="GS URB Entry Allocation Size" start="48" end="56" type="uint"/>
1966     <field name="GS Number of URB Entries" start="32" end="47" type="uint"/>
1967   </instruction>
1968
1969   <instruction name="3DSTATE_URB_HS" bias="2" length="2">
1970     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1971     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1972     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1973     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="49"/>
1974     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1975     <field name="HS URB Starting Address" start="57" end="63" type="uint"/>
1976     <field name="HS URB Entry Allocation Size" start="48" end="56" type="uint"/>
1977     <field name="HS Number of URB Entries" start="32" end="47" type="uint"/>
1978   </instruction>
1979
1980   <instruction name="3DSTATE_URB_VS" bias="2" length="2">
1981     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1982     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1983     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1984     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="48"/>
1985     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
1986     <field name="VS URB Starting Address" start="57" end="63" type="uint"/>
1987     <field name="VS URB Entry Allocation Size" start="48" end="56" type="uint"/>
1988     <field name="VS Number of URB Entries" start="32" end="47" type="uint"/>
1989   </instruction>
1990
1991   <instruction name="3DSTATE_VERTEX_BUFFERS" bias="2">
1992     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
1993     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
1994     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
1995     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="8"/>
1996     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
1997     <group count="0" start="32" size="128">
1998       <field name="Vertex Buffer State" start="0" end="127" type="VERTEX_BUFFER_STATE"/>
1999     </group>
2000   </instruction>
2001
2002   <instruction name="3DSTATE_VERTEX_ELEMENTS" bias="2">
2003     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2004     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2005     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2006     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="9"/>
2007     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2008     <group count="0" start="32" size="64">
2009       <field name="Element" start="0" end="63" type="VERTEX_ELEMENT_STATE"/>
2010     </group>
2011   </instruction>
2012
2013   <instruction name="3DSTATE_VF" bias="2" length="2">
2014     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2015     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2016     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2017     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="12"/>
2018     <field name="Indexed Draw Cut Index Enable" start="8" end="8" type="bool"/>
2019     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2020     <field name="Cut Index" start="32" end="63" type="uint"/>
2021   </instruction>
2022
2023   <instruction name="3DSTATE_VF_INSTANCING" bias="2" length="3">
2024     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2025     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2026     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2027     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="73"/>
2028     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2029     <field name="Instancing Enable" start="40" end="40" type="bool"/>
2030     <field name="Vertex Element Index" start="32" end="37" type="uint"/>
2031     <field name="Instance Data Step Rate" start="64" end="95" type="uint"/>
2032   </instruction>
2033
2034   <instruction name="3DSTATE_VF_SGVS" bias="2" length="2">
2035     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2036     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2037     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2038     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="74"/>
2039     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2040     <field name="InstanceID Enable" start="63" end="63" type="bool"/>
2041     <field name="InstanceID Component Number" start="61" end="62" type="uint">
2042       <value name="COMP_0" value="0"/>
2043       <value name="COMP_1" value="1"/>
2044       <value name="COMP_2" value="2"/>
2045       <value name="COMP_3" value="3"/>
2046     </field>
2047     <field name="InstanceID Element Offset" start="48" end="53" type="uint"/>
2048     <field name="VertexID Enable" start="47" end="47" type="bool"/>
2049     <field name="VertexID Component Number" start="45" end="46" type="uint">
2050       <value name="COMP_0" value="0"/>
2051       <value name="COMP_1" value="1"/>
2052       <value name="COMP_2" value="2"/>
2053       <value name="COMP_3" value="3"/>
2054     </field>
2055     <field name="VertexID Element Offset" start="32" end="37" type="uint"/>
2056   </instruction>
2057
2058   <instruction name="3DSTATE_VF_STATISTICS" bias="1" length="1">
2059     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2060     <field name="Command SubType" start="27" end="28" type="uint" default="1"/>
2061     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2062     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="11"/>
2063     <field name="Statistics Enable" start="0" end="0" type="bool"/>
2064   </instruction>
2065
2066   <instruction name="3DSTATE_VF_TOPOLOGY" bias="2" length="2">
2067     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2068     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2069     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2070     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="75"/>
2071     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2072     <field name="Primitive Topology Type" start="32" end="37" type="3D_Prim_Topo_Type"/>
2073   </instruction>
2074
2075   <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_CC" bias="2" length="2">
2076     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2077     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2078     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2079     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="35"/>
2080     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2081     <field name="CC Viewport Pointer" start="37" end="63" type="offset"/>
2082   </instruction>
2083
2084   <instruction name="3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP" bias="2" length="2">
2085     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2086     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2087     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2088     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="33"/>
2089     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2090     <field name="SF Clip Viewport Pointer" start="38" end="63" type="offset"/>
2091   </instruction>
2092
2093   <instruction name="3DSTATE_VS" bias="2" length="9">
2094     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2095     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2096     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2097     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="16"/>
2098     <field name="DWord Length" start="0" end="7" type="uint" default="7"/>
2099     <field name="Kernel Start Pointer" start="38" end="95" type="offset"/>
2100     <field name="Single Vertex Dispatch" start="127" end="127" type="bool"/>
2101     <field name="Vector Mask Enable" start="126" end="126" type="bool"/>
2102     <field name="Sampler Count" start="123" end="125" type="uint">
2103       <value name="No Samplers" value="0"/>
2104       <value name="1-4 Samplers" value="1"/>
2105       <value name="5-8 Samplers" value="2"/>
2106       <value name="9-12 Samplers" value="3"/>
2107       <value name="13-16 Samplers" value="4"/>
2108     </field>
2109     <field name="Binding Table Entry Count" start="114" end="121" type="uint"/>
2110     <field name="Thread Dispatch Priority" start="113" end="113" type="uint">
2111       <value name="High" value="1"/>
2112     </field>
2113     <field name="Floating Point Mode" start="112" end="112" type="uint">
2114       <value name="IEEE-754" value="0"/>
2115       <value name="Alternate" value="1"/>
2116     </field>
2117     <field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
2118     <field name="Accesses UAV" start="108" end="108" type="bool"/>
2119     <field name="Software Exception Enable" start="103" end="103" type="bool"/>
2120     <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
2121     <field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
2122     <field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
2123     <field name="Vertex URB Entry Read Length" start="203" end="208" type="uint"/>
2124     <field name="Vertex URB Entry Read Offset" start="196" end="201" type="uint"/>
2125     <field name="Maximum Number of Threads" start="247" end="255" type="uint"/>
2126     <field name="Statistics Enable" start="234" end="234" type="bool"/>
2127     <field name="SIMD8 Dispatch Enable" start="226" end="226" type="bool"/>
2128     <field name="Vertex Cache Disable" start="225" end="225" type="bool"/>
2129     <field name="Enable" start="224" end="224" type="bool"/>
2130     <field name="Vertex URB Entry Output Read Offset" start="277" end="282" type="uint"/>
2131     <field name="Vertex URB Entry Output Length" start="272" end="276" type="uint"/>
2132     <field name="User Clip Distance Clip Test Enable Bitmask" start="264" end="271" type="uint"/>
2133     <field name="User Clip Distance Cull Test Enable Bitmask" start="256" end="263" type="uint"/>
2134   </instruction>
2135
2136   <instruction name="3DSTATE_WM" bias="2" length="2">
2137     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2138     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2139     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2140     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="20"/>
2141     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2142     <field name="Statistics Enable" start="63" end="63" type="bool"/>
2143     <field name="Legacy Depth Buffer Clear Enable" start="62" end="62" type="bool"/>
2144     <field name="Legacy Depth Buffer Resolve Enable" start="60" end="60" type="bool"/>
2145     <field name="Legacy Hierarchical Depth Buffer Resolve Enable" start="59" end="59" type="bool"/>
2146     <field name="Legacy Diamond Line Rasterization" start="58" end="58" type="bool"/>
2147     <field name="Early Depth/Stencil Control" start="53" end="54" type="uint">
2148       <value name="EDSC_NORMAL" value="0"/>
2149       <value name="EDSC_PSEXEC" value="1"/>
2150       <value name="EDSC_PREPS" value="2"/>
2151     </field>
2152     <field name="Force Thread Dispatch Enable" start="51" end="52" type="uint">
2153       <value name="ForceOff" value="1"/>
2154       <value name="ForceON" value="2"/>
2155     </field>
2156     <field name="Position ZW Interpolation Mode" start="49" end="50" type="uint">
2157       <value name="INTERP_PIXEL" value="0"/>
2158       <value name="INTERP_CENTROID" value="2"/>
2159       <value name="INTERP_SAMPLE" value="3"/>
2160     </field>
2161     <field name="Barycentric Interpolation Mode" start="43" end="48" type="uint">
2162       <value name="BIM_PERSPECTIVE_PIXEL" value="1"/>
2163       <value name="BIM_PERSPECTIVE_CENTROID" value ="2"/>
2164       <value name="BIM_PERSPECTIVE_SAMPLE" value="4"/>
2165       <value name="BIM_LINEAR_PIXEL" value="8"/>
2166       <value name="BIM_LINEAR_CENTROID" value="16"/>
2167       <value name="BIM_LINEAR_SAMPLE" value="32"/>
2168     </field>
2169     <field name="Line End Cap Antialiasing Region Width" start="40" end="41" type="uint">
2170       <value name="0.5 pixels" value="0"/>
2171       <value name="1.0 pixels" value="1"/>
2172       <value name="2.0 pixels" value="2"/>
2173       <value name="4.0 pixels" value="3"/>
2174     </field>
2175     <field name="Line Antialiasing Region Width" start="38" end="39" type="uint">
2176       <value name="0.5 pixels" value="0"/>
2177       <value name="1.0 pixels" value="1"/>
2178       <value name="2.0 pixels" value="2"/>
2179       <value name="4.0 pixels" value="3"/>
2180     </field>
2181     <field name="Polygon Stipple Enable" start="36" end="36" type="bool"/>
2182     <field name="Line Stipple Enable" start="35" end="35" type="bool"/>
2183     <field name="Point Rasterization Rule" start="34" end="34" type="uint">
2184       <value name="RASTRULE_UPPER_LEFT" value="0"/>
2185       <value name="RASTRULE_UPPER_RIGHT" value="1"/>
2186     </field>
2187     <field name="Force Kill Pixel Enable" start="32" end="33" type="uint">
2188       <value name="ForceOff" value="1"/>
2189       <value name="ForceON" value="2"/>
2190     </field>
2191   </instruction>
2192
2193   <instruction name="3DSTATE_WM_CHROMAKEY" bias="2" length="2">
2194     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2195     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2196     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2197     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="76"/>
2198     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2199     <field name="ChromaKey Kill Enable" start="63" end="63" type="bool"/>
2200   </instruction>
2201
2202   <instruction name="3DSTATE_WM_DEPTH_STENCIL" bias="2" length="3">
2203     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2204     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2205     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2206     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="78"/>
2207     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2208     <field name="Stencil Fail Op" start="61" end="63" type="3D_Stencil_Operation"/>
2209     <field name="Stencil Pass Depth Fail Op" start="58" end="60" type="3D_Stencil_Operation"/>
2210     <field name="Stencil Pass Depth Pass Op" start="55" end="57" type="3D_Stencil_Operation"/>
2211     <field name="Backface Stencil Test Function" start="52" end="54" type="3D_Compare_Function"/>
2212     <field name="Backface Stencil Fail Op" start="49" end="51" type="3D_Stencil_Operation"/>
2213     <field name="Backface Stencil Pass Depth Fail Op" start="46" end="48" type="3D_Stencil_Operation"/>
2214     <field name="Backface Stencil Pass Depth Pass Op" start="43" end="45" type="3D_Stencil_Operation"/>
2215     <field name="Stencil Test Function" start="40" end="42" type="3D_Compare_Function"/>
2216     <field name="Depth Test Function" start="37" end="39" type="3D_Compare_Function"/>
2217     <field name="Double Sided Stencil Enable" start="36" end="36" type="bool"/>
2218     <field name="Stencil Test Enable" start="35" end="35" type="bool"/>
2219     <field name="Stencil Buffer Write Enable" start="34" end="34" type="bool"/>
2220     <field name="Depth Test Enable" start="33" end="33" type="bool"/>
2221     <field name="Depth Buffer Write Enable" start="32" end="32" type="bool"/>
2222     <field name="Stencil Test Mask" start="88" end="95" type="uint"/>
2223     <field name="Stencil Write Mask" start="80" end="87" type="uint"/>
2224     <field name="Backface Stencil Test Mask" start="72" end="79" type="uint"/>
2225     <field name="Backface Stencil Write Mask" start="64" end="71" type="uint"/>
2226   </instruction>
2227
2228   <instruction name="3DSTATE_WM_HZ_OP" bias="2" length="5">
2229     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2230     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2231     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2232     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="82"/>
2233     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
2234     <field name="Stencil Buffer Clear Enable" start="63" end="63" type="bool"/>
2235     <field name="Depth Buffer Clear Enable" start="62" end="62" type="bool"/>
2236     <field name="Scissor Rectangle Enable" start="61" end="61" type="bool"/>
2237     <field name="Depth Buffer Resolve Enable" start="60" end="60" type="bool"/>
2238     <field name="Hierarchical Depth Buffer Resolve Enable" start="59" end="59" type="bool"/>
2239     <field name="Pixel Position Offset Enable" start="58" end="58" type="bool"/>
2240     <field name="Full Surface Depth and Stencil Clear" start="57" end="57" type="bool"/>
2241     <field name="Stencil Clear Value" start="48" end="55" type="uint"/>
2242     <field name="Number of Multisamples" start="45" end="47" type="uint"/>
2243     <field name="Clear Rectangle Y Min" start="80" end="95" type="uint"/>
2244     <field name="Clear Rectangle X Min" start="64" end="79" type="uint"/>
2245     <field name="Clear Rectangle Y Max" start="112" end="127" type="uint"/>
2246     <field name="Clear Rectangle X Max" start="96" end="111" type="uint"/>
2247     <field name="Sample Mask" start="128" end="143" type="uint"/>
2248   </instruction>
2249
2250   <instruction name="GPGPU_CSR_BASE_ADDRESS" bias="2" length="3">
2251     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2252     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
2253     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
2254     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
2255     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2256     <field name="GPGPU CSR Base Address" start="44" end="95" type="address"/>
2257   </instruction>
2258
2259   <instruction name="GPGPU_WALKER" bias="2" length="15">
2260     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2261     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2262     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
2263     <field name="SubOpcode" start="16" end="23" type="uint" default="5"/>
2264     <field name="Indirect Parameter Enable" start="10" end="10" type="bool"/>
2265     <field name="Predicate Enable" start="8" end="8" type="bool"/>
2266     <field name="DWord Length" start="0" end="7" type="uint" default="13"/>
2267     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
2268     <field name="Indirect Data Length" start="64" end="80" type="uint"/>
2269     <field name="Indirect Data Start Address" start="102" end="127" type="offset"/>
2270     <field name="SIMD Size" start="158" end="159" type="uint">
2271       <value name="SIMD8" value="0"/>
2272       <value name="SIMD16" value="1"/>
2273       <value name="SIMD32" value="2"/>
2274     </field>
2275     <field name="Thread Depth Counter Maximum" start="144" end="149" type="uint"/>
2276     <field name="Thread Height Counter Maximum" start="136" end="141" type="uint"/>
2277     <field name="Thread Width Counter Maximum" start="128" end="133" type="uint"/>
2278     <field name="Thread Group ID Starting X" start="160" end="191" type="uint"/>
2279     <field name="Thread Group ID X Dimension" start="224" end="255" type="uint"/>
2280     <field name="Thread Group ID Starting Y" start="256" end="287" type="uint"/>
2281     <field name="Thread Group ID Y Dimension" start="320" end="351" type="uint"/>
2282     <field name="Thread Group ID Starting/Resume Z" start="352" end="383" type="uint"/>
2283     <field name="Thread Group ID Z Dimension" start="384" end="415" type="uint"/>
2284     <field name="Right Execution Mask" start="416" end="447" type="uint"/>
2285     <field name="Bottom Execution Mask" start="448" end="479" type="uint"/>
2286   </instruction>
2287
2288   <instruction name="MEDIA_CURBE_LOAD" bias="2" length="4">
2289     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2290     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2291     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
2292     <field name="SubOpcode" start="16" end="23" type="uint" default="1"/>
2293     <field name="DWord Length" start="0" end="15" type="uint" default="2"/>
2294     <field name="CURBE Total Data Length" start="64" end="80" type="uint"/>
2295     <field name="CURBE Data Start Address" start="96" end="127" type="uint"/>
2296   </instruction>
2297
2298   <instruction name="MEDIA_INTERFACE_DESCRIPTOR_LOAD" bias="2" length="4">
2299     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2300     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2301     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
2302     <field name="SubOpcode" start="16" end="23" type="uint" default="2"/>
2303     <field name="DWord Length" start="0" end="15" type="uint" default="2"/>
2304     <field name="Interface Descriptor Total Length" start="64" end="80" type="uint"/>
2305     <field name="Interface Descriptor Data Start Address" start="96" end="127" type="offset"/>
2306   </instruction>
2307
2308   <instruction name="MEDIA_OBJECT" bias="2">
2309     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2310     <field name="Media Command Pipeline" start="27" end="28" type="uint" default="2"/>
2311     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
2312     <field name="Media Command Sub-Opcode" start="16" end="23" type="uint" default="0"/>
2313     <field name="DWord Length" start="0" end="15" type="uint" default="4"/>
2314     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
2315     <field name="Children Present" start="95" end="95" type="bool"/>
2316     <field name="Thread Synchronization" start="88" end="88" type="uint">
2317       <value name="No thread synchronization" value="0"/>
2318       <value name="Thread dispatch is synchronized by the 'spawn root thread' message" value="1"/>
2319     </field>
2320     <field name="Force Destination" start="86" end="86" type="uint"/>
2321     <field name="Use Scoreboard" start="85" end="85" type="uint">
2322       <value name="Not using scoreboard" value="0"/>
2323       <value name="Using scoreboard" value="1"/>
2324     </field>
2325     <field name="Slice Destination Select" start="83" end="84" type="uint">
2326       <value name="Slice 0" value="0"/>
2327       <value name="Slice 1" value="1"/>
2328       <value name="Slice 2" value="2"/>
2329     </field>
2330     <field name="SubSlice Destination Select" start="81" end="82" type="uint">
2331       <value name="SubSlice 2" value="2"/>
2332       <value name="SubSlice 1" value="1"/>
2333       <value name="SubSlice 0" value="0"/>
2334     </field>
2335     <field name="Indirect Data Length" start="64" end="80" type="uint"/>
2336     <field name="Indirect Data Start Address" start="96" end="127" type="address"/>
2337     <field name="Scoredboard Y" start="144" end="152" type="uint"/>
2338     <field name="Scoreboard X" start="128" end="136" type="uint"/>
2339     <field name="Scoreboard Color" start="176" end="179" type="uint"/>
2340     <field name="Scoreboard Mask" start="160" end="167" type="uint"/>
2341     <group count="0" start="192" size="32">
2342       <field name="Inline Data" start="0" end="31" type="uint"/>
2343     </group>
2344   </instruction>
2345
2346   <instruction name="MEDIA_OBJECT_GRPID" bias="2">
2347     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2348     <field name="Media Command Pipeline" start="27" end="28" type="uint" default="2"/>
2349     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
2350     <field name="Media Command Sub-Opcode" start="16" end="23" type="uint" default="6"/>
2351     <field name="DWord Length" start="0" end="15" type="uint" default="5"/>
2352     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
2353     <field name="End of Thread Group" start="87" end="87" type="uint"/>
2354     <field name="Force Destination" start="86" end="86" type="uint"/>
2355     <field name="Use Scoreboard" start="85" end="85" type="uint">
2356       <value name="Not using scoreboard" value="0"/>
2357       <value name="Using scoreboard" value="1"/>
2358     </field>
2359     <field name="Slice Destination Select" start="83" end="84" type="uint">
2360       <value name="Slice 0" value="0"/>
2361       <value name="Slice 1" value="1"/>
2362       <value name="Slice 2" value="2"/>
2363     </field>
2364     <field name="SubSlice Destination Select" start="81" end="82" type="uint">
2365       <value name="SubSlice 2" value="2"/>
2366       <value name="SubSlice 1" value="1"/>
2367       <value name="SubSlice 0" value="0"/>
2368     </field>
2369     <field name="Indirect Data Length" start="64" end="80" type="uint"/>
2370     <field name="Indirect Data Start Address" start="96" end="127" type="address"/>
2371     <field name="Scoreboard Y" start="144" end="152" type="uint"/>
2372     <field name="Scoreboard X" start="128" end="136" type="uint"/>
2373     <field name="Scoreboard Color" start="176" end="179" type="uint"/>
2374     <field name="Scoreboard Mask" start="160" end="167" type="uint"/>
2375     <field name="GroupID" start="192" end="223" type="uint"/>
2376     <group count="0" start="224" size="32">
2377       <field name="Inline Data" start="0" end="31" type="uint"/>
2378     </group>
2379   </instruction>
2380
2381   <instruction name="MEDIA_OBJECT_PRT" bias="2" length="16">
2382     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2383     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2384     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
2385     <field name="SubOpcode" start="16" end="23" type="uint" default="2"/>
2386     <field name="DWord Length" start="0" end="15" type="uint" default="14"/>
2387     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
2388     <field name="Children Present" start="95" end="95" type="bool"/>
2389     <field name="PRT_Fence Needed" start="87" end="87" type="bool"/>
2390     <field name="PRT_FenceType" start="86" end="86" type="uint">
2391       <value name="Root thread queue" value="0"/>
2392       <value name="VFE state flush" value="1"/>
2393     </field>
2394     <group count="12" start="128" size="32">
2395       <field name="Inline Data" start="0" end="31" type="uint"/>
2396     </group>
2397   </instruction>
2398
2399   <instruction name="MEDIA_OBJECT_WALKER" bias="2">
2400     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2401     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2402     <field name="Media Command Opcode" start="24" end="26" type="uint" default="1"/>
2403     <field name="SubOpcode" start="16" end="23" type="uint" default="3"/>
2404     <field name="DWord Length" start="0" end="15" type="uint" default="15"/>
2405     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
2406     <field name="Children Present" start="95" end="95" type="uint"/>
2407     <field name="Thread Synchronization" start="88" end="88" type="uint">
2408       <value name="No thread synchronization" value="0"/>
2409       <value name="Thread dispatch is synchronized by the 'spawn root thread' message" value="1"/>
2410     </field>
2411     <field name="Use Scoreboard" start="85" end="85" type="uint">
2412       <value name="Not using scoreboard" value="0"/>
2413       <value name="Using scoreboard" value="1"/>
2414     </field>
2415     <field name="Indirect Data Length" start="64" end="80" type="uint"/>
2416     <field name="Indirect Data Start Address" start="96" end="127" type="offset"/>
2417     <field name="Group ID Loop Select" start="168" end="191" type="uint"/>
2418     <field name="Scoreboard Mask" start="160" end="167" type="uint"/>
2419     <field name="Color Count Minus One" start="216" end="219" type="uint"/>
2420     <field name="Middle Loop Extra Steps" start="208" end="212" type="uint"/>
2421     <field name="Local Mid-Loop Unit Y" start="204" end="205" type="int"/>
2422     <field name="Mid-Loop Unit X" start="200" end="201" type="int"/>
2423     <field name="Global Loop Exec Count" start="240" end="249" type="uint"/>
2424     <field name="Local Loop Exec Count" start="224" end="233" type="uint"/>
2425     <field name="Block Resolution Y" start="272" end="280" type="uint"/>
2426     <field name="Block Resolution X" start="256" end="264" type="uint"/>
2427     <field name="Local Start Y" start="304" end="312" type="uint"/>
2428     <field name="Local Start X" start="288" end="296" type="uint"/>
2429     <field name="Local Outer Loop Stride Y" start="368" end="377" type="int"/>
2430     <field name="Local Outer Loop Stride X" start="352" end="361" type="int"/>
2431     <field name="Local Inner Loop Unit Y" start="400" end="409" type="int"/>
2432     <field name="Local Inner Loop Unit X" start="384" end="393" type="int"/>
2433     <field name="Global Resolution Y" start="432" end="440" type="uint"/>
2434     <field name="Global Resolution X" start="416" end="424" type="uint"/>
2435     <field name="Global Start Y" start="464" end="473" type="int"/>
2436     <field name="Global Start X" start="448" end="457" type="int"/>
2437     <field name="Global Outer Loop Stride Y" start="496" end="505" type="int"/>
2438     <field name="Global Outer Loop Stride X" start="480" end="489" type="int"/>
2439     <field name="Global Inner Loop Unit Y" start="528" end="537" type="int"/>
2440     <field name="Global Inner Loop Unit X" start="512" end="521" type="int"/>
2441     <group count="0" start="544" size="32">
2442       <field name="Inline Data" start="0" end="31" type="uint"/>
2443     </group>
2444   </instruction>
2445
2446   <instruction name="MEDIA_STATE_FLUSH" bias="2" length="2">
2447     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2448     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2449     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
2450     <field name="SubOpcode" start="16" end="23" type="uint" default="4"/>
2451     <field name="DWord Length" start="0" end="15" type="uint" default="0"/>
2452     <field name="Flush to GO" start="39" end="39" type="bool"/>
2453     <field name="Watermark Required" start="38" end="38" type="uint"/>
2454     <field name="Interface Descriptor Offset" start="32" end="37" type="uint"/>
2455   </instruction>
2456
2457   <instruction name="MEDIA_VFE_STATE" bias="2" length="9">
2458     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2459     <field name="Pipeline" start="27" end="28" type="uint" default="2"/>
2460     <field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
2461     <field name="SubOpcode" start="16" end="23" type="uint" default="0"/>
2462     <field name="DWord Length" start="0" end="15" type="uint" default="7"/>
2463     <field name="Scratch Space Base Pointer" start="42" end="79" type="address"/>
2464     <field name="Stack Size" start="36" end="39" type="uint"/>
2465     <field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
2466     <field name="Maximum Number of Threads" start="112" end="127" type="uint"/>
2467     <field name="Number of URB Entries" start="104" end="111" type="uint"/>
2468     <field name="Reset Gateway Timer" start="103" end="103" type="uint">
2469       <value name="Maintaining the existing timestamp state" value="0"/>
2470       <value name="Resetting relative timer and latching the global timestamp" value="1"/>
2471     </field>
2472     <field name="Bypass Gateway Control" start="102" end="102" type="uint">
2473       <value name="Maintaining OpenGateway/ForwardMsg/CloseGateway protocol (legacy mode)" value="0"/>
2474       <value name="Bypassing OpenGateway/CloseGateway protocol" value="1"/>
2475     </field>
2476     <field name="Slice Disable" start="128" end="129" type="uint">
2477       <value name="All Subslices Enabled" value="0"/>
2478       <value name="Only Slice 0 Enabled" value="1"/>
2479       <value name="Only Slice 0 Subslice 0 Enabled" value="3"/>
2480     </field>
2481     <field name="URB Entry Allocation Size" start="176" end="191" type="uint"/>
2482     <field name="CURBE Allocation Size" start="160" end="175" type="uint"/>
2483     <field name="Scoreboard Enable" start="223" end="223" type="bool"/>
2484     <field name="Scoreboard Type" start="222" end="222" type="uint">
2485       <value name="Stalling Scoreboard" value="0"/>
2486       <value name="Non-Stalling Scoreboard" value="1"/>
2487     </field>
2488     <field name="Scoreboard Mask" start="192" end="199" type="uint"/>
2489     <field name="Scoreboard 3 Delta Y" start="252" end="255" type="int"/>
2490     <field name="Scoreboard 3 Delta X" start="248" end="251" type="int"/>
2491     <field name="Scoreboard 2 Delta Y" start="244" end="247" type="int"/>
2492     <field name="Scoreboard 2 Delta X" start="240" end="243" type="int"/>
2493     <field name="Scoreboard 1 Delta Y" start="236" end="239" type="int"/>
2494     <field name="Scoreboard 1 Delta X" start="232" end="235" type="int"/>
2495     <field name="Scoreboard 0 Delta Y" start="228" end="231" type="int"/>
2496     <field name="Scoreboard 0 Delta X" start="224" end="227" type="int"/>
2497     <field name="Scoreboard 7 Delta Y" start="284" end="287" type="int"/>
2498     <field name="Scoreboard 7 Delta X" start="280" end="283" type="int"/>
2499     <field name="Scoreboard 6 Delta Y" start="276" end="279" type="int"/>
2500     <field name="Scoreboard 6 Delta X" start="272" end="275" type="int"/>
2501     <field name="Scoreboard 5 Delta Y" start="268" end="271" type="int"/>
2502     <field name="Scoreboard 5 Delta X" start="264" end="267" type="int"/>
2503     <field name="Scoreboard 4 Delta Y" start="260" end="263" type="int"/>
2504     <field name="Scoreboard 4 Delta X" start="256" end="259" type="int"/>
2505   </instruction>
2506
2507   <instruction name="MI_ARB_CHECK" bias="1" length="1">
2508     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2509     <field name="MI Command Opcode" start="23" end="28" type="uint" default="5"/>
2510   </instruction>
2511
2512   <instruction name="MI_ARB_ON_OFF" bias="1" length="1">
2513     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2514     <field name="MI Command Opcode" start="23" end="28" type="uint" default="8"/>
2515     <field name="Arbitration Enable" start="0" end="0" type="bool" default="1"/>
2516   </instruction>
2517
2518   <instruction name="MI_ATOMIC" bias="2" length="3">
2519     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2520     <field name="MI Command Opcode" start="23" end="28" type="uint" default="47"/>
2521     <field name="Memory Type" start="22" end="22" type="uint">
2522       <value name="Per Process Graphics Address" value="0"/>
2523       <value name="Global Graphics Address" value="1"/>
2524     </field>
2525     <field name="Post-Sync Operation" start="21" end="21" type="bool"/>
2526     <field name="Data Size" start="19" end="20" type="uint">
2527       <value name="DWORD" value="0"/>
2528       <value name="QWORD" value="1"/>
2529       <value name="OCTWORD" value="2"/>
2530       <value name="RESERVED" value="3"/>
2531     </field>
2532     <field name="Inline Data" start="18" end="18" type="uint"/>
2533     <field name="CS STALL" start="17" end="17" type="uint"/>
2534     <field name="Return Data Control" start="16" end="16" type="uint"/>
2535     <field name="ATOMIC OPCODE" start="8" end="15" type="uint"/>
2536     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2537     <field name="Memory Address" start="34" end="79" type="address"/>
2538     <field name="Operand1 Data Dword 0" start="96" end="127" type="uint"/>
2539     <field name="Operand2 Data Dword 0" start="128" end="159" type="uint"/>
2540     <field name="Operand1 Data Dword 1" start="160" end="191" type="uint"/>
2541     <field name="Operand2 Data Dword 1" start="192" end="223" type="uint"/>
2542     <field name="Operand1 Data Dword 2" start="224" end="255" type="uint"/>
2543     <field name="Operand2 Data Dword 2" start="256" end="287" type="uint"/>
2544     <field name="Operand1 Data Dword 3" start="288" end="319" type="uint"/>
2545     <field name="Operand2 Data Dword 3" start="320" end="351" type="uint"/>
2546   </instruction>
2547
2548   <instruction name="MI_BATCH_BUFFER_END" bias="1" length="1">
2549     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2550     <field name="MI Command Opcode" start="23" end="28" type="uint" default="10"/>
2551   </instruction>
2552
2553   <instruction name="MI_BATCH_BUFFER_START" bias="2" length="3">
2554     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2555     <field name="MI Command Opcode" start="23" end="28" type="uint" default="49"/>
2556     <field name="2nd Level Batch Buffer" start="22" end="22" type="uint">
2557       <value name="1st level batch" value="0"/>
2558       <value name="2nd level batch" value="1"/>
2559     </field>
2560     <field name="Add Offset Enable" start="16" end="16" type="bool"/>
2561     <field name="Predication Enable" start="15" end="15" type="bool"/>
2562     <field name="Resource Streamer Enable" start="10" end="10" type="bool"/>
2563     <field name="Address Space Indicator" start="8" end="8" type="uint" prefix="ASI">
2564       <value name="GGTT" value="0"/>
2565       <value name="PPGTT" value="1"/>
2566     </field>
2567     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2568     <field name="Batch Buffer Start Address" start="34" end="79" type="address"/>
2569   </instruction>
2570
2571   <instruction name="MI_CLFLUSH" bias="2">
2572     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2573     <field name="MI Command Opcode" start="23" end="28" type="uint" default="39"/>
2574     <field name="Use Global GTT" start="22" end="22" type="bool"/>
2575     <field name="DWord Length" start="0" end="9" type="uint" default="1"/>
2576     <field name="Page Base Address" start="44" end="79" type="address"/>
2577     <field name="Starting Cacheline Offset" start="38" end="43" type="uint"/>
2578     <group count="0" start="96" size="32">
2579       <field name="DW Representing a Half Cache Line" start="0" end="31" type="uint"/>
2580     </group>
2581   </instruction>
2582
2583   <instruction name="MI_CONDITIONAL_BATCH_BUFFER_END" bias="2" length="3">
2584     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2585     <field name="MI Command Opcode" start="23" end="28" type="uint" default="54"/>
2586     <field name="Use Global GTT" start="22" end="22" type="bool"/>
2587     <field name="Compare Semaphore" start="21" end="21" type="uint" default="0"/>
2588     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2589     <field name="Compare Data Dword" start="32" end="63" type="uint"/>
2590     <field name="Compare Address" start="67" end="111" type="address"/>
2591   </instruction>
2592
2593   <instruction name="MI_COPY_MEM_MEM" bias="2" length="5">
2594     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2595     <field name="MI Command Opcode" start="23" end="28" type="uint" default="46"/>
2596     <field name="Use Global GTT Source" start="22" end="22" type="bool"/>
2597     <field name="Use Global GTT Destination" start="21" end="21" type="bool"/>
2598     <field name="DWord Length" start="0" end="7" type="uint" default="3"/>
2599     <field name="Destination Memory Address" start="34" end="95" type="address"/>
2600     <field name="Source Memory Address" start="98" end="159" type="address"/>
2601   </instruction>
2602
2603   <instruction name="MI_LOAD_REGISTER_IMM" bias="2" length="3">
2604     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2605     <field name="MI Command Opcode" start="23" end="28" type="uint" default="34"/>
2606     <field name="Byte Write Disables" start="8" end="11" type="uint"/>
2607     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2608     <field name="Register Offset" start="34" end="54" type="offset"/>
2609     <field name="Data DWord" start="64" end="95" type="uint"/>
2610     <group count="0" start="64" size="64">
2611       <field name="Register Offset" start="2" end="22" type="offset"/>
2612       <field name="Data DWord" start="32" end="63" type="uint"/>
2613     </group>
2614   </instruction>
2615
2616   <instruction name="MI_LOAD_REGISTER_MEM" bias="2" length="4">
2617     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2618     <field name="MI Command Opcode" start="23" end="28" type="uint" default="41"/>
2619     <field name="Use Global GTT" start="22" end="22" type="bool"/>
2620     <field name="Async Mode Enable" start="21" end="21" type="bool"/>
2621     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
2622     <field name="Register Address" start="34" end="54" type="offset"/>
2623     <field name="Memory Address" start="66" end="127" type="address"/>
2624   </instruction>
2625
2626   <instruction name="MI_LOAD_REGISTER_REG" bias="2" length="3">
2627     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2628     <field name="MI Command Opcode" start="23" end="28" type="uint" default="42"/>
2629     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2630     <field name="Source Register Address" start="34" end="54" type="offset"/>
2631     <field name="Destination Register Address" start="66" end="86" type="offset"/>
2632   </instruction>
2633
2634   <instruction name="MI_LOAD_SCAN_LINES_EXCL" bias="2" length="2">
2635     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2636     <field name="MI Command Opcode" start="23" end="28" type="uint" default="19"/>
2637     <field name="Display (Plane) Select" start="19" end="21" type="uint">
2638       <value name="Display Plane A" value="0"/>
2639       <value name="Display Plane B" value="1"/>
2640       <value name="Display Plane C" value="4"/>
2641     </field>
2642     <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
2643     <field name="Start Scan Line Number" start="48" end="60" type="uint"/>
2644     <field name="End Scan Line Number" start="32" end="44" type="uint"/>
2645   </instruction>
2646
2647   <instruction name="MI_LOAD_SCAN_LINES_INCL" bias="2" length="2">
2648     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2649     <field name="MI Command Opcode" start="23" end="28" type="uint" default="18"/>
2650     <field name="Display (Plane) Select" start="19" end="21" type="uint">
2651       <value name="Display Plane A" value="0"/>
2652       <value name="Display Plane B" value="1"/>
2653       <value name="Display Plane C" value="4"/>
2654     </field>
2655     <field name="Scan Line Event Done Forward" start="17" end="18" type="uint"/>
2656     <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
2657     <field name="Start Scan Line Number" start="48" end="60" type="uint"/>
2658     <field name="End Scan Line Number" start="32" end="44" type="uint"/>
2659   </instruction>
2660
2661   <instruction name="MI_LOAD_URB_MEM" bias="2" length="4">
2662     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2663     <field name="MI Command Opcode" start="23" end="28" type="uint" default="44"/>
2664     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
2665     <field name="URB Address" start="34" end="46" type="uint"/>
2666     <field name="Memory Address" start="70" end="127" type="address"/>
2667   </instruction>
2668
2669   <instruction name="MI_MATH" bias="2">
2670     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2671     <field name="MI Command Opcode" start="23" end="28" type="uint" default="26"/>
2672     <field name="DWord Length" start="0" end="5" type="uint" default="0"/>
2673     <group count="0" start="32" size="32">
2674       <field name="Instruction" start="0" end="31" type="MI_MATH_ALU_INSTRUCTION"/>
2675     </group>
2676   </instruction>
2677
2678   <instruction name="MI_NOOP" bias="1" length="1">
2679     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2680     <field name="MI Command Opcode" start="23" end="28" type="uint" default="0"/>
2681     <field name="Identification Number Register Write Enable" start="22" end="22" type="bool"/>
2682     <field name="Identification Number" start="0" end="21" type="uint"/>
2683   </instruction>
2684
2685   <instruction name="MI_PREDICATE" bias="1" length="1">
2686     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2687     <field name="MI Command Opcode" start="23" end="28" type="uint" default="12"/>
2688     <field name="Load Operation" start="6" end="7" type="uint" prefix="LOAD">
2689       <value name="KEEP" value="0"/>
2690       <value name="LOAD" value="2"/>
2691       <value name="LOADINV" value="3"/>
2692     </field>
2693     <field name="Combine Operation" start="3" end="4" type="uint" prefix="COMBINE">
2694       <value name="SET" value="0"/>
2695       <value name="AND" value="1"/>
2696       <value name="OR" value="2"/>
2697       <value name="XOR" value="3"/>
2698     </field>
2699     <field name="Compare Operation" start="0" end="1" type="uint" prefix="COMPARE">
2700       <value name="SRCS_EQUAL" value="2"/>
2701       <value name="DELTAS_EQUAL" value="3"/>
2702     </field>
2703   </instruction>
2704
2705   <instruction name="MI_REPORT_HEAD" bias="1" length="1">
2706     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2707     <field name="MI Command Opcode" start="23" end="28" type="uint" default="7"/>
2708   </instruction>
2709
2710   <instruction name="MI_REPORT_PERF_COUNT" bias="2" length="4">
2711     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2712     <field name="MI Command Opcode" start="23" end="28" type="uint" default="40"/>
2713     <field name="DWord Length" start="0" end="5" type="uint" default="2"/>
2714     <field name="Memory Address" start="38" end="95" type="address"/>
2715     <field name="Core Mode Enable" start="36" end="36" type="uint"/>
2716     <field name="Use Global GTT" start="32" end="32" type="bool"/>
2717     <field name="Report ID" start="96" end="127" type="uint"/>
2718   </instruction>
2719
2720   <instruction name="MI_RS_CONTEXT" bias="1" length="1">
2721     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2722     <field name="MI Command Opcode" start="23" end="28" type="uint" default="15"/>
2723     <field name="Resource Streamer Save" start="0" end="0" type="uint" prefix="RS">
2724       <value name="Restore" value="0"/>
2725       <value name="Save" value="1"/>
2726     </field>
2727   </instruction>
2728
2729   <instruction name="MI_RS_CONTROL" bias="1" length="1">
2730     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2731     <field name="MI Command Opcode" start="23" end="28" type="uint" default="6"/>
2732     <field name="Resource Streamer Control" start="0" end="0" type="uint" prefix="RS">
2733       <value name="Stop" value="0"/>
2734       <value name="Start" value="1"/>
2735     </field>
2736   </instruction>
2737
2738   <instruction name="MI_RS_STORE_DATA_IMM" bias="2" length="4">
2739     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2740     <field name="MI Command Opcode" start="23" end="28" type="uint" default="43"/>
2741     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
2742     <field name="Destination Address" start="34" end="95" type="address"/>
2743     <field name="Core Mode Enable" start="32" end="32" type="uint"/>
2744     <field name="Data DWord 0" start="96" end="127" type="uint"/>
2745   </instruction>
2746
2747   <instruction name="MI_SEMAPHORE_SIGNAL" bias="2" length="2">
2748     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2749     <field name="MI Command Opcode" start="23" end="28" type="uint" default="27"/>
2750     <field name="Post-Sync Operation" start="21" end="21" type="bool"/>
2751     <field name="Target Engine Select" start="15" end="17" type="uint">
2752       <value name="RCS" value="0"/>
2753       <value name="VCS0" value="1"/>
2754       <value name="BCS" value="2"/>
2755       <value name="VECS" value="3"/>
2756       <value name="VCS1" value="4"/>
2757     </field>
2758     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2759     <field name="Target Context ID" start="32" end="63" type="uint"/>
2760   </instruction>
2761
2762   <instruction name="MI_SEMAPHORE_WAIT" bias="2" length="4">
2763     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2764     <field name="MI Command Opcode" start="23" end="28" type="uint" default="28"/>
2765     <field name="Memory Type" start="22" end="22" type="uint">
2766       <value name="Per Process Graphics Address" value="0"/>
2767       <value name="Global Graphics Address" value="1"/>
2768     </field>
2769     <field name="Wait Mode" start="15" end="15" type="uint">
2770       <value name="Polling Mode" value="1"/>
2771       <value name="Signal Mode" value="0"/>
2772     </field>
2773     <field name="Compare Operation" start="12" end="14" type="uint" prefix="COMPARE">
2774       <value name="SAD_GREATER_THAN_SDD" value="0"/>
2775       <value name="SAD_GREATER_THAN_OR_EQUAL_SDD" value="1"/>
2776       <value name="SAD_LESS_THAN_SDD" value="2"/>
2777       <value name="SAD_LESS_THAN_OR_EQUAL_SDD" value="3"/>
2778       <value name="SAD_EQUAL_SDD" value="4"/>
2779       <value name="SAD_NOT_EQUAL_SDD" value="5"/>
2780     </field>
2781     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
2782     <field name="Semaphore Data Dword" start="32" end="63" type="uint"/>
2783     <field name="Semaphore Address" start="66" end="95" type="address"/>
2784     <field name="Semaphore Address High" start="96" end="111" type="address"/>
2785   </instruction>
2786
2787   <instruction name="MI_SET_CONTEXT" bias="2" length="2">
2788     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2789     <field name="MI Command Opcode" start="23" end="28" type="uint" default="24"/>
2790     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2791     <field name="Logical Context Address" start="44" end="63" type="address"/>
2792     <field name="Reserved, Must be 1" start="40" end="40" type="uint"/>
2793     <field name="Core Mode Enable" start="36" end="36" type="bool"/>
2794     <field name="Resource Streamer State Save Enable" start="35" end="35" type="bool"/>
2795     <field name="Resource Streamer State Restore Enable" start="34" end="34" type="bool"/>
2796     <field name="Force Restore" start="33" end="33" type="uint"/>
2797     <field name="Restore Inhibit" start="32" end="32" type="uint"/>
2798   </instruction>
2799
2800   <instruction name="MI_SET_PREDICATE" bias="1" length="1">
2801     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2802     <field name="MI Command Opcode" start="23" end="28" type="uint" default="1"/>
2803     <field name="PREDICATE ENABLE" start="0" end="3" type="uint">
2804       <value name="NOOP Never" value="0"/>
2805       <value name="NOOP on Result2 clear" value="1"/>
2806       <value name="NOOP on Result2 set" value="2"/>
2807       <value name="NOOP on Result clear" value="3"/>
2808       <value name="NOOP on Result set" value="4"/>
2809       <value name="Execute when one slice enabled." value="5"/>
2810       <value name="Execute when two slices are enabled." value="6"/>
2811       <value name="Execute when three slices are enabled." value="7"/>
2812       <value name="NOOP Always" value="15"/>
2813     </field>
2814   </instruction>
2815
2816   <instruction name="MI_STORE_DATA_IMM" bias="2" length="4">
2817     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2818     <field name="MI Command Opcode" start="23" end="28" type="uint" default="32"/>
2819     <field name="Use Global GTT" start="22" end="22" type="bool"/>
2820     <field name="Store Qword" start="21" end="21" type="uint"/>
2821     <field name="DWord Length" start="0" end="9" type="uint" default="2"/>
2822     <field name="Address" start="34" end="79" type="address"/>
2823     <field name="Core Mode Enable" start="32" end="32" type="uint"/>
2824     <field name="Immediate Data" start="96" end="159" type="uint"/>
2825   </instruction>
2826
2827   <instruction name="MI_STORE_DATA_INDEX" bias="2" length="3">
2828     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2829     <field name="MI Command Opcode" start="23" end="28" type="uint" default="33"/>
2830     <field name="Use Per-Process Hardware Status Page" start="21" end="21" type="uint"/>
2831     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
2832     <field name="Offset" start="34" end="43" type="uint"/>
2833     <field name="Data DWord 0" start="64" end="95" type="uint"/>
2834     <field name="Data DWord 1" start="96" end="127" type="uint"/>
2835   </instruction>
2836
2837   <instruction name="MI_STORE_REGISTER_MEM" bias="2" length="4">
2838     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2839     <field name="MI Command Opcode" start="23" end="28" type="uint" default="36"/>
2840     <field name="Use Global GTT" start="22" end="22" type="bool"/>
2841     <field name="Predicate Enable" start="21" end="21" type="bool"/>
2842     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
2843     <field name="Register Address" start="34" end="54" type="offset"/>
2844     <field name="Memory Address" start="66" end="127" type="address"/>
2845   </instruction>
2846
2847   <instruction name="MI_STORE_URB_MEM" bias="2" length="4">
2848     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2849     <field name="MI Command Opcode" start="23" end="28" type="uint" default="45"/>
2850     <field name="DWord Length" start="0" end="7" type="uint" default="2"/>
2851     <field name="URB Address" start="34" end="46" type="uint"/>
2852     <field name="Memory Address" start="70" end="127" type="address"/>
2853   </instruction>
2854
2855   <instruction name="MI_SUSPEND_FLUSH" bias="1" length="1">
2856     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2857     <field name="MI Command Opcode" start="23" end="28" type="uint" default="11"/>
2858     <field name="Suspend Flush" start="0" end="0" type="bool"/>
2859   </instruction>
2860
2861   <instruction name="MI_TOPOLOGY_FILTER" bias="1" length="1">
2862     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2863     <field name="MI Command Opcode" start="23" end="28" type="uint" default="13"/>
2864     <field name="Topology Filter Value" start="0" end="5" type="3D_Prim_Topo_Type"/>
2865   </instruction>
2866
2867   <instruction name="MI_URB_ATOMIC_ALLOC" bias="1" length="1">
2868     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2869     <field name="MI Command Opcode" start="23" end="28" type="uint" default="9"/>
2870     <field name="URB Atomic Storage Offset" start="12" end="19" type="uint"/>
2871     <field name="URB Atomic Storage Size" start="0" end="8" type="uint"/>
2872   </instruction>
2873
2874   <instruction name="MI_URB_CLEAR" bias="2" length="2">
2875     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2876     <field name="MI Command Opcode" start="23" end="28" type="uint" default="25"/>
2877     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2878     <field name="URB Clear Length" start="48" end="61" type="uint"/>
2879     <field name="URB Address" start="32" end="46" type="offset"/>
2880   </instruction>
2881
2882   <instruction name="MI_USER_INTERRUPT" bias="1" length="1">
2883     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2884     <field name="MI Command Opcode" start="23" end="28" type="uint" default="2"/>
2885   </instruction>
2886
2887   <instruction name="MI_WAIT_FOR_EVENT" bias="1" length="1">
2888     <field name="Command Type" start="29" end="31" type="uint" default="0"/>
2889     <field name="MI Command Opcode" start="23" end="28" type="uint" default="3"/>
2890     <field name="Display Pipe C Vertical Blank Wait Enable" start="21" end="21" type="bool"/>
2891     <field name="Display Sprite C Flip Pending Wait Enable" start="20" end="20" type="bool"/>
2892     <field name="Display Plane C Flip Pending Wait Enable" start="15" end="15" type="bool"/>
2893     <field name="Display Pipe C Scan Line Wait Enable" start="14" end="14" type="bool"/>
2894     <field name="Display Pipe B Vertical Blank Wait Enable" start="11" end="11" type="bool"/>
2895     <field name="Display Sprite B Flip Pending Wait Enable" start="10" end="10" type="bool"/>
2896     <field name="Display Plane B Flip Pending Wait Enable" start="9" end="9" type="bool"/>
2897     <field name="Display Pipe B Scan Line Wait Enable" start="8" end="8" type="bool"/>
2898     <field name="Display Pipe A Vertical Blank Wait Enable" start="3" end="3" type="bool"/>
2899     <field name="Display Sprite A Flip Pending Wait Enable" start="2" end="2" type="bool"/>
2900     <field name="Display Plane A Flip Pending Wait Enable" start="1" end="1" type="bool"/>
2901     <field name="Display Pipe A Scan Line Wait Enable" start="0" end="0" type="bool"/>
2902   </instruction>
2903
2904   <instruction name="PIPELINE_SELECT" bias="1" length="1">
2905     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2906     <field name="Command SubType" start="27" end="28" type="uint" default="1"/>
2907     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
2908     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="4"/>
2909     <field name="Pipeline Selection" start="0" end="1" type="uint">
2910       <value name="3D" value="0"/>
2911       <value name="Media" value="1"/>
2912       <value name="GPGPU" value="2"/>
2913     </field>
2914   </instruction>
2915
2916   <instruction name="PIPE_CONTROL" bias="2" length="6">
2917     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2918     <field name="Command SubType" start="27" end="28" type="uint" default="3"/>
2919     <field name="3D Command Opcode" start="24" end="26" type="uint" default="2"/>
2920     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="0"/>
2921     <field name="DWord Length" start="0" end="7" type="uint" default="4"/>
2922     <field name="Destination Address Type" start="56" end="56" type="uint" prefix="DAT">
2923       <value name="PPGTT" value="0"/>
2924       <value name="GGTT" value="1"/>
2925     </field>
2926     <field name="LRI Post Sync Operation" start="55" end="55" type="uint">
2927       <value name="No LRI Operation" value="0"/>
2928       <value name="MMIO Write Immediate Data" value="1"/>
2929     </field>
2930     <field name="Store Data Index" start="53" end="53" type="uint"/>
2931     <field name="Command Streamer Stall Enable" start="52" end="52" type="bool"/>
2932     <field name="Global Snapshot Count Reset" start="51" end="51" type="bool"/>
2933     <field name="TLB Invalidate" start="50" end="50" type="bool"/>
2934     <field name="Generic Media State Clear" start="48" end="48" type="bool"/>
2935     <field name="Post Sync Operation" start="46" end="47" type="uint">
2936       <value name="No Write" value="0"/>
2937       <value name="Write Immediate Data" value="1"/>
2938       <value name="Write PS Depth Count" value="2"/>
2939       <value name="Write Timestamp" value="3"/>
2940     </field>
2941     <field name="Depth Stall Enable" start="45" end="45" type="bool"/>
2942     <field name="Render Target Cache Flush Enable" start="44" end="44" type="bool"/>
2943     <field name="Instruction Cache Invalidate Enable" start="43" end="43" type="bool"/>
2944     <field name="Texture Cache Invalidation Enable" start="42" end="42" type="bool"/>
2945     <field name="Indirect State Pointers Disable" start="41" end="41" type="bool"/>
2946     <field name="Notify Enable" start="40" end="40" type="bool"/>
2947     <field name="Pipe Control Flush Enable" start="39" end="39" type="bool"/>
2948     <field name="DC Flush Enable" start="37" end="37" type="bool"/>
2949     <field name="VF Cache Invalidation Enable" start="36" end="36" type="bool"/>
2950     <field name="Constant Cache Invalidation Enable" start="35" end="35" type="bool"/>
2951     <field name="State Cache Invalidation Enable" start="34" end="34" type="bool"/>
2952     <field name="Stall At Pixel Scoreboard" start="33" end="33" type="bool"/>
2953     <field name="Depth Cache Flush Enable" start="32" end="32" type="bool"/>
2954     <field name="Address" start="66" end="111" type="address"/>
2955     <field name="Immediate Data" start="128" end="191" type="uint"/>
2956   </instruction>
2957
2958   <instruction name="STATE_BASE_ADDRESS" bias="2" length="16">
2959     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2960     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
2961     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
2962     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="1"/>
2963     <field name="DWord Length" start="0" end="7" type="uint" default="14"/>
2964     <field name="General State Base Address" start="44" end="95" type="address"/>
2965     <field name="General State Memory Object Control State" start="36" end="42" type="MEMORY_OBJECT_CONTROL_STATE"/>
2966     <field name="General State Base Address Modify Enable" start="32" end="32" type="bool"/>
2967     <field name="Stateless Data Port Access Memory Object Control State" start="112" end="118" type="MEMORY_OBJECT_CONTROL_STATE"/>
2968     <field name="Surface State Base Address" start="140" end="191" type="address"/>
2969     <field name="Surface State Memory Object Control State" start="132" end="138" type="MEMORY_OBJECT_CONTROL_STATE"/>
2970     <field name="Surface State Base Address Modify Enable" start="128" end="128" type="bool"/>
2971     <field name="Dynamic State Base Address" start="204" end="255" type="address"/>
2972     <field name="Dynamic State Memory Object Control State" start="196" end="202" type="MEMORY_OBJECT_CONTROL_STATE"/>
2973     <field name="Dynamic State Base Address Modify Enable" start="192" end="192" type="bool"/>
2974     <field name="Indirect Object Base Address" start="268" end="319" type="address"/>
2975     <field name="Indirect Object Memory Object Control State" start="260" end="266" type="MEMORY_OBJECT_CONTROL_STATE"/>
2976     <field name="Indirect Object Base Address Modify Enable" start="256" end="256" type="bool"/>
2977     <field name="Instruction Base Address" start="332" end="383" type="address"/>
2978     <field name="Instruction Memory Object Control State" start="324" end="330" type="MEMORY_OBJECT_CONTROL_STATE"/>
2979     <field name="Instruction Base Address Modify Enable" start="320" end="320" type="bool"/>
2980     <field name="General State Buffer Size" start="396" end="415" type="uint"/>
2981     <field name="General State Buffer Size Modify Enable" start="384" end="384" type="bool"/>
2982     <field name="Dynamic State Buffer Size" start="428" end="447" type="uint"/>
2983     <field name="Dynamic State Buffer Size Modify Enable" start="416" end="416" type="bool"/>
2984     <field name="Indirect Object Buffer Size" start="460" end="479" type="uint"/>
2985     <field name="Indirect Object Buffer Size Modify Enable" start="448" end="448" type="bool"/>
2986     <field name="Instruction Buffer Size" start="492" end="511" type="uint"/>
2987     <field name="Instruction Buffer size Modify Enable" start="480" end="480" type="bool"/>
2988   </instruction>
2989
2990   <instruction name="STATE_PREFETCH" bias="2" length="2">
2991     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
2992     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
2993     <field name="3D Command Opcode" start="24" end="26" type="uint" default="0"/>
2994     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
2995     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
2996     <field name="Prefetch Pointer" start="38" end="63" type="address"/>
2997     <field name="Prefetch Count" start="32" end="34" type="uint"/>
2998   </instruction>
2999
3000   <instruction name="STATE_SIP" bias="2" length="3">
3001     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
3002     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
3003     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
3004     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="2"/>
3005     <field name="DWord Length" start="0" end="7" type="uint" default="1"/>
3006     <field name="System Instruction Pointer" start="36" end="95" type="offset"/>
3007   </instruction>
3008
3009   <instruction name="SWTESS_BASE_ADDRESS" bias="2" length="2">
3010     <field name="Command Type" start="29" end="31" type="uint" default="3"/>
3011     <field name="Command SubType" start="27" end="28" type="uint" default="0"/>
3012     <field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
3013     <field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="3"/>
3014     <field name="DWord Length" start="0" end="7" type="uint" default="0"/>
3015     <field name="SW Tessellation Base Address" start="44" end="79" type="address"/>
3016     <field name="SW Tessellation Memory Object Control State" start="40" end="43" type="MEMORY_OBJECT_CONTROL_STATE"/>
3017   </instruction>
3018
3019   <register name="IA_VERTICES_COUNT" length="2" num="0x2310">
3020     <field name="IA Vertices Count Report" start="0" end="63" type="uint"/>
3021   </register>
3022
3023   <register name="IA_PRIMITIVES_COUNT" length="2" num="0x2318">
3024     <field name="IA Primitives Count Report" start="0" end="63" type="uint"/>
3025   </register>
3026
3027   <register name="VS_INVOCATION_COUNT" length="2" num="0x2320">
3028     <field name="VS Invocation Count Report" start="0" end="63" type="uint"/>
3029   </register>
3030
3031   <register name="HS_INVOCATION_COUNT" length="2" num="0x2300">
3032     <field name="HS Invocation Count Report" start="0" end="63" type="uint"/>
3033   </register>
3034
3035   <register name="DS_INVOCATION_COUNT" length="2" num="0x2308">
3036     <field name="DS Invocation Count Report" start="0" end="63" type="uint"/>
3037   </register>
3038
3039   <register name="GS_INVOCATION_COUNT" length="2" num="0x2328">
3040     <field name="GS Invocation Count Report" start="0" end="63" type="uint"/>
3041   </register>
3042
3043   <register name="GS_PRIMITIVES_COUNT" length="2" num="0x2330">
3044     <field name="GS Primitives Count Report" start="0" end="63" type="uint"/>
3045   </register>
3046
3047   <register name="CL_INVOCATION_COUNT" length="2" num="0x2338">
3048     <field name="CL Invocation Count Report" start="0" end="63" type="uint"/>
3049   </register>
3050
3051   <register name="CL_PRIMITIVES_COUNT" length="2" num="0x2340">
3052     <field name="CL Primitives Count Report" start="0" end="63" type="uint"/>
3053   </register>
3054
3055   <register name="PS_INVOCATION_COUNT" length="2" num="0x2348">
3056     <field name="PS Invocation Count Report" start="0" end="63" type="uint"/>
3057   </register>
3058
3059   <register name="CS_INVOCATION_COUNT" length="2" num="0x2290">
3060     <field name="CS Invocation Count Report" start="0" end="63" type="uint"/>
3061   </register>
3062
3063   <register name="BCS_INSTDONE" length="1" num="0x2206c">
3064     <field name="Ring Enable" start="0" end="0" type="bool"/>
3065     <field name="Blitter IDLE" start="1" end="1" type="bool" default="1"/>
3066     <field name="GAB IDLE" start="2" end="2" type="bool" default="1"/>
3067     <field name="BCS Done" start="3" end="3" type="bool" default="1"/>
3068   </register>
3069
3070   <register name="INSTDONE_1" length="1" num="0x206c">
3071     <field name="PRB0 Ring Enable" start="0" end="0" type="bool"/>
3072     <field name="VFG Done" start="1" end="1" type="bool"/>
3073     <field name="VS Done" start="2" end="2" type="bool"/>
3074     <field name="HS Done" start="3" end="3" type="bool"/>
3075     <field name="TE Done" start="4" end="4" type="bool"/>
3076     <field name="DS Done" start="5" end="5" type="bool"/>
3077     <field name="GS Done" start="6" end="6" type="bool"/>
3078     <field name="SOL Done" start="7" end="7" type="bool"/>
3079     <field name="CL Done" start="8" end="8" type="bool"/>
3080     <field name="SF Done" start="9" end="9" type="bool"/>
3081     <field name="TDG Done" start="12" end="12" type="bool"/>
3082     <field name="URBM Done" start="13" end="13" type="bool"/>
3083     <field name="SVG Done" start="14" end="14" type="bool"/>
3084     <field name="GAFS Done" start="15" end="15" type="bool"/>
3085     <field name="VFE Done" start="16" end="16" type="bool"/>
3086     <field name="TSG Done" start="17" end="17" type="bool"/>
3087     <field name="GAFM Done" start="18" end="18" type="bool"/>
3088     <field name="GAM Done" start="19" end="19" type="bool"/>
3089     <field name="RS Done" start="20" end="20" type="bool"/>
3090     <field name="CS Done" start="21" end="21" type="bool"/>
3091     <field name="SDE Done" start="22" end="22" type="bool"/>
3092     <field name="RCCFBC CS Done" start="23" end="23" type="bool"/>
3093   </register>
3094
3095   <register name="VCS_INSTDONE" length="1" num="0x1206c">
3096     <field name="Ring Enable" start="0" end="0" type="bool"/>
3097     <field name="USB Done" start="1" end="1" type="bool"/>
3098     <field name="QRC Done" start="2" end="2" type="bool"/>
3099     <field name="SEC Done" start="3" end="3" type="bool"/>
3100     <field name="MPC Done" start="4" end="4" type="bool"/>
3101     <field name="VFT Done" start="5" end="5" type="bool"/>
3102     <field name="BSP Done" start="6" end="6" type="bool"/>
3103     <field name="VLF Done" start="7" end="7" type="bool"/>
3104     <field name="VOP Done" start="8" end="8" type="bool"/>
3105     <field name="VMC Done" start="9" end="9" type="bool"/>
3106     <field name="VIP Done" start="10" end="10" type="bool"/>
3107     <field name="VIT Done" start="11" end="11" type="bool"/>
3108     <field name="VDS Done" start="12" end="12" type="bool"/>
3109     <field name="VMX Done" start="13" end="13" type="bool"/>
3110     <field name="VCP Done" start="14" end="14" type="bool"/>
3111     <field name="VCD Done" start="15" end="15" type="bool"/>
3112     <field name="VAD Done" start="16" end="16" type="bool"/>
3113     <field name="VMD Done" start="17" end="17" type="bool"/>
3114     <field name="VIS Done" start="18" end="18" type="bool"/>
3115     <field name="VAC Done" start="19" end="19" type="bool"/>
3116     <field name="VAM Done" start="20" end="20" type="bool"/>
3117     <field name="JPG Done" start="21" end="21" type="bool"/>
3118     <field name="VBP Done" start="22" end="22" type="bool"/>
3119     <field name="VHR Done" start="23" end="23" type="bool"/>
3120     <field name="VCI Done" start="24" end="24" type="bool"/>
3121     <field name="VCR Done" start="25" end="25" type="bool"/>
3122     <field name="VIN Done" start="26" end="26" type="bool"/>
3123     <field name="VPR Done" start="27" end="27" type="bool"/>
3124     <field name="VTQ Done" start="28" end="28" type="bool"/>
3125     <field name="Reserved" start="29" end="29" type="bool"/>
3126     <field name="VCS Done" start="30" end="30" type="bool"/>
3127     <field name="GAC Done" start="31" end="31" type="bool"/>
3128   </register>
3129
3130   <register name="VECS_INSTDONE" length="1" num="0x1a06c">
3131     <field name="Ring Enable" start="0" end="0" type="bool"/>
3132     <field name="VECS Done" start="30" end="30" type="bool"/>
3133     <field name="GAM Done" start="31" end="31" type="bool"/>
3134   </register>
3135
3136   <register name="SC_INSTDONE" length="1" num="0x7100">
3137     <field name="SVL Done" start="0" end="0" type="bool"/>
3138     <field name="WMFE Done" start="1" end="1" type="bool"/>
3139     <field name="WMBE Done" start="2" end="2" type="bool"/>
3140     <field name="HIZ Done" start="3" end="3" type="bool"/>
3141     <field name="STC Done" start="4" end="4" type="bool"/>
3142     <field name="IZ Done" start="5" end="5" type="bool"/>
3143     <field name="SBE Done" start="6" end="6" type="bool"/>
3144     <field name="RCZ Done" start="8" end="8" type="bool"/>
3145     <field name="RCC Done" start="9" end="9" type="bool"/>
3146     <field name="RCPBE Done" start="10" end="10" type="bool"/>
3147     <field name="RCPFE Done" start="11" end="11" type="bool"/>
3148     <field name="DAPB Done" start="12" end="12" type="bool"/>
3149     <field name="DAPRBE Done" start="13" end="13" type="bool"/>
3150     <field name="SARB Done" start="15" end="15" type="bool"/>
3151     <field name="DC0 Done" start="16" end="16" type="bool"/>
3152     <field name="DC1 Done" start="17" end="17" type="bool"/>
3153     <field name="DC2 Done" start="18" end="18" type="bool"/>
3154     <field name="GW0 Done" start="20" end="20" type="bool"/>
3155     <field name="GW1 Done" start="21" end="21" type="bool"/>
3156     <field name="GW2 Done" start="22" end="22" type="bool"/>
3157     <field name="TDC Done" start="24" end="24" type="bool"/>
3158   </register>
3159
3160   <register name="ROW_INSTDONE" length="1" num="0xe164">
3161     <field name="BC Done" start="0" end="0" type="bool"/>
3162     <field name="PSD Done" start="1" end="1" type="bool"/>
3163     <field name="DAPR Done" start="3" end="3" type="bool"/>
3164     <field name="TDL Done" start="6" end="6" type="bool"/>
3165     <field name="IC Done" start="12" end="12" type="bool"/>
3166     <field name="MA0 Done" start="15" end="15" type="bool"/>
3167     <field name="EU00 Done SS0" start="16" end="16" type="bool"/>
3168     <field name="EU01 Done SS0" start="17" end="17" type="bool"/>
3169     <field name="EU02 Done SS0" start="18" end="18" type="bool"/>
3170     <field name="EU03 Done SS0" start="19" end="19" type="bool"/>
3171     <field name="EU10 Done SS0" start="21" end="21" type="bool"/>
3172     <field name="EU11 Done SS0" start="22" end="22" type="bool"/>
3173     <field name="EU12 Done SS0" start="23" end="23" type="bool"/>
3174     <field name="EU13 Done SS0" start="24" end="24" type="bool"/>
3175     <field name="MA1 Done SS0" start="26" end="26" type="bool"/>
3176   </register>
3177
3178   <register name="SAMPLER_INSTDONE" length="1" num="0xe160">
3179     <field name="IME Done" start="0" end="0" type="bool"/>
3180     <field name="PL0 Done" start="1" end="1" type="bool"/>
3181     <field name="SO0 Done" start="2" end="2" type="bool"/>
3182     <field name="DG0 Done" start="3" end="3" type="bool"/>
3183     <field name="FT0 Done" start="4" end="4" type="bool"/>
3184     <field name="DM0 Done" start="5" end="5" type="bool"/>
3185     <field name="SC Done" start="6" end="6" type="bool"/>
3186     <field name="FL0 Done" start="7" end="7" type="bool"/>
3187     <field name="QC Done" start="8" end="8" type="bool"/>
3188     <field name="SVSM Done" start="9" end="9" type="bool"/>
3189     <field name="SI0 Done" start="10" end="10" type="bool"/>
3190     <field name="MT0 Done" start="11" end="11" type="bool"/>
3191     <field name="AVS Done" start="12" end="12" type="bool"/>
3192     <field name="IEF Done" start="13" end="13" type="bool"/>
3193     <field name="CRE Done" start="14" end="14" type="bool"/>
3194     <field name="SVSM ARB3" start="15" end="15" type="bool"/>
3195     <field name="SVSM ARB2" start="16" end="16" type="bool"/>
3196     <field name="SVSM ARB1" start="17" end="17" type="bool"/>
3197     <field name="SVSM Adapter" start="18" end="18" type="bool"/>
3198     <field name="BDM Done" start="19" end="19" type="bool"/>
3199   </register>
3200
3201   <register name="L3CNTLREG" length="1" num="0x7034">
3202     <field name="SLM Enable" start="0" end="0" type="uint"/>
3203     <field name="URB Allocation" start="1" end="7" type="uint"/>
3204     <field name="RO Allocation" start="11" end="17" type="uint"/>
3205     <field name="DC Allocation" start="18" end="24" type="uint"/>
3206     <field name="All Allocation" start="25" end="31" type="uint"/>
3207   </register>
3208
3209   <register name="SO_WRITE_OFFSET0" length="1" num="0x5280">
3210     <field name="Write Offset" start="2" end="31" type="offset"/>
3211   </register>
3212
3213   <register name="SO_WRITE_OFFSET1" length="1" num="0x5284">
3214     <field name="Write Offset" start="2" end="31" type="offset"/>
3215   </register>
3216
3217   <register name="SO_WRITE_OFFSET2" length="1" num="0x5288">
3218     <field name="Write Offset" start="2" end="31" type="offset"/>
3219   </register>
3220
3221   <register name="SO_WRITE_OFFSET3" length="1" num="0x528c">
3222     <field name="Write Offset" start="2" end="31" type="offset"/>
3223   </register>
3224
3225   <register name="CACHE_MODE_1" length="1" num="0x7004">
3226     <field name="RCZ Read after expansion control fix 2" start="2" end="2" type="bool"/>
3227     <field name="Depth Read Hit Write-Only Optimization Disable" start="3" end="3" type="bool"/>
3228     <field name="MCS Cache Disable" start="5" end="5" type="bool"/>
3229     <field name="4X4 RCPFE-STC Optimization Disable" start="6" end="6" type="bool"/>
3230     <field name="Sampler Cache Set XOR selection" start="7" end="8" type="uint"/>
3231     <field name="NP PMA Fix Enable" start="11" end="11" type="uint"/>
3232     <field name="HIZ Eviction Policy" start="12" end="12" type="uint"/>
3233     <field name="NP Early Z Fails Disable" start="13" end="13" type="uint"/>
3234     <field name="MSC Resolve Optimization Disable" start="14" end="14" type="uint"/>
3235     <field name="RCZ Read after expansion control fix 2 Mask" start="18" end="18" type="bool"/>
3236     <field name="Depth Read Hit Write-Only Optimization Disable Mask" start="19" end="19" type="bool"/>
3237     <field name="MCS Cache Disable Mask" start="21" end="21" type="bool"/>
3238     <field name="4X4 RCPFE-STC Optimization Disable Mask" start="22" end="22" type="bool"/>
3239     <field name="Sampler Cache Set XOR selection Mask" start="23" end="24" type="uint"/>
3240     <field name="NP PMA Fix Enable Mask" start="27" end="27" type="uint"/>
3241     <field name="HIZ Eviction Policy Mask" start="28" end="28" type="uint"/>
3242     <field name="NP Early Z Fails Disable Mask" start="29" end="29" type="uint"/>
3243     <field name="MSC Resolve Optimization Disable Mask" start="30" end="30" type="uint"/>
3244   </register>
3245
3246   <register name="GFX_ARB_ERROR_RPT" length="1" num="0x40a0">
3247     <field name="TLB Page Fault Error" start="0" end="0" type="bool"/>
3248     <field name="RSTRM PAVP Read Invalid" start="1" end="1" type="bool"/>
3249     <field name="Invalid Page Directory Entry Error" start="2" end="2" type="bool"/>
3250     <field name="ROSTRM PAVP Invalid Physical Address" start="3" end="3" type="bool"/>
3251     <field name="TLB Page VTD Translation Error" start="4" end="4" type="bool"/>
3252     <field name="WRDP PAVP Invalid" start="5" end="5" type="bool"/>
3253     <field name="Page Directory Entry VTD Translation Error" start="6" end="6" type="bool"/>
3254     <field name="Unloaded PD Error" start="8" end="8" type="bool"/>
3255     <field name="GuC VTd translation Page Fault 2nd level (Undefined doorbell)" start="9" end="9" type="bool"/>
3256     <field name="Non WB memory type for Advanced Context" start="10" end="10" type="bool"/>
3257     <field name="PASID Not Enabled" start="11" end="11" type="bool"/>
3258     <field name="PASID Boundary Violation" start="12" end="12" type="bool"/>
3259     <field name="PASID Not Valid" start="13" end="13" type="bool"/>
3260     <field name="PASID Was Zero For Untranslated Request" start="14" end="14" type="bool"/>
3261     <field name="Context Was Not Marked As Present When Doing DMA" start="15" end="15" type="bool"/>
3262   </register>
3263
3264   <register name="ACTHD_UDW" length="1" num="0x205c">
3265     <field name="Head Pointer Upper DWORD" start="0" end="15" type="uint" default="0"/>
3266   </register>
3267
3268   <register name="BCS_ACTHD_UDW" length="1" num="0x2205c">
3269     <field name="Head Pointer Upper DWORD" start="0" end="15" type="uint" default="0"/>
3270   </register>
3271
3272   <register name="VCS_ACTHD_UDW" length="1" num="0x1205c">
3273     <field name="Head Pointer Upper DWORD" start="0" end="15" type="uint" default="0"/>
3274   </register>
3275
3276   <register name="VECS_ACTHD_UDW" length="1" num="0x1a05c">
3277     <field name="Head Pointer Upper DWORD" start="0" end="15" type="uint" default="0"/>
3278   </register>
3279
3280   <register name="FAULT_REG" length="1" num="0x4094">
3281     <field name="Valid Bit" start="0" end="0" type="bool"/>
3282     <field name="Fault Type" start="1" end="2" type="uint">
3283       <value name="Invalid PTE Fault" value="0"/>
3284       <value name="Invalid PDE Fault" value="1"/>
3285       <value name="Invalid PDPE Fault" value="2"/>
3286       <value name="Invalid PML4E Fault" value="3"/>
3287     </field>
3288     <field name= "SRCID of Fault" start="3" end="10" type="uint"/>
3289     <field name="GTTSEL" start="11" end="11" type="uint">
3290       <value name="PPGTT" value="0"/>
3291       <value name="GGTT" value="1"/>
3292     </field>
3293     <field name="Engine ID" start="12" end="14" type="uint">
3294       <value name="GFX" value="0"/>
3295       <value name="MFX0" value="1"/>
3296       <value name="MFX1" value="2"/>
3297       <value name="VEBX" value="3"/>
3298       <value name="BLT" value="4"/>
3299       <value name="GUC" value="5"/>
3300     </field>
3301   </register>
3302
3303   <register name="BCS_RING_BUFFER_CTL" length="1" num="0x2203c">
3304     <field name="Ring Buffer Enable" start="0" end="0" type="bool"/>
3305     <field name="Automatic Report Head Pointer" start="1" end="2" type="uint">
3306       <value name="MI_AUTOREPORT_OFF" value="0"/>
3307       <value name="MI_AUTOREPORT_64KB" value="1"/>
3308       <value name="MI_AUTOREPORT_4KB" value="2"/>
3309       <value name="MI_AUTOREPORT_128KB" value="3"/>
3310     </field>
3311     <field name="Disable Register Accesses" start="8" end="8" type="bool"/>
3312     <field name="Semaphore Wait" start="10" end="10" type="bool"/>
3313     <field name="RBWait" start="11" end="11" type="bool"/>
3314     <field name="Buffer Length (in pages - 1)" start="12" end="20" type="uint"/>
3315   </register>
3316
3317   <register name="RCS_RING_BUFFER_CTL" length="1" num="0x203c">
3318     <field name="Ring Buffer Enable" start="0" end="0" type="bool"/>
3319     <field name="Automatic Report Head Pointer" start="1" end="2" type="uint">
3320       <value name="MI_AUTOREPORT_OFF" value="0"/>
3321       <value name="MI_AUTOREPORT_64KB" value="1"/>
3322       <value name="MI_AUTOREPORT_4KB" value="2"/>
3323       <value name="MI_AUTOREPORT_128KB" value="3"/>
3324     </field>
3325     <field name="Semaphore Wait" start="10" end="10" type="bool"/>
3326     <field name="RBWait" start="11" end="11" type="bool"/>
3327     <field name="Buffer Length (in pages - 1)" start="12" end="20" type="uint"/>
3328   </register>
3329
3330   <register name="VECS_RING_BUFFER_CTL" length="1" num="0x1A03c">
3331     <field name="Ring Buffer Enable" start="0" end="0" type="bool"/>
3332     <field name="Automatic Report Head Pointer" start="1" end="2" type="uint">
3333       <value name="MI_AUTOREPORT_OFF" value="0"/>
3334       <value name="MI_AUTOREPORT_64KB" value="1"/>
3335       <value name="MI_AUTOREPORT_4KB" value="2"/>
3336       <value name="MI_AUTOREPORT_128KB" value="3"/>
3337     </field>
3338     <field name="Disable Register Accesses" start="8" end="8" type="bool"/>
3339     <field name="Semaphore Wait" start="10" end="10" type="bool"/>
3340     <field name="RBWait" start="11" end="11" type="bool"/>
3341     <field name="Buffer Length (in pages - 1)" start="12" end="20" type="uint"/>
3342   </register>
3343
3344   <register name="VCS_RING_BUFFER_CTL" length="1" num="0x1203c">
3345     <field name="Ring Buffer Enable" start="0" end="0" type="bool"/>
3346     <field name="Automatic Report Head Pointer" start="1" end="2" type="uint">
3347       <value name="MI_AUTOREPORT_OFF" value="0"/>
3348       <value name="MI_AUTOREPORT_64KB" value="1"/>
3349       <value name="MI_AUTOREPORT_4KB" value="2"/>
3350       <value name="MI_AUTOREPORT_128KB" value="3"/>
3351     </field>
3352     <field name="Disable Register Accesses" start="8" end="8" type="bool"/>
3353     <field name="Semaphore Wait" start="10" end="10" type="bool"/>
3354     <field name="RBWait" start="11" end="11" type="bool"/>
3355     <field name="Buffer Length (in pages - 1)" start="12" end="20" type="uint"/>
3356   </register>
3357
3358   <register name="VCS2_RING_BUFFER_CTL" length="1" num="0x1203c">
3359     <field name="Ring Buffer Enable" start="0" end="0" type="bool"/>
3360     <field name="Automatic Report Head Pointer" start="1" end="2" type="uint">
3361       <value name="MI_AUTOREPORT_OFF" value="0"/>
3362       <value name="MI_AUTOREPORT_64KB" value="1"/>
3363       <value name="MI_AUTOREPORT_4KB" value="2"/>
3364       <value name="MI_AUTOREPORT_128KB" value="3"/>
3365     </field>
3366     <field name="Disable Register Accesses" start="8" end="8" type="bool"/>
3367     <field name="Semaphore Wait" start="10" end="10" type="bool"/>
3368     <field name="RBWait" start="11" end="11" type="bool"/>
3369     <field name="Buffer Length (in pages - 1)" start="12" end="20" type="uint"/>
3370   </register>
3371
3372   <register name="INSTPM" length="1" num="0x20c0">
3373     <field name="3D State Instruction Disable" start="1" end="1" type="bool"/>
3374     <field name="3D Rendering Instruction Disable" start="2" end="2" type="bool"/>
3375     <field name="Media Instruction Disable" start="3" end="3" type="bool"/>
3376     <field name="CONSTANT_BUFFER Address Offset Disable" start="6" end="6" type="bool"/>
3377   </register>
3378
3379 </genxml>