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 BDW.
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_offset(uint64_t v
, uint32_t start
, uint32_t end
)
68 __gen_validate_value(v
);
70 uint64_t mask
= (~0ul >> (64 - (end
- start
+ 1))) << start
;
72 assert((v
& ~mask
) == 0);
78 static inline uint32_t
81 __gen_validate_value(v
);
82 return ((union __gen_value
) { .f
= (v
) }).dw
;
85 #ifndef __gen_address_type
86 #error #define __gen_address_type before including this file
89 #ifndef __gen_user_data
90 #error #define __gen_combine_address before including this file
95 #define GEN8_3DSTATE_URB_VS_length 0x00000002
96 #define GEN8_3DSTATE_URB_VS_length_bias 0x00000002
97 #define GEN8_3DSTATE_URB_VS_header \
99 .CommandSubType = 3, \
100 ._3DCommandOpcode = 0, \
101 ._3DCommandSubOpcode = 48, \
104 struct GEN8_3DSTATE_URB_VS
{
105 uint32_t CommandType
;
106 uint32_t CommandSubType
;
107 uint32_t _3DCommandOpcode
;
108 uint32_t _3DCommandSubOpcode
;
109 uint32_t DwordLength
;
110 uint32_t VSURBStartingAddress
;
111 uint32_t VSURBEntryAllocationSize
;
112 uint32_t VSNumberofURBEntries
;
116 GEN8_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
117 const struct GEN8_3DSTATE_URB_VS
* restrict values
)
119 uint32_t *dw
= (uint32_t * restrict
) dst
;
122 __gen_field(values
->CommandType
, 29, 31) |
123 __gen_field(values
->CommandSubType
, 27, 28) |
124 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
125 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
126 __gen_field(values
->DwordLength
, 0, 7) |
130 __gen_field(values
->VSURBStartingAddress
, 25, 31) |
131 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
132 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
137 #define GEN8_3DSTATE_VS_length 0x00000009
138 #define GEN8_3DSTATE_VS_length_bias 0x00000002
139 #define GEN8_3DSTATE_VS_header \
141 .CommandSubType = 3, \
142 ._3DCommandOpcode = 0, \
143 ._3DCommandSubOpcode = 16, \
146 struct GEN8_3DSTATE_VS
{
147 uint32_t CommandType
;
148 uint32_t CommandSubType
;
149 uint32_t _3DCommandOpcode
;
150 uint32_t _3DCommandSubOpcode
;
151 uint32_t DwordLength
;
152 uint64_t KernelStartPointer
;
155 uint32_t SingleVertexDispatch
;
158 uint32_t VectorMaskEnable
;
160 #define _14Samplers 1
161 #define _58Samplers 2
162 #define _912Samplers 3
163 #define _1316Samplers 4
164 uint32_t SamplerCount
;
165 uint32_t BindingTableEntryCount
;
168 uint32_t ThreadDispatchPriority
;
171 uint32_t FloatingPointMode
;
172 bool IllegalOpcodeExceptionEnable
;
174 bool SoftwareExceptionEnable
;
175 uint64_t ScratchSpaceBasePointer
;
176 uint32_t PerThreadScratchSpace
;
177 uint32_t DispatchGRFStartRegisterForURBData
;
178 uint32_t VertexURBEntryReadLength
;
179 uint32_t VertexURBEntryReadOffset
;
180 uint32_t MaximumNumberofThreads
;
181 bool StatisticsEnable
;
182 bool SIMD8DispatchEnable
;
183 bool VertexCacheDisable
;
185 uint32_t VertexURBEntryOutputReadOffset
;
186 uint32_t VertexURBEntryOutputLength
;
187 uint32_t UserClipDistanceClipTestEnableBitmask
;
188 uint32_t UserClipDistanceCullTestEnableBitmask
;
192 GEN8_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
193 const struct GEN8_3DSTATE_VS
* restrict values
)
195 uint32_t *dw
= (uint32_t * restrict
) dst
;
198 __gen_field(values
->CommandType
, 29, 31) |
199 __gen_field(values
->CommandSubType
, 27, 28) |
200 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
201 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
202 __gen_field(values
->DwordLength
, 0, 7) |
206 __gen_offset(values
->KernelStartPointer
, 6, 63) |
213 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
214 __gen_field(values
->VectorMaskEnable
, 30, 30) |
215 __gen_field(values
->SamplerCount
, 27, 29) |
216 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
217 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
218 __gen_field(values
->FloatingPointMode
, 16, 16) |
219 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
220 __gen_field(values
->AccessesUAV
, 12, 12) |
221 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
225 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
226 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
233 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
234 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
235 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
239 __gen_field(values
->MaximumNumberofThreads
, 23, 31) |
240 __gen_field(values
->StatisticsEnable
, 10, 10) |
241 __gen_field(values
->SIMD8DispatchEnable
, 2, 2) |
242 __gen_field(values
->VertexCacheDisable
, 1, 1) |
243 __gen_field(values
->FunctionEnable
, 0, 0) |
247 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
248 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
249 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
250 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
255 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length 0x00000003
256 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002
257 #define GEN8_GPGPU_CSR_BASE_ADDRESS_header \
259 .CommandSubType = 0, \
260 ._3DCommandOpcode = 1, \
261 ._3DCommandSubOpcode = 4, \
264 struct GEN8_GPGPU_CSR_BASE_ADDRESS
{
265 uint32_t CommandType
;
266 uint32_t CommandSubType
;
267 uint32_t _3DCommandOpcode
;
268 uint32_t _3DCommandSubOpcode
;
269 uint32_t DwordLength
;
270 __gen_address_type GPGPUCSRBaseAddressHigh
;
274 GEN8_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
275 const struct GEN8_GPGPU_CSR_BASE_ADDRESS
* restrict values
)
277 uint32_t *dw
= (uint32_t * restrict
) dst
;
280 __gen_field(values
->CommandType
, 29, 31) |
281 __gen_field(values
->CommandSubType
, 27, 28) |
282 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
283 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
284 __gen_field(values
->DwordLength
, 0, 7) |
291 __gen_combine_address(data
, &dw
[1], values
->GPGPUCSRBaseAddressHigh
, dw1
);
298 #define GEN8_MI_ATOMIC_length 0x00000003
299 #define GEN8_MI_ATOMIC_length_bias 0x00000002
300 #define GEN8_MI_ATOMIC_header \
302 .MICommandOpcode = 47
304 struct GEN8_MI_ATOMIC
{
305 uint32_t CommandType
;
306 uint32_t MICommandOpcode
;
307 #define PerProcessGraphicsAddress 0
308 #define GlobalGraphicsAddress 1
310 uint32_t PostSyncOperation
;
318 uint32_t ReturnDataControl
;
319 uint32_t ATOMICOPCODE
;
320 uint32_t DwordLength
;
321 __gen_address_type MemoryAddress
;
322 uint32_t MemoryAddressHigh
;
323 uint32_t Operand1DataDword0
;
324 uint32_t Operand2DataDword0
;
325 uint32_t Operand1DataDword1
;
326 uint32_t Operand2DataDword1
;
327 uint32_t Operand1DataDword2
;
328 uint32_t Operand2DataDword2
;
329 uint32_t Operand1DataDword3
;
330 uint32_t Operand2DataDword3
;
334 GEN8_MI_ATOMIC_pack(__gen_user_data
*data
, void * restrict dst
,
335 const struct GEN8_MI_ATOMIC
* restrict values
)
337 uint32_t *dw
= (uint32_t * restrict
) dst
;
340 __gen_field(values
->CommandType
, 29, 31) |
341 __gen_field(values
->MICommandOpcode
, 23, 28) |
342 __gen_field(values
->MemoryType
, 22, 22) |
343 __gen_field(values
->PostSyncOperation
, 21, 21) |
344 __gen_field(values
->DataSize
, 19, 20) |
345 __gen_field(values
->InlineData
, 18, 18) |
346 __gen_field(values
->CSSTALL
, 17, 17) |
347 __gen_field(values
->ReturnDataControl
, 16, 16) |
348 __gen_field(values
->ATOMICOPCODE
, 8, 15) |
349 __gen_field(values
->DwordLength
, 0, 7) |
356 __gen_combine_address(data
, &dw
[1], values
->MemoryAddress
, dw1
);
359 __gen_field(values
->MemoryAddressHigh
, 0, 15) |
363 __gen_field(values
->Operand1DataDword0
, 0, 31) |
367 __gen_field(values
->Operand2DataDword0
, 0, 31) |
371 __gen_field(values
->Operand1DataDword1
, 0, 31) |
375 __gen_field(values
->Operand2DataDword1
, 0, 31) |
379 __gen_field(values
->Operand1DataDword2
, 0, 31) |
383 __gen_field(values
->Operand2DataDword2
, 0, 31) |
387 __gen_field(values
->Operand1DataDword3
, 0, 31) |
391 __gen_field(values
->Operand2DataDword3
, 0, 31) |
396 #define GEN8_MI_LOAD_REGISTER_REG_length 0x00000003
397 #define GEN8_MI_LOAD_REGISTER_REG_length_bias 0x00000002
398 #define GEN8_MI_LOAD_REGISTER_REG_header \
400 .MICommandOpcode = 42, \
403 struct GEN8_MI_LOAD_REGISTER_REG
{
404 uint32_t CommandType
;
405 uint32_t MICommandOpcode
;
406 uint32_t DwordLength
;
407 uint32_t SourceRegisterAddress
;
408 uint32_t DestinationRegisterAddress
;
412 GEN8_MI_LOAD_REGISTER_REG_pack(__gen_user_data
*data
, void * restrict dst
,
413 const struct GEN8_MI_LOAD_REGISTER_REG
* restrict values
)
415 uint32_t *dw
= (uint32_t * restrict
) dst
;
418 __gen_field(values
->CommandType
, 29, 31) |
419 __gen_field(values
->MICommandOpcode
, 23, 28) |
420 __gen_field(values
->DwordLength
, 0, 7) |
424 __gen_offset(values
->SourceRegisterAddress
, 2, 22) |
428 __gen_offset(values
->DestinationRegisterAddress
, 2, 22) |
433 #define GEN8_MI_SEMAPHORE_SIGNAL_length 0x00000002
434 #define GEN8_MI_SEMAPHORE_SIGNAL_length_bias 0x00000002
435 #define GEN8_MI_SEMAPHORE_SIGNAL_header \
437 .MICommandOpcode = 27, \
440 struct GEN8_MI_SEMAPHORE_SIGNAL
{
441 uint32_t CommandType
;
442 uint32_t MICommandOpcode
;
443 uint32_t PostSyncOperation
;
449 uint32_t TargetEngineSelect
;
450 uint32_t DwordLength
;
451 uint32_t TargetContextID
;
455 GEN8_MI_SEMAPHORE_SIGNAL_pack(__gen_user_data
*data
, void * restrict dst
,
456 const struct GEN8_MI_SEMAPHORE_SIGNAL
* restrict values
)
458 uint32_t *dw
= (uint32_t * restrict
) dst
;
461 __gen_field(values
->CommandType
, 29, 31) |
462 __gen_field(values
->MICommandOpcode
, 23, 28) |
463 __gen_field(values
->PostSyncOperation
, 21, 21) |
464 __gen_field(values
->TargetEngineSelect
, 15, 17) |
465 __gen_field(values
->DwordLength
, 0, 7) |
469 __gen_field(values
->TargetContextID
, 0, 31) |
474 #define GEN8_MI_SEMAPHORE_WAIT_length 0x00000004
475 #define GEN8_MI_SEMAPHORE_WAIT_length_bias 0x00000002
476 #define GEN8_MI_SEMAPHORE_WAIT_header \
478 .MICommandOpcode = 28, \
481 struct GEN8_MI_SEMAPHORE_WAIT
{
482 uint32_t CommandType
;
483 uint32_t MICommandOpcode
;
484 #define PerProcessGraphicsAddress 0
485 #define GlobalGraphicsAddress 1
487 #define PollingMode 1
490 #define SAD_GREATER_THAN_SDD 0
491 #define SAD_GREATER_THAN_OR_EQUAL_SDD 1
492 #define SAD_LESS_THAN_SDD 2
493 #define SAD_LESS_THAN_OR_EQUAL_SDD 3
494 #define SAD_EQUAL_SDD 4
495 #define SAD_NOT_EQUAL_SDD 5
496 uint32_t CompareOperation
;
497 uint32_t DwordLength
;
498 uint32_t SemaphoreDataDword
;
499 __gen_address_type SemaphoreAddress
;
503 GEN8_MI_SEMAPHORE_WAIT_pack(__gen_user_data
*data
, void * restrict dst
,
504 const struct GEN8_MI_SEMAPHORE_WAIT
* restrict values
)
506 uint32_t *dw
= (uint32_t * restrict
) dst
;
509 __gen_field(values
->CommandType
, 29, 31) |
510 __gen_field(values
->MICommandOpcode
, 23, 28) |
511 __gen_field(values
->MemoryType
, 22, 22) |
512 __gen_field(values
->WaitMode
, 15, 15) |
513 __gen_field(values
->CompareOperation
, 12, 14) |
514 __gen_field(values
->DwordLength
, 0, 7) |
518 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
525 __gen_combine_address(data
, &dw
[2], values
->SemaphoreAddress
, dw2
);
532 #define GEN8_MI_STORE_REGISTER_MEM_length 0x00000004
533 #define GEN8_MI_STORE_REGISTER_MEM_length_bias 0x00000002
534 #define GEN8_MI_STORE_REGISTER_MEM_header \
536 .MICommandOpcode = 36, \
539 struct GEN8_MI_STORE_REGISTER_MEM
{
540 uint32_t CommandType
;
541 uint32_t MICommandOpcode
;
543 uint32_t PredicateEnable
;
544 uint32_t DwordLength
;
545 uint32_t RegisterAddress
;
546 __gen_address_type MemoryAddress
;
550 GEN8_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
551 const struct GEN8_MI_STORE_REGISTER_MEM
* restrict values
)
553 uint32_t *dw
= (uint32_t * restrict
) dst
;
556 __gen_field(values
->CommandType
, 29, 31) |
557 __gen_field(values
->MICommandOpcode
, 23, 28) |
558 __gen_field(values
->UseGlobalGTT
, 22, 22) |
559 __gen_field(values
->PredicateEnable
, 21, 21) |
560 __gen_field(values
->DwordLength
, 0, 7) |
564 __gen_offset(values
->RegisterAddress
, 2, 22) |
571 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
578 #define GEN8_PIPELINE_SELECT_length 0x00000001
579 #define GEN8_PIPELINE_SELECT_length_bias 0x00000001
580 #define GEN8_PIPELINE_SELECT_header \
582 .CommandSubType = 1, \
583 ._3DCommandOpcode = 1, \
584 ._3DCommandSubOpcode = 4
586 struct GEN8_PIPELINE_SELECT
{
587 uint32_t CommandType
;
588 uint32_t CommandSubType
;
589 uint32_t _3DCommandOpcode
;
590 uint32_t _3DCommandSubOpcode
;
594 uint32_t PipelineSelection
;
598 GEN8_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
599 const struct GEN8_PIPELINE_SELECT
* restrict values
)
601 uint32_t *dw
= (uint32_t * restrict
) dst
;
604 __gen_field(values
->CommandType
, 29, 31) |
605 __gen_field(values
->CommandSubType
, 27, 28) |
606 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
607 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
608 __gen_field(values
->PipelineSelection
, 0, 1) |
613 #define GEN8_STATE_BASE_ADDRESS_length 0x00000010
614 #define GEN8_STATE_BASE_ADDRESS_length_bias 0x00000002
615 #define GEN8_STATE_BASE_ADDRESS_header \
617 .CommandSubType = 0, \
618 ._3DCommandOpcode = 1, \
619 ._3DCommandSubOpcode = 1, \
622 struct GEN8_MEMORY_OBJECT_CONTROL_STATE
{
623 #define UCwithFenceifcoherentcycle 0
624 #define UCUncacheable 1
627 uint32_t MemoryTypeLLCeLLCCacheabilityControl
;
628 #define eLLCOnlywheneDRAMispresentelsegetsallocatedinLLC 0
630 #define LLCeLLCAllowed 2
631 #define L3DefertoPATforLLCeLLCselection 3
632 uint32_t TargetCache
;
633 uint32_t AgeforQUADLRU
;
637 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
638 const struct GEN8_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
640 uint32_t *dw
= (uint32_t * restrict
) dst
;
643 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControl
, 5, 6) |
644 __gen_field(values
->TargetCache
, 3, 4) |
645 __gen_field(values
->AgeforQUADLRU
, 0, 1) |
650 struct GEN8_STATE_BASE_ADDRESS
{
651 uint32_t CommandType
;
652 uint32_t CommandSubType
;
653 uint32_t _3DCommandOpcode
;
654 uint32_t _3DCommandSubOpcode
;
655 uint32_t DwordLength
;
656 __gen_address_type GeneralStateBaseAddress
;
657 struct GEN8_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
658 bool GeneralStateBaseAddressModifyEnable
;
659 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
660 __gen_address_type SurfaceStateBaseAddress
;
661 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
662 bool SurfaceStateBaseAddressModifyEnable
;
663 __gen_address_type DynamicStateBaseAddress
;
664 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
665 bool DynamicStateBaseAddressModifyEnable
;
666 __gen_address_type IndirectObjectBaseAddress
;
667 struct GEN8_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
668 bool IndirectObjectBaseAddressModifyEnable
;
669 __gen_address_type InstructionBaseAddress
;
670 struct GEN8_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
671 bool InstructionBaseAddressModifyEnable
;
672 uint32_t GeneralStateBufferSize
;
673 bool GeneralStateBufferSizeModifyEnable
;
674 uint32_t DynamicStateBufferSize
;
675 bool DynamicStateBufferSizeModifyEnable
;
676 uint32_t IndirectObjectBufferSize
;
677 bool IndirectObjectBufferSizeModifyEnable
;
678 uint32_t InstructionBufferSize
;
679 bool InstructionBuffersizeModifyEnable
;
683 GEN8_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
684 const struct GEN8_STATE_BASE_ADDRESS
* restrict values
)
686 uint32_t *dw
= (uint32_t * restrict
) dst
;
689 __gen_field(values
->CommandType
, 29, 31) |
690 __gen_field(values
->CommandSubType
, 27, 28) |
691 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
692 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
693 __gen_field(values
->DwordLength
, 0, 7) |
696 uint32_t dw_GeneralStateMemoryObjectControlState
;
697 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
699 __gen_field(dw_GeneralStateMemoryObjectControlState
, 4, 10) |
700 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
704 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
709 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
710 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
712 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 16, 22) |
715 uint32_t dw_SurfaceStateMemoryObjectControlState
;
716 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
718 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 4, 10) |
719 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
723 __gen_combine_address(data
, &dw
[4], values
->SurfaceStateBaseAddress
, dw4
);
728 uint32_t dw_DynamicStateMemoryObjectControlState
;
729 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
731 __gen_field(dw_DynamicStateMemoryObjectControlState
, 4, 10) |
732 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
736 __gen_combine_address(data
, &dw
[6], values
->DynamicStateBaseAddress
, dw6
);
741 uint32_t dw_IndirectObjectMemoryObjectControlState
;
742 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
744 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 4, 10) |
745 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
749 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectBaseAddress
, dw8
);
754 uint32_t dw_InstructionMemoryObjectControlState
;
755 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
757 __gen_field(dw_InstructionMemoryObjectControlState
, 4, 10) |
758 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
762 __gen_combine_address(data
, &dw
[10], values
->InstructionBaseAddress
, dw10
);
768 __gen_field(values
->GeneralStateBufferSize
, 12, 31) |
769 __gen_field(values
->GeneralStateBufferSizeModifyEnable
, 0, 0) |
773 __gen_field(values
->DynamicStateBufferSize
, 12, 31) |
774 __gen_field(values
->DynamicStateBufferSizeModifyEnable
, 0, 0) |
778 __gen_field(values
->IndirectObjectBufferSize
, 12, 31) |
779 __gen_field(values
->IndirectObjectBufferSizeModifyEnable
, 0, 0) |
783 __gen_field(values
->InstructionBufferSize
, 12, 31) |
784 __gen_field(values
->InstructionBuffersizeModifyEnable
, 0, 0) |
789 #define GEN8_STATE_PREFETCH_length 0x00000002
790 #define GEN8_STATE_PREFETCH_length_bias 0x00000002
791 #define GEN8_STATE_PREFETCH_header \
793 .CommandSubType = 0, \
794 ._3DCommandOpcode = 0, \
795 ._3DCommandSubOpcode = 3, \
798 struct GEN8_STATE_PREFETCH
{
799 uint32_t CommandType
;
800 uint32_t CommandSubType
;
801 uint32_t _3DCommandOpcode
;
802 uint32_t _3DCommandSubOpcode
;
803 uint32_t DwordLength
;
804 __gen_address_type PrefetchPointer
;
805 uint32_t PrefetchCount
;
809 GEN8_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
810 const struct GEN8_STATE_PREFETCH
* restrict values
)
812 uint32_t *dw
= (uint32_t * restrict
) dst
;
815 __gen_field(values
->CommandType
, 29, 31) |
816 __gen_field(values
->CommandSubType
, 27, 28) |
817 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
818 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
819 __gen_field(values
->DwordLength
, 0, 7) |
823 __gen_field(values
->PrefetchCount
, 0, 2) |
827 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
831 #define GEN8_STATE_SIP_length 0x00000003
832 #define GEN8_STATE_SIP_length_bias 0x00000002
833 #define GEN8_STATE_SIP_header \
835 .CommandSubType = 0, \
836 ._3DCommandOpcode = 1, \
837 ._3DCommandSubOpcode = 2, \
840 struct GEN8_STATE_SIP
{
841 uint32_t CommandType
;
842 uint32_t CommandSubType
;
843 uint32_t _3DCommandOpcode
;
844 uint32_t _3DCommandSubOpcode
;
845 uint32_t DwordLength
;
846 uint64_t SystemInstructionPointer
;
850 GEN8_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
851 const struct GEN8_STATE_SIP
* restrict values
)
853 uint32_t *dw
= (uint32_t * restrict
) dst
;
856 __gen_field(values
->CommandType
, 29, 31) |
857 __gen_field(values
->CommandSubType
, 27, 28) |
858 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
859 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
860 __gen_field(values
->DwordLength
, 0, 7) |
864 __gen_offset(values
->SystemInstructionPointer
, 4, 63) |
872 #define GEN8_SWTESS_BASE_ADDRESS_length 0x00000002
873 #define GEN8_SWTESS_BASE_ADDRESS_length_bias 0x00000002
874 #define GEN8_SWTESS_BASE_ADDRESS_header \
876 .CommandSubType = 0, \
877 ._3DCommandOpcode = 1, \
878 ._3DCommandSubOpcode = 3, \
881 struct GEN8_SWTESS_BASE_ADDRESS
{
882 uint32_t CommandType
;
883 uint32_t CommandSubType
;
884 uint32_t _3DCommandOpcode
;
885 uint32_t _3DCommandSubOpcode
;
886 uint32_t DwordLength
;
887 __gen_address_type SWTessellationBaseAddress
;
888 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
889 __gen_address_type SWTessellationBaseAddressHigh
;
893 GEN8_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
894 const struct GEN8_SWTESS_BASE_ADDRESS
* restrict values
)
896 uint32_t *dw
= (uint32_t * restrict
) dst
;
899 __gen_field(values
->CommandType
, 29, 31) |
900 __gen_field(values
->CommandSubType
, 27, 28) |
901 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
902 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
903 __gen_field(values
->DwordLength
, 0, 7) |
906 uint32_t dw_SWTessellationMemoryObjectControlState
;
907 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
909 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
913 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
919 __gen_combine_address(data
, &dw
[2], values
->SWTessellationBaseAddressHigh
, dw2
);
923 #define GEN8_3DPRIMITIVE_length 0x00000007
924 #define GEN8_3DPRIMITIVE_length_bias 0x00000002
925 #define GEN8_3DPRIMITIVE_header \
927 .CommandSubType = 3, \
928 ._3DCommandOpcode = 3, \
929 ._3DCommandSubOpcode = 0, \
932 struct GEN8_3DPRIMITIVE
{
933 uint32_t CommandType
;
934 uint32_t CommandSubType
;
935 uint32_t _3DCommandOpcode
;
936 uint32_t _3DCommandSubOpcode
;
937 bool IndirectParameterEnable
;
938 uint32_t UAVCoherencyRequired
;
939 bool PredicateEnable
;
940 uint32_t DwordLength
;
941 bool EndOffsetEnable
;
944 uint32_t VertexAccessType
;
945 uint32_t PrimitiveTopologyType
;
946 uint32_t VertexCountPerInstance
;
947 uint32_t StartVertexLocation
;
948 uint32_t InstanceCount
;
949 uint32_t StartInstanceLocation
;
950 uint32_t BaseVertexLocation
;
954 GEN8_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
955 const struct GEN8_3DPRIMITIVE
* restrict values
)
957 uint32_t *dw
= (uint32_t * restrict
) dst
;
960 __gen_field(values
->CommandType
, 29, 31) |
961 __gen_field(values
->CommandSubType
, 27, 28) |
962 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
963 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
964 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
965 __gen_field(values
->UAVCoherencyRequired
, 9, 9) |
966 __gen_field(values
->PredicateEnable
, 8, 8) |
967 __gen_field(values
->DwordLength
, 0, 7) |
971 __gen_field(values
->EndOffsetEnable
, 9, 9) |
972 __gen_field(values
->VertexAccessType
, 8, 8) |
973 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
977 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
981 __gen_field(values
->StartVertexLocation
, 0, 31) |
985 __gen_field(values
->InstanceCount
, 0, 31) |
989 __gen_field(values
->StartInstanceLocation
, 0, 31) |
993 __gen_field(values
->BaseVertexLocation
, 0, 31) |
998 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
999 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
1000 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_header \
1002 .CommandSubType = 3, \
1003 ._3DCommandOpcode = 1, \
1004 ._3DCommandSubOpcode = 10, \
1007 struct GEN8_3DSTATE_AA_LINE_PARAMETERS
{
1008 uint32_t CommandType
;
1009 uint32_t CommandSubType
;
1010 uint32_t _3DCommandOpcode
;
1011 uint32_t _3DCommandSubOpcode
;
1012 uint32_t DwordLength
;
1013 float AAPointCoverageBias
;
1014 float AACoverageBias
;
1015 float AAPointCoverageSlope
;
1016 float AACoverageSlope
;
1017 float AAPointCoverageEndCapBias
;
1018 float AACoverageEndCapBias
;
1019 float AAPointCoverageEndCapSlope
;
1020 float AACoverageEndCapSlope
;
1024 GEN8_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
1025 const struct GEN8_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
1027 uint32_t *dw
= (uint32_t * restrict
) dst
;
1030 __gen_field(values
->CommandType
, 29, 31) |
1031 __gen_field(values
->CommandSubType
, 27, 28) |
1032 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1033 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1034 __gen_field(values
->DwordLength
, 0, 7) |
1038 __gen_field(values
->AAPointCoverageBias
* (1 << 8), 24, 31) |
1039 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
1040 __gen_field(values
->AAPointCoverageSlope
* (1 << 8), 8, 15) |
1041 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
1045 __gen_field(values
->AAPointCoverageEndCapBias
* (1 << 8), 24, 31) |
1046 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
1047 __gen_field(values
->AAPointCoverageEndCapSlope
* (1 << 8), 8, 15) |
1048 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
1053 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_length_bias 0x00000002
1054 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_header\
1056 .CommandSubType = 3, \
1057 ._3DCommandOpcode = 0, \
1058 ._3DCommandSubOpcode = 70
1060 struct GEN8_BINDING_TABLE_EDIT_ENTRY
{
1061 uint32_t BindingTableIndex
;
1062 uint32_t SurfaceStatePointer
;
1066 GEN8_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
1067 const struct GEN8_BINDING_TABLE_EDIT_ENTRY
* restrict values
)
1069 uint32_t *dw
= (uint32_t * restrict
) dst
;
1072 __gen_field(values
->BindingTableIndex
, 16, 23) |
1073 __gen_offset(values
->SurfaceStatePointer
, 0, 15) |
1078 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS
{
1079 uint32_t CommandType
;
1080 uint32_t CommandSubType
;
1081 uint32_t _3DCommandOpcode
;
1082 uint32_t _3DCommandSubOpcode
;
1083 uint32_t DwordLength
;
1084 uint32_t BindingTableBlockClear
;
1088 uint32_t BindingTableEditTarget
;
1089 /* variable length fields follow */
1093 GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1094 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS
* restrict values
)
1096 uint32_t *dw
= (uint32_t * restrict
) dst
;
1099 __gen_field(values
->CommandType
, 29, 31) |
1100 __gen_field(values
->CommandSubType
, 27, 28) |
1101 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1102 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1103 __gen_field(values
->DwordLength
, 0, 8) |
1107 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1108 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1111 /* variable length fields follow */
1114 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_length_bias 0x00000002
1115 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_header\
1117 .CommandSubType = 3, \
1118 ._3DCommandOpcode = 0, \
1119 ._3DCommandSubOpcode = 68
1121 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS
{
1122 uint32_t CommandType
;
1123 uint32_t CommandSubType
;
1124 uint32_t _3DCommandOpcode
;
1125 uint32_t _3DCommandSubOpcode
;
1126 uint32_t DwordLength
;
1127 uint32_t BindingTableBlockClear
;
1131 uint32_t BindingTableEditTarget
;
1132 /* variable length fields follow */
1136 GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1137 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS
* restrict values
)
1139 uint32_t *dw
= (uint32_t * restrict
) dst
;
1142 __gen_field(values
->CommandType
, 29, 31) |
1143 __gen_field(values
->CommandSubType
, 27, 28) |
1144 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1145 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1146 __gen_field(values
->DwordLength
, 0, 8) |
1150 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1151 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1154 /* variable length fields follow */
1157 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_length_bias 0x00000002
1158 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_header\
1160 .CommandSubType = 3, \
1161 ._3DCommandOpcode = 0, \
1162 ._3DCommandSubOpcode = 69
1164 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS
{
1165 uint32_t CommandType
;
1166 uint32_t CommandSubType
;
1167 uint32_t _3DCommandOpcode
;
1168 uint32_t _3DCommandSubOpcode
;
1169 uint32_t DwordLength
;
1170 uint32_t BindingTableBlockClear
;
1174 uint32_t BindingTableEditTarget
;
1175 /* variable length fields follow */
1179 GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1180 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS
* restrict values
)
1182 uint32_t *dw
= (uint32_t * restrict
) dst
;
1185 __gen_field(values
->CommandType
, 29, 31) |
1186 __gen_field(values
->CommandSubType
, 27, 28) |
1187 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1188 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1189 __gen_field(values
->DwordLength
, 0, 8) |
1193 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1194 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1197 /* variable length fields follow */
1200 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_length_bias 0x00000002
1201 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_header\
1203 .CommandSubType = 3, \
1204 ._3DCommandOpcode = 0, \
1205 ._3DCommandSubOpcode = 71
1207 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS
{
1208 uint32_t CommandType
;
1209 uint32_t CommandSubType
;
1210 uint32_t _3DCommandOpcode
;
1211 uint32_t _3DCommandSubOpcode
;
1212 uint32_t DwordLength
;
1213 uint32_t BindingTableBlockClear
;
1217 uint32_t BindingTableEditTarget
;
1218 /* variable length fields follow */
1222 GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1223 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS
* restrict values
)
1225 uint32_t *dw
= (uint32_t * restrict
) dst
;
1228 __gen_field(values
->CommandType
, 29, 31) |
1229 __gen_field(values
->CommandSubType
, 27, 28) |
1230 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1231 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1232 __gen_field(values
->DwordLength
, 0, 8) |
1236 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1237 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1240 /* variable length fields follow */
1243 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_length_bias 0x00000002
1244 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_header\
1246 .CommandSubType = 3, \
1247 ._3DCommandOpcode = 0, \
1248 ._3DCommandSubOpcode = 67
1250 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS
{
1251 uint32_t CommandType
;
1252 uint32_t CommandSubType
;
1253 uint32_t _3DCommandOpcode
;
1254 uint32_t _3DCommandSubOpcode
;
1255 uint32_t DwordLength
;
1256 uint32_t BindingTableBlockClear
;
1260 uint32_t BindingTableEditTarget
;
1261 /* variable length fields follow */
1265 GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1266 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS
* restrict values
)
1268 uint32_t *dw
= (uint32_t * restrict
) dst
;
1271 __gen_field(values
->CommandType
, 29, 31) |
1272 __gen_field(values
->CommandSubType
, 27, 28) |
1273 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1274 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1275 __gen_field(values
->DwordLength
, 0, 8) |
1279 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1280 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1283 /* variable length fields follow */
1286 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
1287 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
1288 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
1290 .CommandSubType = 3, \
1291 ._3DCommandOpcode = 0, \
1292 ._3DCommandSubOpcode = 40, \
1295 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS
{
1296 uint32_t CommandType
;
1297 uint32_t CommandSubType
;
1298 uint32_t _3DCommandOpcode
;
1299 uint32_t _3DCommandSubOpcode
;
1300 uint32_t DwordLength
;
1301 uint32_t PointertoDSBindingTable
;
1305 GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1306 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
1308 uint32_t *dw
= (uint32_t * restrict
) dst
;
1311 __gen_field(values
->CommandType
, 29, 31) |
1312 __gen_field(values
->CommandSubType
, 27, 28) |
1313 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1314 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1315 __gen_field(values
->DwordLength
, 0, 7) |
1319 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
1324 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
1325 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
1326 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
1328 .CommandSubType = 3, \
1329 ._3DCommandOpcode = 0, \
1330 ._3DCommandSubOpcode = 41, \
1333 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS
{
1334 uint32_t CommandType
;
1335 uint32_t CommandSubType
;
1336 uint32_t _3DCommandOpcode
;
1337 uint32_t _3DCommandSubOpcode
;
1338 uint32_t DwordLength
;
1339 uint32_t PointertoGSBindingTable
;
1343 GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1344 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
1346 uint32_t *dw
= (uint32_t * restrict
) dst
;
1349 __gen_field(values
->CommandType
, 29, 31) |
1350 __gen_field(values
->CommandSubType
, 27, 28) |
1351 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1352 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1353 __gen_field(values
->DwordLength
, 0, 7) |
1357 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
1362 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
1363 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
1364 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
1366 .CommandSubType = 3, \
1367 ._3DCommandOpcode = 0, \
1368 ._3DCommandSubOpcode = 39, \
1371 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS
{
1372 uint32_t CommandType
;
1373 uint32_t CommandSubType
;
1374 uint32_t _3DCommandOpcode
;
1375 uint32_t _3DCommandSubOpcode
;
1376 uint32_t DwordLength
;
1377 uint32_t PointertoHSBindingTable
;
1381 GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1382 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
1384 uint32_t *dw
= (uint32_t * restrict
) dst
;
1387 __gen_field(values
->CommandType
, 29, 31) |
1388 __gen_field(values
->CommandSubType
, 27, 28) |
1389 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1390 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1391 __gen_field(values
->DwordLength
, 0, 7) |
1395 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
1400 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
1401 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
1402 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
1404 .CommandSubType = 3, \
1405 ._3DCommandOpcode = 0, \
1406 ._3DCommandSubOpcode = 42, \
1409 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS
{
1410 uint32_t CommandType
;
1411 uint32_t CommandSubType
;
1412 uint32_t _3DCommandOpcode
;
1413 uint32_t _3DCommandSubOpcode
;
1414 uint32_t DwordLength
;
1415 uint32_t PointertoPSBindingTable
;
1419 GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1420 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
1422 uint32_t *dw
= (uint32_t * restrict
) dst
;
1425 __gen_field(values
->CommandType
, 29, 31) |
1426 __gen_field(values
->CommandSubType
, 27, 28) |
1427 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1428 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1429 __gen_field(values
->DwordLength
, 0, 7) |
1433 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
1438 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
1439 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
1440 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
1442 .CommandSubType = 3, \
1443 ._3DCommandOpcode = 0, \
1444 ._3DCommandSubOpcode = 38, \
1447 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS
{
1448 uint32_t CommandType
;
1449 uint32_t CommandSubType
;
1450 uint32_t _3DCommandOpcode
;
1451 uint32_t _3DCommandSubOpcode
;
1452 uint32_t DwordLength
;
1453 uint32_t PointertoVSBindingTable
;
1457 GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1458 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
1460 uint32_t *dw
= (uint32_t * restrict
) dst
;
1463 __gen_field(values
->CommandType
, 29, 31) |
1464 __gen_field(values
->CommandSubType
, 27, 28) |
1465 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1466 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1467 __gen_field(values
->DwordLength
, 0, 7) |
1471 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
1476 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000004
1477 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002
1478 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\
1480 .CommandSubType = 3, \
1481 ._3DCommandOpcode = 1, \
1482 ._3DCommandSubOpcode = 25, \
1485 struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC
{
1486 uint32_t CommandType
;
1487 uint32_t CommandSubType
;
1488 uint32_t _3DCommandOpcode
;
1489 uint32_t _3DCommandSubOpcode
;
1490 uint32_t DwordLength
;
1491 __gen_address_type BindingTablePoolBaseAddress
;
1492 uint32_t BindingTablePoolEnable
;
1493 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
1494 #define NoValidData 0
1495 uint32_t BindingTablePoolBufferSize
;
1499 GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
1500 const struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC
* restrict values
)
1502 uint32_t *dw
= (uint32_t * restrict
) dst
;
1505 __gen_field(values
->CommandType
, 29, 31) |
1506 __gen_field(values
->CommandSubType
, 27, 28) |
1507 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1508 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1509 __gen_field(values
->DwordLength
, 0, 7) |
1512 uint32_t dw_SurfaceObjectControlState
;
1513 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
1515 __gen_field(values
->BindingTablePoolEnable
, 11, 11) |
1516 __gen_field(dw_SurfaceObjectControlState
, 0, 6) |
1520 __gen_combine_address(data
, &dw
[1], values
->BindingTablePoolBaseAddress
, dw1
);
1526 __gen_field(values
->BindingTablePoolBufferSize
, 12, 31) |
1531 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
1532 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
1533 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_header\
1535 .CommandSubType = 3, \
1536 ._3DCommandOpcode = 0, \
1537 ._3DCommandSubOpcode = 36, \
1540 struct GEN8_3DSTATE_BLEND_STATE_POINTERS
{
1541 uint32_t CommandType
;
1542 uint32_t CommandSubType
;
1543 uint32_t _3DCommandOpcode
;
1544 uint32_t _3DCommandSubOpcode
;
1545 uint32_t DwordLength
;
1546 uint32_t BlendStatePointer
;
1547 bool BlendStatePointerValid
;
1551 GEN8_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1552 const struct GEN8_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
1554 uint32_t *dw
= (uint32_t * restrict
) dst
;
1557 __gen_field(values
->CommandType
, 29, 31) |
1558 __gen_field(values
->CommandSubType
, 27, 28) |
1559 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1560 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1561 __gen_field(values
->DwordLength
, 0, 7) |
1565 __gen_offset(values
->BlendStatePointer
, 6, 31) |
1566 __gen_field(values
->BlendStatePointerValid
, 0, 0) |
1571 #define GEN8_3DSTATE_CC_STATE_POINTERS_length 0x00000002
1572 #define GEN8_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
1573 #define GEN8_3DSTATE_CC_STATE_POINTERS_header \
1575 .CommandSubType = 3, \
1576 ._3DCommandOpcode = 0, \
1577 ._3DCommandSubOpcode = 14, \
1580 struct GEN8_3DSTATE_CC_STATE_POINTERS
{
1581 uint32_t CommandType
;
1582 uint32_t CommandSubType
;
1583 uint32_t _3DCommandOpcode
;
1584 uint32_t _3DCommandSubOpcode
;
1585 uint32_t DwordLength
;
1586 uint32_t ColorCalcStatePointer
;
1587 bool ColorCalcStatePointerValid
;
1591 GEN8_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1592 const struct GEN8_3DSTATE_CC_STATE_POINTERS
* restrict values
)
1594 uint32_t *dw
= (uint32_t * restrict
) dst
;
1597 __gen_field(values
->CommandType
, 29, 31) |
1598 __gen_field(values
->CommandSubType
, 27, 28) |
1599 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1600 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1601 __gen_field(values
->DwordLength
, 0, 7) |
1605 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
1606 __gen_field(values
->ColorCalcStatePointerValid
, 0, 0) |
1611 #define GEN8_3DSTATE_CHROMA_KEY_length 0x00000004
1612 #define GEN8_3DSTATE_CHROMA_KEY_length_bias 0x00000002
1613 #define GEN8_3DSTATE_CHROMA_KEY_header \
1615 .CommandSubType = 3, \
1616 ._3DCommandOpcode = 1, \
1617 ._3DCommandSubOpcode = 4, \
1620 struct GEN8_3DSTATE_CHROMA_KEY
{
1621 uint32_t CommandType
;
1622 uint32_t CommandSubType
;
1623 uint32_t _3DCommandOpcode
;
1624 uint32_t _3DCommandSubOpcode
;
1625 uint32_t DwordLength
;
1626 uint32_t ChromaKeyTableIndex
;
1627 uint32_t ChromaKeyLowValue
;
1628 uint32_t ChromaKeyHighValue
;
1632 GEN8_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
1633 const struct GEN8_3DSTATE_CHROMA_KEY
* restrict values
)
1635 uint32_t *dw
= (uint32_t * restrict
) dst
;
1638 __gen_field(values
->CommandType
, 29, 31) |
1639 __gen_field(values
->CommandSubType
, 27, 28) |
1640 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1641 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1642 __gen_field(values
->DwordLength
, 0, 7) |
1646 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
1650 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
1654 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
1659 #define GEN8_3DSTATE_CLEAR_PARAMS_length 0x00000003
1660 #define GEN8_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
1661 #define GEN8_3DSTATE_CLEAR_PARAMS_header \
1663 .CommandSubType = 3, \
1664 ._3DCommandOpcode = 0, \
1665 ._3DCommandSubOpcode = 4, \
1668 struct GEN8_3DSTATE_CLEAR_PARAMS
{
1669 uint32_t CommandType
;
1670 uint32_t CommandSubType
;
1671 uint32_t _3DCommandOpcode
;
1672 uint32_t _3DCommandSubOpcode
;
1673 uint32_t DwordLength
;
1674 float DepthClearValue
;
1675 bool DepthClearValueValid
;
1679 GEN8_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
1680 const struct GEN8_3DSTATE_CLEAR_PARAMS
* restrict values
)
1682 uint32_t *dw
= (uint32_t * restrict
) dst
;
1685 __gen_field(values
->CommandType
, 29, 31) |
1686 __gen_field(values
->CommandSubType
, 27, 28) |
1687 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1688 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1689 __gen_field(values
->DwordLength
, 0, 7) |
1693 __gen_float(values
->DepthClearValue
) |
1697 __gen_field(values
->DepthClearValueValid
, 0, 0) |
1702 #define GEN8_3DSTATE_CLIP_length 0x00000004
1703 #define GEN8_3DSTATE_CLIP_length_bias 0x00000002
1704 #define GEN8_3DSTATE_CLIP_header \
1706 .CommandSubType = 3, \
1707 ._3DCommandOpcode = 0, \
1708 ._3DCommandSubOpcode = 18, \
1711 struct GEN8_3DSTATE_CLIP
{
1712 uint32_t CommandType
;
1713 uint32_t CommandSubType
;
1714 uint32_t _3DCommandOpcode
;
1715 uint32_t _3DCommandSubOpcode
;
1716 uint32_t DwordLength
;
1719 bool ForceUserClipDistanceCullTestEnableBitmask
;
1722 uint32_t VertexSubPixelPrecisionSelect
;
1723 bool EarlyCullEnable
;
1726 bool ForceUserClipDistanceClipTestEnableBitmask
;
1730 bool ClipperStatisticsEnable
;
1731 uint32_t UserClipDistanceCullTestEnableBitmask
;
1735 bool ViewportXYClipTestEnable
;
1736 bool GuardbandClipTestEnable
;
1737 uint32_t UserClipDistanceClipTestEnableBitmask
;
1739 #define REJECT_ALL 3
1740 #define ACCEPT_ALL 4
1742 bool PerspectiveDivideDisable
;
1743 bool NonPerspectiveBarycentricEnable
;
1744 uint32_t TriangleStripListProvokingVertexSelect
;
1745 uint32_t LineStripListProvokingVertexSelect
;
1746 uint32_t TriangleFanProvokingVertexSelect
;
1747 float MinimumPointWidth
;
1748 float MaximumPointWidth
;
1749 bool ForceZeroRTAIndexEnable
;
1750 uint32_t MaximumVPIndex
;
1754 GEN8_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1755 const struct GEN8_3DSTATE_CLIP
* restrict values
)
1757 uint32_t *dw
= (uint32_t * restrict
) dst
;
1760 __gen_field(values
->CommandType
, 29, 31) |
1761 __gen_field(values
->CommandSubType
, 27, 28) |
1762 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1763 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1764 __gen_field(values
->DwordLength
, 0, 7) |
1768 __gen_field(values
->ForceUserClipDistanceCullTestEnableBitmask
, 20, 20) |
1769 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1770 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1771 __gen_field(values
->ForceUserClipDistanceClipTestEnableBitmask
, 17, 17) |
1772 __gen_field(values
->ForceClipMode
, 16, 16) |
1773 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1774 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1778 __gen_field(values
->ClipEnable
, 31, 31) |
1779 __gen_field(values
->APIMode
, 30, 30) |
1780 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1781 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1782 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1783 __gen_field(values
->ClipMode
, 13, 15) |
1784 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1785 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1786 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1787 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1788 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1792 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
1793 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
1794 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1795 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1800 #define GEN8_3DSTATE_CONSTANT_DS_length 0x0000000b
1801 #define GEN8_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1802 #define GEN8_3DSTATE_CONSTANT_DS_header \
1804 .CommandSubType = 3, \
1805 ._3DCommandOpcode = 0, \
1806 ._3DCommandSubOpcode = 26, \
1809 struct GEN8_3DSTATE_CONSTANT_BODY
{
1810 uint32_t ConstantBuffer1ReadLength
;
1811 uint32_t ConstantBuffer0ReadLength
;
1812 uint32_t ConstantBuffer3ReadLength
;
1813 uint32_t ConstantBuffer2ReadLength
;
1814 __gen_address_type PointerToConstantBuffer0
;
1815 __gen_address_type PointerToConstantBuffer1
;
1816 __gen_address_type PointerToConstantBuffer2
;
1817 __gen_address_type PointerToConstantBuffer3
;
1821 GEN8_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1822 const struct GEN8_3DSTATE_CONSTANT_BODY
* restrict values
)
1824 uint32_t *dw
= (uint32_t * restrict
) dst
;
1827 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1828 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1832 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1833 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1840 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1849 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer1
, dw4
);
1858 __gen_combine_address(data
, &dw
[6], values
->PointerToConstantBuffer2
, dw6
);
1867 __gen_combine_address(data
, &dw
[8], values
->PointerToConstantBuffer3
, dw8
);
1874 struct GEN8_3DSTATE_CONSTANT_DS
{
1875 uint32_t CommandType
;
1876 uint32_t CommandSubType
;
1877 uint32_t _3DCommandOpcode
;
1878 uint32_t _3DCommandSubOpcode
;
1879 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1880 uint32_t DwordLength
;
1881 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1885 GEN8_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1886 const struct GEN8_3DSTATE_CONSTANT_DS
* restrict values
)
1888 uint32_t *dw
= (uint32_t * restrict
) dst
;
1890 uint32_t dw_ConstantBufferObjectControlState
;
1891 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1893 __gen_field(values
->CommandType
, 29, 31) |
1894 __gen_field(values
->CommandSubType
, 27, 28) |
1895 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1896 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1897 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1898 __gen_field(values
->DwordLength
, 0, 7) |
1901 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1904 #define GEN8_3DSTATE_CONSTANT_GS_length 0x0000000b
1905 #define GEN8_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1906 #define GEN8_3DSTATE_CONSTANT_GS_header \
1908 .CommandSubType = 3, \
1909 ._3DCommandOpcode = 0, \
1910 ._3DCommandSubOpcode = 22, \
1913 struct GEN8_3DSTATE_CONSTANT_GS
{
1914 uint32_t CommandType
;
1915 uint32_t CommandSubType
;
1916 uint32_t _3DCommandOpcode
;
1917 uint32_t _3DCommandSubOpcode
;
1918 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1919 uint32_t DwordLength
;
1920 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1924 GEN8_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1925 const struct GEN8_3DSTATE_CONSTANT_GS
* restrict values
)
1927 uint32_t *dw
= (uint32_t * restrict
) dst
;
1929 uint32_t dw_ConstantBufferObjectControlState
;
1930 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1932 __gen_field(values
->CommandType
, 29, 31) |
1933 __gen_field(values
->CommandSubType
, 27, 28) |
1934 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1935 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1936 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1937 __gen_field(values
->DwordLength
, 0, 7) |
1940 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1943 #define GEN8_3DSTATE_CONSTANT_HS_length 0x0000000b
1944 #define GEN8_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1945 #define GEN8_3DSTATE_CONSTANT_HS_header \
1947 .CommandSubType = 3, \
1948 ._3DCommandOpcode = 0, \
1949 ._3DCommandSubOpcode = 25, \
1952 struct GEN8_3DSTATE_CONSTANT_HS
{
1953 uint32_t CommandType
;
1954 uint32_t CommandSubType
;
1955 uint32_t _3DCommandOpcode
;
1956 uint32_t _3DCommandSubOpcode
;
1957 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1958 uint32_t DwordLength
;
1959 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1963 GEN8_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1964 const struct GEN8_3DSTATE_CONSTANT_HS
* restrict values
)
1966 uint32_t *dw
= (uint32_t * restrict
) dst
;
1968 uint32_t dw_ConstantBufferObjectControlState
;
1969 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1971 __gen_field(values
->CommandType
, 29, 31) |
1972 __gen_field(values
->CommandSubType
, 27, 28) |
1973 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1974 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1975 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1976 __gen_field(values
->DwordLength
, 0, 7) |
1979 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1982 #define GEN8_3DSTATE_CONSTANT_PS_length 0x0000000b
1983 #define GEN8_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1984 #define GEN8_3DSTATE_CONSTANT_PS_header \
1986 .CommandSubType = 3, \
1987 ._3DCommandOpcode = 0, \
1988 ._3DCommandSubOpcode = 23, \
1991 struct GEN8_3DSTATE_CONSTANT_PS
{
1992 uint32_t CommandType
;
1993 uint32_t CommandSubType
;
1994 uint32_t _3DCommandOpcode
;
1995 uint32_t _3DCommandSubOpcode
;
1996 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1997 uint32_t DwordLength
;
1998 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
2002 GEN8_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2003 const struct GEN8_3DSTATE_CONSTANT_PS
* restrict values
)
2005 uint32_t *dw
= (uint32_t * restrict
) dst
;
2007 uint32_t dw_ConstantBufferObjectControlState
;
2008 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2010 __gen_field(values
->CommandType
, 29, 31) |
2011 __gen_field(values
->CommandSubType
, 27, 28) |
2012 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2013 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2014 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2015 __gen_field(values
->DwordLength
, 0, 7) |
2018 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2021 #define GEN8_3DSTATE_CONSTANT_VS_length 0x0000000b
2022 #define GEN8_3DSTATE_CONSTANT_VS_length_bias 0x00000002
2023 #define GEN8_3DSTATE_CONSTANT_VS_header \
2025 .CommandSubType = 3, \
2026 ._3DCommandOpcode = 0, \
2027 ._3DCommandSubOpcode = 21, \
2030 struct GEN8_3DSTATE_CONSTANT_VS
{
2031 uint32_t CommandType
;
2032 uint32_t CommandSubType
;
2033 uint32_t _3DCommandOpcode
;
2034 uint32_t _3DCommandSubOpcode
;
2035 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2036 uint32_t DwordLength
;
2037 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
2041 GEN8_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2042 const struct GEN8_3DSTATE_CONSTANT_VS
* restrict values
)
2044 uint32_t *dw
= (uint32_t * restrict
) dst
;
2046 uint32_t dw_ConstantBufferObjectControlState
;
2047 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2049 __gen_field(values
->CommandType
, 29, 31) |
2050 __gen_field(values
->CommandSubType
, 27, 28) |
2051 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2052 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2053 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2054 __gen_field(values
->DwordLength
, 0, 7) |
2057 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2060 #define GEN8_3DSTATE_DEPTH_BUFFER_length 0x00000008
2061 #define GEN8_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
2062 #define GEN8_3DSTATE_DEPTH_BUFFER_header \
2064 .CommandSubType = 3, \
2065 ._3DCommandOpcode = 0, \
2066 ._3DCommandSubOpcode = 5, \
2069 struct GEN8_3DSTATE_DEPTH_BUFFER
{
2070 uint32_t CommandType
;
2071 uint32_t CommandSubType
;
2072 uint32_t _3DCommandOpcode
;
2073 uint32_t _3DCommandSubOpcode
;
2074 uint32_t DwordLength
;
2075 #define SURFTYPE_1D 0
2076 #define SURFTYPE_2D 1
2077 #define SURFTYPE_3D 2
2078 #define SURFTYPE_CUBE 3
2079 #define SURFTYPE_NULL 7
2080 uint32_t SurfaceType
;
2081 bool DepthWriteEnable
;
2082 bool StencilWriteEnable
;
2083 bool HierarchicalDepthBufferEnable
;
2085 #define D24_UNORM_X8_UINT 3
2087 uint32_t SurfaceFormat
;
2088 uint32_t SurfacePitch
;
2089 __gen_address_type SurfaceBaseAddress
;
2094 uint32_t MinimumArrayElement
;
2095 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
2096 uint32_t RenderTargetViewExtent
;
2097 uint32_t SurfaceQPitch
;
2101 GEN8_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2102 const struct GEN8_3DSTATE_DEPTH_BUFFER
* restrict values
)
2104 uint32_t *dw
= (uint32_t * restrict
) dst
;
2107 __gen_field(values
->CommandType
, 29, 31) |
2108 __gen_field(values
->CommandSubType
, 27, 28) |
2109 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2110 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2111 __gen_field(values
->DwordLength
, 0, 7) |
2115 __gen_field(values
->SurfaceType
, 29, 31) |
2116 __gen_field(values
->DepthWriteEnable
, 28, 28) |
2117 __gen_field(values
->StencilWriteEnable
, 27, 27) |
2118 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
2119 __gen_field(values
->SurfaceFormat
, 18, 20) |
2120 __gen_field(values
->SurfacePitch
, 0, 17) |
2127 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2133 __gen_field(values
->Height
, 18, 31) |
2134 __gen_field(values
->Width
, 4, 17) |
2135 __gen_field(values
->LOD
, 0, 3) |
2138 uint32_t dw_DepthBufferObjectControlState
;
2139 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
2141 __gen_field(values
->Depth
, 21, 31) |
2142 __gen_field(values
->MinimumArrayElement
, 10, 20) |
2143 __gen_field(dw_DepthBufferObjectControlState
, 0, 6) |
2150 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
2151 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2156 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
2157 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
2158 #define GEN8_3DSTATE_DRAWING_RECTANGLE_header \
2160 .CommandSubType = 3, \
2161 ._3DCommandOpcode = 1, \
2162 ._3DCommandSubOpcode = 0, \
2165 struct GEN8_3DSTATE_DRAWING_RECTANGLE
{
2166 uint32_t CommandType
;
2167 uint32_t CommandSubType
;
2168 uint32_t _3DCommandOpcode
;
2169 uint32_t _3DCommandSubOpcode
;
2171 #define Core0Enabled 1
2172 #define Core1Enabled 2
2173 uint32_t CoreModeSelect
;
2174 uint32_t DwordLength
;
2175 uint32_t ClippedDrawingRectangleYMin
;
2176 uint32_t ClippedDrawingRectangleXMin
;
2177 uint32_t ClippedDrawingRectangleYMax
;
2178 uint32_t ClippedDrawingRectangleXMax
;
2179 uint32_t DrawingRectangleOriginY
;
2180 uint32_t DrawingRectangleOriginX
;
2184 GEN8_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
2185 const struct GEN8_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
2187 uint32_t *dw
= (uint32_t * restrict
) dst
;
2190 __gen_field(values
->CommandType
, 29, 31) |
2191 __gen_field(values
->CommandSubType
, 27, 28) |
2192 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2193 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2194 __gen_field(values
->CoreModeSelect
, 14, 15) |
2195 __gen_field(values
->DwordLength
, 0, 7) |
2199 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
2200 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
2204 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
2205 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
2209 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
2210 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
2215 #define GEN8_3DSTATE_DS_length 0x00000009
2216 #define GEN8_3DSTATE_DS_length_bias 0x00000002
2217 #define GEN8_3DSTATE_DS_header \
2219 .CommandSubType = 3, \
2220 ._3DCommandOpcode = 0, \
2221 ._3DCommandSubOpcode = 29, \
2224 struct GEN8_3DSTATE_DS
{
2225 uint32_t CommandType
;
2226 uint32_t CommandSubType
;
2227 uint32_t _3DCommandOpcode
;
2228 uint32_t _3DCommandSubOpcode
;
2229 uint32_t DwordLength
;
2230 uint64_t KernelStartPointer
;
2233 uint32_t SingleDomainPointDispatch
;
2236 uint32_t VectorMaskEnable
;
2237 #define NoSamplers 0
2238 #define _14Samplers 1
2239 #define _58Samplers 2
2240 #define _912Samplers 3
2241 #define _1316Samplers 4
2242 uint32_t SamplerCount
;
2243 uint32_t BindingTableEntryCount
;
2246 uint32_t ThreadDispatchPriority
;
2249 uint32_t FloatingPointMode
;
2251 bool IllegalOpcodeExceptionEnable
;
2252 bool SoftwareExceptionEnable
;
2253 uint64_t ScratchSpaceBasePointer
;
2254 uint32_t PerThreadScratchSpace
;
2255 uint32_t DispatchGRFStartRegisterForURBData
;
2256 uint32_t PatchURBEntryReadLength
;
2257 uint32_t PatchURBEntryReadOffset
;
2258 uint32_t MaximumNumberofThreads
;
2259 bool StatisticsEnable
;
2260 bool SIMD8DispatchEnable
;
2261 bool ComputeWCoordinateEnable
;
2263 bool FunctionEnable
;
2264 uint32_t VertexURBEntryOutputReadOffset
;
2265 uint32_t VertexURBEntryOutputLength
;
2266 uint32_t UserClipDistanceClipTestEnableBitmask
;
2267 uint32_t UserClipDistanceCullTestEnableBitmask
;
2271 GEN8_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2272 const struct GEN8_3DSTATE_DS
* restrict values
)
2274 uint32_t *dw
= (uint32_t * restrict
) dst
;
2277 __gen_field(values
->CommandType
, 29, 31) |
2278 __gen_field(values
->CommandSubType
, 27, 28) |
2279 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2280 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2281 __gen_field(values
->DwordLength
, 0, 7) |
2285 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2292 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
2293 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2294 __gen_field(values
->SamplerCount
, 27, 29) |
2295 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2296 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2297 __gen_field(values
->FloatingPointMode
, 16, 16) |
2298 __gen_field(values
->AccessesUAV
, 14, 14) |
2299 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2300 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2304 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2305 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2312 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
2313 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
2314 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
2318 __gen_field(values
->MaximumNumberofThreads
, 21, 29) |
2319 __gen_field(values
->StatisticsEnable
, 10, 10) |
2320 __gen_field(values
->SIMD8DispatchEnable
, 3, 3) |
2321 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
2322 __gen_field(values
->CacheDisable
, 1, 1) |
2323 __gen_field(values
->FunctionEnable
, 0, 0) |
2327 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2328 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2329 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2330 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2335 #define GEN8_3DSTATE_GATHER_CONSTANT_DS_length_bias 0x00000002
2336 #define GEN8_3DSTATE_GATHER_CONSTANT_DS_header \
2338 .CommandSubType = 3, \
2339 ._3DCommandOpcode = 0, \
2340 ._3DCommandSubOpcode = 55
2342 struct GEN8_GATHER_CONSTANT_ENTRY
{
2343 uint32_t ConstantBufferOffset
;
2344 uint32_t ChannelMask
;
2345 uint32_t BindingTableIndexOffset
;
2349 GEN8_GATHER_CONSTANT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2350 const struct GEN8_GATHER_CONSTANT_ENTRY
* restrict values
)
2352 uint32_t *dw
= (uint32_t * restrict
) dst
;
2355 __gen_offset(values
->ConstantBufferOffset
, 8, 15) |
2356 __gen_field(values
->ChannelMask
, 4, 7) |
2357 __gen_field(values
->BindingTableIndexOffset
, 0, 3) |
2362 struct GEN8_3DSTATE_GATHER_CONSTANT_DS
{
2363 uint32_t CommandType
;
2364 uint32_t CommandSubType
;
2365 uint32_t _3DCommandOpcode
;
2366 uint32_t _3DCommandSubOpcode
;
2367 uint32_t DwordLength
;
2368 uint32_t ConstantBufferValid
;
2369 uint32_t ConstantBufferBindingTableBlock
;
2370 uint32_t GatherBufferOffset
;
2371 bool ConstantBufferDx9GenerateStall
;
2372 /* variable length fields follow */
2376 GEN8_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2377 const struct GEN8_3DSTATE_GATHER_CONSTANT_DS
* restrict values
)
2379 uint32_t *dw
= (uint32_t * restrict
) dst
;
2382 __gen_field(values
->CommandType
, 29, 31) |
2383 __gen_field(values
->CommandSubType
, 27, 28) |
2384 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2385 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2386 __gen_field(values
->DwordLength
, 0, 7) |
2390 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2391 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2395 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2396 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2399 /* variable length fields follow */
2402 #define GEN8_3DSTATE_GATHER_CONSTANT_GS_length_bias 0x00000002
2403 #define GEN8_3DSTATE_GATHER_CONSTANT_GS_header \
2405 .CommandSubType = 3, \
2406 ._3DCommandOpcode = 0, \
2407 ._3DCommandSubOpcode = 53
2409 struct GEN8_3DSTATE_GATHER_CONSTANT_GS
{
2410 uint32_t CommandType
;
2411 uint32_t CommandSubType
;
2412 uint32_t _3DCommandOpcode
;
2413 uint32_t _3DCommandSubOpcode
;
2414 uint32_t DwordLength
;
2415 uint32_t ConstantBufferValid
;
2416 uint32_t ConstantBufferBindingTableBlock
;
2417 uint32_t GatherBufferOffset
;
2418 bool ConstantBufferDx9GenerateStall
;
2419 /* variable length fields follow */
2423 GEN8_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2424 const struct GEN8_3DSTATE_GATHER_CONSTANT_GS
* restrict values
)
2426 uint32_t *dw
= (uint32_t * restrict
) dst
;
2429 __gen_field(values
->CommandType
, 29, 31) |
2430 __gen_field(values
->CommandSubType
, 27, 28) |
2431 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2432 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2433 __gen_field(values
->DwordLength
, 0, 7) |
2437 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2438 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2442 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2443 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2446 /* variable length fields follow */
2449 #define GEN8_3DSTATE_GATHER_CONSTANT_HS_length_bias 0x00000002
2450 #define GEN8_3DSTATE_GATHER_CONSTANT_HS_header \
2452 .CommandSubType = 3, \
2453 ._3DCommandOpcode = 0, \
2454 ._3DCommandSubOpcode = 54
2456 struct GEN8_3DSTATE_GATHER_CONSTANT_HS
{
2457 uint32_t CommandType
;
2458 uint32_t CommandSubType
;
2459 uint32_t _3DCommandOpcode
;
2460 uint32_t _3DCommandSubOpcode
;
2461 uint32_t DwordLength
;
2462 uint32_t ConstantBufferValid
;
2463 uint32_t ConstantBufferBindingTableBlock
;
2464 uint32_t GatherBufferOffset
;
2465 bool ConstantBufferDx9GenerateStall
;
2466 /* variable length fields follow */
2470 GEN8_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2471 const struct GEN8_3DSTATE_GATHER_CONSTANT_HS
* restrict values
)
2473 uint32_t *dw
= (uint32_t * restrict
) dst
;
2476 __gen_field(values
->CommandType
, 29, 31) |
2477 __gen_field(values
->CommandSubType
, 27, 28) |
2478 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2479 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2480 __gen_field(values
->DwordLength
, 0, 7) |
2484 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2485 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2489 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2490 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2493 /* variable length fields follow */
2496 #define GEN8_3DSTATE_GATHER_CONSTANT_PS_length_bias 0x00000002
2497 #define GEN8_3DSTATE_GATHER_CONSTANT_PS_header \
2499 .CommandSubType = 3, \
2500 ._3DCommandOpcode = 0, \
2501 ._3DCommandSubOpcode = 56
2503 struct GEN8_3DSTATE_GATHER_CONSTANT_PS
{
2504 uint32_t CommandType
;
2505 uint32_t CommandSubType
;
2506 uint32_t _3DCommandOpcode
;
2507 uint32_t _3DCommandSubOpcode
;
2508 uint32_t DwordLength
;
2509 uint32_t ConstantBufferValid
;
2510 uint32_t ConstantBufferBindingTableBlock
;
2511 uint32_t GatherBufferOffset
;
2512 bool ConstantBufferDx9GenerateStall
;
2513 bool ConstantBufferDx9Enable
;
2514 /* variable length fields follow */
2518 GEN8_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2519 const struct GEN8_3DSTATE_GATHER_CONSTANT_PS
* restrict values
)
2521 uint32_t *dw
= (uint32_t * restrict
) dst
;
2524 __gen_field(values
->CommandType
, 29, 31) |
2525 __gen_field(values
->CommandSubType
, 27, 28) |
2526 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2527 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2528 __gen_field(values
->DwordLength
, 0, 7) |
2532 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2533 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2537 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2538 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2539 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2542 /* variable length fields follow */
2545 #define GEN8_3DSTATE_GATHER_CONSTANT_VS_length_bias 0x00000002
2546 #define GEN8_3DSTATE_GATHER_CONSTANT_VS_header \
2548 .CommandSubType = 3, \
2549 ._3DCommandOpcode = 0, \
2550 ._3DCommandSubOpcode = 52
2552 struct GEN8_3DSTATE_GATHER_CONSTANT_VS
{
2553 uint32_t CommandType
;
2554 uint32_t CommandSubType
;
2555 uint32_t _3DCommandOpcode
;
2556 uint32_t _3DCommandSubOpcode
;
2557 uint32_t DwordLength
;
2558 uint32_t ConstantBufferValid
;
2559 uint32_t ConstantBufferBindingTableBlock
;
2560 uint32_t GatherBufferOffset
;
2561 bool ConstantBufferDx9GenerateStall
;
2562 bool ConstantBufferDx9Enable
;
2563 /* variable length fields follow */
2567 GEN8_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2568 const struct GEN8_3DSTATE_GATHER_CONSTANT_VS
* restrict values
)
2570 uint32_t *dw
= (uint32_t * restrict
) dst
;
2573 __gen_field(values
->CommandType
, 29, 31) |
2574 __gen_field(values
->CommandSubType
, 27, 28) |
2575 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2576 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2577 __gen_field(values
->DwordLength
, 0, 7) |
2581 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2582 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2586 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2587 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2588 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2591 /* variable length fields follow */
2594 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length 0x00000004
2595 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002
2596 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_header \
2598 .CommandSubType = 3, \
2599 ._3DCommandOpcode = 1, \
2600 ._3DCommandSubOpcode = 26, \
2603 struct GEN8_3DSTATE_GATHER_POOL_ALLOC
{
2604 uint32_t CommandType
;
2605 uint32_t CommandSubType
;
2606 uint32_t _3DCommandOpcode
;
2607 uint32_t _3DCommandSubOpcode
;
2608 uint32_t DwordLength
;
2609 __gen_address_type GatherPoolBaseAddress
;
2610 bool GatherPoolEnable
;
2611 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2612 uint32_t GatherPoolBufferSize
;
2616 GEN8_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
2617 const struct GEN8_3DSTATE_GATHER_POOL_ALLOC
* restrict values
)
2619 uint32_t *dw
= (uint32_t * restrict
) dst
;
2622 __gen_field(values
->CommandType
, 29, 31) |
2623 __gen_field(values
->CommandSubType
, 27, 28) |
2624 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2625 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2626 __gen_field(values
->DwordLength
, 0, 7) |
2629 uint32_t dw_MemoryObjectControlState
;
2630 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2632 __gen_field(values
->GatherPoolEnable
, 11, 11) |
2633 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
2637 __gen_combine_address(data
, &dw
[1], values
->GatherPoolBaseAddress
, dw1
);
2643 __gen_field(values
->GatherPoolBufferSize
, 12, 31) |
2648 #define GEN8_3DSTATE_GS_length 0x0000000a
2649 #define GEN8_3DSTATE_GS_length_bias 0x00000002
2650 #define GEN8_3DSTATE_GS_header \
2652 .CommandSubType = 3, \
2653 ._3DCommandOpcode = 0, \
2654 ._3DCommandSubOpcode = 17, \
2657 struct GEN8_3DSTATE_GS
{
2658 uint32_t CommandType
;
2659 uint32_t CommandSubType
;
2660 uint32_t _3DCommandOpcode
;
2661 uint32_t _3DCommandSubOpcode
;
2662 uint32_t DwordLength
;
2663 uint64_t KernelStartPointer
;
2664 uint32_t SingleProgramFlow
;
2667 uint32_t VectorMaskEnable
;
2668 #define NoSamplers 0
2669 #define _14Samplers 1
2670 #define _58Samplers 2
2671 #define _912Samplers 3
2672 #define _1316Samplers 4
2673 uint32_t SamplerCount
;
2674 uint32_t BindingTableEntryCount
;
2677 uint32_t ThreadDispatchPriority
;
2680 uint32_t FloatingPointMode
;
2681 bool IllegalOpcodeExceptionEnable
;
2683 bool MaskStackExceptionEnable
;
2684 bool SoftwareExceptionEnable
;
2685 uint32_t ExpectedVertexCount
;
2686 uint64_t ScratchSpaceBasePointer
;
2687 uint32_t PerThreadScratchSpace
;
2688 uint32_t OutputVertexSize
;
2689 uint32_t OutputTopology
;
2690 uint32_t VertexURBEntryReadLength
;
2691 bool IncludeVertexHandles
;
2692 uint32_t VertexURBEntryReadOffset
;
2693 uint32_t DispatchGRFStartRegisterForURBData
;
2694 uint32_t MaximumNumberofThreads
;
2695 uint32_t ControlDataHeaderSize
;
2696 uint32_t InstanceControl
;
2697 uint32_t DefaultStreamId
;
2698 #define DispatchModeSingle 0
2699 #define DispatchModeDualInstance 1
2700 #define DispatchModeDualObject 2
2701 #define DispatchModeSIMD8 3
2702 uint32_t DispatchMode
;
2703 bool StatisticsEnable
;
2704 uint32_t InvocationsIncrementValue
;
2705 bool IncludePrimitiveID
;
2709 uint32_t ReorderMode
;
2710 bool DiscardAdjacency
;
2714 uint32_t ControlDataFormat
;
2716 uint32_t StaticOutputVertexCount
;
2717 uint32_t VertexURBEntryOutputReadOffset
;
2718 uint32_t VertexURBEntryOutputLength
;
2719 uint32_t UserClipDistanceClipTestEnableBitmask
;
2720 uint32_t UserClipDistanceCullTestEnableBitmask
;
2724 GEN8_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2725 const struct GEN8_3DSTATE_GS
* restrict values
)
2727 uint32_t *dw
= (uint32_t * restrict
) dst
;
2730 __gen_field(values
->CommandType
, 29, 31) |
2731 __gen_field(values
->CommandSubType
, 27, 28) |
2732 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2733 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2734 __gen_field(values
->DwordLength
, 0, 7) |
2738 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2745 __gen_field(values
->SingleProgramFlow
, 31, 31) |
2746 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2747 __gen_field(values
->SamplerCount
, 27, 29) |
2748 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2749 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2750 __gen_field(values
->FloatingPointMode
, 16, 16) |
2751 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2752 __gen_field(values
->AccessesUAV
, 12, 12) |
2753 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2754 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2755 __gen_field(values
->ExpectedVertexCount
, 0, 5) |
2759 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2760 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2767 __gen_field(values
->OutputVertexSize
, 23, 28) |
2768 __gen_field(values
->OutputTopology
, 17, 22) |
2769 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2770 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
2771 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2772 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 0, 3) |
2776 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2777 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
2778 __gen_field(values
->InstanceControl
, 15, 19) |
2779 __gen_field(values
->DefaultStreamId
, 13, 14) |
2780 __gen_field(values
->DispatchMode
, 11, 12) |
2781 __gen_field(values
->StatisticsEnable
, 10, 10) |
2782 __gen_field(values
->InvocationsIncrementValue
, 5, 9) |
2783 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
2784 __gen_field(values
->Hint
, 3, 3) |
2785 __gen_field(values
->ReorderMode
, 2, 2) |
2786 __gen_field(values
->DiscardAdjacency
, 1, 1) |
2787 __gen_field(values
->Enable
, 0, 0) |
2791 __gen_field(values
->ControlDataFormat
, 31, 31) |
2792 __gen_field(values
->StaticOutput
, 30, 30) |
2793 __gen_field(values
->StaticOutputVertexCount
, 16, 26) |
2797 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2798 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2799 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2800 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2805 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000005
2806 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
2807 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_header \
2809 .CommandSubType = 3, \
2810 ._3DCommandOpcode = 0, \
2811 ._3DCommandSubOpcode = 7, \
2814 struct GEN8_3DSTATE_HIER_DEPTH_BUFFER
{
2815 uint32_t CommandType
;
2816 uint32_t CommandSubType
;
2817 uint32_t _3DCommandOpcode
;
2818 uint32_t _3DCommandSubOpcode
;
2819 uint32_t DwordLength
;
2820 struct GEN8_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
2821 uint32_t SurfacePitch
;
2822 __gen_address_type SurfaceBaseAddress
;
2823 uint32_t SurfaceQPitch
;
2827 GEN8_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2828 const struct GEN8_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
2830 uint32_t *dw
= (uint32_t * restrict
) dst
;
2833 __gen_field(values
->CommandType
, 29, 31) |
2834 __gen_field(values
->CommandSubType
, 27, 28) |
2835 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2836 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2837 __gen_field(values
->DwordLength
, 0, 7) |
2840 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
2841 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
2843 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 31) |
2844 __gen_field(values
->SurfacePitch
, 0, 16) |
2851 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2857 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2862 #define GEN8_3DSTATE_HS_length 0x00000009
2863 #define GEN8_3DSTATE_HS_length_bias 0x00000002
2864 #define GEN8_3DSTATE_HS_header \
2866 .CommandSubType = 3, \
2867 ._3DCommandOpcode = 0, \
2868 ._3DCommandSubOpcode = 27, \
2871 struct GEN8_3DSTATE_HS
{
2872 uint32_t CommandType
;
2873 uint32_t CommandSubType
;
2874 uint32_t _3DCommandOpcode
;
2875 uint32_t _3DCommandSubOpcode
;
2876 uint32_t DwordLength
;
2877 #define NoSamplers 0
2878 #define _14Samplers 1
2879 #define _58Samplers 2
2880 #define _912Samplers 3
2881 #define _1316Samplers 4
2882 uint32_t SamplerCount
;
2883 uint32_t BindingTableEntryCount
;
2886 uint32_t ThreadDispatchPriority
;
2889 uint32_t FloatingPointMode
;
2890 bool IllegalOpcodeExceptionEnable
;
2891 bool SoftwareExceptionEnable
;
2893 bool StatisticsEnable
;
2894 uint32_t MaximumNumberofThreads
;
2895 uint32_t InstanceCount
;
2896 uint64_t KernelStartPointer
;
2897 uint64_t ScratchSpaceBasePointer
;
2898 uint32_t PerThreadScratchSpace
;
2899 bool SingleProgramFlow
;
2902 uint32_t VectorMaskEnable
;
2904 bool IncludeVertexHandles
;
2905 uint32_t DispatchGRFStartRegisterForURBData
;
2906 uint32_t VertexURBEntryReadLength
;
2907 uint32_t VertexURBEntryReadOffset
;
2911 GEN8_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2912 const struct GEN8_3DSTATE_HS
* restrict values
)
2914 uint32_t *dw
= (uint32_t * restrict
) dst
;
2917 __gen_field(values
->CommandType
, 29, 31) |
2918 __gen_field(values
->CommandSubType
, 27, 28) |
2919 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2920 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2921 __gen_field(values
->DwordLength
, 0, 7) |
2925 __gen_field(values
->SamplerCount
, 27, 29) |
2926 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2927 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2928 __gen_field(values
->FloatingPointMode
, 16, 16) |
2929 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2930 __gen_field(values
->SoftwareExceptionEnable
, 12, 12) |
2934 __gen_field(values
->Enable
, 31, 31) |
2935 __gen_field(values
->StatisticsEnable
, 29, 29) |
2936 __gen_field(values
->MaximumNumberofThreads
, 8, 16) |
2937 __gen_field(values
->InstanceCount
, 0, 3) |
2941 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2948 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2949 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2956 __gen_field(values
->SingleProgramFlow
, 27, 27) |
2957 __gen_field(values
->VectorMaskEnable
, 26, 26) |
2958 __gen_field(values
->AccessesUAV
, 25, 25) |
2959 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
2960 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
2961 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2962 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2970 #define GEN8_3DSTATE_INDEX_BUFFER_length 0x00000005
2971 #define GEN8_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
2972 #define GEN8_3DSTATE_INDEX_BUFFER_header \
2974 .CommandSubType = 3, \
2975 ._3DCommandOpcode = 0, \
2976 ._3DCommandSubOpcode = 10, \
2979 struct GEN8_3DSTATE_INDEX_BUFFER
{
2980 uint32_t CommandType
;
2981 uint32_t CommandSubType
;
2982 uint32_t _3DCommandOpcode
;
2983 uint32_t _3DCommandSubOpcode
;
2984 uint32_t DwordLength
;
2985 #define INDEX_BYTE 0
2986 #define INDEX_WORD 1
2987 #define INDEX_DWORD 2
2988 uint32_t IndexFormat
;
2989 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2990 __gen_address_type BufferStartingAddress
;
2991 uint32_t BufferSize
;
2995 GEN8_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2996 const struct GEN8_3DSTATE_INDEX_BUFFER
* restrict values
)
2998 uint32_t *dw
= (uint32_t * restrict
) dst
;
3001 __gen_field(values
->CommandType
, 29, 31) |
3002 __gen_field(values
->CommandSubType
, 27, 28) |
3003 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3004 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3005 __gen_field(values
->DwordLength
, 0, 7) |
3008 uint32_t dw_MemoryObjectControlState
;
3009 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
3011 __gen_field(values
->IndexFormat
, 8, 9) |
3012 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
3019 __gen_combine_address(data
, &dw
[2], values
->BufferStartingAddress
, dw2
);
3025 __gen_field(values
->BufferSize
, 0, 31) |
3030 #define GEN8_3DSTATE_LINE_STIPPLE_length 0x00000003
3031 #define GEN8_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
3032 #define GEN8_3DSTATE_LINE_STIPPLE_header \
3034 .CommandSubType = 3, \
3035 ._3DCommandOpcode = 1, \
3036 ._3DCommandSubOpcode = 8, \
3039 struct GEN8_3DSTATE_LINE_STIPPLE
{
3040 uint32_t CommandType
;
3041 uint32_t CommandSubType
;
3042 uint32_t _3DCommandOpcode
;
3043 uint32_t _3DCommandSubOpcode
;
3044 uint32_t DwordLength
;
3045 bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
3046 uint32_t CurrentRepeatCounter
;
3047 uint32_t CurrentStippleIndex
;
3048 uint32_t LineStipplePattern
;
3049 float LineStippleInverseRepeatCount
;
3050 uint32_t LineStippleRepeatCount
;
3054 GEN8_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3055 const struct GEN8_3DSTATE_LINE_STIPPLE
* restrict values
)
3057 uint32_t *dw
= (uint32_t * restrict
) dst
;
3060 __gen_field(values
->CommandType
, 29, 31) |
3061 __gen_field(values
->CommandSubType
, 27, 28) |
3062 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3063 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3064 __gen_field(values
->DwordLength
, 0, 7) |
3068 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
3069 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
3070 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
3071 __gen_field(values
->LineStipplePattern
, 0, 15) |
3075 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
3076 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
3081 #define GEN8_3DSTATE_MONOFILTER_SIZE_length 0x00000002
3082 #define GEN8_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
3083 #define GEN8_3DSTATE_MONOFILTER_SIZE_header \
3085 .CommandSubType = 3, \
3086 ._3DCommandOpcode = 1, \
3087 ._3DCommandSubOpcode = 17, \
3090 struct GEN8_3DSTATE_MONOFILTER_SIZE
{
3091 uint32_t CommandType
;
3092 uint32_t CommandSubType
;
3093 uint32_t _3DCommandOpcode
;
3094 uint32_t _3DCommandSubOpcode
;
3095 uint32_t DwordLength
;
3096 uint32_t MonochromeFilterWidth
;
3097 uint32_t MonochromeFilterHeight
;
3101 GEN8_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
3102 const struct GEN8_3DSTATE_MONOFILTER_SIZE
* restrict values
)
3104 uint32_t *dw
= (uint32_t * restrict
) dst
;
3107 __gen_field(values
->CommandType
, 29, 31) |
3108 __gen_field(values
->CommandSubType
, 27, 28) |
3109 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3110 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3111 __gen_field(values
->DwordLength
, 0, 7) |
3115 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
3116 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
3121 #define GEN8_3DSTATE_MULTISAMPLE_length 0x00000002
3122 #define GEN8_3DSTATE_MULTISAMPLE_length_bias 0x00000002
3123 #define GEN8_3DSTATE_MULTISAMPLE_header \
3125 .CommandSubType = 3, \
3126 ._3DCommandOpcode = 0, \
3127 ._3DCommandSubOpcode = 13, \
3130 struct GEN8_3DSTATE_MULTISAMPLE
{
3131 uint32_t CommandType
;
3132 uint32_t CommandSubType
;
3133 uint32_t _3DCommandOpcode
;
3134 uint32_t _3DCommandSubOpcode
;
3135 uint32_t DwordLength
;
3136 uint32_t PixelPositionOffsetEnable
;
3139 uint32_t PixelLocation
;
3140 uint32_t NumberofMultisamples
;
3144 GEN8_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3145 const struct GEN8_3DSTATE_MULTISAMPLE
* restrict values
)
3147 uint32_t *dw
= (uint32_t * restrict
) dst
;
3150 __gen_field(values
->CommandType
, 29, 31) |
3151 __gen_field(values
->CommandSubType
, 27, 28) |
3152 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3153 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3154 __gen_field(values
->DwordLength
, 0, 7) |
3158 __gen_field(values
->PixelPositionOffsetEnable
, 5, 5) |
3159 __gen_field(values
->PixelLocation
, 4, 4) |
3160 __gen_field(values
->NumberofMultisamples
, 1, 3) |
3165 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
3166 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
3167 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_header \
3169 .CommandSubType = 3, \
3170 ._3DCommandOpcode = 1, \
3171 ._3DCommandSubOpcode = 6, \
3174 struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET
{
3175 uint32_t CommandType
;
3176 uint32_t CommandSubType
;
3177 uint32_t _3DCommandOpcode
;
3178 uint32_t _3DCommandSubOpcode
;
3179 uint32_t DwordLength
;
3180 uint32_t PolygonStippleXOffset
;
3181 uint32_t PolygonStippleYOffset
;
3185 GEN8_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
3186 const struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
3188 uint32_t *dw
= (uint32_t * restrict
) dst
;
3191 __gen_field(values
->CommandType
, 29, 31) |
3192 __gen_field(values
->CommandSubType
, 27, 28) |
3193 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3194 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3195 __gen_field(values
->DwordLength
, 0, 7) |
3199 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
3200 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
3205 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
3206 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
3207 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_header\
3209 .CommandSubType = 3, \
3210 ._3DCommandOpcode = 1, \
3211 ._3DCommandSubOpcode = 7, \
3214 struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN
{
3215 uint32_t CommandType
;
3216 uint32_t CommandSubType
;
3217 uint32_t _3DCommandOpcode
;
3218 uint32_t _3DCommandSubOpcode
;
3219 uint32_t DwordLength
;
3220 uint32_t PatternRow
;
3224 GEN8_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
3225 const struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
3227 uint32_t *dw
= (uint32_t * restrict
) dst
;
3230 __gen_field(values
->CommandType
, 29, 31) |
3231 __gen_field(values
->CommandSubType
, 27, 28) |
3232 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3233 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3234 __gen_field(values
->DwordLength
, 0, 7) |
3238 __gen_field(values
->PatternRow
, 0, 31) |
3243 #define GEN8_3DSTATE_PS_length 0x0000000c
3244 #define GEN8_3DSTATE_PS_length_bias 0x00000002
3245 #define GEN8_3DSTATE_PS_header \
3247 .CommandSubType = 3, \
3248 ._3DCommandOpcode = 0, \
3249 ._3DCommandSubOpcode = 32, \
3252 struct GEN8_3DSTATE_PS
{
3253 uint32_t CommandType
;
3254 uint32_t CommandSubType
;
3255 uint32_t _3DCommandOpcode
;
3256 uint32_t _3DCommandSubOpcode
;
3257 uint32_t DwordLength
;
3258 uint64_t KernelStartPointer0
;
3261 uint32_t SingleProgramFlow
;
3264 uint32_t VectorMaskEnable
;
3265 #define NoSamplers 0
3266 #define _14Samplers 1
3267 #define _58Samplers 2
3268 #define _912Samplers 3
3269 #define _1316Samplers 4
3270 uint32_t SamplerCount
;
3271 #define FlushedtoZero 0
3273 uint32_t SinglePrecisionDenormalMode
;
3274 uint32_t BindingTableEntryCount
;
3277 uint32_t ThreadDispatchPriority
;
3280 uint32_t FloatingPointMode
;
3285 uint32_t RoundingMode
;
3286 bool IllegalOpcodeExceptionEnable
;
3287 bool MaskStackExceptionEnable
;
3288 bool SoftwareExceptionEnable
;
3289 uint64_t ScratchSpaceBasePointer
;
3290 uint32_t PerThreadScratchSpace
;
3291 uint32_t MaximumNumberofThreadsPerPSD
;
3292 bool PushConstantEnable
;
3293 bool RenderTargetFastClearEnable
;
3294 bool RenderTargetResolveEnable
;
3295 #define POSOFFSET_NONE 0
3296 #define POSOFFSET_CENTROID 2
3297 #define POSOFFSET_SAMPLE 3
3298 uint32_t PositionXYOffsetSelect
;
3299 bool _32PixelDispatchEnable
;
3300 bool _16PixelDispatchEnable
;
3301 bool _8PixelDispatchEnable
;
3302 uint32_t DispatchGRFStartRegisterForConstantSetupData0
;
3303 uint32_t DispatchGRFStartRegisterForConstantSetupData1
;
3304 uint32_t DispatchGRFStartRegisterForConstantSetupData2
;
3305 uint64_t KernelStartPointer1
;
3306 uint64_t KernelStartPointer2
;
3310 GEN8_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3311 const struct GEN8_3DSTATE_PS
* restrict values
)
3313 uint32_t *dw
= (uint32_t * restrict
) dst
;
3316 __gen_field(values
->CommandType
, 29, 31) |
3317 __gen_field(values
->CommandSubType
, 27, 28) |
3318 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3319 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3320 __gen_field(values
->DwordLength
, 0, 7) |
3324 __gen_offset(values
->KernelStartPointer0
, 6, 63) |
3331 __gen_field(values
->SingleProgramFlow
, 31, 31) |
3332 __gen_field(values
->VectorMaskEnable
, 30, 30) |
3333 __gen_field(values
->SamplerCount
, 27, 29) |
3334 __gen_field(values
->SinglePrecisionDenormalMode
, 26, 26) |
3335 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3336 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
3337 __gen_field(values
->FloatingPointMode
, 16, 16) |
3338 __gen_field(values
->RoundingMode
, 14, 15) |
3339 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3340 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
3341 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3345 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
3346 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3353 __gen_field(values
->MaximumNumberofThreadsPerPSD
, 23, 31) |
3354 __gen_field(values
->PushConstantEnable
, 11, 11) |
3355 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
3356 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
3357 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
3358 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
3359 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
3360 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
3364 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData0
, 16, 22) |
3365 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData1
, 8, 14) |
3366 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData2
, 0, 6) |
3370 __gen_offset(values
->KernelStartPointer1
, 6, 63) |
3377 __gen_offset(values
->KernelStartPointer2
, 6, 63) |
3381 dw
[11] = qw10
>> 32;
3385 #define GEN8_3DSTATE_PS_BLEND_length 0x00000002
3386 #define GEN8_3DSTATE_PS_BLEND_length_bias 0x00000002
3387 #define GEN8_3DSTATE_PS_BLEND_header \
3389 .CommandSubType = 3, \
3390 ._3DCommandOpcode = 0, \
3391 ._3DCommandSubOpcode = 77, \
3394 struct GEN8_3DSTATE_PS_BLEND
{
3395 uint32_t CommandType
;
3396 uint32_t CommandSubType
;
3397 uint32_t _3DCommandOpcode
;
3398 uint32_t _3DCommandSubOpcode
;
3399 uint32_t DwordLength
;
3400 bool AlphaToCoverageEnable
;
3401 bool HasWriteableRT
;
3402 bool ColorBufferBlendEnable
;
3403 uint32_t SourceAlphaBlendFactor
;
3404 uint32_t DestinationAlphaBlendFactor
;
3405 uint32_t SourceBlendFactor
;
3406 uint32_t DestinationBlendFactor
;
3407 bool AlphaTestEnable
;
3408 bool IndependentAlphaBlendEnable
;
3412 GEN8_3DSTATE_PS_BLEND_pack(__gen_user_data
*data
, void * restrict dst
,
3413 const struct GEN8_3DSTATE_PS_BLEND
* restrict values
)
3415 uint32_t *dw
= (uint32_t * restrict
) dst
;
3418 __gen_field(values
->CommandType
, 29, 31) |
3419 __gen_field(values
->CommandSubType
, 27, 28) |
3420 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3421 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3422 __gen_field(values
->DwordLength
, 0, 7) |
3426 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
3427 __gen_field(values
->HasWriteableRT
, 30, 30) |
3428 __gen_field(values
->ColorBufferBlendEnable
, 29, 29) |
3429 __gen_field(values
->SourceAlphaBlendFactor
, 24, 28) |
3430 __gen_field(values
->DestinationAlphaBlendFactor
, 19, 23) |
3431 __gen_field(values
->SourceBlendFactor
, 14, 18) |
3432 __gen_field(values
->DestinationBlendFactor
, 9, 13) |
3433 __gen_field(values
->AlphaTestEnable
, 8, 8) |
3434 __gen_field(values
->IndependentAlphaBlendEnable
, 7, 7) |
3439 #define GEN8_3DSTATE_PS_EXTRA_length 0x00000002
3440 #define GEN8_3DSTATE_PS_EXTRA_length_bias 0x00000002
3441 #define GEN8_3DSTATE_PS_EXTRA_header \
3443 .CommandSubType = 3, \
3444 ._3DCommandOpcode = 0, \
3445 ._3DCommandSubOpcode = 79, \
3448 struct GEN8_3DSTATE_PS_EXTRA
{
3449 uint32_t CommandType
;
3450 uint32_t CommandSubType
;
3451 uint32_t _3DCommandOpcode
;
3452 uint32_t _3DCommandSubOpcode
;
3453 uint32_t DwordLength
;
3454 bool PixelShaderValid
;
3455 bool PixelShaderDoesnotwritetoRT
;
3456 bool oMaskPresenttoRenderTarget
;
3457 bool PixelShaderKillsPixel
;
3458 #define PSCDEPTH_OFF 0
3459 #define PSCDEPTH_ON 1
3460 #define PSCDEPTH_ON_GE 2
3461 #define PSCDEPTH_ON_LE 3
3462 uint32_t PixelShaderComputedDepthMode
;
3463 bool ForceComputedDepth
;
3464 bool PixelShaderUsesSourceDepth
;
3465 bool PixelShaderUsesSourceW
;
3467 bool AttributeEnable
;
3468 bool PixelShaderDisablesAlphaToCoverage
;
3469 bool PixelShaderIsPerSample
;
3470 bool PixelShaderHasUAV
;
3471 bool PixelShaderUsesInputCoverageMask
;
3475 GEN8_3DSTATE_PS_EXTRA_pack(__gen_user_data
*data
, void * restrict dst
,
3476 const struct GEN8_3DSTATE_PS_EXTRA
* restrict values
)
3478 uint32_t *dw
= (uint32_t * restrict
) dst
;
3481 __gen_field(values
->CommandType
, 29, 31) |
3482 __gen_field(values
->CommandSubType
, 27, 28) |
3483 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3484 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3485 __gen_field(values
->DwordLength
, 0, 7) |
3489 __gen_field(values
->PixelShaderValid
, 31, 31) |
3490 __gen_field(values
->PixelShaderDoesnotwritetoRT
, 30, 30) |
3491 __gen_field(values
->oMaskPresenttoRenderTarget
, 29, 29) |
3492 __gen_field(values
->PixelShaderKillsPixel
, 28, 28) |
3493 __gen_field(values
->PixelShaderComputedDepthMode
, 26, 27) |
3494 __gen_field(values
->ForceComputedDepth
, 25, 25) |
3495 __gen_field(values
->PixelShaderUsesSourceDepth
, 24, 24) |
3496 __gen_field(values
->PixelShaderUsesSourceW
, 23, 23) |
3497 __gen_field(values
->Removed
, 17, 17) |
3498 __gen_field(values
->AttributeEnable
, 8, 8) |
3499 __gen_field(values
->PixelShaderDisablesAlphaToCoverage
, 7, 7) |
3500 __gen_field(values
->PixelShaderIsPerSample
, 6, 6) |
3501 __gen_field(values
->PixelShaderHasUAV
, 2, 2) |
3502 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 1, 1) |
3507 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
3508 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
3509 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
3511 .CommandSubType = 3, \
3512 ._3DCommandOpcode = 1, \
3513 ._3DCommandSubOpcode = 20, \
3516 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
3517 uint32_t CommandType
;
3518 uint32_t CommandSubType
;
3519 uint32_t _3DCommandOpcode
;
3520 uint32_t _3DCommandSubOpcode
;
3521 uint32_t DwordLength
;
3522 uint32_t ConstantBufferOffset
;
3523 uint32_t ConstantBufferSize
;
3527 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3528 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
3530 uint32_t *dw
= (uint32_t * restrict
) dst
;
3533 __gen_field(values
->CommandType
, 29, 31) |
3534 __gen_field(values
->CommandSubType
, 27, 28) |
3535 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3536 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3537 __gen_field(values
->DwordLength
, 0, 7) |
3541 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3542 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3547 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
3548 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
3549 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
3551 .CommandSubType = 3, \
3552 ._3DCommandOpcode = 1, \
3553 ._3DCommandSubOpcode = 21, \
3556 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
3557 uint32_t CommandType
;
3558 uint32_t CommandSubType
;
3559 uint32_t _3DCommandOpcode
;
3560 uint32_t _3DCommandSubOpcode
;
3561 uint32_t DwordLength
;
3562 uint32_t ConstantBufferOffset
;
3563 uint32_t ConstantBufferSize
;
3567 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3568 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
3570 uint32_t *dw
= (uint32_t * restrict
) dst
;
3573 __gen_field(values
->CommandType
, 29, 31) |
3574 __gen_field(values
->CommandSubType
, 27, 28) |
3575 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3576 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3577 __gen_field(values
->DwordLength
, 0, 7) |
3581 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3582 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3587 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
3588 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
3589 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
3591 .CommandSubType = 3, \
3592 ._3DCommandOpcode = 1, \
3593 ._3DCommandSubOpcode = 19, \
3596 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
3597 uint32_t CommandType
;
3598 uint32_t CommandSubType
;
3599 uint32_t _3DCommandOpcode
;
3600 uint32_t _3DCommandSubOpcode
;
3601 uint32_t DwordLength
;
3602 uint32_t ConstantBufferOffset
;
3603 uint32_t ConstantBufferSize
;
3607 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3608 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
3610 uint32_t *dw
= (uint32_t * restrict
) dst
;
3613 __gen_field(values
->CommandType
, 29, 31) |
3614 __gen_field(values
->CommandSubType
, 27, 28) |
3615 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3616 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3617 __gen_field(values
->DwordLength
, 0, 7) |
3621 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3622 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3627 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
3628 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
3629 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
3631 .CommandSubType = 3, \
3632 ._3DCommandOpcode = 1, \
3633 ._3DCommandSubOpcode = 22, \
3636 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
3637 uint32_t CommandType
;
3638 uint32_t CommandSubType
;
3639 uint32_t _3DCommandOpcode
;
3640 uint32_t _3DCommandSubOpcode
;
3641 uint32_t DwordLength
;
3642 uint32_t ConstantBufferOffset
;
3643 uint32_t ConstantBufferSize
;
3647 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3648 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
3650 uint32_t *dw
= (uint32_t * restrict
) dst
;
3653 __gen_field(values
->CommandType
, 29, 31) |
3654 __gen_field(values
->CommandSubType
, 27, 28) |
3655 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3656 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3657 __gen_field(values
->DwordLength
, 0, 7) |
3661 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3662 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3667 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
3668 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
3669 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
3671 .CommandSubType = 3, \
3672 ._3DCommandOpcode = 1, \
3673 ._3DCommandSubOpcode = 18, \
3676 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
3677 uint32_t CommandType
;
3678 uint32_t CommandSubType
;
3679 uint32_t _3DCommandOpcode
;
3680 uint32_t _3DCommandSubOpcode
;
3681 uint32_t DwordLength
;
3682 uint32_t ConstantBufferOffset
;
3683 uint32_t ConstantBufferSize
;
3687 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3688 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
3690 uint32_t *dw
= (uint32_t * restrict
) dst
;
3693 __gen_field(values
->CommandType
, 29, 31) |
3694 __gen_field(values
->CommandSubType
, 27, 28) |
3695 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3696 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3697 __gen_field(values
->DwordLength
, 0, 7) |
3701 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3702 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3707 #define GEN8_3DSTATE_RASTER_length 0x00000005
3708 #define GEN8_3DSTATE_RASTER_length_bias 0x00000002
3709 #define GEN8_3DSTATE_RASTER_header \
3711 .CommandSubType = 3, \
3712 ._3DCommandOpcode = 0, \
3713 ._3DCommandSubOpcode = 80, \
3716 struct GEN8_3DSTATE_RASTER
{
3717 uint32_t CommandType
;
3718 uint32_t CommandSubType
;
3719 uint32_t _3DCommandOpcode
;
3720 uint32_t _3DCommandSubOpcode
;
3721 uint32_t DwordLength
;
3727 #define CounterClockwise 1
3728 uint32_t FrontWinding
;
3729 #define FSC_NUMRASTSAMPLES_0 0
3730 #define FSC_NUMRASTSAMPLES_1 1
3731 #define FSC_NUMRASTSAMPLES_2 2
3732 #define FSC_NUMRASTSAMPLES_4 3
3733 #define FSC_NUMRASTSAMPLES_8 4
3734 #define FSC_NUMRASTSAMPLES_16 5
3735 uint32_t ForcedSampleCount
;
3736 #define CULLMODE_BOTH 0
3737 #define CULLMODE_NONE 1
3738 #define CULLMODE_FRONT 2
3739 #define CULLMODE_BACK 3
3743 uint32_t ForceMultisampling
;
3744 bool SmoothPointEnable
;
3745 bool DXMultisampleRasterizationEnable
;
3746 #define MSRASTMODE_OFF_PIXEL 0
3747 #define MSRASTMODE_OFF_PATTERN 1
3748 #define MSRASTMODE_ON_PIXEL 2
3749 #define MSRASTMODE_ON_PATTERN 3
3750 uint32_t DXMultisampleRasterizationMode
;
3751 bool GlobalDepthOffsetEnableSolid
;
3752 bool GlobalDepthOffsetEnableWireframe
;
3753 bool GlobalDepthOffsetEnablePoint
;
3754 #define RASTER_SOLID 0
3755 #define RASTER_WIREFRAME 1
3756 #define RASTER_POINT 2
3757 uint32_t FrontFaceFillMode
;
3758 #define RASTER_SOLID 0
3759 #define RASTER_WIREFRAME 1
3760 #define RASTER_POINT 2
3761 uint32_t BackFaceFillMode
;
3762 bool AntialiasingEnable
;
3763 bool ScissorRectangleEnable
;
3764 bool ViewportZClipTestEnable
;
3765 float GlobalDepthOffsetConstant
;
3766 float GlobalDepthOffsetScale
;
3767 float GlobalDepthOffsetClamp
;
3771 GEN8_3DSTATE_RASTER_pack(__gen_user_data
*data
, void * restrict dst
,
3772 const struct GEN8_3DSTATE_RASTER
* restrict values
)
3774 uint32_t *dw
= (uint32_t * restrict
) dst
;
3777 __gen_field(values
->CommandType
, 29, 31) |
3778 __gen_field(values
->CommandSubType
, 27, 28) |
3779 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3780 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3781 __gen_field(values
->DwordLength
, 0, 7) |
3785 __gen_field(values
->APIMode
, 22, 23) |
3786 __gen_field(values
->FrontWinding
, 21, 21) |
3787 __gen_field(values
->ForcedSampleCount
, 18, 20) |
3788 __gen_field(values
->CullMode
, 16, 17) |
3789 __gen_field(values
->ForceMultisampling
, 14, 14) |
3790 __gen_field(values
->SmoothPointEnable
, 13, 13) |
3791 __gen_field(values
->DXMultisampleRasterizationEnable
, 12, 12) |
3792 __gen_field(values
->DXMultisampleRasterizationMode
, 10, 11) |
3793 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3794 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3795 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3796 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3797 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3798 __gen_field(values
->AntialiasingEnable
, 2, 2) |
3799 __gen_field(values
->ScissorRectangleEnable
, 1, 1) |
3800 __gen_field(values
->ViewportZClipTestEnable
, 0, 0) |
3804 __gen_float(values
->GlobalDepthOffsetConstant
) |
3808 __gen_float(values
->GlobalDepthOffsetScale
) |
3812 __gen_float(values
->GlobalDepthOffsetClamp
) |
3817 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
3818 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
3820 .CommandSubType = 3, \
3821 ._3DCommandOpcode = 1, \
3822 ._3DCommandSubOpcode = 2
3824 struct GEN8_PALETTE_ENTRY
{
3832 GEN8_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3833 const struct GEN8_PALETTE_ENTRY
* restrict values
)
3835 uint32_t *dw
= (uint32_t * restrict
) dst
;
3838 __gen_field(values
->Alpha
, 24, 31) |
3839 __gen_field(values
->Red
, 16, 23) |
3840 __gen_field(values
->Green
, 8, 15) |
3841 __gen_field(values
->Blue
, 0, 7) |
3846 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0
{
3847 uint32_t CommandType
;
3848 uint32_t CommandSubType
;
3849 uint32_t _3DCommandOpcode
;
3850 uint32_t _3DCommandSubOpcode
;
3851 uint32_t DwordLength
;
3852 /* variable length fields follow */
3856 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
3857 const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
3859 uint32_t *dw
= (uint32_t * restrict
) dst
;
3862 __gen_field(values
->CommandType
, 29, 31) |
3863 __gen_field(values
->CommandSubType
, 27, 28) |
3864 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3865 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3866 __gen_field(values
->DwordLength
, 0, 7) |
3869 /* variable length fields follow */
3872 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
3873 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
3875 .CommandSubType = 3, \
3876 ._3DCommandOpcode = 1, \
3877 ._3DCommandSubOpcode = 12
3879 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1
{
3880 uint32_t CommandType
;
3881 uint32_t CommandSubType
;
3882 uint32_t _3DCommandOpcode
;
3883 uint32_t _3DCommandSubOpcode
;
3884 uint32_t DwordLength
;
3885 /* variable length fields follow */
3889 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
3890 const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
3892 uint32_t *dw
= (uint32_t * restrict
) dst
;
3895 __gen_field(values
->CommandType
, 29, 31) |
3896 __gen_field(values
->CommandSubType
, 27, 28) |
3897 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3898 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3899 __gen_field(values
->DwordLength
, 0, 7) |
3902 /* variable length fields follow */
3905 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
3906 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
3907 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
3909 .CommandSubType = 3, \
3910 ._3DCommandOpcode = 0, \
3911 ._3DCommandSubOpcode = 45, \
3914 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
3915 uint32_t CommandType
;
3916 uint32_t CommandSubType
;
3917 uint32_t _3DCommandOpcode
;
3918 uint32_t _3DCommandSubOpcode
;
3919 uint32_t DwordLength
;
3920 uint32_t PointertoDSSamplerState
;
3924 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3925 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
3927 uint32_t *dw
= (uint32_t * restrict
) dst
;
3930 __gen_field(values
->CommandType
, 29, 31) |
3931 __gen_field(values
->CommandSubType
, 27, 28) |
3932 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3933 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3934 __gen_field(values
->DwordLength
, 0, 7) |
3938 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
3943 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
3944 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
3945 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
3947 .CommandSubType = 3, \
3948 ._3DCommandOpcode = 0, \
3949 ._3DCommandSubOpcode = 46, \
3952 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
3953 uint32_t CommandType
;
3954 uint32_t CommandSubType
;
3955 uint32_t _3DCommandOpcode
;
3956 uint32_t _3DCommandSubOpcode
;
3957 uint32_t DwordLength
;
3958 uint32_t PointertoGSSamplerState
;
3962 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3963 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
3965 uint32_t *dw
= (uint32_t * restrict
) dst
;
3968 __gen_field(values
->CommandType
, 29, 31) |
3969 __gen_field(values
->CommandSubType
, 27, 28) |
3970 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3971 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3972 __gen_field(values
->DwordLength
, 0, 7) |
3976 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
3981 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
3982 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
3983 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
3985 .CommandSubType = 3, \
3986 ._3DCommandOpcode = 0, \
3987 ._3DCommandSubOpcode = 44, \
3990 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
3991 uint32_t CommandType
;
3992 uint32_t CommandSubType
;
3993 uint32_t _3DCommandOpcode
;
3994 uint32_t _3DCommandSubOpcode
;
3995 uint32_t DwordLength
;
3996 uint32_t PointertoHSSamplerState
;
4000 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
4001 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
4003 uint32_t *dw
= (uint32_t * restrict
) dst
;
4006 __gen_field(values
->CommandType
, 29, 31) |
4007 __gen_field(values
->CommandSubType
, 27, 28) |
4008 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4009 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4010 __gen_field(values
->DwordLength
, 0, 7) |
4014 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
4019 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
4020 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
4021 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
4023 .CommandSubType = 3, \
4024 ._3DCommandOpcode = 0, \
4025 ._3DCommandSubOpcode = 47, \
4028 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
4029 uint32_t CommandType
;
4030 uint32_t CommandSubType
;
4031 uint32_t _3DCommandOpcode
;
4032 uint32_t _3DCommandSubOpcode
;
4033 uint32_t DwordLength
;
4034 uint32_t PointertoPSSamplerState
;
4038 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
4039 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
4041 uint32_t *dw
= (uint32_t * restrict
) dst
;
4044 __gen_field(values
->CommandType
, 29, 31) |
4045 __gen_field(values
->CommandSubType
, 27, 28) |
4046 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4047 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4048 __gen_field(values
->DwordLength
, 0, 7) |
4052 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
4057 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
4058 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
4059 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
4061 .CommandSubType = 3, \
4062 ._3DCommandOpcode = 0, \
4063 ._3DCommandSubOpcode = 43, \
4066 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
4067 uint32_t CommandType
;
4068 uint32_t CommandSubType
;
4069 uint32_t _3DCommandOpcode
;
4070 uint32_t _3DCommandSubOpcode
;
4071 uint32_t DwordLength
;
4072 uint32_t PointertoVSSamplerState
;
4076 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4077 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
4079 uint32_t *dw
= (uint32_t * restrict
) dst
;
4082 __gen_field(values
->CommandType
, 29, 31) |
4083 __gen_field(values
->CommandSubType
, 27, 28) |
4084 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4085 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4086 __gen_field(values
->DwordLength
, 0, 7) |
4090 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
4095 #define GEN8_3DSTATE_SAMPLE_MASK_length 0x00000002
4096 #define GEN8_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
4097 #define GEN8_3DSTATE_SAMPLE_MASK_header \
4099 .CommandSubType = 3, \
4100 ._3DCommandOpcode = 0, \
4101 ._3DCommandSubOpcode = 24, \
4104 struct GEN8_3DSTATE_SAMPLE_MASK
{
4105 uint32_t CommandType
;
4106 uint32_t CommandSubType
;
4107 uint32_t _3DCommandOpcode
;
4108 uint32_t _3DCommandSubOpcode
;
4109 uint32_t DwordLength
;
4110 uint32_t SampleMask
;
4114 GEN8_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
4115 const struct GEN8_3DSTATE_SAMPLE_MASK
* restrict values
)
4117 uint32_t *dw
= (uint32_t * restrict
) dst
;
4120 __gen_field(values
->CommandType
, 29, 31) |
4121 __gen_field(values
->CommandSubType
, 27, 28) |
4122 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4123 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4124 __gen_field(values
->DwordLength
, 0, 7) |
4128 __gen_field(values
->SampleMask
, 0, 15) |
4133 #define GEN8_3DSTATE_SAMPLE_PATTERN_length 0x00000009
4134 #define GEN8_3DSTATE_SAMPLE_PATTERN_length_bias 0x00000002
4135 #define GEN8_3DSTATE_SAMPLE_PATTERN_header \
4137 .CommandSubType = 3, \
4138 ._3DCommandOpcode = 1, \
4139 ._3DCommandSubOpcode = 28, \
4142 struct GEN8_3DSTATE_SAMPLE_PATTERN
{
4143 uint32_t CommandType
;
4144 uint32_t CommandSubType
;
4145 uint32_t _3DCommandOpcode
;
4146 uint32_t _3DCommandSubOpcode
;
4147 uint32_t DwordLength
;
4148 float _8xSample7XOffset
;
4149 float _8xSample7YOffset
;
4150 float _8xSample6XOffset
;
4151 float _8xSample6YOffset
;
4152 float _8xSample5XOffset
;
4153 float _8xSample5YOffset
;
4154 float _8xSample4XOffset
;
4155 float _8xSample4YOffset
;
4156 float _8xSample3XOffset
;
4157 float _8xSample3YOffset
;
4158 float _8xSample2XOffset
;
4159 float _8xSample2YOffset
;
4160 float _8xSample1XOffset
;
4161 float _8xSample1YOffset
;
4162 float _8xSample0XOffset
;
4163 float _8xSample0YOffset
;
4164 float _4xSample3XOffset
;
4165 float _4xSample3YOffset
;
4166 float _4xSample2XOffset
;
4167 float _4xSample2YOffset
;
4168 float _4xSample1XOffset
;
4169 float _4xSample1YOffset
;
4170 float _4xSample0XOffset
;
4171 float _4xSample0YOffset
;
4172 float _1xSample0XOffset
;
4173 float _1xSample0YOffset
;
4174 float _2xSample1XOffset
;
4175 float _2xSample1YOffset
;
4176 float _2xSample0XOffset
;
4177 float _2xSample0YOffset
;
4181 GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
4182 const struct GEN8_3DSTATE_SAMPLE_PATTERN
* restrict values
)
4184 uint32_t *dw
= (uint32_t * restrict
) dst
;
4187 __gen_field(values
->CommandType
, 29, 31) |
4188 __gen_field(values
->CommandSubType
, 27, 28) |
4189 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4190 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4191 __gen_field(values
->DwordLength
, 0, 7) |
4198 __gen_field(values
->_8xSample7XOffset
* (1 << 4), 28, 31) |
4199 __gen_field(values
->_8xSample7YOffset
* (1 << 4), 24, 27) |
4200 __gen_field(values
->_8xSample6XOffset
* (1 << 4), 20, 23) |
4201 __gen_field(values
->_8xSample6YOffset
* (1 << 4), 16, 19) |
4202 __gen_field(values
->_8xSample5XOffset
* (1 << 4), 12, 15) |
4203 __gen_field(values
->_8xSample5YOffset
* (1 << 4), 8, 11) |
4204 __gen_field(values
->_8xSample4XOffset
* (1 << 4), 4, 7) |
4205 __gen_field(values
->_8xSample4YOffset
* (1 << 4), 0, 3) |
4209 __gen_field(values
->_8xSample3XOffset
* (1 << 4), 28, 31) |
4210 __gen_field(values
->_8xSample3YOffset
* (1 << 4), 24, 27) |
4211 __gen_field(values
->_8xSample2XOffset
* (1 << 4), 20, 23) |
4212 __gen_field(values
->_8xSample2YOffset
* (1 << 4), 16, 19) |
4213 __gen_field(values
->_8xSample1XOffset
* (1 << 4), 12, 15) |
4214 __gen_field(values
->_8xSample1YOffset
* (1 << 4), 8, 11) |
4215 __gen_field(values
->_8xSample0XOffset
* (1 << 4), 4, 7) |
4216 __gen_field(values
->_8xSample0YOffset
* (1 << 4), 0, 3) |
4220 __gen_field(values
->_4xSample3XOffset
* (1 << 4), 28, 31) |
4221 __gen_field(values
->_4xSample3YOffset
* (1 << 4), 24, 27) |
4222 __gen_field(values
->_4xSample2XOffset
* (1 << 4), 20, 23) |
4223 __gen_field(values
->_4xSample2YOffset
* (1 << 4), 16, 19) |
4224 __gen_field(values
->_4xSample1XOffset
* (1 << 4), 12, 15) |
4225 __gen_field(values
->_4xSample1YOffset
* (1 << 4), 8, 11) |
4226 __gen_field(values
->_4xSample0XOffset
* (1 << 4), 4, 7) |
4227 __gen_field(values
->_4xSample0YOffset
* (1 << 4), 0, 3) |
4231 __gen_field(values
->_1xSample0XOffset
* (1 << 4), 20, 23) |
4232 __gen_field(values
->_1xSample0YOffset
* (1 << 4), 16, 19) |
4233 __gen_field(values
->_2xSample1XOffset
* (1 << 4), 12, 15) |
4234 __gen_field(values
->_2xSample1YOffset
* (1 << 4), 8, 11) |
4235 __gen_field(values
->_2xSample0XOffset
* (1 << 4), 4, 7) |
4236 __gen_field(values
->_2xSample0YOffset
* (1 << 4), 0, 3) |
4241 #define GEN8_3DSTATE_SBE_length 0x00000004
4242 #define GEN8_3DSTATE_SBE_length_bias 0x00000002
4243 #define GEN8_3DSTATE_SBE_header \
4245 .CommandSubType = 3, \
4246 ._3DCommandOpcode = 0, \
4247 ._3DCommandSubOpcode = 31, \
4250 struct GEN8_3DSTATE_SBE
{
4251 uint32_t CommandType
;
4252 uint32_t CommandSubType
;
4253 uint32_t _3DCommandOpcode
;
4254 uint32_t _3DCommandSubOpcode
;
4255 uint32_t DwordLength
;
4256 bool ForceVertexURBEntryReadLength
;
4257 bool ForceVertexURBEntryReadOffset
;
4258 uint32_t NumberofSFOutputAttributes
;
4259 bool AttributeSwizzleEnable
;
4262 uint32_t PointSpriteTextureCoordinateOrigin
;
4263 bool PrimitiveIDOverrideComponentW
;
4264 bool PrimitiveIDOverrideComponentZ
;
4265 bool PrimitiveIDOverrideComponentY
;
4266 bool PrimitiveIDOverrideComponentX
;
4267 uint32_t VertexURBEntryReadLength
;
4268 uint32_t VertexURBEntryReadOffset
;
4269 uint32_t PrimitiveIDOverrideAttributeSelect
;
4270 uint32_t PointSpriteTextureCoordinateEnable
;
4271 uint32_t ConstantInterpolationEnable
;
4275 GEN8_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
4276 const struct GEN8_3DSTATE_SBE
* restrict values
)
4278 uint32_t *dw
= (uint32_t * restrict
) dst
;
4281 __gen_field(values
->CommandType
, 29, 31) |
4282 __gen_field(values
->CommandSubType
, 27, 28) |
4283 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4284 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4285 __gen_field(values
->DwordLength
, 0, 7) |
4289 __gen_field(values
->ForceVertexURBEntryReadLength
, 29, 29) |
4290 __gen_field(values
->ForceVertexURBEntryReadOffset
, 28, 28) |
4291 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
4292 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
4293 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
4294 __gen_field(values
->PrimitiveIDOverrideComponentW
, 19, 19) |
4295 __gen_field(values
->PrimitiveIDOverrideComponentZ
, 18, 18) |
4296 __gen_field(values
->PrimitiveIDOverrideComponentY
, 17, 17) |
4297 __gen_field(values
->PrimitiveIDOverrideComponentX
, 16, 16) |
4298 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
4299 __gen_field(values
->VertexURBEntryReadOffset
, 5, 10) |
4300 __gen_field(values
->PrimitiveIDOverrideAttributeSelect
, 0, 4) |
4304 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
4308 __gen_field(values
->ConstantInterpolationEnable
, 0, 31) |
4313 #define GEN8_3DSTATE_SBE_SWIZ_length 0x0000000b
4314 #define GEN8_3DSTATE_SBE_SWIZ_length_bias 0x00000002
4315 #define GEN8_3DSTATE_SBE_SWIZ_header \
4317 .CommandSubType = 3, \
4318 ._3DCommandOpcode = 0, \
4319 ._3DCommandSubOpcode = 81, \
4322 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL
{
4323 bool ComponentOverrideW
;
4324 bool ComponentOverrideZ
;
4325 bool ComponentOverrideY
;
4326 bool ComponentOverrideX
;
4327 uint32_t SwizzleControlMode
;
4328 #define CONST_0000 0
4329 #define CONST_0001_FLOAT 1
4330 #define CONST_1111_FLOAT 2
4332 uint32_t ConstantSource
;
4334 #define INPUTATTR_FACING 1
4335 #define INPUTATTR_W 2
4336 #define INPUTATTR_FACING_W 3
4337 uint32_t SwizzleSelect
;
4338 uint32_t SourceAttribute
;
4342 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(__gen_user_data
*data
, void * restrict dst
,
4343 const struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL
* restrict values
)
4345 uint32_t *dw
= (uint32_t * restrict
) dst
;
4348 __gen_field(values
->ComponentOverrideW
, 15, 15) |
4349 __gen_field(values
->ComponentOverrideZ
, 14, 14) |
4350 __gen_field(values
->ComponentOverrideY
, 13, 13) |
4351 __gen_field(values
->ComponentOverrideX
, 12, 12) |
4352 __gen_field(values
->SwizzleControlMode
, 11, 11) |
4353 __gen_field(values
->ConstantSource
, 9, 10) |
4354 __gen_field(values
->SwizzleSelect
, 6, 7) |
4355 __gen_field(values
->SourceAttribute
, 0, 4) |
4360 struct GEN8_3DSTATE_SBE_SWIZ
{
4361 uint32_t CommandType
;
4362 uint32_t CommandSubType
;
4363 uint32_t _3DCommandOpcode
;
4364 uint32_t _3DCommandSubOpcode
;
4365 uint32_t DwordLength
;
4366 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL Attribute
;
4367 uint32_t Attribute15WrapShortestEnables
;
4368 uint32_t Attribute14WrapShortestEnables
;
4369 uint32_t Attribute13WrapShortestEnables
;
4370 uint32_t Attribute12WrapShortestEnables
;
4371 uint32_t Attribute11WrapShortestEnables
;
4372 uint32_t Attribute10WrapShortestEnables
;
4373 uint32_t Attribute09WrapShortestEnables
;
4374 uint32_t Attribute08WrapShortestEnables
;
4375 uint32_t Attribute07WrapShortestEnables
;
4376 uint32_t Attribute06WrapShortestEnables
;
4377 uint32_t Attribute05WrapShortestEnables
;
4378 uint32_t Attribute04WrapShortestEnables
;
4379 uint32_t Attribute03WrapShortestEnables
;
4380 uint32_t Attribute02WrapShortestEnables
;
4381 uint32_t Attribute01WrapShortestEnables
;
4382 uint32_t Attribute00WrapShortestEnables
;
4386 GEN8_3DSTATE_SBE_SWIZ_pack(__gen_user_data
*data
, void * restrict dst
,
4387 const struct GEN8_3DSTATE_SBE_SWIZ
* restrict values
)
4389 uint32_t *dw
= (uint32_t * restrict
) dst
;
4392 __gen_field(values
->CommandType
, 29, 31) |
4393 __gen_field(values
->CommandSubType
, 27, 28) |
4394 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4395 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4396 __gen_field(values
->DwordLength
, 0, 7) |
4399 uint32_t dw_Attribute
;
4400 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data
, &dw_Attribute
, &values
->Attribute
);
4402 __gen_field(dw_Attribute
, 0, 15) |
4406 __gen_field(values
->Attribute15WrapShortestEnables
, 60, 63) |
4407 __gen_field(values
->Attribute14WrapShortestEnables
, 56, 59) |
4408 __gen_field(values
->Attribute13WrapShortestEnables
, 52, 55) |
4409 __gen_field(values
->Attribute12WrapShortestEnables
, 48, 51) |
4410 __gen_field(values
->Attribute11WrapShortestEnables
, 44, 47) |
4411 __gen_field(values
->Attribute10WrapShortestEnables
, 40, 43) |
4412 __gen_field(values
->Attribute09WrapShortestEnables
, 36, 39) |
4413 __gen_field(values
->Attribute08WrapShortestEnables
, 32, 35) |
4414 __gen_field(values
->Attribute07WrapShortestEnables
, 28, 31) |
4415 __gen_field(values
->Attribute06WrapShortestEnables
, 24, 27) |
4416 __gen_field(values
->Attribute05WrapShortestEnables
, 20, 23) |
4417 __gen_field(values
->Attribute04WrapShortestEnables
, 16, 19) |
4418 __gen_field(values
->Attribute03WrapShortestEnables
, 12, 15) |
4419 __gen_field(values
->Attribute02WrapShortestEnables
, 8, 11) |
4420 __gen_field(values
->Attribute01WrapShortestEnables
, 4, 7) |
4421 __gen_field(values
->Attribute00WrapShortestEnables
, 0, 3) |
4429 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
4430 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
4431 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_header\
4433 .CommandSubType = 3, \
4434 ._3DCommandOpcode = 0, \
4435 ._3DCommandSubOpcode = 15, \
4438 struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS
{
4439 uint32_t CommandType
;
4440 uint32_t CommandSubType
;
4441 uint32_t _3DCommandOpcode
;
4442 uint32_t _3DCommandSubOpcode
;
4443 uint32_t DwordLength
;
4444 uint32_t ScissorRectPointer
;
4448 GEN8_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
4449 const struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
4451 uint32_t *dw
= (uint32_t * restrict
) dst
;
4454 __gen_field(values
->CommandType
, 29, 31) |
4455 __gen_field(values
->CommandSubType
, 27, 28) |
4456 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4457 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4458 __gen_field(values
->DwordLength
, 0, 7) |
4462 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
4467 #define GEN8_3DSTATE_SF_length 0x00000004
4468 #define GEN8_3DSTATE_SF_length_bias 0x00000002
4469 #define GEN8_3DSTATE_SF_header \
4471 .CommandSubType = 3, \
4472 ._3DCommandOpcode = 0, \
4473 ._3DCommandSubOpcode = 19, \
4476 struct GEN8_3DSTATE_SF
{
4477 uint32_t CommandType
;
4478 uint32_t CommandSubType
;
4479 uint32_t _3DCommandOpcode
;
4480 uint32_t _3DCommandSubOpcode
;
4481 uint32_t DwordLength
;
4482 bool LegacyGlobalDepthBiasEnable
;
4483 bool StatisticsEnable
;
4484 bool ViewportTransformEnable
;
4490 uint32_t LineEndCapAntialiasingRegionWidth
;
4491 bool LastPixelEnable
;
4492 uint32_t TriangleStripListProvokingVertexSelect
;
4493 uint32_t LineStripListProvokingVertexSelect
;
4494 uint32_t TriangleFanProvokingVertexSelect
;
4495 #define AALINEDISTANCE_TRUE 1
4496 uint32_t AALineDistanceMode
;
4497 bool SmoothPointEnable
;
4498 uint32_t VertexSubPixelPrecisionSelect
;
4501 uint32_t PointWidthSource
;
4506 GEN8_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
4507 const struct GEN8_3DSTATE_SF
* restrict values
)
4509 uint32_t *dw
= (uint32_t * restrict
) dst
;
4512 __gen_field(values
->CommandType
, 29, 31) |
4513 __gen_field(values
->CommandSubType
, 27, 28) |
4514 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4515 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4516 __gen_field(values
->DwordLength
, 0, 7) |
4520 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
4521 __gen_field(values
->StatisticsEnable
, 10, 10) |
4522 __gen_field(values
->ViewportTransformEnable
, 1, 1) |
4526 __gen_field(values
->LineWidth
* (1 << 7), 18, 27) |
4527 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
4531 __gen_field(values
->LastPixelEnable
, 31, 31) |
4532 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
4533 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
4534 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
4535 __gen_field(values
->AALineDistanceMode
, 14, 14) |
4536 __gen_field(values
->SmoothPointEnable
, 13, 13) |
4537 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
4538 __gen_field(values
->PointWidthSource
, 11, 11) |
4539 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
4544 #define GEN8_3DSTATE_SO_BUFFER_length 0x00000008
4545 #define GEN8_3DSTATE_SO_BUFFER_length_bias 0x00000002
4546 #define GEN8_3DSTATE_SO_BUFFER_header \
4548 .CommandSubType = 3, \
4549 ._3DCommandOpcode = 1, \
4550 ._3DCommandSubOpcode = 24, \
4553 struct GEN8_3DSTATE_SO_BUFFER
{
4554 uint32_t CommandType
;
4555 uint32_t CommandSubType
;
4556 uint32_t _3DCommandOpcode
;
4557 uint32_t _3DCommandSubOpcode
;
4558 uint32_t DwordLength
;
4559 bool SOBufferEnable
;
4560 uint32_t SOBufferIndex
;
4561 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
4562 bool StreamOffsetWriteEnable
;
4563 bool StreamOutputBufferOffsetAddressEnable
;
4564 __gen_address_type SurfaceBaseAddress
;
4565 uint32_t SurfaceSize
;
4566 __gen_address_type StreamOutputBufferOffsetAddress
;
4567 uint32_t StreamOffset
;
4571 GEN8_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4572 const struct GEN8_3DSTATE_SO_BUFFER
* restrict values
)
4574 uint32_t *dw
= (uint32_t * restrict
) dst
;
4577 __gen_field(values
->CommandType
, 29, 31) |
4578 __gen_field(values
->CommandSubType
, 27, 28) |
4579 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4580 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4581 __gen_field(values
->DwordLength
, 0, 7) |
4584 uint32_t dw_SOBufferObjectControlState
;
4585 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
4587 __gen_field(values
->SOBufferEnable
, 31, 31) |
4588 __gen_field(values
->SOBufferIndex
, 29, 30) |
4589 __gen_field(dw_SOBufferObjectControlState
, 22, 28) |
4590 __gen_field(values
->StreamOffsetWriteEnable
, 21, 21) |
4591 __gen_field(values
->StreamOutputBufferOffsetAddressEnable
, 20, 20) |
4598 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4604 __gen_field(values
->SurfaceSize
, 0, 29) |
4611 __gen_combine_address(data
, &dw
[5], values
->StreamOutputBufferOffsetAddress
, dw5
);
4617 __gen_field(values
->StreamOffset
, 0, 31) |
4622 #define GEN8_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
4623 #define GEN8_3DSTATE_SO_DECL_LIST_header \
4625 .CommandSubType = 3, \
4626 ._3DCommandOpcode = 1, \
4627 ._3DCommandSubOpcode = 23
4629 struct GEN8_SO_DECL
{
4630 uint32_t OutputBufferSlot
;
4632 uint32_t RegisterIndex
;
4633 uint32_t ComponentMask
;
4637 GEN8_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
4638 const struct GEN8_SO_DECL
* restrict values
)
4640 uint32_t *dw
= (uint32_t * restrict
) dst
;
4643 __gen_field(values
->OutputBufferSlot
, 12, 13) |
4644 __gen_field(values
->HoleFlag
, 11, 11) |
4645 __gen_field(values
->RegisterIndex
, 4, 9) |
4646 __gen_field(values
->ComponentMask
, 0, 3) |
4651 struct GEN8_SO_DECL_ENTRY
{
4652 struct GEN8_SO_DECL Stream3Decl
;
4653 struct GEN8_SO_DECL Stream2Decl
;
4654 struct GEN8_SO_DECL Stream1Decl
;
4655 struct GEN8_SO_DECL Stream0Decl
;
4659 GEN8_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
4660 const struct GEN8_SO_DECL_ENTRY
* restrict values
)
4662 uint32_t *dw
= (uint32_t * restrict
) dst
;
4664 uint32_t dw_Stream3Decl
;
4665 GEN8_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
4666 uint32_t dw_Stream2Decl
;
4667 GEN8_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
4668 uint32_t dw_Stream1Decl
;
4669 GEN8_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
4670 uint32_t dw_Stream0Decl
;
4671 GEN8_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
4673 __gen_field(dw_Stream3Decl
, 48, 63) |
4674 __gen_field(dw_Stream2Decl
, 32, 47) |
4675 __gen_field(dw_Stream1Decl
, 16, 31) |
4676 __gen_field(dw_Stream0Decl
, 0, 15) |
4684 struct GEN8_3DSTATE_SO_DECL_LIST
{
4685 uint32_t CommandType
;
4686 uint32_t CommandSubType
;
4687 uint32_t _3DCommandOpcode
;
4688 uint32_t _3DCommandSubOpcode
;
4689 uint32_t DwordLength
;
4690 uint32_t StreamtoBufferSelects3
;
4691 uint32_t StreamtoBufferSelects2
;
4692 uint32_t StreamtoBufferSelects1
;
4693 uint32_t StreamtoBufferSelects0
;
4694 uint32_t NumEntries3
;
4695 uint32_t NumEntries2
;
4696 uint32_t NumEntries1
;
4697 uint32_t NumEntries0
;
4698 /* variable length fields follow */
4702 GEN8_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
4703 const struct GEN8_3DSTATE_SO_DECL_LIST
* restrict values
)
4705 uint32_t *dw
= (uint32_t * restrict
) dst
;
4708 __gen_field(values
->CommandType
, 29, 31) |
4709 __gen_field(values
->CommandSubType
, 27, 28) |
4710 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4711 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4712 __gen_field(values
->DwordLength
, 0, 8) |
4716 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
4717 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
4718 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
4719 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
4723 __gen_field(values
->NumEntries3
, 24, 31) |
4724 __gen_field(values
->NumEntries2
, 16, 23) |
4725 __gen_field(values
->NumEntries1
, 8, 15) |
4726 __gen_field(values
->NumEntries0
, 0, 7) |
4729 /* variable length fields follow */
4732 #define GEN8_3DSTATE_STENCIL_BUFFER_length 0x00000005
4733 #define GEN8_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
4734 #define GEN8_3DSTATE_STENCIL_BUFFER_header \
4736 .CommandSubType = 3, \
4737 ._3DCommandOpcode = 0, \
4738 ._3DCommandSubOpcode = 6, \
4741 struct GEN8_3DSTATE_STENCIL_BUFFER
{
4742 uint32_t CommandType
;
4743 uint32_t CommandSubType
;
4744 uint32_t _3DCommandOpcode
;
4745 uint32_t _3DCommandSubOpcode
;
4746 uint32_t DwordLength
;
4747 uint32_t StencilBufferEnable
;
4748 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
4749 uint32_t SurfacePitch
;
4750 __gen_address_type SurfaceBaseAddress
;
4751 uint32_t SurfaceQPitch
;
4755 GEN8_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4756 const struct GEN8_3DSTATE_STENCIL_BUFFER
* restrict values
)
4758 uint32_t *dw
= (uint32_t * restrict
) dst
;
4761 __gen_field(values
->CommandType
, 29, 31) |
4762 __gen_field(values
->CommandSubType
, 27, 28) |
4763 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4764 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4765 __gen_field(values
->DwordLength
, 0, 7) |
4768 uint32_t dw_StencilBufferObjectControlState
;
4769 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
4771 __gen_field(values
->StencilBufferEnable
, 31, 31) |
4772 __gen_field(dw_StencilBufferObjectControlState
, 22, 28) |
4773 __gen_field(values
->SurfacePitch
, 0, 16) |
4780 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4786 __gen_field(values
->SurfaceQPitch
, 0, 14) |
4791 #define GEN8_3DSTATE_STREAMOUT_length 0x00000005
4792 #define GEN8_3DSTATE_STREAMOUT_length_bias 0x00000002
4793 #define GEN8_3DSTATE_STREAMOUT_header \
4795 .CommandSubType = 3, \
4796 ._3DCommandOpcode = 0, \
4797 ._3DCommandSubOpcode = 30, \
4800 struct GEN8_3DSTATE_STREAMOUT
{
4801 uint32_t CommandType
;
4802 uint32_t CommandSubType
;
4803 uint32_t _3DCommandOpcode
;
4804 uint32_t _3DCommandSubOpcode
;
4805 uint32_t DwordLength
;
4806 uint32_t SOFunctionEnable
;
4807 uint32_t APIRenderingDisable
;
4808 uint32_t RenderStreamSelect
;
4811 uint32_t ReorderMode
;
4812 bool SOStatisticsEnable
;
4817 uint32_t ForceRendering
;
4818 uint32_t Stream3VertexReadOffset
;
4819 uint32_t Stream3VertexReadLength
;
4820 uint32_t Stream2VertexReadOffset
;
4821 uint32_t Stream2VertexReadLength
;
4822 uint32_t Stream1VertexReadOffset
;
4823 uint32_t Stream1VertexReadLength
;
4824 uint32_t Stream0VertexReadOffset
;
4825 uint32_t Stream0VertexReadLength
;
4826 uint32_t Buffer1SurfacePitch
;
4827 uint32_t Buffer0SurfacePitch
;
4828 uint32_t Buffer3SurfacePitch
;
4829 uint32_t Buffer2SurfacePitch
;
4833 GEN8_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
4834 const struct GEN8_3DSTATE_STREAMOUT
* restrict values
)
4836 uint32_t *dw
= (uint32_t * restrict
) dst
;
4839 __gen_field(values
->CommandType
, 29, 31) |
4840 __gen_field(values
->CommandSubType
, 27, 28) |
4841 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4842 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4843 __gen_field(values
->DwordLength
, 0, 7) |
4847 __gen_field(values
->SOFunctionEnable
, 31, 31) |
4848 __gen_field(values
->APIRenderingDisable
, 30, 30) |
4849 __gen_field(values
->RenderStreamSelect
, 27, 28) |
4850 __gen_field(values
->ReorderMode
, 26, 26) |
4851 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
4852 __gen_field(values
->ForceRendering
, 23, 24) |
4856 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
4857 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
4858 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
4859 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
4860 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
4861 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
4862 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
4863 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
4867 __gen_field(values
->Buffer1SurfacePitch
, 16, 27) |
4868 __gen_field(values
->Buffer0SurfacePitch
, 0, 11) |
4872 __gen_field(values
->Buffer3SurfacePitch
, 16, 27) |
4873 __gen_field(values
->Buffer2SurfacePitch
, 0, 11) |
4878 #define GEN8_3DSTATE_TE_length 0x00000004
4879 #define GEN8_3DSTATE_TE_length_bias 0x00000002
4880 #define GEN8_3DSTATE_TE_header \
4882 .CommandSubType = 3, \
4883 ._3DCommandOpcode = 0, \
4884 ._3DCommandSubOpcode = 28, \
4887 struct GEN8_3DSTATE_TE
{
4888 uint32_t CommandType
;
4889 uint32_t CommandSubType
;
4890 uint32_t _3DCommandOpcode
;
4891 uint32_t _3DCommandSubOpcode
;
4892 uint32_t DwordLength
;
4894 #define ODD_FRACTIONAL 1
4895 #define EVEN_FRACTIONAL 2
4896 uint32_t Partitioning
;
4898 #define OUTPUT_LINE 1
4899 #define OUTPUT_TRI_CW 2
4900 #define OUTPUT_TRI_CCW 3
4901 uint32_t OutputTopology
;
4910 float MaximumTessellationFactorOdd
;
4911 float MaximumTessellationFactorNotOdd
;
4915 GEN8_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
4916 const struct GEN8_3DSTATE_TE
* restrict values
)
4918 uint32_t *dw
= (uint32_t * restrict
) dst
;
4921 __gen_field(values
->CommandType
, 29, 31) |
4922 __gen_field(values
->CommandSubType
, 27, 28) |
4923 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4924 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4925 __gen_field(values
->DwordLength
, 0, 7) |
4929 __gen_field(values
->Partitioning
, 12, 13) |
4930 __gen_field(values
->OutputTopology
, 8, 9) |
4931 __gen_field(values
->TEDomain
, 4, 5) |
4932 __gen_field(values
->TEMode
, 1, 2) |
4933 __gen_field(values
->TEEnable
, 0, 0) |
4937 __gen_float(values
->MaximumTessellationFactorOdd
) |
4941 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
4946 #define GEN8_3DSTATE_URB_DS_length 0x00000002
4947 #define GEN8_3DSTATE_URB_DS_length_bias 0x00000002
4948 #define GEN8_3DSTATE_URB_DS_header \
4950 .CommandSubType = 3, \
4951 ._3DCommandOpcode = 0, \
4952 ._3DCommandSubOpcode = 50, \
4955 struct GEN8_3DSTATE_URB_DS
{
4956 uint32_t CommandType
;
4957 uint32_t CommandSubType
;
4958 uint32_t _3DCommandOpcode
;
4959 uint32_t _3DCommandSubOpcode
;
4960 uint32_t DwordLength
;
4961 uint32_t DSURBStartingAddress
;
4962 uint32_t DSURBEntryAllocationSize
;
4963 uint32_t DSNumberofURBEntries
;
4967 GEN8_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
4968 const struct GEN8_3DSTATE_URB_DS
* restrict values
)
4970 uint32_t *dw
= (uint32_t * restrict
) dst
;
4973 __gen_field(values
->CommandType
, 29, 31) |
4974 __gen_field(values
->CommandSubType
, 27, 28) |
4975 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4976 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4977 __gen_field(values
->DwordLength
, 0, 7) |
4981 __gen_field(values
->DSURBStartingAddress
, 25, 31) |
4982 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
4983 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
4988 #define GEN8_3DSTATE_URB_GS_length 0x00000002
4989 #define GEN8_3DSTATE_URB_GS_length_bias 0x00000002
4990 #define GEN8_3DSTATE_URB_GS_header \
4992 .CommandSubType = 3, \
4993 ._3DCommandOpcode = 0, \
4994 ._3DCommandSubOpcode = 51, \
4997 struct GEN8_3DSTATE_URB_GS
{
4998 uint32_t CommandType
;
4999 uint32_t CommandSubType
;
5000 uint32_t _3DCommandOpcode
;
5001 uint32_t _3DCommandSubOpcode
;
5002 uint32_t DwordLength
;
5003 uint32_t GSURBStartingAddress
;
5004 uint32_t GSURBEntryAllocationSize
;
5005 uint32_t GSNumberofURBEntries
;
5009 GEN8_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
5010 const struct GEN8_3DSTATE_URB_GS
* restrict values
)
5012 uint32_t *dw
= (uint32_t * restrict
) dst
;
5015 __gen_field(values
->CommandType
, 29, 31) |
5016 __gen_field(values
->CommandSubType
, 27, 28) |
5017 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5018 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5019 __gen_field(values
->DwordLength
, 0, 7) |
5023 __gen_field(values
->GSURBStartingAddress
, 25, 31) |
5024 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
5025 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
5030 #define GEN8_3DSTATE_URB_HS_length 0x00000002
5031 #define GEN8_3DSTATE_URB_HS_length_bias 0x00000002
5032 #define GEN8_3DSTATE_URB_HS_header \
5034 .CommandSubType = 3, \
5035 ._3DCommandOpcode = 0, \
5036 ._3DCommandSubOpcode = 49, \
5039 struct GEN8_3DSTATE_URB_HS
{
5040 uint32_t CommandType
;
5041 uint32_t CommandSubType
;
5042 uint32_t _3DCommandOpcode
;
5043 uint32_t _3DCommandSubOpcode
;
5044 uint32_t DwordLength
;
5045 uint32_t HSURBStartingAddress
;
5046 uint32_t HSURBEntryAllocationSize
;
5047 uint32_t HSNumberofURBEntries
;
5051 GEN8_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
5052 const struct GEN8_3DSTATE_URB_HS
* restrict values
)
5054 uint32_t *dw
= (uint32_t * restrict
) dst
;
5057 __gen_field(values
->CommandType
, 29, 31) |
5058 __gen_field(values
->CommandSubType
, 27, 28) |
5059 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5060 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5061 __gen_field(values
->DwordLength
, 0, 7) |
5065 __gen_field(values
->HSURBStartingAddress
, 25, 31) |
5066 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
5067 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
5072 #define GEN8_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
5073 #define GEN8_3DSTATE_VERTEX_BUFFERS_header \
5075 .CommandSubType = 3, \
5076 ._3DCommandOpcode = 0, \
5077 ._3DCommandSubOpcode = 8
5079 struct GEN8_VERTEX_BUFFER_STATE
{
5080 uint32_t VertexBufferIndex
;
5081 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
5082 uint32_t AddressModifyEnable
;
5083 bool NullVertexBuffer
;
5084 uint32_t BufferPitch
;
5085 __gen_address_type BufferStartingAddress
;
5086 uint32_t BufferSize
;
5090 GEN8_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5091 const struct GEN8_VERTEX_BUFFER_STATE
* restrict values
)
5093 uint32_t *dw
= (uint32_t * restrict
) dst
;
5095 uint32_t dw_MemoryObjectControlState
;
5096 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
5098 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5099 __gen_field(dw_MemoryObjectControlState
, 16, 22) |
5100 __gen_field(values
->AddressModifyEnable
, 14, 14) |
5101 __gen_field(values
->NullVertexBuffer
, 13, 13) |
5102 __gen_field(values
->BufferPitch
, 0, 11) |
5109 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
5115 __gen_field(values
->BufferSize
, 0, 31) |
5120 struct GEN8_3DSTATE_VERTEX_BUFFERS
{
5121 uint32_t CommandType
;
5122 uint32_t CommandSubType
;
5123 uint32_t _3DCommandOpcode
;
5124 uint32_t _3DCommandSubOpcode
;
5125 uint32_t DwordLength
;
5126 /* variable length fields follow */
5130 GEN8_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
5131 const struct GEN8_3DSTATE_VERTEX_BUFFERS
* restrict values
)
5133 uint32_t *dw
= (uint32_t * restrict
) dst
;
5136 __gen_field(values
->CommandType
, 29, 31) |
5137 __gen_field(values
->CommandSubType
, 27, 28) |
5138 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5139 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5140 __gen_field(values
->DwordLength
, 0, 7) |
5143 /* variable length fields follow */
5146 #define GEN8_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
5147 #define GEN8_3DSTATE_VERTEX_ELEMENTS_header \
5149 .CommandSubType = 3, \
5150 ._3DCommandOpcode = 0, \
5151 ._3DCommandSubOpcode = 9
5153 struct GEN8_VERTEX_ELEMENT_STATE
{
5154 uint32_t VertexBufferIndex
;
5156 uint32_t SourceElementFormat
;
5157 bool EdgeFlagEnable
;
5158 uint32_t SourceElementOffset
;
5159 uint32_t Component0Control
;
5160 uint32_t Component1Control
;
5161 uint32_t Component2Control
;
5162 uint32_t Component3Control
;
5166 GEN8_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5167 const struct GEN8_VERTEX_ELEMENT_STATE
* restrict values
)
5169 uint32_t *dw
= (uint32_t * restrict
) dst
;
5172 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5173 __gen_field(values
->Valid
, 25, 25) |
5174 __gen_field(values
->SourceElementFormat
, 16, 24) |
5175 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
5176 __gen_field(values
->SourceElementOffset
, 0, 11) |
5180 __gen_field(values
->Component0Control
, 28, 30) |
5181 __gen_field(values
->Component1Control
, 24, 26) |
5182 __gen_field(values
->Component2Control
, 20, 22) |
5183 __gen_field(values
->Component3Control
, 16, 18) |
5188 struct GEN8_3DSTATE_VERTEX_ELEMENTS
{
5189 uint32_t CommandType
;
5190 uint32_t CommandSubType
;
5191 uint32_t _3DCommandOpcode
;
5192 uint32_t _3DCommandSubOpcode
;
5193 uint32_t DwordLength
;
5194 /* variable length fields follow */
5198 GEN8_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
5199 const struct GEN8_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
5201 uint32_t *dw
= (uint32_t * restrict
) dst
;
5204 __gen_field(values
->CommandType
, 29, 31) |
5205 __gen_field(values
->CommandSubType
, 27, 28) |
5206 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5207 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5208 __gen_field(values
->DwordLength
, 0, 7) |
5211 /* variable length fields follow */
5214 #define GEN8_3DSTATE_VF_length 0x00000002
5215 #define GEN8_3DSTATE_VF_length_bias 0x00000002
5216 #define GEN8_3DSTATE_VF_header \
5218 .CommandSubType = 3, \
5219 ._3DCommandOpcode = 0, \
5220 ._3DCommandSubOpcode = 12, \
5223 struct GEN8_3DSTATE_VF
{
5224 uint32_t CommandType
;
5225 uint32_t CommandSubType
;
5226 uint32_t _3DCommandOpcode
;
5227 uint32_t _3DCommandSubOpcode
;
5228 bool IndexedDrawCutIndexEnable
;
5229 uint32_t DwordLength
;
5234 GEN8_3DSTATE_VF_pack(__gen_user_data
*data
, void * restrict dst
,
5235 const struct GEN8_3DSTATE_VF
* restrict values
)
5237 uint32_t *dw
= (uint32_t * restrict
) dst
;
5240 __gen_field(values
->CommandType
, 29, 31) |
5241 __gen_field(values
->CommandSubType
, 27, 28) |
5242 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5243 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5244 __gen_field(values
->IndexedDrawCutIndexEnable
, 8, 8) |
5245 __gen_field(values
->DwordLength
, 0, 7) |
5249 __gen_field(values
->CutIndex
, 0, 31) |
5254 #define GEN8_3DSTATE_VF_INSTANCING_length 0x00000003
5255 #define GEN8_3DSTATE_VF_INSTANCING_length_bias 0x00000002
5256 #define GEN8_3DSTATE_VF_INSTANCING_header \
5258 .CommandSubType = 3, \
5259 ._3DCommandOpcode = 0, \
5260 ._3DCommandSubOpcode = 73, \
5263 struct GEN8_3DSTATE_VF_INSTANCING
{
5264 uint32_t CommandType
;
5265 uint32_t CommandSubType
;
5266 uint32_t _3DCommandOpcode
;
5267 uint32_t _3DCommandSubOpcode
;
5268 uint32_t DwordLength
;
5269 bool InstancingEnable
;
5270 uint32_t VertexElementIndex
;
5271 uint32_t InstanceDataStepRate
;
5275 GEN8_3DSTATE_VF_INSTANCING_pack(__gen_user_data
*data
, void * restrict dst
,
5276 const struct GEN8_3DSTATE_VF_INSTANCING
* restrict values
)
5278 uint32_t *dw
= (uint32_t * restrict
) dst
;
5281 __gen_field(values
->CommandType
, 29, 31) |
5282 __gen_field(values
->CommandSubType
, 27, 28) |
5283 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5284 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5285 __gen_field(values
->DwordLength
, 0, 7) |
5289 __gen_field(values
->InstancingEnable
, 8, 8) |
5290 __gen_field(values
->VertexElementIndex
, 0, 5) |
5294 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
5299 #define GEN8_3DSTATE_VF_SGVS_length 0x00000002
5300 #define GEN8_3DSTATE_VF_SGVS_length_bias 0x00000002
5301 #define GEN8_3DSTATE_VF_SGVS_header \
5303 .CommandSubType = 3, \
5304 ._3DCommandOpcode = 0, \
5305 ._3DCommandSubOpcode = 74, \
5308 struct GEN8_3DSTATE_VF_SGVS
{
5309 uint32_t CommandType
;
5310 uint32_t CommandSubType
;
5311 uint32_t _3DCommandOpcode
;
5312 uint32_t _3DCommandSubOpcode
;
5313 uint32_t DwordLength
;
5314 bool InstanceIDEnable
;
5319 uint32_t InstanceIDComponentNumber
;
5320 uint32_t InstanceIDElementOffset
;
5321 bool VertexIDEnable
;
5326 uint32_t VertexIDComponentNumber
;
5327 uint32_t VertexIDElementOffset
;
5331 GEN8_3DSTATE_VF_SGVS_pack(__gen_user_data
*data
, void * restrict dst
,
5332 const struct GEN8_3DSTATE_VF_SGVS
* restrict values
)
5334 uint32_t *dw
= (uint32_t * restrict
) dst
;
5337 __gen_field(values
->CommandType
, 29, 31) |
5338 __gen_field(values
->CommandSubType
, 27, 28) |
5339 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5340 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5341 __gen_field(values
->DwordLength
, 0, 7) |
5345 __gen_field(values
->InstanceIDEnable
, 31, 31) |
5346 __gen_field(values
->InstanceIDComponentNumber
, 29, 30) |
5347 __gen_field(values
->InstanceIDElementOffset
, 16, 21) |
5348 __gen_field(values
->VertexIDEnable
, 15, 15) |
5349 __gen_field(values
->VertexIDComponentNumber
, 13, 14) |
5350 __gen_field(values
->VertexIDElementOffset
, 0, 5) |
5355 #define GEN8_3DSTATE_VF_STATISTICS_length 0x00000001
5356 #define GEN8_3DSTATE_VF_STATISTICS_length_bias 0x00000001
5357 #define GEN8_3DSTATE_VF_STATISTICS_header \
5359 .CommandSubType = 1, \
5360 ._3DCommandOpcode = 0, \
5361 ._3DCommandSubOpcode = 11
5363 struct GEN8_3DSTATE_VF_STATISTICS
{
5364 uint32_t CommandType
;
5365 uint32_t CommandSubType
;
5366 uint32_t _3DCommandOpcode
;
5367 uint32_t _3DCommandSubOpcode
;
5368 bool StatisticsEnable
;
5372 GEN8_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
5373 const struct GEN8_3DSTATE_VF_STATISTICS
* restrict values
)
5375 uint32_t *dw
= (uint32_t * restrict
) dst
;
5378 __gen_field(values
->CommandType
, 29, 31) |
5379 __gen_field(values
->CommandSubType
, 27, 28) |
5380 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5381 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5382 __gen_field(values
->StatisticsEnable
, 0, 0) |
5387 #define GEN8_3DSTATE_VF_TOPOLOGY_length 0x00000002
5388 #define GEN8_3DSTATE_VF_TOPOLOGY_length_bias 0x00000002
5389 #define GEN8_3DSTATE_VF_TOPOLOGY_header \
5391 .CommandSubType = 3, \
5392 ._3DCommandOpcode = 0, \
5393 ._3DCommandSubOpcode = 75, \
5396 struct GEN8_3DSTATE_VF_TOPOLOGY
{
5397 uint32_t CommandType
;
5398 uint32_t CommandSubType
;
5399 uint32_t _3DCommandOpcode
;
5400 uint32_t _3DCommandSubOpcode
;
5401 uint32_t DwordLength
;
5402 uint32_t PrimitiveTopologyType
;
5406 GEN8_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data
*data
, void * restrict dst
,
5407 const struct GEN8_3DSTATE_VF_TOPOLOGY
* restrict values
)
5409 uint32_t *dw
= (uint32_t * restrict
) dst
;
5412 __gen_field(values
->CommandType
, 29, 31) |
5413 __gen_field(values
->CommandSubType
, 27, 28) |
5414 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5415 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5416 __gen_field(values
->DwordLength
, 0, 7) |
5420 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
5425 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
5426 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
5427 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
5429 .CommandSubType = 3, \
5430 ._3DCommandOpcode = 0, \
5431 ._3DCommandSubOpcode = 35, \
5434 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
5435 uint32_t CommandType
;
5436 uint32_t CommandSubType
;
5437 uint32_t _3DCommandOpcode
;
5438 uint32_t _3DCommandSubOpcode
;
5439 uint32_t DwordLength
;
5440 uint32_t CCViewportPointer
;
5444 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
5445 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
5447 uint32_t *dw
= (uint32_t * restrict
) dst
;
5450 __gen_field(values
->CommandType
, 29, 31) |
5451 __gen_field(values
->CommandSubType
, 27, 28) |
5452 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5453 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5454 __gen_field(values
->DwordLength
, 0, 7) |
5458 __gen_offset(values
->CCViewportPointer
, 5, 31) |
5463 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
5464 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
5465 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
5467 .CommandSubType = 3, \
5468 ._3DCommandOpcode = 0, \
5469 ._3DCommandSubOpcode = 33, \
5472 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
5473 uint32_t CommandType
;
5474 uint32_t CommandSubType
;
5475 uint32_t _3DCommandOpcode
;
5476 uint32_t _3DCommandSubOpcode
;
5477 uint32_t DwordLength
;
5478 uint32_t SFClipViewportPointer
;
5482 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
5483 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
5485 uint32_t *dw
= (uint32_t * restrict
) dst
;
5488 __gen_field(values
->CommandType
, 29, 31) |
5489 __gen_field(values
->CommandSubType
, 27, 28) |
5490 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5491 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5492 __gen_field(values
->DwordLength
, 0, 7) |
5496 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
5501 #define GEN8_3DSTATE_WM_length 0x00000002
5502 #define GEN8_3DSTATE_WM_length_bias 0x00000002
5503 #define GEN8_3DSTATE_WM_header \
5505 .CommandSubType = 3, \
5506 ._3DCommandOpcode = 0, \
5507 ._3DCommandSubOpcode = 20, \
5510 struct GEN8_3DSTATE_WM
{
5511 uint32_t CommandType
;
5512 uint32_t CommandSubType
;
5513 uint32_t _3DCommandOpcode
;
5514 uint32_t _3DCommandSubOpcode
;
5515 uint32_t DwordLength
;
5516 bool StatisticsEnable
;
5517 bool LegacyDepthBufferClearEnable
;
5518 bool LegacyDepthBufferResolveEnable
;
5519 bool LegacyHierarchicalDepthBufferResolveEnable
;
5520 bool LegacyDiamondLineRasterization
;
5524 uint32_t EarlyDepthStencilControl
;
5528 uint32_t ForceThreadDispatchEnable
;
5529 #define INTERP_PIXEL 0
5530 #define INTERP_CENTROID 2
5531 #define INTERP_SAMPLE 3
5532 uint32_t PositionZWInterpolationMode
;
5533 uint32_t BarycentricInterpolationMode
;
5538 uint32_t LineEndCapAntialiasingRegionWidth
;
5543 uint32_t LineAntialiasingRegionWidth
;
5544 bool PolygonStippleEnable
;
5545 bool LineStippleEnable
;
5546 #define RASTRULE_UPPER_LEFT 0
5547 #define RASTRULE_UPPER_RIGHT 1
5548 uint32_t PointRasterizationRule
;
5552 uint32_t ForceKillPixelEnable
;
5556 GEN8_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
5557 const struct GEN8_3DSTATE_WM
* restrict values
)
5559 uint32_t *dw
= (uint32_t * restrict
) dst
;
5562 __gen_field(values
->CommandType
, 29, 31) |
5563 __gen_field(values
->CommandSubType
, 27, 28) |
5564 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5565 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5566 __gen_field(values
->DwordLength
, 0, 7) |
5570 __gen_field(values
->StatisticsEnable
, 31, 31) |
5571 __gen_field(values
->LegacyDepthBufferClearEnable
, 30, 30) |
5572 __gen_field(values
->LegacyDepthBufferResolveEnable
, 28, 28) |
5573 __gen_field(values
->LegacyHierarchicalDepthBufferResolveEnable
, 27, 27) |
5574 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
5575 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
5576 __gen_field(values
->ForceThreadDispatchEnable
, 19, 20) |
5577 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
5578 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
5579 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
5580 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
5581 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
5582 __gen_field(values
->LineStippleEnable
, 3, 3) |
5583 __gen_field(values
->PointRasterizationRule
, 2, 2) |
5584 __gen_field(values
->ForceKillPixelEnable
, 0, 1) |
5589 #define GEN8_3DSTATE_WM_CHROMAKEY_length 0x00000002
5590 #define GEN8_3DSTATE_WM_CHROMAKEY_length_bias 0x00000002
5591 #define GEN8_3DSTATE_WM_CHROMAKEY_header \
5593 .CommandSubType = 3, \
5594 ._3DCommandOpcode = 0, \
5595 ._3DCommandSubOpcode = 76, \
5598 struct GEN8_3DSTATE_WM_CHROMAKEY
{
5599 uint32_t CommandType
;
5600 uint32_t CommandSubType
;
5601 uint32_t _3DCommandOpcode
;
5602 uint32_t _3DCommandSubOpcode
;
5603 uint32_t DwordLength
;
5604 bool ChromaKeyKillEnable
;
5608 GEN8_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data
*data
, void * restrict dst
,
5609 const struct GEN8_3DSTATE_WM_CHROMAKEY
* restrict values
)
5611 uint32_t *dw
= (uint32_t * restrict
) dst
;
5614 __gen_field(values
->CommandType
, 29, 31) |
5615 __gen_field(values
->CommandSubType
, 27, 28) |
5616 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5617 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5618 __gen_field(values
->DwordLength
, 0, 7) |
5622 __gen_field(values
->ChromaKeyKillEnable
, 31, 31) |
5627 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length 0x00000003
5628 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length_bias 0x00000002
5629 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_header \
5631 .CommandSubType = 3, \
5632 ._3DCommandOpcode = 0, \
5633 ._3DCommandSubOpcode = 78, \
5636 struct GEN8_3DSTATE_WM_DEPTH_STENCIL
{
5637 uint32_t CommandType
;
5638 uint32_t CommandSubType
;
5639 uint32_t _3DCommandOpcode
;
5640 uint32_t _3DCommandSubOpcode
;
5641 uint32_t DwordLength
;
5642 uint32_t StencilFailOp
;
5643 uint32_t StencilPassDepthFailOp
;
5644 uint32_t StencilPassDepthPassOp
;
5645 uint32_t BackfaceStencilTestFunction
;
5646 uint32_t BackfaceStencilFailOp
;
5647 uint32_t BackfaceStencilPassDepthFailOp
;
5648 uint32_t BackfaceStencilPassDepthPassOp
;
5649 uint32_t StencilTestFunction
;
5650 uint32_t DepthTestFunction
;
5651 bool DoubleSidedStencilEnable
;
5652 bool StencilTestEnable
;
5653 bool StencilBufferWriteEnable
;
5654 bool DepthTestEnable
;
5655 bool DepthBufferWriteEnable
;
5656 uint32_t StencilTestMask
;
5657 uint32_t StencilWriteMask
;
5658 uint32_t BackfaceStencilTestMask
;
5659 uint32_t BackfaceStencilWriteMask
;
5663 GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data
*data
, void * restrict dst
,
5664 const struct GEN8_3DSTATE_WM_DEPTH_STENCIL
* restrict values
)
5666 uint32_t *dw
= (uint32_t * restrict
) dst
;
5669 __gen_field(values
->CommandType
, 29, 31) |
5670 __gen_field(values
->CommandSubType
, 27, 28) |
5671 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5672 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5673 __gen_field(values
->DwordLength
, 0, 7) |
5677 __gen_field(values
->StencilFailOp
, 29, 31) |
5678 __gen_field(values
->StencilPassDepthFailOp
, 26, 28) |
5679 __gen_field(values
->StencilPassDepthPassOp
, 23, 25) |
5680 __gen_field(values
->BackfaceStencilTestFunction
, 20, 22) |
5681 __gen_field(values
->BackfaceStencilFailOp
, 17, 19) |
5682 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 14, 16) |
5683 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 11, 13) |
5684 __gen_field(values
->StencilTestFunction
, 8, 10) |
5685 __gen_field(values
->DepthTestFunction
, 5, 7) |
5686 __gen_field(values
->DoubleSidedStencilEnable
, 4, 4) |
5687 __gen_field(values
->StencilTestEnable
, 3, 3) |
5688 __gen_field(values
->StencilBufferWriteEnable
, 2, 2) |
5689 __gen_field(values
->DepthTestEnable
, 1, 1) |
5690 __gen_field(values
->DepthBufferWriteEnable
, 0, 0) |
5694 __gen_field(values
->StencilTestMask
, 24, 31) |
5695 __gen_field(values
->StencilWriteMask
, 16, 23) |
5696 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
5697 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
5702 #define GEN8_3DSTATE_WM_HZ_OP_length 0x00000005
5703 #define GEN8_3DSTATE_WM_HZ_OP_length_bias 0x00000002
5704 #define GEN8_3DSTATE_WM_HZ_OP_header \
5706 .CommandSubType = 3, \
5707 ._3DCommandOpcode = 0, \
5708 ._3DCommandSubOpcode = 82, \
5711 struct GEN8_3DSTATE_WM_HZ_OP
{
5712 uint32_t CommandType
;
5713 uint32_t CommandSubType
;
5714 uint32_t _3DCommandOpcode
;
5715 uint32_t _3DCommandSubOpcode
;
5716 uint32_t DwordLength
;
5717 bool StencilBufferClearEnable
;
5718 bool DepthBufferClearEnable
;
5719 bool ScissorRectangleEnable
;
5720 bool DepthBufferResolveEnable
;
5721 bool HierarchicalDepthBufferResolveEnable
;
5722 uint32_t PixelPositionOffsetEnable
;
5723 bool FullSurfaceDepthClear
;
5724 uint32_t StencilClearValue
;
5725 uint32_t NumberofMultisamples
;
5726 uint32_t ClearRectangleYMin
;
5727 uint32_t ClearRectangleXMin
;
5728 uint32_t ClearRectangleYMax
;
5729 uint32_t ClearRectangleXMax
;
5730 uint32_t SampleMask
;
5734 GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data
*data
, void * restrict dst
,
5735 const struct GEN8_3DSTATE_WM_HZ_OP
* restrict values
)
5737 uint32_t *dw
= (uint32_t * restrict
) dst
;
5740 __gen_field(values
->CommandType
, 29, 31) |
5741 __gen_field(values
->CommandSubType
, 27, 28) |
5742 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5743 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5744 __gen_field(values
->DwordLength
, 0, 7) |
5748 __gen_field(values
->StencilBufferClearEnable
, 31, 31) |
5749 __gen_field(values
->DepthBufferClearEnable
, 30, 30) |
5750 __gen_field(values
->ScissorRectangleEnable
, 29, 29) |
5751 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
5752 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
5753 __gen_field(values
->PixelPositionOffsetEnable
, 26, 26) |
5754 __gen_field(values
->FullSurfaceDepthClear
, 25, 25) |
5755 __gen_field(values
->StencilClearValue
, 16, 23) |
5756 __gen_field(values
->NumberofMultisamples
, 13, 15) |
5760 __gen_field(values
->ClearRectangleYMin
, 16, 31) |
5761 __gen_field(values
->ClearRectangleXMin
, 0, 15) |
5765 __gen_field(values
->ClearRectangleYMax
, 16, 31) |
5766 __gen_field(values
->ClearRectangleXMax
, 0, 15) |
5770 __gen_field(values
->SampleMask
, 0, 15) |
5775 #define GEN8_GPGPU_WALKER_length 0x0000000f
5776 #define GEN8_GPGPU_WALKER_length_bias 0x00000002
5777 #define GEN8_GPGPU_WALKER_header \
5780 .MediaCommandOpcode = 1, \
5784 struct GEN8_GPGPU_WALKER
{
5785 uint32_t CommandType
;
5787 uint32_t MediaCommandOpcode
;
5789 bool IndirectParameterEnable
;
5790 bool PredicateEnable
;
5791 uint32_t DwordLength
;
5792 uint32_t InterfaceDescriptorOffset
;
5793 uint32_t IndirectDataLength
;
5794 uint32_t IndirectDataStartAddress
;
5799 uint32_t ThreadDepthCounterMaximum
;
5800 uint32_t ThreadHeightCounterMaximum
;
5801 uint32_t ThreadWidthCounterMaximum
;
5802 uint32_t ThreadGroupIDStartingX
;
5803 uint32_t ThreadGroupIDXDimension
;
5804 uint32_t ThreadGroupIDStartingY
;
5805 uint32_t ThreadGroupIDYDimension
;
5806 uint32_t ThreadGroupIDStartingResumeZ
;
5807 uint32_t ThreadGroupIDZDimension
;
5808 uint32_t RightExecutionMask
;
5809 uint32_t BottomExecutionMask
;
5813 GEN8_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
5814 const struct GEN8_GPGPU_WALKER
* restrict values
)
5816 uint32_t *dw
= (uint32_t * restrict
) dst
;
5819 __gen_field(values
->CommandType
, 29, 31) |
5820 __gen_field(values
->Pipeline
, 27, 28) |
5821 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5822 __gen_field(values
->SubOpcode
, 16, 23) |
5823 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
5824 __gen_field(values
->PredicateEnable
, 8, 8) |
5825 __gen_field(values
->DwordLength
, 0, 7) |
5829 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5833 __gen_field(values
->IndirectDataLength
, 0, 16) |
5837 __gen_offset(values
->IndirectDataStartAddress
, 6, 31) |
5841 __gen_field(values
->SIMDSize
, 30, 31) |
5842 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
5843 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
5844 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
5848 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
5855 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
5859 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
5866 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
5870 __gen_field(values
->ThreadGroupIDStartingResumeZ
, 0, 31) |
5874 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
5878 __gen_field(values
->RightExecutionMask
, 0, 31) |
5882 __gen_field(values
->BottomExecutionMask
, 0, 31) |
5887 #define GEN8_MEDIA_CURBE_LOAD_length 0x00000004
5888 #define GEN8_MEDIA_CURBE_LOAD_length_bias 0x00000002
5889 #define GEN8_MEDIA_CURBE_LOAD_header \
5892 .MediaCommandOpcode = 0, \
5896 struct GEN8_MEDIA_CURBE_LOAD
{
5897 uint32_t CommandType
;
5899 uint32_t MediaCommandOpcode
;
5901 uint32_t DwordLength
;
5902 uint32_t CURBETotalDataLength
;
5903 uint32_t CURBEDataStartAddress
;
5907 GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5908 const struct GEN8_MEDIA_CURBE_LOAD
* restrict values
)
5910 uint32_t *dw
= (uint32_t * restrict
) dst
;
5913 __gen_field(values
->CommandType
, 29, 31) |
5914 __gen_field(values
->Pipeline
, 27, 28) |
5915 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5916 __gen_field(values
->SubOpcode
, 16, 23) |
5917 __gen_field(values
->DwordLength
, 0, 15) |
5924 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
5928 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
5933 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
5934 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
5935 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
5938 .MediaCommandOpcode = 0, \
5942 struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
5943 uint32_t CommandType
;
5945 uint32_t MediaCommandOpcode
;
5947 uint32_t DwordLength
;
5948 uint32_t InterfaceDescriptorTotalLength
;
5949 uint32_t InterfaceDescriptorDataStartAddress
;
5953 GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5954 const struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
5956 uint32_t *dw
= (uint32_t * restrict
) dst
;
5959 __gen_field(values
->CommandType
, 29, 31) |
5960 __gen_field(values
->Pipeline
, 27, 28) |
5961 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5962 __gen_field(values
->SubOpcode
, 16, 23) |
5963 __gen_field(values
->DwordLength
, 0, 15) |
5970 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
5974 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
5979 #define GEN8_MEDIA_OBJECT_length_bias 0x00000002
5980 #define GEN8_MEDIA_OBJECT_header \
5982 .MediaCommandPipeline = 2, \
5983 .MediaCommandOpcode = 1, \
5984 .MediaCommandSubOpcode = 0
5986 struct GEN8_MEDIA_OBJECT
{
5987 uint32_t CommandType
;
5988 uint32_t MediaCommandPipeline
;
5989 uint32_t MediaCommandOpcode
;
5990 uint32_t MediaCommandSubOpcode
;
5991 uint32_t DwordLength
;
5992 uint32_t InterfaceDescriptorOffset
;
5993 bool ChildrenPresent
;
5994 #define Nothreadsynchronization 0
5995 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
5996 uint32_t ThreadSynchronization
;
5997 uint32_t ForceDestination
;
5998 #define Notusingscoreboard 0
5999 #define Usingscoreboard 1
6000 uint32_t UseScoreboard
;
6004 uint32_t SliceDestinationSelect
;
6008 uint32_t SubSliceDestinationSelect
;
6009 uint32_t IndirectDataLength
;
6010 __gen_address_type IndirectDataStartAddress
;
6011 uint32_t ScoredboardY
;
6012 uint32_t ScoreboardX
;
6013 uint32_t ScoreboardColor
;
6014 bool ScoreboardMask
;
6015 /* variable length fields follow */
6019 GEN8_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
6020 const struct GEN8_MEDIA_OBJECT
* restrict values
)
6022 uint32_t *dw
= (uint32_t * restrict
) dst
;
6025 __gen_field(values
->CommandType
, 29, 31) |
6026 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6027 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6028 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6029 __gen_field(values
->DwordLength
, 0, 15) |
6033 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6037 __gen_field(values
->ChildrenPresent
, 31, 31) |
6038 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6039 __gen_field(values
->ForceDestination
, 22, 22) |
6040 __gen_field(values
->UseScoreboard
, 21, 21) |
6041 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6042 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6043 __gen_field(values
->IndirectDataLength
, 0, 16) |
6050 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6053 __gen_field(values
->ScoredboardY
, 16, 24) |
6054 __gen_field(values
->ScoreboardX
, 0, 8) |
6058 __gen_field(values
->ScoreboardColor
, 16, 19) |
6059 __gen_field(values
->ScoreboardMask
, 0, 7) |
6062 /* variable length fields follow */
6065 #define GEN8_MEDIA_OBJECT_GRPID_length_bias 0x00000002
6066 #define GEN8_MEDIA_OBJECT_GRPID_header \
6068 .MediaCommandPipeline = 2, \
6069 .MediaCommandOpcode = 1, \
6070 .MediaCommandSubOpcode = 6
6072 struct GEN8_MEDIA_OBJECT_GRPID
{
6073 uint32_t CommandType
;
6074 uint32_t MediaCommandPipeline
;
6075 uint32_t MediaCommandOpcode
;
6076 uint32_t MediaCommandSubOpcode
;
6077 uint32_t DwordLength
;
6078 uint32_t InterfaceDescriptorOffset
;
6079 uint32_t EndofThreadGroup
;
6080 uint32_t ForceDestination
;
6081 #define Notusingscoreboard 0
6082 #define Usingscoreboard 1
6083 uint32_t UseScoreboard
;
6087 uint32_t SliceDestinationSelect
;
6091 uint32_t SubSliceDestinationSelect
;
6092 uint32_t IndirectDataLength
;
6093 __gen_address_type IndirectDataStartAddress
;
6094 uint32_t ScoredboardY
;
6095 uint32_t ScoreboardX
;
6096 uint32_t ScoreboardColor
;
6097 bool ScoreboardMask
;
6099 /* variable length fields follow */
6103 GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data
*data
, void * restrict dst
,
6104 const struct GEN8_MEDIA_OBJECT_GRPID
* restrict values
)
6106 uint32_t *dw
= (uint32_t * restrict
) dst
;
6109 __gen_field(values
->CommandType
, 29, 31) |
6110 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6111 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6112 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6113 __gen_field(values
->DwordLength
, 0, 15) |
6117 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6121 __gen_field(values
->EndofThreadGroup
, 23, 23) |
6122 __gen_field(values
->ForceDestination
, 22, 22) |
6123 __gen_field(values
->UseScoreboard
, 21, 21) |
6124 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6125 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6126 __gen_field(values
->IndirectDataLength
, 0, 16) |
6133 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6136 __gen_field(values
->ScoredboardY
, 16, 24) |
6137 __gen_field(values
->ScoreboardX
, 0, 8) |
6141 __gen_field(values
->ScoreboardColor
, 16, 19) |
6142 __gen_field(values
->ScoreboardMask
, 0, 7) |
6146 __gen_field(values
->GroupID
, 0, 31) |
6149 /* variable length fields follow */
6152 #define GEN8_MEDIA_OBJECT_PRT_length 0x00000010
6153 #define GEN8_MEDIA_OBJECT_PRT_length_bias 0x00000002
6154 #define GEN8_MEDIA_OBJECT_PRT_header \
6157 .MediaCommandOpcode = 1, \
6161 struct GEN8_MEDIA_OBJECT_PRT
{
6162 uint32_t CommandType
;
6164 uint32_t MediaCommandOpcode
;
6166 uint32_t DwordLength
;
6167 uint32_t InterfaceDescriptorOffset
;
6168 bool ChildrenPresent
;
6169 bool PRT_FenceNeeded
;
6170 #define Rootthreadqueue 0
6171 #define VFEstateflush 1
6172 uint32_t PRT_FenceType
;
6173 uint32_t InlineData
;
6177 GEN8_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
6178 const struct GEN8_MEDIA_OBJECT_PRT
* restrict values
)
6180 uint32_t *dw
= (uint32_t * restrict
) dst
;
6183 __gen_field(values
->CommandType
, 29, 31) |
6184 __gen_field(values
->Pipeline
, 27, 28) |
6185 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6186 __gen_field(values
->SubOpcode
, 16, 23) |
6187 __gen_field(values
->DwordLength
, 0, 15) |
6191 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6195 __gen_field(values
->ChildrenPresent
, 31, 31) |
6196 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
6197 __gen_field(values
->PRT_FenceType
, 22, 22) |
6204 __gen_field(values
->InlineData
, 0, 31) |
6209 #define GEN8_MEDIA_OBJECT_WALKER_length_bias 0x00000002
6210 #define GEN8_MEDIA_OBJECT_WALKER_header \
6213 .MediaCommandOpcode = 1, \
6216 struct GEN8_MEDIA_OBJECT_WALKER
{
6217 uint32_t CommandType
;
6219 uint32_t MediaCommandOpcode
;
6221 uint32_t DwordLength
;
6222 uint32_t InterfaceDescriptorOffset
;
6223 bool ChildrenPresent
;
6224 #define Nothreadsynchronization 0
6225 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
6226 uint32_t ThreadSynchronization
;
6227 #define Notusingscoreboard 0
6228 #define Usingscoreboard 1
6229 uint32_t UseScoreboard
;
6230 uint32_t IndirectDataLength
;
6231 uint32_t IndirectDataStartAddress
;
6232 uint32_t GroupIDLoopSelect
;
6233 bool ScoreboardMask
;
6234 uint32_t ColorCountMinusOne
;
6235 uint32_t MiddleLoopExtraSteps
;
6236 uint32_t LocalMidLoopUnitY
;
6237 uint32_t MidLoopUnitX
;
6238 uint32_t GlobalLoopExecCount
;
6239 uint32_t LocalLoopExecCount
;
6240 uint32_t BlockResolutionY
;
6241 uint32_t BlockResolutionX
;
6242 uint32_t LocalStartY
;
6243 uint32_t LocalStartX
;
6244 uint32_t LocalOuterLoopStrideY
;
6245 uint32_t LocalOuterLoopStrideX
;
6246 uint32_t LocalInnerLoopUnitY
;
6247 uint32_t LocalInnerLoopUnitX
;
6248 uint32_t GlobalResolutionY
;
6249 uint32_t GlobalResolutionX
;
6250 uint32_t GlobalStartY
;
6251 uint32_t GlobalStartX
;
6252 uint32_t GlobalOuterLoopStrideY
;
6253 uint32_t GlobalOuterLoopStrideX
;
6254 uint32_t GlobalInnerLoopUnitY
;
6255 uint32_t GlobalInnerLoopUnitX
;
6256 /* variable length fields follow */
6260 GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
6261 const struct GEN8_MEDIA_OBJECT_WALKER
* restrict values
)
6263 uint32_t *dw
= (uint32_t * restrict
) dst
;
6266 __gen_field(values
->CommandType
, 29, 31) |
6267 __gen_field(values
->Pipeline
, 27, 28) |
6268 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6269 __gen_field(values
->SubOpcode
, 16, 23) |
6270 __gen_field(values
->DwordLength
, 0, 15) |
6274 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6278 __gen_field(values
->ChildrenPresent
, 31, 31) |
6279 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6280 __gen_field(values
->UseScoreboard
, 21, 21) |
6281 __gen_field(values
->IndirectDataLength
, 0, 16) |
6285 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
6292 __gen_field(values
->GroupIDLoopSelect
, 8, 31) |
6293 __gen_field(values
->ScoreboardMask
, 0, 7) |
6297 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
6298 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
6299 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
6300 __gen_field(values
->MidLoopUnitX
, 8, 9) |
6304 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
6305 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
6309 __gen_field(values
->BlockResolutionY
, 16, 24) |
6310 __gen_field(values
->BlockResolutionX
, 0, 8) |
6314 __gen_field(values
->LocalStartY
, 16, 24) |
6315 __gen_field(values
->LocalStartX
, 0, 8) |
6322 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
6323 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
6327 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
6328 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
6332 __gen_field(values
->GlobalResolutionY
, 16, 24) |
6333 __gen_field(values
->GlobalResolutionX
, 0, 8) |
6337 __gen_field(values
->GlobalStartY
, 16, 25) |
6338 __gen_field(values
->GlobalStartX
, 0, 9) |
6342 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
6343 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
6347 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
6348 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
6351 /* variable length fields follow */
6354 #define GEN8_MEDIA_STATE_FLUSH_length 0x00000002
6355 #define GEN8_MEDIA_STATE_FLUSH_length_bias 0x00000002
6356 #define GEN8_MEDIA_STATE_FLUSH_header \
6359 .MediaCommandOpcode = 0, \
6363 struct GEN8_MEDIA_STATE_FLUSH
{
6364 uint32_t CommandType
;
6366 uint32_t MediaCommandOpcode
;
6368 uint32_t DwordLength
;
6370 uint32_t WatermarkRequired
;
6371 uint32_t InterfaceDescriptorOffset
;
6375 GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6376 const struct GEN8_MEDIA_STATE_FLUSH
* restrict values
)
6378 uint32_t *dw
= (uint32_t * restrict
) dst
;
6381 __gen_field(values
->CommandType
, 29, 31) |
6382 __gen_field(values
->Pipeline
, 27, 28) |
6383 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6384 __gen_field(values
->SubOpcode
, 16, 23) |
6385 __gen_field(values
->DwordLength
, 0, 15) |
6389 __gen_field(values
->FlushtoGO
, 7, 7) |
6390 __gen_field(values
->WatermarkRequired
, 6, 6) |
6391 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6396 #define GEN8_MEDIA_VFE_STATE_length 0x00000009
6397 #define GEN8_MEDIA_VFE_STATE_length_bias 0x00000002
6398 #define GEN8_MEDIA_VFE_STATE_header \
6401 .MediaCommandOpcode = 0, \
6405 struct GEN8_MEDIA_VFE_STATE
{
6406 uint32_t CommandType
;
6408 uint32_t MediaCommandOpcode
;
6410 uint32_t DwordLength
;
6411 uint32_t ScratchSpaceBasePointer
;
6413 uint32_t PerThreadScratchSpace
;
6414 uint32_t ScratchSpaceBasePointerHigh
;
6415 uint32_t MaximumNumberofThreads
;
6416 uint32_t NumberofURBEntries
;
6417 #define Maintainingtheexistingtimestampstate 0
6418 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
6419 uint32_t ResetGatewayTimer
;
6420 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
6421 #define BypassingOpenGatewayCloseGatewayprotocol 1
6422 uint32_t BypassGatewayControl
;
6423 uint32_t SliceDisable
;
6424 uint32_t URBEntryAllocationSize
;
6425 uint32_t CURBEAllocationSize
;
6426 #define Scoreboarddisabled 0
6427 #define Scoreboardenabled 1
6428 uint32_t ScoreboardEnable
;
6429 #define StallingScoreboard 0
6430 #define NonStallingScoreboard 1
6431 uint32_t ScoreboardType
;
6432 uint32_t ScoreboardMask
;
6433 uint32_t Scoreboard3DeltaY
;
6434 uint32_t Scoreboard3DeltaX
;
6435 uint32_t Scoreboard2DeltaY
;
6436 uint32_t Scoreboard2DeltaX
;
6437 uint32_t Scoreboard1DeltaY
;
6438 uint32_t Scoreboard1DeltaX
;
6439 uint32_t Scoreboard0DeltaY
;
6440 uint32_t Scoreboard0DeltaX
;
6441 uint32_t Scoreboard7DeltaY
;
6442 uint32_t Scoreboard7DeltaX
;
6443 uint32_t Scoreboard6DeltaY
;
6444 uint32_t Scoreboard6DeltaX
;
6445 uint32_t Scoreboard5DeltaY
;
6446 uint32_t Scoreboard5DeltaX
;
6447 uint32_t Scoreboard4DeltaY
;
6448 uint32_t Scoreboard4DeltaX
;
6452 GEN8_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6453 const struct GEN8_MEDIA_VFE_STATE
* restrict values
)
6455 uint32_t *dw
= (uint32_t * restrict
) dst
;
6458 __gen_field(values
->CommandType
, 29, 31) |
6459 __gen_field(values
->Pipeline
, 27, 28) |
6460 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6461 __gen_field(values
->SubOpcode
, 16, 23) |
6462 __gen_field(values
->DwordLength
, 0, 15) |
6466 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
6467 __gen_field(values
->StackSize
, 4, 7) |
6468 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
6472 __gen_offset(values
->ScratchSpaceBasePointerHigh
, 0, 15) |
6476 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
6477 __gen_field(values
->NumberofURBEntries
, 8, 15) |
6478 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
6479 __gen_field(values
->BypassGatewayControl
, 6, 6) |
6483 __gen_field(values
->SliceDisable
, 0, 1) |
6487 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
6488 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
6492 __gen_field(values
->ScoreboardEnable
, 31, 31) |
6493 __gen_field(values
->ScoreboardType
, 30, 30) |
6494 __gen_field(values
->ScoreboardMask
, 0, 7) |
6498 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
6499 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
6500 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
6501 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
6502 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
6503 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
6504 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
6505 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
6509 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
6510 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
6511 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
6512 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
6513 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
6514 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
6515 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
6516 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
6521 #define GEN8_MI_ARB_CHECK_length 0x00000001
6522 #define GEN8_MI_ARB_CHECK_length_bias 0x00000001
6523 #define GEN8_MI_ARB_CHECK_header \
6525 .MICommandOpcode = 5
6527 struct GEN8_MI_ARB_CHECK
{
6528 uint32_t CommandType
;
6529 uint32_t MICommandOpcode
;
6533 GEN8_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
6534 const struct GEN8_MI_ARB_CHECK
* restrict values
)
6536 uint32_t *dw
= (uint32_t * restrict
) dst
;
6539 __gen_field(values
->CommandType
, 29, 31) |
6540 __gen_field(values
->MICommandOpcode
, 23, 28) |
6545 #define GEN8_MI_BATCH_BUFFER_END_length 0x00000001
6546 #define GEN8_MI_BATCH_BUFFER_END_length_bias 0x00000001
6547 #define GEN8_MI_BATCH_BUFFER_END_header \
6549 .MICommandOpcode = 10
6551 struct GEN8_MI_BATCH_BUFFER_END
{
6552 uint32_t CommandType
;
6553 uint32_t MICommandOpcode
;
6557 GEN8_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6558 const struct GEN8_MI_BATCH_BUFFER_END
* restrict values
)
6560 uint32_t *dw
= (uint32_t * restrict
) dst
;
6563 __gen_field(values
->CommandType
, 29, 31) |
6564 __gen_field(values
->MICommandOpcode
, 23, 28) |
6569 #define GEN8_MI_BATCH_BUFFER_START_length 0x00000003
6570 #define GEN8_MI_BATCH_BUFFER_START_length_bias 0x00000002
6571 #define GEN8_MI_BATCH_BUFFER_START_header \
6573 .MICommandOpcode = 49, \
6576 struct GEN8_MI_BATCH_BUFFER_START
{
6577 uint32_t CommandType
;
6578 uint32_t MICommandOpcode
;
6579 #define _1stlevelbatch 0
6580 #define _2ndlevelbatch 1
6581 uint32_t _2ndLevelBatchBuffer
;
6582 bool AddOffsetEnable
;
6583 uint32_t PredicationEnable
;
6584 bool ResourceStreamerEnable
;
6587 uint32_t AddressSpaceIndicator
;
6588 uint32_t DwordLength
;
6589 __gen_address_type BatchBufferStartAddress
;
6590 __gen_address_type BatchBufferStartAddressHigh
;
6594 GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
6595 const struct GEN8_MI_BATCH_BUFFER_START
* restrict values
)
6597 uint32_t *dw
= (uint32_t * restrict
) dst
;
6600 __gen_field(values
->CommandType
, 29, 31) |
6601 __gen_field(values
->MICommandOpcode
, 23, 28) |
6602 __gen_field(values
->_2ndLevelBatchBuffer
, 22, 22) |
6603 __gen_field(values
->AddOffsetEnable
, 16, 16) |
6604 __gen_field(values
->PredicationEnable
, 15, 15) |
6605 __gen_field(values
->ResourceStreamerEnable
, 10, 10) |
6606 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
6607 __gen_field(values
->DwordLength
, 0, 7) |
6614 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
6620 __gen_combine_address(data
, &dw
[2], values
->BatchBufferStartAddressHigh
, dw2
);
6624 #define GEN8_MI_CLFLUSH_length_bias 0x00000002
6625 #define GEN8_MI_CLFLUSH_header \
6627 .MICommandOpcode = 39
6629 struct GEN8_MI_CLFLUSH
{
6630 uint32_t CommandType
;
6631 uint32_t MICommandOpcode
;
6632 #define PerProcessGraphicsAddress 0
6633 #define GlobalGraphicsAddress 1
6634 uint32_t UseGlobalGTT
;
6635 uint32_t DwordLength
;
6636 __gen_address_type PageBaseAddress
;
6637 uint32_t StartingCachelineOffset
;
6638 __gen_address_type PageBaseAddressHigh
;
6639 /* variable length fields follow */
6643 GEN8_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6644 const struct GEN8_MI_CLFLUSH
* restrict values
)
6646 uint32_t *dw
= (uint32_t * restrict
) dst
;
6649 __gen_field(values
->CommandType
, 29, 31) |
6650 __gen_field(values
->MICommandOpcode
, 23, 28) |
6651 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6652 __gen_field(values
->DwordLength
, 0, 9) |
6656 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
6660 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
6666 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
6668 /* variable length fields follow */
6671 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000003
6672 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
6673 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_header\
6675 .MICommandOpcode = 54, \
6676 .UseGlobalGTT = 0, \
6677 .CompareSemaphore = 0, \
6680 struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
{
6681 uint32_t CommandType
;
6682 uint32_t MICommandOpcode
;
6683 uint32_t UseGlobalGTT
;
6684 uint32_t CompareSemaphore
;
6685 uint32_t DwordLength
;
6686 uint32_t CompareDataDword
;
6687 __gen_address_type CompareAddress
;
6688 __gen_address_type CompareAddressHigh
;
6692 GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6693 const struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
6695 uint32_t *dw
= (uint32_t * restrict
) dst
;
6698 __gen_field(values
->CommandType
, 29, 31) |
6699 __gen_field(values
->MICommandOpcode
, 23, 28) |
6700 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6701 __gen_field(values
->CompareSemaphore
, 21, 21) |
6702 __gen_field(values
->DwordLength
, 0, 7) |
6706 __gen_field(values
->CompareDataDword
, 0, 31) |
6713 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
6719 __gen_combine_address(data
, &dw
[3], values
->CompareAddressHigh
, dw3
);
6723 #define GEN8_MI_COPY_MEM_MEM_length 0x00000005
6724 #define GEN8_MI_COPY_MEM_MEM_length_bias 0x00000002
6725 #define GEN8_MI_COPY_MEM_MEM_header \
6727 .MICommandOpcode = 46, \
6730 struct GEN8_MI_COPY_MEM_MEM
{
6731 uint32_t CommandType
;
6732 uint32_t MICommandOpcode
;
6733 #define PerProcessGraphicsAddress 0
6734 #define GlobalGraphicsAddress 1
6735 uint32_t UseGlobalGTTSource
;
6736 #define PerProcessGraphicsAddress 0
6737 #define GlobalGraphicsAddress 1
6738 uint32_t UseGlobalGTTDestination
;
6739 uint32_t DwordLength
;
6740 __gen_address_type DestinationMemoryAddress
;
6741 __gen_address_type SourceMemoryAddress
;
6745 GEN8_MI_COPY_MEM_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6746 const struct GEN8_MI_COPY_MEM_MEM
* restrict values
)
6748 uint32_t *dw
= (uint32_t * restrict
) dst
;
6751 __gen_field(values
->CommandType
, 29, 31) |
6752 __gen_field(values
->MICommandOpcode
, 23, 28) |
6753 __gen_field(values
->UseGlobalGTTSource
, 22, 22) |
6754 __gen_field(values
->UseGlobalGTTDestination
, 21, 21) |
6755 __gen_field(values
->DwordLength
, 0, 7) |
6762 __gen_combine_address(data
, &dw
[1], values
->DestinationMemoryAddress
, dw1
);
6771 __gen_combine_address(data
, &dw
[3], values
->SourceMemoryAddress
, dw3
);
6778 #define GEN8_MI_LOAD_REGISTER_IMM_length 0x00000003
6779 #define GEN8_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
6780 #define GEN8_MI_LOAD_REGISTER_IMM_header \
6782 .MICommandOpcode = 34, \
6785 struct GEN8_MI_LOAD_REGISTER_IMM
{
6786 uint32_t CommandType
;
6787 uint32_t MICommandOpcode
;
6788 uint32_t ByteWriteDisables
;
6789 uint32_t DwordLength
;
6790 uint32_t RegisterOffset
;
6795 GEN8_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6796 const struct GEN8_MI_LOAD_REGISTER_IMM
* restrict values
)
6798 uint32_t *dw
= (uint32_t * restrict
) dst
;
6801 __gen_field(values
->CommandType
, 29, 31) |
6802 __gen_field(values
->MICommandOpcode
, 23, 28) |
6803 __gen_field(values
->ByteWriteDisables
, 8, 11) |
6804 __gen_field(values
->DwordLength
, 0, 7) |
6808 __gen_offset(values
->RegisterOffset
, 2, 22) |
6812 __gen_field(values
->DataDWord
, 0, 31) |
6817 #define GEN8_MI_LOAD_REGISTER_MEM_length 0x00000004
6818 #define GEN8_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
6819 #define GEN8_MI_LOAD_REGISTER_MEM_header \
6821 .MICommandOpcode = 41, \
6824 struct GEN8_MI_LOAD_REGISTER_MEM
{
6825 uint32_t CommandType
;
6826 uint32_t MICommandOpcode
;
6828 uint32_t AsyncModeEnable
;
6829 uint32_t DwordLength
;
6830 uint32_t RegisterAddress
;
6831 __gen_address_type MemoryAddress
;
6835 GEN8_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6836 const struct GEN8_MI_LOAD_REGISTER_MEM
* restrict values
)
6838 uint32_t *dw
= (uint32_t * restrict
) dst
;
6841 __gen_field(values
->CommandType
, 29, 31) |
6842 __gen_field(values
->MICommandOpcode
, 23, 28) |
6843 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6844 __gen_field(values
->AsyncModeEnable
, 21, 21) |
6845 __gen_field(values
->DwordLength
, 0, 7) |
6849 __gen_offset(values
->RegisterAddress
, 2, 22) |
6856 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6863 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
6864 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
6865 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_header \
6867 .MICommandOpcode = 19, \
6870 struct GEN8_MI_LOAD_SCAN_LINES_EXCL
{
6871 uint32_t CommandType
;
6872 uint32_t MICommandOpcode
;
6873 #define DisplayPlaneA 0
6874 #define DisplayPlaneB 1
6875 #define DisplayPlaneC 4
6876 uint32_t DisplayPlaneSelect
;
6877 uint32_t DwordLength
;
6878 uint32_t StartScanLineNumber
;
6879 uint32_t EndScanLineNumber
;
6883 GEN8_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data
*data
, void * restrict dst
,
6884 const struct GEN8_MI_LOAD_SCAN_LINES_EXCL
* restrict values
)
6886 uint32_t *dw
= (uint32_t * restrict
) dst
;
6889 __gen_field(values
->CommandType
, 29, 31) |
6890 __gen_field(values
->MICommandOpcode
, 23, 28) |
6891 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6892 __gen_field(values
->DwordLength
, 0, 5) |
6896 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6897 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6902 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
6903 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
6904 #define GEN8_MI_LOAD_SCAN_LINES_INCL_header \
6906 .MICommandOpcode = 18, \
6909 struct GEN8_MI_LOAD_SCAN_LINES_INCL
{
6910 uint32_t CommandType
;
6911 uint32_t MICommandOpcode
;
6912 #define DisplayPlaneA 0
6913 #define DisplayPlaneB 1
6914 #define DisplayPlaneC 4
6915 uint32_t DisplayPlaneSelect
;
6916 #define NeverForward 0
6917 #define AlwaysForward 1
6918 #define ConditionallyForward 2
6919 bool ScanLineEventDoneForward
;
6920 uint32_t DwordLength
;
6921 uint32_t StartScanLineNumber
;
6922 uint32_t EndScanLineNumber
;
6926 GEN8_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data
*data
, void * restrict dst
,
6927 const struct GEN8_MI_LOAD_SCAN_LINES_INCL
* restrict values
)
6929 uint32_t *dw
= (uint32_t * restrict
) dst
;
6932 __gen_field(values
->CommandType
, 29, 31) |
6933 __gen_field(values
->MICommandOpcode
, 23, 28) |
6934 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6935 __gen_field(values
->ScanLineEventDoneForward
, 17, 18) |
6936 __gen_field(values
->DwordLength
, 0, 5) |
6940 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6941 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6946 #define GEN8_MI_LOAD_URB_MEM_length 0x00000004
6947 #define GEN8_MI_LOAD_URB_MEM_length_bias 0x00000002
6948 #define GEN8_MI_LOAD_URB_MEM_header \
6950 .MICommandOpcode = 44, \
6953 struct GEN8_MI_LOAD_URB_MEM
{
6954 uint32_t CommandType
;
6955 uint32_t MICommandOpcode
;
6956 uint32_t DwordLength
;
6957 uint32_t URBAddress
;
6958 __gen_address_type MemoryAddress
;
6962 GEN8_MI_LOAD_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6963 const struct GEN8_MI_LOAD_URB_MEM
* restrict values
)
6965 uint32_t *dw
= (uint32_t * restrict
) dst
;
6968 __gen_field(values
->CommandType
, 29, 31) |
6969 __gen_field(values
->MICommandOpcode
, 23, 28) |
6970 __gen_field(values
->DwordLength
, 0, 7) |
6974 __gen_field(values
->URBAddress
, 2, 14) |
6981 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6988 #define GEN8_MI_MATH_length_bias 0x00000002
6989 #define GEN8_MI_MATH_header \
6991 .MICommandOpcode = 26
6993 struct GEN8_MI_MATH
{
6994 uint32_t CommandType
;
6995 uint32_t MICommandOpcode
;
6996 uint32_t DwordLength
;
6997 uint32_t ALUINSTRUCTION1
;
6998 uint32_t ALUINSTRUCTION2
;
6999 /* variable length fields follow */
7003 GEN8_MI_MATH_pack(__gen_user_data
*data
, void * restrict dst
,
7004 const struct GEN8_MI_MATH
* restrict values
)
7006 uint32_t *dw
= (uint32_t * restrict
) dst
;
7009 __gen_field(values
->CommandType
, 29, 31) |
7010 __gen_field(values
->MICommandOpcode
, 23, 28) |
7011 __gen_field(values
->DwordLength
, 0, 5) |
7015 __gen_field(values
->ALUINSTRUCTION1
, 0, 31) |
7019 __gen_field(values
->ALUINSTRUCTION2
, 0, 31) |
7022 /* variable length fields follow */
7025 #define GEN8_MI_NOOP_length 0x00000001
7026 #define GEN8_MI_NOOP_length_bias 0x00000001
7027 #define GEN8_MI_NOOP_header \
7029 .MICommandOpcode = 0
7031 struct GEN8_MI_NOOP
{
7032 uint32_t CommandType
;
7033 uint32_t MICommandOpcode
;
7034 bool IdentificationNumberRegisterWriteEnable
;
7035 uint32_t IdentificationNumber
;
7039 GEN8_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
7040 const struct GEN8_MI_NOOP
* restrict values
)
7042 uint32_t *dw
= (uint32_t * restrict
) dst
;
7045 __gen_field(values
->CommandType
, 29, 31) |
7046 __gen_field(values
->MICommandOpcode
, 23, 28) |
7047 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
7048 __gen_field(values
->IdentificationNumber
, 0, 21) |
7053 #define GEN8_MI_PREDICATE_length 0x00000001
7054 #define GEN8_MI_PREDICATE_length_bias 0x00000001
7055 #define GEN8_MI_PREDICATE_header \
7057 .MICommandOpcode = 12
7059 struct GEN8_MI_PREDICATE
{
7060 uint32_t CommandType
;
7061 uint32_t MICommandOpcode
;
7064 #define LOAD_LOADINV 3
7065 uint32_t LoadOperation
;
7066 #define COMBINE_SET 0
7067 #define COMBINE_AND 1
7068 #define COMBINE_OR 2
7069 #define COMBINE_XOR 3
7070 uint32_t CombineOperation
;
7071 #define COMPARE_SRCS_EQUAL 2
7072 #define COMPARE_DELTAS_EQUAL 3
7073 uint32_t CompareOperation
;
7077 GEN8_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7078 const struct GEN8_MI_PREDICATE
* restrict values
)
7080 uint32_t *dw
= (uint32_t * restrict
) dst
;
7083 __gen_field(values
->CommandType
, 29, 31) |
7084 __gen_field(values
->MICommandOpcode
, 23, 28) |
7085 __gen_field(values
->LoadOperation
, 6, 7) |
7086 __gen_field(values
->CombineOperation
, 3, 4) |
7087 __gen_field(values
->CompareOperation
, 0, 1) |
7092 #define GEN8_MI_REPORT_HEAD_length 0x00000001
7093 #define GEN8_MI_REPORT_HEAD_length_bias 0x00000001
7094 #define GEN8_MI_REPORT_HEAD_header \
7096 .MICommandOpcode = 7
7098 struct GEN8_MI_REPORT_HEAD
{
7099 uint32_t CommandType
;
7100 uint32_t MICommandOpcode
;
7104 GEN8_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
7105 const struct GEN8_MI_REPORT_HEAD
* restrict values
)
7107 uint32_t *dw
= (uint32_t * restrict
) dst
;
7110 __gen_field(values
->CommandType
, 29, 31) |
7111 __gen_field(values
->MICommandOpcode
, 23, 28) |
7116 #define GEN8_MI_RS_CONTEXT_length 0x00000001
7117 #define GEN8_MI_RS_CONTEXT_length_bias 0x00000001
7118 #define GEN8_MI_RS_CONTEXT_header \
7120 .MICommandOpcode = 15
7122 struct GEN8_MI_RS_CONTEXT
{
7123 uint32_t CommandType
;
7124 uint32_t MICommandOpcode
;
7125 #define RS_RESTORE 0
7127 uint32_t ResourceStreamerSave
;
7131 GEN8_MI_RS_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7132 const struct GEN8_MI_RS_CONTEXT
* restrict values
)
7134 uint32_t *dw
= (uint32_t * restrict
) dst
;
7137 __gen_field(values
->CommandType
, 29, 31) |
7138 __gen_field(values
->MICommandOpcode
, 23, 28) |
7139 __gen_field(values
->ResourceStreamerSave
, 0, 0) |
7144 #define GEN8_MI_RS_CONTROL_length 0x00000001
7145 #define GEN8_MI_RS_CONTROL_length_bias 0x00000001
7146 #define GEN8_MI_RS_CONTROL_header \
7148 .MICommandOpcode = 6
7150 struct GEN8_MI_RS_CONTROL
{
7151 uint32_t CommandType
;
7152 uint32_t MICommandOpcode
;
7155 uint32_t ResourceStreamerControl
;
7159 GEN8_MI_RS_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7160 const struct GEN8_MI_RS_CONTROL
* restrict values
)
7162 uint32_t *dw
= (uint32_t * restrict
) dst
;
7165 __gen_field(values
->CommandType
, 29, 31) |
7166 __gen_field(values
->MICommandOpcode
, 23, 28) |
7167 __gen_field(values
->ResourceStreamerControl
, 0, 0) |
7172 #define GEN8_MI_RS_STORE_DATA_IMM_length 0x00000004
7173 #define GEN8_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
7174 #define GEN8_MI_RS_STORE_DATA_IMM_header \
7176 .MICommandOpcode = 43, \
7179 struct GEN8_MI_RS_STORE_DATA_IMM
{
7180 uint32_t CommandType
;
7181 uint32_t MICommandOpcode
;
7182 uint32_t DwordLength
;
7183 __gen_address_type DestinationAddress
;
7184 uint32_t CoreModeEnable
;
7185 uint32_t DataDWord0
;
7189 GEN8_MI_RS_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7190 const struct GEN8_MI_RS_STORE_DATA_IMM
* restrict values
)
7192 uint32_t *dw
= (uint32_t * restrict
) dst
;
7195 __gen_field(values
->CommandType
, 29, 31) |
7196 __gen_field(values
->MICommandOpcode
, 23, 28) |
7197 __gen_field(values
->DwordLength
, 0, 7) |
7201 __gen_field(values
->CoreModeEnable
, 0, 0) |
7205 __gen_combine_address(data
, &dw
[1], values
->DestinationAddress
, dw1
);
7211 __gen_field(values
->DataDWord0
, 0, 31) |
7216 #define GEN8_MI_SET_CONTEXT_length 0x00000002
7217 #define GEN8_MI_SET_CONTEXT_length_bias 0x00000002
7218 #define GEN8_MI_SET_CONTEXT_header \
7220 .MICommandOpcode = 24, \
7223 struct GEN8_MI_SET_CONTEXT
{
7224 uint32_t CommandType
;
7225 uint32_t MICommandOpcode
;
7226 uint32_t DwordLength
;
7227 __gen_address_type LogicalContextAddress
;
7228 uint32_t ReservedMustbe1
;
7229 bool CoreModeEnable
;
7230 bool ResourceStreamerStateSaveEnable
;
7231 bool ResourceStreamerStateRestoreEnable
;
7232 uint32_t ForceRestore
;
7233 uint32_t RestoreInhibit
;
7237 GEN8_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7238 const struct GEN8_MI_SET_CONTEXT
* restrict values
)
7240 uint32_t *dw
= (uint32_t * restrict
) dst
;
7243 __gen_field(values
->CommandType
, 29, 31) |
7244 __gen_field(values
->MICommandOpcode
, 23, 28) |
7245 __gen_field(values
->DwordLength
, 0, 7) |
7249 __gen_field(values
->ReservedMustbe1
, 8, 8) |
7250 __gen_field(values
->CoreModeEnable
, 4, 4) |
7251 __gen_field(values
->ResourceStreamerStateSaveEnable
, 3, 3) |
7252 __gen_field(values
->ResourceStreamerStateRestoreEnable
, 2, 2) |
7253 __gen_field(values
->ForceRestore
, 1, 1) |
7254 __gen_field(values
->RestoreInhibit
, 0, 0) |
7258 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
7262 #define GEN8_MI_SET_PREDICATE_length 0x00000001
7263 #define GEN8_MI_SET_PREDICATE_length_bias 0x00000001
7264 #define GEN8_MI_SET_PREDICATE_header \
7266 .MICommandOpcode = 1
7268 struct GEN8_MI_SET_PREDICATE
{
7269 uint32_t CommandType
;
7270 uint32_t MICommandOpcode
;
7272 #define NOOPonResult2clear 1
7273 #define NOOPonResult2set 2
7274 #define NOOPonResultclear 3
7275 #define NOOPonResultset 4
7276 #define Executewhenonesliceenabled 5
7277 #define Executewhentwoslicesareenabled 6
7278 #define Executewhenthreeslicesareenabled 7
7279 #define NOOPAlways 15
7280 uint32_t PREDICATEENABLE
;
7284 GEN8_MI_SET_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7285 const struct GEN8_MI_SET_PREDICATE
* restrict values
)
7287 uint32_t *dw
= (uint32_t * restrict
) dst
;
7290 __gen_field(values
->CommandType
, 29, 31) |
7291 __gen_field(values
->MICommandOpcode
, 23, 28) |
7292 __gen_field(values
->PREDICATEENABLE
, 0, 3) |
7297 #define GEN8_MI_STORE_DATA_IMM_length 0x00000004
7298 #define GEN8_MI_STORE_DATA_IMM_length_bias 0x00000002
7299 #define GEN8_MI_STORE_DATA_IMM_header \
7301 .MICommandOpcode = 32, \
7304 struct GEN8_MI_STORE_DATA_IMM
{
7305 uint32_t CommandType
;
7306 uint32_t MICommandOpcode
;
7309 uint32_t DwordLength
;
7310 __gen_address_type Address
;
7311 uint32_t CoreModeEnable
;
7312 uint32_t DataDWord0
;
7313 uint32_t DataDWord1
;
7317 GEN8_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7318 const struct GEN8_MI_STORE_DATA_IMM
* restrict values
)
7320 uint32_t *dw
= (uint32_t * restrict
) dst
;
7323 __gen_field(values
->CommandType
, 29, 31) |
7324 __gen_field(values
->MICommandOpcode
, 23, 28) |
7325 __gen_field(values
->UseGlobalGTT
, 22, 22) |
7326 __gen_field(values
->StoreQword
, 21, 21) |
7327 __gen_field(values
->DwordLength
, 0, 9) |
7331 __gen_field(values
->CoreModeEnable
, 0, 0) |
7335 __gen_combine_address(data
, &dw
[1], values
->Address
, dw1
);
7341 __gen_field(values
->DataDWord0
, 0, 31) |
7345 __gen_field(values
->DataDWord1
, 0, 31) |
7350 #define GEN8_MI_STORE_DATA_INDEX_length 0x00000003
7351 #define GEN8_MI_STORE_DATA_INDEX_length_bias 0x00000002
7352 #define GEN8_MI_STORE_DATA_INDEX_header \
7354 .MICommandOpcode = 33, \
7357 struct GEN8_MI_STORE_DATA_INDEX
{
7358 uint32_t CommandType
;
7359 uint32_t MICommandOpcode
;
7360 uint32_t UsePerProcessHardwareStatusPage
;
7361 uint32_t DwordLength
;
7363 uint32_t DataDWord0
;
7364 uint32_t DataDWord1
;
7368 GEN8_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
7369 const struct GEN8_MI_STORE_DATA_INDEX
* restrict values
)
7371 uint32_t *dw
= (uint32_t * restrict
) dst
;
7374 __gen_field(values
->CommandType
, 29, 31) |
7375 __gen_field(values
->MICommandOpcode
, 23, 28) |
7376 __gen_field(values
->UsePerProcessHardwareStatusPage
, 21, 21) |
7377 __gen_field(values
->DwordLength
, 0, 7) |
7381 __gen_field(values
->Offset
, 2, 11) |
7385 __gen_field(values
->DataDWord0
, 0, 31) |
7389 __gen_field(values
->DataDWord1
, 0, 31) |
7394 #define GEN8_MI_STORE_URB_MEM_length 0x00000004
7395 #define GEN8_MI_STORE_URB_MEM_length_bias 0x00000002
7396 #define GEN8_MI_STORE_URB_MEM_header \
7398 .MICommandOpcode = 45, \
7401 struct GEN8_MI_STORE_URB_MEM
{
7402 uint32_t CommandType
;
7403 uint32_t MICommandOpcode
;
7404 uint32_t DwordLength
;
7405 uint32_t URBAddress
;
7406 __gen_address_type MemoryAddress
;
7410 GEN8_MI_STORE_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7411 const struct GEN8_MI_STORE_URB_MEM
* restrict values
)
7413 uint32_t *dw
= (uint32_t * restrict
) dst
;
7416 __gen_field(values
->CommandType
, 29, 31) |
7417 __gen_field(values
->MICommandOpcode
, 23, 28) |
7418 __gen_field(values
->DwordLength
, 0, 7) |
7422 __gen_field(values
->URBAddress
, 2, 14) |
7429 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
7436 #define GEN8_MI_SUSPEND_FLUSH_length 0x00000001
7437 #define GEN8_MI_SUSPEND_FLUSH_length_bias 0x00000001
7438 #define GEN8_MI_SUSPEND_FLUSH_header \
7440 .MICommandOpcode = 11
7442 struct GEN8_MI_SUSPEND_FLUSH
{
7443 uint32_t CommandType
;
7444 uint32_t MICommandOpcode
;
7449 GEN8_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
7450 const struct GEN8_MI_SUSPEND_FLUSH
* restrict values
)
7452 uint32_t *dw
= (uint32_t * restrict
) dst
;
7455 __gen_field(values
->CommandType
, 29, 31) |
7456 __gen_field(values
->MICommandOpcode
, 23, 28) |
7457 __gen_field(values
->SuspendFlush
, 0, 0) |
7462 #define GEN8_MI_TOPOLOGY_FILTER_length 0x00000001
7463 #define GEN8_MI_TOPOLOGY_FILTER_length_bias 0x00000001
7464 #define GEN8_MI_TOPOLOGY_FILTER_header \
7466 .MICommandOpcode = 13
7468 struct GEN8_MI_TOPOLOGY_FILTER
{
7469 uint32_t CommandType
;
7470 uint32_t MICommandOpcode
;
7471 uint32_t TopologyFilterValue
;
7475 GEN8_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
7476 const struct GEN8_MI_TOPOLOGY_FILTER
* restrict values
)
7478 uint32_t *dw
= (uint32_t * restrict
) dst
;
7481 __gen_field(values
->CommandType
, 29, 31) |
7482 __gen_field(values
->MICommandOpcode
, 23, 28) |
7483 __gen_field(values
->TopologyFilterValue
, 0, 5) |
7488 #define GEN8_MI_UPDATE_GTT_length_bias 0x00000002
7489 #define GEN8_MI_UPDATE_GTT_header \
7491 .MICommandOpcode = 35
7493 struct GEN8_MI_UPDATE_GTT
{
7494 uint32_t CommandType
;
7495 uint32_t MICommandOpcode
;
7496 uint32_t DwordLength
;
7497 __gen_address_type EntryAddress
;
7498 /* variable length fields follow */
7502 GEN8_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
7503 const struct GEN8_MI_UPDATE_GTT
* restrict values
)
7505 uint32_t *dw
= (uint32_t * restrict
) dst
;
7508 __gen_field(values
->CommandType
, 29, 31) |
7509 __gen_field(values
->MICommandOpcode
, 23, 28) |
7510 __gen_field(values
->DwordLength
, 0, 9) |
7517 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
7519 /* variable length fields follow */
7522 #define GEN8_MI_URB_ATOMIC_ALLOC_length 0x00000001
7523 #define GEN8_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
7524 #define GEN8_MI_URB_ATOMIC_ALLOC_header \
7526 .MICommandOpcode = 9
7528 struct GEN8_MI_URB_ATOMIC_ALLOC
{
7529 uint32_t CommandType
;
7530 uint32_t MICommandOpcode
;
7531 uint32_t URBAtomicStorageOffset
;
7532 uint32_t URBAtomicStorageSize
;
7536 GEN8_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
7537 const struct GEN8_MI_URB_ATOMIC_ALLOC
* restrict values
)
7539 uint32_t *dw
= (uint32_t * restrict
) dst
;
7542 __gen_field(values
->CommandType
, 29, 31) |
7543 __gen_field(values
->MICommandOpcode
, 23, 28) |
7544 __gen_field(values
->URBAtomicStorageOffset
, 12, 19) |
7545 __gen_field(values
->URBAtomicStorageSize
, 0, 8) |
7550 #define GEN8_MI_URB_CLEAR_length 0x00000002
7551 #define GEN8_MI_URB_CLEAR_length_bias 0x00000002
7552 #define GEN8_MI_URB_CLEAR_header \
7554 .MICommandOpcode = 25, \
7557 struct GEN8_MI_URB_CLEAR
{
7558 uint32_t CommandType
;
7559 uint32_t MICommandOpcode
;
7560 uint32_t DwordLength
;
7561 uint32_t URBClearLength
;
7562 uint32_t URBAddress
;
7566 GEN8_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
7567 const struct GEN8_MI_URB_CLEAR
* restrict values
)
7569 uint32_t *dw
= (uint32_t * restrict
) dst
;
7572 __gen_field(values
->CommandType
, 29, 31) |
7573 __gen_field(values
->MICommandOpcode
, 23, 28) |
7574 __gen_field(values
->DwordLength
, 0, 7) |
7578 __gen_field(values
->URBClearLength
, 16, 29) |
7579 __gen_offset(values
->URBAddress
, 0, 14) |
7584 #define GEN8_MI_USER_INTERRUPT_length 0x00000001
7585 #define GEN8_MI_USER_INTERRUPT_length_bias 0x00000001
7586 #define GEN8_MI_USER_INTERRUPT_header \
7588 .MICommandOpcode = 2
7590 struct GEN8_MI_USER_INTERRUPT
{
7591 uint32_t CommandType
;
7592 uint32_t MICommandOpcode
;
7596 GEN8_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
7597 const struct GEN8_MI_USER_INTERRUPT
* restrict values
)
7599 uint32_t *dw
= (uint32_t * restrict
) dst
;
7602 __gen_field(values
->CommandType
, 29, 31) |
7603 __gen_field(values
->MICommandOpcode
, 23, 28) |
7608 #define GEN8_MI_WAIT_FOR_EVENT_length 0x00000001
7609 #define GEN8_MI_WAIT_FOR_EVENT_length_bias 0x00000001
7610 #define GEN8_MI_WAIT_FOR_EVENT_header \
7612 .MICommandOpcode = 3
7614 struct GEN8_MI_WAIT_FOR_EVENT
{
7615 uint32_t CommandType
;
7616 uint32_t MICommandOpcode
;
7617 bool DisplayPipeCVerticalBlankWaitEnable
;
7618 bool DisplaySpriteCFlipPendingWaitEnable
;
7619 bool DisplayPlaneCFlipPendingWaitEnable
;
7620 bool DisplayPipeCScanLineWaitEnable
;
7621 bool DisplayPipeBVerticalBlankWaitEnable
;
7622 bool DisplaySpriteBFlipPendingWaitEnable
;
7623 bool DisplayPlaneBFlipPendingWaitEnable
;
7624 bool DisplayPipeBScanLineWaitEnable
;
7625 bool DisplayPipeAVerticalBlankWaitEnable
;
7626 bool DisplaySpriteAFlipPendingWaitEnable
;
7627 bool DisplayPlaneAFlipPendingWaitEnable
;
7628 bool DisplayPipeAScanLineWaitEnable
;
7632 GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
7633 const struct GEN8_MI_WAIT_FOR_EVENT
* restrict values
)
7635 uint32_t *dw
= (uint32_t * restrict
) dst
;
7638 __gen_field(values
->CommandType
, 29, 31) |
7639 __gen_field(values
->MICommandOpcode
, 23, 28) |
7640 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
7641 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
7642 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
7643 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
7644 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
7645 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
7646 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
7647 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
7648 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
7649 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
7650 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
7651 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
7656 #define GEN8_PIPE_CONTROL_length 0x00000006
7657 #define GEN8_PIPE_CONTROL_length_bias 0x00000002
7658 #define GEN8_PIPE_CONTROL_header \
7660 .CommandSubType = 3, \
7661 ._3DCommandOpcode = 2, \
7662 ._3DCommandSubOpcode = 0, \
7665 struct GEN8_PIPE_CONTROL
{
7666 uint32_t CommandType
;
7667 uint32_t CommandSubType
;
7668 uint32_t _3DCommandOpcode
;
7669 uint32_t _3DCommandSubOpcode
;
7670 uint32_t DwordLength
;
7673 uint32_t DestinationAddressType
;
7674 #define NoLRIOperation 0
7675 #define MMIOWriteImmediateData 1
7676 uint32_t LRIPostSyncOperation
;
7677 uint32_t StoreDataIndex
;
7678 uint32_t CommandStreamerStallEnable
;
7681 uint32_t GlobalSnapshotCountReset
;
7682 uint32_t TLBInvalidate
;
7683 bool GenericMediaStateClear
;
7685 #define WriteImmediateData 1
7686 #define WritePSDepthCount 2
7687 #define WriteTimestamp 3
7688 uint32_t PostSyncOperation
;
7689 bool DepthStallEnable
;
7690 #define DisableFlush 0
7691 #define EnableFlush 1
7692 bool RenderTargetCacheFlushEnable
;
7693 bool InstructionCacheInvalidateEnable
;
7694 bool TextureCacheInvalidationEnable
;
7695 bool IndirectStatePointersDisable
;
7697 bool PipeControlFlushEnable
;
7699 bool VFCacheInvalidationEnable
;
7700 bool ConstantCacheInvalidationEnable
;
7701 bool StateCacheInvalidationEnable
;
7702 bool StallAtPixelScoreboard
;
7703 #define FlushDisabled 0
7704 #define FlushEnabled 1
7705 bool DepthCacheFlushEnable
;
7706 __gen_address_type Address
;
7707 __gen_address_type AddressHigh
;
7708 uint64_t ImmediateData
;
7712 GEN8_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7713 const struct GEN8_PIPE_CONTROL
* restrict values
)
7715 uint32_t *dw
= (uint32_t * restrict
) dst
;
7718 __gen_field(values
->CommandType
, 29, 31) |
7719 __gen_field(values
->CommandSubType
, 27, 28) |
7720 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
7721 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
7722 __gen_field(values
->DwordLength
, 0, 7) |
7726 __gen_field(values
->DestinationAddressType
, 24, 24) |
7727 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
7728 __gen_field(values
->StoreDataIndex
, 21, 21) |
7729 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
7730 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
7731 __gen_field(values
->TLBInvalidate
, 18, 18) |
7732 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
7733 __gen_field(values
->PostSyncOperation
, 14, 15) |
7734 __gen_field(values
->DepthStallEnable
, 13, 13) |
7735 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
7736 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
7737 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
7738 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
7739 __gen_field(values
->NotifyEnable
, 8, 8) |
7740 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
7741 __gen_field(values
->DCFlushEnable
, 5, 5) |
7742 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
7743 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
7744 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
7745 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
7746 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
7753 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
7759 __gen_combine_address(data
, &dw
[3], values
->AddressHigh
, dw3
);
7762 __gen_field(values
->ImmediateData
, 0, 63) |
7770 #define GEN8_3DSTATE_CONSTANT_BODY_length 0x0000000a
7772 #define GEN8_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
7774 #define GEN8_GATHER_CONSTANT_ENTRY_length 0x00000001
7776 #define GEN8_VERTEX_BUFFER_STATE_length 0x00000004
7778 #define GEN8_VERTEX_ELEMENT_STATE_length 0x00000002
7780 #define GEN8_SO_DECL_ENTRY_length 0x00000002
7782 #define GEN8_SO_DECL_length 0x00000001
7784 #define GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
7786 #define GEN8_SCISSOR_RECT_length 0x00000002
7788 struct GEN8_SCISSOR_RECT
{
7789 uint32_t ScissorRectangleYMin
;
7790 uint32_t ScissorRectangleXMin
;
7791 uint32_t ScissorRectangleYMax
;
7792 uint32_t ScissorRectangleXMax
;
7796 GEN8_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
7797 const struct GEN8_SCISSOR_RECT
* restrict values
)
7799 uint32_t *dw
= (uint32_t * restrict
) dst
;
7802 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
7803 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
7807 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
7808 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
7813 #define GEN8_SF_CLIP_VIEWPORT_length 0x00000010
7815 struct GEN8_SF_CLIP_VIEWPORT
{
7816 float ViewportMatrixElementm00
;
7817 float ViewportMatrixElementm11
;
7818 float ViewportMatrixElementm22
;
7819 float ViewportMatrixElementm30
;
7820 float ViewportMatrixElementm31
;
7821 float ViewportMatrixElementm32
;
7822 float XMinClipGuardband
;
7823 float XMaxClipGuardband
;
7824 float YMinClipGuardband
;
7825 float YMaxClipGuardband
;
7833 GEN8_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7834 const struct GEN8_SF_CLIP_VIEWPORT
* restrict values
)
7836 uint32_t *dw
= (uint32_t * restrict
) dst
;
7839 __gen_float(values
->ViewportMatrixElementm00
) |
7843 __gen_float(values
->ViewportMatrixElementm11
) |
7847 __gen_float(values
->ViewportMatrixElementm22
) |
7851 __gen_float(values
->ViewportMatrixElementm30
) |
7855 __gen_float(values
->ViewportMatrixElementm31
) |
7859 __gen_float(values
->ViewportMatrixElementm32
) |
7869 __gen_float(values
->XMinClipGuardband
) |
7873 __gen_float(values
->XMaxClipGuardband
) |
7877 __gen_float(values
->YMinClipGuardband
) |
7881 __gen_float(values
->YMaxClipGuardband
) |
7885 __gen_float(values
->XMinViewPort
) |
7889 __gen_float(values
->XMaxViewPort
) |
7893 __gen_float(values
->YMinViewPort
) |
7897 __gen_float(values
->YMaxViewPort
) |
7902 #define GEN8_BLEND_STATE_length 0x00000011
7904 struct GEN8_BLEND_STATE_ENTRY
{
7906 uint32_t LogicOpFunction
;
7907 uint32_t PreBlendSourceOnlyClampEnable
;
7908 #define COLORCLAMP_UNORM 0
7909 #define COLORCLAMP_SNORM 1
7910 #define COLORCLAMP_RTFORMAT 2
7911 uint32_t ColorClampRange
;
7912 bool PreBlendColorClampEnable
;
7913 bool PostBlendColorClampEnable
;
7914 bool ColorBufferBlendEnable
;
7915 uint32_t SourceBlendFactor
;
7916 uint32_t DestinationBlendFactor
;
7917 uint32_t ColorBlendFunction
;
7918 uint32_t SourceAlphaBlendFactor
;
7919 uint32_t DestinationAlphaBlendFactor
;
7920 uint32_t AlphaBlendFunction
;
7921 bool WriteDisableAlpha
;
7922 bool WriteDisableRed
;
7923 bool WriteDisableGreen
;
7924 bool WriteDisableBlue
;
7928 GEN8_BLEND_STATE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
7929 const struct GEN8_BLEND_STATE_ENTRY
* restrict values
)
7931 uint32_t *dw
= (uint32_t * restrict
) dst
;
7934 __gen_field(values
->LogicOpEnable
, 63, 63) |
7935 __gen_field(values
->LogicOpFunction
, 59, 62) |
7936 __gen_field(values
->PreBlendSourceOnlyClampEnable
, 36, 36) |
7937 __gen_field(values
->ColorClampRange
, 34, 35) |
7938 __gen_field(values
->PreBlendColorClampEnable
, 33, 33) |
7939 __gen_field(values
->PostBlendColorClampEnable
, 32, 32) |
7940 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
7941 __gen_field(values
->SourceBlendFactor
, 26, 30) |
7942 __gen_field(values
->DestinationBlendFactor
, 21, 25) |
7943 __gen_field(values
->ColorBlendFunction
, 18, 20) |
7944 __gen_field(values
->SourceAlphaBlendFactor
, 13, 17) |
7945 __gen_field(values
->DestinationAlphaBlendFactor
, 8, 12) |
7946 __gen_field(values
->AlphaBlendFunction
, 5, 7) |
7947 __gen_field(values
->WriteDisableAlpha
, 3, 3) |
7948 __gen_field(values
->WriteDisableRed
, 2, 2) |
7949 __gen_field(values
->WriteDisableGreen
, 1, 1) |
7950 __gen_field(values
->WriteDisableBlue
, 0, 0) |
7955 struct GEN8_BLEND_STATE
{
7956 bool AlphaToCoverageEnable
;
7957 bool IndependentAlphaBlendEnable
;
7958 bool AlphaToOneEnable
;
7959 bool AlphaToCoverageDitherEnable
;
7960 bool AlphaTestEnable
;
7961 uint32_t AlphaTestFunction
;
7962 bool ColorDitherEnable
;
7963 uint32_t XDitherOffset
;
7964 uint32_t YDitherOffset
;
7965 struct GEN8_BLEND_STATE_ENTRY Entry
;
7969 GEN8_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7970 const struct GEN8_BLEND_STATE
* restrict values
)
7972 uint32_t *dw
= (uint32_t * restrict
) dst
;
7975 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
7976 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
7977 __gen_field(values
->AlphaToOneEnable
, 29, 29) |
7978 __gen_field(values
->AlphaToCoverageDitherEnable
, 28, 28) |
7979 __gen_field(values
->AlphaTestEnable
, 27, 27) |
7980 __gen_field(values
->AlphaTestFunction
, 24, 26) |
7981 __gen_field(values
->ColorDitherEnable
, 23, 23) |
7982 __gen_field(values
->XDitherOffset
, 21, 22) |
7983 __gen_field(values
->YDitherOffset
, 19, 20) |
7986 GEN8_BLEND_STATE_ENTRY_pack(data
, &dw
[1], &values
->Entry
);
7989 #define GEN8_BLEND_STATE_ENTRY_length 0x00000001
7991 #define GEN8_CC_VIEWPORT_length 0x00000002
7993 struct GEN8_CC_VIEWPORT
{
7999 GEN8_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
8000 const struct GEN8_CC_VIEWPORT
* restrict values
)
8002 uint32_t *dw
= (uint32_t * restrict
) dst
;
8005 __gen_float(values
->MinimumDepth
) |
8009 __gen_float(values
->MaximumDepth
) |
8014 #define GEN8_COLOR_CALC_STATE_length 0x00000006
8016 struct GEN8_COLOR_CALC_STATE
{
8017 uint32_t StencilReferenceValue
;
8018 uint32_t BackFaceStencilReferenceValue
;
8020 #define NotCancelled 1
8021 uint32_t RoundDisableFunctionDisable
;
8022 #define ALPHATEST_UNORM8 0
8023 #define ALPHATEST_FLOAT32 1
8024 uint32_t AlphaTestFormat
;
8025 uint32_t AlphaReferenceValueAsUNORM8
;
8026 float AlphaReferenceValueAsFLOAT32
;
8027 float BlendConstantColorRed
;
8028 float BlendConstantColorGreen
;
8029 float BlendConstantColorBlue
;
8030 float BlendConstantColorAlpha
;
8034 GEN8_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8035 const struct GEN8_COLOR_CALC_STATE
* restrict values
)
8037 uint32_t *dw
= (uint32_t * restrict
) dst
;
8040 __gen_field(values
->StencilReferenceValue
, 24, 31) |
8041 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
8042 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
8043 __gen_field(values
->AlphaTestFormat
, 0, 0) |
8047 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
8048 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
8052 __gen_float(values
->BlendConstantColorRed
) |
8056 __gen_float(values
->BlendConstantColorGreen
) |
8060 __gen_float(values
->BlendConstantColorBlue
) |
8064 __gen_float(values
->BlendConstantColorAlpha
) |
8069 #define GEN8_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
8071 #define GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001
8073 struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
{
8074 #define UseCacheabilityControlsfrompagetableUCwithFenceifcoherentcycle 0
8075 #define UncacheableUCnoncacheable 1
8076 #define WritethroughWT 2
8077 #define WritebackWB 3
8078 uint32_t MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
;
8081 #define LLCeLLCAllowed 2
8082 #define L3LLCeLLCAllowed 3
8083 uint32_t TargetCacheTC
;
8085 #define PoorChance 3
8086 #define NormalChance 2
8087 #define BetterChance 1
8088 #define BestChance 0
8089 bool AgeforQUADLRUAGE
;
8093 GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_pack(__gen_user_data
*data
, void * restrict dst
,
8094 const struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
* restrict values
)
8096 uint32_t *dw
= (uint32_t * restrict
) dst
;
8099 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
, 5, 6) |
8100 __gen_field(values
->TargetCacheTC
, 3, 4) |
8101 __gen_field(values
->EncryptedData
, 2, 2) |
8102 __gen_field(values
->AgeforQUADLRUAGE
, 0, 1) |
8107 #define GEN8_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
8109 struct GEN8_INTERFACE_DESCRIPTOR_DATA
{
8110 uint32_t KernelStartPointer
;
8111 uint32_t KernelStartPointerHigh
;
8113 #define SetByKernel 1
8114 uint32_t DenormMode
;
8117 uint32_t SingleProgramFlow
;
8118 #define NormalPriority 0
8119 #define HighPriority 1
8120 uint32_t ThreadPriority
;
8123 uint32_t FloatingPointMode
;
8124 bool IllegalOpcodeExceptionEnable
;
8125 bool MaskStackExceptionEnable
;
8126 bool SoftwareExceptionEnable
;
8127 uint32_t SamplerStatePointer
;
8128 #define Nosamplersused 0
8129 #define Between1and4samplersused 1
8130 #define Between5and8samplersused 2
8131 #define Between9and12samplersused 3
8132 #define Between13and16samplersused 4
8133 uint32_t SamplerCount
;
8134 uint32_t BindingTablePointer
;
8135 uint32_t BindingTableEntryCount
;
8136 uint32_t ConstantIndirectURBEntryReadLength
;
8137 uint32_t ConstantURBEntryReadOffset
;
8142 uint32_t RoundingMode
;
8147 #define Encodes16k 4
8148 #define Encodes32k 8
8149 #define Encodes64k 16
8150 uint32_t SharedLocalMemorySize
;
8151 uint32_t NumberofThreadsinGPGPUThreadGroup
;
8152 uint32_t CrossThreadConstantDataReadLength
;
8156 GEN8_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
8157 const struct GEN8_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
8159 uint32_t *dw
= (uint32_t * restrict
) dst
;
8162 __gen_offset(values
->KernelStartPointer
, 6, 31) |
8166 __gen_offset(values
->KernelStartPointerHigh
, 0, 15) |
8170 __gen_field(values
->DenormMode
, 19, 19) |
8171 __gen_field(values
->SingleProgramFlow
, 18, 18) |
8172 __gen_field(values
->ThreadPriority
, 17, 17) |
8173 __gen_field(values
->FloatingPointMode
, 16, 16) |
8174 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
8175 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
8176 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
8180 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
8181 __gen_field(values
->SamplerCount
, 2, 4) |
8185 __gen_offset(values
->BindingTablePointer
, 5, 15) |
8186 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
8190 __gen_field(values
->ConstantIndirectURBEntryReadLength
, 16, 31) |
8191 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
8195 __gen_field(values
->RoundingMode
, 22, 23) |
8196 __gen_field(values
->BarrierEnable
, 21, 21) |
8197 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
8198 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 9) |
8202 __gen_field(values
->CrossThreadConstantDataReadLength
, 0, 7) |
8207 #define GEN8_PALETTE_ENTRY_length 0x00000001
8209 #define GEN8_BINDING_TABLE_STATE_length 0x00000001
8211 struct GEN8_BINDING_TABLE_STATE
{
8212 uint32_t SurfaceStatePointer
;
8216 GEN8_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8217 const struct GEN8_BINDING_TABLE_STATE
* restrict values
)
8219 uint32_t *dw
= (uint32_t * restrict
) dst
;
8222 __gen_offset(values
->SurfaceStatePointer
, 6, 31) |
8227 #define GEN8_RENDER_SURFACE_STATE_length 0x00000010
8229 struct GEN8_RENDER_SURFACE_STATE
{
8230 #define SURFTYPE_1D 0
8231 #define SURFTYPE_2D 1
8232 #define SURFTYPE_3D 2
8233 #define SURFTYPE_CUBE 3
8234 #define SURFTYPE_BUFFER 4
8235 #define SURFTYPE_STRBUF 5
8236 #define SURFTYPE_NULL 7
8237 uint32_t SurfaceType
;
8239 uint32_t SurfaceFormat
;
8243 uint32_t SurfaceVerticalAlignment
;
8247 uint32_t SurfaceHorizontalAlignment
;
8253 uint32_t VerticalLineStride
;
8254 uint32_t VerticalLineStrideOffset
;
8255 bool SamplerL2BypassModeDisable
;
8256 #define WriteOnlyCache 0
8257 #define ReadWriteCache 1
8258 uint32_t RenderCacheReadWriteMode
;
8259 #define NORMAL_MODE 0
8260 #define PROGRESSIVE_FRAME 2
8261 #define INTERLACED_FRAME 3
8262 uint32_t MediaBoundaryPixelMode
;
8263 bool CubeFaceEnablePositiveZ
;
8264 bool CubeFaceEnableNegativeZ
;
8265 bool CubeFaceEnablePositiveY
;
8266 bool CubeFaceEnableNegativeY
;
8267 bool CubeFaceEnablePositiveX
;
8268 bool CubeFaceEnableNegativeX
;
8269 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
8271 uint32_t SurfaceQPitch
;
8275 uint32_t SurfacePitch
;
8279 uint32_t RenderTargetAndSampleUnormRotation
;
8280 uint32_t MinimumArrayElement
;
8281 uint32_t RenderTargetViewExtent
;
8283 #define DEPTH_STENCIL 1
8284 uint32_t MultisampledSurfaceStorageFormat
;
8285 #define MULTISAMPLECOUNT_1 0
8286 #define MULTISAMPLECOUNT_2 1
8287 #define MULTISAMPLECOUNT_4 2
8288 #define MULTISAMPLECOUNT_8 3
8289 uint32_t NumberofMultisamples
;
8290 uint32_t MultisamplePositionPaletteIndex
;
8293 bool EWADisableForCube
;
8294 #define GPUcoherent 0
8295 #define IAcoherent 1
8296 uint32_t CoherencyType
;
8297 uint32_t SurfaceMinLOD
;
8298 uint32_t MIPCountLOD
;
8299 uint32_t AuxiliarySurfaceQPitch
;
8300 uint32_t AuxiliarySurfacePitch
;
8303 #define AUX_APPEND 2
8305 uint32_t AuxiliarySurfaceMode
;
8306 bool SeparateUVPlaneEnable
;
8307 uint32_t XOffsetforUorUVPlane
;
8308 uint32_t YOffsetforUorUVPlane
;
8309 uint32_t RedClearColor
;
8310 uint32_t GreenClearColor
;
8311 uint32_t BlueClearColor
;
8312 uint32_t AlphaClearColor
;
8313 uint32_t ShaderChannelSelectRed
;
8314 uint32_t ShaderChannelSelectGreen
;
8315 uint32_t ShaderChannelSelectBlue
;
8316 uint32_t ShaderChannelSelectAlpha
;
8317 float ResourceMinLOD
;
8318 __gen_address_type SurfaceBaseAddress
;
8319 uint32_t XOffsetforVPlane
;
8320 uint32_t YOffsetforVPlane
;
8321 uint32_t AuxiliaryTableIndexforMediaCompressedSurface
;
8322 __gen_address_type AuxiliarySurfaceBaseAddress
;
8326 GEN8_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8327 const struct GEN8_RENDER_SURFACE_STATE
* restrict values
)
8329 uint32_t *dw
= (uint32_t * restrict
) dst
;
8332 __gen_field(values
->SurfaceType
, 29, 31) |
8333 __gen_field(values
->SurfaceArray
, 28, 28) |
8334 __gen_field(values
->SurfaceFormat
, 18, 26) |
8335 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
8336 __gen_field(values
->SurfaceHorizontalAlignment
, 14, 15) |
8337 __gen_field(values
->TileMode
, 12, 13) |
8338 __gen_field(values
->VerticalLineStride
, 11, 11) |
8339 __gen_field(values
->VerticalLineStrideOffset
, 10, 10) |
8340 __gen_field(values
->SamplerL2BypassModeDisable
, 9, 9) |
8341 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
8342 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
8343 __gen_field(values
->CubeFaceEnablePositiveZ
, 0, 0) |
8344 __gen_field(values
->CubeFaceEnableNegativeZ
, 1, 1) |
8345 __gen_field(values
->CubeFaceEnablePositiveY
, 2, 2) |
8346 __gen_field(values
->CubeFaceEnableNegativeY
, 3, 3) |
8347 __gen_field(values
->CubeFaceEnablePositiveX
, 4, 4) |
8348 __gen_field(values
->CubeFaceEnableNegativeX
, 5, 5) |
8351 uint32_t dw_MemoryObjectControlState
;
8352 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
8354 __gen_field(dw_MemoryObjectControlState
, 24, 30) |
8355 __gen_field(values
->BaseMipLevel
* (1 << 1), 19, 23) |
8356 __gen_field(values
->SurfaceQPitch
, 0, 14) |
8360 __gen_field(values
->Height
, 16, 29) |
8361 __gen_field(values
->Width
, 0, 13) |
8365 __gen_field(values
->Depth
, 21, 31) |
8366 __gen_field(values
->SurfacePitch
, 0, 17) |
8370 __gen_field(values
->RenderTargetAndSampleUnormRotation
, 29, 30) |
8371 __gen_field(values
->MinimumArrayElement
, 18, 28) |
8372 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
8373 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
8374 __gen_field(values
->NumberofMultisamples
, 3, 5) |
8375 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
8379 __gen_offset(values
->XOffset
, 25, 31) |
8380 __gen_offset(values
->YOffset
, 21, 23) |
8381 __gen_field(values
->EWADisableForCube
, 20, 20) |
8382 __gen_field(values
->CoherencyType
, 14, 14) |
8383 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
8384 __gen_field(values
->MIPCountLOD
, 0, 3) |
8388 __gen_field(values
->AuxiliarySurfaceQPitch
, 16, 30) |
8389 __gen_field(values
->AuxiliarySurfacePitch
, 3, 11) |
8390 __gen_field(values
->AuxiliarySurfaceMode
, 0, 2) |
8391 __gen_field(values
->SeparateUVPlaneEnable
, 31, 31) |
8392 __gen_field(values
->XOffsetforUorUVPlane
, 16, 29) |
8393 __gen_field(values
->YOffsetforUorUVPlane
, 0, 13) |
8397 __gen_field(values
->RedClearColor
, 31, 31) |
8398 __gen_field(values
->GreenClearColor
, 30, 30) |
8399 __gen_field(values
->BlueClearColor
, 29, 29) |
8400 __gen_field(values
->AlphaClearColor
, 28, 28) |
8401 __gen_field(values
->ShaderChannelSelectRed
, 25, 27) |
8402 __gen_field(values
->ShaderChannelSelectGreen
, 22, 24) |
8403 __gen_field(values
->ShaderChannelSelectBlue
, 19, 21) |
8404 __gen_field(values
->ShaderChannelSelectAlpha
, 16, 18) |
8405 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
8412 __gen_combine_address(data
, &dw
[8], values
->SurfaceBaseAddress
, dw8
);
8418 __gen_field(values
->XOffsetforVPlane
, 48, 61) |
8419 __gen_field(values
->YOffsetforVPlane
, 32, 45) |
8420 __gen_field(values
->AuxiliaryTableIndexforMediaCompressedSurface
, 21, 31) |
8424 __gen_combine_address(data
, &dw
[10], values
->AuxiliarySurfaceBaseAddress
, dw10
);
8427 dw
[11] = qw10
>> 32;
8443 #define GEN8_SAMPLER_STATE_length 0x00000004
8445 struct GEN8_SAMPLER_STATE
{
8446 bool SamplerDisable
;
8449 uint32_t TextureBorderColorMode
;
8450 #define CLAMP_NONE 0
8452 uint32_t LODPreClampMode
;
8454 #define MIPFILTER_NONE 0
8455 #define MIPFILTER_NEAREST 1
8456 #define MIPFILTER_LINEAR 3
8457 uint32_t MipModeFilter
;
8458 #define MAPFILTER_NEAREST 0
8459 #define MAPFILTER_LINEAR 1
8460 #define MAPFILTER_ANISOTROPIC 2
8461 #define MAPFILTER_MONO 6
8462 uint32_t MagModeFilter
;
8463 #define MAPFILTER_NEAREST 0
8464 #define MAPFILTER_LINEAR 1
8465 #define MAPFILTER_ANISOTROPIC 2
8466 #define MAPFILTER_MONO 6
8467 uint32_t MinModeFilter
;
8468 uint32_t TextureLODBias
;
8470 #define EWAApproximation 1
8471 uint32_t AnisotropicAlgorithm
;
8474 bool ChromaKeyEnable
;
8475 uint32_t ChromaKeyIndex
;
8476 #define KEYFILTER_KILL_ON_ANY_MATCH 0
8477 #define KEYFILTER_REPLACE_BLACK 1
8478 uint32_t ChromaKeyMode
;
8479 #define PREFILTEROPALWAYS 0
8480 #define PREFILTEROPNEVER 1
8481 #define PREFILTEROPLESS 2
8482 #define PREFILTEROPEQUAL 3
8483 #define PREFILTEROPLEQUAL 4
8484 #define PREFILTEROPGREATER 5
8485 #define PREFILTEROPNOTEQUAL 6
8486 #define PREFILTEROPGEQUAL 7
8487 uint32_t ShadowFunction
;
8488 #define PROGRAMMED 0
8490 uint32_t CubeSurfaceControlMode
;
8491 uint32_t IndirectStatePointer
;
8494 uint32_t LODClampMagnificationMode
;
8503 uint32_t MaximumAnisotropy
;
8504 bool RAddressMinFilterRoundingEnable
;
8505 bool RAddressMagFilterRoundingEnable
;
8506 bool VAddressMinFilterRoundingEnable
;
8507 bool VAddressMagFilterRoundingEnable
;
8508 bool UAddressMinFilterRoundingEnable
;
8509 bool UAddressMagFilterRoundingEnable
;
8514 uint32_t TrilinearFilterQuality
;
8515 bool NonnormalizedCoordinateEnable
;
8516 uint32_t TCXAddressControlMode
;
8517 uint32_t TCYAddressControlMode
;
8518 uint32_t TCZAddressControlMode
;
8522 GEN8_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8523 const struct GEN8_SAMPLER_STATE
* restrict values
)
8525 uint32_t *dw
= (uint32_t * restrict
) dst
;
8528 __gen_field(values
->SamplerDisable
, 31, 31) |
8529 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
8530 __gen_field(values
->LODPreClampMode
, 27, 28) |
8531 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
8532 __gen_field(values
->MipModeFilter
, 20, 21) |
8533 __gen_field(values
->MagModeFilter
, 17, 19) |
8534 __gen_field(values
->MinModeFilter
, 14, 16) |
8535 __gen_field(values
->TextureLODBias
, 1, 13) |
8536 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
8540 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
8541 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
8542 __gen_field(values
->ChromaKeyEnable
, 7, 7) |
8543 __gen_field(values
->ChromaKeyIndex
, 5, 6) |
8544 __gen_field(values
->ChromaKeyMode
, 4, 4) |
8545 __gen_field(values
->ShadowFunction
, 1, 3) |
8546 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
8550 __gen_field(values
->IndirectStatePointer
, 6, 23) |
8551 __gen_field(values
->LODClampMagnificationMode
, 0, 0) |
8555 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
8556 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
8557 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
8558 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
8559 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
8560 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
8561 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
8562 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
8563 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
8564 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
8565 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
8566 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
8571 /* Enum 3D_Prim_Topo_Type */
8572 #define _3DPRIM_POINTLIST 1
8573 #define _3DPRIM_LINELIST 2
8574 #define _3DPRIM_LINESTRIP 3
8575 #define _3DPRIM_TRILIST 4
8576 #define _3DPRIM_TRISTRIP 5
8577 #define _3DPRIM_TRIFAN 6
8578 #define _3DPRIM_QUADLIST 7
8579 #define _3DPRIM_QUADSTRIP 8
8580 #define _3DPRIM_LINELIST_ADJ 9
8581 #define _3DPRIM_LINESTRIP_ADJ 10
8582 #define _3DPRIM_TRILIST_ADJ 11
8583 #define _3DPRIM_TRISTRIP_ADJ 12
8584 #define _3DPRIM_TRISTRIP_REVERSE 13
8585 #define _3DPRIM_POLYGON 14
8586 #define _3DPRIM_RECTLIST 15
8587 #define _3DPRIM_LINELOOP 16
8588 #define _3DPRIM_POINTLIST_BF 17
8589 #define _3DPRIM_LINESTRIP_CONT 18
8590 #define _3DPRIM_LINESTRIP_BF 19
8591 #define _3DPRIM_LINESTRIP_CONT_BF 20
8592 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
8593 #define _3DPRIM_PATCHLIST_1 32
8594 #define _3DPRIM_PATCHLIST_2 33
8595 #define _3DPRIM_PATCHLIST_3 34
8596 #define _3DPRIM_PATCHLIST_4 35
8597 #define _3DPRIM_PATCHLIST_5 36
8598 #define _3DPRIM_PATCHLIST_6 37
8599 #define _3DPRIM_PATCHLIST_7 38
8600 #define _3DPRIM_PATCHLIST_8 39
8601 #define _3DPRIM_PATCHLIST_9 40
8602 #define _3DPRIM_PATCHLIST_10 41
8603 #define _3DPRIM_PATCHLIST_11 42
8604 #define _3DPRIM_PATCHLIST_12 43
8605 #define _3DPRIM_PATCHLIST_13 44
8606 #define _3DPRIM_PATCHLIST_14 45
8607 #define _3DPRIM_PATCHLIST_15 46
8608 #define _3DPRIM_PATCHLIST_16 47
8609 #define _3DPRIM_PATCHLIST_17 48
8610 #define _3DPRIM_PATCHLIST_18 49
8611 #define _3DPRIM_PATCHLIST_19 50
8612 #define _3DPRIM_PATCHLIST_20 51
8613 #define _3DPRIM_PATCHLIST_21 52
8614 #define _3DPRIM_PATCHLIST_22 53
8615 #define _3DPRIM_PATCHLIST_23 54
8616 #define _3DPRIM_PATCHLIST_24 55
8617 #define _3DPRIM_PATCHLIST_25 56
8618 #define _3DPRIM_PATCHLIST_26 57
8619 #define _3DPRIM_PATCHLIST_27 58
8620 #define _3DPRIM_PATCHLIST_28 59
8621 #define _3DPRIM_PATCHLIST_29 60
8622 #define _3DPRIM_PATCHLIST_30 61
8623 #define _3DPRIM_PATCHLIST_31 62
8624 #define _3DPRIM_PATCHLIST_32 63
8626 /* Enum 3D_Vertex_Component_Control */
8627 #define VFCOMP_NOSTORE 0
8628 #define VFCOMP_STORE_SRC 1
8629 #define VFCOMP_STORE_0 2
8630 #define VFCOMP_STORE_1_FP 3
8631 #define VFCOMP_STORE_1_INT 4
8632 #define VFCOMP_STORE_PID 7
8634 /* Enum WRAP_SHORTEST_ENABLE */
8651 /* Enum 3D_Stencil_Operation */
8652 #define STENCILOP_KEEP 0
8653 #define STENCILOP_ZERO 1
8654 #define STENCILOP_REPLACE 2
8655 #define STENCILOP_INCRSAT 3
8656 #define STENCILOP_DECRSAT 4
8657 #define STENCILOP_INCR 5
8658 #define STENCILOP_DECR 6
8659 #define STENCILOP_INVERT 7
8661 /* Enum 3D_Color_Buffer_Blend_Factor */
8662 #define BLENDFACTOR_ONE 1
8663 #define BLENDFACTOR_SRC_COLOR 2
8664 #define BLENDFACTOR_SRC_ALPHA 3
8665 #define BLENDFACTOR_DST_ALPHA 4
8666 #define BLENDFACTOR_DST_COLOR 5
8667 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
8668 #define BLENDFACTOR_CONST_COLOR 7
8669 #define BLENDFACTOR_CONST_ALPHA 8
8670 #define BLENDFACTOR_SRC1_COLOR 9
8671 #define BLENDFACTOR_SRC1_ALPHA 10
8672 #define BLENDFACTOR_ZERO 17
8673 #define BLENDFACTOR_INV_SRC_COLOR 18
8674 #define BLENDFACTOR_INV_SRC_ALPHA 19
8675 #define BLENDFACTOR_INV_DST_ALPHA 20
8676 #define BLENDFACTOR_INV_DST_COLOR 21
8677 #define BLENDFACTOR_INV_CONST_COLOR 23
8678 #define BLENDFACTOR_INV_CONST_ALPHA 24
8679 #define BLENDFACTOR_INV_SRC1_COLOR 25
8680 #define BLENDFACTOR_INV_SRC1_ALPHA 26
8682 /* Enum 3D_Color_Buffer_Blend_Function */
8683 #define BLENDFUNCTION_ADD 0
8684 #define BLENDFUNCTION_SUBTRACT 1
8685 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
8686 #define BLENDFUNCTION_MIN 3
8687 #define BLENDFUNCTION_MAX 4
8689 /* Enum 3D_Compare_Function */
8690 #define COMPAREFUNCTION_ALWAYS 0
8691 #define COMPAREFUNCTION_NEVER 1
8692 #define COMPAREFUNCTION_LESS 2
8693 #define COMPAREFUNCTION_EQUAL 3
8694 #define COMPAREFUNCTION_LEQUAL 4
8695 #define COMPAREFUNCTION_GREATER 5
8696 #define COMPAREFUNCTION_NOTEQUAL 6
8697 #define COMPAREFUNCTION_GEQUAL 7
8699 /* Enum 3D_Logic_Op_Function */
8700 #define LOGICOP_CLEAR 0
8701 #define LOGICOP_NOR 1
8702 #define LOGICOP_AND_INVERTED 2
8703 #define LOGICOP_COPY_INVERTED 3
8704 #define LOGICOP_AND_REVERSE 4
8705 #define LOGICOP_INVERT 5
8706 #define LOGICOP_XOR 6
8707 #define LOGICOP_NAND 7
8708 #define LOGICOP_AND 8
8709 #define LOGICOP_EQUIV 9
8710 #define LOGICOP_NOOP 10
8711 #define LOGICOP_OR_INVERTED 11
8712 #define LOGICOP_COPY 12
8713 #define LOGICOP_OR_REVERSE 13
8714 #define LOGICOP_OR 14
8715 #define LOGICOP_SET 15
8717 /* Enum SURFACE_FORMAT */
8718 #define R32G32B32A32_FLOAT 0
8719 #define R32G32B32A32_SINT 1
8720 #define R32G32B32A32_UINT 2
8721 #define R32G32B32A32_UNORM 3
8722 #define R32G32B32A32_SNORM 4
8723 #define R64G64_FLOAT 5
8724 #define R32G32B32X32_FLOAT 6
8725 #define R32G32B32A32_SSCALED 7
8726 #define R32G32B32A32_USCALED 8
8727 #define R32G32B32A32_SFIXED 32
8728 #define R64G64_PASSTHRU 33
8729 #define R32G32B32_FLOAT 64
8730 #define R32G32B32_SINT 65
8731 #define R32G32B32_UINT 66
8732 #define R32G32B32_UNORM 67
8733 #define R32G32B32_SNORM 68
8734 #define R32G32B32_SSCALED 69
8735 #define R32G32B32_USCALED 70
8736 #define R32G32B32_SFIXED 80
8737 #define R16G16B16A16_UNORM 128
8738 #define R16G16B16A16_SNORM 129
8739 #define R16G16B16A16_SINT 130
8740 #define R16G16B16A16_UINT 131
8741 #define R16G16B16A16_FLOAT 132
8742 #define R32G32_FLOAT 133
8743 #define R32G32_SINT 134
8744 #define R32G32_UINT 135
8745 #define R32_FLOAT_X8X24_TYPELESS 136
8746 #define X32_TYPELESS_G8X24_UINT 137
8747 #define L32A32_FLOAT 138
8748 #define R32G32_UNORM 139
8749 #define R32G32_SNORM 140
8750 #define R64_FLOAT 141
8751 #define R16G16B16X16_UNORM 142
8752 #define R16G16B16X16_FLOAT 143
8753 #define A32X32_FLOAT 144
8754 #define L32X32_FLOAT 145
8755 #define I32X32_FLOAT 146
8756 #define R16G16B16A16_SSCALED 147
8757 #define R16G16B16A16_USCALED 148
8758 #define R32G32_SSCALED 149
8759 #define R32G32_USCALED 150
8760 #define R32G32_SFIXED 160
8761 #define R64_PASSTHRU 161
8762 #define B8G8R8A8_UNORM 192
8763 #define B8G8R8A8_UNORM_SRGB 193
8764 #define R10G10B10A2_UNORM 194
8765 #define R10G10B10A2_UNORM_SRGB 195
8766 #define R10G10B10A2_UINT 196
8767 #define R10G10B10_SNORM_A2_UNORM 197
8768 #define R8G8B8A8_UNORM 199
8769 #define R8G8B8A8_UNORM_SRGB 200
8770 #define R8G8B8A8_SNORM 201
8771 #define R8G8B8A8_SINT 202
8772 #define R8G8B8A8_UINT 203
8773 #define R16G16_UNORM 204
8774 #define R16G16_SNORM 205
8775 #define R16G16_SINT 206
8776 #define R16G16_UINT 207
8777 #define R16G16_FLOAT 208
8778 #define B10G10R10A2_UNORM 209
8779 #define B10G10R10A2_UNORM_SRGB 210
8780 #define R11G11B10_FLOAT 211
8781 #define R32_SINT 214
8782 #define R32_UINT 215
8783 #define R32_FLOAT 216
8784 #define R24_UNORM_X8_TYPELESS 217
8785 #define X24_TYPELESS_G8_UINT 218
8786 #define L32_UNORM 221
8787 #define A32_UNORM 222
8788 #define L16A16_UNORM 223
8789 #define I24X8_UNORM 224
8790 #define L24X8_UNORM 225
8791 #define A24X8_UNORM 226
8792 #define I32_FLOAT 227
8793 #define L32_FLOAT 228
8794 #define A32_FLOAT 229
8795 #define X8B8_UNORM_G8R8_SNORM 230
8796 #define A8X8_UNORM_G8R8_SNORM 231
8797 #define B8X8_UNORM_G8R8_SNORM 232
8798 #define B8G8R8X8_UNORM 233
8799 #define B8G8R8X8_UNORM_SRGB 234
8800 #define R8G8B8X8_UNORM 235
8801 #define R8G8B8X8_UNORM_SRGB 236
8802 #define R9G9B9E5_SHAREDEXP 237
8803 #define B10G10R10X2_UNORM 238
8804 #define L16A16_FLOAT 240
8805 #define R32_UNORM 241
8806 #define R32_SNORM 242
8807 #define R10G10B10X2_USCALED 243
8808 #define R8G8B8A8_SSCALED 244
8809 #define R8G8B8A8_USCALED 245
8810 #define R16G16_SSCALED 246
8811 #define R16G16_USCALED 247
8812 #define R32_SSCALED 248
8813 #define R32_USCALED 249
8814 #define B5G6R5_UNORM 256
8815 #define B5G6R5_UNORM_SRGB 257
8816 #define B5G5R5A1_UNORM 258
8817 #define B5G5R5A1_UNORM_SRGB 259
8818 #define B4G4R4A4_UNORM 260
8819 #define B4G4R4A4_UNORM_SRGB 261
8820 #define R8G8_UNORM 262
8821 #define R8G8_SNORM 263
8822 #define R8G8_SINT 264
8823 #define R8G8_UINT 265
8824 #define R16_UNORM 266
8825 #define R16_SNORM 267
8826 #define R16_SINT 268
8827 #define R16_UINT 269
8828 #define R16_FLOAT 270
8829 #define A8P8_UNORM_PALETTE0 271
8830 #define A8P8_UNORM_PALETTE1 272
8831 #define I16_UNORM 273
8832 #define L16_UNORM 274
8833 #define A16_UNORM 275
8834 #define L8A8_UNORM 276
8835 #define I16_FLOAT 277
8836 #define L16_FLOAT 278
8837 #define A16_FLOAT 279
8838 #define L8A8_UNORM_SRGB 280
8839 #define R5G5_SNORM_B6_UNORM 281
8840 #define B5G5R5X1_UNORM 282
8841 #define B5G5R5X1_UNORM_SRGB 283
8842 #define R8G8_SSCALED 284
8843 #define R8G8_USCALED 285
8844 #define R16_SSCALED 286
8845 #define R16_USCALED 287
8846 #define P8A8_UNORM_PALETTE0 290
8847 #define P8A8_UNORM_PALETTE1 291
8848 #define A1B5G5R5_UNORM 292
8849 #define A4B4G4R4_UNORM 293
8850 #define L8A8_UINT 294
8851 #define L8A8_SINT 295
8852 #define R8_UNORM 320
8853 #define R8_SNORM 321
8856 #define A8_UNORM 324
8857 #define I8_UNORM 325
8858 #define L8_UNORM 326
8859 #define P4A4_UNORM_PALETTE0 327
8860 #define A4P4_UNORM_PALETTE0 328
8861 #define R8_SSCALED 329
8862 #define R8_USCALED 330
8863 #define P8_UNORM_PALETTE0 331
8864 #define L8_UNORM_SRGB 332
8865 #define P8_UNORM_PALETTE1 333
8866 #define P4A4_UNORM_PALETTE1 334
8867 #define A4P4_UNORM_PALETTE1 335
8868 #define Y8_UNORM 336
8873 #define DXT1_RGB_SRGB 384
8874 #define R1_UNORM 385
8875 #define YCRCB_NORMAL 386
8876 #define YCRCB_SWAPUVY 387
8877 #define P2_UNORM_PALETTE0 388
8878 #define P2_UNORM_PALETTE1 389
8879 #define BC1_UNORM 390
8880 #define BC2_UNORM 391
8881 #define BC3_UNORM 392
8882 #define BC4_UNORM 393
8883 #define BC5_UNORM 394
8884 #define BC1_UNORM_SRGB 395
8885 #define BC2_UNORM_SRGB 396
8886 #define BC3_UNORM_SRGB 397
8888 #define YCRCB_SWAPUV 399
8889 #define YCRCB_SWAPY 400
8890 #define DXT1_RGB 401
8892 #define R8G8B8_UNORM 403
8893 #define R8G8B8_SNORM 404
8894 #define R8G8B8_SSCALED 405
8895 #define R8G8B8_USCALED 406
8896 #define R64G64B64A64_FLOAT 407
8897 #define R64G64B64_FLOAT 408
8898 #define BC4_SNORM 409
8899 #define BC5_SNORM 410
8900 #define R16G16B16_FLOAT 411
8901 #define R16G16B16_UNORM 412
8902 #define R16G16B16_SNORM 413
8903 #define R16G16B16_SSCALED 414
8904 #define R16G16B16_USCALED 415
8905 #define BC6H_SF16 417
8906 #define BC7_UNORM 418
8907 #define BC7_UNORM_SRGB 419
8908 #define BC6H_UF16 420
8909 #define PLANAR_420_8 421
8910 #define R8G8B8_UNORM_SRGB 424
8911 #define ETC1_RGB8 425
8912 #define ETC2_RGB8 426
8914 #define EAC_RG11 428
8915 #define EAC_SIGNED_R11 429
8916 #define EAC_SIGNED_RG11 430
8917 #define ETC2_SRGB8 431
8918 #define R16G16B16_UINT 432
8919 #define R16G16B16_SINT 433
8920 #define R32_SFIXED 434
8921 #define R10G10B10A2_SNORM 435
8922 #define R10G10B10A2_USCALED 436
8923 #define R10G10B10A2_SSCALED 437
8924 #define R10G10B10A2_SINT 438
8925 #define B10G10R10A2_SNORM 439
8926 #define B10G10R10A2_USCALED 440
8927 #define B10G10R10A2_SSCALED 441
8928 #define B10G10R10A2_UINT 442
8929 #define B10G10R10A2_SINT 443
8930 #define R64G64B64A64_PASSTHRU 444
8931 #define R64G64B64_PASSTHRU 445
8932 #define ETC2_RGB8_PTA 448
8933 #define ETC2_SRGB8_PTA 449
8934 #define ETC2_EAC_RGBA8 450
8935 #define ETC2_EAC_SRGB8_A8 451
8936 #define R8G8B8_UINT 456
8937 #define R8G8B8_SINT 457
8940 /* Enum Shader Channel Select */
8948 /* Enum Clear Color */
8952 /* Enum Texture Coordinate Mode */
8954 #define TCM_MIRROR 1
8957 #define TCM_CLAMP_BORDER 4
8958 #define TCM_MIRROR_ONCE 5
8959 #define TCM_HALF_BORDER 6