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_validate_value
36 #define __gen_validate_value(x)
39 #ifndef __gen_field_functions
40 #define __gen_field_functions
47 static inline uint64_t
48 __gen_mbo(uint32_t start
, uint32_t end
)
50 return (~0ul >> (64 - (end
- start
+ 1))) << start
;
53 static inline uint64_t
54 __gen_field(uint64_t v
, uint32_t start
, uint32_t end
)
56 __gen_validate_value(v
);
58 if (end
- start
+ 1 < 64)
59 assert(v
< 1ul << (end
- start
+ 1));
65 static inline uint64_t
66 __gen_fixed(float v
, uint32_t start
, uint32_t end
,
67 bool is_signed
, uint32_t fract_bits
)
69 __gen_validate_value(v
);
71 const float factor
= (1 << fract_bits
);
75 max
= ((1 << (end
- start
)) - 1) / factor
;
76 min
= -(1 << (end
- start
)) / factor
;
78 max
= ((1 << (end
- start
+ 1)) - 1) / factor
;
87 int32_t int_val
= roundf(v
* factor
);
90 int_val
&= (1 << (end
- start
+ 1)) - 1;
92 return int_val
<< start
;
95 static inline uint64_t
96 __gen_offset(uint64_t v
, uint32_t start
, uint32_t end
)
98 __gen_validate_value(v
);
100 uint64_t mask
= (~0ul >> (64 - (end
- start
+ 1))) << start
;
102 assert((v
& ~mask
) == 0);
108 static inline uint32_t
111 __gen_validate_value(v
);
112 return ((union __gen_value
) { .f
= (v
) }).dw
;
115 #ifndef __gen_address_type
116 #error #define __gen_address_type before including this file
119 #ifndef __gen_user_data
120 #error #define __gen_combine_address before including this file
125 #define GEN7_3DSTATE_URB_VS_length_bias 0x00000002
126 #define GEN7_3DSTATE_URB_VS_header \
128 .CommandSubType = 3, \
129 ._3DCommandOpcode = 0, \
130 ._3DCommandSubOpcode = 48, \
133 #define GEN7_3DSTATE_URB_VS_length 0x00000002
135 struct GEN7_3DSTATE_URB_VS
{
136 uint32_t CommandType
;
137 uint32_t CommandSubType
;
138 uint32_t _3DCommandOpcode
;
139 uint32_t _3DCommandSubOpcode
;
140 uint32_t DwordLength
;
141 uint32_t VSURBStartingAddress
;
142 uint32_t VSURBEntryAllocationSize
;
143 uint32_t VSNumberofURBEntries
;
147 GEN7_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
148 const struct GEN7_3DSTATE_URB_VS
* restrict values
)
150 uint32_t *dw
= (uint32_t * restrict
) dst
;
153 __gen_field(values
->CommandType
, 29, 31) |
154 __gen_field(values
->CommandSubType
, 27, 28) |
155 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
156 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
157 __gen_field(values
->DwordLength
, 0, 7) |
161 __gen_field(values
->VSURBStartingAddress
, 25, 29) |
162 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
163 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
168 #define GEN7_MI_STORE_REGISTER_MEM_length_bias 0x00000002
169 #define GEN7_MI_STORE_REGISTER_MEM_header \
171 .MICommandOpcode = 36, \
174 #define GEN7_MI_STORE_REGISTER_MEM_length 0x00000003
176 struct GEN7_MI_STORE_REGISTER_MEM
{
177 uint32_t CommandType
;
178 uint32_t MICommandOpcode
;
180 uint32_t DwordLength
;
181 uint32_t RegisterAddress
;
182 __gen_address_type MemoryAddress
;
186 GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
187 const struct GEN7_MI_STORE_REGISTER_MEM
* restrict values
)
189 uint32_t *dw
= (uint32_t * restrict
) dst
;
192 __gen_field(values
->CommandType
, 29, 31) |
193 __gen_field(values
->MICommandOpcode
, 23, 28) |
194 __gen_field(values
->UseGlobalGTT
, 22, 22) |
195 __gen_field(values
->DwordLength
, 0, 7) |
199 __gen_offset(values
->RegisterAddress
, 2, 22) |
206 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
210 #define GEN7_PIPELINE_SELECT_length_bias 0x00000001
211 #define GEN7_PIPELINE_SELECT_header \
213 .CommandSubType = 1, \
214 ._3DCommandOpcode = 1, \
215 ._3DCommandSubOpcode = 4
217 #define GEN7_PIPELINE_SELECT_length 0x00000001
219 struct GEN7_PIPELINE_SELECT
{
220 uint32_t CommandType
;
221 uint32_t CommandSubType
;
222 uint32_t _3DCommandOpcode
;
223 uint32_t _3DCommandSubOpcode
;
227 uint32_t PipelineSelection
;
231 GEN7_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
232 const struct GEN7_PIPELINE_SELECT
* restrict values
)
234 uint32_t *dw
= (uint32_t * restrict
) dst
;
237 __gen_field(values
->CommandType
, 29, 31) |
238 __gen_field(values
->CommandSubType
, 27, 28) |
239 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
240 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
241 __gen_field(values
->PipelineSelection
, 0, 1) |
246 #define GEN7_STATE_BASE_ADDRESS_length_bias 0x00000002
247 #define GEN7_STATE_BASE_ADDRESS_header \
249 .CommandSubType = 0, \
250 ._3DCommandOpcode = 1, \
251 ._3DCommandSubOpcode = 1, \
254 #define GEN7_STATE_BASE_ADDRESS_length 0x0000000a
256 #define GEN7_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
258 struct GEN7_MEMORY_OBJECT_CONTROL_STATE
{
259 uint32_t GraphicsDataTypeGFDT
;
260 uint32_t LLCCacheabilityControlLLCCC
;
261 uint32_t L3CacheabilityControlL3CC
;
265 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
266 const struct GEN7_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
268 uint32_t *dw
= (uint32_t * restrict
) dst
;
271 __gen_field(values
->GraphicsDataTypeGFDT
, 2, 2) |
272 __gen_field(values
->LLCCacheabilityControlLLCCC
, 1, 1) |
273 __gen_field(values
->L3CacheabilityControlL3CC
, 0, 0) |
278 struct GEN7_STATE_BASE_ADDRESS
{
279 uint32_t CommandType
;
280 uint32_t CommandSubType
;
281 uint32_t _3DCommandOpcode
;
282 uint32_t _3DCommandSubOpcode
;
283 uint32_t DwordLength
;
284 __gen_address_type GeneralStateBaseAddress
;
285 struct GEN7_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
286 struct GEN7_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
287 uint32_t StatelessDataPortAccessForceWriteThru
;
288 bool GeneralStateBaseAddressModifyEnable
;
289 __gen_address_type SurfaceStateBaseAddress
;
290 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
291 bool SurfaceStateBaseAddressModifyEnable
;
292 __gen_address_type DynamicStateBaseAddress
;
293 struct GEN7_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
294 bool DynamicStateBaseAddressModifyEnable
;
295 __gen_address_type IndirectObjectBaseAddress
;
296 struct GEN7_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
297 bool IndirectObjectBaseAddressModifyEnable
;
298 __gen_address_type InstructionBaseAddress
;
299 struct GEN7_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
300 bool InstructionBaseAddressModifyEnable
;
301 __gen_address_type GeneralStateAccessUpperBound
;
302 bool GeneralStateAccessUpperBoundModifyEnable
;
303 __gen_address_type DynamicStateAccessUpperBound
;
304 bool DynamicStateAccessUpperBoundModifyEnable
;
305 __gen_address_type IndirectObjectAccessUpperBound
;
306 bool IndirectObjectAccessUpperBoundModifyEnable
;
307 __gen_address_type InstructionAccessUpperBound
;
308 bool InstructionAccessUpperBoundModifyEnable
;
312 GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
313 const struct GEN7_STATE_BASE_ADDRESS
* restrict values
)
315 uint32_t *dw
= (uint32_t * restrict
) dst
;
318 __gen_field(values
->CommandType
, 29, 31) |
319 __gen_field(values
->CommandSubType
, 27, 28) |
320 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
321 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
322 __gen_field(values
->DwordLength
, 0, 7) |
325 uint32_t dw_GeneralStateMemoryObjectControlState
;
326 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
327 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
328 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
330 __gen_field(dw_GeneralStateMemoryObjectControlState
, 8, 11) |
331 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 4, 7) |
332 __gen_field(values
->StatelessDataPortAccessForceWriteThru
, 3, 3) |
333 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
337 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
339 uint32_t dw_SurfaceStateMemoryObjectControlState
;
340 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
342 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 8, 11) |
343 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
347 __gen_combine_address(data
, &dw
[2], values
->SurfaceStateBaseAddress
, dw2
);
349 uint32_t dw_DynamicStateMemoryObjectControlState
;
350 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
352 __gen_field(dw_DynamicStateMemoryObjectControlState
, 8, 11) |
353 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
357 __gen_combine_address(data
, &dw
[3], values
->DynamicStateBaseAddress
, dw3
);
359 uint32_t dw_IndirectObjectMemoryObjectControlState
;
360 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
362 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 8, 11) |
363 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
367 __gen_combine_address(data
, &dw
[4], values
->IndirectObjectBaseAddress
, dw4
);
369 uint32_t dw_InstructionMemoryObjectControlState
;
370 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
372 __gen_field(dw_InstructionMemoryObjectControlState
, 8, 11) |
373 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
377 __gen_combine_address(data
, &dw
[5], values
->InstructionBaseAddress
, dw5
);
380 __gen_field(values
->GeneralStateAccessUpperBoundModifyEnable
, 0, 0) |
384 __gen_combine_address(data
, &dw
[6], values
->GeneralStateAccessUpperBound
, dw6
);
387 __gen_field(values
->DynamicStateAccessUpperBoundModifyEnable
, 0, 0) |
391 __gen_combine_address(data
, &dw
[7], values
->DynamicStateAccessUpperBound
, dw7
);
394 __gen_field(values
->IndirectObjectAccessUpperBoundModifyEnable
, 0, 0) |
398 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectAccessUpperBound
, dw8
);
401 __gen_field(values
->InstructionAccessUpperBoundModifyEnable
, 0, 0) |
405 __gen_combine_address(data
, &dw
[9], values
->InstructionAccessUpperBound
, dw9
);
409 #define GEN7_STATE_PREFETCH_length_bias 0x00000002
410 #define GEN7_STATE_PREFETCH_header \
412 .CommandSubType = 0, \
413 ._3DCommandOpcode = 0, \
414 ._3DCommandSubOpcode = 3, \
417 #define GEN7_STATE_PREFETCH_length 0x00000002
419 struct GEN7_STATE_PREFETCH
{
420 uint32_t CommandType
;
421 uint32_t CommandSubType
;
422 uint32_t _3DCommandOpcode
;
423 uint32_t _3DCommandSubOpcode
;
424 uint32_t DwordLength
;
425 __gen_address_type PrefetchPointer
;
426 uint32_t PrefetchCount
;
430 GEN7_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
431 const struct GEN7_STATE_PREFETCH
* restrict values
)
433 uint32_t *dw
= (uint32_t * restrict
) dst
;
436 __gen_field(values
->CommandType
, 29, 31) |
437 __gen_field(values
->CommandSubType
, 27, 28) |
438 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
439 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
440 __gen_field(values
->DwordLength
, 0, 7) |
444 __gen_field(values
->PrefetchCount
, 0, 2) |
448 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
452 #define GEN7_STATE_SIP_length_bias 0x00000002
453 #define GEN7_STATE_SIP_header \
455 .CommandSubType = 0, \
456 ._3DCommandOpcode = 1, \
457 ._3DCommandSubOpcode = 2, \
460 #define GEN7_STATE_SIP_length 0x00000002
462 struct GEN7_STATE_SIP
{
463 uint32_t CommandType
;
464 uint32_t CommandSubType
;
465 uint32_t _3DCommandOpcode
;
466 uint32_t _3DCommandSubOpcode
;
467 uint32_t DwordLength
;
468 uint32_t SystemInstructionPointer
;
472 GEN7_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
473 const struct GEN7_STATE_SIP
* restrict values
)
475 uint32_t *dw
= (uint32_t * restrict
) dst
;
478 __gen_field(values
->CommandType
, 29, 31) |
479 __gen_field(values
->CommandSubType
, 27, 28) |
480 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
481 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
482 __gen_field(values
->DwordLength
, 0, 7) |
486 __gen_offset(values
->SystemInstructionPointer
, 4, 31) |
491 #define GEN7_SWTESS_BASE_ADDRESS_length_bias 0x00000002
492 #define GEN7_SWTESS_BASE_ADDRESS_header \
494 .CommandSubType = 0, \
495 ._3DCommandOpcode = 1, \
496 ._3DCommandSubOpcode = 3, \
499 #define GEN7_SWTESS_BASE_ADDRESS_length 0x00000002
501 struct GEN7_SWTESS_BASE_ADDRESS
{
502 uint32_t CommandType
;
503 uint32_t CommandSubType
;
504 uint32_t _3DCommandOpcode
;
505 uint32_t _3DCommandSubOpcode
;
506 uint32_t DwordLength
;
507 __gen_address_type SWTessellationBaseAddress
;
508 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
512 GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
513 const struct GEN7_SWTESS_BASE_ADDRESS
* restrict values
)
515 uint32_t *dw
= (uint32_t * restrict
) dst
;
518 __gen_field(values
->CommandType
, 29, 31) |
519 __gen_field(values
->CommandSubType
, 27, 28) |
520 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
521 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
522 __gen_field(values
->DwordLength
, 0, 7) |
525 uint32_t dw_SWTessellationMemoryObjectControlState
;
526 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
528 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
532 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
536 #define GEN7_3DPRIMITIVE_length_bias 0x00000002
537 #define GEN7_3DPRIMITIVE_header \
539 .CommandSubType = 3, \
540 ._3DCommandOpcode = 3, \
541 ._3DCommandSubOpcode = 0, \
544 #define GEN7_3DPRIMITIVE_length 0x00000007
546 struct GEN7_3DPRIMITIVE
{
547 uint32_t CommandType
;
548 uint32_t CommandSubType
;
549 uint32_t _3DCommandOpcode
;
550 uint32_t _3DCommandSubOpcode
;
551 bool IndirectParameterEnable
;
552 bool PredicateEnable
;
553 uint32_t DwordLength
;
554 bool EndOffsetEnable
;
557 uint32_t VertexAccessType
;
558 uint32_t PrimitiveTopologyType
;
559 uint32_t VertexCountPerInstance
;
560 uint32_t StartVertexLocation
;
561 uint32_t InstanceCount
;
562 uint32_t StartInstanceLocation
;
563 uint32_t BaseVertexLocation
;
567 GEN7_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
568 const struct GEN7_3DPRIMITIVE
* restrict values
)
570 uint32_t *dw
= (uint32_t * restrict
) dst
;
573 __gen_field(values
->CommandType
, 29, 31) |
574 __gen_field(values
->CommandSubType
, 27, 28) |
575 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
576 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
577 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
578 __gen_field(values
->PredicateEnable
, 8, 8) |
579 __gen_field(values
->DwordLength
, 0, 7) |
583 __gen_field(values
->EndOffsetEnable
, 9, 9) |
584 __gen_field(values
->VertexAccessType
, 8, 8) |
585 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
589 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
593 __gen_field(values
->StartVertexLocation
, 0, 31) |
597 __gen_field(values
->InstanceCount
, 0, 31) |
601 __gen_field(values
->StartInstanceLocation
, 0, 31) |
605 __gen_field(values
->BaseVertexLocation
, 0, 31) |
610 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
611 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_header \
613 .CommandSubType = 3, \
614 ._3DCommandOpcode = 1, \
615 ._3DCommandSubOpcode = 10, \
618 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
620 struct GEN7_3DSTATE_AA_LINE_PARAMETERS
{
621 uint32_t CommandType
;
622 uint32_t CommandSubType
;
623 uint32_t _3DCommandOpcode
;
624 uint32_t _3DCommandSubOpcode
;
625 uint32_t DwordLength
;
626 float AACoverageBias
;
627 float AACoverageSlope
;
628 float AACoverageEndCapBias
;
629 float AACoverageEndCapSlope
;
633 GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
634 const struct GEN7_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
636 uint32_t *dw
= (uint32_t * restrict
) dst
;
639 __gen_field(values
->CommandType
, 29, 31) |
640 __gen_field(values
->CommandSubType
, 27, 28) |
641 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
642 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
643 __gen_field(values
->DwordLength
, 0, 7) |
647 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
648 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
652 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
653 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
658 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
659 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
661 .CommandSubType = 3, \
662 ._3DCommandOpcode = 0, \
663 ._3DCommandSubOpcode = 40, \
666 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
668 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
{
669 uint32_t CommandType
;
670 uint32_t CommandSubType
;
671 uint32_t _3DCommandOpcode
;
672 uint32_t _3DCommandSubOpcode
;
673 uint32_t DwordLength
;
674 uint32_t PointertoDSBindingTable
;
678 GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
679 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
681 uint32_t *dw
= (uint32_t * restrict
) dst
;
684 __gen_field(values
->CommandType
, 29, 31) |
685 __gen_field(values
->CommandSubType
, 27, 28) |
686 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
687 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
688 __gen_field(values
->DwordLength
, 0, 7) |
692 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
697 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
698 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
700 .CommandSubType = 3, \
701 ._3DCommandOpcode = 0, \
702 ._3DCommandSubOpcode = 41, \
705 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
707 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
{
708 uint32_t CommandType
;
709 uint32_t CommandSubType
;
710 uint32_t _3DCommandOpcode
;
711 uint32_t _3DCommandSubOpcode
;
712 uint32_t DwordLength
;
713 uint32_t PointertoGSBindingTable
;
717 GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
718 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
720 uint32_t *dw
= (uint32_t * restrict
) dst
;
723 __gen_field(values
->CommandType
, 29, 31) |
724 __gen_field(values
->CommandSubType
, 27, 28) |
725 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
726 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
727 __gen_field(values
->DwordLength
, 0, 7) |
731 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
736 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
737 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
739 .CommandSubType = 3, \
740 ._3DCommandOpcode = 0, \
741 ._3DCommandSubOpcode = 39, \
744 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
746 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
{
747 uint32_t CommandType
;
748 uint32_t CommandSubType
;
749 uint32_t _3DCommandOpcode
;
750 uint32_t _3DCommandSubOpcode
;
751 uint32_t DwordLength
;
752 uint32_t PointertoHSBindingTable
;
756 GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
757 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
759 uint32_t *dw
= (uint32_t * restrict
) dst
;
762 __gen_field(values
->CommandType
, 29, 31) |
763 __gen_field(values
->CommandSubType
, 27, 28) |
764 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
765 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
766 __gen_field(values
->DwordLength
, 0, 7) |
770 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
775 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
776 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
778 .CommandSubType = 3, \
779 ._3DCommandOpcode = 0, \
780 ._3DCommandSubOpcode = 42, \
783 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
785 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
{
786 uint32_t CommandType
;
787 uint32_t CommandSubType
;
788 uint32_t _3DCommandOpcode
;
789 uint32_t _3DCommandSubOpcode
;
790 uint32_t DwordLength
;
791 uint32_t PointertoPSBindingTable
;
795 GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
796 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
798 uint32_t *dw
= (uint32_t * restrict
) dst
;
801 __gen_field(values
->CommandType
, 29, 31) |
802 __gen_field(values
->CommandSubType
, 27, 28) |
803 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
804 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
805 __gen_field(values
->DwordLength
, 0, 7) |
809 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
814 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
815 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
817 .CommandSubType = 3, \
818 ._3DCommandOpcode = 0, \
819 ._3DCommandSubOpcode = 38, \
822 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
824 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
{
825 uint32_t CommandType
;
826 uint32_t CommandSubType
;
827 uint32_t _3DCommandOpcode
;
828 uint32_t _3DCommandSubOpcode
;
829 uint32_t DwordLength
;
830 uint32_t PointertoVSBindingTable
;
834 GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
835 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
837 uint32_t *dw
= (uint32_t * restrict
) dst
;
840 __gen_field(values
->CommandType
, 29, 31) |
841 __gen_field(values
->CommandSubType
, 27, 28) |
842 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
843 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
844 __gen_field(values
->DwordLength
, 0, 7) |
848 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
853 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
854 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_header\
856 .CommandSubType = 3, \
857 ._3DCommandOpcode = 0, \
858 ._3DCommandSubOpcode = 36, \
861 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
863 struct GEN7_3DSTATE_BLEND_STATE_POINTERS
{
864 uint32_t CommandType
;
865 uint32_t CommandSubType
;
866 uint32_t _3DCommandOpcode
;
867 uint32_t _3DCommandSubOpcode
;
868 uint32_t DwordLength
;
869 uint32_t BlendStatePointer
;
873 GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
874 const struct GEN7_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
876 uint32_t *dw
= (uint32_t * restrict
) dst
;
879 __gen_field(values
->CommandType
, 29, 31) |
880 __gen_field(values
->CommandSubType
, 27, 28) |
881 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
882 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
883 __gen_field(values
->DwordLength
, 0, 7) |
887 __gen_offset(values
->BlendStatePointer
, 6, 31) |
893 #define GEN7_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
894 #define GEN7_3DSTATE_CC_STATE_POINTERS_header \
896 .CommandSubType = 3, \
897 ._3DCommandOpcode = 0, \
898 ._3DCommandSubOpcode = 14, \
901 #define GEN7_3DSTATE_CC_STATE_POINTERS_length 0x00000002
903 struct GEN7_3DSTATE_CC_STATE_POINTERS
{
904 uint32_t CommandType
;
905 uint32_t CommandSubType
;
906 uint32_t _3DCommandOpcode
;
907 uint32_t _3DCommandSubOpcode
;
908 uint32_t DwordLength
;
909 uint32_t ColorCalcStatePointer
;
913 GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
914 const struct GEN7_3DSTATE_CC_STATE_POINTERS
* restrict values
)
916 uint32_t *dw
= (uint32_t * restrict
) dst
;
919 __gen_field(values
->CommandType
, 29, 31) |
920 __gen_field(values
->CommandSubType
, 27, 28) |
921 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
922 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
923 __gen_field(values
->DwordLength
, 0, 7) |
927 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
933 #define GEN7_3DSTATE_CHROMA_KEY_length_bias 0x00000002
934 #define GEN7_3DSTATE_CHROMA_KEY_header \
936 .CommandSubType = 3, \
937 ._3DCommandOpcode = 1, \
938 ._3DCommandSubOpcode = 4, \
941 #define GEN7_3DSTATE_CHROMA_KEY_length 0x00000004
943 struct GEN7_3DSTATE_CHROMA_KEY
{
944 uint32_t CommandType
;
945 uint32_t CommandSubType
;
946 uint32_t _3DCommandOpcode
;
947 uint32_t _3DCommandSubOpcode
;
948 uint32_t DwordLength
;
949 uint32_t ChromaKeyTableIndex
;
950 uint32_t ChromaKeyLowValue
;
951 uint32_t ChromaKeyHighValue
;
955 GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
956 const struct GEN7_3DSTATE_CHROMA_KEY
* restrict values
)
958 uint32_t *dw
= (uint32_t * restrict
) dst
;
961 __gen_field(values
->CommandType
, 29, 31) |
962 __gen_field(values
->CommandSubType
, 27, 28) |
963 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
964 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
965 __gen_field(values
->DwordLength
, 0, 7) |
969 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
973 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
977 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
982 #define GEN7_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
983 #define GEN7_3DSTATE_CLEAR_PARAMS_header \
985 .CommandSubType = 3, \
986 ._3DCommandOpcode = 0, \
987 ._3DCommandSubOpcode = 4, \
990 #define GEN7_3DSTATE_CLEAR_PARAMS_length 0x00000003
992 struct GEN7_3DSTATE_CLEAR_PARAMS
{
993 uint32_t CommandType
;
994 uint32_t CommandSubType
;
995 uint32_t _3DCommandOpcode
;
996 uint32_t _3DCommandSubOpcode
;
997 uint32_t DwordLength
;
998 uint32_t DepthClearValue
;
999 bool DepthClearValueValid
;
1003 GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
1004 const struct GEN7_3DSTATE_CLEAR_PARAMS
* restrict values
)
1006 uint32_t *dw
= (uint32_t * restrict
) dst
;
1009 __gen_field(values
->CommandType
, 29, 31) |
1010 __gen_field(values
->CommandSubType
, 27, 28) |
1011 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1012 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1013 __gen_field(values
->DwordLength
, 0, 7) |
1017 __gen_field(values
->DepthClearValue
, 0, 31) |
1021 __gen_field(values
->DepthClearValueValid
, 0, 0) |
1026 #define GEN7_3DSTATE_CLIP_length_bias 0x00000002
1027 #define GEN7_3DSTATE_CLIP_header \
1029 .CommandSubType = 3, \
1030 ._3DCommandOpcode = 0, \
1031 ._3DCommandSubOpcode = 18, \
1034 #define GEN7_3DSTATE_CLIP_length 0x00000004
1036 struct GEN7_3DSTATE_CLIP
{
1037 uint32_t CommandType
;
1038 uint32_t CommandSubType
;
1039 uint32_t _3DCommandOpcode
;
1040 uint32_t _3DCommandSubOpcode
;
1041 uint32_t DwordLength
;
1042 uint32_t FrontWinding
;
1043 uint32_t VertexSubPixelPrecisionSelect
;
1044 bool EarlyCullEnable
;
1045 #define CULLMODE_BOTH 0
1046 #define CULLMODE_NONE 1
1047 #define CULLMODE_FRONT 2
1048 #define CULLMODE_BACK 3
1050 bool ClipperStatisticsEnable
;
1051 uint32_t UserClipDistanceCullTestEnableBitmask
;
1053 #define APIMODE_OGL 0
1055 bool ViewportXYClipTestEnable
;
1056 bool ViewportZClipTestEnable
;
1057 bool GuardbandClipTestEnable
;
1058 uint32_t UserClipDistanceClipTestEnableBitmask
;
1059 #define CLIPMODE_NORMAL 0
1060 #define CLIPMODE_REJECT_ALL 3
1061 #define CLIPMODE_ACCEPT_ALL 4
1063 bool PerspectiveDivideDisable
;
1064 bool NonPerspectiveBarycentricEnable
;
1068 uint32_t TriangleStripListProvokingVertexSelect
;
1071 uint32_t LineStripListProvokingVertexSelect
;
1075 uint32_t TriangleFanProvokingVertexSelect
;
1076 float MinimumPointWidth
;
1077 float MaximumPointWidth
;
1078 bool ForceZeroRTAIndexEnable
;
1079 uint32_t MaximumVPIndex
;
1083 GEN7_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1084 const struct GEN7_3DSTATE_CLIP
* restrict values
)
1086 uint32_t *dw
= (uint32_t * restrict
) dst
;
1089 __gen_field(values
->CommandType
, 29, 31) |
1090 __gen_field(values
->CommandSubType
, 27, 28) |
1091 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1092 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1093 __gen_field(values
->DwordLength
, 0, 7) |
1097 __gen_field(values
->FrontWinding
, 20, 20) |
1098 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1099 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1100 __gen_field(values
->CullMode
, 16, 17) |
1101 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1102 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1106 __gen_field(values
->ClipEnable
, 31, 31) |
1107 __gen_field(values
->APIMode
, 30, 30) |
1108 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1109 __gen_field(values
->ViewportZClipTestEnable
, 27, 27) |
1110 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1111 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1112 __gen_field(values
->ClipMode
, 13, 15) |
1113 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1114 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1115 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1116 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1117 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1121 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
1122 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
1123 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1124 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1129 #define GEN7_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1130 #define GEN7_3DSTATE_CONSTANT_DS_header \
1132 .CommandSubType = 3, \
1133 ._3DCommandOpcode = 0, \
1134 ._3DCommandSubOpcode = 26, \
1137 #define GEN7_3DSTATE_CONSTANT_DS_length 0x00000007
1139 #define GEN7_3DSTATE_CONSTANT_BODY_length 0x00000006
1141 struct GEN7_3DSTATE_CONSTANT_BODY
{
1142 uint32_t ConstantBuffer1ReadLength
;
1143 uint32_t ConstantBuffer0ReadLength
;
1144 uint32_t ConstantBuffer3ReadLength
;
1145 uint32_t ConstantBuffer2ReadLength
;
1146 __gen_address_type PointerToConstantBuffer0
;
1147 struct GEN7_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1148 __gen_address_type PointerToConstantBuffer1
;
1149 __gen_address_type PointerToConstantBuffer2
;
1150 __gen_address_type PointerToConstantBuffer3
;
1154 GEN7_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1155 const struct GEN7_3DSTATE_CONSTANT_BODY
* restrict values
)
1157 uint32_t *dw
= (uint32_t * restrict
) dst
;
1160 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1161 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1165 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1166 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1169 uint32_t dw_ConstantBufferObjectControlState
;
1170 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1172 __gen_field(dw_ConstantBufferObjectControlState
, 0, 4) |
1176 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1182 __gen_combine_address(data
, &dw
[3], values
->PointerToConstantBuffer1
, dw3
);
1188 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer2
, dw4
);
1194 __gen_combine_address(data
, &dw
[5], values
->PointerToConstantBuffer3
, dw5
);
1198 struct GEN7_3DSTATE_CONSTANT_DS
{
1199 uint32_t CommandType
;
1200 uint32_t CommandSubType
;
1201 uint32_t _3DCommandOpcode
;
1202 uint32_t _3DCommandSubOpcode
;
1203 uint32_t DwordLength
;
1204 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1208 GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1209 const struct GEN7_3DSTATE_CONSTANT_DS
* restrict values
)
1211 uint32_t *dw
= (uint32_t * restrict
) dst
;
1214 __gen_field(values
->CommandType
, 29, 31) |
1215 __gen_field(values
->CommandSubType
, 27, 28) |
1216 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1217 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1218 __gen_field(values
->DwordLength
, 0, 7) |
1221 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1224 #define GEN7_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1225 #define GEN7_3DSTATE_CONSTANT_GS_header \
1227 .CommandSubType = 3, \
1228 ._3DCommandOpcode = 0, \
1229 ._3DCommandSubOpcode = 22, \
1232 #define GEN7_3DSTATE_CONSTANT_GS_length 0x00000007
1234 struct GEN7_3DSTATE_CONSTANT_GS
{
1235 uint32_t CommandType
;
1236 uint32_t CommandSubType
;
1237 uint32_t _3DCommandOpcode
;
1238 uint32_t _3DCommandSubOpcode
;
1239 uint32_t DwordLength
;
1240 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1244 GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1245 const struct GEN7_3DSTATE_CONSTANT_GS
* restrict values
)
1247 uint32_t *dw
= (uint32_t * restrict
) dst
;
1250 __gen_field(values
->CommandType
, 29, 31) |
1251 __gen_field(values
->CommandSubType
, 27, 28) |
1252 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1253 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1254 __gen_field(values
->DwordLength
, 0, 7) |
1257 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1260 #define GEN7_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1261 #define GEN7_3DSTATE_CONSTANT_HS_header \
1263 .CommandSubType = 3, \
1264 ._3DCommandOpcode = 0, \
1265 ._3DCommandSubOpcode = 25, \
1268 #define GEN7_3DSTATE_CONSTANT_HS_length 0x00000007
1270 struct GEN7_3DSTATE_CONSTANT_HS
{
1271 uint32_t CommandType
;
1272 uint32_t CommandSubType
;
1273 uint32_t _3DCommandOpcode
;
1274 uint32_t _3DCommandSubOpcode
;
1275 uint32_t DwordLength
;
1276 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1280 GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1281 const struct GEN7_3DSTATE_CONSTANT_HS
* restrict values
)
1283 uint32_t *dw
= (uint32_t * restrict
) dst
;
1286 __gen_field(values
->CommandType
, 29, 31) |
1287 __gen_field(values
->CommandSubType
, 27, 28) |
1288 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1289 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1290 __gen_field(values
->DwordLength
, 0, 7) |
1293 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1296 #define GEN7_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1297 #define GEN7_3DSTATE_CONSTANT_PS_header \
1299 .CommandSubType = 3, \
1300 ._3DCommandOpcode = 0, \
1301 ._3DCommandSubOpcode = 23, \
1304 #define GEN7_3DSTATE_CONSTANT_PS_length 0x00000007
1306 struct GEN7_3DSTATE_CONSTANT_PS
{
1307 uint32_t CommandType
;
1308 uint32_t CommandSubType
;
1309 uint32_t _3DCommandOpcode
;
1310 uint32_t _3DCommandSubOpcode
;
1311 uint32_t DwordLength
;
1312 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1316 GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1317 const struct GEN7_3DSTATE_CONSTANT_PS
* restrict values
)
1319 uint32_t *dw
= (uint32_t * restrict
) dst
;
1322 __gen_field(values
->CommandType
, 29, 31) |
1323 __gen_field(values
->CommandSubType
, 27, 28) |
1324 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1325 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1326 __gen_field(values
->DwordLength
, 0, 7) |
1329 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1332 #define GEN7_3DSTATE_CONSTANT_VS_length_bias 0x00000002
1333 #define GEN7_3DSTATE_CONSTANT_VS_header \
1335 .CommandSubType = 3, \
1336 ._3DCommandOpcode = 0, \
1337 ._3DCommandSubOpcode = 21, \
1340 #define GEN7_3DSTATE_CONSTANT_VS_length 0x00000007
1342 struct GEN7_3DSTATE_CONSTANT_VS
{
1343 uint32_t CommandType
;
1344 uint32_t CommandSubType
;
1345 uint32_t _3DCommandOpcode
;
1346 uint32_t _3DCommandSubOpcode
;
1347 uint32_t DwordLength
;
1348 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1352 GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1353 const struct GEN7_3DSTATE_CONSTANT_VS
* restrict values
)
1355 uint32_t *dw
= (uint32_t * restrict
) dst
;
1358 __gen_field(values
->CommandType
, 29, 31) |
1359 __gen_field(values
->CommandSubType
, 27, 28) |
1360 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1361 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1362 __gen_field(values
->DwordLength
, 0, 7) |
1365 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1368 #define GEN7_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
1369 #define GEN7_3DSTATE_DEPTH_BUFFER_header \
1371 .CommandSubType = 3, \
1372 ._3DCommandOpcode = 0, \
1373 ._3DCommandSubOpcode = 5, \
1376 #define GEN7_3DSTATE_DEPTH_BUFFER_length 0x00000007
1378 struct GEN7_3DSTATE_DEPTH_BUFFER
{
1379 uint32_t CommandType
;
1380 uint32_t CommandSubType
;
1381 uint32_t _3DCommandOpcode
;
1382 uint32_t _3DCommandSubOpcode
;
1383 uint32_t DwordLength
;
1384 #define SURFTYPE_1D 0
1385 #define SURFTYPE_2D 1
1386 #define SURFTYPE_3D 2
1387 #define SURFTYPE_CUBE 3
1388 #define SURFTYPE_NULL 7
1389 uint32_t SurfaceType
;
1390 bool DepthWriteEnable
;
1391 bool StencilWriteEnable
;
1392 bool HierarchicalDepthBufferEnable
;
1394 #define D24_UNORM_X8_UINT 3
1396 uint32_t SurfaceFormat
;
1397 uint32_t SurfacePitch
;
1398 __gen_address_type SurfaceBaseAddress
;
1402 #define SURFTYPE_CUBEmustbezero 0
1404 uint32_t MinimumArrayElement
;
1405 struct GEN7_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
1406 uint32_t DepthCoordinateOffsetY
;
1407 uint32_t DepthCoordinateOffsetX
;
1408 uint32_t RenderTargetViewExtent
;
1412 GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1413 const struct GEN7_3DSTATE_DEPTH_BUFFER
* restrict values
)
1415 uint32_t *dw
= (uint32_t * restrict
) dst
;
1418 __gen_field(values
->CommandType
, 29, 31) |
1419 __gen_field(values
->CommandSubType
, 27, 28) |
1420 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1421 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1422 __gen_field(values
->DwordLength
, 0, 7) |
1426 __gen_field(values
->SurfaceType
, 29, 31) |
1427 __gen_field(values
->DepthWriteEnable
, 28, 28) |
1428 __gen_field(values
->StencilWriteEnable
, 27, 27) |
1429 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
1430 __gen_field(values
->SurfaceFormat
, 18, 20) |
1431 __gen_field(values
->SurfacePitch
, 0, 17) |
1438 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1441 __gen_field(values
->Height
, 18, 31) |
1442 __gen_field(values
->Width
, 4, 17) |
1443 __gen_field(values
->LOD
, 0, 3) |
1446 uint32_t dw_DepthBufferObjectControlState
;
1447 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
1449 __gen_field(values
->Depth
, 21, 31) |
1450 __gen_field(values
->MinimumArrayElement
, 10, 20) |
1451 __gen_field(dw_DepthBufferObjectControlState
, 0, 3) |
1455 __gen_field(values
->DepthCoordinateOffsetY
, 16, 31) |
1456 __gen_field(values
->DepthCoordinateOffsetX
, 0, 15) |
1460 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
1465 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002
1466 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\
1468 .CommandSubType = 3, \
1469 ._3DCommandOpcode = 0, \
1470 ._3DCommandSubOpcode = 37, \
1473 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
1475 struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
{
1476 uint32_t CommandType
;
1477 uint32_t CommandSubType
;
1478 uint32_t _3DCommandOpcode
;
1479 uint32_t _3DCommandSubOpcode
;
1480 uint32_t DwordLength
;
1481 uint32_t PointertoDEPTH_STENCIL_STATE
;
1485 GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1486 const struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
* restrict values
)
1488 uint32_t *dw
= (uint32_t * restrict
) dst
;
1491 __gen_field(values
->CommandType
, 29, 31) |
1492 __gen_field(values
->CommandSubType
, 27, 28) |
1493 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1494 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1495 __gen_field(values
->DwordLength
, 0, 7) |
1499 __gen_offset(values
->PointertoDEPTH_STENCIL_STATE
, 6, 31) |
1505 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
1506 #define GEN7_3DSTATE_DRAWING_RECTANGLE_header \
1508 .CommandSubType = 3, \
1509 ._3DCommandOpcode = 1, \
1510 ._3DCommandSubOpcode = 0, \
1513 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
1515 struct GEN7_3DSTATE_DRAWING_RECTANGLE
{
1516 uint32_t CommandType
;
1517 uint32_t CommandSubType
;
1518 uint32_t _3DCommandOpcode
;
1519 uint32_t _3DCommandSubOpcode
;
1520 uint32_t DwordLength
;
1521 uint32_t ClippedDrawingRectangleYMin
;
1522 uint32_t ClippedDrawingRectangleXMin
;
1523 uint32_t ClippedDrawingRectangleYMax
;
1524 uint32_t ClippedDrawingRectangleXMax
;
1525 uint32_t DrawingRectangleOriginY
;
1526 uint32_t DrawingRectangleOriginX
;
1530 GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
1531 const struct GEN7_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
1533 uint32_t *dw
= (uint32_t * restrict
) dst
;
1536 __gen_field(values
->CommandType
, 29, 31) |
1537 __gen_field(values
->CommandSubType
, 27, 28) |
1538 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1539 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1540 __gen_field(values
->DwordLength
, 0, 7) |
1544 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
1545 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
1549 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
1550 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
1554 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
1555 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
1560 #define GEN7_3DSTATE_DS_length_bias 0x00000002
1561 #define GEN7_3DSTATE_DS_header \
1563 .CommandSubType = 3, \
1564 ._3DCommandOpcode = 0, \
1565 ._3DCommandSubOpcode = 29, \
1568 #define GEN7_3DSTATE_DS_length 0x00000006
1570 struct GEN7_3DSTATE_DS
{
1571 uint32_t CommandType
;
1572 uint32_t CommandSubType
;
1573 uint32_t _3DCommandOpcode
;
1574 uint32_t _3DCommandSubOpcode
;
1575 uint32_t DwordLength
;
1576 uint32_t KernelStartPointer
;
1579 uint32_t SingleDomainPointDispatch
;
1582 uint32_t VectorMaskEnable
;
1583 #define NoSamplers 0
1584 #define _14Samplers 1
1585 #define _58Samplers 2
1586 #define _912Samplers 3
1587 #define _1316Samplers 4
1588 uint32_t SamplerCount
;
1589 uint32_t BindingTableEntryCount
;
1592 uint32_t FloatingPointMode
;
1593 bool IllegalOpcodeExceptionEnable
;
1594 bool SoftwareExceptionEnable
;
1595 uint32_t ScratchSpaceBasePointer
;
1596 uint32_t PerThreadScratchSpace
;
1597 uint32_t DispatchGRFStartRegisterForURBData
;
1598 uint32_t PatchURBEntryReadLength
;
1599 uint32_t PatchURBEntryReadOffset
;
1600 uint32_t MaximumNumberofThreads
;
1601 bool StatisticsEnable
;
1602 bool ComputeWCoordinateEnable
;
1603 bool DSCacheDisable
;
1604 bool DSFunctionEnable
;
1608 GEN7_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1609 const struct GEN7_3DSTATE_DS
* restrict values
)
1611 uint32_t *dw
= (uint32_t * restrict
) dst
;
1614 __gen_field(values
->CommandType
, 29, 31) |
1615 __gen_field(values
->CommandSubType
, 27, 28) |
1616 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1617 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1618 __gen_field(values
->DwordLength
, 0, 7) |
1622 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1626 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
1627 __gen_field(values
->VectorMaskEnable
, 30, 30) |
1628 __gen_field(values
->SamplerCount
, 27, 29) |
1629 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1630 __gen_field(values
->FloatingPointMode
, 16, 16) |
1631 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1632 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1636 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1637 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1641 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
1642 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
1643 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
1647 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1648 __gen_field(values
->StatisticsEnable
, 10, 10) |
1649 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
1650 __gen_field(values
->DSCacheDisable
, 1, 1) |
1651 __gen_field(values
->DSFunctionEnable
, 0, 0) |
1656 #define GEN7_3DSTATE_GS_length_bias 0x00000002
1657 #define GEN7_3DSTATE_GS_header \
1659 .CommandSubType = 3, \
1660 ._3DCommandOpcode = 0, \
1661 ._3DCommandSubOpcode = 17, \
1664 #define GEN7_3DSTATE_GS_length 0x00000007
1666 struct GEN7_3DSTATE_GS
{
1667 uint32_t CommandType
;
1668 uint32_t CommandSubType
;
1669 uint32_t _3DCommandOpcode
;
1670 uint32_t _3DCommandSubOpcode
;
1671 uint32_t DwordLength
;
1672 uint32_t KernelStartPointer
;
1673 uint32_t SingleProgramFlowSPF
;
1676 uint32_t VectorMaskEnableVME
;
1677 #define NoSamplers 0
1678 #define _14Samplers 1
1679 #define _58Samplers 2
1680 #define _912Samplers 3
1681 #define _1316Samplers 4
1682 uint32_t SamplerCount
;
1683 uint32_t BindingTableEntryCount
;
1684 #define NormalPriority 0
1685 #define HighPriority 1
1686 uint32_t ThreadPriority
;
1689 uint32_t FloatingPointMode
;
1690 bool IllegalOpcodeExceptionEnable
;
1691 bool MaskStackExceptionEnable
;
1692 bool SoftwareExceptionEnable
;
1693 uint32_t ScratchSpaceBasePointer
;
1694 uint32_t PerThreadScratchSpace
;
1695 uint32_t OutputVertexSize
;
1696 uint32_t OutputTopology
;
1697 uint32_t VertexURBEntryReadLength
;
1698 bool IncludeVertexHandles
;
1699 uint32_t VertexURBEntryReadOffset
;
1700 uint32_t DispatchGRFStartRegisterforURBData
;
1701 uint32_t MaximumNumberofThreads
;
1704 uint32_t ControlDataFormat
;
1705 uint32_t ControlDataHeaderSize
;
1706 uint32_t InstanceControl
;
1707 uint32_t DefaultStreamID
;
1709 #define DUAL_INSTANCE 1
1710 #define DUAL_OBJECT 2
1711 uint32_t DispatchMode
;
1712 uint32_t GSStatisticsEnable
;
1713 uint32_t GSInvocationsIncrementValue
;
1714 bool IncludePrimitiveID
;
1717 bool DiscardAdjacency
;
1719 uint32_t SemaphoreHandle
;
1723 GEN7_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1724 const struct GEN7_3DSTATE_GS
* restrict values
)
1726 uint32_t *dw
= (uint32_t * restrict
) dst
;
1729 __gen_field(values
->CommandType
, 29, 31) |
1730 __gen_field(values
->CommandSubType
, 27, 28) |
1731 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1732 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1733 __gen_field(values
->DwordLength
, 0, 7) |
1737 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1741 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
1742 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
1743 __gen_field(values
->SamplerCount
, 27, 29) |
1744 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1745 __gen_field(values
->ThreadPriority
, 17, 17) |
1746 __gen_field(values
->FloatingPointMode
, 16, 16) |
1747 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1748 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
1749 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1753 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1754 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1758 __gen_field(values
->OutputVertexSize
, 23, 28) |
1759 __gen_field(values
->OutputTopology
, 17, 22) |
1760 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1761 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
1762 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1763 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 0, 3) |
1767 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1768 __gen_field(values
->ControlDataFormat
, 24, 24) |
1769 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
1770 __gen_field(values
->InstanceControl
, 15, 19) |
1771 __gen_field(values
->DefaultStreamID
, 13, 14) |
1772 __gen_field(values
->DispatchMode
, 11, 12) |
1773 __gen_field(values
->GSStatisticsEnable
, 10, 10) |
1774 __gen_field(values
->GSInvocationsIncrementValue
, 5, 9) |
1775 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
1776 __gen_field(values
->Hint
, 3, 3) |
1777 __gen_field(values
->ReorderEnable
, 2, 2) |
1778 __gen_field(values
->DiscardAdjacency
, 1, 1) |
1779 __gen_field(values
->GSEnable
, 0, 0) |
1783 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1788 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
1789 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_header \
1791 .CommandSubType = 3, \
1792 ._3DCommandOpcode = 0, \
1793 ._3DCommandSubOpcode = 7, \
1796 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
1798 struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
{
1799 uint32_t CommandType
;
1800 uint32_t CommandSubType
;
1801 uint32_t _3DCommandOpcode
;
1802 uint32_t _3DCommandSubOpcode
;
1803 uint32_t DwordLength
;
1804 struct GEN7_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
1805 uint32_t SurfacePitch
;
1806 __gen_address_type SurfaceBaseAddress
;
1810 GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1811 const struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
1813 uint32_t *dw
= (uint32_t * restrict
) dst
;
1816 __gen_field(values
->CommandType
, 29, 31) |
1817 __gen_field(values
->CommandSubType
, 27, 28) |
1818 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1819 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1820 __gen_field(values
->DwordLength
, 0, 7) |
1823 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
1824 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
1826 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 28) |
1827 __gen_field(values
->SurfacePitch
, 0, 16) |
1834 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1838 #define GEN7_3DSTATE_HS_length_bias 0x00000002
1839 #define GEN7_3DSTATE_HS_header \
1841 .CommandSubType = 3, \
1842 ._3DCommandOpcode = 0, \
1843 ._3DCommandSubOpcode = 27, \
1846 #define GEN7_3DSTATE_HS_length 0x00000007
1848 struct GEN7_3DSTATE_HS
{
1849 uint32_t CommandType
;
1850 uint32_t CommandSubType
;
1851 uint32_t _3DCommandOpcode
;
1852 uint32_t _3DCommandSubOpcode
;
1853 uint32_t DwordLength
;
1854 #define NoSamplers 0
1855 #define _14Samplers 1
1856 #define _58Samplers 2
1857 #define _912Samplers 3
1858 #define _1316Samplers 4
1859 uint32_t SamplerCount
;
1860 uint32_t BindingTableEntryCount
;
1863 uint32_t FloatingPointMode
;
1864 bool IllegalOpcodeExceptionEnable
;
1865 bool SoftwareExceptionEnable
;
1866 uint32_t MaximumNumberofThreads
;
1868 bool StatisticsEnable
;
1869 uint32_t InstanceCount
;
1870 uint32_t KernelStartPointer
;
1871 uint32_t ScratchSpaceBasePointer
;
1872 uint32_t PerThreadScratchSpace
;
1873 uint32_t SingleProgramFlow
;
1876 uint32_t VectorMaskEnable
;
1877 bool IncludeVertexHandles
;
1878 uint32_t DispatchGRFStartRegisterForURBData
;
1879 uint32_t VertexURBEntryReadLength
;
1880 uint32_t VertexURBEntryReadOffset
;
1881 uint32_t SemaphoreHandle
;
1885 GEN7_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1886 const struct GEN7_3DSTATE_HS
* restrict values
)
1888 uint32_t *dw
= (uint32_t * restrict
) dst
;
1891 __gen_field(values
->CommandType
, 29, 31) |
1892 __gen_field(values
->CommandSubType
, 27, 28) |
1893 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1894 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1895 __gen_field(values
->DwordLength
, 0, 7) |
1899 __gen_field(values
->SamplerCount
, 27, 29) |
1900 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1901 __gen_field(values
->FloatingPointMode
, 16, 16) |
1902 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1903 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1904 __gen_field(values
->MaximumNumberofThreads
, 0, 6) |
1908 __gen_field(values
->Enable
, 31, 31) |
1909 __gen_field(values
->StatisticsEnable
, 29, 29) |
1910 __gen_field(values
->InstanceCount
, 0, 3) |
1914 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1918 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1919 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1923 __gen_field(values
->SingleProgramFlow
, 27, 27) |
1924 __gen_field(values
->VectorMaskEnable
, 26, 26) |
1925 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
1926 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
1927 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1928 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1932 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1937 #define GEN7_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
1938 #define GEN7_3DSTATE_INDEX_BUFFER_header \
1940 .CommandSubType = 3, \
1941 ._3DCommandOpcode = 0, \
1942 ._3DCommandSubOpcode = 10, \
1945 #define GEN7_3DSTATE_INDEX_BUFFER_length 0x00000003
1947 struct GEN7_3DSTATE_INDEX_BUFFER
{
1948 uint32_t CommandType
;
1949 uint32_t CommandSubType
;
1950 uint32_t _3DCommandOpcode
;
1951 uint32_t _3DCommandSubOpcode
;
1952 struct GEN7_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
1953 bool CutIndexEnable
;
1954 #define INDEX_BYTE 0
1955 #define INDEX_WORD 1
1956 #define INDEX_DWORD 2
1957 uint32_t IndexFormat
;
1958 uint32_t DwordLength
;
1959 __gen_address_type BufferStartingAddress
;
1960 __gen_address_type BufferEndingAddress
;
1964 GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1965 const struct GEN7_3DSTATE_INDEX_BUFFER
* restrict values
)
1967 uint32_t *dw
= (uint32_t * restrict
) dst
;
1969 uint32_t dw_MemoryObjectControlState
;
1970 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
1972 __gen_field(values
->CommandType
, 29, 31) |
1973 __gen_field(values
->CommandSubType
, 27, 28) |
1974 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1975 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1976 __gen_field(dw_MemoryObjectControlState
, 12, 15) |
1977 __gen_field(values
->CutIndexEnable
, 10, 10) |
1978 __gen_field(values
->IndexFormat
, 8, 9) |
1979 __gen_field(values
->DwordLength
, 0, 7) |
1986 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
1992 __gen_combine_address(data
, &dw
[2], values
->BufferEndingAddress
, dw2
);
1996 #define GEN7_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
1997 #define GEN7_3DSTATE_LINE_STIPPLE_header \
1999 .CommandSubType = 3, \
2000 ._3DCommandOpcode = 1, \
2001 ._3DCommandSubOpcode = 8, \
2004 #define GEN7_3DSTATE_LINE_STIPPLE_length 0x00000003
2006 struct GEN7_3DSTATE_LINE_STIPPLE
{
2007 uint32_t CommandType
;
2008 uint32_t CommandSubType
;
2009 uint32_t _3DCommandOpcode
;
2010 uint32_t _3DCommandSubOpcode
;
2011 uint32_t DwordLength
;
2012 bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
2013 uint32_t CurrentRepeatCounter
;
2014 uint32_t CurrentStippleIndex
;
2015 uint32_t LineStipplePattern
;
2016 float LineStippleInverseRepeatCount
;
2017 uint32_t LineStippleRepeatCount
;
2021 GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2022 const struct GEN7_3DSTATE_LINE_STIPPLE
* restrict values
)
2024 uint32_t *dw
= (uint32_t * restrict
) dst
;
2027 __gen_field(values
->CommandType
, 29, 31) |
2028 __gen_field(values
->CommandSubType
, 27, 28) |
2029 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2030 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2031 __gen_field(values
->DwordLength
, 0, 7) |
2035 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
2036 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
2037 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
2038 __gen_field(values
->LineStipplePattern
, 0, 15) |
2042 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
2043 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
2048 #define GEN7_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
2049 #define GEN7_3DSTATE_MONOFILTER_SIZE_header \
2051 .CommandSubType = 3, \
2052 ._3DCommandOpcode = 1, \
2053 ._3DCommandSubOpcode = 17, \
2056 #define GEN7_3DSTATE_MONOFILTER_SIZE_length 0x00000002
2058 struct GEN7_3DSTATE_MONOFILTER_SIZE
{
2059 uint32_t CommandType
;
2060 uint32_t CommandSubType
;
2061 uint32_t _3DCommandOpcode
;
2062 uint32_t _3DCommandSubOpcode
;
2063 uint32_t DwordLength
;
2064 uint32_t MonochromeFilterWidth
;
2065 uint32_t MonochromeFilterHeight
;
2069 GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
2070 const struct GEN7_3DSTATE_MONOFILTER_SIZE
* restrict values
)
2072 uint32_t *dw
= (uint32_t * restrict
) dst
;
2075 __gen_field(values
->CommandType
, 29, 31) |
2076 __gen_field(values
->CommandSubType
, 27, 28) |
2077 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2078 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2079 __gen_field(values
->DwordLength
, 0, 7) |
2083 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
2084 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
2089 #define GEN7_3DSTATE_MULTISAMPLE_length_bias 0x00000002
2090 #define GEN7_3DSTATE_MULTISAMPLE_header \
2092 .CommandSubType = 3, \
2093 ._3DCommandOpcode = 1, \
2094 ._3DCommandSubOpcode = 13, \
2097 #define GEN7_3DSTATE_MULTISAMPLE_length 0x00000004
2099 struct GEN7_3DSTATE_MULTISAMPLE
{
2100 uint32_t CommandType
;
2101 uint32_t CommandSubType
;
2102 uint32_t _3DCommandOpcode
;
2103 uint32_t _3DCommandSubOpcode
;
2104 uint32_t DwordLength
;
2105 #define PIXLOC_CENTER 0
2106 #define PIXLOC_UL_CORNER 1
2107 uint32_t PixelLocation
;
2108 #define NUMSAMPLES_1 0
2109 #define NUMSAMPLES_4 2
2110 #define NUMSAMPLES_8 3
2111 uint32_t NumberofMultisamples
;
2112 float Sample3XOffset
;
2113 float Sample3YOffset
;
2114 float Sample2XOffset
;
2115 float Sample2YOffset
;
2116 float Sample1XOffset
;
2117 float Sample1YOffset
;
2118 float Sample0XOffset
;
2119 float Sample0YOffset
;
2120 float Sample7XOffset
;
2121 float Sample7YOffset
;
2122 float Sample6XOffset
;
2123 float Sample6YOffset
;
2124 float Sample5XOffset
;
2125 float Sample5YOffset
;
2126 float Sample4XOffset
;
2127 float Sample4YOffset
;
2131 GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2132 const struct GEN7_3DSTATE_MULTISAMPLE
* restrict values
)
2134 uint32_t *dw
= (uint32_t * restrict
) dst
;
2137 __gen_field(values
->CommandType
, 29, 31) |
2138 __gen_field(values
->CommandSubType
, 27, 28) |
2139 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2140 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2141 __gen_field(values
->DwordLength
, 0, 7) |
2145 __gen_field(values
->PixelLocation
, 4, 4) |
2146 __gen_field(values
->NumberofMultisamples
, 1, 3) |
2150 __gen_field(values
->Sample3XOffset
* (1 << 4), 28, 31) |
2151 __gen_field(values
->Sample3YOffset
* (1 << 4), 24, 27) |
2152 __gen_field(values
->Sample2XOffset
* (1 << 4), 20, 23) |
2153 __gen_field(values
->Sample2YOffset
* (1 << 4), 16, 19) |
2154 __gen_field(values
->Sample1XOffset
* (1 << 4), 12, 15) |
2155 __gen_field(values
->Sample1YOffset
* (1 << 4), 8, 11) |
2156 __gen_field(values
->Sample0XOffset
* (1 << 4), 4, 7) |
2157 __gen_field(values
->Sample0YOffset
* (1 << 4), 0, 3) |
2161 __gen_field(values
->Sample7XOffset
* (1 << 4), 28, 31) |
2162 __gen_field(values
->Sample7YOffset
* (1 << 4), 24, 27) |
2163 __gen_field(values
->Sample6XOffset
* (1 << 4), 20, 23) |
2164 __gen_field(values
->Sample6YOffset
* (1 << 4), 16, 19) |
2165 __gen_field(values
->Sample5XOffset
* (1 << 4), 12, 15) |
2166 __gen_field(values
->Sample5YOffset
* (1 << 4), 8, 11) |
2167 __gen_field(values
->Sample4XOffset
* (1 << 4), 4, 7) |
2168 __gen_field(values
->Sample4YOffset
* (1 << 4), 0, 3) |
2173 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
2174 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_header \
2176 .CommandSubType = 3, \
2177 ._3DCommandOpcode = 1, \
2178 ._3DCommandSubOpcode = 6, \
2181 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
2183 struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
{
2184 uint32_t CommandType
;
2185 uint32_t CommandSubType
;
2186 uint32_t _3DCommandOpcode
;
2187 uint32_t _3DCommandSubOpcode
;
2188 uint32_t DwordLength
;
2189 uint32_t PolygonStippleXOffset
;
2190 uint32_t PolygonStippleYOffset
;
2194 GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
2195 const struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
2197 uint32_t *dw
= (uint32_t * restrict
) dst
;
2200 __gen_field(values
->CommandType
, 29, 31) |
2201 __gen_field(values
->CommandSubType
, 27, 28) |
2202 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2203 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2204 __gen_field(values
->DwordLength
, 0, 7) |
2208 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
2209 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
2214 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
2215 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_header\
2217 .CommandSubType = 3, \
2218 ._3DCommandOpcode = 1, \
2219 ._3DCommandSubOpcode = 7, \
2222 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
2224 struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
{
2225 uint32_t CommandType
;
2226 uint32_t CommandSubType
;
2227 uint32_t _3DCommandOpcode
;
2228 uint32_t _3DCommandSubOpcode
;
2229 uint32_t DwordLength
;
2230 uint32_t PatternRow
[32];
2234 GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
2235 const struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
2237 uint32_t *dw
= (uint32_t * restrict
) dst
;
2240 __gen_field(values
->CommandType
, 29, 31) |
2241 __gen_field(values
->CommandSubType
, 27, 28) |
2242 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2243 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2244 __gen_field(values
->DwordLength
, 0, 7) |
2247 for (uint32_t i
= 0, j
= 1; i
< 32; i
+= 1, j
++) {
2249 __gen_field(values
->PatternRow
[i
+ 0], 0, 31) |
2255 #define GEN7_3DSTATE_PS_length_bias 0x00000002
2256 #define GEN7_3DSTATE_PS_header \
2258 .CommandSubType = 3, \
2259 ._3DCommandOpcode = 0, \
2260 ._3DCommandSubOpcode = 32, \
2263 #define GEN7_3DSTATE_PS_length 0x00000008
2265 struct GEN7_3DSTATE_PS
{
2266 uint32_t CommandType
;
2267 uint32_t CommandSubType
;
2268 uint32_t _3DCommandOpcode
;
2269 uint32_t _3DCommandSubOpcode
;
2270 uint32_t DwordLength
;
2271 uint32_t KernelStartPointer0
;
2274 uint32_t SingleProgramFlowSPF
;
2277 uint32_t VectorMaskEnableVME
;
2278 uint32_t SamplerCount
;
2281 uint32_t DenormalMode
;
2282 uint32_t BindingTableEntryCount
;
2285 uint32_t FloatingPointMode
;
2290 uint32_t RoundingMode
;
2291 bool IllegalOpcodeExceptionEnable
;
2292 bool MaskStackExceptionEnable
;
2293 bool SoftwareExceptionEnable
;
2294 uint32_t ScratchSpaceBasePointer
;
2295 uint32_t PerThreadScratchSpace
;
2296 uint32_t MaximumNumberofThreads
;
2297 bool PushConstantEnable
;
2298 bool AttributeEnable
;
2299 bool oMaskPresenttoRenderTarget
;
2300 bool RenderTargetFastClearEnable
;
2301 bool DualSourceBlendEnable
;
2302 bool RenderTargetResolveEnable
;
2303 #define POSOFFSET_NONE 0
2304 #define POSOFFSET_CENTROID 2
2305 #define POSOFFSET_SAMPLE 3
2306 uint32_t PositionXYOffsetSelect
;
2307 bool _32PixelDispatchEnable
;
2308 bool _16PixelDispatchEnable
;
2309 bool _8PixelDispatchEnable
;
2310 uint32_t DispatchGRFStartRegisterforConstantSetupData0
;
2311 uint32_t DispatchGRFStartRegisterforConstantSetupData1
;
2312 uint32_t DispatchGRFStartRegisterforConstantSetupData2
;
2313 uint32_t KernelStartPointer1
;
2314 uint32_t KernelStartPointer2
;
2318 GEN7_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2319 const struct GEN7_3DSTATE_PS
* restrict values
)
2321 uint32_t *dw
= (uint32_t * restrict
) dst
;
2324 __gen_field(values
->CommandType
, 29, 31) |
2325 __gen_field(values
->CommandSubType
, 27, 28) |
2326 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2327 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2328 __gen_field(values
->DwordLength
, 0, 7) |
2332 __gen_offset(values
->KernelStartPointer0
, 6, 31) |
2336 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
2337 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
2338 __gen_field(values
->SamplerCount
, 27, 29) |
2339 __gen_field(values
->DenormalMode
, 26, 26) |
2340 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2341 __gen_field(values
->FloatingPointMode
, 16, 16) |
2342 __gen_field(values
->RoundingMode
, 14, 15) |
2343 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2344 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2345 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2349 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
2350 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2354 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2355 __gen_field(values
->PushConstantEnable
, 11, 11) |
2356 __gen_field(values
->AttributeEnable
, 10, 10) |
2357 __gen_field(values
->oMaskPresenttoRenderTarget
, 9, 9) |
2358 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
2359 __gen_field(values
->DualSourceBlendEnable
, 7, 7) |
2360 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
2361 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
2362 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
2363 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
2364 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
2368 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData0
, 16, 22) |
2369 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData1
, 8, 14) |
2370 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData2
, 0, 6) |
2374 __gen_offset(values
->KernelStartPointer1
, 6, 31) |
2378 __gen_offset(values
->KernelStartPointer2
, 6, 31) |
2383 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
2384 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
2386 .CommandSubType = 3, \
2387 ._3DCommandOpcode = 1, \
2388 ._3DCommandSubOpcode = 20, \
2391 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
2393 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
2394 uint32_t CommandType
;
2395 uint32_t CommandSubType
;
2396 uint32_t _3DCommandOpcode
;
2397 uint32_t _3DCommandSubOpcode
;
2398 uint32_t DwordLength
;
2400 uint32_t ConstantBufferOffset
;
2402 uint32_t ConstantBufferSize
;
2406 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2407 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
2409 uint32_t *dw
= (uint32_t * restrict
) dst
;
2412 __gen_field(values
->CommandType
, 29, 31) |
2413 __gen_field(values
->CommandSubType
, 27, 28) |
2414 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2415 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2416 __gen_field(values
->DwordLength
, 0, 7) |
2420 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2421 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2426 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
2427 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
2429 .CommandSubType = 3, \
2430 ._3DCommandOpcode = 1, \
2431 ._3DCommandSubOpcode = 21, \
2434 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
2436 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
2437 uint32_t CommandType
;
2438 uint32_t CommandSubType
;
2439 uint32_t _3DCommandOpcode
;
2440 uint32_t _3DCommandSubOpcode
;
2441 uint32_t DwordLength
;
2443 uint32_t ConstantBufferOffset
;
2445 uint32_t ConstantBufferSize
;
2449 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2450 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
2452 uint32_t *dw
= (uint32_t * restrict
) dst
;
2455 __gen_field(values
->CommandType
, 29, 31) |
2456 __gen_field(values
->CommandSubType
, 27, 28) |
2457 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2458 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2459 __gen_field(values
->DwordLength
, 0, 7) |
2463 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2464 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2469 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
2470 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
2472 .CommandSubType = 3, \
2473 ._3DCommandOpcode = 1, \
2474 ._3DCommandSubOpcode = 19, \
2477 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
2479 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
2480 uint32_t CommandType
;
2481 uint32_t CommandSubType
;
2482 uint32_t _3DCommandOpcode
;
2483 uint32_t _3DCommandSubOpcode
;
2484 uint32_t DwordLength
;
2486 uint32_t ConstantBufferOffset
;
2488 uint32_t ConstantBufferSize
;
2492 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2493 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
2495 uint32_t *dw
= (uint32_t * restrict
) dst
;
2498 __gen_field(values
->CommandType
, 29, 31) |
2499 __gen_field(values
->CommandSubType
, 27, 28) |
2500 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2501 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2502 __gen_field(values
->DwordLength
, 0, 7) |
2506 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2507 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2512 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
2513 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
2515 .CommandSubType = 3, \
2516 ._3DCommandOpcode = 1, \
2517 ._3DCommandSubOpcode = 22, \
2520 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
2522 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
2523 uint32_t CommandType
;
2524 uint32_t CommandSubType
;
2525 uint32_t _3DCommandOpcode
;
2526 uint32_t _3DCommandSubOpcode
;
2527 uint32_t DwordLength
;
2529 uint32_t ConstantBufferOffset
;
2531 uint32_t ConstantBufferSize
;
2535 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2536 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
2538 uint32_t *dw
= (uint32_t * restrict
) dst
;
2541 __gen_field(values
->CommandType
, 29, 31) |
2542 __gen_field(values
->CommandSubType
, 27, 28) |
2543 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2544 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2545 __gen_field(values
->DwordLength
, 0, 7) |
2549 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2550 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2555 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
2556 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
2558 .CommandSubType = 3, \
2559 ._3DCommandOpcode = 1, \
2560 ._3DCommandSubOpcode = 18, \
2563 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
2565 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
2566 uint32_t CommandType
;
2567 uint32_t CommandSubType
;
2568 uint32_t _3DCommandOpcode
;
2569 uint32_t _3DCommandSubOpcode
;
2570 uint32_t DwordLength
;
2572 uint32_t ConstantBufferOffset
;
2574 uint32_t ConstantBufferSize
;
2578 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2579 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
2581 uint32_t *dw
= (uint32_t * restrict
) dst
;
2584 __gen_field(values
->CommandType
, 29, 31) |
2585 __gen_field(values
->CommandSubType
, 27, 28) |
2586 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2587 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2588 __gen_field(values
->DwordLength
, 0, 7) |
2592 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2593 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2598 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
2599 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
2601 .CommandSubType = 3, \
2602 ._3DCommandOpcode = 1, \
2603 ._3DCommandSubOpcode = 2
2605 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000
2607 #define GEN7_PALETTE_ENTRY_length 0x00000001
2609 struct GEN7_PALETTE_ENTRY
{
2617 GEN7_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2618 const struct GEN7_PALETTE_ENTRY
* restrict values
)
2620 uint32_t *dw
= (uint32_t * restrict
) dst
;
2623 __gen_field(values
->Alpha
, 24, 31) |
2624 __gen_field(values
->Red
, 16, 23) |
2625 __gen_field(values
->Green
, 8, 15) |
2626 __gen_field(values
->Blue
, 0, 7) |
2631 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
{
2632 uint32_t CommandType
;
2633 uint32_t CommandSubType
;
2634 uint32_t _3DCommandOpcode
;
2635 uint32_t _3DCommandSubOpcode
;
2636 uint32_t DwordLength
;
2637 /* variable length fields follow */
2641 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
2642 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
2644 uint32_t *dw
= (uint32_t * restrict
) dst
;
2647 __gen_field(values
->CommandType
, 29, 31) |
2648 __gen_field(values
->CommandSubType
, 27, 28) |
2649 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2650 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2651 __gen_field(values
->DwordLength
, 0, 7) |
2654 /* variable length fields follow */
2657 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
2658 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
2660 .CommandSubType = 3, \
2661 ._3DCommandOpcode = 1, \
2662 ._3DCommandSubOpcode = 12
2664 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000
2666 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
{
2667 uint32_t CommandType
;
2668 uint32_t CommandSubType
;
2669 uint32_t _3DCommandOpcode
;
2670 uint32_t _3DCommandSubOpcode
;
2671 uint32_t DwordLength
;
2672 /* variable length fields follow */
2676 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
2677 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
2679 uint32_t *dw
= (uint32_t * restrict
) dst
;
2682 __gen_field(values
->CommandType
, 29, 31) |
2683 __gen_field(values
->CommandSubType
, 27, 28) |
2684 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2685 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2686 __gen_field(values
->DwordLength
, 0, 7) |
2689 /* variable length fields follow */
2692 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
2693 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
2695 .CommandSubType = 3, \
2696 ._3DCommandOpcode = 0, \
2697 ._3DCommandSubOpcode = 45, \
2700 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
2702 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
2703 uint32_t CommandType
;
2704 uint32_t CommandSubType
;
2705 uint32_t _3DCommandOpcode
;
2706 uint32_t _3DCommandSubOpcode
;
2707 uint32_t DwordLength
;
2708 uint32_t PointertoDSSamplerState
;
2712 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2713 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
2715 uint32_t *dw
= (uint32_t * restrict
) dst
;
2718 __gen_field(values
->CommandType
, 29, 31) |
2719 __gen_field(values
->CommandSubType
, 27, 28) |
2720 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2721 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2722 __gen_field(values
->DwordLength
, 0, 7) |
2726 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
2731 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
2732 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
2734 .CommandSubType = 3, \
2735 ._3DCommandOpcode = 0, \
2736 ._3DCommandSubOpcode = 46, \
2739 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
2741 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
2742 uint32_t CommandType
;
2743 uint32_t CommandSubType
;
2744 uint32_t _3DCommandOpcode
;
2745 uint32_t _3DCommandSubOpcode
;
2746 uint32_t DwordLength
;
2747 uint32_t PointertoGSSamplerState
;
2751 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2752 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
2754 uint32_t *dw
= (uint32_t * restrict
) dst
;
2757 __gen_field(values
->CommandType
, 29, 31) |
2758 __gen_field(values
->CommandSubType
, 27, 28) |
2759 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2760 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2761 __gen_field(values
->DwordLength
, 0, 7) |
2765 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
2770 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
2771 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
2773 .CommandSubType = 3, \
2774 ._3DCommandOpcode = 0, \
2775 ._3DCommandSubOpcode = 44, \
2778 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
2780 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
2781 uint32_t CommandType
;
2782 uint32_t CommandSubType
;
2783 uint32_t _3DCommandOpcode
;
2784 uint32_t _3DCommandSubOpcode
;
2785 uint32_t DwordLength
;
2786 uint32_t PointertoHSSamplerState
;
2790 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2791 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
2793 uint32_t *dw
= (uint32_t * restrict
) dst
;
2796 __gen_field(values
->CommandType
, 29, 31) |
2797 __gen_field(values
->CommandSubType
, 27, 28) |
2798 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2799 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2800 __gen_field(values
->DwordLength
, 0, 7) |
2804 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
2809 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
2810 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
2812 .CommandSubType = 3, \
2813 ._3DCommandOpcode = 0, \
2814 ._3DCommandSubOpcode = 47, \
2817 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
2819 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
2820 uint32_t CommandType
;
2821 uint32_t CommandSubType
;
2822 uint32_t _3DCommandOpcode
;
2823 uint32_t _3DCommandSubOpcode
;
2824 uint32_t DwordLength
;
2825 uint32_t PointertoPSSamplerState
;
2829 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2830 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
2832 uint32_t *dw
= (uint32_t * restrict
) dst
;
2835 __gen_field(values
->CommandType
, 29, 31) |
2836 __gen_field(values
->CommandSubType
, 27, 28) |
2837 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2838 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2839 __gen_field(values
->DwordLength
, 0, 7) |
2843 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
2848 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
2849 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
2851 .CommandSubType = 3, \
2852 ._3DCommandOpcode = 0, \
2853 ._3DCommandSubOpcode = 43, \
2856 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
2858 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
2859 uint32_t CommandType
;
2860 uint32_t CommandSubType
;
2861 uint32_t _3DCommandOpcode
;
2862 uint32_t _3DCommandSubOpcode
;
2863 uint32_t DwordLength
;
2864 uint32_t PointertoVSSamplerState
;
2868 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2869 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
2871 uint32_t *dw
= (uint32_t * restrict
) dst
;
2874 __gen_field(values
->CommandType
, 29, 31) |
2875 __gen_field(values
->CommandSubType
, 27, 28) |
2876 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2877 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2878 __gen_field(values
->DwordLength
, 0, 7) |
2882 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
2887 #define GEN7_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
2888 #define GEN7_3DSTATE_SAMPLE_MASK_header \
2890 .CommandSubType = 3, \
2891 ._3DCommandOpcode = 0, \
2892 ._3DCommandSubOpcode = 24, \
2895 #define GEN7_3DSTATE_SAMPLE_MASK_length 0x00000002
2897 struct GEN7_3DSTATE_SAMPLE_MASK
{
2898 uint32_t CommandType
;
2899 uint32_t CommandSubType
;
2900 uint32_t _3DCommandOpcode
;
2901 uint32_t _3DCommandSubOpcode
;
2902 uint32_t DwordLength
;
2903 uint32_t SampleMask
;
2907 GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
2908 const struct GEN7_3DSTATE_SAMPLE_MASK
* restrict values
)
2910 uint32_t *dw
= (uint32_t * restrict
) dst
;
2913 __gen_field(values
->CommandType
, 29, 31) |
2914 __gen_field(values
->CommandSubType
, 27, 28) |
2915 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2916 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2917 __gen_field(values
->DwordLength
, 0, 7) |
2921 __gen_field(values
->SampleMask
, 0, 7) |
2926 #define GEN7_3DSTATE_SBE_length_bias 0x00000002
2927 #define GEN7_3DSTATE_SBE_header \
2929 .CommandSubType = 3, \
2930 ._3DCommandOpcode = 0, \
2931 ._3DCommandSubOpcode = 31, \
2934 #define GEN7_3DSTATE_SBE_length 0x0000000e
2936 struct GEN7_3DSTATE_SBE
{
2937 uint32_t CommandType
;
2938 uint32_t CommandSubType
;
2939 uint32_t _3DCommandOpcode
;
2940 uint32_t _3DCommandSubOpcode
;
2941 uint32_t DwordLength
;
2943 #define SWIZ_16_31 1
2944 uint32_t AttributeSwizzleControlMode
;
2945 uint32_t NumberofSFOutputAttributes
;
2946 bool AttributeSwizzleEnable
;
2949 uint32_t PointSpriteTextureCoordinateOrigin
;
2950 uint32_t VertexURBEntryReadLength
;
2951 uint32_t VertexURBEntryReadOffset
;
2952 bool Attribute2n1ComponentOverrideW
;
2953 bool Attribute2n1ComponentOverrideZ
;
2954 bool Attribute2n1ComponentOverrideY
;
2955 bool Attribute2n1ComponentOverrideX
;
2956 #define CONST_0000 0
2957 #define CONST_0001_FLOAT 1
2958 #define CONST_1111_FLOAT 2
2960 uint32_t Attribute2n1ConstantSource
;
2962 #define INPUTATTR_FACING 1
2963 #define INPUTATTR_W 2
2964 #define INPUTATTR_FACING_W 3
2965 uint32_t Attribute2n1SwizzleSelect
;
2966 uint32_t Attribute2n1SourceAttribute
;
2967 bool Attribute2nComponentOverrideW
;
2968 bool Attribute2nComponentOverrideZ
;
2969 bool Attribute2nComponentOverrideY
;
2970 bool Attribute2nComponentOverrideX
;
2971 #define CONST_0000 0
2972 #define CONST_0001_FLOAT 1
2973 #define CONST_1111_FLOAT 2
2975 uint32_t Attribute2nConstantSource
;
2977 #define INPUTATTR_FACING 1
2978 #define INPUTATTR_W 2
2979 #define INPUTATTR_FACING_W 3
2980 uint32_t Attribute2nSwizzleSelect
;
2981 uint32_t Attribute2nSourceAttribute
;
2982 uint32_t PointSpriteTextureCoordinateEnable
;
2983 uint32_t ConstantInterpolationEnable310
;
2984 uint32_t Attribute7WrapShortestEnables
;
2985 uint32_t Attribute6WrapShortestEnables
;
2986 uint32_t Attribute5WrapShortestEnables
;
2987 uint32_t Attribute4WrapShortestEnables
;
2988 uint32_t Attribute3WrapShortestEnables
;
2989 uint32_t Attribute2WrapShortestEnables
;
2990 uint32_t Attribute1WrapShortestEnables
;
2991 uint32_t Attribute0WrapShortestEnables
;
2992 uint32_t Attribute15WrapShortestEnables
;
2993 uint32_t Attribute14WrapShortestEnables
;
2994 uint32_t Attribute13WrapShortestEnables
;
2995 uint32_t Attribute12WrapShortestEnables
;
2996 uint32_t Attribute11WrapShortestEnables
;
2997 uint32_t Attribute10WrapShortestEnables
;
2998 uint32_t Attribute9WrapShortestEnables
;
2999 uint32_t Attribute8WrapShortestEnables
;
3003 GEN7_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
3004 const struct GEN7_3DSTATE_SBE
* restrict values
)
3006 uint32_t *dw
= (uint32_t * restrict
) dst
;
3009 __gen_field(values
->CommandType
, 29, 31) |
3010 __gen_field(values
->CommandSubType
, 27, 28) |
3011 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3012 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3013 __gen_field(values
->DwordLength
, 0, 7) |
3017 __gen_field(values
->AttributeSwizzleControlMode
, 28, 28) |
3018 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
3019 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
3020 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
3021 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
3022 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
3026 __gen_field(values
->Attribute2n1ComponentOverrideW
, 31, 31) |
3027 __gen_field(values
->Attribute2n1ComponentOverrideZ
, 30, 30) |
3028 __gen_field(values
->Attribute2n1ComponentOverrideY
, 29, 29) |
3029 __gen_field(values
->Attribute2n1ComponentOverrideX
, 28, 28) |
3030 __gen_field(values
->Attribute2n1ConstantSource
, 25, 26) |
3031 __gen_field(values
->Attribute2n1SwizzleSelect
, 22, 23) |
3032 __gen_field(values
->Attribute2n1SourceAttribute
, 16, 20) |
3033 __gen_field(values
->Attribute2nComponentOverrideW
, 15, 15) |
3034 __gen_field(values
->Attribute2nComponentOverrideZ
, 14, 14) |
3035 __gen_field(values
->Attribute2nComponentOverrideY
, 13, 13) |
3036 __gen_field(values
->Attribute2nComponentOverrideX
, 12, 12) |
3037 __gen_field(values
->Attribute2nConstantSource
, 9, 10) |
3038 __gen_field(values
->Attribute2nSwizzleSelect
, 6, 7) |
3039 __gen_field(values
->Attribute2nSourceAttribute
, 0, 4) |
3043 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
3047 __gen_field(values
->ConstantInterpolationEnable310
, 0, 31) |
3051 __gen_field(values
->Attribute7WrapShortestEnables
, 28, 31) |
3052 __gen_field(values
->Attribute6WrapShortestEnables
, 24, 27) |
3053 __gen_field(values
->Attribute5WrapShortestEnables
, 20, 23) |
3054 __gen_field(values
->Attribute4WrapShortestEnables
, 16, 19) |
3055 __gen_field(values
->Attribute3WrapShortestEnables
, 12, 15) |
3056 __gen_field(values
->Attribute2WrapShortestEnables
, 8, 11) |
3057 __gen_field(values
->Attribute1WrapShortestEnables
, 4, 7) |
3058 __gen_field(values
->Attribute0WrapShortestEnables
, 0, 3) |
3062 __gen_field(values
->Attribute15WrapShortestEnables
, 28, 31) |
3063 __gen_field(values
->Attribute14WrapShortestEnables
, 24, 27) |
3064 __gen_field(values
->Attribute13WrapShortestEnables
, 20, 23) |
3065 __gen_field(values
->Attribute12WrapShortestEnables
, 16, 19) |
3066 __gen_field(values
->Attribute11WrapShortestEnables
, 12, 15) |
3067 __gen_field(values
->Attribute10WrapShortestEnables
, 8, 11) |
3068 __gen_field(values
->Attribute9WrapShortestEnables
, 4, 7) |
3069 __gen_field(values
->Attribute8WrapShortestEnables
, 0, 3) |
3074 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
3075 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_header\
3077 .CommandSubType = 3, \
3078 ._3DCommandOpcode = 0, \
3079 ._3DCommandSubOpcode = 15, \
3082 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
3084 struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
{
3085 uint32_t CommandType
;
3086 uint32_t CommandSubType
;
3087 uint32_t _3DCommandOpcode
;
3088 uint32_t _3DCommandSubOpcode
;
3089 uint32_t DwordLength
;
3090 uint32_t ScissorRectPointer
;
3094 GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
3095 const struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
3097 uint32_t *dw
= (uint32_t * restrict
) dst
;
3100 __gen_field(values
->CommandType
, 29, 31) |
3101 __gen_field(values
->CommandSubType
, 27, 28) |
3102 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3103 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3104 __gen_field(values
->DwordLength
, 0, 7) |
3108 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
3113 #define GEN7_3DSTATE_SF_length_bias 0x00000002
3114 #define GEN7_3DSTATE_SF_header \
3116 .CommandSubType = 3, \
3117 ._3DCommandOpcode = 0, \
3118 ._3DCommandSubOpcode = 19, \
3121 #define GEN7_3DSTATE_SF_length 0x00000007
3123 struct GEN7_3DSTATE_SF
{
3124 uint32_t CommandType
;
3125 uint32_t CommandSubType
;
3126 uint32_t _3DCommandOpcode
;
3127 uint32_t _3DCommandSubOpcode
;
3128 uint32_t DwordLength
;
3129 #define D32_FLOAT_S8X24_UINT 0
3131 #define D24_UNORM_S8_UINT 2
3132 #define D24_UNORM_X8_UINT 3
3134 uint32_t DepthBufferSurfaceFormat
;
3135 bool LegacyGlobalDepthBiasEnable
;
3136 bool StatisticsEnable
;
3137 bool GlobalDepthOffsetEnableSolid
;
3138 bool GlobalDepthOffsetEnableWireframe
;
3139 bool GlobalDepthOffsetEnablePoint
;
3140 #define RASTER_SOLID 0
3141 #define RASTER_WIREFRAME 1
3142 #define RASTER_POINT 2
3143 uint32_t FrontFaceFillMode
;
3144 #define RASTER_SOLID 0
3145 #define RASTER_WIREFRAME 1
3146 #define RASTER_POINT 2
3147 uint32_t BackFaceFillMode
;
3148 bool ViewTransformEnable
;
3149 uint32_t FrontWinding
;
3150 bool AntiAliasingEnable
;
3151 #define CULLMODE_BOTH 0
3152 #define CULLMODE_NONE 1
3153 #define CULLMODE_FRONT 2
3154 #define CULLMODE_BACK 3
3157 uint32_t LineEndCapAntialiasingRegionWidth
;
3158 bool ScissorRectangleEnable
;
3159 uint32_t MultisampleRasterizationMode
;
3160 bool LastPixelEnable
;
3164 uint32_t TriangleStripListProvokingVertexSelect
;
3165 uint32_t LineStripListProvokingVertexSelect
;
3169 uint32_t TriangleFanProvokingVertexSelect
;
3170 #define AALINEDISTANCE_TRUE 1
3171 uint32_t AALineDistanceMode
;
3172 uint32_t VertexSubPixelPrecisionSelect
;
3173 uint32_t UsePointWidthState
;
3175 float GlobalDepthOffsetConstant
;
3176 float GlobalDepthOffsetScale
;
3177 float GlobalDepthOffsetClamp
;
3181 GEN7_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
3182 const struct GEN7_3DSTATE_SF
* restrict values
)
3184 uint32_t *dw
= (uint32_t * restrict
) dst
;
3187 __gen_field(values
->CommandType
, 29, 31) |
3188 __gen_field(values
->CommandSubType
, 27, 28) |
3189 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3190 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3191 __gen_field(values
->DwordLength
, 0, 7) |
3195 __gen_field(values
->DepthBufferSurfaceFormat
, 12, 14) |
3196 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
3197 __gen_field(values
->StatisticsEnable
, 10, 10) |
3198 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3199 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3200 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3201 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3202 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3203 __gen_field(values
->ViewTransformEnable
, 1, 1) |
3204 __gen_field(values
->FrontWinding
, 0, 0) |
3208 __gen_field(values
->AntiAliasingEnable
, 31, 31) |
3209 __gen_field(values
->CullMode
, 29, 30) |
3210 __gen_field(values
->LineWidth
* (1 << 7), 18, 27) |
3211 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
3212 __gen_field(values
->ScissorRectangleEnable
, 11, 11) |
3213 __gen_field(values
->MultisampleRasterizationMode
, 8, 9) |
3217 __gen_field(values
->LastPixelEnable
, 31, 31) |
3218 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
3219 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
3220 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
3221 __gen_field(values
->AALineDistanceMode
, 14, 14) |
3222 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
3223 __gen_field(values
->UsePointWidthState
, 11, 11) |
3224 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
3228 __gen_float(values
->GlobalDepthOffsetConstant
) |
3232 __gen_float(values
->GlobalDepthOffsetScale
) |
3236 __gen_float(values
->GlobalDepthOffsetClamp
) |
3241 #define GEN7_3DSTATE_SO_BUFFER_length_bias 0x00000002
3242 #define GEN7_3DSTATE_SO_BUFFER_header \
3244 .CommandSubType = 3, \
3245 ._3DCommandOpcode = 1, \
3246 ._3DCommandSubOpcode = 24, \
3249 #define GEN7_3DSTATE_SO_BUFFER_length 0x00000004
3251 struct GEN7_3DSTATE_SO_BUFFER
{
3252 uint32_t CommandType
;
3253 uint32_t CommandSubType
;
3254 uint32_t _3DCommandOpcode
;
3255 uint32_t _3DCommandSubOpcode
;
3256 uint32_t DwordLength
;
3257 uint32_t SOBufferIndex
;
3258 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
3259 uint32_t SurfacePitch
;
3260 __gen_address_type SurfaceBaseAddress
;
3261 __gen_address_type SurfaceEndAddress
;
3265 GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3266 const struct GEN7_3DSTATE_SO_BUFFER
* restrict values
)
3268 uint32_t *dw
= (uint32_t * restrict
) dst
;
3271 __gen_field(values
->CommandType
, 29, 31) |
3272 __gen_field(values
->CommandSubType
, 27, 28) |
3273 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3274 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3275 __gen_field(values
->DwordLength
, 0, 7) |
3278 uint32_t dw_SOBufferObjectControlState
;
3279 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
3281 __gen_field(values
->SOBufferIndex
, 29, 30) |
3282 __gen_field(dw_SOBufferObjectControlState
, 25, 28) |
3283 __gen_field(values
->SurfacePitch
, 0, 11) |
3290 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3296 __gen_combine_address(data
, &dw
[3], values
->SurfaceEndAddress
, dw3
);
3300 #define GEN7_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
3301 #define GEN7_3DSTATE_SO_DECL_LIST_header \
3303 .CommandSubType = 3, \
3304 ._3DCommandOpcode = 1, \
3305 ._3DCommandSubOpcode = 23
3307 #define GEN7_3DSTATE_SO_DECL_LIST_length 0x00000000
3309 #define GEN7_SO_DECL_ENTRY_length 0x00000002
3311 #define GEN7_SO_DECL_length 0x00000001
3313 struct GEN7_SO_DECL
{
3314 uint32_t OutputBufferSlot
;
3316 uint32_t RegisterIndex
;
3317 uint32_t ComponentMask
;
3321 GEN7_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
3322 const struct GEN7_SO_DECL
* restrict values
)
3324 uint32_t *dw
= (uint32_t * restrict
) dst
;
3327 __gen_field(values
->OutputBufferSlot
, 12, 13) |
3328 __gen_field(values
->HoleFlag
, 11, 11) |
3329 __gen_field(values
->RegisterIndex
, 4, 9) |
3330 __gen_field(values
->ComponentMask
, 0, 3) |
3335 struct GEN7_SO_DECL_ENTRY
{
3336 struct GEN7_SO_DECL Stream3Decl
;
3337 struct GEN7_SO_DECL Stream2Decl
;
3338 struct GEN7_SO_DECL Stream1Decl
;
3339 struct GEN7_SO_DECL Stream0Decl
;
3343 GEN7_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3344 const struct GEN7_SO_DECL_ENTRY
* restrict values
)
3346 uint32_t *dw
= (uint32_t * restrict
) dst
;
3348 uint32_t dw_Stream3Decl
;
3349 GEN7_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
3350 uint32_t dw_Stream2Decl
;
3351 GEN7_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
3352 uint32_t dw_Stream1Decl
;
3353 GEN7_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
3354 uint32_t dw_Stream0Decl
;
3355 GEN7_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
3357 __gen_field(dw_Stream3Decl
, 48, 63) |
3358 __gen_field(dw_Stream2Decl
, 32, 47) |
3359 __gen_field(dw_Stream1Decl
, 16, 31) |
3360 __gen_field(dw_Stream0Decl
, 0, 15) |
3368 struct GEN7_3DSTATE_SO_DECL_LIST
{
3369 uint32_t CommandType
;
3370 uint32_t CommandSubType
;
3371 uint32_t _3DCommandOpcode
;
3372 uint32_t _3DCommandSubOpcode
;
3373 uint32_t DwordLength
;
3374 uint32_t StreamtoBufferSelects3
;
3375 uint32_t StreamtoBufferSelects2
;
3376 uint32_t StreamtoBufferSelects1
;
3377 uint32_t StreamtoBufferSelects0
;
3378 uint32_t NumEntries3
;
3379 uint32_t NumEntries2
;
3380 uint32_t NumEntries1
;
3381 uint32_t NumEntries0
;
3382 /* variable length fields follow */
3386 GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
3387 const struct GEN7_3DSTATE_SO_DECL_LIST
* restrict values
)
3389 uint32_t *dw
= (uint32_t * restrict
) dst
;
3392 __gen_field(values
->CommandType
, 29, 31) |
3393 __gen_field(values
->CommandSubType
, 27, 28) |
3394 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3395 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3396 __gen_field(values
->DwordLength
, 0, 8) |
3400 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
3401 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
3402 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
3403 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
3407 __gen_field(values
->NumEntries3
, 24, 31) |
3408 __gen_field(values
->NumEntries2
, 16, 23) |
3409 __gen_field(values
->NumEntries1
, 8, 15) |
3410 __gen_field(values
->NumEntries0
, 0, 7) |
3413 /* variable length fields follow */
3416 #define GEN7_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
3417 #define GEN7_3DSTATE_STENCIL_BUFFER_header \
3419 .CommandSubType = 3, \
3420 ._3DCommandOpcode = 0, \
3421 ._3DCommandSubOpcode = 6, \
3424 #define GEN7_3DSTATE_STENCIL_BUFFER_length 0x00000003
3426 struct GEN7_3DSTATE_STENCIL_BUFFER
{
3427 uint32_t CommandType
;
3428 uint32_t CommandSubType
;
3429 uint32_t _3DCommandOpcode
;
3430 uint32_t _3DCommandSubOpcode
;
3431 uint32_t DwordLength
;
3432 struct GEN7_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
3433 uint32_t SurfacePitch
;
3434 __gen_address_type SurfaceBaseAddress
;
3438 GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3439 const struct GEN7_3DSTATE_STENCIL_BUFFER
* restrict values
)
3441 uint32_t *dw
= (uint32_t * restrict
) dst
;
3444 __gen_field(values
->CommandType
, 29, 31) |
3445 __gen_field(values
->CommandSubType
, 27, 28) |
3446 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3447 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3448 __gen_field(values
->DwordLength
, 0, 7) |
3451 uint32_t dw_StencilBufferObjectControlState
;
3452 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
3454 __gen_field(dw_StencilBufferObjectControlState
, 25, 28) |
3455 __gen_field(values
->SurfacePitch
, 0, 16) |
3462 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3466 #define GEN7_3DSTATE_STREAMOUT_length_bias 0x00000002
3467 #define GEN7_3DSTATE_STREAMOUT_header \
3469 .CommandSubType = 3, \
3470 ._3DCommandOpcode = 0, \
3471 ._3DCommandSubOpcode = 30, \
3474 #define GEN7_3DSTATE_STREAMOUT_length 0x00000003
3476 struct GEN7_3DSTATE_STREAMOUT
{
3477 uint32_t CommandType
;
3478 uint32_t CommandSubType
;
3479 uint32_t _3DCommandOpcode
;
3480 uint32_t _3DCommandSubOpcode
;
3481 uint32_t DwordLength
;
3482 uint32_t SOFunctionEnable
;
3483 uint32_t RenderingDisable
;
3484 uint32_t RenderStreamSelect
;
3487 uint32_t ReorderMode
;
3488 bool SOStatisticsEnable
;
3489 uint32_t SOBufferEnable3
;
3490 uint32_t SOBufferEnable2
;
3491 uint32_t SOBufferEnable1
;
3492 uint32_t SOBufferEnable0
;
3493 uint32_t Stream3VertexReadOffset
;
3494 uint32_t Stream3VertexReadLength
;
3495 uint32_t Stream2VertexReadOffset
;
3496 uint32_t Stream2VertexReadLength
;
3497 uint32_t Stream1VertexReadOffset
;
3498 uint32_t Stream1VertexReadLength
;
3499 uint32_t Stream0VertexReadOffset
;
3500 uint32_t Stream0VertexReadLength
;
3504 GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
3505 const struct GEN7_3DSTATE_STREAMOUT
* 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) |
3518 __gen_field(values
->SOFunctionEnable
, 31, 31) |
3519 __gen_field(values
->RenderingDisable
, 30, 30) |
3520 __gen_field(values
->RenderStreamSelect
, 27, 28) |
3521 __gen_field(values
->ReorderMode
, 26, 26) |
3522 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
3523 __gen_field(values
->SOBufferEnable3
, 11, 11) |
3524 __gen_field(values
->SOBufferEnable2
, 10, 10) |
3525 __gen_field(values
->SOBufferEnable1
, 9, 9) |
3526 __gen_field(values
->SOBufferEnable0
, 8, 8) |
3530 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
3531 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
3532 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
3533 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
3534 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
3535 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
3536 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
3537 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
3542 #define GEN7_3DSTATE_TE_length_bias 0x00000002
3543 #define GEN7_3DSTATE_TE_header \
3545 .CommandSubType = 3, \
3546 ._3DCommandOpcode = 0, \
3547 ._3DCommandSubOpcode = 28, \
3550 #define GEN7_3DSTATE_TE_length 0x00000004
3552 struct GEN7_3DSTATE_TE
{
3553 uint32_t CommandType
;
3554 uint32_t CommandSubType
;
3555 uint32_t _3DCommandOpcode
;
3556 uint32_t _3DCommandSubOpcode
;
3557 uint32_t DwordLength
;
3559 #define ODD_FRACTIONAL 1
3560 #define EVEN_FRACTIONAL 2
3561 uint32_t Partitioning
;
3563 #define OUTPUT_LINE 1
3564 #define OUTPUT_TRI_CW 2
3565 #define OUTPUT_TRI_CCW 3
3566 uint32_t OutputTopology
;
3575 float MaximumTessellationFactorOdd
;
3576 float MaximumTessellationFactorNotOdd
;
3580 GEN7_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
3581 const struct GEN7_3DSTATE_TE
* restrict values
)
3583 uint32_t *dw
= (uint32_t * restrict
) dst
;
3586 __gen_field(values
->CommandType
, 29, 31) |
3587 __gen_field(values
->CommandSubType
, 27, 28) |
3588 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3589 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3590 __gen_field(values
->DwordLength
, 0, 7) |
3594 __gen_field(values
->Partitioning
, 12, 13) |
3595 __gen_field(values
->OutputTopology
, 8, 9) |
3596 __gen_field(values
->TEDomain
, 4, 5) |
3597 __gen_field(values
->TEMode
, 1, 2) |
3598 __gen_field(values
->TEEnable
, 0, 0) |
3602 __gen_float(values
->MaximumTessellationFactorOdd
) |
3606 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
3611 #define GEN7_3DSTATE_URB_DS_length_bias 0x00000002
3612 #define GEN7_3DSTATE_URB_DS_header \
3614 .CommandSubType = 3, \
3615 ._3DCommandOpcode = 0, \
3616 ._3DCommandSubOpcode = 50, \
3619 #define GEN7_3DSTATE_URB_DS_length 0x00000002
3621 struct GEN7_3DSTATE_URB_DS
{
3622 uint32_t CommandType
;
3623 uint32_t CommandSubType
;
3624 uint32_t _3DCommandOpcode
;
3625 uint32_t _3DCommandSubOpcode
;
3626 uint32_t DwordLength
;
3627 uint32_t DSURBStartingAddress
;
3628 uint32_t DSURBEntryAllocationSize
;
3629 uint32_t DSNumberofURBEntries
;
3633 GEN7_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3634 const struct GEN7_3DSTATE_URB_DS
* restrict values
)
3636 uint32_t *dw
= (uint32_t * restrict
) dst
;
3639 __gen_field(values
->CommandType
, 29, 31) |
3640 __gen_field(values
->CommandSubType
, 27, 28) |
3641 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3642 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3643 __gen_field(values
->DwordLength
, 0, 7) |
3647 __gen_field(values
->DSURBStartingAddress
, 25, 29) |
3648 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
3649 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
3654 #define GEN7_3DSTATE_URB_GS_length_bias 0x00000002
3655 #define GEN7_3DSTATE_URB_GS_header \
3657 .CommandSubType = 3, \
3658 ._3DCommandOpcode = 0, \
3659 ._3DCommandSubOpcode = 51, \
3662 #define GEN7_3DSTATE_URB_GS_length 0x00000002
3664 struct GEN7_3DSTATE_URB_GS
{
3665 uint32_t CommandType
;
3666 uint32_t CommandSubType
;
3667 uint32_t _3DCommandOpcode
;
3668 uint32_t _3DCommandSubOpcode
;
3669 uint32_t DwordLength
;
3670 uint32_t GSURBStartingAddress
;
3671 uint32_t GSURBEntryAllocationSize
;
3672 uint32_t GSNumberofURBEntries
;
3676 GEN7_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3677 const struct GEN7_3DSTATE_URB_GS
* restrict values
)
3679 uint32_t *dw
= (uint32_t * restrict
) dst
;
3682 __gen_field(values
->CommandType
, 29, 31) |
3683 __gen_field(values
->CommandSubType
, 27, 28) |
3684 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3685 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3686 __gen_field(values
->DwordLength
, 0, 7) |
3690 __gen_field(values
->GSURBStartingAddress
, 25, 29) |
3691 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
3692 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
3697 #define GEN7_3DSTATE_URB_HS_length_bias 0x00000002
3698 #define GEN7_3DSTATE_URB_HS_header \
3700 .CommandSubType = 3, \
3701 ._3DCommandOpcode = 0, \
3702 ._3DCommandSubOpcode = 49, \
3705 #define GEN7_3DSTATE_URB_HS_length 0x00000002
3707 struct GEN7_3DSTATE_URB_HS
{
3708 uint32_t CommandType
;
3709 uint32_t CommandSubType
;
3710 uint32_t _3DCommandOpcode
;
3711 uint32_t _3DCommandSubOpcode
;
3712 uint32_t DwordLength
;
3713 uint32_t HSURBStartingAddress
;
3714 uint32_t HSURBEntryAllocationSize
;
3715 uint32_t HSNumberofURBEntries
;
3719 GEN7_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3720 const struct GEN7_3DSTATE_URB_HS
* restrict values
)
3722 uint32_t *dw
= (uint32_t * restrict
) dst
;
3725 __gen_field(values
->CommandType
, 29, 31) |
3726 __gen_field(values
->CommandSubType
, 27, 28) |
3727 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3728 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3729 __gen_field(values
->DwordLength
, 0, 7) |
3733 __gen_field(values
->HSURBStartingAddress
, 25, 29) |
3734 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
3735 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
3740 #define GEN7_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
3741 #define GEN7_3DSTATE_VERTEX_BUFFERS_header \
3743 .CommandSubType = 3, \
3744 ._3DCommandOpcode = 0, \
3745 ._3DCommandSubOpcode = 8
3747 #define GEN7_3DSTATE_VERTEX_BUFFERS_length 0x00000000
3749 #define GEN7_VERTEX_BUFFER_STATE_length 0x00000004
3751 struct GEN7_VERTEX_BUFFER_STATE
{
3752 uint32_t VertexBufferIndex
;
3753 #define VERTEXDATA 0
3754 #define INSTANCEDATA 1
3755 uint32_t BufferAccessType
;
3756 struct GEN7_MEMORY_OBJECT_CONTROL_STATE VertexBufferMemoryObjectControlState
;
3757 uint32_t AddressModifyEnable
;
3758 bool NullVertexBuffer
;
3759 uint32_t VertexFetchInvalidate
;
3760 uint32_t BufferPitch
;
3761 __gen_address_type BufferStartingAddress
;
3762 __gen_address_type EndAddress
;
3763 uint32_t InstanceDataStepRate
;
3767 GEN7_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
3768 const struct GEN7_VERTEX_BUFFER_STATE
* restrict values
)
3770 uint32_t *dw
= (uint32_t * restrict
) dst
;
3772 uint32_t dw_VertexBufferMemoryObjectControlState
;
3773 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_VertexBufferMemoryObjectControlState
, &values
->VertexBufferMemoryObjectControlState
);
3775 __gen_field(values
->VertexBufferIndex
, 26, 31) |
3776 __gen_field(values
->BufferAccessType
, 20, 20) |
3777 __gen_field(dw_VertexBufferMemoryObjectControlState
, 16, 19) |
3778 __gen_field(values
->AddressModifyEnable
, 14, 14) |
3779 __gen_field(values
->NullVertexBuffer
, 13, 13) |
3780 __gen_field(values
->VertexFetchInvalidate
, 12, 12) |
3781 __gen_field(values
->BufferPitch
, 0, 11) |
3788 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
3794 __gen_combine_address(data
, &dw
[2], values
->EndAddress
, dw2
);
3797 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
3802 struct GEN7_3DSTATE_VERTEX_BUFFERS
{
3803 uint32_t CommandType
;
3804 uint32_t CommandSubType
;
3805 uint32_t _3DCommandOpcode
;
3806 uint32_t _3DCommandSubOpcode
;
3807 uint32_t DwordLength
;
3808 /* variable length fields follow */
3812 GEN7_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
3813 const struct GEN7_3DSTATE_VERTEX_BUFFERS
* restrict values
)
3815 uint32_t *dw
= (uint32_t * restrict
) dst
;
3818 __gen_field(values
->CommandType
, 29, 31) |
3819 __gen_field(values
->CommandSubType
, 27, 28) |
3820 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3821 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3822 __gen_field(values
->DwordLength
, 0, 7) |
3825 /* variable length fields follow */
3828 #define GEN7_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
3829 #define GEN7_3DSTATE_VERTEX_ELEMENTS_header \
3831 .CommandSubType = 3, \
3832 ._3DCommandOpcode = 0, \
3833 ._3DCommandSubOpcode = 9
3835 #define GEN7_3DSTATE_VERTEX_ELEMENTS_length 0x00000000
3837 #define GEN7_VERTEX_ELEMENT_STATE_length 0x00000002
3839 struct GEN7_VERTEX_ELEMENT_STATE
{
3840 uint32_t VertexBufferIndex
;
3842 uint32_t SourceElementFormat
;
3843 bool EdgeFlagEnable
;
3844 uint32_t SourceElementOffset
;
3845 uint32_t Component0Control
;
3846 uint32_t Component1Control
;
3847 uint32_t Component2Control
;
3848 uint32_t Component3Control
;
3852 GEN7_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
3853 const struct GEN7_VERTEX_ELEMENT_STATE
* restrict values
)
3855 uint32_t *dw
= (uint32_t * restrict
) dst
;
3858 __gen_field(values
->VertexBufferIndex
, 26, 31) |
3859 __gen_field(values
->Valid
, 25, 25) |
3860 __gen_field(values
->SourceElementFormat
, 16, 24) |
3861 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
3862 __gen_field(values
->SourceElementOffset
, 0, 11) |
3866 __gen_field(values
->Component0Control
, 28, 30) |
3867 __gen_field(values
->Component1Control
, 24, 26) |
3868 __gen_field(values
->Component2Control
, 20, 22) |
3869 __gen_field(values
->Component3Control
, 16, 18) |
3874 struct GEN7_3DSTATE_VERTEX_ELEMENTS
{
3875 uint32_t CommandType
;
3876 uint32_t CommandSubType
;
3877 uint32_t _3DCommandOpcode
;
3878 uint32_t _3DCommandSubOpcode
;
3879 uint32_t DwordLength
;
3880 /* variable length fields follow */
3884 GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
3885 const struct GEN7_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
3887 uint32_t *dw
= (uint32_t * restrict
) dst
;
3890 __gen_field(values
->CommandType
, 29, 31) |
3891 __gen_field(values
->CommandSubType
, 27, 28) |
3892 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3893 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3894 __gen_field(values
->DwordLength
, 0, 7) |
3897 /* variable length fields follow */
3900 #define GEN7_3DSTATE_VF_STATISTICS_length_bias 0x00000001
3901 #define GEN7_3DSTATE_VF_STATISTICS_header \
3903 .CommandSubType = 1, \
3904 ._3DCommandOpcode = 0, \
3905 ._3DCommandSubOpcode = 11
3907 #define GEN7_3DSTATE_VF_STATISTICS_length 0x00000001
3909 struct GEN7_3DSTATE_VF_STATISTICS
{
3910 uint32_t CommandType
;
3911 uint32_t CommandSubType
;
3912 uint32_t _3DCommandOpcode
;
3913 uint32_t _3DCommandSubOpcode
;
3914 bool StatisticsEnable
;
3918 GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
3919 const struct GEN7_3DSTATE_VF_STATISTICS
* restrict values
)
3921 uint32_t *dw
= (uint32_t * restrict
) dst
;
3924 __gen_field(values
->CommandType
, 29, 31) |
3925 __gen_field(values
->CommandSubType
, 27, 28) |
3926 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3927 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3928 __gen_field(values
->StatisticsEnable
, 0, 0) |
3933 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
3934 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
3936 .CommandSubType = 3, \
3937 ._3DCommandOpcode = 0, \
3938 ._3DCommandSubOpcode = 35, \
3941 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
3943 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
3944 uint32_t CommandType
;
3945 uint32_t CommandSubType
;
3946 uint32_t _3DCommandOpcode
;
3947 uint32_t _3DCommandSubOpcode
;
3948 uint32_t DwordLength
;
3949 uint32_t CCViewportPointer
;
3953 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
3954 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
3956 uint32_t *dw
= (uint32_t * restrict
) dst
;
3959 __gen_field(values
->CommandType
, 29, 31) |
3960 __gen_field(values
->CommandSubType
, 27, 28) |
3961 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3962 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3963 __gen_field(values
->DwordLength
, 0, 7) |
3967 __gen_offset(values
->CCViewportPointer
, 5, 31) |
3972 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
3973 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
3975 .CommandSubType = 3, \
3976 ._3DCommandOpcode = 0, \
3977 ._3DCommandSubOpcode = 33, \
3980 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
3982 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
3983 uint32_t CommandType
;
3984 uint32_t CommandSubType
;
3985 uint32_t _3DCommandOpcode
;
3986 uint32_t _3DCommandSubOpcode
;
3987 uint32_t DwordLength
;
3988 uint32_t SFClipViewportPointer
;
3992 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
3993 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
3995 uint32_t *dw
= (uint32_t * restrict
) dst
;
3998 __gen_field(values
->CommandType
, 29, 31) |
3999 __gen_field(values
->CommandSubType
, 27, 28) |
4000 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4001 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4002 __gen_field(values
->DwordLength
, 0, 7) |
4006 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
4011 #define GEN7_3DSTATE_VS_length_bias 0x00000002
4012 #define GEN7_3DSTATE_VS_header \
4014 .CommandSubType = 3, \
4015 ._3DCommandOpcode = 0, \
4016 ._3DCommandSubOpcode = 16, \
4019 #define GEN7_3DSTATE_VS_length 0x00000006
4021 struct GEN7_3DSTATE_VS
{
4022 uint32_t CommandType
;
4023 uint32_t CommandSubType
;
4024 uint32_t _3DCommandOpcode
;
4025 uint32_t _3DCommandSubOpcode
;
4026 uint32_t DwordLength
;
4027 uint32_t KernelStartPointer
;
4030 uint32_t SingleVertexDispatch
;
4033 uint32_t VectorMaskEnableVME
;
4034 #define NoSamplers 0
4035 #define _14Samplers 1
4036 #define _58Samplers 2
4037 #define _912Samplers 3
4038 #define _1316Samplers 4
4039 uint32_t SamplerCount
;
4040 uint32_t BindingTableEntryCount
;
4043 uint32_t FloatingPointMode
;
4044 bool IllegalOpcodeExceptionEnable
;
4045 bool SoftwareExceptionEnable
;
4046 uint32_t ScratchSpaceBaseOffset
;
4047 uint32_t PerThreadScratchSpace
;
4048 uint32_t DispatchGRFStartRegisterforURBData
;
4049 uint32_t VertexURBEntryReadLength
;
4050 uint32_t VertexURBEntryReadOffset
;
4051 uint32_t MaximumNumberofThreads
;
4052 bool StatisticsEnable
;
4053 bool VertexCacheDisable
;
4054 bool VSFunctionEnable
;
4058 GEN7_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4059 const struct GEN7_3DSTATE_VS
* restrict values
)
4061 uint32_t *dw
= (uint32_t * restrict
) dst
;
4064 __gen_field(values
->CommandType
, 29, 31) |
4065 __gen_field(values
->CommandSubType
, 27, 28) |
4066 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4067 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4068 __gen_field(values
->DwordLength
, 0, 7) |
4072 __gen_offset(values
->KernelStartPointer
, 6, 31) |
4076 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
4077 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
4078 __gen_field(values
->SamplerCount
, 27, 29) |
4079 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
4080 __gen_field(values
->FloatingPointMode
, 16, 16) |
4081 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
4082 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
4086 __gen_offset(values
->ScratchSpaceBaseOffset
, 10, 31) |
4087 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4091 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 20, 24) |
4092 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
4093 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
4097 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
4098 __gen_field(values
->StatisticsEnable
, 10, 10) |
4099 __gen_field(values
->VertexCacheDisable
, 1, 1) |
4100 __gen_field(values
->VSFunctionEnable
, 0, 0) |
4105 #define GEN7_3DSTATE_WM_length_bias 0x00000002
4106 #define GEN7_3DSTATE_WM_header \
4108 .CommandSubType = 3, \
4109 ._3DCommandOpcode = 0, \
4110 ._3DCommandSubOpcode = 20, \
4113 #define GEN7_3DSTATE_WM_length 0x00000003
4115 struct GEN7_3DSTATE_WM
{
4116 uint32_t CommandType
;
4117 uint32_t CommandSubType
;
4118 uint32_t _3DCommandOpcode
;
4119 uint32_t _3DCommandSubOpcode
;
4120 uint32_t DwordLength
;
4121 bool StatisticsEnable
;
4122 bool DepthBufferClear
;
4123 bool ThreadDispatchEnable
;
4124 bool DepthBufferResolveEnable
;
4125 bool HierarchicalDepthBufferResolveEnable
;
4126 bool LegacyDiamondLineRasterization
;
4127 bool PixelShaderKillPixel
;
4128 #define PSCDEPTH_OFF 0
4129 #define PSCDEPTH_ON 1
4130 #define PSCDEPTH_ON_GE 2
4131 #define PSCDEPTH_ON_LE 3
4132 uint32_t PixelShaderComputedDepthMode
;
4133 #define EDSC_NORMAL 0
4134 #define EDSC_PSEXEC 1
4135 #define EDSC_PREPS 2
4136 uint32_t EarlyDepthStencilControl
;
4137 bool PixelShaderUsesSourceDepth
;
4138 bool PixelShaderUsesSourceW
;
4139 #define INTERP_PIXEL 0
4140 #define INTERP_CENTROID 2
4141 #define INTERP_SAMPLE 3
4142 uint32_t PositionZWInterpolationMode
;
4143 uint32_t BarycentricInterpolationMode
;
4144 bool PixelShaderUsesInputCoverageMask
;
4145 uint32_t LineEndCapAntialiasingRegionWidth
;
4146 uint32_t LineAntialiasingRegionWidth
;
4147 bool PolygonStippleEnable
;
4148 bool LineStippleEnable
;
4149 #define RASTRULE_UPPER_LEFT 0
4150 #define RASTRULE_UPPER_RIGHT 1
4151 uint32_t PointRasterizationRule
;
4152 #define MSRASTMODE_OFF_PIXEL 0
4153 #define MSRASTMODE_OFF_PATTERN 1
4154 #define MSRASTMODE_ON_PIXEL 2
4155 #define MSRASTMODE_ON_PATTERN 3
4156 uint32_t MultisampleRasterizationMode
;
4157 #define MSDISPMODE_PERSAMPLE 0
4158 #define MSDISPMODE_PERPIXEL 1
4159 uint32_t MultisampleDispatchMode
;
4163 GEN7_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
4164 const struct GEN7_3DSTATE_WM
* restrict values
)
4166 uint32_t *dw
= (uint32_t * restrict
) dst
;
4169 __gen_field(values
->CommandType
, 29, 31) |
4170 __gen_field(values
->CommandSubType
, 27, 28) |
4171 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4172 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4173 __gen_field(values
->DwordLength
, 0, 7) |
4177 __gen_field(values
->StatisticsEnable
, 31, 31) |
4178 __gen_field(values
->DepthBufferClear
, 30, 30) |
4179 __gen_field(values
->ThreadDispatchEnable
, 29, 29) |
4180 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
4181 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
4182 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
4183 __gen_field(values
->PixelShaderKillPixel
, 25, 25) |
4184 __gen_field(values
->PixelShaderComputedDepthMode
, 23, 24) |
4185 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
4186 __gen_field(values
->PixelShaderUsesSourceDepth
, 20, 20) |
4187 __gen_field(values
->PixelShaderUsesSourceW
, 19, 19) |
4188 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
4189 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
4190 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 10, 10) |
4191 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
4192 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
4193 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
4194 __gen_field(values
->LineStippleEnable
, 3, 3) |
4195 __gen_field(values
->PointRasterizationRule
, 2, 2) |
4196 __gen_field(values
->MultisampleRasterizationMode
, 0, 1) |
4200 __gen_field(values
->MultisampleDispatchMode
, 31, 31) |
4205 #define GEN7_GPGPU_OBJECT_length_bias 0x00000002
4206 #define GEN7_GPGPU_OBJECT_header \
4209 .MediaCommandOpcode = 1, \
4213 #define GEN7_GPGPU_OBJECT_length 0x00000008
4215 struct GEN7_GPGPU_OBJECT
{
4216 uint32_t CommandType
;
4218 uint32_t MediaCommandOpcode
;
4220 bool PredicateEnable
;
4221 uint32_t DwordLength
;
4222 uint32_t SharedLocalMemoryFixedOffset
;
4223 uint32_t InterfaceDescriptorOffset
;
4224 uint32_t SharedLocalMemoryOffset
;
4225 uint32_t EndofThreadGroup
;
4226 #define HalfSlice1 2
4227 #define HalfSlice0 1
4228 #define EitherHalfSlice 0
4229 uint32_t HalfSliceDestinationSelect
;
4230 uint32_t IndirectDataLength
;
4231 uint32_t IndirectDataStartAddress
;
4232 uint32_t ThreadGroupIDX
;
4233 uint32_t ThreadGroupIDY
;
4234 uint32_t ThreadGroupIDZ
;
4235 uint32_t ExecutionMask
;
4239 GEN7_GPGPU_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4240 const struct GEN7_GPGPU_OBJECT
* restrict values
)
4242 uint32_t *dw
= (uint32_t * restrict
) dst
;
4245 __gen_field(values
->CommandType
, 29, 31) |
4246 __gen_field(values
->Pipeline
, 27, 28) |
4247 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4248 __gen_field(values
->SubOpcode
, 16, 23) |
4249 __gen_field(values
->PredicateEnable
, 8, 8) |
4250 __gen_field(values
->DwordLength
, 0, 7) |
4254 __gen_field(values
->SharedLocalMemoryFixedOffset
, 7, 7) |
4255 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4259 __gen_field(values
->SharedLocalMemoryOffset
, 28, 31) |
4260 __gen_field(values
->EndofThreadGroup
, 24, 24) |
4261 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4262 __gen_field(values
->IndirectDataLength
, 0, 16) |
4266 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4270 __gen_field(values
->ThreadGroupIDX
, 0, 31) |
4274 __gen_field(values
->ThreadGroupIDY
, 0, 31) |
4278 __gen_field(values
->ThreadGroupIDZ
, 0, 31) |
4282 __gen_field(values
->ExecutionMask
, 0, 31) |
4287 #define GEN7_GPGPU_WALKER_length_bias 0x00000002
4288 #define GEN7_GPGPU_WALKER_header \
4291 .MediaCommandOpcode = 1, \
4295 #define GEN7_GPGPU_WALKER_length 0x0000000b
4297 struct GEN7_GPGPU_WALKER
{
4298 uint32_t CommandType
;
4300 uint32_t MediaCommandOpcode
;
4301 uint32_t SubOpcodeA
;
4302 bool IndirectParameterEnable
;
4303 bool PredicateEnable
;
4304 uint32_t DwordLength
;
4305 uint32_t InterfaceDescriptorOffset
;
4310 uint32_t ThreadDepthCounterMaximum
;
4311 uint32_t ThreadHeightCounterMaximum
;
4312 uint32_t ThreadWidthCounterMaximum
;
4313 uint32_t ThreadGroupIDStartingX
;
4314 uint32_t ThreadGroupIDXDimension
;
4315 uint32_t ThreadGroupIDStartingY
;
4316 uint32_t ThreadGroupIDYDimension
;
4317 uint32_t ThreadGroupIDStartingZ
;
4318 uint32_t ThreadGroupIDZDimension
;
4319 uint32_t RightExecutionMask
;
4320 uint32_t BottomExecutionMask
;
4324 GEN7_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4325 const struct GEN7_GPGPU_WALKER
* restrict values
)
4327 uint32_t *dw
= (uint32_t * restrict
) dst
;
4330 __gen_field(values
->CommandType
, 29, 31) |
4331 __gen_field(values
->Pipeline
, 27, 28) |
4332 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4333 __gen_field(values
->SubOpcodeA
, 16, 23) |
4334 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
4335 __gen_field(values
->PredicateEnable
, 8, 8) |
4336 __gen_field(values
->DwordLength
, 0, 7) |
4340 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4344 __gen_field(values
->SIMDSize
, 30, 31) |
4345 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
4346 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
4347 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
4351 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
4355 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
4359 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
4363 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
4367 __gen_field(values
->ThreadGroupIDStartingZ
, 0, 31) |
4371 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
4375 __gen_field(values
->RightExecutionMask
, 0, 31) |
4379 __gen_field(values
->BottomExecutionMask
, 0, 31) |
4384 #define GEN7_MEDIA_CURBE_LOAD_length_bias 0x00000002
4385 #define GEN7_MEDIA_CURBE_LOAD_header \
4388 .MediaCommandOpcode = 0, \
4392 #define GEN7_MEDIA_CURBE_LOAD_length 0x00000004
4394 struct GEN7_MEDIA_CURBE_LOAD
{
4395 uint32_t CommandType
;
4397 uint32_t MediaCommandOpcode
;
4399 uint32_t DwordLength
;
4400 uint32_t CURBETotalDataLength
;
4401 uint32_t CURBEDataStartAddress
;
4405 GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4406 const struct GEN7_MEDIA_CURBE_LOAD
* restrict values
)
4408 uint32_t *dw
= (uint32_t * restrict
) dst
;
4411 __gen_field(values
->CommandType
, 29, 31) |
4412 __gen_field(values
->Pipeline
, 27, 28) |
4413 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4414 __gen_field(values
->SubOpcode
, 16, 23) |
4415 __gen_field(values
->DwordLength
, 0, 15) |
4422 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
4426 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
4431 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
4432 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
4435 .MediaCommandOpcode = 0, \
4439 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
4441 struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
4442 uint32_t CommandType
;
4444 uint32_t MediaCommandOpcode
;
4446 uint32_t DwordLength
;
4447 uint32_t InterfaceDescriptorTotalLength
;
4448 uint32_t InterfaceDescriptorDataStartAddress
;
4452 GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4453 const struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
4455 uint32_t *dw
= (uint32_t * restrict
) dst
;
4458 __gen_field(values
->CommandType
, 29, 31) |
4459 __gen_field(values
->Pipeline
, 27, 28) |
4460 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4461 __gen_field(values
->SubOpcode
, 16, 23) |
4462 __gen_field(values
->DwordLength
, 0, 15) |
4469 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
4473 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
4478 #define GEN7_MEDIA_OBJECT_length_bias 0x00000002
4479 #define GEN7_MEDIA_OBJECT_header \
4481 .MediaCommandPipeline = 2, \
4482 .MediaCommandOpcode = 1, \
4483 .MediaCommandSubOpcode = 0
4485 #define GEN7_MEDIA_OBJECT_length 0x00000000
4487 struct GEN7_MEDIA_OBJECT
{
4488 uint32_t CommandType
;
4489 uint32_t MediaCommandPipeline
;
4490 uint32_t MediaCommandOpcode
;
4491 uint32_t MediaCommandSubOpcode
;
4492 uint32_t DwordLength
;
4493 uint32_t InterfaceDescriptorOffset
;
4494 bool ChildrenPresent
;
4495 #define Nothreadsynchronization 0
4496 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4497 uint32_t ThreadSynchronization
;
4498 #define Notusingscoreboard 0
4499 #define Usingscoreboard 1
4500 uint32_t UseScoreboard
;
4501 #define HalfSlice1 2
4502 #define HalfSlice0 1
4503 #define Eitherhalfslice 0
4504 uint32_t HalfSliceDestinationSelect
;
4505 uint32_t IndirectDataLength
;
4506 __gen_address_type IndirectDataStartAddress
;
4507 uint32_t ScoredboardY
;
4508 uint32_t ScoreboardX
;
4509 uint32_t ScoreboardColor
;
4510 bool ScoreboardMask
;
4511 /* variable length fields follow */
4515 GEN7_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4516 const struct GEN7_MEDIA_OBJECT
* restrict values
)
4518 uint32_t *dw
= (uint32_t * restrict
) dst
;
4521 __gen_field(values
->CommandType
, 29, 31) |
4522 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
4523 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4524 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
4525 __gen_field(values
->DwordLength
, 0, 15) |
4529 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4533 __gen_field(values
->ChildrenPresent
, 31, 31) |
4534 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4535 __gen_field(values
->UseScoreboard
, 21, 21) |
4536 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4537 __gen_field(values
->IndirectDataLength
, 0, 16) |
4544 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
4547 __gen_field(values
->ScoredboardY
, 16, 24) |
4548 __gen_field(values
->ScoreboardX
, 0, 8) |
4552 __gen_field(values
->ScoreboardColor
, 16, 19) |
4553 __gen_field(values
->ScoreboardMask
, 0, 7) |
4556 /* variable length fields follow */
4559 #define GEN7_MEDIA_OBJECT_PRT_length_bias 0x00000002
4560 #define GEN7_MEDIA_OBJECT_PRT_header \
4563 .MediaCommandOpcode = 1, \
4567 #define GEN7_MEDIA_OBJECT_PRT_length 0x00000010
4569 struct GEN7_MEDIA_OBJECT_PRT
{
4570 uint32_t CommandType
;
4572 uint32_t MediaCommandOpcode
;
4574 uint32_t DwordLength
;
4575 uint32_t InterfaceDescriptorOffset
;
4576 bool ChildrenPresent
;
4577 bool PRT_FenceNeeded
;
4578 #define Rootthreadqueue 0
4579 #define VFEstateflush 1
4580 uint32_t PRT_FenceType
;
4581 uint32_t InlineData
[12];
4585 GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
4586 const struct GEN7_MEDIA_OBJECT_PRT
* restrict values
)
4588 uint32_t *dw
= (uint32_t * restrict
) dst
;
4591 __gen_field(values
->CommandType
, 29, 31) |
4592 __gen_field(values
->Pipeline
, 27, 28) |
4593 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4594 __gen_field(values
->SubOpcode
, 16, 23) |
4595 __gen_field(values
->DwordLength
, 0, 15) |
4599 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4603 __gen_field(values
->ChildrenPresent
, 31, 31) |
4604 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
4605 __gen_field(values
->PRT_FenceType
, 22, 22) |
4611 for (uint32_t i
= 0, j
= 4; i
< 12; i
+= 1, j
++) {
4613 __gen_field(values
->InlineData
[i
+ 0], 0, 31) |
4619 #define GEN7_MEDIA_OBJECT_WALKER_length_bias 0x00000002
4620 #define GEN7_MEDIA_OBJECT_WALKER_header \
4623 .MediaCommandOpcode = 1, \
4626 #define GEN7_MEDIA_OBJECT_WALKER_length 0x00000000
4628 struct GEN7_MEDIA_OBJECT_WALKER
{
4629 uint32_t CommandType
;
4631 uint32_t MediaCommandOpcode
;
4633 uint32_t DwordLength
;
4634 uint32_t InterfaceDescriptorOffset
;
4635 bool ChildrenPresent
;
4636 #define Nothreadsynchronization 0
4637 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4638 uint32_t ThreadSynchronization
;
4639 #define Notusingscoreboard 0
4640 #define Usingscoreboard 1
4641 uint32_t UseScoreboard
;
4642 uint32_t IndirectDataLength
;
4643 uint32_t IndirectDataStartAddress
;
4644 bool ScoreboardMask
;
4647 uint32_t ColorCountMinusOne
;
4648 uint32_t MiddleLoopExtraSteps
;
4649 uint32_t LocalMidLoopUnitY
;
4650 uint32_t MidLoopUnitX
;
4651 uint32_t GlobalLoopExecCount
;
4652 uint32_t LocalLoopExecCount
;
4653 uint32_t BlockResolutionY
;
4654 uint32_t BlockResolutionX
;
4655 uint32_t LocalStartY
;
4656 uint32_t LocalStartX
;
4659 uint32_t LocalOuterLoopStrideY
;
4660 uint32_t LocalOuterLoopStrideX
;
4661 uint32_t LocalInnerLoopUnitY
;
4662 uint32_t LocalInnerLoopUnitX
;
4663 uint32_t GlobalResolutionY
;
4664 uint32_t GlobalResolutionX
;
4665 uint32_t GlobalStartY
;
4666 uint32_t GlobalStartX
;
4667 uint32_t GlobalOuterLoopStrideY
;
4668 uint32_t GlobalOuterLoopStrideX
;
4669 uint32_t GlobalInnerLoopUnitY
;
4670 uint32_t GlobalInnerLoopUnitX
;
4671 /* variable length fields follow */
4675 GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4676 const struct GEN7_MEDIA_OBJECT_WALKER
* restrict values
)
4678 uint32_t *dw
= (uint32_t * restrict
) dst
;
4681 __gen_field(values
->CommandType
, 29, 31) |
4682 __gen_field(values
->Pipeline
, 27, 28) |
4683 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4684 __gen_field(values
->SubOpcode
, 16, 23) |
4685 __gen_field(values
->DwordLength
, 0, 15) |
4689 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4693 __gen_field(values
->ChildrenPresent
, 31, 31) |
4694 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4695 __gen_field(values
->UseScoreboard
, 21, 21) |
4696 __gen_field(values
->IndirectDataLength
, 0, 16) |
4700 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4707 __gen_field(values
->ScoreboardMask
, 0, 7) |
4711 __gen_field(values
->DualMode
, 31, 31) |
4712 __gen_field(values
->Repel
, 30, 30) |
4713 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
4714 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
4715 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
4716 __gen_field(values
->MidLoopUnitX
, 8, 9) |
4720 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
4721 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
4725 __gen_field(values
->BlockResolutionY
, 16, 24) |
4726 __gen_field(values
->BlockResolutionX
, 0, 8) |
4730 __gen_field(values
->LocalStartY
, 16, 24) |
4731 __gen_field(values
->LocalStartX
, 0, 8) |
4735 __gen_field(values
->LocalEndY
, 16, 24) |
4736 __gen_field(values
->LocalEndX
, 0, 8) |
4740 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
4741 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
4745 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
4746 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
4750 __gen_field(values
->GlobalResolutionY
, 16, 24) |
4751 __gen_field(values
->GlobalResolutionX
, 0, 8) |
4755 __gen_field(values
->GlobalStartY
, 16, 25) |
4756 __gen_field(values
->GlobalStartX
, 0, 9) |
4760 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
4761 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
4765 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
4766 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
4769 /* variable length fields follow */
4772 #define GEN7_MEDIA_STATE_FLUSH_length_bias 0x00000002
4773 #define GEN7_MEDIA_STATE_FLUSH_header \
4776 .MediaCommandOpcode = 0, \
4780 #define GEN7_MEDIA_STATE_FLUSH_length 0x00000002
4782 struct GEN7_MEDIA_STATE_FLUSH
{
4783 uint32_t CommandType
;
4785 uint32_t MediaCommandOpcode
;
4787 uint32_t DwordLength
;
4788 uint32_t WatermarkRequired
;
4789 uint32_t InterfaceDescriptorOffset
;
4793 GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4794 const struct GEN7_MEDIA_STATE_FLUSH
* restrict values
)
4796 uint32_t *dw
= (uint32_t * restrict
) dst
;
4799 __gen_field(values
->CommandType
, 29, 31) |
4800 __gen_field(values
->Pipeline
, 27, 28) |
4801 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4802 __gen_field(values
->SubOpcode
, 16, 23) |
4803 __gen_field(values
->DwordLength
, 0, 15) |
4807 __gen_field(values
->WatermarkRequired
, 6, 6) |
4808 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
4813 #define GEN7_MEDIA_VFE_STATE_length_bias 0x00000002
4814 #define GEN7_MEDIA_VFE_STATE_header \
4817 .MediaCommandOpcode = 0, \
4821 #define GEN7_MEDIA_VFE_STATE_length 0x00000008
4823 struct GEN7_MEDIA_VFE_STATE
{
4824 uint32_t CommandType
;
4826 uint32_t MediaCommandOpcode
;
4828 uint32_t DwordLength
;
4829 uint32_t ScratchSpaceBasePointer
;
4830 uint32_t PerThreadScratchSpace
;
4831 uint32_t MaximumNumberofThreads
;
4832 uint32_t NumberofURBEntries
;
4833 #define Maintainingtheexistingtimestampstate 0
4834 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
4835 uint32_t ResetGatewayTimer
;
4836 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
4837 #define BypassingOpenGatewayCloseGatewayprotocol 1
4838 uint32_t BypassGatewayControl
;
4839 #define NoMMIOreadwriteallowed 0
4840 #define MMIOreadwritetoanyaddress 2
4841 uint32_t GatewayMMIOAccessControl
;
4843 uint32_t URBEntryAllocationSize
;
4844 uint32_t CURBEAllocationSize
;
4845 #define Scoreboarddisabled 0
4846 #define Scoreboardenabled 1
4847 uint32_t ScoreboardEnable
;
4848 #define StallingScoreboard 0
4849 #define NonStallingScoreboard 1
4850 uint32_t ScoreboardType
;
4851 uint32_t ScoreboardMask
;
4852 uint32_t Scoreboard3DeltaY
;
4853 uint32_t Scoreboard3DeltaX
;
4854 uint32_t Scoreboard2DeltaY
;
4855 uint32_t Scoreboard2DeltaX
;
4856 uint32_t Scoreboard1DeltaY
;
4857 uint32_t Scoreboard1DeltaX
;
4858 uint32_t Scoreboard0DeltaY
;
4859 uint32_t Scoreboard0DeltaX
;
4860 uint32_t Scoreboard7DeltaY
;
4861 uint32_t Scoreboard7DeltaX
;
4862 uint32_t Scoreboard6DeltaY
;
4863 uint32_t Scoreboard6DeltaX
;
4864 uint32_t Scoreboard5DeltaY
;
4865 uint32_t Scoreboard5DeltaX
;
4866 uint32_t Scoreboard4DeltaY
;
4867 uint32_t Scoreboard4DeltaX
;
4871 GEN7_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4872 const struct GEN7_MEDIA_VFE_STATE
* restrict values
)
4874 uint32_t *dw
= (uint32_t * restrict
) dst
;
4877 __gen_field(values
->CommandType
, 29, 31) |
4878 __gen_field(values
->Pipeline
, 27, 28) |
4879 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4880 __gen_field(values
->SubOpcode
, 16, 23) |
4881 __gen_field(values
->DwordLength
, 0, 15) |
4885 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
4886 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4890 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
4891 __gen_field(values
->NumberofURBEntries
, 8, 15) |
4892 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
4893 __gen_field(values
->BypassGatewayControl
, 6, 6) |
4894 __gen_field(values
->GatewayMMIOAccessControl
, 3, 4) |
4895 __gen_field(values
->GPGPUMode
, 2, 2) |
4902 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
4903 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
4907 __gen_field(values
->ScoreboardEnable
, 31, 31) |
4908 __gen_field(values
->ScoreboardType
, 30, 30) |
4909 __gen_field(values
->ScoreboardMask
, 0, 7) |
4913 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
4914 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
4915 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
4916 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
4917 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
4918 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
4919 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
4920 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
4924 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
4925 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
4926 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
4927 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
4928 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
4929 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
4930 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
4931 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
4936 #define GEN7_MI_ARB_CHECK_length_bias 0x00000001
4937 #define GEN7_MI_ARB_CHECK_header \
4939 .MICommandOpcode = 5
4941 #define GEN7_MI_ARB_CHECK_length 0x00000001
4943 struct GEN7_MI_ARB_CHECK
{
4944 uint32_t CommandType
;
4945 uint32_t MICommandOpcode
;
4949 GEN7_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
4950 const struct GEN7_MI_ARB_CHECK
* restrict values
)
4952 uint32_t *dw
= (uint32_t * restrict
) dst
;
4955 __gen_field(values
->CommandType
, 29, 31) |
4956 __gen_field(values
->MICommandOpcode
, 23, 28) |
4961 #define GEN7_MI_ARB_ON_OFF_length_bias 0x00000001
4962 #define GEN7_MI_ARB_ON_OFF_header \
4964 .MICommandOpcode = 8
4966 #define GEN7_MI_ARB_ON_OFF_length 0x00000001
4968 struct GEN7_MI_ARB_ON_OFF
{
4969 uint32_t CommandType
;
4970 uint32_t MICommandOpcode
;
4971 bool ArbitrationEnable
;
4975 GEN7_MI_ARB_ON_OFF_pack(__gen_user_data
*data
, void * restrict dst
,
4976 const struct GEN7_MI_ARB_ON_OFF
* restrict values
)
4978 uint32_t *dw
= (uint32_t * restrict
) dst
;
4981 __gen_field(values
->CommandType
, 29, 31) |
4982 __gen_field(values
->MICommandOpcode
, 23, 28) |
4983 __gen_field(values
->ArbitrationEnable
, 0, 0) |
4988 #define GEN7_MI_BATCH_BUFFER_END_length_bias 0x00000001
4989 #define GEN7_MI_BATCH_BUFFER_END_header \
4991 .MICommandOpcode = 10
4993 #define GEN7_MI_BATCH_BUFFER_END_length 0x00000001
4995 struct GEN7_MI_BATCH_BUFFER_END
{
4996 uint32_t CommandType
;
4997 uint32_t MICommandOpcode
;
5001 GEN7_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
5002 const struct GEN7_MI_BATCH_BUFFER_END
* restrict values
)
5004 uint32_t *dw
= (uint32_t * restrict
) dst
;
5007 __gen_field(values
->CommandType
, 29, 31) |
5008 __gen_field(values
->MICommandOpcode
, 23, 28) |
5013 #define GEN7_MI_BATCH_BUFFER_START_length_bias 0x00000002
5014 #define GEN7_MI_BATCH_BUFFER_START_header \
5016 .MICommandOpcode = 49, \
5019 #define GEN7_MI_BATCH_BUFFER_START_length 0x00000002
5021 struct GEN7_MI_BATCH_BUFFER_START
{
5022 uint32_t CommandType
;
5023 uint32_t MICommandOpcode
;
5024 bool ClearCommandBufferEnable
;
5027 uint32_t AddressSpaceIndicator
;
5028 uint32_t DwordLength
;
5029 __gen_address_type BatchBufferStartAddress
;
5033 GEN7_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
5034 const struct GEN7_MI_BATCH_BUFFER_START
* restrict values
)
5036 uint32_t *dw
= (uint32_t * restrict
) dst
;
5039 __gen_field(values
->CommandType
, 29, 31) |
5040 __gen_field(values
->MICommandOpcode
, 23, 28) |
5041 __gen_field(values
->ClearCommandBufferEnable
, 11, 11) |
5042 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
5043 __gen_field(values
->DwordLength
, 0, 7) |
5050 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
5054 #define GEN7_MI_CLFLUSH_length_bias 0x00000002
5055 #define GEN7_MI_CLFLUSH_header \
5057 .MICommandOpcode = 39
5059 #define GEN7_MI_CLFLUSH_length 0x00000000
5061 struct GEN7_MI_CLFLUSH
{
5062 uint32_t CommandType
;
5063 uint32_t MICommandOpcode
;
5064 #define PerProcessGraphicsAddress 0
5065 #define GlobalGraphicsAddress 1
5066 uint32_t UseGlobalGTT
;
5067 uint32_t DwordLength
;
5068 __gen_address_type PageBaseAddress
;
5069 uint32_t StartingCachelineOffset
;
5070 __gen_address_type PageBaseAddressHigh
;
5071 /* variable length fields follow */
5075 GEN7_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5076 const struct GEN7_MI_CLFLUSH
* restrict values
)
5078 uint32_t *dw
= (uint32_t * restrict
) dst
;
5081 __gen_field(values
->CommandType
, 29, 31) |
5082 __gen_field(values
->MICommandOpcode
, 23, 28) |
5083 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5084 __gen_field(values
->DwordLength
, 0, 9) |
5088 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
5092 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
5098 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
5100 /* variable length fields follow */
5103 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
5104 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_header\
5106 .MICommandOpcode = 54, \
5107 .UseGlobalGTT = 0, \
5108 .CompareSemaphore = 0, \
5111 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
5113 struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
{
5114 uint32_t CommandType
;
5115 uint32_t MICommandOpcode
;
5116 uint32_t UseGlobalGTT
;
5117 uint32_t CompareSemaphore
;
5118 uint32_t DwordLength
;
5119 uint32_t CompareDataDword
;
5120 __gen_address_type CompareAddress
;
5124 GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
5125 const struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
5127 uint32_t *dw
= (uint32_t * restrict
) dst
;
5130 __gen_field(values
->CommandType
, 29, 31) |
5131 __gen_field(values
->MICommandOpcode
, 23, 28) |
5132 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5133 __gen_field(values
->CompareSemaphore
, 21, 21) |
5134 __gen_field(values
->DwordLength
, 0, 7) |
5138 __gen_field(values
->CompareDataDword
, 0, 31) |
5145 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
5149 #define GEN7_MI_FLUSH_length_bias 0x00000001
5150 #define GEN7_MI_FLUSH_header \
5152 .MICommandOpcode = 4
5154 #define GEN7_MI_FLUSH_length 0x00000001
5156 struct GEN7_MI_FLUSH
{
5157 uint32_t CommandType
;
5158 uint32_t MICommandOpcode
;
5159 bool IndirectStatePointersDisable
;
5160 bool GenericMediaStateClear
;
5163 bool GlobalSnapshotCountReset
;
5166 bool RenderCacheFlushInhibit
;
5167 #define DontInvalidate 0
5168 #define Invalidate 1
5169 bool StateInstructionCacheInvalidate
;
5173 GEN7_MI_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5174 const struct GEN7_MI_FLUSH
* restrict values
)
5176 uint32_t *dw
= (uint32_t * restrict
) dst
;
5179 __gen_field(values
->CommandType
, 29, 31) |
5180 __gen_field(values
->MICommandOpcode
, 23, 28) |
5181 __gen_field(values
->IndirectStatePointersDisable
, 5, 5) |
5182 __gen_field(values
->GenericMediaStateClear
, 4, 4) |
5183 __gen_field(values
->GlobalSnapshotCountReset
, 3, 3) |
5184 __gen_field(values
->RenderCacheFlushInhibit
, 2, 2) |
5185 __gen_field(values
->StateInstructionCacheInvalidate
, 1, 1) |
5190 #define GEN7_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
5191 #define GEN7_MI_LOAD_REGISTER_IMM_header \
5193 .MICommandOpcode = 34, \
5196 #define GEN7_MI_LOAD_REGISTER_IMM_length 0x00000003
5198 struct GEN7_MI_LOAD_REGISTER_IMM
{
5199 uint32_t CommandType
;
5200 uint32_t MICommandOpcode
;
5201 uint32_t ByteWriteDisables
;
5202 uint32_t DwordLength
;
5203 uint32_t RegisterOffset
;
5208 GEN7_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5209 const struct GEN7_MI_LOAD_REGISTER_IMM
* restrict values
)
5211 uint32_t *dw
= (uint32_t * restrict
) dst
;
5214 __gen_field(values
->CommandType
, 29, 31) |
5215 __gen_field(values
->MICommandOpcode
, 23, 28) |
5216 __gen_field(values
->ByteWriteDisables
, 8, 11) |
5217 __gen_field(values
->DwordLength
, 0, 7) |
5221 __gen_offset(values
->RegisterOffset
, 2, 22) |
5225 __gen_field(values
->DataDWord
, 0, 31) |
5230 #define GEN7_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
5231 #define GEN7_MI_LOAD_REGISTER_MEM_header \
5233 .MICommandOpcode = 41, \
5236 #define GEN7_MI_LOAD_REGISTER_MEM_length 0x00000003
5238 struct GEN7_MI_LOAD_REGISTER_MEM
{
5239 uint32_t CommandType
;
5240 uint32_t MICommandOpcode
;
5242 uint32_t AsyncModeEnable
;
5243 uint32_t DwordLength
;
5244 uint32_t RegisterAddress
;
5245 __gen_address_type MemoryAddress
;
5249 GEN7_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
5250 const struct GEN7_MI_LOAD_REGISTER_MEM
* restrict values
)
5252 uint32_t *dw
= (uint32_t * restrict
) dst
;
5255 __gen_field(values
->CommandType
, 29, 31) |
5256 __gen_field(values
->MICommandOpcode
, 23, 28) |
5257 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5258 __gen_field(values
->AsyncModeEnable
, 21, 21) |
5259 __gen_field(values
->DwordLength
, 0, 7) |
5263 __gen_offset(values
->RegisterAddress
, 2, 22) |
5270 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
5274 #define GEN7_MI_NOOP_length_bias 0x00000001
5275 #define GEN7_MI_NOOP_header \
5277 .MICommandOpcode = 0
5279 #define GEN7_MI_NOOP_length 0x00000001
5281 struct GEN7_MI_NOOP
{
5282 uint32_t CommandType
;
5283 uint32_t MICommandOpcode
;
5284 bool IdentificationNumberRegisterWriteEnable
;
5285 uint32_t IdentificationNumber
;
5289 GEN7_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
5290 const struct GEN7_MI_NOOP
* restrict values
)
5292 uint32_t *dw
= (uint32_t * restrict
) dst
;
5295 __gen_field(values
->CommandType
, 29, 31) |
5296 __gen_field(values
->MICommandOpcode
, 23, 28) |
5297 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
5298 __gen_field(values
->IdentificationNumber
, 0, 21) |
5303 #define GEN7_MI_PREDICATE_length_bias 0x00000001
5304 #define GEN7_MI_PREDICATE_header \
5306 .MICommandOpcode = 12
5308 #define GEN7_MI_PREDICATE_length 0x00000001
5310 struct GEN7_MI_PREDICATE
{
5311 uint32_t CommandType
;
5312 uint32_t MICommandOpcode
;
5315 #define LOAD_LOADINV 3
5316 uint32_t LoadOperation
;
5317 #define COMBINE_SET 0
5318 #define COMBINE_AND 1
5319 #define COMBINE_OR 2
5320 #define COMBINE_XOR 3
5321 uint32_t CombineOperation
;
5322 #define COMPARE_SRCS_EQUAL 2
5323 #define COMPARE_DELTAS_EQUAL 3
5324 uint32_t CompareOperation
;
5328 GEN7_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
5329 const struct GEN7_MI_PREDICATE
* restrict values
)
5331 uint32_t *dw
= (uint32_t * restrict
) dst
;
5334 __gen_field(values
->CommandType
, 29, 31) |
5335 __gen_field(values
->MICommandOpcode
, 23, 28) |
5336 __gen_field(values
->LoadOperation
, 6, 7) |
5337 __gen_field(values
->CombineOperation
, 3, 4) |
5338 __gen_field(values
->CompareOperation
, 0, 1) |
5343 #define GEN7_MI_REPORT_HEAD_length_bias 0x00000001
5344 #define GEN7_MI_REPORT_HEAD_header \
5346 .MICommandOpcode = 7
5348 #define GEN7_MI_REPORT_HEAD_length 0x00000001
5350 struct GEN7_MI_REPORT_HEAD
{
5351 uint32_t CommandType
;
5352 uint32_t MICommandOpcode
;
5356 GEN7_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
5357 const struct GEN7_MI_REPORT_HEAD
* restrict values
)
5359 uint32_t *dw
= (uint32_t * restrict
) dst
;
5362 __gen_field(values
->CommandType
, 29, 31) |
5363 __gen_field(values
->MICommandOpcode
, 23, 28) |
5368 #define GEN7_MI_SEMAPHORE_MBOX_length_bias 0x00000002
5369 #define GEN7_MI_SEMAPHORE_MBOX_header \
5371 .MICommandOpcode = 22, \
5374 #define GEN7_MI_SEMAPHORE_MBOX_length 0x00000003
5376 struct GEN7_MI_SEMAPHORE_MBOX
{
5377 uint32_t CommandType
;
5378 uint32_t MICommandOpcode
;
5381 #define UseGeneralRegisterSelect 3
5382 uint32_t RegisterSelect
;
5383 uint32_t DwordLength
;
5384 uint32_t SemaphoreDataDword
;
5388 GEN7_MI_SEMAPHORE_MBOX_pack(__gen_user_data
*data
, void * restrict dst
,
5389 const struct GEN7_MI_SEMAPHORE_MBOX
* restrict values
)
5391 uint32_t *dw
= (uint32_t * restrict
) dst
;
5394 __gen_field(values
->CommandType
, 29, 31) |
5395 __gen_field(values
->MICommandOpcode
, 23, 28) |
5396 __gen_field(values
->RegisterSelect
, 16, 17) |
5397 __gen_field(values
->DwordLength
, 0, 7) |
5401 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
5409 #define GEN7_MI_SET_CONTEXT_length_bias 0x00000002
5410 #define GEN7_MI_SET_CONTEXT_header \
5412 .MICommandOpcode = 24, \
5415 #define GEN7_MI_SET_CONTEXT_length 0x00000002
5417 struct GEN7_MI_SET_CONTEXT
{
5418 uint32_t CommandType
;
5419 uint32_t MICommandOpcode
;
5420 uint32_t DwordLength
;
5421 __gen_address_type LogicalContextAddress
;
5422 uint32_t ReservedMustbe1
;
5423 bool ExtendedStateSaveEnable
;
5424 bool ExtendedStateRestoreEnable
;
5425 uint32_t ForceRestore
;
5426 uint32_t RestoreInhibit
;
5430 GEN7_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
5431 const struct GEN7_MI_SET_CONTEXT
* restrict values
)
5433 uint32_t *dw
= (uint32_t * restrict
) dst
;
5436 __gen_field(values
->CommandType
, 29, 31) |
5437 __gen_field(values
->MICommandOpcode
, 23, 28) |
5438 __gen_field(values
->DwordLength
, 0, 7) |
5442 __gen_field(values
->ReservedMustbe1
, 8, 8) |
5443 __gen_field(values
->ExtendedStateSaveEnable
, 3, 3) |
5444 __gen_field(values
->ExtendedStateRestoreEnable
, 2, 2) |
5445 __gen_field(values
->ForceRestore
, 1, 1) |
5446 __gen_field(values
->RestoreInhibit
, 0, 0) |
5450 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
5454 #define GEN7_MI_STORE_DATA_IMM_length_bias 0x00000002
5455 #define GEN7_MI_STORE_DATA_IMM_header \
5457 .MICommandOpcode = 32, \
5460 #define GEN7_MI_STORE_DATA_IMM_length 0x00000004
5462 struct GEN7_MI_STORE_DATA_IMM
{
5463 uint32_t CommandType
;
5464 uint32_t MICommandOpcode
;
5466 uint32_t DwordLength
;
5468 uint32_t CoreModeEnable
;
5469 uint32_t DataDWord0
;
5470 uint32_t DataDWord1
;
5474 GEN7_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5475 const struct GEN7_MI_STORE_DATA_IMM
* restrict values
)
5477 uint32_t *dw
= (uint32_t * restrict
) dst
;
5480 __gen_field(values
->CommandType
, 29, 31) |
5481 __gen_field(values
->MICommandOpcode
, 23, 28) |
5482 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5483 __gen_field(values
->DwordLength
, 0, 5) |
5490 __gen_field(values
->Address
, 2, 31) |
5491 __gen_field(values
->CoreModeEnable
, 0, 0) |
5495 __gen_field(values
->DataDWord0
, 0, 31) |
5499 __gen_field(values
->DataDWord1
, 0, 31) |
5504 #define GEN7_MI_STORE_DATA_INDEX_length_bias 0x00000002
5505 #define GEN7_MI_STORE_DATA_INDEX_header \
5507 .MICommandOpcode = 33, \
5510 #define GEN7_MI_STORE_DATA_INDEX_length 0x00000003
5512 struct GEN7_MI_STORE_DATA_INDEX
{
5513 uint32_t CommandType
;
5514 uint32_t MICommandOpcode
;
5515 uint32_t DwordLength
;
5517 uint32_t DataDWord0
;
5518 uint32_t DataDWord1
;
5522 GEN7_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
5523 const struct GEN7_MI_STORE_DATA_INDEX
* restrict values
)
5525 uint32_t *dw
= (uint32_t * restrict
) dst
;
5528 __gen_field(values
->CommandType
, 29, 31) |
5529 __gen_field(values
->MICommandOpcode
, 23, 28) |
5530 __gen_field(values
->DwordLength
, 0, 7) |
5534 __gen_field(values
->Offset
, 2, 11) |
5538 __gen_field(values
->DataDWord0
, 0, 31) |
5542 __gen_field(values
->DataDWord1
, 0, 31) |
5547 #define GEN7_MI_SUSPEND_FLUSH_length_bias 0x00000001
5548 #define GEN7_MI_SUSPEND_FLUSH_header \
5550 .MICommandOpcode = 11
5552 #define GEN7_MI_SUSPEND_FLUSH_length 0x00000001
5554 struct GEN7_MI_SUSPEND_FLUSH
{
5555 uint32_t CommandType
;
5556 uint32_t MICommandOpcode
;
5561 GEN7_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5562 const struct GEN7_MI_SUSPEND_FLUSH
* restrict values
)
5564 uint32_t *dw
= (uint32_t * restrict
) dst
;
5567 __gen_field(values
->CommandType
, 29, 31) |
5568 __gen_field(values
->MICommandOpcode
, 23, 28) |
5569 __gen_field(values
->SuspendFlush
, 0, 0) |
5574 #define GEN7_MI_TOPOLOGY_FILTER_length_bias 0x00000001
5575 #define GEN7_MI_TOPOLOGY_FILTER_header \
5577 .MICommandOpcode = 13
5579 #define GEN7_MI_TOPOLOGY_FILTER_length 0x00000001
5581 struct GEN7_MI_TOPOLOGY_FILTER
{
5582 uint32_t CommandType
;
5583 uint32_t MICommandOpcode
;
5584 uint32_t TopologyFilterValue
;
5588 GEN7_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
5589 const struct GEN7_MI_TOPOLOGY_FILTER
* restrict values
)
5591 uint32_t *dw
= (uint32_t * restrict
) dst
;
5594 __gen_field(values
->CommandType
, 29, 31) |
5595 __gen_field(values
->MICommandOpcode
, 23, 28) |
5596 __gen_field(values
->TopologyFilterValue
, 0, 5) |
5601 #define GEN7_MI_UPDATE_GTT_length_bias 0x00000002
5602 #define GEN7_MI_UPDATE_GTT_header \
5604 .MICommandOpcode = 35
5606 #define GEN7_MI_UPDATE_GTT_length 0x00000000
5608 struct GEN7_MI_UPDATE_GTT
{
5609 uint32_t CommandType
;
5610 uint32_t MICommandOpcode
;
5611 #define PerProcessGraphicsAddress 0
5612 #define GlobalGraphicsAddress 1
5613 uint32_t UseGlobalGTT
;
5614 uint32_t DwordLength
;
5615 __gen_address_type EntryAddress
;
5616 /* variable length fields follow */
5620 GEN7_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
5621 const struct GEN7_MI_UPDATE_GTT
* restrict values
)
5623 uint32_t *dw
= (uint32_t * restrict
) dst
;
5626 __gen_field(values
->CommandType
, 29, 31) |
5627 __gen_field(values
->MICommandOpcode
, 23, 28) |
5628 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5629 __gen_field(values
->DwordLength
, 0, 7) |
5636 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
5638 /* variable length fields follow */
5641 #define GEN7_MI_URB_CLEAR_length_bias 0x00000002
5642 #define GEN7_MI_URB_CLEAR_header \
5644 .MICommandOpcode = 25, \
5647 #define GEN7_MI_URB_CLEAR_length 0x00000002
5649 struct GEN7_MI_URB_CLEAR
{
5650 uint32_t CommandType
;
5651 uint32_t MICommandOpcode
;
5652 uint32_t DwordLength
;
5653 uint32_t URBClearLength
;
5654 uint32_t URBAddress
;
5658 GEN7_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
5659 const struct GEN7_MI_URB_CLEAR
* restrict values
)
5661 uint32_t *dw
= (uint32_t * restrict
) dst
;
5664 __gen_field(values
->CommandType
, 29, 31) |
5665 __gen_field(values
->MICommandOpcode
, 23, 28) |
5666 __gen_field(values
->DwordLength
, 0, 7) |
5670 __gen_field(values
->URBClearLength
, 16, 28) |
5671 __gen_offset(values
->URBAddress
, 0, 13) |
5676 #define GEN7_MI_USER_INTERRUPT_length_bias 0x00000001
5677 #define GEN7_MI_USER_INTERRUPT_header \
5679 .MICommandOpcode = 2
5681 #define GEN7_MI_USER_INTERRUPT_length 0x00000001
5683 struct GEN7_MI_USER_INTERRUPT
{
5684 uint32_t CommandType
;
5685 uint32_t MICommandOpcode
;
5689 GEN7_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
5690 const struct GEN7_MI_USER_INTERRUPT
* restrict values
)
5692 uint32_t *dw
= (uint32_t * restrict
) dst
;
5695 __gen_field(values
->CommandType
, 29, 31) |
5696 __gen_field(values
->MICommandOpcode
, 23, 28) |
5701 #define GEN7_MI_WAIT_FOR_EVENT_length_bias 0x00000001
5702 #define GEN7_MI_WAIT_FOR_EVENT_header \
5704 .MICommandOpcode = 3
5706 #define GEN7_MI_WAIT_FOR_EVENT_length 0x00000001
5708 struct GEN7_MI_WAIT_FOR_EVENT
{
5709 uint32_t CommandType
;
5710 uint32_t MICommandOpcode
;
5711 bool DisplayPipeCHorizontalBlankWaitEnable
;
5712 bool DisplayPipeCVerticalBlankWaitEnable
;
5713 bool DisplaySpriteCFlipPendingWaitEnable
;
5714 #define Notenabled 0
5715 uint32_t ConditionCodeWaitSelect
;
5716 bool DisplayPlaneCFlipPendingWaitEnable
;
5717 bool DisplayPipeCScanLineWaitEnable
;
5718 bool DisplayPipeBHorizontalBlankWaitEnable
;
5719 bool DisplayPipeBVerticalBlankWaitEnable
;
5720 bool DisplaySpriteBFlipPendingWaitEnable
;
5721 bool DisplayPlaneBFlipPendingWaitEnable
;
5722 bool DisplayPipeBScanLineWaitEnable
;
5723 bool DisplayPipeAHorizontalBlankWaitEnable
;
5724 bool DisplayPipeAVerticalBlankWaitEnable
;
5725 bool DisplaySpriteAFlipPendingWaitEnable
;
5726 bool DisplayPlaneAFlipPendingWaitEnable
;
5727 bool DisplayPipeAScanLineWaitEnable
;
5731 GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
5732 const struct GEN7_MI_WAIT_FOR_EVENT
* restrict values
)
5734 uint32_t *dw
= (uint32_t * restrict
) dst
;
5737 __gen_field(values
->CommandType
, 29, 31) |
5738 __gen_field(values
->MICommandOpcode
, 23, 28) |
5739 __gen_field(values
->DisplayPipeCHorizontalBlankWaitEnable
, 22, 22) |
5740 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
5741 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
5742 __gen_field(values
->ConditionCodeWaitSelect
, 16, 19) |
5743 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
5744 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
5745 __gen_field(values
->DisplayPipeBHorizontalBlankWaitEnable
, 13, 13) |
5746 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
5747 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
5748 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
5749 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
5750 __gen_field(values
->DisplayPipeAHorizontalBlankWaitEnable
, 5, 5) |
5751 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
5752 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
5753 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
5754 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
5759 #define GEN7_PIPE_CONTROL_length_bias 0x00000002
5760 #define GEN7_PIPE_CONTROL_header \
5762 .CommandSubType = 3, \
5763 ._3DCommandOpcode = 2, \
5764 ._3DCommandSubOpcode = 0, \
5767 #define GEN7_PIPE_CONTROL_length 0x00000005
5769 struct GEN7_PIPE_CONTROL
{
5770 uint32_t CommandType
;
5771 uint32_t CommandSubType
;
5772 uint32_t _3DCommandOpcode
;
5773 uint32_t _3DCommandSubOpcode
;
5774 uint32_t DwordLength
;
5777 uint32_t DestinationAddressType
;
5778 #define NoLRIOperation 0
5779 #define MMIOWriteImmediateData 1
5780 uint32_t LRIPostSyncOperation
;
5781 uint32_t StoreDataIndex
;
5782 uint32_t CommandStreamerStallEnable
;
5785 uint32_t GlobalSnapshotCountReset
;
5786 uint32_t TLBInvalidate
;
5787 bool GenericMediaStateClear
;
5789 #define WriteImmediateData 1
5790 #define WritePSDepthCount 2
5791 #define WriteTimestamp 3
5792 uint32_t PostSyncOperation
;
5793 bool DepthStallEnable
;
5794 #define DisableFlush 0
5795 #define EnableFlush 1
5796 bool RenderTargetCacheFlushEnable
;
5797 bool InstructionCacheInvalidateEnable
;
5798 bool TextureCacheInvalidationEnable
;
5799 bool IndirectStatePointersDisable
;
5801 bool PipeControlFlushEnable
;
5803 bool VFCacheInvalidationEnable
;
5804 bool ConstantCacheInvalidationEnable
;
5805 bool StateCacheInvalidationEnable
;
5806 bool StallAtPixelScoreboard
;
5807 #define FlushDisabled 0
5808 #define FlushEnabled 1
5809 bool DepthCacheFlushEnable
;
5810 __gen_address_type Address
;
5811 uint32_t ImmediateData
;
5812 uint32_t ImmediateData0
;
5816 GEN7_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
5817 const struct GEN7_PIPE_CONTROL
* restrict values
)
5819 uint32_t *dw
= (uint32_t * restrict
) dst
;
5822 __gen_field(values
->CommandType
, 29, 31) |
5823 __gen_field(values
->CommandSubType
, 27, 28) |
5824 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5825 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5826 __gen_field(values
->DwordLength
, 0, 7) |
5830 __gen_field(values
->DestinationAddressType
, 24, 24) |
5831 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
5832 __gen_field(values
->StoreDataIndex
, 21, 21) |
5833 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
5834 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
5835 __gen_field(values
->TLBInvalidate
, 18, 18) |
5836 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
5837 __gen_field(values
->PostSyncOperation
, 14, 15) |
5838 __gen_field(values
->DepthStallEnable
, 13, 13) |
5839 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
5840 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
5841 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
5842 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
5843 __gen_field(values
->NotifyEnable
, 8, 8) |
5844 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
5845 __gen_field(values
->DCFlushEnable
, 5, 5) |
5846 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
5847 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
5848 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
5849 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
5850 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
5857 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
5860 __gen_field(values
->ImmediateData
, 0, 31) |
5864 __gen_field(values
->ImmediateData
, 0, 31) |
5869 #define GEN7_SCISSOR_RECT_length 0x00000002
5871 struct GEN7_SCISSOR_RECT
{
5872 uint32_t ScissorRectangleYMin
;
5873 uint32_t ScissorRectangleXMin
;
5874 uint32_t ScissorRectangleYMax
;
5875 uint32_t ScissorRectangleXMax
;
5879 GEN7_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
5880 const struct GEN7_SCISSOR_RECT
* restrict values
)
5882 uint32_t *dw
= (uint32_t * restrict
) dst
;
5885 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
5886 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
5890 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
5891 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
5896 #define GEN7_SF_CLIP_VIEWPORT_length 0x00000010
5898 struct GEN7_SF_CLIP_VIEWPORT
{
5899 float ViewportMatrixElementm00
;
5900 float ViewportMatrixElementm11
;
5901 float ViewportMatrixElementm22
;
5902 float ViewportMatrixElementm30
;
5903 float ViewportMatrixElementm31
;
5904 float ViewportMatrixElementm32
;
5905 float XMinClipGuardband
;
5906 float XMaxClipGuardband
;
5907 float YMinClipGuardband
;
5908 float YMaxClipGuardband
;
5912 GEN7_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
5913 const struct GEN7_SF_CLIP_VIEWPORT
* restrict values
)
5915 uint32_t *dw
= (uint32_t * restrict
) dst
;
5918 __gen_float(values
->ViewportMatrixElementm00
) |
5922 __gen_float(values
->ViewportMatrixElementm11
) |
5926 __gen_float(values
->ViewportMatrixElementm22
) |
5930 __gen_float(values
->ViewportMatrixElementm30
) |
5934 __gen_float(values
->ViewportMatrixElementm31
) |
5938 __gen_float(values
->ViewportMatrixElementm32
) |
5948 __gen_float(values
->XMinClipGuardband
) |
5952 __gen_float(values
->XMaxClipGuardband
) |
5956 __gen_float(values
->YMinClipGuardband
) |
5960 __gen_float(values
->YMaxClipGuardband
) |
5963 for (uint32_t i
= 0, j
= 12; i
< 4; i
+= 1, j
++) {
5970 #define GEN7_BLEND_STATE_length 0x00000002
5972 struct GEN7_BLEND_STATE
{
5973 bool ColorBufferBlendEnable
;
5974 bool IndependentAlphaBlendEnable
;
5975 #define BLENDFUNCTION_ADD 0
5976 #define BLENDFUNCTION_SUBTRACT 1
5977 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5978 #define BLENDFUNCTION_MIN 3
5979 #define BLENDFUNCTION_MAX 4
5980 uint32_t AlphaBlendFunction
;
5981 #define BLENDFACTOR_ONE 1
5982 #define BLENDFACTOR_SRC_COLOR 2
5983 #define BLENDFACTOR_SRC_ALPHA 3
5984 #define BLENDFACTOR_DST_ALPHA 4
5985 #define BLENDFACTOR_DST_COLOR 5
5986 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
5987 #define BLENDFACTOR_CONST_COLOR 7
5988 #define BLENDFACTOR_CONST_ALPHA 8
5989 #define BLENDFACTOR_SRC1_COLOR 9
5990 #define BLENDFACTOR_SRC1_ALPHA 10
5991 #define BLENDFACTOR_ZERO 17
5992 #define BLENDFACTOR_INV_SRC_COLOR 18
5993 #define BLENDFACTOR_INV_SRC_ALPHA 19
5994 #define BLENDFACTOR_INV_DST_ALPHA 20
5995 #define BLENDFACTOR_INV_DST_COLOR 21
5996 #define BLENDFACTOR_INV_CONST_COLOR 23
5997 #define BLENDFACTOR_INV_CONST_ALPHA 24
5998 #define BLENDFACTOR_INV_SRC1_COLOR 25
5999 #define BLENDFACTOR_INV_SRC1_ALPHA 26
6000 uint32_t SourceAlphaBlendFactor
;
6001 uint32_t DestinationAlphaBlendFactor
;
6002 #define BLENDFUNCTION_ADD 0
6003 #define BLENDFUNCTION_SUBTRACT 1
6004 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
6005 #define BLENDFUNCTION_MIN 3
6006 #define BLENDFUNCTION_MAX 4
6007 uint32_t ColorBlendFunction
;
6008 uint32_t SourceBlendFactor
;
6009 uint32_t DestinationBlendFactor
;
6010 bool AlphaToCoverageEnable
;
6011 bool AlphaToOneEnable
;
6012 bool AlphaToCoverageDitherEnable
;
6013 bool WriteDisableAlpha
;
6014 bool WriteDisableRed
;
6015 bool WriteDisableGreen
;
6016 bool WriteDisableBlue
;
6018 #define LOGICOP_CLEAR 0
6019 #define LOGICOP_NOR 1
6020 #define LOGICOP_AND_INVERTED 2
6021 #define LOGICOP_COPY_INVERTED 3
6022 #define LOGICOP_AND_REVERSE 4
6023 #define LOGICOP_INVERT 5
6024 #define LOGICOP_XOR 6
6025 #define LOGICOP_NAND 7
6026 #define LOGICOP_AND 8
6027 #define LOGICOP_EQUIV 9
6028 #define LOGICOP_NOOP 10
6029 #define LOGICOP_OR_INVERTED 11
6030 #define LOGICOP_COPY 12
6031 #define LOGICOP_OR_REVERSE 13
6032 #define LOGICOP_OR 14
6033 #define LOGICOP_SET 15
6034 uint32_t LogicOpFunction
;
6035 bool AlphaTestEnable
;
6036 #define COMPAREFUNCTION_ALWAYS 0
6037 #define COMPAREFUNCTION_NEVER 1
6038 #define COMPAREFUNCTION_LESS 2
6039 #define COMPAREFUNCTION_EQUAL 3
6040 #define COMPAREFUNCTION_LEQUAL 4
6041 #define COMPAREFUNCTION_GREATER 5
6042 #define COMPAREFUNCTION_NOTEQUAL 6
6043 #define COMPAREFUNCTION_GEQUAL 7
6044 uint32_t AlphaTestFunction
;
6045 bool ColorDitherEnable
;
6046 uint32_t XDitherOffset
;
6047 uint32_t YDitherOffset
;
6048 #define COLORCLAMP_UNORM 0
6049 #define COLORCLAMP_SNORM 1
6050 #define COLORCLAMP_RTFORMAT 2
6051 uint32_t ColorClampRange
;
6052 bool PreBlendColorClampEnable
;
6053 bool PostBlendColorClampEnable
;
6057 GEN7_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6058 const struct GEN7_BLEND_STATE
* restrict values
)
6060 uint32_t *dw
= (uint32_t * restrict
) dst
;
6063 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
6064 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
6065 __gen_field(values
->AlphaBlendFunction
, 26, 28) |
6066 __gen_field(values
->SourceAlphaBlendFactor
, 20, 24) |
6067 __gen_field(values
->DestinationAlphaBlendFactor
, 15, 19) |
6068 __gen_field(values
->ColorBlendFunction
, 11, 13) |
6069 __gen_field(values
->SourceBlendFactor
, 5, 9) |
6070 __gen_field(values
->DestinationBlendFactor
, 0, 4) |
6074 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
6075 __gen_field(values
->AlphaToOneEnable
, 30, 30) |
6076 __gen_field(values
->AlphaToCoverageDitherEnable
, 29, 29) |
6077 __gen_field(values
->WriteDisableAlpha
, 27, 27) |
6078 __gen_field(values
->WriteDisableRed
, 26, 26) |
6079 __gen_field(values
->WriteDisableGreen
, 25, 25) |
6080 __gen_field(values
->WriteDisableBlue
, 24, 24) |
6081 __gen_field(values
->LogicOpEnable
, 22, 22) |
6082 __gen_field(values
->LogicOpFunction
, 18, 21) |
6083 __gen_field(values
->AlphaTestEnable
, 16, 16) |
6084 __gen_field(values
->AlphaTestFunction
, 13, 15) |
6085 __gen_field(values
->ColorDitherEnable
, 12, 12) |
6086 __gen_field(values
->XDitherOffset
, 10, 11) |
6087 __gen_field(values
->YDitherOffset
, 8, 9) |
6088 __gen_field(values
->ColorClampRange
, 2, 3) |
6089 __gen_field(values
->PreBlendColorClampEnable
, 1, 1) |
6090 __gen_field(values
->PostBlendColorClampEnable
, 0, 0) |
6095 #define GEN7_CC_VIEWPORT_length 0x00000002
6097 struct GEN7_CC_VIEWPORT
{
6103 GEN7_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
6104 const struct GEN7_CC_VIEWPORT
* restrict values
)
6106 uint32_t *dw
= (uint32_t * restrict
) dst
;
6109 __gen_float(values
->MinimumDepth
) |
6113 __gen_float(values
->MaximumDepth
) |
6118 #define GEN7_COLOR_CALC_STATE_length 0x00000006
6120 struct GEN7_COLOR_CALC_STATE
{
6121 uint32_t StencilReferenceValue
;
6122 uint32_t BackFaceStencilReferenceValue
;
6124 #define NotCancelled 1
6125 uint32_t RoundDisableFunctionDisable
;
6126 #define ALPHATEST_UNORM8 0
6127 #define ALPHATEST_FLOAT32 1
6128 uint32_t AlphaTestFormat
;
6129 uint32_t AlphaReferenceValueAsUNORM8
;
6130 float AlphaReferenceValueAsFLOAT32
;
6131 float BlendConstantColorRed
;
6132 float BlendConstantColorGreen
;
6133 float BlendConstantColorBlue
;
6134 float BlendConstantColorAlpha
;
6138 GEN7_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6139 const struct GEN7_COLOR_CALC_STATE
* restrict values
)
6141 uint32_t *dw
= (uint32_t * restrict
) dst
;
6144 __gen_field(values
->StencilReferenceValue
, 24, 31) |
6145 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
6146 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
6147 __gen_field(values
->AlphaTestFormat
, 0, 0) |
6151 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
6152 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
6156 __gen_float(values
->BlendConstantColorRed
) |
6160 __gen_float(values
->BlendConstantColorGreen
) |
6164 __gen_float(values
->BlendConstantColorBlue
) |
6168 __gen_float(values
->BlendConstantColorAlpha
) |
6173 #define GEN7_DEPTH_STENCIL_STATE_length 0x00000003
6175 struct GEN7_DEPTH_STENCIL_STATE
{
6176 bool StencilTestEnable
;
6177 #define COMPAREFUNCTION_ALWAYS 0
6178 #define COMPAREFUNCTION_NEVER 1
6179 #define COMPAREFUNCTION_LESS 2
6180 #define COMPAREFUNCTION_EQUAL 3
6181 #define COMPAREFUNCTION_LEQUAL 4
6182 #define COMPAREFUNCTION_GREATER 5
6183 #define COMPAREFUNCTION_NOTEQUAL 6
6184 #define COMPAREFUNCTION_GEQUAL 7
6185 uint32_t StencilTestFunction
;
6186 #define STENCILOP_KEEP 0
6187 #define STENCILOP_ZERO 1
6188 #define STENCILOP_REPLACE 2
6189 #define STENCILOP_INCRSAT 3
6190 #define STENCILOP_DECRSAT 4
6191 #define STENCILOP_INCR 5
6192 #define STENCILOP_DECR 6
6193 #define STENCILOP_INVERT 7
6194 uint32_t StencilFailOp
;
6195 uint32_t StencilPassDepthFailOp
;
6196 uint32_t StencilPassDepthPassOp
;
6197 bool StencilBufferWriteEnable
;
6198 bool DoubleSidedStencilEnable
;
6199 #define COMPAREFUNCTION_ALWAYS 0
6200 #define COMPAREFUNCTION_NEVER 1
6201 #define COMPAREFUNCTION_LESS 2
6202 #define COMPAREFUNCTION_EQUAL 3
6203 #define COMPAREFUNCTION_LEQUAL 4
6204 #define COMPAREFUNCTION_GREATER 5
6205 #define COMPAREFUNCTION_NOTEQUAL 6
6206 #define COMPAREFUNCTION_GEQUAL 7
6207 uint32_t BackFaceStencilTestFunction
;
6208 #define STENCILOP_KEEP 0
6209 #define STENCILOP_ZERO 1
6210 #define STENCILOP_REPLACE 2
6211 #define STENCILOP_INCRSAT 3
6212 #define STENCILOP_DECRSAT 4
6213 #define STENCILOP_INCR 5
6214 #define STENCILOP_DECR 6
6215 #define STENCILOP_INVERT 7
6216 uint32_t BackfaceStencilFailOp
;
6217 uint32_t BackfaceStencilPassDepthFailOp
;
6218 uint32_t BackfaceStencilPassDepthPassOp
;
6219 uint32_t StencilTestMask
;
6220 uint32_t StencilWriteMask
;
6221 uint32_t BackfaceStencilTestMask
;
6222 uint32_t BackfaceStencilWriteMask
;
6223 bool DepthTestEnable
;
6224 #define COMPAREFUNCTION_ALWAYS 0
6225 #define COMPAREFUNCTION_NEVER 1
6226 #define COMPAREFUNCTION_LESS 2
6227 #define COMPAREFUNCTION_EQUAL 3
6228 #define COMPAREFUNCTION_LEQUAL 4
6229 #define COMPAREFUNCTION_GREATER 5
6230 #define COMPAREFUNCTION_NOTEQUAL 6
6231 #define COMPAREFUNCTION_GEQUAL 7
6232 uint32_t DepthTestFunction
;
6233 bool DepthBufferWriteEnable
;
6237 GEN7_DEPTH_STENCIL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6238 const struct GEN7_DEPTH_STENCIL_STATE
* restrict values
)
6240 uint32_t *dw
= (uint32_t * restrict
) dst
;
6243 __gen_field(values
->StencilTestEnable
, 31, 31) |
6244 __gen_field(values
->StencilTestFunction
, 28, 30) |
6245 __gen_field(values
->StencilFailOp
, 25, 27) |
6246 __gen_field(values
->StencilPassDepthFailOp
, 22, 24) |
6247 __gen_field(values
->StencilPassDepthPassOp
, 19, 21) |
6248 __gen_field(values
->StencilBufferWriteEnable
, 18, 18) |
6249 __gen_field(values
->DoubleSidedStencilEnable
, 15, 15) |
6250 __gen_field(values
->BackFaceStencilTestFunction
, 12, 14) |
6251 __gen_field(values
->BackfaceStencilFailOp
, 9, 11) |
6252 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 6, 8) |
6253 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 3, 5) |
6257 __gen_field(values
->StencilTestMask
, 24, 31) |
6258 __gen_field(values
->StencilWriteMask
, 16, 23) |
6259 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
6260 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
6264 __gen_field(values
->DepthTestEnable
, 31, 31) |
6265 __gen_field(values
->DepthTestFunction
, 27, 29) |
6266 __gen_field(values
->DepthBufferWriteEnable
, 26, 26) |
6271 #define GEN7_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
6273 struct GEN7_INTERFACE_DESCRIPTOR_DATA
{
6274 uint32_t KernelStartPointer
;
6277 uint32_t SingleProgramFlow
;
6278 #define NormalPriority 0
6279 #define HighPriority 1
6280 uint32_t ThreadPriority
;
6283 uint32_t FloatingPointMode
;
6284 bool IllegalOpcodeExceptionEnable
;
6285 bool MaskStackExceptionEnable
;
6286 bool SoftwareExceptionEnable
;
6287 uint32_t SamplerStatePointer
;
6288 #define Nosamplersused 0
6289 #define Between1and4samplersused 1
6290 #define Between5and8samplersused 2
6291 #define Between9and12samplersused 3
6292 #define Between13and16samplersused 4
6293 uint32_t SamplerCount
;
6294 uint32_t BindingTablePointer
;
6295 uint32_t BindingTableEntryCount
;
6296 uint32_t ConstantURBEntryReadLength
;
6297 uint32_t ConstantURBEntryReadOffset
;
6302 uint32_t RoundingMode
;
6304 uint32_t SharedLocalMemorySize
;
6305 uint32_t NumberofThreadsinGPGPUThreadGroup
;
6309 GEN7_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
6310 const struct GEN7_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
6312 uint32_t *dw
= (uint32_t * restrict
) dst
;
6315 __gen_offset(values
->KernelStartPointer
, 6, 31) |
6319 __gen_field(values
->SingleProgramFlow
, 18, 18) |
6320 __gen_field(values
->ThreadPriority
, 17, 17) |
6321 __gen_field(values
->FloatingPointMode
, 16, 16) |
6322 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
6323 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
6324 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
6328 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
6329 __gen_field(values
->SamplerCount
, 2, 4) |
6333 __gen_offset(values
->BindingTablePointer
, 5, 15) |
6334 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
6338 __gen_field(values
->ConstantURBEntryReadLength
, 16, 31) |
6339 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
6343 __gen_field(values
->RoundingMode
, 22, 23) |
6344 __gen_field(values
->BarrierEnable
, 21, 21) |
6345 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
6346 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 7) |
6357 #define GEN7_BINDING_TABLE_STATE_length 0x00000001
6359 struct GEN7_BINDING_TABLE_STATE
{
6360 uint32_t SurfaceStatePointer
;
6364 GEN7_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6365 const struct GEN7_BINDING_TABLE_STATE
* restrict values
)
6367 uint32_t *dw
= (uint32_t * restrict
) dst
;
6370 __gen_offset(values
->SurfaceStatePointer
, 5, 31) |
6375 #define GEN7_RENDER_SURFACE_STATE_length 0x00000008
6377 struct GEN7_RENDER_SURFACE_STATE
{
6378 #define SURFTYPE_1D 0
6379 #define SURFTYPE_2D 1
6380 #define SURFTYPE_3D 2
6381 #define SURFTYPE_CUBE 3
6382 #define SURFTYPE_BUFFER 4
6383 #define SURFTYPE_STRBUF 5
6384 #define SURFTYPE_NULL 7
6385 uint32_t SurfaceType
;
6387 uint32_t SurfaceFormat
;
6390 uint32_t SurfaceVerticalAlignment
;
6393 uint32_t SurfaceHorizontalAlignment
;
6394 uint32_t TiledSurface
;
6395 #define TILEWALK_XMAJOR 0
6396 #define TILEWALK_YMAJOR 1
6398 uint32_t VerticalLineStride
;
6399 uint32_t VerticalLineStrideOffset
;
6400 #define ARYSPC_FULL 0
6401 #define ARYSPC_LOD0 1
6402 uint32_t SurfaceArraySpacing
;
6403 uint32_t RenderCacheReadWriteMode
;
6404 #define NORMAL_MODE 0
6405 #define PROGRESSIVE_FRAME 2
6406 #define INTERLACED_FRAME 3
6407 uint32_t MediaBoundaryPixelMode
;
6408 uint32_t CubeFaceEnables
;
6409 __gen_address_type SurfaceBaseAddress
;
6413 uint32_t SurfacePitch
;
6414 #define RTROTATE_0DEG 0
6415 #define RTROTATE_90DEG 1
6416 #define RTROTATE_270DEG 3
6417 uint32_t RenderTargetRotation
;
6418 uint32_t MinimumArrayElement
;
6419 uint32_t RenderTargetViewExtent
;
6421 #define MSFMT_DEPTH_STENCIL 1
6422 uint32_t MultisampledSurfaceStorageFormat
;
6423 #define MULTISAMPLECOUNT_1 0
6424 #define MULTISAMPLECOUNT_4 2
6425 #define MULTISAMPLECOUNT_8 3
6426 uint32_t NumberofMultisamples
;
6427 uint32_t MultisamplePositionPaletteIndex
;
6428 uint32_t MinimumArrayElement0
;
6431 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
6432 uint32_t SurfaceMinLOD
;
6433 uint32_t MIPCountLOD
;
6434 __gen_address_type MCSBaseAddress
;
6435 uint32_t MCSSurfacePitch
;
6436 __gen_address_type AppendCounterAddress
;
6437 bool AppendCounterEnable
;
6439 uint32_t XOffsetforUVPlane
;
6440 uint32_t YOffsetforUVPlane
;
6443 uint32_t RedClearColor
;
6446 uint32_t GreenClearColor
;
6449 uint32_t BlueClearColor
;
6452 uint32_t AlphaClearColor
;
6453 float ResourceMinLOD
;
6457 GEN7_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6458 const struct GEN7_RENDER_SURFACE_STATE
* restrict values
)
6460 uint32_t *dw
= (uint32_t * restrict
) dst
;
6463 __gen_field(values
->SurfaceType
, 29, 31) |
6464 __gen_field(values
->SurfaceArray
, 28, 28) |
6465 __gen_field(values
->SurfaceFormat
, 18, 26) |
6466 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
6467 __gen_field(values
->SurfaceHorizontalAlignment
, 15, 15) |
6468 __gen_field(values
->TiledSurface
, 14, 14) |
6469 __gen_field(values
->TileWalk
, 13, 13) |
6470 __gen_field(values
->VerticalLineStride
, 12, 12) |
6471 __gen_field(values
->VerticalLineStrideOffset
, 11, 11) |
6472 __gen_field(values
->SurfaceArraySpacing
, 10, 10) |
6473 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
6474 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
6475 __gen_field(values
->CubeFaceEnables
, 0, 5) |
6482 __gen_combine_address(data
, &dw
[1], values
->SurfaceBaseAddress
, dw1
);
6485 __gen_field(values
->Height
, 16, 29) |
6486 __gen_field(values
->Width
, 0, 13) |
6490 __gen_field(values
->Depth
, 21, 31) |
6491 __gen_field(values
->SurfacePitch
, 0, 17) |
6495 __gen_field(values
->RenderTargetRotation
, 29, 30) |
6496 __gen_field(values
->MinimumArrayElement
, 18, 28) |
6497 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
6498 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
6499 __gen_field(values
->NumberofMultisamples
, 3, 5) |
6500 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
6501 __gen_field(values
->MinimumArrayElement
, 0, 26) |
6504 uint32_t dw_SurfaceObjectControlState
;
6505 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
6507 __gen_offset(values
->XOffset
, 25, 31) |
6508 __gen_offset(values
->YOffset
, 20, 23) |
6509 __gen_field(dw_SurfaceObjectControlState
, 16, 19) |
6510 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
6511 __gen_field(values
->MIPCountLOD
, 0, 3) |
6515 __gen_field(values
->MCSSurfacePitch
, 3, 11) |
6516 __gen_field(values
->AppendCounterEnable
, 1, 1) |
6517 __gen_field(values
->MCSEnable
, 0, 0) |
6518 __gen_field(values
->XOffsetforUVPlane
, 16, 29) |
6519 __gen_field(values
->YOffsetforUVPlane
, 0, 13) |
6523 __gen_combine_address(data
, &dw
[6], values
->AppendCounterAddress
, dw6
);
6526 __gen_field(values
->RedClearColor
, 31, 31) |
6527 __gen_field(values
->GreenClearColor
, 30, 30) |
6528 __gen_field(values
->BlueClearColor
, 29, 29) |
6529 __gen_field(values
->AlphaClearColor
, 28, 28) |
6530 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
6535 #define GEN7_SAMPLER_BORDER_COLOR_STATE_length 0x00000004
6537 struct GEN7_SAMPLER_BORDER_COLOR_STATE
{
6538 float BorderColorRedDX100GL
;
6539 uint32_t BorderColorAlpha
;
6540 uint32_t BorderColorBlue
;
6541 uint32_t BorderColorGreen
;
6542 uint32_t BorderColorRedDX9
;
6543 float BorderColorGreen0
;
6544 float BorderColorBlue0
;
6545 float BorderColorAlpha0
;
6549 GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6550 const struct GEN7_SAMPLER_BORDER_COLOR_STATE
* restrict values
)
6552 uint32_t *dw
= (uint32_t * restrict
) dst
;
6555 __gen_float(values
->BorderColorRedDX100GL
) |
6556 __gen_field(values
->BorderColorAlpha
, 24, 31) |
6557 __gen_field(values
->BorderColorBlue
, 16, 23) |
6558 __gen_field(values
->BorderColorGreen
, 8, 15) |
6559 __gen_field(values
->BorderColorRedDX9
, 0, 7) |
6563 __gen_float(values
->BorderColorGreen
) |
6567 __gen_float(values
->BorderColorBlue
) |
6571 __gen_float(values
->BorderColorAlpha
) |
6576 #define GEN7_SAMPLER_STATE_length 0x00000004
6578 struct GEN7_SAMPLER_STATE
{
6579 bool SamplerDisable
;
6582 uint32_t TextureBorderColorMode
;
6584 uint32_t LODPreClampEnable
;
6586 #define MIPFILTER_NONE 0
6587 #define MIPFILTER_NEAREST 1
6588 #define MIPFILTER_LINEAR 3
6589 uint32_t MipModeFilter
;
6590 #define MAPFILTER_NEAREST 0
6591 #define MAPFILTER_LINEAR 1
6592 #define MAPFILTER_ANISOTROPIC 2
6593 #define MAPFILTER_MONO 6
6594 uint32_t MagModeFilter
;
6595 #define MAPFILTER_NEAREST 0
6596 #define MAPFILTER_LINEAR 1
6597 #define MAPFILTER_ANISOTROPIC 2
6598 #define MAPFILTER_MONO 6
6599 uint32_t MinModeFilter
;
6600 float TextureLODBias
;
6602 #define EWAApproximation 1
6603 uint32_t AnisotropicAlgorithm
;
6606 #define PREFILTEROPALWAYS 0
6607 #define PREFILTEROPNEVER 1
6608 #define PREFILTEROPLESS 2
6609 #define PREFILTEROPEQUAL 3
6610 #define PREFILTEROPLEQUAL 4
6611 #define PREFILTEROPGREATER 5
6612 #define PREFILTEROPNOTEQUAL 6
6613 #define PREFILTEROPGEQUAL 7
6614 uint32_t ShadowFunction
;
6615 #define PROGRAMMED 0
6617 uint32_t CubeSurfaceControlMode
;
6618 uint32_t BorderColorPointer
;
6619 bool ChromaKeyEnable
;
6620 uint32_t ChromaKeyIndex
;
6621 #define KEYFILTER_KILL_ON_ANY_MATCH 0
6622 #define KEYFILTER_REPLACE_BLACK 1
6623 uint32_t ChromaKeyMode
;
6632 uint32_t MaximumAnisotropy
;
6633 bool RAddressMinFilterRoundingEnable
;
6634 bool RAddressMagFilterRoundingEnable
;
6635 bool VAddressMinFilterRoundingEnable
;
6636 bool VAddressMagFilterRoundingEnable
;
6637 bool UAddressMinFilterRoundingEnable
;
6638 bool UAddressMagFilterRoundingEnable
;
6642 uint32_t TrilinearFilterQuality
;
6643 bool NonnormalizedCoordinateEnable
;
6644 uint32_t TCXAddressControlMode
;
6645 uint32_t TCYAddressControlMode
;
6646 uint32_t TCZAddressControlMode
;
6650 GEN7_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6651 const struct GEN7_SAMPLER_STATE
* restrict values
)
6653 uint32_t *dw
= (uint32_t * restrict
) dst
;
6656 __gen_field(values
->SamplerDisable
, 31, 31) |
6657 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
6658 __gen_field(values
->LODPreClampEnable
, 28, 28) |
6659 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
6660 __gen_field(values
->MipModeFilter
, 20, 21) |
6661 __gen_field(values
->MagModeFilter
, 17, 19) |
6662 __gen_field(values
->MinModeFilter
, 14, 16) |
6663 __gen_fixed(values
->TextureLODBias
, 1, 13, true, 8) |
6664 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
6668 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
6669 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
6670 __gen_field(values
->ShadowFunction
, 1, 3) |
6671 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
6675 __gen_offset(values
->BorderColorPointer
, 5, 31) |
6679 __gen_field(values
->ChromaKeyEnable
, 25, 25) |
6680 __gen_field(values
->ChromaKeyIndex
, 23, 24) |
6681 __gen_field(values
->ChromaKeyMode
, 22, 22) |
6682 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
6683 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
6684 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
6685 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
6686 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
6687 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
6688 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
6689 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
6690 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
6691 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
6692 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
6693 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
6698 /* Enum 3D_Prim_Topo_Type */
6699 #define _3DPRIM_POINTLIST 1
6700 #define _3DPRIM_LINELIST 2
6701 #define _3DPRIM_LINESTRIP 3
6702 #define _3DPRIM_TRILIST 4
6703 #define _3DPRIM_TRISTRIP 5
6704 #define _3DPRIM_TRIFAN 6
6705 #define _3DPRIM_QUADLIST 7
6706 #define _3DPRIM_QUADSTRIP 8
6707 #define _3DPRIM_LINELIST_ADJ 9
6708 #define _3DPRIM_LINESTRIP_ADJ 10
6709 #define _3DPRIM_TRILIST_ADJ 11
6710 #define _3DPRIM_TRISTRIP_ADJ 12
6711 #define _3DPRIM_TRISTRIP_REVERSE 13
6712 #define _3DPRIM_POLYGON 14
6713 #define _3DPRIM_RECTLIST 15
6714 #define _3DPRIM_LINELOOP 16
6715 #define _3DPRIM_POINTLIST_BF 17
6716 #define _3DPRIM_LINESTRIP_CONT 18
6717 #define _3DPRIM_LINESTRIP_BF 19
6718 #define _3DPRIM_LINESTRIP_CONT_BF 20
6719 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
6720 #define _3DPRIM_PATCHLIST_1 32
6721 #define _3DPRIM_PATCHLIST_2 33
6722 #define _3DPRIM_PATCHLIST_3 34
6723 #define _3DPRIM_PATCHLIST_4 35
6724 #define _3DPRIM_PATCHLIST_5 36
6725 #define _3DPRIM_PATCHLIST_6 37
6726 #define _3DPRIM_PATCHLIST_7 38
6727 #define _3DPRIM_PATCHLIST_8 39
6728 #define _3DPRIM_PATCHLIST_9 40
6729 #define _3DPRIM_PATCHLIST_10 41
6730 #define _3DPRIM_PATCHLIST_11 42
6731 #define _3DPRIM_PATCHLIST_12 43
6732 #define _3DPRIM_PATCHLIST_13 44
6733 #define _3DPRIM_PATCHLIST_14 45
6734 #define _3DPRIM_PATCHLIST_15 46
6735 #define _3DPRIM_PATCHLIST_16 47
6736 #define _3DPRIM_PATCHLIST_17 48
6737 #define _3DPRIM_PATCHLIST_18 49
6738 #define _3DPRIM_PATCHLIST_19 50
6739 #define _3DPRIM_PATCHLIST_20 51
6740 #define _3DPRIM_PATCHLIST_21 52
6741 #define _3DPRIM_PATCHLIST_22 53
6742 #define _3DPRIM_PATCHLIST_23 54
6743 #define _3DPRIM_PATCHLIST_24 55
6744 #define _3DPRIM_PATCHLIST_25 56
6745 #define _3DPRIM_PATCHLIST_26 57
6746 #define _3DPRIM_PATCHLIST_27 58
6747 #define _3DPRIM_PATCHLIST_28 59
6748 #define _3DPRIM_PATCHLIST_29 60
6749 #define _3DPRIM_PATCHLIST_30 61
6750 #define _3DPRIM_PATCHLIST_31 62
6751 #define _3DPRIM_PATCHLIST_32 63
6753 /* Enum 3D_Vertex_Component_Control */
6754 #define VFCOMP_NOSTORE 0
6755 #define VFCOMP_STORE_SRC 1
6756 #define VFCOMP_STORE_0 2
6757 #define VFCOMP_STORE_1_FP 3
6758 #define VFCOMP_STORE_1_INT 4
6759 #define VFCOMP_STORE_VID 5
6760 #define VFCOMP_STORE_IID 6
6761 #define VFCOMP_STORE_PID 7
6763 /* Enum 3D_Compare_Function */
6764 #define COMPAREFUNCTION_ALWAYS 0
6765 #define COMPAREFUNCTION_NEVER 1
6766 #define COMPAREFUNCTION_LESS 2
6767 #define COMPAREFUNCTION_EQUAL 3
6768 #define COMPAREFUNCTION_LEQUAL 4
6769 #define COMPAREFUNCTION_GREATER 5
6770 #define COMPAREFUNCTION_NOTEQUAL 6
6771 #define COMPAREFUNCTION_GEQUAL 7
6773 /* Enum SURFACE_FORMAT */
6774 #define R32G32B32A32_FLOAT 0
6775 #define R32G32B32A32_SINT 1
6776 #define R32G32B32A32_UINT 2
6777 #define R32G32B32A32_UNORM 3
6778 #define R32G32B32A32_SNORM 4
6779 #define R64G64_FLOAT 5
6780 #define R32G32B32X32_FLOAT 6
6781 #define R32G32B32A32_SSCALED 7
6782 #define R32G32B32A32_USCALED 8
6783 #define R32G32B32A32_SFIXED 32
6784 #define R64G64_PASSTHRU 33
6785 #define R32G32B32_FLOAT 64
6786 #define R32G32B32_SINT 65
6787 #define R32G32B32_UINT 66
6788 #define R32G32B32_UNORM 67
6789 #define R32G32B32_SNORM 68
6790 #define R32G32B32_SSCALED 69
6791 #define R32G32B32_USCALED 70
6792 #define R32G32B32_SFIXED 80
6793 #define R16G16B16A16_UNORM 128
6794 #define R16G16B16A16_SNORM 129
6795 #define R16G16B16A16_SINT 130
6796 #define R16G16B16A16_UINT 131
6797 #define R16G16B16A16_FLOAT 132
6798 #define R32G32_FLOAT 133
6799 #define R32G32_SINT 134
6800 #define R32G32_UINT 135
6801 #define R32_FLOAT_X8X24_TYPELESS 136
6802 #define X32_TYPELESS_G8X24_UINT 137
6803 #define L32A32_FLOAT 138
6804 #define R32G32_UNORM 139
6805 #define R32G32_SNORM 140
6806 #define R64_FLOAT 141
6807 #define R16G16B16X16_UNORM 142
6808 #define R16G16B16X16_FLOAT 143
6809 #define A32X32_FLOAT 144
6810 #define L32X32_FLOAT 145
6811 #define I32X32_FLOAT 146
6812 #define R16G16B16A16_SSCALED 147
6813 #define R16G16B16A16_USCALED 148
6814 #define R32G32_SSCALED 149
6815 #define R32G32_USCALED 150
6816 #define R32G32_SFIXED 160
6817 #define R64_PASSTHRU 161
6818 #define B8G8R8A8_UNORM 192
6819 #define B8G8R8A8_UNORM_SRGB 193
6820 #define R10G10B10A2_UNORM 194
6821 #define R10G10B10A2_UNORM_SRGB 195
6822 #define R10G10B10A2_UINT 196
6823 #define R10G10B10_SNORM_A2_UNORM 197
6824 #define R8G8B8A8_UNORM 199
6825 #define R8G8B8A8_UNORM_SRGB 200
6826 #define R8G8B8A8_SNORM 201
6827 #define R8G8B8A8_SINT 202
6828 #define R8G8B8A8_UINT 203
6829 #define R16G16_UNORM 204
6830 #define R16G16_SNORM 205
6831 #define R16G16_SINT 206
6832 #define R16G16_UINT 207
6833 #define R16G16_FLOAT 208
6834 #define B10G10R10A2_UNORM 209
6835 #define B10G10R10A2_UNORM_SRGB 210
6836 #define R11G11B10_FLOAT 211
6837 #define R32_SINT 214
6838 #define R32_UINT 215
6839 #define R32_FLOAT 216
6840 #define R24_UNORM_X8_TYPELESS 217
6841 #define X24_TYPELESS_G8_UINT 218
6842 #define L32_UNORM 221
6843 #define A32_UNORM 222
6844 #define L16A16_UNORM 223
6845 #define I24X8_UNORM 224
6846 #define L24X8_UNORM 225
6847 #define A24X8_UNORM 226
6848 #define I32_FLOAT 227
6849 #define L32_FLOAT 228
6850 #define A32_FLOAT 229
6851 #define X8B8_UNORM_G8R8_SNORM 230
6852 #define A8X8_UNORM_G8R8_SNORM 231
6853 #define B8X8_UNORM_G8R8_SNORM 232
6854 #define B8G8R8X8_UNORM 233
6855 #define B8G8R8X8_UNORM_SRGB 234
6856 #define R8G8B8X8_UNORM 235
6857 #define R8G8B8X8_UNORM_SRGB 236
6858 #define R9G9B9E5_SHAREDEXP 237
6859 #define B10G10R10X2_UNORM 238
6860 #define L16A16_FLOAT 240
6861 #define R32_UNORM 241
6862 #define R32_SNORM 242
6863 #define R10G10B10X2_USCALED 243
6864 #define R8G8B8A8_SSCALED 244
6865 #define R8G8B8A8_USCALED 245
6866 #define R16G16_SSCALED 246
6867 #define R16G16_USCALED 247
6868 #define R32_SSCALED 248
6869 #define R32_USCALED 249
6870 #define B5G6R5_UNORM 256
6871 #define B5G6R5_UNORM_SRGB 257
6872 #define B5G5R5A1_UNORM 258
6873 #define B5G5R5A1_UNORM_SRGB 259
6874 #define B4G4R4A4_UNORM 260
6875 #define B4G4R4A4_UNORM_SRGB 261
6876 #define R8G8_UNORM 262
6877 #define R8G8_SNORM 263
6878 #define R8G8_SINT 264
6879 #define R8G8_UINT 265
6880 #define R16_UNORM 266
6881 #define R16_SNORM 267
6882 #define R16_SINT 268
6883 #define R16_UINT 269
6884 #define R16_FLOAT 270
6885 #define A8P8_UNORM_PALETTE0 271
6886 #define A8P8_UNORM_PALETTE1 272
6887 #define I16_UNORM 273
6888 #define L16_UNORM 274
6889 #define A16_UNORM 275
6890 #define L8A8_UNORM 276
6891 #define I16_FLOAT 277
6892 #define L16_FLOAT 278
6893 #define A16_FLOAT 279
6894 #define L8A8_UNORM_SRGB 280
6895 #define R5G5_SNORM_B6_UNORM 281
6896 #define B5G5R5X1_UNORM 282
6897 #define B5G5R5X1_UNORM_SRGB 283
6898 #define R8G8_SSCALED 284
6899 #define R8G8_USCALED 285
6900 #define R16_SSCALED 286
6901 #define R16_USCALED 287
6902 #define P8A8_UNORM_PALETTE0 290
6903 #define P8A8_UNORM_PALETTE1 291
6904 #define A1B5G5R5_UNORM 292
6905 #define A4B4G4R4_UNORM 293
6906 #define L8A8_UINT 294
6907 #define L8A8_SINT 295
6908 #define R8_UNORM 320
6909 #define R8_SNORM 321
6912 #define A8_UNORM 324
6913 #define I8_UNORM 325
6914 #define L8_UNORM 326
6915 #define P4A4_UNORM_PALETTE0 327
6916 #define A4P4_UNORM_PALETTE0 328
6917 #define R8_SSCALED 329
6918 #define R8_USCALED 330
6919 #define P8_UNORM_PALETTE0 331
6920 #define L8_UNORM_SRGB 332
6921 #define P8_UNORM_PALETTE1 333
6922 #define P4A4_UNORM_PALETTE1 334
6923 #define A4P4_UNORM_PALETTE1 335
6924 #define Y8_UNORM 336
6929 #define DXT1_RGB_SRGB 384
6930 #define R1_UNORM 385
6931 #define YCRCB_NORMAL 386
6932 #define YCRCB_SWAPUVY 387
6933 #define P2_UNORM_PALETTE0 388
6934 #define P2_UNORM_PALETTE1 389
6935 #define BC1_UNORM 390
6936 #define BC2_UNORM 391
6937 #define BC3_UNORM 392
6938 #define BC4_UNORM 393
6939 #define BC5_UNORM 394
6940 #define BC1_UNORM_SRGB 395
6941 #define BC2_UNORM_SRGB 396
6942 #define BC3_UNORM_SRGB 397
6944 #define YCRCB_SWAPUV 399
6945 #define YCRCB_SWAPY 400
6946 #define DXT1_RGB 401
6948 #define R8G8B8_UNORM 403
6949 #define R8G8B8_SNORM 404
6950 #define R8G8B8_SSCALED 405
6951 #define R8G8B8_USCALED 406
6952 #define R64G64B64A64_FLOAT 407
6953 #define R64G64B64_FLOAT 408
6954 #define BC4_SNORM 409
6955 #define BC5_SNORM 410
6956 #define R16G16B16_FLOAT 411
6957 #define R16G16B16_UNORM 412
6958 #define R16G16B16_SNORM 413
6959 #define R16G16B16_SSCALED 414
6960 #define R16G16B16_USCALED 415
6961 #define BC6H_SF16 417
6962 #define BC7_UNORM 418
6963 #define BC7_UNORM_SRGB 419
6964 #define BC6H_UF16 420
6965 #define PLANAR_420_8 421
6966 #define R8G8B8_UNORM_SRGB 424
6967 #define ETC1_RGB8 425
6968 #define ETC2_RGB8 426
6970 #define EAC_RG11 428
6971 #define EAC_SIGNED_R11 429
6972 #define EAC_SIGNED_RG11 430
6973 #define ETC2_SRGB8 431
6974 #define R16G16B16_UINT 432
6975 #define R16G16B16_SINT 433
6976 #define R32_SFIXED 434
6977 #define R10G10B10A2_SNORM 435
6978 #define R10G10B10A2_USCALED 436
6979 #define R10G10B10A2_SSCALED 437
6980 #define R10G10B10A2_SINT 438
6981 #define B10G10R10A2_SNORM 439
6982 #define B10G10R10A2_USCALED 440
6983 #define B10G10R10A2_SSCALED 441
6984 #define B10G10R10A2_UINT 442
6985 #define B10G10R10A2_SINT 443
6986 #define R64G64B64A64_PASSTHRU 444
6987 #define R64G64B64_PASSTHRU 445
6988 #define ETC2_RGB8_PTA 448
6989 #define ETC2_SRGB8_PTA 449
6990 #define ETC2_EAC_RGBA8 450
6991 #define ETC2_EAC_SRGB8_A8 451
6992 #define R8G8B8_UINT 456
6993 #define R8G8B8_SINT 457
6996 /* Enum Texture Coordinate Mode */
6998 #define TCM_MIRROR 1
7001 #define TCM_CLAMP_BORDER 4
7002 #define TCM_MIRROR_ONCE 5