2 * Copyright © 2015 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
25 /* Instructions, enums and structures for IVB.
27 * This file has been generated, do not hand edit.
35 #ifndef __gen_field_functions
36 #define __gen_field_functions
43 static inline uint64_t
44 __gen_field(uint64_t v
, uint32_t start
, uint32_t end
)
47 if (end
- start
+ 1 < 64)
48 assert(v
< 1ul << (end
- start
+ 1));
54 static inline uint64_t
55 __gen_offset(uint64_t v
, uint32_t start
, uint32_t end
)
58 uint64_t mask
= (~0ul >> (64 - (end
- start
+ 1))) << start
;
60 assert((v
& ~mask
) == 0);
66 static inline uint32_t
69 return ((union __gen_value
) { .f
= (v
) }).dw
;
72 #ifndef __gen_address_type
73 #error #define __gen_address_type before including this file
76 #ifndef __gen_user_data
77 #error #define __gen_combine_address before including this file
82 #define GEN7_3DSTATE_URB_VS_length 0x00000002
83 #define GEN7_3DSTATE_URB_VS_length_bias 0x00000002
84 #define GEN7_3DSTATE_URB_VS_header \
86 .CommandSubType = 3, \
87 ._3DCommandOpcode = 0, \
88 ._3DCommandSubOpcode = 48, \
91 struct GEN7_3DSTATE_URB_VS
{
93 uint32_t CommandSubType
;
94 uint32_t _3DCommandOpcode
;
95 uint32_t _3DCommandSubOpcode
;
97 uint32_t VSURBStartingAddress
;
98 uint32_t VSURBEntryAllocationSize
;
99 uint32_t VSNumberofURBEntries
;
103 GEN7_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
104 const struct GEN7_3DSTATE_URB_VS
* restrict values
)
106 uint32_t *dw
= (uint32_t * restrict
) dst
;
109 __gen_field(values
->CommandType
, 29, 31) |
110 __gen_field(values
->CommandSubType
, 27, 28) |
111 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
112 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
113 __gen_field(values
->DwordLength
, 0, 7) |
117 __gen_field(values
->VSURBStartingAddress
, 25, 29) |
118 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
119 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
124 #define GEN7_MI_STORE_REGISTER_MEM_length 0x00000003
125 #define GEN7_MI_STORE_REGISTER_MEM_length_bias 0x00000002
126 #define GEN7_MI_STORE_REGISTER_MEM_header \
128 .MICommandOpcode = 36, \
131 struct GEN7_MI_STORE_REGISTER_MEM
{
132 uint32_t CommandType
;
133 uint32_t MICommandOpcode
;
134 uint32_t UseGlobalGTT
;
135 uint32_t DwordLength
;
136 uint32_t RegisterAddress
;
137 __gen_address_type MemoryAddress
;
141 GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
142 const struct GEN7_MI_STORE_REGISTER_MEM
* restrict values
)
144 uint32_t *dw
= (uint32_t * restrict
) dst
;
147 __gen_field(values
->CommandType
, 29, 31) |
148 __gen_field(values
->MICommandOpcode
, 23, 28) |
149 __gen_field(values
->UseGlobalGTT
, 22, 22) |
150 __gen_field(values
->DwordLength
, 0, 7) |
154 __gen_offset(values
->RegisterAddress
, 2, 22) |
161 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
165 #define GEN7_PIPELINE_SELECT_length 0x00000001
166 #define GEN7_PIPELINE_SELECT_length_bias 0x00000001
167 #define GEN7_PIPELINE_SELECT_header \
169 .CommandSubType = 1, \
170 ._3DCommandOpcode = 1, \
171 ._3DCommandSubOpcode = 4
173 struct GEN7_PIPELINE_SELECT
{
174 uint32_t CommandType
;
175 uint32_t CommandSubType
;
176 uint32_t _3DCommandOpcode
;
177 uint32_t _3DCommandSubOpcode
;
181 uint32_t PipelineSelection
;
185 GEN7_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
186 const struct GEN7_PIPELINE_SELECT
* restrict values
)
188 uint32_t *dw
= (uint32_t * restrict
) dst
;
191 __gen_field(values
->CommandType
, 29, 31) |
192 __gen_field(values
->CommandSubType
, 27, 28) |
193 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
194 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
195 __gen_field(values
->PipelineSelection
, 0, 1) |
200 #define GEN7_STATE_BASE_ADDRESS_length 0x0000000a
201 #define GEN7_STATE_BASE_ADDRESS_length_bias 0x00000002
202 #define GEN7_STATE_BASE_ADDRESS_header \
204 .CommandSubType = 0, \
205 ._3DCommandOpcode = 1, \
206 ._3DCommandSubOpcode = 1, \
209 struct GEN7_STATE_BASE_ADDRESS
{
210 uint32_t CommandType
;
211 uint32_t CommandSubType
;
212 uint32_t _3DCommandOpcode
;
213 uint32_t _3DCommandSubOpcode
;
214 uint32_t DwordLength
;
215 __gen_address_type GeneralStateBaseAddress
;
216 uint32_t GeneralStateMemoryObjectControlState
;
217 uint32_t StatelessDataPortAccessMemoryObjectControlState
;
218 uint32_t StatelessDataPortAccessForceWriteThru
;
219 uint32_t GeneralStateBaseAddressModifyEnable
;
220 __gen_address_type SurfaceStateBaseAddress
;
221 uint32_t SurfaceStateMemoryObjectControlState
;
222 uint32_t SurfaceStateBaseAddressModifyEnable
;
223 __gen_address_type DynamicStateBaseAddress
;
224 uint32_t DynamicStateMemoryObjectControlState
;
225 uint32_t DynamicStateBaseAddressModifyEnable
;
226 __gen_address_type IndirectObjectBaseAddress
;
227 uint32_t IndirectObjectMemoryObjectControlState
;
228 uint32_t IndirectObjectBaseAddressModifyEnable
;
229 __gen_address_type InstructionBaseAddress
;
230 uint32_t InstructionMemoryObjectControlState
;
231 uint32_t InstructionBaseAddressModifyEnable
;
232 __gen_address_type GeneralStateAccessUpperBound
;
233 uint32_t GeneralStateAccessUpperBoundModifyEnable
;
234 __gen_address_type DynamicStateAccessUpperBound
;
235 uint32_t DynamicStateAccessUpperBoundModifyEnable
;
236 __gen_address_type IndirectObjectAccessUpperBound
;
237 uint32_t IndirectObjectAccessUpperBoundModifyEnable
;
238 __gen_address_type InstructionAccessUpperBound
;
239 uint32_t InstructionAccessUpperBoundModifyEnable
;
243 GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
244 const struct GEN7_STATE_BASE_ADDRESS
* restrict values
)
246 uint32_t *dw
= (uint32_t * restrict
) dst
;
249 __gen_field(values
->CommandType
, 29, 31) |
250 __gen_field(values
->CommandSubType
, 27, 28) |
251 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
252 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
253 __gen_field(values
->DwordLength
, 0, 7) |
257 /* Struct GeneralStateMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
258 /* Struct StatelessDataPortAccessMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
259 __gen_field(values
->StatelessDataPortAccessForceWriteThru
, 3, 3) |
260 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
264 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
267 /* Struct SurfaceStateMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
268 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
272 __gen_combine_address(data
, &dw
[2], values
->SurfaceStateBaseAddress
, dw2
);
275 /* Struct DynamicStateMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
276 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
280 __gen_combine_address(data
, &dw
[3], values
->DynamicStateBaseAddress
, dw3
);
283 /* Struct IndirectObjectMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
284 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
288 __gen_combine_address(data
, &dw
[4], values
->IndirectObjectBaseAddress
, dw4
);
291 /* Struct InstructionMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
292 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
296 __gen_combine_address(data
, &dw
[5], values
->InstructionBaseAddress
, dw5
);
299 __gen_field(values
->GeneralStateAccessUpperBoundModifyEnable
, 0, 0) |
303 __gen_combine_address(data
, &dw
[6], values
->GeneralStateAccessUpperBound
, dw6
);
306 __gen_field(values
->DynamicStateAccessUpperBoundModifyEnable
, 0, 0) |
310 __gen_combine_address(data
, &dw
[7], values
->DynamicStateAccessUpperBound
, dw7
);
313 __gen_field(values
->IndirectObjectAccessUpperBoundModifyEnable
, 0, 0) |
317 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectAccessUpperBound
, dw8
);
320 __gen_field(values
->InstructionAccessUpperBoundModifyEnable
, 0, 0) |
324 __gen_combine_address(data
, &dw
[9], values
->InstructionAccessUpperBound
, dw9
);
328 #define GEN7_STATE_PREFETCH_length 0x00000002
329 #define GEN7_STATE_PREFETCH_length_bias 0x00000002
330 #define GEN7_STATE_PREFETCH_header \
332 .CommandSubType = 0, \
333 ._3DCommandOpcode = 0, \
334 ._3DCommandSubOpcode = 3, \
337 struct GEN7_STATE_PREFETCH
{
338 uint32_t CommandType
;
339 uint32_t CommandSubType
;
340 uint32_t _3DCommandOpcode
;
341 uint32_t _3DCommandSubOpcode
;
342 uint32_t DwordLength
;
343 __gen_address_type PrefetchPointer
;
344 uint32_t PrefetchCount
;
348 GEN7_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
349 const struct GEN7_STATE_PREFETCH
* restrict values
)
351 uint32_t *dw
= (uint32_t * restrict
) dst
;
354 __gen_field(values
->CommandType
, 29, 31) |
355 __gen_field(values
->CommandSubType
, 27, 28) |
356 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
357 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
358 __gen_field(values
->DwordLength
, 0, 7) |
362 __gen_field(values
->PrefetchCount
, 0, 2) |
366 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
370 #define GEN7_STATE_SIP_length 0x00000002
371 #define GEN7_STATE_SIP_length_bias 0x00000002
372 #define GEN7_STATE_SIP_header \
374 .CommandSubType = 0, \
375 ._3DCommandOpcode = 1, \
376 ._3DCommandSubOpcode = 2, \
379 struct GEN7_STATE_SIP
{
380 uint32_t CommandType
;
381 uint32_t CommandSubType
;
382 uint32_t _3DCommandOpcode
;
383 uint32_t _3DCommandSubOpcode
;
384 uint32_t DwordLength
;
385 uint32_t SystemInstructionPointer
;
389 GEN7_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
390 const struct GEN7_STATE_SIP
* restrict values
)
392 uint32_t *dw
= (uint32_t * restrict
) dst
;
395 __gen_field(values
->CommandType
, 29, 31) |
396 __gen_field(values
->CommandSubType
, 27, 28) |
397 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
398 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
399 __gen_field(values
->DwordLength
, 0, 7) |
403 __gen_offset(values
->SystemInstructionPointer
, 4, 31) |
408 #define GEN7_SWTESS_BASE_ADDRESS_length 0x00000002
409 #define GEN7_SWTESS_BASE_ADDRESS_length_bias 0x00000002
410 #define GEN7_SWTESS_BASE_ADDRESS_header \
412 .CommandSubType = 0, \
413 ._3DCommandOpcode = 1, \
414 ._3DCommandSubOpcode = 3, \
417 struct GEN7_SWTESS_BASE_ADDRESS
{
418 uint32_t CommandType
;
419 uint32_t CommandSubType
;
420 uint32_t _3DCommandOpcode
;
421 uint32_t _3DCommandSubOpcode
;
422 uint32_t DwordLength
;
423 __gen_address_type SWTessellationBaseAddress
;
424 uint32_t SWTessellationMemoryObjectControlState
;
428 GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
429 const struct GEN7_SWTESS_BASE_ADDRESS
* restrict values
)
431 uint32_t *dw
= (uint32_t * restrict
) dst
;
434 __gen_field(values
->CommandType
, 29, 31) |
435 __gen_field(values
->CommandSubType
, 27, 28) |
436 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
437 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
438 __gen_field(values
->DwordLength
, 0, 7) |
442 /* Struct SWTessellationMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
446 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
450 #define GEN7_3DPRIMITIVE_length 0x00000007
451 #define GEN7_3DPRIMITIVE_length_bias 0x00000002
452 #define GEN7_3DPRIMITIVE_header \
454 .CommandSubType = 3, \
455 ._3DCommandOpcode = 3, \
456 ._3DCommandSubOpcode = 0, \
459 struct GEN7_3DPRIMITIVE
{
460 uint32_t CommandType
;
461 uint32_t CommandSubType
;
462 uint32_t _3DCommandOpcode
;
463 uint32_t _3DCommandSubOpcode
;
464 uint32_t IndirectParameterEnable
;
465 uint32_t PredicateEnable
;
466 uint32_t DwordLength
;
467 uint32_t EndOffsetEnable
;
470 uint32_t VertexAccessType
;
471 uint32_t PrimitiveTopologyType
;
472 uint32_t VertexCountPerInstance
;
473 uint32_t StartVertexLocation
;
474 uint32_t InstanceCount
;
475 uint32_t StartInstanceLocation
;
476 uint32_t BaseVertexLocation
;
480 GEN7_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
481 const struct GEN7_3DPRIMITIVE
* restrict values
)
483 uint32_t *dw
= (uint32_t * restrict
) dst
;
486 __gen_field(values
->CommandType
, 29, 31) |
487 __gen_field(values
->CommandSubType
, 27, 28) |
488 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
489 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
490 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
491 __gen_field(values
->PredicateEnable
, 8, 8) |
492 __gen_field(values
->DwordLength
, 0, 7) |
496 __gen_field(values
->EndOffsetEnable
, 9, 9) |
497 __gen_field(values
->VertexAccessType
, 8, 8) |
498 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
502 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
506 __gen_field(values
->StartVertexLocation
, 0, 31) |
510 __gen_field(values
->InstanceCount
, 0, 31) |
514 __gen_field(values
->StartInstanceLocation
, 0, 31) |
518 __gen_field(values
->BaseVertexLocation
, 0, 31) |
523 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
524 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
525 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_header \
527 .CommandSubType = 3, \
528 ._3DCommandOpcode = 1, \
529 ._3DCommandSubOpcode = 10, \
532 struct GEN7_3DSTATE_AA_LINE_PARAMETERS
{
533 uint32_t CommandType
;
534 uint32_t CommandSubType
;
535 uint32_t _3DCommandOpcode
;
536 uint32_t _3DCommandSubOpcode
;
537 uint32_t DwordLength
;
538 uint32_t AACoverageBias
;
539 uint32_t AACoverageSlope
;
540 uint32_t AACoverageEndCapBias
;
541 uint32_t AACoverageEndCapSlope
;
545 GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
546 const struct GEN7_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
548 uint32_t *dw
= (uint32_t * restrict
) dst
;
551 __gen_field(values
->CommandType
, 29, 31) |
552 __gen_field(values
->CommandSubType
, 27, 28) |
553 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
554 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
555 __gen_field(values
->DwordLength
, 0, 7) |
559 __gen_field(values
->AACoverageBias
, 16, 23) |
560 __gen_field(values
->AACoverageSlope
, 0, 7) |
564 __gen_field(values
->AACoverageEndCapBias
, 16, 23) |
565 __gen_field(values
->AACoverageEndCapSlope
, 0, 7) |
570 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
571 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
572 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
574 .CommandSubType = 3, \
575 ._3DCommandOpcode = 0, \
576 ._3DCommandSubOpcode = 40, \
579 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
{
580 uint32_t CommandType
;
581 uint32_t CommandSubType
;
582 uint32_t _3DCommandOpcode
;
583 uint32_t _3DCommandSubOpcode
;
584 uint32_t DwordLength
;
585 uint32_t PointertoDSBindingTable
;
589 GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
590 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
592 uint32_t *dw
= (uint32_t * restrict
) dst
;
595 __gen_field(values
->CommandType
, 29, 31) |
596 __gen_field(values
->CommandSubType
, 27, 28) |
597 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
598 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
599 __gen_field(values
->DwordLength
, 0, 7) |
603 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
608 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
609 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
610 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
612 .CommandSubType = 3, \
613 ._3DCommandOpcode = 0, \
614 ._3DCommandSubOpcode = 41, \
617 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
{
618 uint32_t CommandType
;
619 uint32_t CommandSubType
;
620 uint32_t _3DCommandOpcode
;
621 uint32_t _3DCommandSubOpcode
;
622 uint32_t DwordLength
;
623 uint32_t PointertoGSBindingTable
;
627 GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
628 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
630 uint32_t *dw
= (uint32_t * restrict
) dst
;
633 __gen_field(values
->CommandType
, 29, 31) |
634 __gen_field(values
->CommandSubType
, 27, 28) |
635 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
636 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
637 __gen_field(values
->DwordLength
, 0, 7) |
641 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
646 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
647 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
648 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
650 .CommandSubType = 3, \
651 ._3DCommandOpcode = 0, \
652 ._3DCommandSubOpcode = 39, \
655 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
{
656 uint32_t CommandType
;
657 uint32_t CommandSubType
;
658 uint32_t _3DCommandOpcode
;
659 uint32_t _3DCommandSubOpcode
;
660 uint32_t DwordLength
;
661 uint32_t PointertoHSBindingTable
;
665 GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
666 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
668 uint32_t *dw
= (uint32_t * restrict
) dst
;
671 __gen_field(values
->CommandType
, 29, 31) |
672 __gen_field(values
->CommandSubType
, 27, 28) |
673 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
674 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
675 __gen_field(values
->DwordLength
, 0, 7) |
679 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
684 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
685 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
686 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
688 .CommandSubType = 3, \
689 ._3DCommandOpcode = 0, \
690 ._3DCommandSubOpcode = 42, \
693 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
{
694 uint32_t CommandType
;
695 uint32_t CommandSubType
;
696 uint32_t _3DCommandOpcode
;
697 uint32_t _3DCommandSubOpcode
;
698 uint32_t DwordLength
;
699 uint32_t PointertoPSBindingTable
;
703 GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
704 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
706 uint32_t *dw
= (uint32_t * restrict
) dst
;
709 __gen_field(values
->CommandType
, 29, 31) |
710 __gen_field(values
->CommandSubType
, 27, 28) |
711 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
712 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
713 __gen_field(values
->DwordLength
, 0, 7) |
717 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
722 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
723 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
724 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
726 .CommandSubType = 3, \
727 ._3DCommandOpcode = 0, \
728 ._3DCommandSubOpcode = 38, \
731 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
{
732 uint32_t CommandType
;
733 uint32_t CommandSubType
;
734 uint32_t _3DCommandOpcode
;
735 uint32_t _3DCommandSubOpcode
;
736 uint32_t DwordLength
;
737 uint32_t PointertoVSBindingTable
;
741 GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
742 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
744 uint32_t *dw
= (uint32_t * restrict
) dst
;
747 __gen_field(values
->CommandType
, 29, 31) |
748 __gen_field(values
->CommandSubType
, 27, 28) |
749 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
750 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
751 __gen_field(values
->DwordLength
, 0, 7) |
755 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
760 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
761 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
762 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_header\
764 .CommandSubType = 3, \
765 ._3DCommandOpcode = 0, \
766 ._3DCommandSubOpcode = 36, \
769 struct GEN7_3DSTATE_BLEND_STATE_POINTERS
{
770 uint32_t CommandType
;
771 uint32_t CommandSubType
;
772 uint32_t _3DCommandOpcode
;
773 uint32_t _3DCommandSubOpcode
;
774 uint32_t DwordLength
;
775 uint32_t BlendStatePointer
;
779 GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
780 const struct GEN7_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
782 uint32_t *dw
= (uint32_t * restrict
) dst
;
785 __gen_field(values
->CommandType
, 29, 31) |
786 __gen_field(values
->CommandSubType
, 27, 28) |
787 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
788 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
789 __gen_field(values
->DwordLength
, 0, 7) |
793 __gen_offset(values
->BlendStatePointer
, 6, 31) |
798 #define GEN7_3DSTATE_CC_STATE_POINTERS_length 0x00000002
799 #define GEN7_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
800 #define GEN7_3DSTATE_CC_STATE_POINTERS_header \
802 .CommandSubType = 3, \
803 ._3DCommandOpcode = 0, \
804 ._3DCommandSubOpcode = 14, \
807 struct GEN7_3DSTATE_CC_STATE_POINTERS
{
808 uint32_t CommandType
;
809 uint32_t CommandSubType
;
810 uint32_t _3DCommandOpcode
;
811 uint32_t _3DCommandSubOpcode
;
812 uint32_t DwordLength
;
813 uint32_t ColorCalcStatePointer
;
817 GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
818 const struct GEN7_3DSTATE_CC_STATE_POINTERS
* restrict values
)
820 uint32_t *dw
= (uint32_t * restrict
) dst
;
823 __gen_field(values
->CommandType
, 29, 31) |
824 __gen_field(values
->CommandSubType
, 27, 28) |
825 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
826 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
827 __gen_field(values
->DwordLength
, 0, 7) |
831 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
836 #define GEN7_3DSTATE_CHROMA_KEY_length 0x00000004
837 #define GEN7_3DSTATE_CHROMA_KEY_length_bias 0x00000002
838 #define GEN7_3DSTATE_CHROMA_KEY_header \
840 .CommandSubType = 3, \
841 ._3DCommandOpcode = 1, \
842 ._3DCommandSubOpcode = 4, \
845 struct GEN7_3DSTATE_CHROMA_KEY
{
846 uint32_t CommandType
;
847 uint32_t CommandSubType
;
848 uint32_t _3DCommandOpcode
;
849 uint32_t _3DCommandSubOpcode
;
850 uint32_t DwordLength
;
851 uint32_t ChromaKeyTableIndex
;
852 uint32_t ChromaKeyLowValue
;
853 uint32_t ChromaKeyHighValue
;
857 GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
858 const struct GEN7_3DSTATE_CHROMA_KEY
* restrict values
)
860 uint32_t *dw
= (uint32_t * restrict
) dst
;
863 __gen_field(values
->CommandType
, 29, 31) |
864 __gen_field(values
->CommandSubType
, 27, 28) |
865 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
866 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
867 __gen_field(values
->DwordLength
, 0, 7) |
871 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
875 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
879 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
884 #define GEN7_3DSTATE_CLEAR_PARAMS_length 0x00000003
885 #define GEN7_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
886 #define GEN7_3DSTATE_CLEAR_PARAMS_header \
888 .CommandSubType = 3, \
889 ._3DCommandOpcode = 0, \
890 ._3DCommandSubOpcode = 4, \
893 struct GEN7_3DSTATE_CLEAR_PARAMS
{
894 uint32_t CommandType
;
895 uint32_t CommandSubType
;
896 uint32_t _3DCommandOpcode
;
897 uint32_t _3DCommandSubOpcode
;
898 uint32_t DwordLength
;
899 uint32_t DepthClearValue
;
900 uint32_t DepthClearValueValid
;
904 GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
905 const struct GEN7_3DSTATE_CLEAR_PARAMS
* restrict values
)
907 uint32_t *dw
= (uint32_t * restrict
) dst
;
910 __gen_field(values
->CommandType
, 29, 31) |
911 __gen_field(values
->CommandSubType
, 27, 28) |
912 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
913 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
914 __gen_field(values
->DwordLength
, 0, 7) |
918 __gen_field(values
->DepthClearValue
, 0, 31) |
922 __gen_field(values
->DepthClearValueValid
, 0, 0) |
927 #define GEN7_3DSTATE_CLIP_length 0x00000004
928 #define GEN7_3DSTATE_CLIP_length_bias 0x00000002
929 #define GEN7_3DSTATE_CLIP_header \
931 .CommandSubType = 3, \
932 ._3DCommandOpcode = 0, \
933 ._3DCommandSubOpcode = 18, \
936 struct GEN7_3DSTATE_CLIP
{
937 uint32_t CommandType
;
938 uint32_t CommandSubType
;
939 uint32_t _3DCommandOpcode
;
940 uint32_t _3DCommandSubOpcode
;
941 uint32_t DwordLength
;
942 uint32_t FrontWinding
;
943 uint32_t VertexSubPixelPrecisionSelect
;
944 uint32_t EarlyCullEnable
;
945 #define CULLMODE_BOTH 0
946 #define CULLMODE_NONE 1
947 #define CULLMODE_FRONT 2
948 #define CULLMODE_BACK 3
950 uint32_t ClipperStatisticsEnable
;
951 uint32_t UserClipDistanceCullTestEnableBitmask
;
953 #define APIMODE_OGL 0
955 uint32_t ViewportXYClipTestEnable
;
956 uint32_t ViewportZClipTestEnable
;
957 uint32_t GuardbandClipTestEnable
;
958 uint32_t UserClipDistanceClipTestEnableBitmask
;
959 #define CLIPMODE_NORMAL 0
960 #define CLIPMODE_REJECT_ALL 3
961 #define CLIPMODE_ACCEPT_ALL 4
963 uint32_t PerspectiveDivideDisable
;
964 uint32_t NonPerspectiveBarycentricEnable
;
968 uint32_t TriangleStripListProvokingVertexSelect
;
971 uint32_t LineStripListProvokingVertexSelect
;
975 uint32_t TriangleFanProvokingVertexSelect
;
976 uint32_t MinimumPointWidth
;
977 uint32_t MaximumPointWidth
;
978 uint32_t ForceZeroRTAIndexEnable
;
979 uint32_t MaximumVPIndex
;
983 GEN7_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
984 const struct GEN7_3DSTATE_CLIP
* restrict values
)
986 uint32_t *dw
= (uint32_t * restrict
) dst
;
989 __gen_field(values
->CommandType
, 29, 31) |
990 __gen_field(values
->CommandSubType
, 27, 28) |
991 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
992 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
993 __gen_field(values
->DwordLength
, 0, 7) |
997 __gen_field(values
->FrontWinding
, 20, 20) |
998 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
999 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1000 __gen_field(values
->CullMode
, 16, 17) |
1001 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1002 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1006 __gen_field(values
->ClipEnable
, 31, 31) |
1007 __gen_field(values
->APIMode
, 30, 30) |
1008 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1009 __gen_field(values
->ViewportZClipTestEnable
, 27, 27) |
1010 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1011 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1012 __gen_field(values
->ClipMode
, 13, 15) |
1013 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1014 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1015 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1016 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1017 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1021 __gen_field(values
->MinimumPointWidth
, 17, 27) |
1022 __gen_field(values
->MaximumPointWidth
, 6, 16) |
1023 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1024 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1029 #define GEN7_3DSTATE_CONSTANT_DS_length 0x00000007
1030 #define GEN7_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1031 #define GEN7_3DSTATE_CONSTANT_DS_header \
1033 .CommandSubType = 3, \
1034 ._3DCommandOpcode = 0, \
1035 ._3DCommandSubOpcode = 26, \
1038 struct GEN7_3DSTATE_CONSTANT_DS
{
1039 uint32_t CommandType
;
1040 uint32_t CommandSubType
;
1041 uint32_t _3DCommandOpcode
;
1042 uint32_t _3DCommandSubOpcode
;
1043 uint32_t DwordLength
;
1044 uint32_t ConstantBody
;
1048 GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1049 const struct GEN7_3DSTATE_CONSTANT_DS
* restrict values
)
1051 uint32_t *dw
= (uint32_t * restrict
) dst
;
1054 __gen_field(values
->CommandType
, 29, 31) |
1055 __gen_field(values
->CommandSubType
, 27, 28) |
1056 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1057 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1058 __gen_field(values
->DwordLength
, 0, 7) |
1062 /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
1067 #define GEN7_3DSTATE_CONSTANT_GS_length 0x00000007
1068 #define GEN7_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1069 #define GEN7_3DSTATE_CONSTANT_GS_header \
1071 .CommandSubType = 3, \
1072 ._3DCommandOpcode = 0, \
1073 ._3DCommandSubOpcode = 22, \
1076 struct GEN7_3DSTATE_CONSTANT_GS
{
1077 uint32_t CommandType
;
1078 uint32_t CommandSubType
;
1079 uint32_t _3DCommandOpcode
;
1080 uint32_t _3DCommandSubOpcode
;
1081 uint32_t DwordLength
;
1082 uint32_t ConstantBody
;
1086 GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1087 const struct GEN7_3DSTATE_CONSTANT_GS
* restrict values
)
1089 uint32_t *dw
= (uint32_t * restrict
) dst
;
1092 __gen_field(values
->CommandType
, 29, 31) |
1093 __gen_field(values
->CommandSubType
, 27, 28) |
1094 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1095 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1096 __gen_field(values
->DwordLength
, 0, 7) |
1100 /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
1105 #define GEN7_3DSTATE_CONSTANT_HS_length 0x00000007
1106 #define GEN7_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1107 #define GEN7_3DSTATE_CONSTANT_HS_header \
1109 .CommandSubType = 3, \
1110 ._3DCommandOpcode = 0, \
1111 ._3DCommandSubOpcode = 25, \
1114 struct GEN7_3DSTATE_CONSTANT_HS
{
1115 uint32_t CommandType
;
1116 uint32_t CommandSubType
;
1117 uint32_t _3DCommandOpcode
;
1118 uint32_t _3DCommandSubOpcode
;
1119 uint32_t DwordLength
;
1120 uint32_t ConstantBody
;
1124 GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1125 const struct GEN7_3DSTATE_CONSTANT_HS
* restrict values
)
1127 uint32_t *dw
= (uint32_t * restrict
) dst
;
1130 __gen_field(values
->CommandType
, 29, 31) |
1131 __gen_field(values
->CommandSubType
, 27, 28) |
1132 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1133 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1134 __gen_field(values
->DwordLength
, 0, 7) |
1138 /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
1143 #define GEN7_3DSTATE_CONSTANT_PS_length 0x00000007
1144 #define GEN7_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1145 #define GEN7_3DSTATE_CONSTANT_PS_header \
1147 .CommandSubType = 3, \
1148 ._3DCommandOpcode = 0, \
1149 ._3DCommandSubOpcode = 23, \
1152 struct GEN7_3DSTATE_CONSTANT_PS
{
1153 uint32_t CommandType
;
1154 uint32_t CommandSubType
;
1155 uint32_t _3DCommandOpcode
;
1156 uint32_t _3DCommandSubOpcode
;
1157 uint32_t DwordLength
;
1158 uint32_t ConstantBody
;
1162 GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1163 const struct GEN7_3DSTATE_CONSTANT_PS
* restrict values
)
1165 uint32_t *dw
= (uint32_t * restrict
) dst
;
1168 __gen_field(values
->CommandType
, 29, 31) |
1169 __gen_field(values
->CommandSubType
, 27, 28) |
1170 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1171 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1172 __gen_field(values
->DwordLength
, 0, 7) |
1176 /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
1181 #define GEN7_3DSTATE_CONSTANT_VS_length 0x00000007
1182 #define GEN7_3DSTATE_CONSTANT_VS_length_bias 0x00000002
1183 #define GEN7_3DSTATE_CONSTANT_VS_header \
1185 .CommandSubType = 3, \
1186 ._3DCommandOpcode = 0, \
1187 ._3DCommandSubOpcode = 21, \
1190 struct GEN7_3DSTATE_CONSTANT_VS
{
1191 uint32_t CommandType
;
1192 uint32_t CommandSubType
;
1193 uint32_t _3DCommandOpcode
;
1194 uint32_t _3DCommandSubOpcode
;
1195 uint32_t DwordLength
;
1196 uint32_t ConstantBody
;
1200 GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1201 const struct GEN7_3DSTATE_CONSTANT_VS
* restrict values
)
1203 uint32_t *dw
= (uint32_t * restrict
) dst
;
1206 __gen_field(values
->CommandType
, 29, 31) |
1207 __gen_field(values
->CommandSubType
, 27, 28) |
1208 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1209 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1210 __gen_field(values
->DwordLength
, 0, 7) |
1214 /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
1219 #define GEN7_3DSTATE_DEPTH_BUFFER_length 0x00000007
1220 #define GEN7_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
1221 #define GEN7_3DSTATE_DEPTH_BUFFER_header \
1223 .CommandSubType = 3, \
1224 ._3DCommandOpcode = 0, \
1225 ._3DCommandSubOpcode = 5, \
1228 struct GEN7_3DSTATE_DEPTH_BUFFER
{
1229 uint32_t CommandType
;
1230 uint32_t CommandSubType
;
1231 uint32_t _3DCommandOpcode
;
1232 uint32_t _3DCommandSubOpcode
;
1233 uint32_t DwordLength
;
1234 #define SURFTYPE_1D 0
1235 #define SURFTYPE_2D 1
1236 #define SURFTYPE_3D 2
1237 #define SURFTYPE_CUBE 3
1238 #define SURFTYPE_NULL 7
1239 uint32_t SurfaceType
;
1240 uint32_t DepthWriteEnable
;
1241 uint32_t StencilWriteEnable
;
1242 uint32_t HierarchicalDepthBufferEnable
;
1244 #define D24_UNORM_X8_UINT 3
1246 uint32_t SurfaceFormat
;
1247 uint32_t SurfacePitch
;
1248 __gen_address_type SurfaceBaseAddress
;
1252 #define SURFTYPE_CUBEmustbezero 0
1254 uint32_t MinimumArrayElement
;
1255 uint32_t DepthBufferObjectControlState
;
1256 uint32_t DepthCoordinateOffsetY
;
1257 uint32_t DepthCoordinateOffsetX
;
1258 uint32_t RenderTargetViewExtent
;
1262 GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1263 const struct GEN7_3DSTATE_DEPTH_BUFFER
* restrict values
)
1265 uint32_t *dw
= (uint32_t * restrict
) dst
;
1268 __gen_field(values
->CommandType
, 29, 31) |
1269 __gen_field(values
->CommandSubType
, 27, 28) |
1270 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1271 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1272 __gen_field(values
->DwordLength
, 0, 7) |
1276 __gen_field(values
->SurfaceType
, 29, 31) |
1277 __gen_field(values
->DepthWriteEnable
, 28, 28) |
1278 __gen_field(values
->StencilWriteEnable
, 27, 27) |
1279 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
1280 __gen_field(values
->SurfaceFormat
, 18, 20) |
1281 __gen_field(values
->SurfacePitch
, 0, 17) |
1288 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1291 __gen_field(values
->Height
, 18, 31) |
1292 __gen_field(values
->Width
, 4, 17) |
1293 __gen_field(values
->LOD
, 0, 3) |
1297 __gen_field(values
->Depth
, 21, 31) |
1298 __gen_field(values
->MinimumArrayElement
, 10, 20) |
1299 /* Struct DepthBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
1303 __gen_field(values
->DepthCoordinateOffsetY
, 16, 31) |
1304 __gen_field(values
->DepthCoordinateOffsetX
, 0, 15) |
1308 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
1313 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
1314 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002
1315 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\
1317 .CommandSubType = 3, \
1318 ._3DCommandOpcode = 0, \
1319 ._3DCommandSubOpcode = 37, \
1322 struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
{
1323 uint32_t CommandType
;
1324 uint32_t CommandSubType
;
1325 uint32_t _3DCommandOpcode
;
1326 uint32_t _3DCommandSubOpcode
;
1327 uint32_t DwordLength
;
1328 uint32_t PointertoDEPTH_STENCIL_STATE
;
1332 GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1333 const struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
* restrict values
)
1335 uint32_t *dw
= (uint32_t * restrict
) dst
;
1338 __gen_field(values
->CommandType
, 29, 31) |
1339 __gen_field(values
->CommandSubType
, 27, 28) |
1340 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1341 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1342 __gen_field(values
->DwordLength
, 0, 7) |
1346 __gen_offset(values
->PointertoDEPTH_STENCIL_STATE
, 6, 31) |
1351 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
1352 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
1353 #define GEN7_3DSTATE_DRAWING_RECTANGLE_header \
1355 .CommandSubType = 3, \
1356 ._3DCommandOpcode = 1, \
1357 ._3DCommandSubOpcode = 0, \
1360 struct GEN7_3DSTATE_DRAWING_RECTANGLE
{
1361 uint32_t CommandType
;
1362 uint32_t CommandSubType
;
1363 uint32_t _3DCommandOpcode
;
1364 uint32_t _3DCommandSubOpcode
;
1365 uint32_t DwordLength
;
1366 uint32_t ClippedDrawingRectangleYMin
;
1367 uint32_t ClippedDrawingRectangleXMin
;
1368 uint32_t ClippedDrawingRectangleYMax
;
1369 uint32_t ClippedDrawingRectangleXMax
;
1370 uint32_t DrawingRectangleOriginY
;
1371 uint32_t DrawingRectangleOriginX
;
1375 GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
1376 const struct GEN7_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
1378 uint32_t *dw
= (uint32_t * restrict
) dst
;
1381 __gen_field(values
->CommandType
, 29, 31) |
1382 __gen_field(values
->CommandSubType
, 27, 28) |
1383 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1384 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1385 __gen_field(values
->DwordLength
, 0, 7) |
1389 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
1390 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
1394 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
1395 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
1399 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
1400 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
1405 #define GEN7_3DSTATE_DS_length 0x00000006
1406 #define GEN7_3DSTATE_DS_length_bias 0x00000002
1407 #define GEN7_3DSTATE_DS_header \
1409 .CommandSubType = 3, \
1410 ._3DCommandOpcode = 0, \
1411 ._3DCommandSubOpcode = 29, \
1414 struct GEN7_3DSTATE_DS
{
1415 uint32_t CommandType
;
1416 uint32_t CommandSubType
;
1417 uint32_t _3DCommandOpcode
;
1418 uint32_t _3DCommandSubOpcode
;
1419 uint32_t DwordLength
;
1420 uint32_t KernelStartPointer
;
1423 uint32_t SingleDomainPointDispatch
;
1426 uint32_t VectorMaskEnable
;
1427 #define NoSamplers 0
1428 #define _14Samplers 1
1429 #define _58Samplers 2
1430 #define _912Samplers 3
1431 #define _1316Samplers 4
1432 uint32_t SamplerCount
;
1433 uint32_t BindingTableEntryCount
;
1436 uint32_t FloatingPointMode
;
1437 uint32_t IllegalOpcodeExceptionEnable
;
1438 uint32_t SoftwareExceptionEnable
;
1439 uint32_t ScratchSpaceBasePointer
;
1440 uint32_t PerThreadScratchSpace
;
1441 uint32_t DispatchGRFStartRegisterForURBData
;
1442 uint32_t PatchURBEntryReadLength
;
1443 uint32_t PatchURBEntryReadOffset
;
1444 uint32_t MaximumNumberofThreads
;
1445 uint32_t StatisticsEnable
;
1446 uint32_t ComputeWCoordinateEnable
;
1447 uint32_t DSCacheDisable
;
1448 uint32_t DSFunctionEnable
;
1452 GEN7_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1453 const struct GEN7_3DSTATE_DS
* restrict values
)
1455 uint32_t *dw
= (uint32_t * restrict
) dst
;
1458 __gen_field(values
->CommandType
, 29, 31) |
1459 __gen_field(values
->CommandSubType
, 27, 28) |
1460 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1461 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1462 __gen_field(values
->DwordLength
, 0, 7) |
1466 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1470 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
1471 __gen_field(values
->VectorMaskEnable
, 30, 30) |
1472 __gen_field(values
->SamplerCount
, 27, 29) |
1473 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1474 __gen_field(values
->FloatingPointMode
, 16, 16) |
1475 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1476 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1480 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1481 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1485 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
1486 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
1487 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
1491 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1492 __gen_field(values
->StatisticsEnable
, 10, 10) |
1493 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
1494 __gen_field(values
->DSCacheDisable
, 1, 1) |
1495 __gen_field(values
->DSFunctionEnable
, 0, 0) |
1500 #define GEN7_3DSTATE_GS_length 0x00000007
1501 #define GEN7_3DSTATE_GS_length_bias 0x00000002
1502 #define GEN7_3DSTATE_GS_header \
1504 .CommandSubType = 3, \
1505 ._3DCommandOpcode = 0, \
1506 ._3DCommandSubOpcode = 17, \
1509 struct GEN7_3DSTATE_GS
{
1510 uint32_t CommandType
;
1511 uint32_t CommandSubType
;
1512 uint32_t _3DCommandOpcode
;
1513 uint32_t _3DCommandSubOpcode
;
1514 uint32_t DwordLength
;
1515 uint32_t KernelStartPointer
;
1516 uint32_t SingleProgramFlowSPF
;
1519 uint32_t VectorMaskEnableVME
;
1520 #define NoSamplers 0
1521 #define _14Samplers 1
1522 #define _58Samplers 2
1523 #define _912Samplers 3
1524 #define _1316Samplers 4
1525 uint32_t SamplerCount
;
1526 uint32_t BindingTableEntryCount
;
1527 #define NormalPriority 0
1528 #define HighPriority 1
1529 uint32_t ThreadPriority
;
1532 uint32_t FloatingPointMode
;
1533 uint32_t IllegalOpcodeExceptionEnable
;
1534 uint32_t MaskStackExceptionEnable
;
1535 uint32_t SoftwareExceptionEnable
;
1536 uint32_t ScratchSpaceBasePointer
;
1537 uint32_t PerThreadScratchSpace
;
1538 uint32_t OutputVertexSize
;
1539 uint32_t OutputTopology
;
1540 uint32_t VertexURBEntryReadLength
;
1541 uint32_t IncludeVertexHandles
;
1542 uint32_t VertexURBEntryReadOffset
;
1543 uint32_t DispatchGRFStartRegisterforURBData
;
1544 uint32_t MaximumNumberofThreads
;
1547 uint32_t ControlDataFormat
;
1548 uint32_t ControlDataHeaderSize
;
1549 uint32_t InstanceControl
;
1550 uint32_t DefaultStreamID
;
1552 #define DUAL_INSTANCE 1
1553 #define DUAL_OBJECT 2
1554 uint32_t DispatchMode
;
1555 uint32_t GSStatisticsEnable
;
1556 uint32_t GSInvocationsIncrementValue
;
1557 uint32_t IncludePrimitiveID
;
1559 uint32_t ReorderEnable
;
1560 uint32_t DiscardAdjacency
;
1562 uint32_t SemaphoreHandle
;
1566 GEN7_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1567 const struct GEN7_3DSTATE_GS
* restrict values
)
1569 uint32_t *dw
= (uint32_t * restrict
) dst
;
1572 __gen_field(values
->CommandType
, 29, 31) |
1573 __gen_field(values
->CommandSubType
, 27, 28) |
1574 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1575 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1576 __gen_field(values
->DwordLength
, 0, 7) |
1580 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1584 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
1585 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
1586 __gen_field(values
->SamplerCount
, 27, 29) |
1587 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1588 __gen_field(values
->ThreadPriority
, 17, 17) |
1589 __gen_field(values
->FloatingPointMode
, 16, 16) |
1590 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1591 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
1592 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1596 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1597 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1601 __gen_field(values
->OutputVertexSize
, 23, 28) |
1602 __gen_field(values
->OutputTopology
, 17, 22) |
1603 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1604 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
1605 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1606 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 0, 3) |
1610 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1611 __gen_field(values
->ControlDataFormat
, 24, 24) |
1612 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
1613 __gen_field(values
->InstanceControl
, 15, 19) |
1614 __gen_field(values
->DefaultStreamID
, 13, 14) |
1615 __gen_field(values
->DispatchMode
, 11, 12) |
1616 __gen_field(values
->GSStatisticsEnable
, 10, 10) |
1617 __gen_field(values
->GSInvocationsIncrementValue
, 5, 9) |
1618 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
1619 __gen_field(values
->Hint
, 3, 3) |
1620 __gen_field(values
->ReorderEnable
, 2, 2) |
1621 __gen_field(values
->DiscardAdjacency
, 1, 1) |
1622 __gen_field(values
->GSEnable
, 0, 0) |
1626 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1631 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
1632 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
1633 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_header \
1635 .CommandSubType = 3, \
1636 ._3DCommandOpcode = 0, \
1637 ._3DCommandSubOpcode = 7, \
1640 struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
{
1641 uint32_t CommandType
;
1642 uint32_t CommandSubType
;
1643 uint32_t _3DCommandOpcode
;
1644 uint32_t _3DCommandSubOpcode
;
1645 uint32_t DwordLength
;
1646 uint32_t HierarchicalDepthBufferObjectControlState
;
1647 uint32_t SurfacePitch
;
1648 __gen_address_type SurfaceBaseAddress
;
1652 GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1653 const struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
1655 uint32_t *dw
= (uint32_t * restrict
) dst
;
1658 __gen_field(values
->CommandType
, 29, 31) |
1659 __gen_field(values
->CommandSubType
, 27, 28) |
1660 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1661 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1662 __gen_field(values
->DwordLength
, 0, 7) |
1666 /* Struct HierarchicalDepthBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
1667 __gen_field(values
->SurfacePitch
, 0, 16) |
1674 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1678 #define GEN7_3DSTATE_HS_length 0x00000007
1679 #define GEN7_3DSTATE_HS_length_bias 0x00000002
1680 #define GEN7_3DSTATE_HS_header \
1682 .CommandSubType = 3, \
1683 ._3DCommandOpcode = 0, \
1684 ._3DCommandSubOpcode = 27, \
1687 struct GEN7_3DSTATE_HS
{
1688 uint32_t CommandType
;
1689 uint32_t CommandSubType
;
1690 uint32_t _3DCommandOpcode
;
1691 uint32_t _3DCommandSubOpcode
;
1692 uint32_t DwordLength
;
1693 #define NoSamplers 0
1694 #define _14Samplers 1
1695 #define _58Samplers 2
1696 #define _912Samplers 3
1697 #define _1316Samplers 4
1698 uint32_t SamplerCount
;
1699 uint32_t BindingTableEntryCount
;
1702 uint32_t FloatingPointMode
;
1703 uint32_t IllegalOpcodeExceptionEnable
;
1704 uint32_t SoftwareExceptionEnable
;
1705 uint32_t MaximumNumberofThreads
;
1707 uint32_t StatisticsEnable
;
1708 uint32_t InstanceCount
;
1709 uint32_t KernelStartPointer
;
1710 uint32_t ScratchSpaceBasePointer
;
1711 uint32_t PerThreadScratchSpace
;
1712 uint32_t SingleProgramFlow
;
1715 uint32_t VectorMaskEnable
;
1716 uint32_t IncludeVertexHandles
;
1717 uint32_t DispatchGRFStartRegisterForURBData
;
1718 uint32_t VertexURBEntryReadLength
;
1719 uint32_t VertexURBEntryReadOffset
;
1720 uint32_t SemaphoreHandle
;
1724 GEN7_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1725 const struct GEN7_3DSTATE_HS
* restrict values
)
1727 uint32_t *dw
= (uint32_t * restrict
) dst
;
1730 __gen_field(values
->CommandType
, 29, 31) |
1731 __gen_field(values
->CommandSubType
, 27, 28) |
1732 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1733 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1734 __gen_field(values
->DwordLength
, 0, 7) |
1738 __gen_field(values
->SamplerCount
, 27, 29) |
1739 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1740 __gen_field(values
->FloatingPointMode
, 16, 16) |
1741 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1742 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1743 __gen_field(values
->MaximumNumberofThreads
, 0, 6) |
1747 __gen_field(values
->Enable
, 31, 31) |
1748 __gen_field(values
->StatisticsEnable
, 29, 29) |
1749 __gen_field(values
->InstanceCount
, 0, 3) |
1753 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1757 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1758 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1762 __gen_field(values
->SingleProgramFlow
, 27, 27) |
1763 __gen_field(values
->VectorMaskEnable
, 26, 26) |
1764 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
1765 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
1766 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1767 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1771 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1776 #define GEN7_3DSTATE_INDEX_BUFFER_length 0x00000003
1777 #define GEN7_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
1778 #define GEN7_3DSTATE_INDEX_BUFFER_header \
1780 .CommandSubType = 3, \
1781 ._3DCommandOpcode = 0, \
1782 ._3DCommandSubOpcode = 10, \
1785 struct GEN7_3DSTATE_INDEX_BUFFER
{
1786 uint32_t CommandType
;
1787 uint32_t CommandSubType
;
1788 uint32_t _3DCommandOpcode
;
1789 uint32_t _3DCommandSubOpcode
;
1790 uint32_t MemoryObjectControlState
;
1791 uint32_t CutIndexEnable
;
1792 #define INDEX_BYTE 0
1793 #define INDEX_WORD 1
1794 #define INDEX_DWORD 2
1795 uint32_t IndexFormat
;
1796 uint32_t DwordLength
;
1797 __gen_address_type BufferStartingAddress
;
1798 __gen_address_type BufferEndingAddress
;
1802 GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1803 const struct GEN7_3DSTATE_INDEX_BUFFER
* restrict values
)
1805 uint32_t *dw
= (uint32_t * restrict
) dst
;
1808 __gen_field(values
->CommandType
, 29, 31) |
1809 __gen_field(values
->CommandSubType
, 27, 28) |
1810 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1811 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1812 /* Struct MemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
1813 __gen_field(values
->CutIndexEnable
, 10, 10) |
1814 __gen_field(values
->IndexFormat
, 8, 9) |
1815 __gen_field(values
->DwordLength
, 0, 7) |
1822 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
1828 __gen_combine_address(data
, &dw
[2], values
->BufferEndingAddress
, dw2
);
1832 #define GEN7_3DSTATE_LINE_STIPPLE_length 0x00000003
1833 #define GEN7_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
1834 #define GEN7_3DSTATE_LINE_STIPPLE_header \
1836 .CommandSubType = 3, \
1837 ._3DCommandOpcode = 1, \
1838 ._3DCommandSubOpcode = 8, \
1841 struct GEN7_3DSTATE_LINE_STIPPLE
{
1842 uint32_t CommandType
;
1843 uint32_t CommandSubType
;
1844 uint32_t _3DCommandOpcode
;
1845 uint32_t _3DCommandSubOpcode
;
1846 uint32_t DwordLength
;
1847 uint32_t ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
1848 uint32_t CurrentRepeatCounter
;
1849 uint32_t CurrentStippleIndex
;
1850 uint32_t LineStipplePattern
;
1851 uint32_t LineStippleInverseRepeatCount
;
1852 uint32_t LineStippleRepeatCount
;
1856 GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
1857 const struct GEN7_3DSTATE_LINE_STIPPLE
* restrict values
)
1859 uint32_t *dw
= (uint32_t * restrict
) dst
;
1862 __gen_field(values
->CommandType
, 29, 31) |
1863 __gen_field(values
->CommandSubType
, 27, 28) |
1864 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1865 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1866 __gen_field(values
->DwordLength
, 0, 7) |
1870 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
1871 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
1872 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
1873 __gen_field(values
->LineStipplePattern
, 0, 15) |
1877 __gen_field(values
->LineStippleInverseRepeatCount
, 15, 31) |
1878 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
1883 #define GEN7_3DSTATE_MONOFILTER_SIZE_length 0x00000002
1884 #define GEN7_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
1885 #define GEN7_3DSTATE_MONOFILTER_SIZE_header \
1887 .CommandSubType = 3, \
1888 ._3DCommandOpcode = 1, \
1889 ._3DCommandSubOpcode = 17, \
1892 struct GEN7_3DSTATE_MONOFILTER_SIZE
{
1893 uint32_t CommandType
;
1894 uint32_t CommandSubType
;
1895 uint32_t _3DCommandOpcode
;
1896 uint32_t _3DCommandSubOpcode
;
1897 uint32_t DwordLength
;
1898 uint32_t MonochromeFilterWidth
;
1899 uint32_t MonochromeFilterHeight
;
1903 GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
1904 const struct GEN7_3DSTATE_MONOFILTER_SIZE
* restrict values
)
1906 uint32_t *dw
= (uint32_t * restrict
) dst
;
1909 __gen_field(values
->CommandType
, 29, 31) |
1910 __gen_field(values
->CommandSubType
, 27, 28) |
1911 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1912 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1913 __gen_field(values
->DwordLength
, 0, 7) |
1917 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
1918 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
1923 #define GEN7_3DSTATE_MULTISAMPLE_length 0x00000004
1924 #define GEN7_3DSTATE_MULTISAMPLE_length_bias 0x00000002
1925 #define GEN7_3DSTATE_MULTISAMPLE_header \
1927 .CommandSubType = 3, \
1928 ._3DCommandOpcode = 1, \
1929 ._3DCommandSubOpcode = 13, \
1932 struct GEN7_3DSTATE_MULTISAMPLE
{
1933 uint32_t CommandType
;
1934 uint32_t CommandSubType
;
1935 uint32_t _3DCommandOpcode
;
1936 uint32_t _3DCommandSubOpcode
;
1937 uint32_t DwordLength
;
1938 #define PIXLOC_CENTER 0
1939 #define PIXLOC_UL_CORNER 1
1940 uint32_t PixelLocation
;
1941 #define NUMSAMPLES_1 0
1942 #define NUMSAMPLES_4 2
1943 #define NUMSAMPLES_8 3
1944 uint32_t NumberofMultisamples
;
1945 uint32_t Sample3XOffset
;
1946 uint32_t Sample3YOffset
;
1947 uint32_t Sample2XOffset
;
1948 uint32_t Sample2YOffset
;
1949 uint32_t Sample1XOffset
;
1950 uint32_t Sample1YOffset
;
1951 uint32_t Sample0XOffset
;
1952 uint32_t Sample0YOffset
;
1953 uint32_t Sample7XOffset
;
1954 uint32_t Sample7YOffset
;
1955 uint32_t Sample6XOffset
;
1956 uint32_t Sample6YOffset
;
1957 uint32_t Sample5XOffset
;
1958 uint32_t Sample5YOffset
;
1959 uint32_t Sample4XOffset
;
1960 uint32_t Sample4YOffset
;
1964 GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
1965 const struct GEN7_3DSTATE_MULTISAMPLE
* restrict values
)
1967 uint32_t *dw
= (uint32_t * restrict
) dst
;
1970 __gen_field(values
->CommandType
, 29, 31) |
1971 __gen_field(values
->CommandSubType
, 27, 28) |
1972 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1973 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1974 __gen_field(values
->DwordLength
, 0, 7) |
1978 __gen_field(values
->PixelLocation
, 4, 4) |
1979 __gen_field(values
->NumberofMultisamples
, 1, 3) |
1983 __gen_field(values
->Sample3XOffset
, 28, 31) |
1984 __gen_field(values
->Sample3YOffset
, 24, 27) |
1985 __gen_field(values
->Sample2XOffset
, 20, 23) |
1986 __gen_field(values
->Sample2YOffset
, 16, 19) |
1987 __gen_field(values
->Sample1XOffset
, 12, 15) |
1988 __gen_field(values
->Sample1YOffset
, 8, 11) |
1989 __gen_field(values
->Sample0XOffset
, 4, 7) |
1990 __gen_field(values
->Sample0YOffset
, 0, 3) |
1994 __gen_field(values
->Sample7XOffset
, 28, 31) |
1995 __gen_field(values
->Sample7YOffset
, 24, 27) |
1996 __gen_field(values
->Sample6XOffset
, 20, 23) |
1997 __gen_field(values
->Sample6YOffset
, 16, 19) |
1998 __gen_field(values
->Sample5XOffset
, 12, 15) |
1999 __gen_field(values
->Sample5YOffset
, 8, 11) |
2000 __gen_field(values
->Sample4XOffset
, 4, 7) |
2001 __gen_field(values
->Sample4YOffset
, 0, 3) |
2006 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
2007 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
2008 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_header \
2010 .CommandSubType = 3, \
2011 ._3DCommandOpcode = 1, \
2012 ._3DCommandSubOpcode = 6, \
2015 struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
{
2016 uint32_t CommandType
;
2017 uint32_t CommandSubType
;
2018 uint32_t _3DCommandOpcode
;
2019 uint32_t _3DCommandSubOpcode
;
2020 uint32_t DwordLength
;
2021 uint32_t PolygonStippleXOffset
;
2022 uint32_t PolygonStippleYOffset
;
2026 GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
2027 const struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
2029 uint32_t *dw
= (uint32_t * restrict
) dst
;
2032 __gen_field(values
->CommandType
, 29, 31) |
2033 __gen_field(values
->CommandSubType
, 27, 28) |
2034 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2035 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2036 __gen_field(values
->DwordLength
, 0, 7) |
2040 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
2041 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
2046 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
2047 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
2048 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_header\
2050 .CommandSubType = 3, \
2051 ._3DCommandOpcode = 1, \
2052 ._3DCommandSubOpcode = 7, \
2055 struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
{
2056 uint32_t CommandType
;
2057 uint32_t CommandSubType
;
2058 uint32_t _3DCommandOpcode
;
2059 uint32_t _3DCommandSubOpcode
;
2060 uint32_t DwordLength
;
2061 uint32_t PatternRow
;
2065 GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
2066 const struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
2068 uint32_t *dw
= (uint32_t * restrict
) dst
;
2071 __gen_field(values
->CommandType
, 29, 31) |
2072 __gen_field(values
->CommandSubType
, 27, 28) |
2073 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2074 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2075 __gen_field(values
->DwordLength
, 0, 7) |
2079 __gen_field(values
->PatternRow
, 0, 31) |
2084 #define GEN7_3DSTATE_PS_length 0x00000008
2085 #define GEN7_3DSTATE_PS_length_bias 0x00000002
2086 #define GEN7_3DSTATE_PS_header \
2088 .CommandSubType = 3, \
2089 ._3DCommandOpcode = 0, \
2090 ._3DCommandSubOpcode = 32, \
2093 struct GEN7_3DSTATE_PS
{
2094 uint32_t CommandType
;
2095 uint32_t CommandSubType
;
2096 uint32_t _3DCommandOpcode
;
2097 uint32_t _3DCommandSubOpcode
;
2098 uint32_t DwordLength
;
2099 uint32_t KernelStartPointer0
;
2102 uint32_t SingleProgramFlowSPF
;
2105 uint32_t VectorMaskEnableVME
;
2106 uint32_t SamplerCount
;
2109 uint32_t DenormalMode
;
2110 uint32_t BindingTableEntryCount
;
2113 uint32_t FloatingPointMode
;
2118 uint32_t RoundingMode
;
2119 uint32_t IllegalOpcodeExceptionEnable
;
2120 uint32_t MaskStackExceptionEnable
;
2121 uint32_t SoftwareExceptionEnable
;
2122 uint32_t ScratchSpaceBasePointer
;
2123 uint32_t PerThreadScratchSpace
;
2124 uint32_t MaximumNumberofThreads
;
2125 uint32_t PushConstantEnable
;
2126 uint32_t AttributeEnable
;
2127 uint32_t oMaskPresenttoRenderTarget
;
2128 uint32_t RenderTargetFastClearEnable
;
2129 uint32_t DualSourceBlendEnable
;
2130 uint32_t RenderTargetResolveEnable
;
2131 #define POSOFFSET_NONE 0
2132 #define POSOFFSET_CENTROID 2
2133 #define POSOFFSET_SAMPLE 3
2134 uint32_t PositionXYOffsetSelect
;
2135 uint32_t _32PixelDispatchEnable
;
2136 uint32_t _16PixelDispatchEnable
;
2137 uint32_t _8PixelDispatchEnable
;
2138 uint32_t DispatchGRFStartRegisterforConstantSetupData0
;
2139 uint32_t DispatchGRFStartRegisterforConstantSetupData1
;
2140 uint32_t DispatchGRFStartRegisterforConstantSetupData2
;
2141 uint32_t KernelStartPointer1
;
2142 uint32_t KernelStartPointer2
;
2146 GEN7_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2147 const struct GEN7_3DSTATE_PS
* restrict values
)
2149 uint32_t *dw
= (uint32_t * restrict
) dst
;
2152 __gen_field(values
->CommandType
, 29, 31) |
2153 __gen_field(values
->CommandSubType
, 27, 28) |
2154 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2155 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2156 __gen_field(values
->DwordLength
, 0, 7) |
2160 __gen_offset(values
->KernelStartPointer0
, 6, 31) |
2164 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
2165 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
2166 __gen_field(values
->SamplerCount
, 27, 29) |
2167 __gen_field(values
->DenormalMode
, 26, 26) |
2168 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2169 __gen_field(values
->FloatingPointMode
, 16, 16) |
2170 __gen_field(values
->RoundingMode
, 14, 15) |
2171 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2172 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2173 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2177 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
2178 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2182 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2183 __gen_field(values
->PushConstantEnable
, 11, 11) |
2184 __gen_field(values
->AttributeEnable
, 10, 10) |
2185 __gen_field(values
->oMaskPresenttoRenderTarget
, 9, 9) |
2186 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
2187 __gen_field(values
->DualSourceBlendEnable
, 7, 7) |
2188 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
2189 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
2190 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
2191 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
2192 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
2196 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData0
, 16, 22) |
2197 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData1
, 8, 14) |
2198 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData2
, 0, 6) |
2202 __gen_offset(values
->KernelStartPointer1
, 6, 31) |
2206 __gen_offset(values
->KernelStartPointer2
, 6, 31) |
2211 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
2212 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
2213 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
2215 .CommandSubType = 3, \
2216 ._3DCommandOpcode = 1, \
2217 ._3DCommandSubOpcode = 20, \
2220 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
2221 uint32_t CommandType
;
2222 uint32_t CommandSubType
;
2223 uint32_t _3DCommandOpcode
;
2224 uint32_t _3DCommandSubOpcode
;
2225 uint32_t DwordLength
;
2227 uint32_t ConstantBufferOffset
;
2229 uint32_t ConstantBufferSize
;
2233 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2234 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
2236 uint32_t *dw
= (uint32_t * restrict
) dst
;
2239 __gen_field(values
->CommandType
, 29, 31) |
2240 __gen_field(values
->CommandSubType
, 27, 28) |
2241 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2242 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2243 __gen_field(values
->DwordLength
, 0, 7) |
2247 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2248 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2253 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
2254 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
2255 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
2257 .CommandSubType = 3, \
2258 ._3DCommandOpcode = 1, \
2259 ._3DCommandSubOpcode = 21, \
2262 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
2263 uint32_t CommandType
;
2264 uint32_t CommandSubType
;
2265 uint32_t _3DCommandOpcode
;
2266 uint32_t _3DCommandSubOpcode
;
2267 uint32_t DwordLength
;
2269 uint32_t ConstantBufferOffset
;
2271 uint32_t ConstantBufferSize
;
2275 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2276 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
2278 uint32_t *dw
= (uint32_t * restrict
) dst
;
2281 __gen_field(values
->CommandType
, 29, 31) |
2282 __gen_field(values
->CommandSubType
, 27, 28) |
2283 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2284 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2285 __gen_field(values
->DwordLength
, 0, 7) |
2289 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2290 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2295 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
2296 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
2297 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
2299 .CommandSubType = 3, \
2300 ._3DCommandOpcode = 1, \
2301 ._3DCommandSubOpcode = 19, \
2304 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
2305 uint32_t CommandType
;
2306 uint32_t CommandSubType
;
2307 uint32_t _3DCommandOpcode
;
2308 uint32_t _3DCommandSubOpcode
;
2309 uint32_t DwordLength
;
2311 uint32_t ConstantBufferOffset
;
2313 uint32_t ConstantBufferSize
;
2317 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2318 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
2320 uint32_t *dw
= (uint32_t * restrict
) dst
;
2323 __gen_field(values
->CommandType
, 29, 31) |
2324 __gen_field(values
->CommandSubType
, 27, 28) |
2325 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2326 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2327 __gen_field(values
->DwordLength
, 0, 7) |
2331 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2332 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2337 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
2338 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
2339 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
2341 .CommandSubType = 3, \
2342 ._3DCommandOpcode = 1, \
2343 ._3DCommandSubOpcode = 22, \
2346 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
2347 uint32_t CommandType
;
2348 uint32_t CommandSubType
;
2349 uint32_t _3DCommandOpcode
;
2350 uint32_t _3DCommandSubOpcode
;
2351 uint32_t DwordLength
;
2353 uint32_t ConstantBufferOffset
;
2355 uint32_t ConstantBufferSize
;
2359 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2360 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
2362 uint32_t *dw
= (uint32_t * restrict
) dst
;
2365 __gen_field(values
->CommandType
, 29, 31) |
2366 __gen_field(values
->CommandSubType
, 27, 28) |
2367 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2368 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2369 __gen_field(values
->DwordLength
, 0, 7) |
2373 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2374 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2379 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
2380 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
2381 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
2383 .CommandSubType = 3, \
2384 ._3DCommandOpcode = 1, \
2385 ._3DCommandSubOpcode = 18, \
2388 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
2389 uint32_t CommandType
;
2390 uint32_t CommandSubType
;
2391 uint32_t _3DCommandOpcode
;
2392 uint32_t _3DCommandSubOpcode
;
2393 uint32_t DwordLength
;
2395 uint32_t ConstantBufferOffset
;
2397 uint32_t ConstantBufferSize
;
2401 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2402 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
2404 uint32_t *dw
= (uint32_t * restrict
) dst
;
2407 __gen_field(values
->CommandType
, 29, 31) |
2408 __gen_field(values
->CommandSubType
, 27, 28) |
2409 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2410 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2411 __gen_field(values
->DwordLength
, 0, 7) |
2415 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2416 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2421 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
2422 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
2424 .CommandSubType = 3, \
2425 ._3DCommandOpcode = 1, \
2426 ._3DCommandSubOpcode = 2
2428 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
{
2429 uint32_t CommandType
;
2430 uint32_t CommandSubType
;
2431 uint32_t _3DCommandOpcode
;
2432 uint32_t _3DCommandSubOpcode
;
2433 uint32_t DwordLength
;
2434 /* variable length fields follow */
2438 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
2439 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
2441 uint32_t *dw
= (uint32_t * restrict
) dst
;
2444 __gen_field(values
->CommandType
, 29, 31) |
2445 __gen_field(values
->CommandSubType
, 27, 28) |
2446 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2447 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2448 __gen_field(values
->DwordLength
, 0, 7) |
2451 /* variable length fields follow */
2454 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
2455 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
2457 .CommandSubType = 3, \
2458 ._3DCommandOpcode = 1, \
2459 ._3DCommandSubOpcode = 12
2461 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
{
2462 uint32_t CommandType
;
2463 uint32_t CommandSubType
;
2464 uint32_t _3DCommandOpcode
;
2465 uint32_t _3DCommandSubOpcode
;
2466 uint32_t DwordLength
;
2467 /* variable length fields follow */
2471 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
2472 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
2474 uint32_t *dw
= (uint32_t * restrict
) dst
;
2477 __gen_field(values
->CommandType
, 29, 31) |
2478 __gen_field(values
->CommandSubType
, 27, 28) |
2479 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2480 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2481 __gen_field(values
->DwordLength
, 0, 7) |
2484 /* variable length fields follow */
2487 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
2488 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
2489 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
2491 .CommandSubType = 3, \
2492 ._3DCommandOpcode = 0, \
2493 ._3DCommandSubOpcode = 45, \
2496 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
2497 uint32_t CommandType
;
2498 uint32_t CommandSubType
;
2499 uint32_t _3DCommandOpcode
;
2500 uint32_t _3DCommandSubOpcode
;
2501 uint32_t DwordLength
;
2502 uint32_t PointertoDSSamplerState
;
2506 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2507 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
2509 uint32_t *dw
= (uint32_t * restrict
) dst
;
2512 __gen_field(values
->CommandType
, 29, 31) |
2513 __gen_field(values
->CommandSubType
, 27, 28) |
2514 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2515 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2516 __gen_field(values
->DwordLength
, 0, 7) |
2520 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
2525 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
2526 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
2527 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
2529 .CommandSubType = 3, \
2530 ._3DCommandOpcode = 0, \
2531 ._3DCommandSubOpcode = 46, \
2534 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
2535 uint32_t CommandType
;
2536 uint32_t CommandSubType
;
2537 uint32_t _3DCommandOpcode
;
2538 uint32_t _3DCommandSubOpcode
;
2539 uint32_t DwordLength
;
2540 uint32_t PointertoGSSamplerState
;
2544 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2545 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
2547 uint32_t *dw
= (uint32_t * restrict
) dst
;
2550 __gen_field(values
->CommandType
, 29, 31) |
2551 __gen_field(values
->CommandSubType
, 27, 28) |
2552 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2553 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2554 __gen_field(values
->DwordLength
, 0, 7) |
2558 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
2563 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
2564 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
2565 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
2567 .CommandSubType = 3, \
2568 ._3DCommandOpcode = 0, \
2569 ._3DCommandSubOpcode = 44, \
2572 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
2573 uint32_t CommandType
;
2574 uint32_t CommandSubType
;
2575 uint32_t _3DCommandOpcode
;
2576 uint32_t _3DCommandSubOpcode
;
2577 uint32_t DwordLength
;
2578 uint32_t PointertoHSSamplerState
;
2582 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2583 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
2585 uint32_t *dw
= (uint32_t * restrict
) dst
;
2588 __gen_field(values
->CommandType
, 29, 31) |
2589 __gen_field(values
->CommandSubType
, 27, 28) |
2590 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2591 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2592 __gen_field(values
->DwordLength
, 0, 7) |
2596 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
2601 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
2602 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
2603 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
2605 .CommandSubType = 3, \
2606 ._3DCommandOpcode = 0, \
2607 ._3DCommandSubOpcode = 47, \
2610 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
2611 uint32_t CommandType
;
2612 uint32_t CommandSubType
;
2613 uint32_t _3DCommandOpcode
;
2614 uint32_t _3DCommandSubOpcode
;
2615 uint32_t DwordLength
;
2616 uint32_t PointertoPSSamplerState
;
2620 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2621 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
2623 uint32_t *dw
= (uint32_t * restrict
) dst
;
2626 __gen_field(values
->CommandType
, 29, 31) |
2627 __gen_field(values
->CommandSubType
, 27, 28) |
2628 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2629 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2630 __gen_field(values
->DwordLength
, 0, 7) |
2634 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
2639 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
2640 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
2641 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
2643 .CommandSubType = 3, \
2644 ._3DCommandOpcode = 0, \
2645 ._3DCommandSubOpcode = 43, \
2648 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
2649 uint32_t CommandType
;
2650 uint32_t CommandSubType
;
2651 uint32_t _3DCommandOpcode
;
2652 uint32_t _3DCommandSubOpcode
;
2653 uint32_t DwordLength
;
2654 uint32_t PointertoVSSamplerState
;
2658 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2659 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
2661 uint32_t *dw
= (uint32_t * restrict
) dst
;
2664 __gen_field(values
->CommandType
, 29, 31) |
2665 __gen_field(values
->CommandSubType
, 27, 28) |
2666 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2667 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2668 __gen_field(values
->DwordLength
, 0, 7) |
2672 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
2677 #define GEN7_3DSTATE_SAMPLE_MASK_length 0x00000002
2678 #define GEN7_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
2679 #define GEN7_3DSTATE_SAMPLE_MASK_header \
2681 .CommandSubType = 3, \
2682 ._3DCommandOpcode = 0, \
2683 ._3DCommandSubOpcode = 24, \
2686 struct GEN7_3DSTATE_SAMPLE_MASK
{
2687 uint32_t CommandType
;
2688 uint32_t CommandSubType
;
2689 uint32_t _3DCommandOpcode
;
2690 uint32_t _3DCommandSubOpcode
;
2691 uint32_t DwordLength
;
2692 uint32_t SampleMask
;
2696 GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
2697 const struct GEN7_3DSTATE_SAMPLE_MASK
* restrict values
)
2699 uint32_t *dw
= (uint32_t * restrict
) dst
;
2702 __gen_field(values
->CommandType
, 29, 31) |
2703 __gen_field(values
->CommandSubType
, 27, 28) |
2704 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2705 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2706 __gen_field(values
->DwordLength
, 0, 7) |
2710 __gen_field(values
->SampleMask
, 0, 7) |
2715 #define GEN7_3DSTATE_SBE_length 0x0000000e
2716 #define GEN7_3DSTATE_SBE_length_bias 0x00000002
2717 #define GEN7_3DSTATE_SBE_header \
2719 .CommandSubType = 3, \
2720 ._3DCommandOpcode = 0, \
2721 ._3DCommandSubOpcode = 31, \
2724 struct GEN7_3DSTATE_SBE
{
2725 uint32_t CommandType
;
2726 uint32_t CommandSubType
;
2727 uint32_t _3DCommandOpcode
;
2728 uint32_t _3DCommandSubOpcode
;
2729 uint32_t DwordLength
;
2731 #define SWIZ_16_31 1
2732 uint32_t AttributeSwizzleControlMode
;
2733 uint32_t NumberofSFOutputAttributes
;
2734 uint32_t AttributeSwizzleEnable
;
2737 uint32_t PointSpriteTextureCoordinateOrigin
;
2738 uint32_t VertexURBEntryReadLength
;
2739 uint32_t VertexURBEntryReadOffset
;
2740 uint32_t Attribute2n1ComponentOverrideW
;
2741 uint32_t Attribute2n1ComponentOverrideZ
;
2742 uint32_t Attribute2n1ComponentOverrideY
;
2743 uint32_t Attribute2n1ComponentOverrideX
;
2744 #define CONST_0000 0
2745 #define CONST_0001_FLOAT 1
2746 #define CONST_1111_FLOAT 2
2748 uint32_t Attribute2n1ConstantSource
;
2750 #define INPUTATTR_FACING 1
2751 #define INPUTATTR_W 2
2752 #define INPUTATTR_FACING_W 3
2753 uint32_t Attribute2n1SwizzleSelect
;
2754 uint32_t Attribute2n1SourceAttribute
;
2755 uint32_t Attribute2nComponentOverrideW
;
2756 uint32_t Attribute2nComponentOverrideZ
;
2757 uint32_t Attribute2nComponentOverrideY
;
2758 uint32_t Attribute2nComponentOverrideX
;
2759 #define CONST_0000 0
2760 #define CONST_0001_FLOAT 1
2761 #define CONST_1111_FLOAT 2
2763 uint32_t Attribute2nConstantSource
;
2765 #define INPUTATTR_FACING 1
2766 #define INPUTATTR_W 2
2767 #define INPUTATTR_FACING_W 3
2768 uint32_t Attribute2nSwizzleSelect
;
2769 uint32_t Attribute2nSourceAttribute
;
2770 uint32_t PointSpriteTextureCoordinateEnable
;
2771 uint32_t ConstantInterpolationEnable310
;
2772 uint32_t Attribute7WrapShortestEnables
;
2773 uint32_t Attribute6WrapShortestEnables
;
2774 uint32_t Attribute5WrapShortestEnables
;
2775 uint32_t Attribute4WrapShortestEnables
;
2776 uint32_t Attribute3WrapShortestEnables
;
2777 uint32_t Attribute2WrapShortestEnables
;
2778 uint32_t Attribute1WrapShortestEnables
;
2779 uint32_t Attribute0WrapShortestEnables
;
2780 uint32_t Attribute15WrapShortestEnables
;
2781 uint32_t Attribute14WrapShortestEnables
;
2782 uint32_t Attribute13WrapShortestEnables
;
2783 uint32_t Attribute12WrapShortestEnables
;
2784 uint32_t Attribute11WrapShortestEnables
;
2785 uint32_t Attribute10WrapShortestEnables
;
2786 uint32_t Attribute9WrapShortestEnables
;
2787 uint32_t Attribute8WrapShortestEnables
;
2791 GEN7_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
2792 const struct GEN7_3DSTATE_SBE
* restrict values
)
2794 uint32_t *dw
= (uint32_t * restrict
) dst
;
2797 __gen_field(values
->CommandType
, 29, 31) |
2798 __gen_field(values
->CommandSubType
, 27, 28) |
2799 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2800 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2801 __gen_field(values
->DwordLength
, 0, 7) |
2805 __gen_field(values
->AttributeSwizzleControlMode
, 28, 28) |
2806 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
2807 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
2808 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
2809 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
2810 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2814 __gen_field(values
->Attribute2n1ComponentOverrideW
, 31, 31) |
2815 __gen_field(values
->Attribute2n1ComponentOverrideZ
, 30, 30) |
2816 __gen_field(values
->Attribute2n1ComponentOverrideY
, 29, 29) |
2817 __gen_field(values
->Attribute2n1ComponentOverrideX
, 28, 28) |
2818 __gen_field(values
->Attribute2n1ConstantSource
, 25, 26) |
2819 __gen_field(values
->Attribute2n1SwizzleSelect
, 22, 23) |
2820 __gen_field(values
->Attribute2n1SourceAttribute
, 16, 20) |
2821 __gen_field(values
->Attribute2nComponentOverrideW
, 15, 15) |
2822 __gen_field(values
->Attribute2nComponentOverrideZ
, 14, 14) |
2823 __gen_field(values
->Attribute2nComponentOverrideY
, 13, 13) |
2824 __gen_field(values
->Attribute2nComponentOverrideX
, 12, 12) |
2825 __gen_field(values
->Attribute2nConstantSource
, 9, 10) |
2826 __gen_field(values
->Attribute2nSwizzleSelect
, 6, 7) |
2827 __gen_field(values
->Attribute2nSourceAttribute
, 0, 4) |
2831 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
2835 __gen_field(values
->ConstantInterpolationEnable310
, 0, 31) |
2839 __gen_field(values
->Attribute7WrapShortestEnables
, 28, 31) |
2840 __gen_field(values
->Attribute6WrapShortestEnables
, 24, 27) |
2841 __gen_field(values
->Attribute5WrapShortestEnables
, 20, 23) |
2842 __gen_field(values
->Attribute4WrapShortestEnables
, 16, 19) |
2843 __gen_field(values
->Attribute3WrapShortestEnables
, 12, 15) |
2844 __gen_field(values
->Attribute2WrapShortestEnables
, 8, 11) |
2845 __gen_field(values
->Attribute1WrapShortestEnables
, 4, 7) |
2846 __gen_field(values
->Attribute0WrapShortestEnables
, 0, 3) |
2850 __gen_field(values
->Attribute15WrapShortestEnables
, 28, 31) |
2851 __gen_field(values
->Attribute14WrapShortestEnables
, 24, 27) |
2852 __gen_field(values
->Attribute13WrapShortestEnables
, 20, 23) |
2853 __gen_field(values
->Attribute12WrapShortestEnables
, 16, 19) |
2854 __gen_field(values
->Attribute11WrapShortestEnables
, 12, 15) |
2855 __gen_field(values
->Attribute10WrapShortestEnables
, 8, 11) |
2856 __gen_field(values
->Attribute9WrapShortestEnables
, 4, 7) |
2857 __gen_field(values
->Attribute8WrapShortestEnables
, 0, 3) |
2862 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
2863 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
2864 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_header\
2866 .CommandSubType = 3, \
2867 ._3DCommandOpcode = 0, \
2868 ._3DCommandSubOpcode = 15, \
2871 struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
{
2872 uint32_t CommandType
;
2873 uint32_t CommandSubType
;
2874 uint32_t _3DCommandOpcode
;
2875 uint32_t _3DCommandSubOpcode
;
2876 uint32_t DwordLength
;
2877 uint32_t ScissorRectPointer
;
2881 GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
2882 const struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
2884 uint32_t *dw
= (uint32_t * restrict
) dst
;
2887 __gen_field(values
->CommandType
, 29, 31) |
2888 __gen_field(values
->CommandSubType
, 27, 28) |
2889 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2890 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2891 __gen_field(values
->DwordLength
, 0, 7) |
2895 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
2900 #define GEN7_3DSTATE_SF_length 0x00000007
2901 #define GEN7_3DSTATE_SF_length_bias 0x00000002
2902 #define GEN7_3DSTATE_SF_header \
2904 .CommandSubType = 3, \
2905 ._3DCommandOpcode = 0, \
2906 ._3DCommandSubOpcode = 19, \
2909 struct GEN7_3DSTATE_SF
{
2910 uint32_t CommandType
;
2911 uint32_t CommandSubType
;
2912 uint32_t _3DCommandOpcode
;
2913 uint32_t _3DCommandSubOpcode
;
2914 uint32_t DwordLength
;
2915 #define D32_FLOAT_S8X24_UINT 0
2917 #define D24_UNORM_S8_UINT 2
2918 #define D24_UNORM_X8_UINT 3
2920 uint32_t DepthBufferSurfaceFormat
;
2921 uint32_t LegacyGlobalDepthBiasEnable
;
2922 uint32_t StatisticsEnable
;
2923 uint32_t GlobalDepthOffsetEnableSolid
;
2924 uint32_t GlobalDepthOffsetEnableWireframe
;
2925 uint32_t GlobalDepthOffsetEnablePoint
;
2926 #define RASTER_SOLID 0
2927 #define RASTER_WIREFRAME 1
2928 #define RASTER_POINT 2
2929 uint32_t FrontFaceFillMode
;
2930 #define RASTER_SOLID 0
2931 #define RASTER_WIREFRAME 1
2932 #define RASTER_POINT 2
2933 uint32_t BackFaceFillMode
;
2934 uint32_t ViewTransformEnable
;
2935 uint32_t FrontWinding
;
2936 uint32_t AntiAliasingEnable
;
2937 #define CULLMODE_BOTH 0
2938 #define CULLMODE_NONE 1
2939 #define CULLMODE_FRONT 2
2940 #define CULLMODE_BACK 3
2943 uint32_t LineEndCapAntialiasingRegionWidth
;
2944 uint32_t ScissorRectangleEnable
;
2945 uint32_t MultisampleRasterizationMode
;
2946 uint32_t LastPixelEnable
;
2950 uint32_t TriangleStripListProvokingVertexSelect
;
2951 uint32_t LineStripListProvokingVertexSelect
;
2955 uint32_t TriangleFanProvokingVertexSelect
;
2956 #define AALINEDISTANCE_TRUE 1
2957 uint32_t AALineDistanceMode
;
2958 uint32_t VertexSubPixelPrecisionSelect
;
2959 uint32_t UsePointWidthState
;
2960 uint32_t PointWidth
;
2961 uint32_t GlobalDepthOffsetConstant
;
2962 uint32_t GlobalDepthOffsetScale
;
2963 uint32_t GlobalDepthOffsetClamp
;
2967 GEN7_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
2968 const struct GEN7_3DSTATE_SF
* restrict values
)
2970 uint32_t *dw
= (uint32_t * restrict
) dst
;
2973 __gen_field(values
->CommandType
, 29, 31) |
2974 __gen_field(values
->CommandSubType
, 27, 28) |
2975 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2976 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2977 __gen_field(values
->DwordLength
, 0, 7) |
2981 __gen_field(values
->DepthBufferSurfaceFormat
, 12, 14) |
2982 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
2983 __gen_field(values
->StatisticsEnable
, 10, 10) |
2984 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
2985 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
2986 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
2987 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
2988 __gen_field(values
->BackFaceFillMode
, 3, 4) |
2989 __gen_field(values
->ViewTransformEnable
, 1, 1) |
2990 __gen_field(values
->FrontWinding
, 0, 0) |
2994 __gen_field(values
->AntiAliasingEnable
, 31, 31) |
2995 __gen_field(values
->CullMode
, 29, 30) |
2996 __gen_field(values
->LineWidth
, 18, 27) |
2997 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
2998 __gen_field(values
->ScissorRectangleEnable
, 11, 11) |
2999 __gen_field(values
->MultisampleRasterizationMode
, 8, 9) |
3003 __gen_field(values
->LastPixelEnable
, 31, 31) |
3004 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
3005 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
3006 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
3007 __gen_field(values
->AALineDistanceMode
, 14, 14) |
3008 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
3009 __gen_field(values
->UsePointWidthState
, 11, 11) |
3010 __gen_field(values
->PointWidth
, 0, 10) |
3014 __gen_field(values
->GlobalDepthOffsetConstant
, 0, 31) |
3018 __gen_field(values
->GlobalDepthOffsetScale
, 0, 31) |
3022 __gen_field(values
->GlobalDepthOffsetClamp
, 0, 31) |
3027 #define GEN7_3DSTATE_SO_BUFFER_length 0x00000004
3028 #define GEN7_3DSTATE_SO_BUFFER_length_bias 0x00000002
3029 #define GEN7_3DSTATE_SO_BUFFER_header \
3031 .CommandSubType = 3, \
3032 ._3DCommandOpcode = 1, \
3033 ._3DCommandSubOpcode = 24, \
3036 struct GEN7_3DSTATE_SO_BUFFER
{
3037 uint32_t CommandType
;
3038 uint32_t CommandSubType
;
3039 uint32_t _3DCommandOpcode
;
3040 uint32_t _3DCommandSubOpcode
;
3041 uint32_t DwordLength
;
3042 uint32_t SOBufferIndex
;
3043 uint32_t SOBufferObjectControlState
;
3044 uint32_t SurfacePitch
;
3045 __gen_address_type SurfaceBaseAddress
;
3046 __gen_address_type SurfaceEndAddress
;
3050 GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3051 const struct GEN7_3DSTATE_SO_BUFFER
* restrict values
)
3053 uint32_t *dw
= (uint32_t * restrict
) dst
;
3056 __gen_field(values
->CommandType
, 29, 31) |
3057 __gen_field(values
->CommandSubType
, 27, 28) |
3058 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3059 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3060 __gen_field(values
->DwordLength
, 0, 7) |
3064 __gen_field(values
->SOBufferIndex
, 29, 30) |
3065 /* Struct SOBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
3066 __gen_field(values
->SurfacePitch
, 0, 11) |
3073 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3079 __gen_combine_address(data
, &dw
[3], values
->SurfaceEndAddress
, dw3
);
3083 #define GEN7_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
3084 #define GEN7_3DSTATE_SO_DECL_LIST_header \
3086 .CommandSubType = 3, \
3087 ._3DCommandOpcode = 1, \
3088 ._3DCommandSubOpcode = 23
3090 struct GEN7_3DSTATE_SO_DECL_LIST
{
3091 uint32_t CommandType
;
3092 uint32_t CommandSubType
;
3093 uint32_t _3DCommandOpcode
;
3094 uint32_t _3DCommandSubOpcode
;
3095 uint32_t DwordLength
;
3096 uint32_t StreamtoBufferSelects3
;
3097 uint32_t StreamtoBufferSelects2
;
3098 uint32_t StreamtoBufferSelects1
;
3099 uint32_t StreamtoBufferSelects0
;
3100 uint32_t NumEntries3
;
3101 uint32_t NumEntries2
;
3102 uint32_t NumEntries1
;
3103 uint32_t NumEntries0
;
3104 /* variable length fields follow */
3108 GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
3109 const struct GEN7_3DSTATE_SO_DECL_LIST
* restrict values
)
3111 uint32_t *dw
= (uint32_t * restrict
) dst
;
3114 __gen_field(values
->CommandType
, 29, 31) |
3115 __gen_field(values
->CommandSubType
, 27, 28) |
3116 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3117 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3118 __gen_field(values
->DwordLength
, 0, 8) |
3122 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
3123 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
3124 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
3125 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
3129 __gen_field(values
->NumEntries3
, 24, 31) |
3130 __gen_field(values
->NumEntries2
, 16, 23) |
3131 __gen_field(values
->NumEntries1
, 8, 15) |
3132 __gen_field(values
->NumEntries0
, 0, 7) |
3135 /* variable length fields follow */
3138 #define GEN7_3DSTATE_STENCIL_BUFFER_length 0x00000003
3139 #define GEN7_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
3140 #define GEN7_3DSTATE_STENCIL_BUFFER_header \
3142 .CommandSubType = 3, \
3143 ._3DCommandOpcode = 0, \
3144 ._3DCommandSubOpcode = 6, \
3147 struct GEN7_3DSTATE_STENCIL_BUFFER
{
3148 uint32_t CommandType
;
3149 uint32_t CommandSubType
;
3150 uint32_t _3DCommandOpcode
;
3151 uint32_t _3DCommandSubOpcode
;
3152 uint32_t DwordLength
;
3153 uint32_t StencilBufferObjectControlState
;
3154 uint32_t SurfacePitch
;
3155 __gen_address_type SurfaceBaseAddress
;
3159 GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3160 const struct GEN7_3DSTATE_STENCIL_BUFFER
* restrict values
)
3162 uint32_t *dw
= (uint32_t * restrict
) dst
;
3165 __gen_field(values
->CommandType
, 29, 31) |
3166 __gen_field(values
->CommandSubType
, 27, 28) |
3167 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3168 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3169 __gen_field(values
->DwordLength
, 0, 7) |
3173 /* Struct StencilBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
3174 __gen_field(values
->SurfacePitch
, 0, 16) |
3181 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3185 #define GEN7_3DSTATE_STREAMOUT_length 0x00000003
3186 #define GEN7_3DSTATE_STREAMOUT_length_bias 0x00000002
3187 #define GEN7_3DSTATE_STREAMOUT_header \
3189 .CommandSubType = 3, \
3190 ._3DCommandOpcode = 0, \
3191 ._3DCommandSubOpcode = 30, \
3194 struct GEN7_3DSTATE_STREAMOUT
{
3195 uint32_t CommandType
;
3196 uint32_t CommandSubType
;
3197 uint32_t _3DCommandOpcode
;
3198 uint32_t _3DCommandSubOpcode
;
3199 uint32_t DwordLength
;
3200 uint32_t SOFunctionEnable
;
3201 uint32_t RenderingDisable
;
3202 uint32_t RenderStreamSelect
;
3205 uint32_t ReorderMode
;
3206 uint32_t SOStatisticsEnable
;
3207 uint32_t SOBufferEnable3
;
3208 uint32_t SOBufferEnable2
;
3209 uint32_t SOBufferEnable1
;
3210 uint32_t SOBufferEnable0
;
3211 uint32_t Stream3VertexReadOffset
;
3212 uint32_t Stream3VertexReadLength
;
3213 uint32_t Stream2VertexReadOffset
;
3214 uint32_t Stream2VertexReadLength
;
3215 uint32_t Stream1VertexReadOffset
;
3216 uint32_t Stream1VertexReadLength
;
3217 uint32_t Stream0VertexReadOffset
;
3218 uint32_t Stream0VertexReadLength
;
3222 GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
3223 const struct GEN7_3DSTATE_STREAMOUT
* restrict values
)
3225 uint32_t *dw
= (uint32_t * restrict
) dst
;
3228 __gen_field(values
->CommandType
, 29, 31) |
3229 __gen_field(values
->CommandSubType
, 27, 28) |
3230 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3231 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3232 __gen_field(values
->DwordLength
, 0, 7) |
3236 __gen_field(values
->SOFunctionEnable
, 31, 31) |
3237 __gen_field(values
->RenderingDisable
, 30, 30) |
3238 __gen_field(values
->RenderStreamSelect
, 27, 28) |
3239 __gen_field(values
->ReorderMode
, 26, 26) |
3240 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
3241 __gen_field(values
->SOBufferEnable3
, 11, 11) |
3242 __gen_field(values
->SOBufferEnable2
, 10, 10) |
3243 __gen_field(values
->SOBufferEnable1
, 9, 9) |
3244 __gen_field(values
->SOBufferEnable0
, 8, 8) |
3248 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
3249 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
3250 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
3251 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
3252 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
3253 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
3254 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
3255 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
3260 #define GEN7_3DSTATE_TE_length 0x00000004
3261 #define GEN7_3DSTATE_TE_length_bias 0x00000002
3262 #define GEN7_3DSTATE_TE_header \
3264 .CommandSubType = 3, \
3265 ._3DCommandOpcode = 0, \
3266 ._3DCommandSubOpcode = 28, \
3269 struct GEN7_3DSTATE_TE
{
3270 uint32_t CommandType
;
3271 uint32_t CommandSubType
;
3272 uint32_t _3DCommandOpcode
;
3273 uint32_t _3DCommandSubOpcode
;
3274 uint32_t DwordLength
;
3276 #define ODD_FRACTIONAL 1
3277 #define EVEN_FRACTIONAL 2
3278 uint32_t Partitioning
;
3283 uint32_t OutputTopology
;
3292 float MaximumTessellationFactorOdd
;
3293 float MaximumTessellationFactorNotOdd
;
3297 GEN7_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
3298 const struct GEN7_3DSTATE_TE
* restrict values
)
3300 uint32_t *dw
= (uint32_t * restrict
) dst
;
3303 __gen_field(values
->CommandType
, 29, 31) |
3304 __gen_field(values
->CommandSubType
, 27, 28) |
3305 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3306 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3307 __gen_field(values
->DwordLength
, 0, 7) |
3311 __gen_field(values
->Partitioning
, 12, 13) |
3312 __gen_field(values
->OutputTopology
, 8, 9) |
3313 __gen_field(values
->TEDomain
, 4, 5) |
3314 __gen_field(values
->TEMode
, 1, 2) |
3315 __gen_field(values
->TEEnable
, 0, 0) |
3319 __gen_float(values
->MaximumTessellationFactorOdd
) |
3323 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
3328 #define GEN7_3DSTATE_URB_DS_length 0x00000002
3329 #define GEN7_3DSTATE_URB_DS_length_bias 0x00000002
3330 #define GEN7_3DSTATE_URB_DS_header \
3332 .CommandSubType = 3, \
3333 ._3DCommandOpcode = 0, \
3334 ._3DCommandSubOpcode = 50, \
3337 struct GEN7_3DSTATE_URB_DS
{
3338 uint32_t CommandType
;
3339 uint32_t CommandSubType
;
3340 uint32_t _3DCommandOpcode
;
3341 uint32_t _3DCommandSubOpcode
;
3342 uint32_t DwordLength
;
3343 uint32_t DSURBStartingAddress
;
3344 uint32_t DSURBEntryAllocationSize
;
3345 uint32_t DSNumberofURBEntries
;
3349 GEN7_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3350 const struct GEN7_3DSTATE_URB_DS
* restrict values
)
3352 uint32_t *dw
= (uint32_t * restrict
) dst
;
3355 __gen_field(values
->CommandType
, 29, 31) |
3356 __gen_field(values
->CommandSubType
, 27, 28) |
3357 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3358 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3359 __gen_field(values
->DwordLength
, 0, 7) |
3363 __gen_field(values
->DSURBStartingAddress
, 25, 29) |
3364 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
3365 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
3370 #define GEN7_3DSTATE_URB_GS_length 0x00000002
3371 #define GEN7_3DSTATE_URB_GS_length_bias 0x00000002
3372 #define GEN7_3DSTATE_URB_GS_header \
3374 .CommandSubType = 3, \
3375 ._3DCommandOpcode = 0, \
3376 ._3DCommandSubOpcode = 51, \
3379 struct GEN7_3DSTATE_URB_GS
{
3380 uint32_t CommandType
;
3381 uint32_t CommandSubType
;
3382 uint32_t _3DCommandOpcode
;
3383 uint32_t _3DCommandSubOpcode
;
3384 uint32_t DwordLength
;
3385 uint32_t GSURBStartingAddress
;
3386 uint32_t GSURBEntryAllocationSize
;
3387 uint32_t GSNumberofURBEntries
;
3391 GEN7_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3392 const struct GEN7_3DSTATE_URB_GS
* restrict values
)
3394 uint32_t *dw
= (uint32_t * restrict
) dst
;
3397 __gen_field(values
->CommandType
, 29, 31) |
3398 __gen_field(values
->CommandSubType
, 27, 28) |
3399 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3400 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3401 __gen_field(values
->DwordLength
, 0, 7) |
3405 __gen_field(values
->GSURBStartingAddress
, 25, 29) |
3406 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
3407 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
3412 #define GEN7_3DSTATE_URB_HS_length 0x00000002
3413 #define GEN7_3DSTATE_URB_HS_length_bias 0x00000002
3414 #define GEN7_3DSTATE_URB_HS_header \
3416 .CommandSubType = 3, \
3417 ._3DCommandOpcode = 0, \
3418 ._3DCommandSubOpcode = 49, \
3421 struct GEN7_3DSTATE_URB_HS
{
3422 uint32_t CommandType
;
3423 uint32_t CommandSubType
;
3424 uint32_t _3DCommandOpcode
;
3425 uint32_t _3DCommandSubOpcode
;
3426 uint32_t DwordLength
;
3427 uint32_t HSURBStartingAddress
;
3428 uint32_t HSURBEntryAllocationSize
;
3429 uint32_t HSNumberofURBEntries
;
3433 GEN7_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3434 const struct GEN7_3DSTATE_URB_HS
* restrict values
)
3436 uint32_t *dw
= (uint32_t * restrict
) dst
;
3439 __gen_field(values
->CommandType
, 29, 31) |
3440 __gen_field(values
->CommandSubType
, 27, 28) |
3441 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3442 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3443 __gen_field(values
->DwordLength
, 0, 7) |
3447 __gen_field(values
->HSURBStartingAddress
, 25, 29) |
3448 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
3449 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
3454 #define GEN7_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
3455 #define GEN7_3DSTATE_VERTEX_BUFFERS_header \
3457 .CommandSubType = 3, \
3458 ._3DCommandOpcode = 0, \
3459 ._3DCommandSubOpcode = 8
3461 struct GEN7_3DSTATE_VERTEX_BUFFERS
{
3462 uint32_t CommandType
;
3463 uint32_t CommandSubType
;
3464 uint32_t _3DCommandOpcode
;
3465 uint32_t _3DCommandSubOpcode
;
3466 uint32_t DwordLength
;
3467 /* variable length fields follow */
3471 GEN7_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
3472 const struct GEN7_3DSTATE_VERTEX_BUFFERS
* restrict values
)
3474 uint32_t *dw
= (uint32_t * restrict
) dst
;
3477 __gen_field(values
->CommandType
, 29, 31) |
3478 __gen_field(values
->CommandSubType
, 27, 28) |
3479 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3480 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3481 __gen_field(values
->DwordLength
, 0, 7) |
3484 /* variable length fields follow */
3487 #define GEN7_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
3488 #define GEN7_3DSTATE_VERTEX_ELEMENTS_header \
3490 .CommandSubType = 3, \
3491 ._3DCommandOpcode = 0, \
3492 ._3DCommandSubOpcode = 9
3494 struct GEN7_3DSTATE_VERTEX_ELEMENTS
{
3495 uint32_t CommandType
;
3496 uint32_t CommandSubType
;
3497 uint32_t _3DCommandOpcode
;
3498 uint32_t _3DCommandSubOpcode
;
3499 uint32_t DwordLength
;
3500 /* variable length fields follow */
3504 GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
3505 const struct GEN7_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
3507 uint32_t *dw
= (uint32_t * restrict
) dst
;
3510 __gen_field(values
->CommandType
, 29, 31) |
3511 __gen_field(values
->CommandSubType
, 27, 28) |
3512 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3513 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3514 __gen_field(values
->DwordLength
, 0, 7) |
3517 /* variable length fields follow */
3520 #define GEN7_3DSTATE_VF_STATISTICS_length 0x00000001
3521 #define GEN7_3DSTATE_VF_STATISTICS_length_bias 0x00000001
3522 #define GEN7_3DSTATE_VF_STATISTICS_header \
3524 .CommandSubType = 1, \
3525 ._3DCommandOpcode = 0, \
3526 ._3DCommandSubOpcode = 11
3528 struct GEN7_3DSTATE_VF_STATISTICS
{
3529 uint32_t CommandType
;
3530 uint32_t CommandSubType
;
3531 uint32_t _3DCommandOpcode
;
3532 uint32_t _3DCommandSubOpcode
;
3533 uint32_t StatisticsEnable
;
3537 GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
3538 const struct GEN7_3DSTATE_VF_STATISTICS
* restrict values
)
3540 uint32_t *dw
= (uint32_t * restrict
) dst
;
3543 __gen_field(values
->CommandType
, 29, 31) |
3544 __gen_field(values
->CommandSubType
, 27, 28) |
3545 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3546 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3547 __gen_field(values
->StatisticsEnable
, 0, 0) |
3552 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
3553 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
3554 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
3556 .CommandSubType = 3, \
3557 ._3DCommandOpcode = 0, \
3558 ._3DCommandSubOpcode = 35, \
3561 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
3562 uint32_t CommandType
;
3563 uint32_t CommandSubType
;
3564 uint32_t _3DCommandOpcode
;
3565 uint32_t _3DCommandSubOpcode
;
3566 uint32_t DwordLength
;
3567 uint32_t CCViewportPointer
;
3571 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
3572 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
3574 uint32_t *dw
= (uint32_t * restrict
) dst
;
3577 __gen_field(values
->CommandType
, 29, 31) |
3578 __gen_field(values
->CommandSubType
, 27, 28) |
3579 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3580 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3581 __gen_field(values
->DwordLength
, 0, 7) |
3585 __gen_offset(values
->CCViewportPointer
, 5, 31) |
3590 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
3591 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
3592 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
3594 .CommandSubType = 3, \
3595 ._3DCommandOpcode = 0, \
3596 ._3DCommandSubOpcode = 33, \
3599 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
3600 uint32_t CommandType
;
3601 uint32_t CommandSubType
;
3602 uint32_t _3DCommandOpcode
;
3603 uint32_t _3DCommandSubOpcode
;
3604 uint32_t DwordLength
;
3605 uint32_t SFClipViewportPointer
;
3609 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
3610 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
3612 uint32_t *dw
= (uint32_t * restrict
) dst
;
3615 __gen_field(values
->CommandType
, 29, 31) |
3616 __gen_field(values
->CommandSubType
, 27, 28) |
3617 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3618 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3619 __gen_field(values
->DwordLength
, 0, 7) |
3623 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
3628 #define GEN7_3DSTATE_VS_length 0x00000006
3629 #define GEN7_3DSTATE_VS_length_bias 0x00000002
3630 #define GEN7_3DSTATE_VS_header \
3632 .CommandSubType = 3, \
3633 ._3DCommandOpcode = 0, \
3634 ._3DCommandSubOpcode = 16, \
3637 struct GEN7_3DSTATE_VS
{
3638 uint32_t CommandType
;
3639 uint32_t CommandSubType
;
3640 uint32_t _3DCommandOpcode
;
3641 uint32_t _3DCommandSubOpcode
;
3642 uint32_t DwordLength
;
3643 uint32_t KernelStartPointer
;
3646 uint32_t SingleVertexDispatch
;
3649 uint32_t VectorMaskEnableVME
;
3650 #define NoSamplers 0
3651 #define _14Samplers 1
3652 #define _58Samplers 2
3653 #define _912Samplers 3
3654 #define _1316Samplers 4
3655 uint32_t SamplerCount
;
3656 uint32_t BindingTableEntryCount
;
3659 uint32_t FloatingPointMode
;
3660 uint32_t IllegalOpcodeExceptionEnable
;
3661 uint32_t SoftwareExceptionEnable
;
3662 uint32_t ScratchSpaceBaseOffset
;
3663 uint32_t PerThreadScratchSpace
;
3664 uint32_t DispatchGRFStartRegisterforURBData
;
3665 uint32_t VertexURBEntryReadLength
;
3666 uint32_t VertexURBEntryReadOffset
;
3667 uint32_t MaximumNumberofThreads
;
3668 uint32_t StatisticsEnable
;
3669 uint32_t VertexCacheDisable
;
3670 uint32_t VSFunctionEnable
;
3674 GEN7_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3675 const struct GEN7_3DSTATE_VS
* restrict values
)
3677 uint32_t *dw
= (uint32_t * restrict
) dst
;
3680 __gen_field(values
->CommandType
, 29, 31) |
3681 __gen_field(values
->CommandSubType
, 27, 28) |
3682 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3683 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3684 __gen_field(values
->DwordLength
, 0, 7) |
3688 __gen_offset(values
->KernelStartPointer
, 6, 31) |
3692 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
3693 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
3694 __gen_field(values
->SamplerCount
, 27, 29) |
3695 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3696 __gen_field(values
->FloatingPointMode
, 16, 16) |
3697 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3698 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3702 __gen_offset(values
->ScratchSpaceBaseOffset
, 10, 31) |
3703 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3707 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 20, 24) |
3708 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
3709 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
3713 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
3714 __gen_field(values
->StatisticsEnable
, 10, 10) |
3715 __gen_field(values
->VertexCacheDisable
, 1, 1) |
3716 __gen_field(values
->VSFunctionEnable
, 0, 0) |
3721 #define GEN7_3DSTATE_WM_length 0x00000003
3722 #define GEN7_3DSTATE_WM_length_bias 0x00000002
3723 #define GEN7_3DSTATE_WM_header \
3725 .CommandSubType = 3, \
3726 ._3DCommandOpcode = 0, \
3727 ._3DCommandSubOpcode = 20, \
3730 struct GEN7_3DSTATE_WM
{
3731 uint32_t CommandType
;
3732 uint32_t CommandSubType
;
3733 uint32_t _3DCommandOpcode
;
3734 uint32_t _3DCommandSubOpcode
;
3735 uint32_t DwordLength
;
3736 uint32_t StatisticsEnable
;
3737 uint32_t DepthBufferClear
;
3738 uint32_t ThreadDispatchEnable
;
3739 uint32_t DepthBufferResolveEnable
;
3740 uint32_t HierarchicalDepthBufferResolveEnable
;
3741 uint32_t LegacyDiamondLineRasterization
;
3742 uint32_t PixelShaderKillPixel
;
3743 #define PSCDEPTH_OFF 0
3744 #define PSCDEPTH_ON 1
3745 #define PSCDEPTH_ON_GE 2
3746 #define PSCDEPTH_ON_LE 3
3747 uint32_t PixelShaderComputedDepthMode
;
3748 #define EDSC_NORMAL 0
3749 #define EDSC_PSEXEC 1
3750 #define EDSC_PREPS 2
3751 uint32_t EarlyDepthStencilControl
;
3752 uint32_t PixelShaderUsesSourceDepth
;
3753 uint32_t PixelShaderUsesSourceW
;
3754 #define INTERP_PIXEL 0
3755 #define INTERP_CENTROID 2
3756 #define INTERP_SAMPLE 3
3757 uint32_t PositionZWInterpolationMode
;
3758 uint32_t BarycentricInterpolationMode
;
3759 uint32_t PixelShaderUsesInputCoverageMask
;
3760 uint32_t LineEndCapAntialiasingRegionWidth
;
3761 uint32_t LineAntialiasingRegionWidth
;
3762 uint32_t PolygonStippleEnable
;
3763 uint32_t LineStippleEnable
;
3764 #define RASTRULE_UPPER_LEFT 0
3765 #define RASTRULE_UPPER_RIGHT 1
3766 uint32_t PointRasterizationRule
;
3767 #define MSRASTMODE_OFF_PIXEL 0
3768 #define MSRASTMODE_OFF_PATTERN 1
3769 #define MSRASTMODE_ON_PIXEL 2
3770 #define MSRASTMODE_ON_PATTERN 3
3771 uint32_t MultisampleRasterizationMode
;
3772 #define MSDISPMODE_PERSAMPLE 0
3773 #define MSDISPMODE_PERPIXEL 1
3774 uint32_t MultisampleDispatchMode
;
3778 GEN7_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
3779 const struct GEN7_3DSTATE_WM
* restrict values
)
3781 uint32_t *dw
= (uint32_t * restrict
) dst
;
3784 __gen_field(values
->CommandType
, 29, 31) |
3785 __gen_field(values
->CommandSubType
, 27, 28) |
3786 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3787 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3788 __gen_field(values
->DwordLength
, 0, 7) |
3792 __gen_field(values
->StatisticsEnable
, 31, 31) |
3793 __gen_field(values
->DepthBufferClear
, 30, 30) |
3794 __gen_field(values
->ThreadDispatchEnable
, 29, 29) |
3795 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
3796 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
3797 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
3798 __gen_field(values
->PixelShaderKillPixel
, 25, 25) |
3799 __gen_field(values
->PixelShaderComputedDepthMode
, 23, 24) |
3800 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
3801 __gen_field(values
->PixelShaderUsesSourceDepth
, 20, 20) |
3802 __gen_field(values
->PixelShaderUsesSourceW
, 19, 19) |
3803 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
3804 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
3805 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 10, 10) |
3806 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
3807 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
3808 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
3809 __gen_field(values
->LineStippleEnable
, 3, 3) |
3810 __gen_field(values
->PointRasterizationRule
, 2, 2) |
3811 __gen_field(values
->MultisampleRasterizationMode
, 0, 1) |
3815 __gen_field(values
->MultisampleDispatchMode
, 31, 31) |
3820 #define GEN7_GPGPU_OBJECT_length 0x00000008
3821 #define GEN7_GPGPU_OBJECT_length_bias 0x00000002
3822 #define GEN7_GPGPU_OBJECT_header \
3825 .MediaCommandOpcode = 1, \
3829 struct GEN7_GPGPU_OBJECT
{
3830 uint32_t CommandType
;
3832 uint32_t MediaCommandOpcode
;
3834 uint32_t PredicateEnable
;
3835 uint32_t DwordLength
;
3836 uint32_t SharedLocalMemoryFixedOffset
;
3837 uint32_t InterfaceDescriptorOffset
;
3838 uint32_t SharedLocalMemoryOffset
;
3839 uint32_t EndofThreadGroup
;
3840 #define HalfSlice1 2
3841 #define HalfSlice0 1
3842 #define EitherHalfSlice 0
3843 uint32_t HalfSliceDestinationSelect
;
3844 uint32_t IndirectDataLength
;
3845 uint32_t IndirectDataStartAddress
;
3846 uint32_t ThreadGroupIDX
;
3847 uint32_t ThreadGroupIDY
;
3848 uint32_t ThreadGroupIDZ
;
3849 uint32_t ExecutionMask
;
3853 GEN7_GPGPU_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
3854 const struct GEN7_GPGPU_OBJECT
* restrict values
)
3856 uint32_t *dw
= (uint32_t * restrict
) dst
;
3859 __gen_field(values
->CommandType
, 29, 31) |
3860 __gen_field(values
->Pipeline
, 27, 28) |
3861 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
3862 __gen_field(values
->SubOpcode
, 16, 23) |
3863 __gen_field(values
->PredicateEnable
, 8, 8) |
3864 __gen_field(values
->DwordLength
, 0, 7) |
3868 __gen_field(values
->SharedLocalMemoryFixedOffset
, 7, 7) |
3869 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
3873 __gen_field(values
->SharedLocalMemoryOffset
, 28, 31) |
3874 __gen_field(values
->EndofThreadGroup
, 24, 24) |
3875 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
3876 __gen_field(values
->IndirectDataLength
, 0, 16) |
3880 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
3884 __gen_field(values
->ThreadGroupIDX
, 0, 31) |
3888 __gen_field(values
->ThreadGroupIDY
, 0, 31) |
3892 __gen_field(values
->ThreadGroupIDZ
, 0, 31) |
3896 __gen_field(values
->ExecutionMask
, 0, 31) |
3901 #define GEN7_GPGPU_WALKER_length 0x0000000b
3902 #define GEN7_GPGPU_WALKER_length_bias 0x00000002
3903 #define GEN7_GPGPU_WALKER_header \
3906 .MediaCommandOpcode = 1, \
3910 struct GEN7_GPGPU_WALKER
{
3911 uint32_t CommandType
;
3913 uint32_t MediaCommandOpcode
;
3914 uint32_t SubOpcodeA
;
3915 uint32_t IndirectParameterEnable
;
3916 uint32_t PredicateEnable
;
3917 uint32_t DwordLength
;
3918 uint32_t InterfaceDescriptorOffset
;
3923 uint32_t ThreadDepthCounterMaximum
;
3924 uint32_t ThreadHeightCounterMaximum
;
3925 uint32_t ThreadWidthCounterMaximum
;
3926 uint32_t ThreadGroupIDStartingX
;
3927 uint32_t ThreadGroupIDXDimension
;
3928 uint32_t ThreadGroupIDStartingY
;
3929 uint32_t ThreadGroupIDYDimension
;
3930 uint32_t ThreadGroupIDStartingZ
;
3931 uint32_t ThreadGroupIDZDimension
;
3932 uint32_t RightExecutionMask
;
3933 uint32_t BottomExecutionMask
;
3937 GEN7_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
3938 const struct GEN7_GPGPU_WALKER
* restrict values
)
3940 uint32_t *dw
= (uint32_t * restrict
) dst
;
3943 __gen_field(values
->CommandType
, 29, 31) |
3944 __gen_field(values
->Pipeline
, 27, 28) |
3945 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
3946 __gen_field(values
->SubOpcodeA
, 16, 23) |
3947 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
3948 __gen_field(values
->PredicateEnable
, 8, 8) |
3949 __gen_field(values
->DwordLength
, 0, 7) |
3953 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
3957 __gen_field(values
->SIMDSize
, 30, 31) |
3958 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
3959 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
3960 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
3964 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
3968 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
3972 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
3976 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
3980 __gen_field(values
->ThreadGroupIDStartingZ
, 0, 31) |
3984 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
3988 __gen_field(values
->RightExecutionMask
, 0, 31) |
3992 __gen_field(values
->BottomExecutionMask
, 0, 31) |
3997 #define GEN7_MEDIA_CURBE_LOAD_length 0x00000004
3998 #define GEN7_MEDIA_CURBE_LOAD_length_bias 0x00000002
3999 #define GEN7_MEDIA_CURBE_LOAD_header \
4002 .MediaCommandOpcode = 0, \
4006 struct GEN7_MEDIA_CURBE_LOAD
{
4007 uint32_t CommandType
;
4009 uint32_t MediaCommandOpcode
;
4011 uint32_t DwordLength
;
4012 uint32_t CURBETotalDataLength
;
4013 uint32_t CURBEDataStartAddress
;
4017 GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4018 const struct GEN7_MEDIA_CURBE_LOAD
* restrict values
)
4020 uint32_t *dw
= (uint32_t * restrict
) dst
;
4023 __gen_field(values
->CommandType
, 29, 31) |
4024 __gen_field(values
->Pipeline
, 27, 28) |
4025 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4026 __gen_field(values
->SubOpcode
, 16, 23) |
4027 __gen_field(values
->DwordLength
, 0, 15) |
4034 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
4038 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
4043 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
4044 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
4045 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
4048 .MediaCommandOpcode = 0, \
4052 struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
4053 uint32_t CommandType
;
4055 uint32_t MediaCommandOpcode
;
4057 uint32_t DwordLength
;
4058 uint32_t InterfaceDescriptorTotalLength
;
4059 uint32_t InterfaceDescriptorDataStartAddress
;
4063 GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4064 const struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
4066 uint32_t *dw
= (uint32_t * restrict
) dst
;
4069 __gen_field(values
->CommandType
, 29, 31) |
4070 __gen_field(values
->Pipeline
, 27, 28) |
4071 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4072 __gen_field(values
->SubOpcode
, 16, 23) |
4073 __gen_field(values
->DwordLength
, 0, 15) |
4080 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
4084 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
4089 #define GEN7_MEDIA_OBJECT_length_bias 0x00000002
4090 #define GEN7_MEDIA_OBJECT_header \
4092 .MediaCommandPipeline = 2, \
4093 .MediaCommandOpcode = 1, \
4094 .MediaCommandSubOpcode = 0
4096 struct GEN7_MEDIA_OBJECT
{
4097 uint32_t CommandType
;
4098 uint32_t MediaCommandPipeline
;
4099 uint32_t MediaCommandOpcode
;
4100 uint32_t MediaCommandSubOpcode
;
4101 uint32_t DwordLength
;
4102 uint32_t InterfaceDescriptorOffset
;
4103 uint32_t ChildrenPresent
;
4104 #define Nothreadsynchronization 0
4105 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4106 uint32_t ThreadSynchronization
;
4107 #define Notusingscoreboard 0
4108 #define Usingscoreboard 1
4109 uint32_t UseScoreboard
;
4110 #define HalfSlice1 2
4111 #define HalfSlice0 1
4112 #define Eitherhalfslice 0
4113 uint32_t HalfSliceDestinationSelect
;
4114 uint32_t IndirectDataLength
;
4115 __gen_address_type IndirectDataStartAddress
;
4116 uint32_t ScoredboardY
;
4117 uint32_t ScoreboardX
;
4118 uint32_t ScoreboardColor
;
4119 uint32_t ScoreboardMask
;
4120 /* variable length fields follow */
4124 GEN7_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4125 const struct GEN7_MEDIA_OBJECT
* restrict values
)
4127 uint32_t *dw
= (uint32_t * restrict
) dst
;
4130 __gen_field(values
->CommandType
, 29, 31) |
4131 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
4132 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4133 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
4134 __gen_field(values
->DwordLength
, 0, 15) |
4138 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4142 __gen_field(values
->ChildrenPresent
, 31, 31) |
4143 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4144 __gen_field(values
->UseScoreboard
, 21, 21) |
4145 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4146 __gen_field(values
->IndirectDataLength
, 0, 16) |
4153 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
4156 __gen_field(values
->ScoredboardY
, 16, 24) |
4157 __gen_field(values
->ScoreboardX
, 0, 8) |
4161 __gen_field(values
->ScoreboardColor
, 16, 19) |
4162 __gen_field(values
->ScoreboardMask
, 0, 7) |
4165 /* variable length fields follow */
4168 #define GEN7_MEDIA_OBJECT_PRT_length 0x00000010
4169 #define GEN7_MEDIA_OBJECT_PRT_length_bias 0x00000002
4170 #define GEN7_MEDIA_OBJECT_PRT_header \
4173 .MediaCommandOpcode = 1, \
4177 struct GEN7_MEDIA_OBJECT_PRT
{
4178 uint32_t CommandType
;
4180 uint32_t MediaCommandOpcode
;
4182 uint32_t DwordLength
;
4183 uint32_t InterfaceDescriptorOffset
;
4184 uint32_t ChildrenPresent
;
4185 uint32_t PRT_FenceNeeded
;
4186 #define Rootthreadqueue 0
4187 #define VFEstateflush 1
4188 uint32_t PRT_FenceType
;
4189 uint32_t InlineData
;
4193 GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
4194 const struct GEN7_MEDIA_OBJECT_PRT
* restrict values
)
4196 uint32_t *dw
= (uint32_t * restrict
) dst
;
4199 __gen_field(values
->CommandType
, 29, 31) |
4200 __gen_field(values
->Pipeline
, 27, 28) |
4201 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4202 __gen_field(values
->SubOpcode
, 16, 23) |
4203 __gen_field(values
->DwordLength
, 0, 15) |
4207 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4211 __gen_field(values
->ChildrenPresent
, 31, 31) |
4212 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
4213 __gen_field(values
->PRT_FenceType
, 22, 22) |
4220 __gen_field(values
->InlineData
, 0, 31) |
4225 #define GEN7_MEDIA_OBJECT_WALKER_length_bias 0x00000002
4226 #define GEN7_MEDIA_OBJECT_WALKER_header \
4229 .MediaCommandOpcode = 1, \
4232 struct GEN7_MEDIA_OBJECT_WALKER
{
4233 uint32_t CommandType
;
4235 uint32_t MediaCommandOpcode
;
4237 uint32_t DwordLength
;
4238 uint32_t InterfaceDescriptorOffset
;
4239 uint32_t ChildrenPresent
;
4240 #define Nothreadsynchronization 0
4241 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4242 uint32_t ThreadSynchronization
;
4243 #define Notusingscoreboard 0
4244 #define Usingscoreboard 1
4245 uint32_t UseScoreboard
;
4246 uint32_t IndirectDataLength
;
4247 uint32_t IndirectDataStartAddress
;
4248 uint32_t ScoreboardMask
;
4251 uint32_t ColorCountMinusOne
;
4252 uint32_t MiddleLoopExtraSteps
;
4253 uint32_t LocalMidLoopUnitY
;
4254 uint32_t MidLoopUnitX
;
4255 uint32_t GlobalLoopExecCount
;
4256 uint32_t LocalLoopExecCount
;
4257 uint32_t BlockResolutionY
;
4258 uint32_t BlockResolutionX
;
4259 uint32_t LocalStartY
;
4260 uint32_t LocalStartX
;
4263 uint32_t LocalOuterLoopStrideY
;
4264 uint32_t LocalOuterLoopStrideX
;
4265 uint32_t LocalInnerLoopUnitY
;
4266 uint32_t LocalInnerLoopUnitX
;
4267 uint32_t GlobalResolutionY
;
4268 uint32_t GlobalResolutionX
;
4269 uint32_t GlobalStartY
;
4270 uint32_t GlobalStartX
;
4271 uint32_t GlobalOuterLoopStrideY
;
4272 uint32_t GlobalOuterLoopStrideX
;
4273 uint32_t GlobalInnerLoopUnitY
;
4274 uint32_t GlobalInnerLoopUnitX
;
4275 /* variable length fields follow */
4279 GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4280 const struct GEN7_MEDIA_OBJECT_WALKER
* restrict values
)
4282 uint32_t *dw
= (uint32_t * restrict
) dst
;
4285 __gen_field(values
->CommandType
, 29, 31) |
4286 __gen_field(values
->Pipeline
, 27, 28) |
4287 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4288 __gen_field(values
->SubOpcode
, 16, 23) |
4289 __gen_field(values
->DwordLength
, 0, 15) |
4293 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4297 __gen_field(values
->ChildrenPresent
, 31, 31) |
4298 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4299 __gen_field(values
->UseScoreboard
, 21, 21) |
4300 __gen_field(values
->IndirectDataLength
, 0, 16) |
4304 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4311 __gen_field(values
->ScoreboardMask
, 0, 7) |
4315 __gen_field(values
->DualMode
, 31, 31) |
4316 __gen_field(values
->Repel
, 30, 30) |
4317 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
4318 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
4319 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
4320 __gen_field(values
->MidLoopUnitX
, 8, 9) |
4324 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
4325 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
4329 __gen_field(values
->BlockResolutionY
, 16, 24) |
4330 __gen_field(values
->BlockResolutionX
, 0, 8) |
4334 __gen_field(values
->LocalStartY
, 16, 24) |
4335 __gen_field(values
->LocalStartX
, 0, 8) |
4339 __gen_field(values
->LocalEndY
, 16, 24) |
4340 __gen_field(values
->LocalEndX
, 0, 8) |
4344 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
4345 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
4349 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
4350 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
4354 __gen_field(values
->GlobalResolutionY
, 16, 24) |
4355 __gen_field(values
->GlobalResolutionX
, 0, 8) |
4359 __gen_field(values
->GlobalStartY
, 16, 25) |
4360 __gen_field(values
->GlobalStartX
, 0, 9) |
4364 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
4365 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
4369 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
4370 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
4373 /* variable length fields follow */
4376 #define GEN7_MEDIA_STATE_FLUSH_length 0x00000002
4377 #define GEN7_MEDIA_STATE_FLUSH_length_bias 0x00000002
4378 #define GEN7_MEDIA_STATE_FLUSH_header \
4381 .MediaCommandOpcode = 0, \
4385 struct GEN7_MEDIA_STATE_FLUSH
{
4386 uint32_t CommandType
;
4388 uint32_t MediaCommandOpcode
;
4390 uint32_t DwordLength
;
4391 uint32_t WatermarkRequired
;
4392 uint32_t InterfaceDescriptorOffset
;
4396 GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4397 const struct GEN7_MEDIA_STATE_FLUSH
* restrict values
)
4399 uint32_t *dw
= (uint32_t * restrict
) dst
;
4402 __gen_field(values
->CommandType
, 29, 31) |
4403 __gen_field(values
->Pipeline
, 27, 28) |
4404 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4405 __gen_field(values
->SubOpcode
, 16, 23) |
4406 __gen_field(values
->DwordLength
, 0, 15) |
4410 __gen_field(values
->WatermarkRequired
, 6, 6) |
4411 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
4416 #define GEN7_MEDIA_VFE_STATE_length 0x00000008
4417 #define GEN7_MEDIA_VFE_STATE_length_bias 0x00000002
4418 #define GEN7_MEDIA_VFE_STATE_header \
4421 .MediaCommandOpcode = 0, \
4425 struct GEN7_MEDIA_VFE_STATE
{
4426 uint32_t CommandType
;
4428 uint32_t MediaCommandOpcode
;
4430 uint32_t DwordLength
;
4431 uint32_t ScratchSpaceBasePointer
;
4432 uint32_t PerThreadScratchSpace
;
4433 uint32_t MaximumNumberofThreads
;
4434 uint32_t NumberofURBEntries
;
4435 #define Maintainingtheexistingtimestampstate 0
4436 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
4437 uint32_t ResetGatewayTimer
;
4438 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
4439 #define BypassingOpenGatewayCloseGatewayprotocol 1
4440 uint32_t BypassGatewayControl
;
4441 #define NoMMIOreadwriteallowed 0
4442 #define MMIOreadwritetoanyaddress 2
4443 uint32_t GatewayMMIOAccessControl
;
4445 uint32_t URBEntryAllocationSize
;
4446 uint32_t CURBEAllocationSize
;
4447 #define Scoreboarddisabled 0
4448 #define Scoreboardenabled 1
4449 uint32_t ScoreboardEnable
;
4450 #define StallingScoreboard 0
4451 #define NonStallingScoreboard 1
4452 uint32_t ScoreboardType
;
4453 uint32_t ScoreboardMask
;
4454 uint32_t Scoreboard3DeltaY
;
4455 uint32_t Scoreboard3DeltaX
;
4456 uint32_t Scoreboard2DeltaY
;
4457 uint32_t Scoreboard2DeltaX
;
4458 uint32_t Scoreboard1DeltaY
;
4459 uint32_t Scoreboard1DeltaX
;
4460 uint32_t Scoreboard0DeltaY
;
4461 uint32_t Scoreboard0DeltaX
;
4462 uint32_t Scoreboard7DeltaY
;
4463 uint32_t Scoreboard7DeltaX
;
4464 uint32_t Scoreboard6DeltaY
;
4465 uint32_t Scoreboard6DeltaX
;
4466 uint32_t Scoreboard5DeltaY
;
4467 uint32_t Scoreboard5DeltaX
;
4468 uint32_t Scoreboard4DeltaY
;
4469 uint32_t Scoreboard4DeltaX
;
4473 GEN7_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4474 const struct GEN7_MEDIA_VFE_STATE
* restrict values
)
4476 uint32_t *dw
= (uint32_t * restrict
) dst
;
4479 __gen_field(values
->CommandType
, 29, 31) |
4480 __gen_field(values
->Pipeline
, 27, 28) |
4481 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4482 __gen_field(values
->SubOpcode
, 16, 23) |
4483 __gen_field(values
->DwordLength
, 0, 15) |
4487 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
4488 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4492 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
4493 __gen_field(values
->NumberofURBEntries
, 8, 15) |
4494 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
4495 __gen_field(values
->BypassGatewayControl
, 6, 6) |
4496 __gen_field(values
->GatewayMMIOAccessControl
, 3, 4) |
4497 __gen_field(values
->GPGPUMode
, 2, 2) |
4504 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
4505 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
4509 __gen_field(values
->ScoreboardEnable
, 31, 31) |
4510 __gen_field(values
->ScoreboardType
, 30, 30) |
4511 __gen_field(values
->ScoreboardMask
, 0, 7) |
4515 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
4516 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
4517 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
4518 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
4519 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
4520 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
4521 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
4522 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
4526 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
4527 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
4528 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
4529 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
4530 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
4531 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
4532 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
4533 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
4538 #define GEN7_MI_ARB_CHECK_length 0x00000001
4539 #define GEN7_MI_ARB_CHECK_length_bias 0x00000001
4540 #define GEN7_MI_ARB_CHECK_header \
4542 .MICommandOpcode = 5
4544 struct GEN7_MI_ARB_CHECK
{
4545 uint32_t CommandType
;
4546 uint32_t MICommandOpcode
;
4550 GEN7_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
4551 const struct GEN7_MI_ARB_CHECK
* restrict values
)
4553 uint32_t *dw
= (uint32_t * restrict
) dst
;
4556 __gen_field(values
->CommandType
, 29, 31) |
4557 __gen_field(values
->MICommandOpcode
, 23, 28) |
4562 #define GEN7_MI_ARB_ON_OFF_length 0x00000001
4563 #define GEN7_MI_ARB_ON_OFF_length_bias 0x00000001
4564 #define GEN7_MI_ARB_ON_OFF_header \
4566 .MICommandOpcode = 8
4568 struct GEN7_MI_ARB_ON_OFF
{
4569 uint32_t CommandType
;
4570 uint32_t MICommandOpcode
;
4571 uint32_t ArbitrationEnable
;
4575 GEN7_MI_ARB_ON_OFF_pack(__gen_user_data
*data
, void * restrict dst
,
4576 const struct GEN7_MI_ARB_ON_OFF
* restrict values
)
4578 uint32_t *dw
= (uint32_t * restrict
) dst
;
4581 __gen_field(values
->CommandType
, 29, 31) |
4582 __gen_field(values
->MICommandOpcode
, 23, 28) |
4583 __gen_field(values
->ArbitrationEnable
, 0, 0) |
4588 #define GEN7_MI_BATCH_BUFFER_END_length 0x00000001
4589 #define GEN7_MI_BATCH_BUFFER_END_length_bias 0x00000001
4590 #define GEN7_MI_BATCH_BUFFER_END_header \
4592 .MICommandOpcode = 10
4594 struct GEN7_MI_BATCH_BUFFER_END
{
4595 uint32_t CommandType
;
4596 uint32_t MICommandOpcode
;
4600 GEN7_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
4601 const struct GEN7_MI_BATCH_BUFFER_END
* restrict values
)
4603 uint32_t *dw
= (uint32_t * restrict
) dst
;
4606 __gen_field(values
->CommandType
, 29, 31) |
4607 __gen_field(values
->MICommandOpcode
, 23, 28) |
4612 #define GEN7_MI_BATCH_BUFFER_START_length 0x00000002
4613 #define GEN7_MI_BATCH_BUFFER_START_length_bias 0x00000002
4614 #define GEN7_MI_BATCH_BUFFER_START_header \
4616 .MICommandOpcode = 49, \
4619 struct GEN7_MI_BATCH_BUFFER_START
{
4620 uint32_t CommandType
;
4621 uint32_t MICommandOpcode
;
4622 uint32_t ClearCommandBufferEnable
;
4625 uint32_t AddressSpaceIndicator
;
4626 uint32_t DwordLength
;
4627 __gen_address_type BatchBufferStartAddress
;
4631 GEN7_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
4632 const struct GEN7_MI_BATCH_BUFFER_START
* restrict values
)
4634 uint32_t *dw
= (uint32_t * restrict
) dst
;
4637 __gen_field(values
->CommandType
, 29, 31) |
4638 __gen_field(values
->MICommandOpcode
, 23, 28) |
4639 __gen_field(values
->ClearCommandBufferEnable
, 11, 11) |
4640 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
4641 __gen_field(values
->DwordLength
, 0, 7) |
4648 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
4652 #define GEN7_MI_CLFLUSH_length_bias 0x00000002
4653 #define GEN7_MI_CLFLUSH_header \
4655 .MICommandOpcode = 39
4657 struct GEN7_MI_CLFLUSH
{
4658 uint32_t CommandType
;
4659 uint32_t MICommandOpcode
;
4660 #define PerProcessGraphicsAddress 0
4661 #define GlobalGraphicsAddress 1
4662 uint32_t UseGlobalGTT
;
4663 uint32_t DwordLength
;
4664 __gen_address_type PageBaseAddress
;
4665 uint32_t StartingCachelineOffset
;
4666 __gen_address_type PageBaseAddressHigh
;
4667 /* variable length fields follow */
4671 GEN7_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4672 const struct GEN7_MI_CLFLUSH
* restrict values
)
4674 uint32_t *dw
= (uint32_t * restrict
) dst
;
4677 __gen_field(values
->CommandType
, 29, 31) |
4678 __gen_field(values
->MICommandOpcode
, 23, 28) |
4679 __gen_field(values
->UseGlobalGTT
, 22, 22) |
4680 __gen_field(values
->DwordLength
, 0, 9) |
4684 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
4688 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
4694 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
4696 /* variable length fields follow */
4699 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
4700 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
4701 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_header\
4703 .MICommandOpcode = 54, \
4704 .UseGlobalGTT = 0, \
4705 .CompareSemaphore = 0, \
4708 struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
{
4709 uint32_t CommandType
;
4710 uint32_t MICommandOpcode
;
4711 uint32_t UseGlobalGTT
;
4712 uint32_t CompareSemaphore
;
4713 uint32_t DwordLength
;
4714 uint32_t CompareDataDword
;
4715 __gen_address_type CompareAddress
;
4719 GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
4720 const struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
4722 uint32_t *dw
= (uint32_t * restrict
) dst
;
4725 __gen_field(values
->CommandType
, 29, 31) |
4726 __gen_field(values
->MICommandOpcode
, 23, 28) |
4727 __gen_field(values
->UseGlobalGTT
, 22, 22) |
4728 __gen_field(values
->CompareSemaphore
, 21, 21) |
4729 __gen_field(values
->DwordLength
, 0, 7) |
4733 __gen_field(values
->CompareDataDword
, 0, 31) |
4740 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
4744 #define GEN7_MI_FLUSH_length 0x00000001
4745 #define GEN7_MI_FLUSH_length_bias 0x00000001
4746 #define GEN7_MI_FLUSH_header \
4748 .MICommandOpcode = 4
4750 struct GEN7_MI_FLUSH
{
4751 uint32_t CommandType
;
4752 uint32_t MICommandOpcode
;
4753 uint32_t IndirectStatePointersDisable
;
4754 uint32_t GenericMediaStateClear
;
4757 uint32_t GlobalSnapshotCountReset
;
4760 uint32_t RenderCacheFlushInhibit
;
4761 #define DontInvalidate 0
4762 #define Invalidate 1
4763 uint32_t StateInstructionCacheInvalidate
;
4767 GEN7_MI_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4768 const struct GEN7_MI_FLUSH
* restrict values
)
4770 uint32_t *dw
= (uint32_t * restrict
) dst
;
4773 __gen_field(values
->CommandType
, 29, 31) |
4774 __gen_field(values
->MICommandOpcode
, 23, 28) |
4775 __gen_field(values
->IndirectStatePointersDisable
, 5, 5) |
4776 __gen_field(values
->GenericMediaStateClear
, 4, 4) |
4777 __gen_field(values
->GlobalSnapshotCountReset
, 3, 3) |
4778 __gen_field(values
->RenderCacheFlushInhibit
, 2, 2) |
4779 __gen_field(values
->StateInstructionCacheInvalidate
, 1, 1) |
4784 #define GEN7_MI_LOAD_REGISTER_IMM_length 0x00000003
4785 #define GEN7_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
4786 #define GEN7_MI_LOAD_REGISTER_IMM_header \
4788 .MICommandOpcode = 34, \
4791 struct GEN7_MI_LOAD_REGISTER_IMM
{
4792 uint32_t CommandType
;
4793 uint32_t MICommandOpcode
;
4794 uint32_t ByteWriteDisables
;
4795 uint32_t DwordLength
;
4796 uint32_t RegisterOffset
;
4801 GEN7_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
4802 const struct GEN7_MI_LOAD_REGISTER_IMM
* restrict values
)
4804 uint32_t *dw
= (uint32_t * restrict
) dst
;
4807 __gen_field(values
->CommandType
, 29, 31) |
4808 __gen_field(values
->MICommandOpcode
, 23, 28) |
4809 __gen_field(values
->ByteWriteDisables
, 8, 11) |
4810 __gen_field(values
->DwordLength
, 0, 7) |
4814 __gen_offset(values
->RegisterOffset
, 2, 22) |
4818 __gen_field(values
->DataDWord
, 0, 31) |
4823 #define GEN7_MI_LOAD_REGISTER_MEM_length 0x00000003
4824 #define GEN7_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
4825 #define GEN7_MI_LOAD_REGISTER_MEM_header \
4827 .MICommandOpcode = 41, \
4830 struct GEN7_MI_LOAD_REGISTER_MEM
{
4831 uint32_t CommandType
;
4832 uint32_t MICommandOpcode
;
4833 uint32_t UseGlobalGTT
;
4834 uint32_t AsyncModeEnable
;
4835 uint32_t DwordLength
;
4836 uint32_t RegisterAddress
;
4837 __gen_address_type MemoryAddress
;
4841 GEN7_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
4842 const struct GEN7_MI_LOAD_REGISTER_MEM
* restrict values
)
4844 uint32_t *dw
= (uint32_t * restrict
) dst
;
4847 __gen_field(values
->CommandType
, 29, 31) |
4848 __gen_field(values
->MICommandOpcode
, 23, 28) |
4849 __gen_field(values
->UseGlobalGTT
, 22, 22) |
4850 __gen_field(values
->AsyncModeEnable
, 21, 21) |
4851 __gen_field(values
->DwordLength
, 0, 7) |
4855 __gen_offset(values
->RegisterAddress
, 2, 22) |
4862 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
4866 #define GEN7_MI_NOOP_length 0x00000001
4867 #define GEN7_MI_NOOP_length_bias 0x00000001
4868 #define GEN7_MI_NOOP_header \
4870 .MICommandOpcode = 0
4872 struct GEN7_MI_NOOP
{
4873 uint32_t CommandType
;
4874 uint32_t MICommandOpcode
;
4875 uint32_t IdentificationNumberRegisterWriteEnable
;
4876 uint32_t IdentificationNumber
;
4880 GEN7_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
4881 const struct GEN7_MI_NOOP
* restrict values
)
4883 uint32_t *dw
= (uint32_t * restrict
) dst
;
4886 __gen_field(values
->CommandType
, 29, 31) |
4887 __gen_field(values
->MICommandOpcode
, 23, 28) |
4888 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
4889 __gen_field(values
->IdentificationNumber
, 0, 21) |
4894 #define GEN7_MI_PREDICATE_length 0x00000001
4895 #define GEN7_MI_PREDICATE_length_bias 0x00000001
4896 #define GEN7_MI_PREDICATE_header \
4898 .MICommandOpcode = 12
4900 struct GEN7_MI_PREDICATE
{
4901 uint32_t CommandType
;
4902 uint32_t MICommandOpcode
;
4906 uint32_t LoadOperation
;
4907 #define COMBINE_SET 0
4908 #define COMBINE_AND 1
4909 #define COMBINE_OR 2
4910 #define COMBINE_XOR 3
4911 uint32_t CombineOperation
;
4912 #define COMPARE_SRCS_EQUAL 2
4913 #define COMPARE_DELTAS_EQUAL 3
4914 uint32_t CompareOperation
;
4918 GEN7_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
4919 const struct GEN7_MI_PREDICATE
* restrict values
)
4921 uint32_t *dw
= (uint32_t * restrict
) dst
;
4924 __gen_field(values
->CommandType
, 29, 31) |
4925 __gen_field(values
->MICommandOpcode
, 23, 28) |
4926 __gen_field(values
->LoadOperation
, 6, 7) |
4927 __gen_field(values
->CombineOperation
, 3, 4) |
4928 __gen_field(values
->CompareOperation
, 0, 1) |
4933 #define GEN7_MI_REPORT_HEAD_length 0x00000001
4934 #define GEN7_MI_REPORT_HEAD_length_bias 0x00000001
4935 #define GEN7_MI_REPORT_HEAD_header \
4937 .MICommandOpcode = 7
4939 struct GEN7_MI_REPORT_HEAD
{
4940 uint32_t CommandType
;
4941 uint32_t MICommandOpcode
;
4945 GEN7_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
4946 const struct GEN7_MI_REPORT_HEAD
* restrict values
)
4948 uint32_t *dw
= (uint32_t * restrict
) dst
;
4951 __gen_field(values
->CommandType
, 29, 31) |
4952 __gen_field(values
->MICommandOpcode
, 23, 28) |
4957 #define GEN7_MI_SEMAPHORE_MBOX_length 0x00000003
4958 #define GEN7_MI_SEMAPHORE_MBOX_length_bias 0x00000002
4959 #define GEN7_MI_SEMAPHORE_MBOX_header \
4961 .MICommandOpcode = 22, \
4964 struct GEN7_MI_SEMAPHORE_MBOX
{
4965 uint32_t CommandType
;
4966 uint32_t MICommandOpcode
;
4969 #define UseGeneralRegisterSelect 3
4970 uint32_t RegisterSelect
;
4971 uint32_t DwordLength
;
4972 uint32_t SemaphoreDataDword
;
4976 GEN7_MI_SEMAPHORE_MBOX_pack(__gen_user_data
*data
, void * restrict dst
,
4977 const struct GEN7_MI_SEMAPHORE_MBOX
* restrict values
)
4979 uint32_t *dw
= (uint32_t * restrict
) dst
;
4982 __gen_field(values
->CommandType
, 29, 31) |
4983 __gen_field(values
->MICommandOpcode
, 23, 28) |
4984 __gen_field(values
->RegisterSelect
, 16, 17) |
4985 __gen_field(values
->DwordLength
, 0, 7) |
4989 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
4997 #define GEN7_MI_SET_CONTEXT_length 0x00000002
4998 #define GEN7_MI_SET_CONTEXT_length_bias 0x00000002
4999 #define GEN7_MI_SET_CONTEXT_header \
5001 .MICommandOpcode = 24, \
5004 struct GEN7_MI_SET_CONTEXT
{
5005 uint32_t CommandType
;
5006 uint32_t MICommandOpcode
;
5007 uint32_t DwordLength
;
5008 __gen_address_type LogicalContextAddress
;
5009 uint32_t ReservedMustbe1
;
5010 uint32_t ExtendedStateSaveEnable
;
5011 uint32_t ExtendedStateRestoreEnable
;
5012 uint32_t ForceRestore
;
5013 uint32_t RestoreInhibit
;
5017 GEN7_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
5018 const struct GEN7_MI_SET_CONTEXT
* restrict values
)
5020 uint32_t *dw
= (uint32_t * restrict
) dst
;
5023 __gen_field(values
->CommandType
, 29, 31) |
5024 __gen_field(values
->MICommandOpcode
, 23, 28) |
5025 __gen_field(values
->DwordLength
, 0, 7) |
5029 __gen_field(values
->ReservedMustbe1
, 8, 8) |
5030 __gen_field(values
->ExtendedStateSaveEnable
, 3, 3) |
5031 __gen_field(values
->ExtendedStateRestoreEnable
, 2, 2) |
5032 __gen_field(values
->ForceRestore
, 1, 1) |
5033 __gen_field(values
->RestoreInhibit
, 0, 0) |
5037 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
5041 #define GEN7_MI_STORE_DATA_IMM_length 0x00000004
5042 #define GEN7_MI_STORE_DATA_IMM_length_bias 0x00000002
5043 #define GEN7_MI_STORE_DATA_IMM_header \
5045 .MICommandOpcode = 32, \
5048 struct GEN7_MI_STORE_DATA_IMM
{
5049 uint32_t CommandType
;
5050 uint32_t MICommandOpcode
;
5051 uint32_t UseGlobalGTT
;
5052 uint32_t DwordLength
;
5054 uint32_t CoreModeEnable
;
5055 uint32_t DataDWord0
;
5056 uint32_t DataDWord1
;
5060 GEN7_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5061 const struct GEN7_MI_STORE_DATA_IMM
* restrict values
)
5063 uint32_t *dw
= (uint32_t * restrict
) dst
;
5066 __gen_field(values
->CommandType
, 29, 31) |
5067 __gen_field(values
->MICommandOpcode
, 23, 28) |
5068 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5069 __gen_field(values
->DwordLength
, 0, 5) |
5076 __gen_field(values
->Address
, 2, 31) |
5077 __gen_field(values
->CoreModeEnable
, 0, 0) |
5081 __gen_field(values
->DataDWord0
, 0, 31) |
5085 __gen_field(values
->DataDWord1
, 0, 31) |
5090 #define GEN7_MI_STORE_DATA_INDEX_length 0x00000003
5091 #define GEN7_MI_STORE_DATA_INDEX_length_bias 0x00000002
5092 #define GEN7_MI_STORE_DATA_INDEX_header \
5094 .MICommandOpcode = 33, \
5097 struct GEN7_MI_STORE_DATA_INDEX
{
5098 uint32_t CommandType
;
5099 uint32_t MICommandOpcode
;
5100 uint32_t DwordLength
;
5102 uint32_t DataDWord0
;
5103 uint32_t DataDWord1
;
5107 GEN7_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
5108 const struct GEN7_MI_STORE_DATA_INDEX
* restrict values
)
5110 uint32_t *dw
= (uint32_t * restrict
) dst
;
5113 __gen_field(values
->CommandType
, 29, 31) |
5114 __gen_field(values
->MICommandOpcode
, 23, 28) |
5115 __gen_field(values
->DwordLength
, 0, 7) |
5119 __gen_field(values
->Offset
, 2, 11) |
5123 __gen_field(values
->DataDWord0
, 0, 31) |
5127 __gen_field(values
->DataDWord1
, 0, 31) |
5132 #define GEN7_MI_SUSPEND_FLUSH_length 0x00000001
5133 #define GEN7_MI_SUSPEND_FLUSH_length_bias 0x00000001
5134 #define GEN7_MI_SUSPEND_FLUSH_header \
5136 .MICommandOpcode = 11
5138 struct GEN7_MI_SUSPEND_FLUSH
{
5139 uint32_t CommandType
;
5140 uint32_t MICommandOpcode
;
5141 uint32_t SuspendFlush
;
5145 GEN7_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5146 const struct GEN7_MI_SUSPEND_FLUSH
* restrict values
)
5148 uint32_t *dw
= (uint32_t * restrict
) dst
;
5151 __gen_field(values
->CommandType
, 29, 31) |
5152 __gen_field(values
->MICommandOpcode
, 23, 28) |
5153 __gen_field(values
->SuspendFlush
, 0, 0) |
5158 #define GEN7_MI_TOPOLOGY_FILTER_length 0x00000001
5159 #define GEN7_MI_TOPOLOGY_FILTER_length_bias 0x00000001
5160 #define GEN7_MI_TOPOLOGY_FILTER_header \
5162 .MICommandOpcode = 13
5164 struct GEN7_MI_TOPOLOGY_FILTER
{
5165 uint32_t CommandType
;
5166 uint32_t MICommandOpcode
;
5167 uint32_t TopologyFilterValue
;
5171 GEN7_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
5172 const struct GEN7_MI_TOPOLOGY_FILTER
* restrict values
)
5174 uint32_t *dw
= (uint32_t * restrict
) dst
;
5177 __gen_field(values
->CommandType
, 29, 31) |
5178 __gen_field(values
->MICommandOpcode
, 23, 28) |
5179 __gen_field(values
->TopologyFilterValue
, 0, 5) |
5184 #define GEN7_MI_UPDATE_GTT_length_bias 0x00000002
5185 #define GEN7_MI_UPDATE_GTT_header \
5187 .MICommandOpcode = 35
5189 struct GEN7_MI_UPDATE_GTT
{
5190 uint32_t CommandType
;
5191 uint32_t MICommandOpcode
;
5192 #define PerProcessGraphicsAddress 0
5193 #define GlobalGraphicsAddress 1
5194 uint32_t UseGlobalGTT
;
5195 uint32_t DwordLength
;
5196 __gen_address_type EntryAddress
;
5197 /* variable length fields follow */
5201 GEN7_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
5202 const struct GEN7_MI_UPDATE_GTT
* restrict values
)
5204 uint32_t *dw
= (uint32_t * restrict
) dst
;
5207 __gen_field(values
->CommandType
, 29, 31) |
5208 __gen_field(values
->MICommandOpcode
, 23, 28) |
5209 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5210 __gen_field(values
->DwordLength
, 0, 7) |
5217 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
5219 /* variable length fields follow */
5222 #define GEN7_MI_URB_CLEAR_length 0x00000002
5223 #define GEN7_MI_URB_CLEAR_length_bias 0x00000002
5224 #define GEN7_MI_URB_CLEAR_header \
5226 .MICommandOpcode = 25, \
5229 struct GEN7_MI_URB_CLEAR
{
5230 uint32_t CommandType
;
5231 uint32_t MICommandOpcode
;
5232 uint32_t DwordLength
;
5233 uint32_t URBClearLength
;
5234 uint32_t URBAddress
;
5238 GEN7_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
5239 const struct GEN7_MI_URB_CLEAR
* restrict values
)
5241 uint32_t *dw
= (uint32_t * restrict
) dst
;
5244 __gen_field(values
->CommandType
, 29, 31) |
5245 __gen_field(values
->MICommandOpcode
, 23, 28) |
5246 __gen_field(values
->DwordLength
, 0, 7) |
5250 __gen_field(values
->URBClearLength
, 16, 28) |
5251 __gen_offset(values
->URBAddress
, 0, 13) |
5256 #define GEN7_MI_USER_INTERRUPT_length 0x00000001
5257 #define GEN7_MI_USER_INTERRUPT_length_bias 0x00000001
5258 #define GEN7_MI_USER_INTERRUPT_header \
5260 .MICommandOpcode = 2
5262 struct GEN7_MI_USER_INTERRUPT
{
5263 uint32_t CommandType
;
5264 uint32_t MICommandOpcode
;
5268 GEN7_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
5269 const struct GEN7_MI_USER_INTERRUPT
* restrict values
)
5271 uint32_t *dw
= (uint32_t * restrict
) dst
;
5274 __gen_field(values
->CommandType
, 29, 31) |
5275 __gen_field(values
->MICommandOpcode
, 23, 28) |
5280 #define GEN7_MI_WAIT_FOR_EVENT_length 0x00000001
5281 #define GEN7_MI_WAIT_FOR_EVENT_length_bias 0x00000001
5282 #define GEN7_MI_WAIT_FOR_EVENT_header \
5284 .MICommandOpcode = 3
5286 struct GEN7_MI_WAIT_FOR_EVENT
{
5287 uint32_t CommandType
;
5288 uint32_t MICommandOpcode
;
5289 uint32_t DisplayPipeCHorizontalBlankWaitEnable
;
5290 uint32_t DisplayPipeCVerticalBlankWaitEnable
;
5291 uint32_t DisplaySpriteCFlipPendingWaitEnable
;
5292 #define Notenabled 0
5293 uint32_t ConditionCodeWaitSelect
;
5294 uint32_t DisplayPlaneCFlipPendingWaitEnable
;
5295 uint32_t DisplayPipeCScanLineWaitEnable
;
5296 uint32_t DisplayPipeBHorizontalBlankWaitEnable
;
5297 uint32_t DisplayPipeBVerticalBlankWaitEnable
;
5298 uint32_t DisplaySpriteBFlipPendingWaitEnable
;
5299 uint32_t DisplayPlaneBFlipPendingWaitEnable
;
5300 uint32_t DisplayPipeBScanLineWaitEnable
;
5301 uint32_t DisplayPipeAHorizontalBlankWaitEnable
;
5302 uint32_t DisplayPipeAVerticalBlankWaitEnable
;
5303 uint32_t DisplaySpriteAFlipPendingWaitEnable
;
5304 uint32_t DisplayPlaneAFlipPendingWaitEnable
;
5305 uint32_t DisplayPipeAScanLineWaitEnable
;
5309 GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
5310 const struct GEN7_MI_WAIT_FOR_EVENT
* restrict values
)
5312 uint32_t *dw
= (uint32_t * restrict
) dst
;
5315 __gen_field(values
->CommandType
, 29, 31) |
5316 __gen_field(values
->MICommandOpcode
, 23, 28) |
5317 __gen_field(values
->DisplayPipeCHorizontalBlankWaitEnable
, 22, 22) |
5318 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
5319 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
5320 __gen_field(values
->ConditionCodeWaitSelect
, 16, 19) |
5321 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
5322 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
5323 __gen_field(values
->DisplayPipeBHorizontalBlankWaitEnable
, 13, 13) |
5324 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
5325 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
5326 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
5327 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
5328 __gen_field(values
->DisplayPipeAHorizontalBlankWaitEnable
, 5, 5) |
5329 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
5330 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
5331 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
5332 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
5337 #define GEN7_PIPE_CONTROL_length 0x00000005
5338 #define GEN7_PIPE_CONTROL_length_bias 0x00000002
5339 #define GEN7_PIPE_CONTROL_header \
5341 .CommandSubType = 3, \
5342 ._3DCommandOpcode = 2, \
5343 ._3DCommandSubOpcode = 0, \
5346 struct GEN7_PIPE_CONTROL
{
5347 uint32_t CommandType
;
5348 uint32_t CommandSubType
;
5349 uint32_t _3DCommandOpcode
;
5350 uint32_t _3DCommandSubOpcode
;
5351 uint32_t DwordLength
;
5354 uint32_t DestinationAddressType
;
5355 #define NoLRIOperation 0
5356 #define MMIOWriteImmediateData 1
5357 uint32_t LRIPostSyncOperation
;
5358 uint32_t StoreDataIndex
;
5359 uint32_t CommandStreamerStallEnable
;
5362 uint32_t GlobalSnapshotCountReset
;
5363 uint32_t TLBInvalidate
;
5364 uint32_t GenericMediaStateClear
;
5366 #define WriteImmediateData 1
5367 #define WritePSDepthCount 2
5368 #define WriteTimestamp 3
5369 uint32_t PostSyncOperation
;
5370 uint32_t DepthStallEnable
;
5371 #define DisableFlush 0
5372 #define EnableFlush 1
5373 uint32_t RenderTargetCacheFlushEnable
;
5374 uint32_t InstructionCacheInvalidateEnable
;
5375 uint32_t TextureCacheInvalidationEnable
;
5376 uint32_t IndirectStatePointersDisable
;
5377 uint32_t NotifyEnable
;
5378 uint32_t PipeControlFlushEnable
;
5379 uint32_t DCFlushEnable
;
5380 uint32_t VFCacheInvalidationEnable
;
5381 uint32_t ConstantCacheInvalidationEnable
;
5382 uint32_t StateCacheInvalidationEnable
;
5383 uint32_t StallAtPixelScoreboard
;
5384 #define FlushDisabled 0
5385 #define FlushEnabled 1
5386 uint32_t DepthCacheFlushEnable
;
5387 __gen_address_type Address
;
5388 uint32_t ImmediateData
;
5389 uint32_t ImmediateData0
;
5393 GEN7_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
5394 const struct GEN7_PIPE_CONTROL
* restrict values
)
5396 uint32_t *dw
= (uint32_t * restrict
) dst
;
5399 __gen_field(values
->CommandType
, 29, 31) |
5400 __gen_field(values
->CommandSubType
, 27, 28) |
5401 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5402 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5403 __gen_field(values
->DwordLength
, 0, 7) |
5407 __gen_field(values
->DestinationAddressType
, 24, 24) |
5408 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
5409 __gen_field(values
->StoreDataIndex
, 21, 21) |
5410 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
5411 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
5412 __gen_field(values
->TLBInvalidate
, 18, 18) |
5413 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
5414 __gen_field(values
->PostSyncOperation
, 14, 15) |
5415 __gen_field(values
->DepthStallEnable
, 13, 13) |
5416 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
5417 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
5418 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
5419 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
5420 __gen_field(values
->NotifyEnable
, 8, 8) |
5421 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
5422 __gen_field(values
->DCFlushEnable
, 5, 5) |
5423 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
5424 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
5425 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
5426 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
5427 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
5434 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
5437 __gen_field(values
->ImmediateData
, 0, 31) |
5441 __gen_field(values
->ImmediateData
, 0, 31) |
5446 struct GEN7_3DSTATE_CONSTANT_BODY
{
5447 uint32_t ConstantBuffer1ReadLength
;
5448 uint32_t ConstantBuffer0ReadLength
;
5449 uint32_t ConstantBuffer3ReadLength
;
5450 uint32_t ConstantBuffer2ReadLength
;
5451 __gen_address_type PointerToConstantBuffer0
;
5452 uint32_t ConstantBufferObjectControlState
;
5453 __gen_address_type PointerToConstantBuffer1
;
5454 __gen_address_type PointerToConstantBuffer2
;
5455 __gen_address_type PointerToConstantBuffer3
;
5459 GEN7_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
5460 const struct GEN7_3DSTATE_CONSTANT_BODY
* restrict values
)
5462 uint32_t *dw
= (uint32_t * restrict
) dst
;
5465 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
5466 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
5470 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
5471 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
5475 /* Struct ConstantBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
5479 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
5485 __gen_combine_address(data
, &dw
[3], values
->PointerToConstantBuffer1
, dw3
);
5491 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer2
, dw4
);
5497 __gen_combine_address(data
, &dw
[5], values
->PointerToConstantBuffer3
, dw5
);
5501 struct GEN7_VERTEX_BUFFER_STATE
{
5502 uint32_t VertexBufferIndex
;
5503 #define VERTEXDATA 0
5504 #define INSTANCEDATA 1
5505 uint32_t BufferAccessType
;
5506 uint32_t VertexBufferMemoryObjectControlState
;
5507 uint32_t AddressModifyEnable
;
5508 uint32_t NullVertexBuffer
;
5509 uint32_t VertexFetchInvalidate
;
5510 uint32_t BufferPitch
;
5511 __gen_address_type BufferStartingAddress
;
5512 __gen_address_type EndAddress
;
5513 uint32_t InstanceDataStepRate
;
5517 GEN7_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5518 const struct GEN7_VERTEX_BUFFER_STATE
* restrict values
)
5520 uint32_t *dw
= (uint32_t * restrict
) dst
;
5523 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5524 __gen_field(values
->BufferAccessType
, 20, 20) |
5525 /* Struct VertexBufferMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
5526 __gen_field(values
->AddressModifyEnable
, 14, 14) |
5527 __gen_field(values
->NullVertexBuffer
, 13, 13) |
5528 __gen_field(values
->VertexFetchInvalidate
, 12, 12) |
5529 __gen_field(values
->BufferPitch
, 0, 11) |
5536 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
5542 __gen_combine_address(data
, &dw
[2], values
->EndAddress
, dw2
);
5545 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
5550 struct GEN7_VERTEX_ELEMENT_STATE
{
5551 uint32_t VertexBufferIndex
;
5553 uint32_t SourceElementFormat
;
5554 uint32_t EdgeFlagEnable
;
5555 uint32_t SourceElementOffset
;
5556 uint32_t Component0Control
;
5557 uint32_t Component1Control
;
5558 uint32_t Component2Control
;
5559 uint32_t Component3Control
;
5563 GEN7_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5564 const struct GEN7_VERTEX_ELEMENT_STATE
* restrict values
)
5566 uint32_t *dw
= (uint32_t * restrict
) dst
;
5569 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5570 __gen_field(values
->Valid
, 25, 25) |
5571 __gen_field(values
->SourceElementFormat
, 16, 24) |
5572 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
5573 __gen_field(values
->SourceElementOffset
, 0, 11) |
5577 __gen_field(values
->Component0Control
, 28, 30) |
5578 __gen_field(values
->Component1Control
, 24, 26) |
5579 __gen_field(values
->Component2Control
, 20, 22) |
5580 __gen_field(values
->Component3Control
, 16, 18) |
5585 struct GEN7_SO_DECL_ENTRY
{
5586 uint32_t Stream3Decl
;
5587 uint32_t Stream2Decl
;
5588 uint32_t Stream1Decl
;
5589 uint32_t Stream0Decl
;
5593 GEN7_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
5594 const struct GEN7_SO_DECL_ENTRY
* restrict values
)
5596 uint32_t *dw
= (uint32_t * restrict
) dst
;
5599 /* Struct Stream3Decl: found SO_DECL */
5600 /* Struct Stream2Decl: found SO_DECL */
5601 /* Struct Stream1Decl: found SO_DECL */
5602 /* Struct Stream0Decl: found SO_DECL */
5607 struct GEN7_SO_DECL
{
5608 uint32_t OutputBufferSlot
;
5610 uint32_t RegisterIndex
;
5611 uint32_t ComponentMask
;
5615 GEN7_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
5616 const struct GEN7_SO_DECL
* restrict values
)
5618 uint32_t *dw
= (uint32_t * restrict
) dst
;
5621 __gen_field(values
->OutputBufferSlot
, 12, 13) |
5622 __gen_field(values
->HoleFlag
, 11, 11) |
5623 __gen_field(values
->RegisterIndex
, 4, 9) |
5624 __gen_field(values
->ComponentMask
, 0, 3) |
5629 struct GEN7_SCISSOR_RECT
{
5630 uint32_t ScissorRectangleYMin
;
5631 uint32_t ScissorRectangleXMin
;
5632 uint32_t ScissorRectangleYMax
;
5633 uint32_t ScissorRectangleXMax
;
5637 GEN7_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
5638 const struct GEN7_SCISSOR_RECT
* restrict values
)
5640 uint32_t *dw
= (uint32_t * restrict
) dst
;
5643 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
5644 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
5648 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
5649 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
5654 struct GEN7_SF_CLIP_VIEWPORT
{
5655 float ViewportMatrixElementm00
;
5656 float ViewportMatrixElementm11
;
5657 float ViewportMatrixElementm22
;
5658 float ViewportMatrixElementm30
;
5659 float ViewportMatrixElementm31
;
5660 float ViewportMatrixElementm32
;
5661 float XMinClipGuardband
;
5662 float XMaxClipGuardband
;
5663 float YMinClipGuardband
;
5664 float YMaxClipGuardband
;
5668 GEN7_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
5669 const struct GEN7_SF_CLIP_VIEWPORT
* restrict values
)
5671 uint32_t *dw
= (uint32_t * restrict
) dst
;
5674 __gen_float(values
->ViewportMatrixElementm00
) |
5678 __gen_float(values
->ViewportMatrixElementm11
) |
5682 __gen_float(values
->ViewportMatrixElementm22
) |
5686 __gen_float(values
->ViewportMatrixElementm30
) |
5690 __gen_float(values
->ViewportMatrixElementm31
) |
5694 __gen_float(values
->ViewportMatrixElementm32
) |
5704 __gen_float(values
->XMinClipGuardband
) |
5708 __gen_float(values
->XMaxClipGuardband
) |
5712 __gen_float(values
->YMinClipGuardband
) |
5716 __gen_float(values
->YMaxClipGuardband
) |
5724 struct GEN7_BLEND_STATE
{
5725 uint32_t ColorBufferBlendEnable
;
5726 uint32_t IndependentAlphaBlendEnable
;
5727 #define BLENDFUNCTION_ADD 0
5728 #define BLENDFUNCTION_SUBTRACT 1
5729 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5730 #define BLENDFUNCTION_MIN 3
5731 #define BLENDFUNCTION_MAX 4
5732 uint32_t AlphaBlendFunction
;
5733 #define BLENDFACTOR_ONE 1
5734 #define BLENDFACTOR_SRC_COLOR 2
5735 #define BLENDFACTOR_SRC_ALPHA 3
5736 #define BLENDFACTOR_DST_ALPHA 4
5737 #define BLENDFACTOR_DST_COLOR 5
5738 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
5739 #define BLENDFACTOR_CONST_COLOR 7
5740 #define BLENDFACTOR_CONST_ALPHA 8
5741 #define BLENDFACTOR_SRC1_COLOR 9
5742 #define BLENDFACTOR_SRC1_ALPHA 10
5743 #define BLENDFACTOR_ZERO 17
5744 #define BLENDFACTOR_INV_SRC_COLOR 18
5745 #define BLENDFACTOR_INV_SRC_ALPHA 19
5746 #define BLENDFACTOR_INV_DST_ALPHA 20
5747 #define BLENDFACTOR_INV_DST_COLOR 21
5748 #define BLENDFACTOR_INV_CONST_COLOR 23
5749 #define BLENDFACTOR_INV_CONST_ALPHA 24
5750 #define BLENDFACTOR_INV_SRC1_COLOR 25
5751 #define BLENDFACTOR_INV_SRC1_ALPHA 26
5752 uint32_t SourceAlphaBlendFactor
;
5753 uint32_t DestinationAlphaBlendFactor
;
5754 #define BLENDFUNCTION_ADD 0
5755 #define BLENDFUNCTION_SUBTRACT 1
5756 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5757 #define BLENDFUNCTION_MIN 3
5758 #define BLENDFUNCTION_MAX 4
5759 uint32_t ColorBlendFunction
;
5760 uint32_t SourceBlendFactor
;
5761 uint32_t DestinationBlendFactor
;
5762 uint32_t AlphaToCoverageEnable
;
5763 uint32_t AlphaToOneEnable
;
5764 uint32_t AlphaToCoverageDitherEnable
;
5765 uint32_t WriteDisableAlpha
;
5766 uint32_t WriteDisableRed
;
5767 uint32_t WriteDisableGreen
;
5768 uint32_t WriteDisableBlue
;
5769 uint32_t LogicOpEnable
;
5770 #define LOGICOP_CLEAR 0
5771 #define LOGICOP_NOR 1
5772 #define LOGICOP_AND_INVERTED 2
5773 #define LOGICOP_COPY_INVERTED 3
5774 #define LOGICOP_AND_REVERSE 4
5775 #define LOGICOP_INVERT 5
5776 #define LOGICOP_XOR 6
5777 #define LOGICOP_NAND 7
5778 #define LOGICOP_AND 8
5779 #define LOGICOP_EQUIV 9
5780 #define LOGICOP_NOOP 10
5781 #define LOGICOP_OR_INVERTED 11
5782 #define LOGICOP_COPY 12
5783 #define LOGICOP_OR_REVERSE 13
5784 #define LOGICOP_OR 14
5785 #define LOGICOP_SET 15
5786 uint32_t LogicOpFunction
;
5787 uint32_t AlphaTestEnable
;
5788 #define COMPAREFUNCTION_ALWAYS 0
5789 #define COMPAREFUNCTION_NEVER 1
5790 #define COMPAREFUNCTION_LESS 2
5791 #define COMPAREFUNCTION_EQUAL 3
5792 #define COMPAREFUNCTION_LEQUAL 4
5793 #define COMPAREFUNCTION_GREATER 5
5794 #define COMPAREFUNCTION_NOTEQUAL 6
5795 #define COMPAREFUNCTION_GEQUAL 7
5796 uint32_t AlphaTestFunction
;
5797 uint32_t ColorDitherEnable
;
5798 uint32_t XDitherOffset
;
5799 uint32_t YDitherOffset
;
5800 #define COLORCLAMP_UNORM 0
5801 #define COLORCLAMP_SNORM 1
5802 #define COLORCLAMP_RTFORMAT 2
5803 uint32_t ColorClampRange
;
5804 uint32_t PreBlendColorClampEnable
;
5805 uint32_t PostBlendColorClampEnable
;
5809 GEN7_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5810 const struct GEN7_BLEND_STATE
* restrict values
)
5812 uint32_t *dw
= (uint32_t * restrict
) dst
;
5815 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
5816 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
5817 __gen_field(values
->AlphaBlendFunction
, 26, 28) |
5818 __gen_field(values
->SourceAlphaBlendFactor
, 20, 24) |
5819 __gen_field(values
->DestinationAlphaBlendFactor
, 15, 19) |
5820 __gen_field(values
->ColorBlendFunction
, 11, 13) |
5821 __gen_field(values
->SourceBlendFactor
, 5, 9) |
5822 __gen_field(values
->DestinationBlendFactor
, 0, 4) |
5826 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
5827 __gen_field(values
->AlphaToOneEnable
, 30, 30) |
5828 __gen_field(values
->AlphaToCoverageDitherEnable
, 29, 29) |
5829 __gen_field(values
->WriteDisableAlpha
, 27, 27) |
5830 __gen_field(values
->WriteDisableRed
, 26, 26) |
5831 __gen_field(values
->WriteDisableGreen
, 25, 25) |
5832 __gen_field(values
->WriteDisableBlue
, 24, 24) |
5833 __gen_field(values
->LogicOpEnable
, 22, 22) |
5834 __gen_field(values
->LogicOpFunction
, 18, 21) |
5835 __gen_field(values
->AlphaTestEnable
, 16, 16) |
5836 __gen_field(values
->AlphaTestFunction
, 13, 15) |
5837 __gen_field(values
->ColorDitherEnable
, 12, 12) |
5838 __gen_field(values
->XDitherOffset
, 10, 11) |
5839 __gen_field(values
->YDitherOffset
, 8, 9) |
5840 __gen_field(values
->ColorClampRange
, 2, 3) |
5841 __gen_field(values
->PreBlendColorClampEnable
, 1, 1) |
5842 __gen_field(values
->PostBlendColorClampEnable
, 0, 0) |
5847 struct GEN7_CC_VIEWPORT
{
5853 GEN7_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
5854 const struct GEN7_CC_VIEWPORT
* restrict values
)
5856 uint32_t *dw
= (uint32_t * restrict
) dst
;
5859 __gen_float(values
->MinimumDepth
) |
5863 __gen_float(values
->MaximumDepth
) |
5868 struct GEN7_COLOR_CALC_STATE
{
5869 uint32_t StencilReferenceValue
;
5870 uint32_t BackFaceStencilReferenceValue
;
5872 #define NotCancelled 1
5873 uint32_t RoundDisableFunctionDisable
;
5874 #define ALPHATEST_UNORM8 0
5875 #define ALPHATEST_FLOAT32 1
5876 uint32_t AlphaTestFormat
;
5877 uint32_t AlphaReferenceValueAsUNORM8
;
5878 float AlphaReferenceValueAsFLOAT32
;
5879 float BlendConstantColorRed
;
5880 float BlendConstantColorGreen
;
5881 float BlendConstantColorBlue
;
5882 float BlendConstantColorAlpha
;
5886 GEN7_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5887 const struct GEN7_COLOR_CALC_STATE
* restrict values
)
5889 uint32_t *dw
= (uint32_t * restrict
) dst
;
5892 __gen_field(values
->StencilReferenceValue
, 24, 31) |
5893 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
5894 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
5895 __gen_field(values
->AlphaTestFormat
, 0, 0) |
5899 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
5900 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
5904 __gen_float(values
->BlendConstantColorRed
) |
5908 __gen_float(values
->BlendConstantColorGreen
) |
5912 __gen_float(values
->BlendConstantColorBlue
) |
5916 __gen_float(values
->BlendConstantColorAlpha
) |
5921 struct GEN7_DEPTH_STENCIL_STATE
{
5922 uint32_t StencilTestEnable
;
5923 #define COMPAREFUNCTION_ALWAYS 0
5924 #define COMPAREFUNCTION_NEVER 1
5925 #define COMPAREFUNCTION_LESS 2
5926 #define COMPAREFUNCTION_EQUAL 3
5927 #define COMPAREFUNCTION_LEQUAL 4
5928 #define COMPAREFUNCTION_GREATER 5
5929 #define COMPAREFUNCTION_NOTEQUAL 6
5930 #define COMPAREFUNCTION_GEQUAL 7
5931 uint32_t StencilTestFunction
;
5932 #define STENCILOP_KEEP 0
5933 #define STENCILOP_ZERO 1
5934 #define STENCILOP_REPLACE 2
5935 #define STENCILOP_INCRSAT 3
5936 #define STENCILOP_DECRSAT 4
5937 #define STENCILOP_INCR 5
5938 #define STENCILOP_DECR 6
5939 #define STENCILOP_INVERT 7
5940 uint32_t StencilFailOp
;
5941 uint32_t StencilPassDepthFailOp
;
5942 uint32_t StencilPassDepthPassOp
;
5943 uint32_t StencilBufferWriteEnable
;
5944 uint32_t DoubleSidedStencilEnable
;
5945 #define COMPAREFUNCTION_ALWAYS 0
5946 #define COMPAREFUNCTION_NEVER 1
5947 #define COMPAREFUNCTION_LESS 2
5948 #define COMPAREFUNCTION_EQUAL 3
5949 #define COMPAREFUNCTION_LEQUAL 4
5950 #define COMPAREFUNCTION_GREATER 5
5951 #define COMPAREFUNCTION_NOTEQUAL 6
5952 #define COMPAREFUNCTION_GEQUAL 7
5953 uint32_t BackFaceStencilTestFunction
;
5954 #define STENCILOP_KEEP 0
5955 #define STENCILOP_ZERO 1
5956 #define STENCILOP_REPLACE 2
5957 #define STENCILOP_INCRSAT 3
5958 #define STENCILOP_DECRSAT 4
5959 #define STENCILOP_INCR 5
5960 #define STENCILOP_DECR 6
5961 #define STENCILOP_INVERT 7
5962 uint32_t BackfaceStencilFailOp
;
5963 uint32_t BackfaceStencilPassDepthFailOp
;
5964 uint32_t BackfaceStencilPassDepthPassOp
;
5965 uint32_t StencilTestMask
;
5966 uint32_t StencilWriteMask
;
5967 uint32_t BackfaceStencilTestMask
;
5968 uint32_t BackfaceStencilWriteMask
;
5969 uint32_t DepthTestEnable
;
5970 #define COMPAREFUNCTION_ALWAYS 0
5971 #define COMPAREFUNCTION_NEVER 1
5972 #define COMPAREFUNCTION_LESS 2
5973 #define COMPAREFUNCTION_EQUAL 3
5974 #define COMPAREFUNCTION_LEQUAL 4
5975 #define COMPAREFUNCTION_GREATER 5
5976 #define COMPAREFUNCTION_NOTEQUAL 6
5977 #define COMPAREFUNCTION_GEQUAL 7
5978 uint32_t DepthTestFunction
;
5979 uint32_t DepthBufferWriteEnable
;
5983 GEN7_DEPTH_STENCIL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5984 const struct GEN7_DEPTH_STENCIL_STATE
* restrict values
)
5986 uint32_t *dw
= (uint32_t * restrict
) dst
;
5989 __gen_field(values
->StencilTestEnable
, 31, 31) |
5990 __gen_field(values
->StencilTestFunction
, 28, 30) |
5991 __gen_field(values
->StencilFailOp
, 25, 27) |
5992 __gen_field(values
->StencilPassDepthFailOp
, 22, 24) |
5993 __gen_field(values
->StencilPassDepthPassOp
, 19, 21) |
5994 __gen_field(values
->StencilBufferWriteEnable
, 18, 18) |
5995 __gen_field(values
->DoubleSidedStencilEnable
, 15, 15) |
5996 __gen_field(values
->BackFaceStencilTestFunction
, 12, 14) |
5997 __gen_field(values
->BackfaceStencilFailOp
, 9, 11) |
5998 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 6, 8) |
5999 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 3, 5) |
6003 __gen_field(values
->StencilTestMask
, 24, 31) |
6004 __gen_field(values
->StencilWriteMask
, 16, 23) |
6005 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
6006 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
6010 __gen_field(values
->DepthTestEnable
, 31, 31) |
6011 __gen_field(values
->DepthTestFunction
, 27, 29) |
6012 __gen_field(values
->DepthBufferWriteEnable
, 26, 26) |
6017 struct GEN7_MEMORY_OBJECT_CONTROL_STATE
{
6018 uint32_t GraphicsDataTypeGFDT
;
6019 uint32_t LLCCacheabilityControlLLCCC
;
6020 uint32_t L3CacheabilityControlL3CC
;
6024 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6025 const struct GEN7_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
6027 uint32_t *dw
= (uint32_t * restrict
) dst
;
6030 __gen_field(values
->GraphicsDataTypeGFDT
, 2, 2) |
6031 __gen_field(values
->LLCCacheabilityControlLLCCC
, 1, 1) |
6032 __gen_field(values
->L3CacheabilityControlL3CC
, 0, 0) |
6037 struct GEN7_INTERFACE_DESCRIPTOR_DATA
{
6038 uint32_t KernelStartPointer
;
6041 uint32_t SingleProgramFlow
;
6042 #define NormalPriority 0
6043 #define HighPriority 1
6044 uint32_t ThreadPriority
;
6047 uint32_t FloatingPointMode
;
6048 uint32_t IllegalOpcodeExceptionEnable
;
6049 uint32_t MaskStackExceptionEnable
;
6050 uint32_t SoftwareExceptionEnable
;
6051 uint32_t SamplerStatePointer
;
6052 #define Nosamplersused 0
6053 #define Between1and4samplersused 1
6054 #define Between5and8samplersused 2
6055 #define Between9and12samplersused 3
6056 #define Between13and16samplersused 4
6057 uint32_t SamplerCount
;
6058 uint32_t BindingTablePointer
;
6059 uint32_t BindingTableEntryCount
;
6060 uint32_t ConstantURBEntryReadLength
;
6061 uint32_t ConstantURBEntryReadOffset
;
6066 uint32_t RoundingMode
;
6067 uint32_t BarrierEnable
;
6068 uint32_t SharedLocalMemorySize
;
6069 uint32_t NumberofThreadsinGPGPUThreadGroup
;
6073 GEN7_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
6074 const struct GEN7_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
6076 uint32_t *dw
= (uint32_t * restrict
) dst
;
6079 __gen_offset(values
->KernelStartPointer
, 6, 31) |
6083 __gen_field(values
->SingleProgramFlow
, 18, 18) |
6084 __gen_field(values
->ThreadPriority
, 17, 17) |
6085 __gen_field(values
->FloatingPointMode
, 16, 16) |
6086 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
6087 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
6088 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
6092 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
6093 __gen_field(values
->SamplerCount
, 2, 4) |
6097 __gen_offset(values
->BindingTablePointer
, 5, 15) |
6098 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
6102 __gen_field(values
->ConstantURBEntryReadLength
, 16, 31) |
6103 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
6107 __gen_field(values
->RoundingMode
, 22, 23) |
6108 __gen_field(values
->BarrierEnable
, 21, 21) |
6109 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
6110 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 7) |
6121 struct GEN7_PALETTE_ENTRY
{
6129 GEN7_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
6130 const struct GEN7_PALETTE_ENTRY
* restrict values
)
6132 uint32_t *dw
= (uint32_t * restrict
) dst
;
6135 __gen_field(values
->Alpha
, 24, 31) |
6136 __gen_field(values
->Red
, 16, 23) |
6137 __gen_field(values
->Green
, 8, 15) |
6138 __gen_field(values
->Blue
, 0, 7) |
6143 struct GEN7_SAMPLER_BORDER_COLOR_STATE
{
6144 uint32_t BorderColorRedDX100GL
;
6145 uint32_t BorderColorAlpha
;
6146 uint32_t BorderColorBlue
;
6147 uint32_t BorderColorGreen
;
6148 uint32_t BorderColorRedDX9
;
6149 uint32_t BorderColorGreen0
;
6150 uint32_t BorderColorBlue0
;
6151 uint32_t BorderColorAlpha0
;
6155 GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6156 const struct GEN7_SAMPLER_BORDER_COLOR_STATE
* restrict values
)
6158 uint32_t *dw
= (uint32_t * restrict
) dst
;
6161 __gen_field(values
->BorderColorRedDX100GL
, 0, 31) |
6162 __gen_field(values
->BorderColorAlpha
, 24, 31) |
6163 __gen_field(values
->BorderColorBlue
, 16, 23) |
6164 __gen_field(values
->BorderColorGreen
, 8, 15) |
6165 __gen_field(values
->BorderColorRedDX9
, 0, 7) |
6169 __gen_field(values
->BorderColorGreen
, 0, 31) |
6173 __gen_field(values
->BorderColorBlue
, 0, 31) |
6177 __gen_field(values
->BorderColorAlpha
, 0, 31) |
6182 struct GEN7_SAMPLER_STATE
{
6183 uint32_t SamplerDisable
;
6186 uint32_t TextureBorderColorMode
;
6188 uint32_t LODPreClampEnable
;
6189 uint32_t BaseMipLevel
;
6190 #define MIPFILTER_NONE 0
6191 #define MIPFILTER_NEAREST 1
6192 #define MIPFILTER_LINEAR 3
6193 uint32_t MipModeFilter
;
6194 #define MAPFILTER_NEAREST 0
6195 #define MAPFILTER_LINEAR 1
6196 #define MAPFILTER_ANISOTROPIC 2
6197 #define MAPFILTER_MONO 6
6198 uint32_t MagModeFilter
;
6199 #define MAPFILTER_NEAREST 0
6200 #define MAPFILTER_LINEAR 1
6201 #define MAPFILTER_ANISOTROPIC 2
6202 #define MAPFILTER_MONO 6
6203 uint32_t MinModeFilter
;
6204 uint32_t TextureLODBias
;
6206 #define EWAApproximation 1
6207 uint32_t AnisotropicAlgorithm
;
6210 #define PREFILTEROPALWAYS 0
6211 #define PREFILTEROPNEVER 1
6212 #define PREFILTEROPLESS 2
6213 #define PREFILTEROPEQUAL 3
6214 #define PREFILTEROPLEQUAL 4
6215 #define PREFILTEROPGREATER 5
6216 #define PREFILTEROPNOTEQUAL 6
6217 #define PREFILTEROPGEQUAL 7
6218 uint32_t ShadowFunction
;
6219 #define PROGRAMMED 0
6221 uint32_t CubeSurfaceControlMode
;
6222 uint32_t BorderColorPointer
;
6223 uint32_t ChromaKeyEnable
;
6224 uint32_t ChromaKeyIndex
;
6225 #define KEYFILTER_KILL_ON_ANY_MATCH 0
6226 #define KEYFILTER_REPLACE_BLACK 1
6227 uint32_t ChromaKeyMode
;
6236 uint32_t MaximumAnisotropy
;
6237 uint32_t RAddressMinFilterRoundingEnable
;
6238 uint32_t RAddressMagFilterRoundingEnable
;
6239 uint32_t VAddressMinFilterRoundingEnable
;
6240 uint32_t VAddressMagFilterRoundingEnable
;
6241 uint32_t UAddressMinFilterRoundingEnable
;
6242 uint32_t UAddressMagFilterRoundingEnable
;
6246 uint32_t TrilinearFilterQuality
;
6247 uint32_t NonnormalizedCoordinateEnable
;
6248 uint32_t TCXAddressControlMode
;
6249 uint32_t TCYAddressControlMode
;
6250 uint32_t TCZAddressControlMode
;
6254 GEN7_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6255 const struct GEN7_SAMPLER_STATE
* restrict values
)
6257 uint32_t *dw
= (uint32_t * restrict
) dst
;
6260 __gen_field(values
->SamplerDisable
, 31, 31) |
6261 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
6262 __gen_field(values
->LODPreClampEnable
, 28, 28) |
6263 __gen_field(values
->BaseMipLevel
, 22, 26) |
6264 __gen_field(values
->MipModeFilter
, 20, 21) |
6265 __gen_field(values
->MagModeFilter
, 17, 19) |
6266 __gen_field(values
->MinModeFilter
, 14, 16) |
6267 __gen_field(values
->TextureLODBias
, 1, 13) |
6268 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
6272 __gen_field(values
->MinLOD
, 20, 31) |
6273 __gen_field(values
->MaxLOD
, 8, 19) |
6274 __gen_field(values
->ShadowFunction
, 1, 3) |
6275 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
6279 __gen_offset(values
->BorderColorPointer
, 5, 31) |
6283 __gen_field(values
->ChromaKeyEnable
, 25, 25) |
6284 __gen_field(values
->ChromaKeyIndex
, 23, 24) |
6285 __gen_field(values
->ChromaKeyMode
, 22, 22) |
6286 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
6287 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
6288 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
6289 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
6290 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
6291 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
6292 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
6293 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
6294 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
6295 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
6296 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
6297 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
6302 /* Enum 3D_Prim_Topo_Type */
6303 #define _3DPRIM_POINTLIST 1
6304 #define _3DPRIM_LINELIST 2
6305 #define _3DPRIM_LINESTRIP 3
6306 #define _3DPRIM_TRILIST 4
6307 #define _3DPRIM_TRISTRIP 5
6308 #define _3DPRIM_TRIFAN 6
6309 #define _3DPRIM_QUADLIST 7
6310 #define _3DPRIM_QUADSTRIP 8
6311 #define _3DPRIM_LINELIST_ADJ 9
6312 #define _3DPRIM_LISTSTRIP_ADJ 10
6313 #define _3DPRIM_TRILIST_ADJ 11
6314 #define _3DPRIM_TRISTRIP_ADJ 12
6315 #define _3DPRIM_TRISTRIP_REVERSE 13
6316 #define _3DPRIM_POLYGON 14
6317 #define _3DPRIM_RECTLIST 15
6318 #define _3DPRIM_LINELOOP 16
6319 #define _3DPRIM_POINTLIST_BF 17
6320 #define _3DPRIM_LINESTRIP_CONT 18
6321 #define _3DPRIM_LINESTRIP_BF 19
6322 #define _3DPRIM_LINESTRIP_CONT_BF 20
6323 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
6324 #define _3DPRIM_PATCHLIST_1 32
6325 #define _3DPRIM_PATCHLIST_2 33
6326 #define _3DPRIM_PATCHLIST_3 34
6327 #define _3DPRIM_PATCHLIST_4 35
6328 #define _3DPRIM_PATCHLIST_5 36
6329 #define _3DPRIM_PATCHLIST_6 37
6330 #define _3DPRIM_PATCHLIST_7 38
6331 #define _3DPRIM_PATCHLIST_8 39
6332 #define _3DPRIM_PATCHLIST_9 40
6333 #define _3DPRIM_PATCHLIST_10 41
6334 #define _3DPRIM_PATCHLIST_11 42
6335 #define _3DPRIM_PATCHLIST_12 43
6336 #define _3DPRIM_PATCHLIST_13 44
6337 #define _3DPRIM_PATCHLIST_14 45
6338 #define _3DPRIM_PATCHLIST_15 46
6339 #define _3DPRIM_PATCHLIST_16 47
6340 #define _3DPRIM_PATCHLIST_17 48
6341 #define _3DPRIM_PATCHLIST_18 49
6342 #define _3DPRIM_PATCHLIST_19 50
6343 #define _3DPRIM_PATCHLIST_20 51
6344 #define _3DPRIM_PATCHLIST_21 52
6345 #define _3DPRIM_PATCHLIST_22 53
6346 #define _3DPRIM_PATCHLIST_23 54
6347 #define _3DPRIM_PATCHLIST_24 55
6348 #define _3DPRIM_PATCHLIST_25 56
6349 #define _3DPRIM_PATCHLIST_26 57
6350 #define _3DPRIM_PATCHLIST_27 58
6351 #define _3DPRIM_PATCHLIST_28 59
6352 #define _3DPRIM_PATCHLIST_29 60
6353 #define _3DPRIM_PATCHLIST_30 61
6354 #define _3DPRIM_PATCHLIST_31 62
6355 #define _3DPRIM_PATCHLIST_32 63
6357 /* Enum 3D_Vertex_Component_Control */
6358 #define VFCOMP_NOSTORE 0
6359 #define VFCOMP_STORE_SRC 1
6360 #define VFCOMP_STORE_0 2
6361 #define VFCOMP_STORE_1_FP 3
6362 #define VFCOMP_STORE_1_INT 4
6363 #define VFCOMP_STORE_VID 5
6364 #define VFCOMP_STORE_IID 6
6365 #define VFCOMP_STORE_PID 7
6367 /* Enum 3D_Compare_Function */
6368 #define COMPAREFUNCTION_ALWAYS 0
6369 #define COMPAREFUNCTION_NEVER 1
6370 #define COMPAREFUNCTION_LESS 2
6371 #define COMPAREFUNCTION_EQUAL 3
6372 #define COMPAREFUNCTION_LEQUAL 4
6373 #define COMPAREFUNCTION_GREATER 5
6374 #define COMPAREFUNCTION_NOTEQUAL 6
6375 #define COMPAREFUNCTION_GEQUAL 7
6377 /* Enum SURFACE_FORMAT */
6378 #define R32G32B32A32_FLOAT 0
6379 #define R32G32B32A32_SINT 1
6380 #define R32G32B32A32_UINT 2
6381 #define R32G32B32A32_UNORM 3
6382 #define R32G32B32A32_SNORM 4
6383 #define R64G64_FLOAT 5
6384 #define R32G32B32X32_FLOAT 6
6385 #define R32G32B32A32_SSCALED 7
6386 #define R32G32B32A32_USCALED 8
6387 #define R32G32B32A32_SFIXED 32
6388 #define R64G64_PASSTHRU 33
6389 #define R32G32B32_FLOAT 64
6390 #define R32G32B32_SINT 65
6391 #define R32G32B32_UINT 66
6392 #define R32G32B32_UNORM 67
6393 #define R32G32B32_SNORM 68
6394 #define R32G32B32_SSCALED 69
6395 #define R32G32B32_USCALED 70
6396 #define R32G32B32_SFIXED 80
6397 #define R16G16B16A16_UNORM 128
6398 #define R16G16B16A16_SNORM 129
6399 #define R16G16B16A16_SINT 130
6400 #define R16G16B16A16_UINT 131
6401 #define R16G16B16A16_FLOAT 132
6402 #define R32G32_FLOAT 133
6403 #define R32G32_SINT 134
6404 #define R32G32_UINT 135
6405 #define R32_FLOAT_X8X24_TYPELESS 136
6406 #define X32_TYPELESS_G8X24_UINT 137
6407 #define L32A32_FLOAT 138
6408 #define R32G32_UNORM 139
6409 #define R32G32_SNORM 140
6410 #define R64_FLOAT 141
6411 #define R16G16B16X16_UNORM 142
6412 #define R16G16B16X16_FLOAT 143
6413 #define A32X32_FLOAT 144
6414 #define L32X32_FLOAT 145
6415 #define I32X32_FLOAT 146
6416 #define R16G16B16A16_SSCALED 147
6417 #define R16G16B16A16_USCALED 148
6418 #define R32G32_SSCALED 149
6419 #define R32G32_USCALED 150
6420 #define R32G32_SFIXED 160
6421 #define R64_PASSTHRU 161
6422 #define B8G8R8A8_UNORM 192
6423 #define B8G8R8A8_UNORM_SRGB 193
6424 #define R10G10B10A2_UNORM 194
6425 #define R10G10B10A2_UNORM_SRGB 195
6426 #define R10G10B10A2_UINT 196
6427 #define R10G10B10_SNORM_A2_UNORM 197
6428 #define R8G8B8A8_UNORM 199
6429 #define R8G8B8A8_UNORM_SRGB 200
6430 #define R8G8B8A8_SNORM 201
6431 #define R8G8B8A8_SINT 202
6432 #define R8G8B8A8_UINT 203
6433 #define R16G16_UNORM 204
6434 #define R16G16_SNORM 205
6435 #define R16G16_SINT 206
6436 #define R16G16_UINT 207
6437 #define R16G16_FLOAT 208
6438 #define B10G10R10A2_UNORM 209
6439 #define B10G10R10A2_UNORM_SRGB 210
6440 #define R11G11B10_FLOAT 211
6441 #define R32_SINT 214
6442 #define R32_UINT 215
6443 #define R32_FLOAT 216
6444 #define R24_UNORM_X8_TYPELESS 217
6445 #define X24_TYPELESS_G8_UINT 218
6446 #define L32_UNORM 221
6447 #define A32_UNORM 222
6448 #define L16A16_UNORM 223
6449 #define I24X8_UNORM 224
6450 #define L24X8_UNORM 225
6451 #define A24X8_UNORM 226
6452 #define I32_FLOAT 227
6453 #define L32_FLOAT 228
6454 #define A32_FLOAT 229
6455 #define X8B8_UNORM_G8R8_SNORM 230
6456 #define A8X8_UNORM_G8R8_SNORM 231
6457 #define B8X8_UNORM_G8R8_SNORM 232
6458 #define B8G8R8X8_UNORM 233
6459 #define B8G8R8X8_UNORM_SRGB 234
6460 #define R8G8B8X8_UNORM 235
6461 #define R8G8B8X8_UNORM_SRGB 236
6462 #define R9G9B9E5_SHAREDEXP 237
6463 #define B10G10R10X2_UNORM 238
6464 #define L16A16_FLOAT 240
6465 #define R32_UNORM 241
6466 #define R32_SNORM 242
6467 #define R10G10B10X2_USCALED 243
6468 #define R8G8B8A8_SSCALED 244
6469 #define R8G8B8A8_USCALED 245
6470 #define R16G16_SSCALED 246
6471 #define R16G16_USCALED 247
6472 #define R32_SSCALED 248
6473 #define R32_USCALED 249
6474 #define B5G6R5_UNORM 256
6475 #define B5G6R5_UNORM_SRGB 257
6476 #define B5G5R5A1_UNORM 258
6477 #define B5G5R5A1_UNORM_SRGB 259
6478 #define B4G4R4A4_UNORM 260
6479 #define B4G4R4A4_UNORM_SRGB 261
6480 #define R8G8_UNORM 262
6481 #define R8G8_SNORM 263
6482 #define R8G8_SINT 264
6483 #define R8G8_UINT 265
6484 #define R16_UNORM 266
6485 #define R16_SNORM 267
6486 #define R16_SINT 268
6487 #define R16_UINT 269
6488 #define R16_FLOAT 270
6489 #define A8P8_UNORM_PALETTE0 271
6490 #define A8P8_UNORM_PALETTE1 272
6491 #define I16_UNORM 273
6492 #define L16_UNORM 274
6493 #define A16_UNORM 275
6494 #define L8A8_UNORM 276
6495 #define I16_FLOAT 277
6496 #define L16_FLOAT 278
6497 #define A16_FLOAT 279
6498 #define L8A8_UNORM_SRGB 280
6499 #define R5G5_SNORM_B6_UNORM 281
6500 #define B5G5R5X1_UNORM 282
6501 #define B5G5R5X1_UNORM_SRGB 283
6502 #define R8G8_SSCALED 284
6503 #define R8G8_USCALED 285
6504 #define R16_SSCALED 286
6505 #define R16_USCALED 287
6506 #define P8A8_UNORM_PALETTE0 290
6507 #define P8A8_UNORM_PALETTE1 291
6508 #define A1B5G5R5_UNORM 292
6509 #define A4B4G4R4_UNORM 293
6510 #define L8A8_UINT 294
6511 #define L8A8_SINT 295
6512 #define R8_UNORM 320
6513 #define R8_SNORM 321
6516 #define A8_UNORM 324
6517 #define I8_UNORM 325
6518 #define L8_UNORM 326
6519 #define P4A4_UNORM_PALETTE0 327
6520 #define A4P4_UNORM_PALETTE0 328
6521 #define R8_SSCALED 329
6522 #define R8_USCALED 330
6523 #define P8_UNORM_PALETTE0 331
6524 #define L8_UNORM_SRGB 332
6525 #define P8_UNORM_PALETTE1 333
6526 #define P4A4_UNORM_PALETTE1 334
6527 #define A4P4_UNORM_PALETTE1 335
6528 #define Y8_UNORM 336
6533 #define DXT1_RGB_SRGB 384
6534 #define R1_UNORM 385
6535 #define YCRCB_NORMAL 386
6536 #define YCRCB_SWAPUVY 387
6537 #define P2_UNORM_PALETTE0 388
6538 #define P2_UNORM_PALETTE1 389
6539 #define BC1_UNORM 390
6540 #define BC2_UNORM 391
6541 #define BC3_UNORM 392
6542 #define BC4_UNORM 393
6543 #define BC5_UNORM 394
6544 #define BC1_UNORM_SRGB 395
6545 #define BC2_UNORM_SRGB 396
6546 #define BC3_UNORM_SRGB 397
6548 #define YCRCB_SWAPUV 399
6549 #define YCRCB_SWAPY 400
6550 #define DXT1_RGB 401
6552 #define R8G8B8_UNORM 403
6553 #define R8G8B8_SNORM 404
6554 #define R8G8B8_SSCALED 405
6555 #define R8G8B8_USCALED 406
6556 #define R64G64B64A64_FLOAT 407
6557 #define R64G64B64_FLOAT 408
6558 #define BC4_SNORM 409
6559 #define BC5_SNORM 410
6560 #define R16G16B16_FLOAT 411
6561 #define R16G16B16_UNORM 412
6562 #define R16G16B16_SNORM 413
6563 #define R16G16B16_SSCALED 414
6564 #define R16G16B16_USCALED 415
6565 #define BC6H_SF16 417
6566 #define BC7_UNORM 418
6567 #define BC7_UNORM_SRGB 419
6568 #define BC6H_UF16 420
6569 #define PLANAR_420_8 421
6570 #define R8G8B8_UNORM_SRGB 424
6571 #define ETC1_RGB8 425
6572 #define ETC2_RGB8 426
6574 #define EAC_RG11 428
6575 #define EAC_SIGNED_R11 429
6576 #define EAC_SIGNED_RG11 430
6577 #define ETC2_SRGB8 431
6578 #define R16G16B16_UINT 432
6579 #define R16G16B16_SINT 433
6580 #define R32_SFIXED 434
6581 #define R10G10B10A2_SNORM 435
6582 #define R10G10B10A2_USCALED 436
6583 #define R10G10B10A2_SSCALED 437
6584 #define R10G10B10A2_SINT 438
6585 #define B10G10R10A2_SNORM 439
6586 #define B10G10R10A2_USCALED 440
6587 #define B10G10R10A2_SSCALED 441
6588 #define B10G10R10A2_UINT 442
6589 #define B10G10R10A2_SINT 443
6590 #define R64G64B64A64_PASSTHRU 444
6591 #define R64G64B64_PASSTHRU 445
6592 #define ETC2_RGB8_PTA 448
6593 #define ETC2_SRGB8_PTA 449
6594 #define ETC2_EAC_RGBA8 450
6595 #define ETC2_EAC_SRGB8_A8 451
6596 #define R8G8B8_UINT 456
6597 #define R8G8B8_SINT 457
6600 /* Enum Texture Coordinate Mode */
6602 #define TCM_MIRROR 1
6605 #define TCM_CLAMP_BORDER 4
6606 #define TCM_MIRROR_ONCE 5