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 uint32_t IllegalOpcodeExceptionEnable
;
173 uint32_t AccessesUAV
;
174 uint32_t 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 uint32_t StatisticsEnable
;
182 uint32_t SIMD8DispatchEnable
;
183 uint32_t VertexCacheDisable
;
184 uint32_t FunctionEnable
;
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
;
542 uint32_t UseGlobalGTT
;
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 uint32_t GeneralStateBaseAddressModifyEnable
;
659 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
660 __gen_address_type SurfaceStateBaseAddress
;
661 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
662 uint32_t SurfaceStateBaseAddressModifyEnable
;
663 __gen_address_type DynamicStateBaseAddress
;
664 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
665 uint32_t DynamicStateBaseAddressModifyEnable
;
666 __gen_address_type IndirectObjectBaseAddress
;
667 struct GEN8_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
668 uint32_t IndirectObjectBaseAddressModifyEnable
;
669 __gen_address_type InstructionBaseAddress
;
670 struct GEN8_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
671 uint32_t InstructionBaseAddressModifyEnable
;
672 uint32_t GeneralStateBufferSize
;
673 uint32_t GeneralStateBufferSizeModifyEnable
;
674 uint32_t DynamicStateBufferSize
;
675 uint32_t DynamicStateBufferSizeModifyEnable
;
676 uint32_t IndirectObjectBufferSize
;
677 uint32_t IndirectObjectBufferSizeModifyEnable
;
678 uint32_t InstructionBufferSize
;
679 uint32_t 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 uint32_t IndirectParameterEnable
;
938 uint32_t UAVCoherencyRequired
;
939 uint32_t PredicateEnable
;
940 uint32_t DwordLength
;
941 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t ForceUserClipDistanceCullTestEnableBitmask
;
1722 uint32_t VertexSubPixelPrecisionSelect
;
1723 uint32_t EarlyCullEnable
;
1726 uint32_t ForceUserClipDistanceClipTestEnableBitmask
;
1729 uint32_t ForceClipMode
;
1730 uint32_t ClipperStatisticsEnable
;
1731 uint32_t UserClipDistanceCullTestEnableBitmask
;
1732 uint32_t ClipEnable
;
1735 uint32_t ViewportXYClipTestEnable
;
1736 uint32_t GuardbandClipTestEnable
;
1737 uint32_t UserClipDistanceClipTestEnableBitmask
;
1739 #define REJECT_ALL 3
1740 #define ACCEPT_ALL 4
1742 uint32_t PerspectiveDivideDisable
;
1743 uint32_t NonPerspectiveBarycentricEnable
;
1744 uint32_t TriangleStripListProvokingVertexSelect
;
1745 uint32_t LineStripListProvokingVertexSelect
;
1746 uint32_t TriangleFanProvokingVertexSelect
;
1747 float MinimumPointWidth
;
1748 float MaximumPointWidth
;
1749 uint32_t 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 uint32_t DepthWriteEnable
;
2082 uint32_t StencilWriteEnable
;
2083 uint32_t 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
;
2250 uint32_t AccessesUAV
;
2251 uint32_t IllegalOpcodeExceptionEnable
;
2252 uint32_t 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 uint32_t StatisticsEnable
;
2260 uint32_t SIMD8DispatchEnable
;
2261 uint32_t ComputeWCoordinateEnable
;
2262 uint32_t CacheDisable
;
2263 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t ConstantBufferDx9GenerateStall
;
2513 uint32_t 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 uint32_t ConstantBufferDx9GenerateStall
;
2562 uint32_t 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 uint32_t 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 uint32_t IllegalOpcodeExceptionEnable
;
2682 uint32_t AccessesUAV
;
2683 uint32_t MaskStackExceptionEnable
;
2684 uint32_t 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 uint32_t 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 uint32_t StatisticsEnable
;
2704 uint32_t InvocationsIncrementValue
;
2705 uint32_t IncludePrimitiveID
;
2709 uint32_t ReorderMode
;
2710 uint32_t DiscardAdjacency
;
2714 uint32_t ControlDataFormat
;
2715 uint32_t StaticOutput
;
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 uint32_t IllegalOpcodeExceptionEnable
;
2891 uint32_t SoftwareExceptionEnable
;
2893 uint32_t StatisticsEnable
;
2894 uint32_t MaximumNumberofThreads
;
2895 uint32_t InstanceCount
;
2896 uint64_t KernelStartPointer
;
2897 uint64_t ScratchSpaceBasePointer
;
2898 uint32_t PerThreadScratchSpace
;
2899 uint32_t SingleProgramFlow
;
2902 uint32_t VectorMaskEnable
;
2903 uint32_t AccessesUAV
;
2904 uint32_t 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 uint32_t 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 uint32_t IllegalOpcodeExceptionEnable
;
3287 uint32_t MaskStackExceptionEnable
;
3288 uint32_t SoftwareExceptionEnable
;
3289 uint64_t ScratchSpaceBasePointer
;
3290 uint32_t PerThreadScratchSpace
;
3291 uint32_t MaximumNumberofThreadsPerPSD
;
3292 uint32_t PushConstantEnable
;
3293 uint32_t RenderTargetFastClearEnable
;
3294 uint32_t RenderTargetResolveEnable
;
3295 #define POSOFFSET_NONE 0
3296 #define POSOFFSET_CENTROID 2
3297 #define POSOFFSET_SAMPLE 3
3298 uint32_t PositionXYOffsetSelect
;
3299 uint32_t _32PixelDispatchEnable
;
3300 uint32_t _16PixelDispatchEnable
;
3301 uint32_t _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 uint32_t AlphaToCoverageEnable
;
3401 uint32_t HasWriteableRT
;
3402 uint32_t ColorBufferBlendEnable
;
3403 uint32_t SourceAlphaBlendFactor
;
3404 uint32_t DestinationAlphaBlendFactor
;
3405 uint32_t SourceBlendFactor
;
3406 uint32_t DestinationBlendFactor
;
3407 uint32_t AlphaTestEnable
;
3408 uint32_t 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 uint32_t PixelShaderValid
;
3455 uint32_t PixelShaderDoesnotwritetoRT
;
3456 uint32_t oMaskPresenttoRenderTarget
;
3457 uint32_t 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 uint32_t ForceComputedDepth
;
3464 uint32_t PixelShaderUsesSourceDepth
;
3465 uint32_t PixelShaderUsesSourceW
;
3467 uint32_t AttributeEnable
;
3468 uint32_t PixelShaderDisablesAlphaToCoverage
;
3469 uint32_t PixelShaderIsPerSample
;
3470 uint32_t PixelShaderHasUAV
;
3471 uint32_t 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 uint32_t SmoothPointEnable
;
3745 uint32_t 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 uint32_t GlobalDepthOffsetEnableSolid
;
3752 uint32_t GlobalDepthOffsetEnableWireframe
;
3753 uint32_t 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 uint32_t AntialiasingEnable
;
3763 uint32_t ScissorRectangleEnable
;
3764 uint32_t 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 uint32_t ForceVertexURBEntryReadLength
;
4257 uint32_t ForceVertexURBEntryReadOffset
;
4258 uint32_t NumberofSFOutputAttributes
;
4259 uint32_t AttributeSwizzleEnable
;
4262 uint32_t PointSpriteTextureCoordinateOrigin
;
4263 uint32_t PrimitiveIDOverrideComponentW
;
4264 uint32_t PrimitiveIDOverrideComponentZ
;
4265 uint32_t PrimitiveIDOverrideComponentY
;
4266 uint32_t 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 uint32_t ComponentOverrideW
;
4324 uint32_t ComponentOverrideZ
;
4325 uint32_t ComponentOverrideY
;
4326 uint32_t 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 uint32_t LegacyGlobalDepthBiasEnable
;
4483 uint32_t StatisticsEnable
;
4484 uint32_t ViewportTransformEnable
;
4490 uint32_t LineEndCapAntialiasingRegionWidth
;
4491 uint32_t LastPixelEnable
;
4492 uint32_t TriangleStripListProvokingVertexSelect
;
4493 uint32_t LineStripListProvokingVertexSelect
;
4494 uint32_t TriangleFanProvokingVertexSelect
;
4495 #define AALINEDISTANCE_TRUE 1
4496 uint32_t AALineDistanceMode
;
4497 uint32_t 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 uint32_t SOBufferEnable
;
4560 uint32_t SOBufferIndex
;
4561 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
4562 uint32_t StreamOffsetWriteEnable
;
4563 uint32_t 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 uint32_t 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
;
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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t 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 uint32_t InstanceIDEnable
;
5319 uint32_t InstanceIDComponentNumber
;
5320 uint32_t InstanceIDElementOffset
;
5321 uint32_t 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 uint32_t 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 uint32_t StatisticsEnable
;
5517 uint32_t LegacyDepthBufferClearEnable
;
5518 uint32_t LegacyDepthBufferResolveEnable
;
5519 uint32_t LegacyHierarchicalDepthBufferResolveEnable
;
5520 uint32_t 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 uint32_t PolygonStippleEnable
;
5545 uint32_t 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 uint32_t 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
;
5653 uint32_t DoubleSidedStencilEnable
;
5654 uint32_t StencilTestEnable
;
5655 uint32_t StencilBufferWriteEnable
;
5656 uint32_t DepthTestEnable
;
5657 uint32_t DepthBufferWriteEnable
;
5658 uint32_t StencilTestMask
;
5659 uint32_t StencilWriteMask
;
5660 uint32_t BackfaceStencilTestMask
;
5661 uint32_t BackfaceStencilWriteMask
;
5665 GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data
*data
, void * restrict dst
,
5666 const struct GEN8_3DSTATE_WM_DEPTH_STENCIL
* restrict values
)
5668 uint32_t *dw
= (uint32_t * restrict
) dst
;
5671 __gen_field(values
->CommandType
, 29, 31) |
5672 __gen_field(values
->CommandSubType
, 27, 28) |
5673 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5674 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5675 __gen_field(values
->DwordLength
, 0, 7) |
5679 __gen_field(values
->StencilFailOp
, 29, 31) |
5680 __gen_field(values
->StencilPassDepthFailOp
, 26, 28) |
5681 __gen_field(values
->StencilPassDepthPassOp
, 23, 25) |
5682 __gen_field(values
->BackfaceStencilTestFunction
, 20, 22) |
5683 __gen_field(values
->BackfaceStencilFailOp
, 17, 19) |
5684 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 14, 16) |
5685 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 11, 13) |
5686 __gen_field(values
->StencilTestFunction
, 8, 10) |
5687 __gen_field(values
->DepthTestFunction
, 5, 7) |
5688 __gen_field(values
->DoubleSidedStencilEnable
, 4, 4) |
5689 __gen_field(values
->StencilTestEnable
, 3, 3) |
5690 __gen_field(values
->StencilBufferWriteEnable
, 2, 2) |
5691 __gen_field(values
->DepthTestEnable
, 1, 1) |
5692 __gen_field(values
->DepthBufferWriteEnable
, 0, 0) |
5696 __gen_field(values
->StencilTestMask
, 24, 31) |
5697 __gen_field(values
->StencilWriteMask
, 16, 23) |
5698 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
5699 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
5704 #define GEN8_3DSTATE_WM_HZ_OP_length 0x00000005
5705 #define GEN8_3DSTATE_WM_HZ_OP_length_bias 0x00000002
5706 #define GEN8_3DSTATE_WM_HZ_OP_header \
5708 .CommandSubType = 3, \
5709 ._3DCommandOpcode = 0, \
5710 ._3DCommandSubOpcode = 82, \
5713 struct GEN8_3DSTATE_WM_HZ_OP
{
5714 uint32_t CommandType
;
5715 uint32_t CommandSubType
;
5716 uint32_t _3DCommandOpcode
;
5717 uint32_t _3DCommandSubOpcode
;
5718 uint32_t DwordLength
;
5719 uint32_t StencilBufferClearEnable
;
5720 uint32_t DepthBufferClearEnable
;
5721 uint32_t ScissorRectangleEnable
;
5722 uint32_t DepthBufferResolveEnable
;
5723 uint32_t HierarchicalDepthBufferResolveEnable
;
5724 uint32_t PixelPositionOffsetEnable
;
5725 uint32_t FullSurfaceDepthClear
;
5726 uint32_t StencilClearValue
;
5727 uint32_t NumberofMultisamples
;
5728 uint32_t ClearRectangleYMin
;
5729 uint32_t ClearRectangleXMin
;
5730 uint32_t ClearRectangleYMax
;
5731 uint32_t ClearRectangleXMax
;
5732 uint32_t SampleMask
;
5736 GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data
*data
, void * restrict dst
,
5737 const struct GEN8_3DSTATE_WM_HZ_OP
* restrict values
)
5739 uint32_t *dw
= (uint32_t * restrict
) dst
;
5742 __gen_field(values
->CommandType
, 29, 31) |
5743 __gen_field(values
->CommandSubType
, 27, 28) |
5744 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5745 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5746 __gen_field(values
->DwordLength
, 0, 7) |
5750 __gen_field(values
->StencilBufferClearEnable
, 31, 31) |
5751 __gen_field(values
->DepthBufferClearEnable
, 30, 30) |
5752 __gen_field(values
->ScissorRectangleEnable
, 29, 29) |
5753 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
5754 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
5755 __gen_field(values
->PixelPositionOffsetEnable
, 26, 26) |
5756 __gen_field(values
->FullSurfaceDepthClear
, 25, 25) |
5757 __gen_field(values
->StencilClearValue
, 16, 23) |
5758 __gen_field(values
->NumberofMultisamples
, 13, 15) |
5762 __gen_field(values
->ClearRectangleYMin
, 16, 31) |
5763 __gen_field(values
->ClearRectangleXMin
, 0, 15) |
5767 __gen_field(values
->ClearRectangleYMax
, 16, 31) |
5768 __gen_field(values
->ClearRectangleXMax
, 0, 15) |
5772 __gen_field(values
->SampleMask
, 0, 15) |
5777 #define GEN8_GPGPU_WALKER_length 0x0000000f
5778 #define GEN8_GPGPU_WALKER_length_bias 0x00000002
5779 #define GEN8_GPGPU_WALKER_header \
5782 .MediaCommandOpcode = 1, \
5786 struct GEN8_GPGPU_WALKER
{
5787 uint32_t CommandType
;
5789 uint32_t MediaCommandOpcode
;
5791 uint32_t IndirectParameterEnable
;
5792 uint32_t PredicateEnable
;
5793 uint32_t DwordLength
;
5794 uint32_t InterfaceDescriptorOffset
;
5795 uint32_t IndirectDataLength
;
5796 uint32_t IndirectDataStartAddress
;
5801 uint32_t ThreadDepthCounterMaximum
;
5802 uint32_t ThreadHeightCounterMaximum
;
5803 uint32_t ThreadWidthCounterMaximum
;
5804 uint32_t ThreadGroupIDStartingX
;
5805 uint32_t ThreadGroupIDXDimension
;
5806 uint32_t ThreadGroupIDStartingY
;
5807 uint32_t ThreadGroupIDYDimension
;
5808 uint32_t ThreadGroupIDStartingResumeZ
;
5809 uint32_t ThreadGroupIDZDimension
;
5810 uint32_t RightExecutionMask
;
5811 uint32_t BottomExecutionMask
;
5815 GEN8_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
5816 const struct GEN8_GPGPU_WALKER
* restrict values
)
5818 uint32_t *dw
= (uint32_t * restrict
) dst
;
5821 __gen_field(values
->CommandType
, 29, 31) |
5822 __gen_field(values
->Pipeline
, 27, 28) |
5823 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5824 __gen_field(values
->SubOpcode
, 16, 23) |
5825 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
5826 __gen_field(values
->PredicateEnable
, 8, 8) |
5827 __gen_field(values
->DwordLength
, 0, 7) |
5831 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5835 __gen_field(values
->IndirectDataLength
, 0, 16) |
5839 __gen_offset(values
->IndirectDataStartAddress
, 6, 31) |
5843 __gen_field(values
->SIMDSize
, 30, 31) |
5844 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
5845 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
5846 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
5850 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
5857 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
5861 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
5868 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
5872 __gen_field(values
->ThreadGroupIDStartingResumeZ
, 0, 31) |
5876 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
5880 __gen_field(values
->RightExecutionMask
, 0, 31) |
5884 __gen_field(values
->BottomExecutionMask
, 0, 31) |
5889 #define GEN8_MEDIA_CURBE_LOAD_length 0x00000004
5890 #define GEN8_MEDIA_CURBE_LOAD_length_bias 0x00000002
5891 #define GEN8_MEDIA_CURBE_LOAD_header \
5894 .MediaCommandOpcode = 0, \
5898 struct GEN8_MEDIA_CURBE_LOAD
{
5899 uint32_t CommandType
;
5901 uint32_t MediaCommandOpcode
;
5903 uint32_t DwordLength
;
5904 uint32_t CURBETotalDataLength
;
5905 uint32_t CURBEDataStartAddress
;
5909 GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5910 const struct GEN8_MEDIA_CURBE_LOAD
* restrict values
)
5912 uint32_t *dw
= (uint32_t * restrict
) dst
;
5915 __gen_field(values
->CommandType
, 29, 31) |
5916 __gen_field(values
->Pipeline
, 27, 28) |
5917 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5918 __gen_field(values
->SubOpcode
, 16, 23) |
5919 __gen_field(values
->DwordLength
, 0, 15) |
5926 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
5930 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
5935 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
5936 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
5937 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
5940 .MediaCommandOpcode = 0, \
5944 struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
5945 uint32_t CommandType
;
5947 uint32_t MediaCommandOpcode
;
5949 uint32_t DwordLength
;
5950 uint32_t InterfaceDescriptorTotalLength
;
5951 uint32_t InterfaceDescriptorDataStartAddress
;
5955 GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5956 const struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
5958 uint32_t *dw
= (uint32_t * restrict
) dst
;
5961 __gen_field(values
->CommandType
, 29, 31) |
5962 __gen_field(values
->Pipeline
, 27, 28) |
5963 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5964 __gen_field(values
->SubOpcode
, 16, 23) |
5965 __gen_field(values
->DwordLength
, 0, 15) |
5972 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
5976 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
5981 #define GEN8_MEDIA_OBJECT_length_bias 0x00000002
5982 #define GEN8_MEDIA_OBJECT_header \
5984 .MediaCommandPipeline = 2, \
5985 .MediaCommandOpcode = 1, \
5986 .MediaCommandSubOpcode = 0
5988 struct GEN8_MEDIA_OBJECT
{
5989 uint32_t CommandType
;
5990 uint32_t MediaCommandPipeline
;
5991 uint32_t MediaCommandOpcode
;
5992 uint32_t MediaCommandSubOpcode
;
5993 uint32_t DwordLength
;
5994 uint32_t InterfaceDescriptorOffset
;
5995 uint32_t ChildrenPresent
;
5996 #define Nothreadsynchronization 0
5997 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
5998 uint32_t ThreadSynchronization
;
5999 uint32_t ForceDestination
;
6000 #define Notusingscoreboard 0
6001 #define Usingscoreboard 1
6002 uint32_t UseScoreboard
;
6006 uint32_t SliceDestinationSelect
;
6010 uint32_t SubSliceDestinationSelect
;
6011 uint32_t IndirectDataLength
;
6012 __gen_address_type IndirectDataStartAddress
;
6013 uint32_t ScoredboardY
;
6014 uint32_t ScoreboardX
;
6015 uint32_t ScoreboardColor
;
6016 uint32_t ScoreboardMask
;
6017 /* variable length fields follow */
6021 GEN8_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
6022 const struct GEN8_MEDIA_OBJECT
* restrict values
)
6024 uint32_t *dw
= (uint32_t * restrict
) dst
;
6027 __gen_field(values
->CommandType
, 29, 31) |
6028 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6029 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6030 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6031 __gen_field(values
->DwordLength
, 0, 15) |
6035 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6039 __gen_field(values
->ChildrenPresent
, 31, 31) |
6040 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6041 __gen_field(values
->ForceDestination
, 22, 22) |
6042 __gen_field(values
->UseScoreboard
, 21, 21) |
6043 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6044 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6045 __gen_field(values
->IndirectDataLength
, 0, 16) |
6052 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6055 __gen_field(values
->ScoredboardY
, 16, 24) |
6056 __gen_field(values
->ScoreboardX
, 0, 8) |
6060 __gen_field(values
->ScoreboardColor
, 16, 19) |
6061 __gen_field(values
->ScoreboardMask
, 0, 7) |
6064 /* variable length fields follow */
6067 #define GEN8_MEDIA_OBJECT_GRPID_length_bias 0x00000002
6068 #define GEN8_MEDIA_OBJECT_GRPID_header \
6070 .MediaCommandPipeline = 2, \
6071 .MediaCommandOpcode = 1, \
6072 .MediaCommandSubOpcode = 6
6074 struct GEN8_MEDIA_OBJECT_GRPID
{
6075 uint32_t CommandType
;
6076 uint32_t MediaCommandPipeline
;
6077 uint32_t MediaCommandOpcode
;
6078 uint32_t MediaCommandSubOpcode
;
6079 uint32_t DwordLength
;
6080 uint32_t InterfaceDescriptorOffset
;
6081 uint32_t EndofThreadGroup
;
6082 uint32_t ForceDestination
;
6083 #define Notusingscoreboard 0
6084 #define Usingscoreboard 1
6085 uint32_t UseScoreboard
;
6089 uint32_t SliceDestinationSelect
;
6093 uint32_t SubSliceDestinationSelect
;
6094 uint32_t IndirectDataLength
;
6095 __gen_address_type IndirectDataStartAddress
;
6096 uint32_t ScoredboardY
;
6097 uint32_t ScoreboardX
;
6098 uint32_t ScoreboardColor
;
6099 uint32_t ScoreboardMask
;
6101 /* variable length fields follow */
6105 GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data
*data
, void * restrict dst
,
6106 const struct GEN8_MEDIA_OBJECT_GRPID
* restrict values
)
6108 uint32_t *dw
= (uint32_t * restrict
) dst
;
6111 __gen_field(values
->CommandType
, 29, 31) |
6112 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6113 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6114 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6115 __gen_field(values
->DwordLength
, 0, 15) |
6119 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6123 __gen_field(values
->EndofThreadGroup
, 23, 23) |
6124 __gen_field(values
->ForceDestination
, 22, 22) |
6125 __gen_field(values
->UseScoreboard
, 21, 21) |
6126 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6127 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6128 __gen_field(values
->IndirectDataLength
, 0, 16) |
6135 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6138 __gen_field(values
->ScoredboardY
, 16, 24) |
6139 __gen_field(values
->ScoreboardX
, 0, 8) |
6143 __gen_field(values
->ScoreboardColor
, 16, 19) |
6144 __gen_field(values
->ScoreboardMask
, 0, 7) |
6148 __gen_field(values
->GroupID
, 0, 31) |
6151 /* variable length fields follow */
6154 #define GEN8_MEDIA_OBJECT_PRT_length 0x00000010
6155 #define GEN8_MEDIA_OBJECT_PRT_length_bias 0x00000002
6156 #define GEN8_MEDIA_OBJECT_PRT_header \
6159 .MediaCommandOpcode = 1, \
6163 struct GEN8_MEDIA_OBJECT_PRT
{
6164 uint32_t CommandType
;
6166 uint32_t MediaCommandOpcode
;
6168 uint32_t DwordLength
;
6169 uint32_t InterfaceDescriptorOffset
;
6170 uint32_t ChildrenPresent
;
6171 uint32_t PRT_FenceNeeded
;
6172 #define Rootthreadqueue 0
6173 #define VFEstateflush 1
6174 uint32_t PRT_FenceType
;
6175 uint32_t InlineData
;
6179 GEN8_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
6180 const struct GEN8_MEDIA_OBJECT_PRT
* restrict values
)
6182 uint32_t *dw
= (uint32_t * restrict
) dst
;
6185 __gen_field(values
->CommandType
, 29, 31) |
6186 __gen_field(values
->Pipeline
, 27, 28) |
6187 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6188 __gen_field(values
->SubOpcode
, 16, 23) |
6189 __gen_field(values
->DwordLength
, 0, 15) |
6193 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6197 __gen_field(values
->ChildrenPresent
, 31, 31) |
6198 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
6199 __gen_field(values
->PRT_FenceType
, 22, 22) |
6206 __gen_field(values
->InlineData
, 0, 31) |
6211 #define GEN8_MEDIA_OBJECT_WALKER_length_bias 0x00000002
6212 #define GEN8_MEDIA_OBJECT_WALKER_header \
6215 .MediaCommandOpcode = 1, \
6218 struct GEN8_MEDIA_OBJECT_WALKER
{
6219 uint32_t CommandType
;
6221 uint32_t MediaCommandOpcode
;
6223 uint32_t DwordLength
;
6224 uint32_t InterfaceDescriptorOffset
;
6225 uint32_t ChildrenPresent
;
6226 #define Nothreadsynchronization 0
6227 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
6228 uint32_t ThreadSynchronization
;
6229 #define Notusingscoreboard 0
6230 #define Usingscoreboard 1
6231 uint32_t UseScoreboard
;
6232 uint32_t IndirectDataLength
;
6233 uint32_t IndirectDataStartAddress
;
6234 uint32_t GroupIDLoopSelect
;
6235 uint32_t ScoreboardMask
;
6236 uint32_t ColorCountMinusOne
;
6237 uint32_t MiddleLoopExtraSteps
;
6238 uint32_t LocalMidLoopUnitY
;
6239 uint32_t MidLoopUnitX
;
6240 uint32_t GlobalLoopExecCount
;
6241 uint32_t LocalLoopExecCount
;
6242 uint32_t BlockResolutionY
;
6243 uint32_t BlockResolutionX
;
6244 uint32_t LocalStartY
;
6245 uint32_t LocalStartX
;
6246 uint32_t LocalOuterLoopStrideY
;
6247 uint32_t LocalOuterLoopStrideX
;
6248 uint32_t LocalInnerLoopUnitY
;
6249 uint32_t LocalInnerLoopUnitX
;
6250 uint32_t GlobalResolutionY
;
6251 uint32_t GlobalResolutionX
;
6252 uint32_t GlobalStartY
;
6253 uint32_t GlobalStartX
;
6254 uint32_t GlobalOuterLoopStrideY
;
6255 uint32_t GlobalOuterLoopStrideX
;
6256 uint32_t GlobalInnerLoopUnitY
;
6257 uint32_t GlobalInnerLoopUnitX
;
6258 /* variable length fields follow */
6262 GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
6263 const struct GEN8_MEDIA_OBJECT_WALKER
* restrict values
)
6265 uint32_t *dw
= (uint32_t * restrict
) dst
;
6268 __gen_field(values
->CommandType
, 29, 31) |
6269 __gen_field(values
->Pipeline
, 27, 28) |
6270 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6271 __gen_field(values
->SubOpcode
, 16, 23) |
6272 __gen_field(values
->DwordLength
, 0, 15) |
6276 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6280 __gen_field(values
->ChildrenPresent
, 31, 31) |
6281 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6282 __gen_field(values
->UseScoreboard
, 21, 21) |
6283 __gen_field(values
->IndirectDataLength
, 0, 16) |
6287 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
6294 __gen_field(values
->GroupIDLoopSelect
, 8, 31) |
6295 __gen_field(values
->ScoreboardMask
, 0, 7) |
6299 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
6300 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
6301 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
6302 __gen_field(values
->MidLoopUnitX
, 8, 9) |
6306 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
6307 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
6311 __gen_field(values
->BlockResolutionY
, 16, 24) |
6312 __gen_field(values
->BlockResolutionX
, 0, 8) |
6316 __gen_field(values
->LocalStartY
, 16, 24) |
6317 __gen_field(values
->LocalStartX
, 0, 8) |
6324 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
6325 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
6329 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
6330 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
6334 __gen_field(values
->GlobalResolutionY
, 16, 24) |
6335 __gen_field(values
->GlobalResolutionX
, 0, 8) |
6339 __gen_field(values
->GlobalStartY
, 16, 25) |
6340 __gen_field(values
->GlobalStartX
, 0, 9) |
6344 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
6345 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
6349 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
6350 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
6353 /* variable length fields follow */
6356 #define GEN8_MEDIA_STATE_FLUSH_length 0x00000002
6357 #define GEN8_MEDIA_STATE_FLUSH_length_bias 0x00000002
6358 #define GEN8_MEDIA_STATE_FLUSH_header \
6361 .MediaCommandOpcode = 0, \
6365 struct GEN8_MEDIA_STATE_FLUSH
{
6366 uint32_t CommandType
;
6368 uint32_t MediaCommandOpcode
;
6370 uint32_t DwordLength
;
6372 uint32_t WatermarkRequired
;
6373 uint32_t InterfaceDescriptorOffset
;
6377 GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6378 const struct GEN8_MEDIA_STATE_FLUSH
* restrict values
)
6380 uint32_t *dw
= (uint32_t * restrict
) dst
;
6383 __gen_field(values
->CommandType
, 29, 31) |
6384 __gen_field(values
->Pipeline
, 27, 28) |
6385 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6386 __gen_field(values
->SubOpcode
, 16, 23) |
6387 __gen_field(values
->DwordLength
, 0, 15) |
6391 __gen_field(values
->FlushtoGO
, 7, 7) |
6392 __gen_field(values
->WatermarkRequired
, 6, 6) |
6393 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6398 #define GEN8_MEDIA_VFE_STATE_length 0x00000009
6399 #define GEN8_MEDIA_VFE_STATE_length_bias 0x00000002
6400 #define GEN8_MEDIA_VFE_STATE_header \
6403 .MediaCommandOpcode = 0, \
6407 struct GEN8_MEDIA_VFE_STATE
{
6408 uint32_t CommandType
;
6410 uint32_t MediaCommandOpcode
;
6412 uint32_t DwordLength
;
6413 uint32_t ScratchSpaceBasePointer
;
6415 uint32_t PerThreadScratchSpace
;
6416 uint32_t ScratchSpaceBasePointerHigh
;
6417 uint32_t MaximumNumberofThreads
;
6418 uint32_t NumberofURBEntries
;
6419 #define Maintainingtheexistingtimestampstate 0
6420 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
6421 uint32_t ResetGatewayTimer
;
6422 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
6423 #define BypassingOpenGatewayCloseGatewayprotocol 1
6424 uint32_t BypassGatewayControl
;
6425 uint32_t SliceDisable
;
6426 uint32_t URBEntryAllocationSize
;
6427 uint32_t CURBEAllocationSize
;
6428 #define Scoreboarddisabled 0
6429 #define Scoreboardenabled 1
6430 uint32_t ScoreboardEnable
;
6431 #define StallingScoreboard 0
6432 #define NonStallingScoreboard 1
6433 uint32_t ScoreboardType
;
6434 uint32_t ScoreboardMask
;
6435 uint32_t Scoreboard3DeltaY
;
6436 uint32_t Scoreboard3DeltaX
;
6437 uint32_t Scoreboard2DeltaY
;
6438 uint32_t Scoreboard2DeltaX
;
6439 uint32_t Scoreboard1DeltaY
;
6440 uint32_t Scoreboard1DeltaX
;
6441 uint32_t Scoreboard0DeltaY
;
6442 uint32_t Scoreboard0DeltaX
;
6443 uint32_t Scoreboard7DeltaY
;
6444 uint32_t Scoreboard7DeltaX
;
6445 uint32_t Scoreboard6DeltaY
;
6446 uint32_t Scoreboard6DeltaX
;
6447 uint32_t Scoreboard5DeltaY
;
6448 uint32_t Scoreboard5DeltaX
;
6449 uint32_t Scoreboard4DeltaY
;
6450 uint32_t Scoreboard4DeltaX
;
6454 GEN8_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6455 const struct GEN8_MEDIA_VFE_STATE
* restrict values
)
6457 uint32_t *dw
= (uint32_t * restrict
) dst
;
6460 __gen_field(values
->CommandType
, 29, 31) |
6461 __gen_field(values
->Pipeline
, 27, 28) |
6462 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6463 __gen_field(values
->SubOpcode
, 16, 23) |
6464 __gen_field(values
->DwordLength
, 0, 15) |
6468 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
6469 __gen_field(values
->StackSize
, 4, 7) |
6470 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
6474 __gen_offset(values
->ScratchSpaceBasePointerHigh
, 0, 15) |
6478 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
6479 __gen_field(values
->NumberofURBEntries
, 8, 15) |
6480 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
6481 __gen_field(values
->BypassGatewayControl
, 6, 6) |
6485 __gen_field(values
->SliceDisable
, 0, 1) |
6489 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
6490 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
6494 __gen_field(values
->ScoreboardEnable
, 31, 31) |
6495 __gen_field(values
->ScoreboardType
, 30, 30) |
6496 __gen_field(values
->ScoreboardMask
, 0, 7) |
6500 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
6501 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
6502 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
6503 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
6504 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
6505 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
6506 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
6507 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
6511 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
6512 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
6513 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
6514 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
6515 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
6516 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
6517 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
6518 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
6523 #define GEN8_MI_ARB_CHECK_length 0x00000001
6524 #define GEN8_MI_ARB_CHECK_length_bias 0x00000001
6525 #define GEN8_MI_ARB_CHECK_header \
6527 .MICommandOpcode = 5
6529 struct GEN8_MI_ARB_CHECK
{
6530 uint32_t CommandType
;
6531 uint32_t MICommandOpcode
;
6535 GEN8_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
6536 const struct GEN8_MI_ARB_CHECK
* restrict values
)
6538 uint32_t *dw
= (uint32_t * restrict
) dst
;
6541 __gen_field(values
->CommandType
, 29, 31) |
6542 __gen_field(values
->MICommandOpcode
, 23, 28) |
6547 #define GEN8_MI_BATCH_BUFFER_END_length 0x00000001
6548 #define GEN8_MI_BATCH_BUFFER_END_length_bias 0x00000001
6549 #define GEN8_MI_BATCH_BUFFER_END_header \
6551 .MICommandOpcode = 10
6553 struct GEN8_MI_BATCH_BUFFER_END
{
6554 uint32_t CommandType
;
6555 uint32_t MICommandOpcode
;
6559 GEN8_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6560 const struct GEN8_MI_BATCH_BUFFER_END
* restrict values
)
6562 uint32_t *dw
= (uint32_t * restrict
) dst
;
6565 __gen_field(values
->CommandType
, 29, 31) |
6566 __gen_field(values
->MICommandOpcode
, 23, 28) |
6571 #define GEN8_MI_BATCH_BUFFER_START_length 0x00000003
6572 #define GEN8_MI_BATCH_BUFFER_START_length_bias 0x00000002
6573 #define GEN8_MI_BATCH_BUFFER_START_header \
6575 .MICommandOpcode = 49, \
6578 struct GEN8_MI_BATCH_BUFFER_START
{
6579 uint32_t CommandType
;
6580 uint32_t MICommandOpcode
;
6581 #define _1stlevelbatch 0
6582 #define _2ndlevelbatch 1
6583 uint32_t _2ndLevelBatchBuffer
;
6584 uint32_t AddOffsetEnable
;
6585 uint32_t PredicationEnable
;
6586 uint32_t ResourceStreamerEnable
;
6589 uint32_t AddressSpaceIndicator
;
6590 uint32_t DwordLength
;
6591 __gen_address_type BatchBufferStartAddress
;
6592 __gen_address_type BatchBufferStartAddressHigh
;
6596 GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
6597 const struct GEN8_MI_BATCH_BUFFER_START
* restrict values
)
6599 uint32_t *dw
= (uint32_t * restrict
) dst
;
6602 __gen_field(values
->CommandType
, 29, 31) |
6603 __gen_field(values
->MICommandOpcode
, 23, 28) |
6604 __gen_field(values
->_2ndLevelBatchBuffer
, 22, 22) |
6605 __gen_field(values
->AddOffsetEnable
, 16, 16) |
6606 __gen_field(values
->PredicationEnable
, 15, 15) |
6607 __gen_field(values
->ResourceStreamerEnable
, 10, 10) |
6608 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
6609 __gen_field(values
->DwordLength
, 0, 7) |
6616 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
6622 __gen_combine_address(data
, &dw
[2], values
->BatchBufferStartAddressHigh
, dw2
);
6626 #define GEN8_MI_CLFLUSH_length_bias 0x00000002
6627 #define GEN8_MI_CLFLUSH_header \
6629 .MICommandOpcode = 39
6631 struct GEN8_MI_CLFLUSH
{
6632 uint32_t CommandType
;
6633 uint32_t MICommandOpcode
;
6634 #define PerProcessGraphicsAddress 0
6635 #define GlobalGraphicsAddress 1
6636 uint32_t UseGlobalGTT
;
6637 uint32_t DwordLength
;
6638 __gen_address_type PageBaseAddress
;
6639 uint32_t StartingCachelineOffset
;
6640 __gen_address_type PageBaseAddressHigh
;
6641 /* variable length fields follow */
6645 GEN8_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6646 const struct GEN8_MI_CLFLUSH
* restrict values
)
6648 uint32_t *dw
= (uint32_t * restrict
) dst
;
6651 __gen_field(values
->CommandType
, 29, 31) |
6652 __gen_field(values
->MICommandOpcode
, 23, 28) |
6653 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6654 __gen_field(values
->DwordLength
, 0, 9) |
6658 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
6662 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
6668 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
6670 /* variable length fields follow */
6673 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000003
6674 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
6675 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_header\
6677 .MICommandOpcode = 54, \
6678 .UseGlobalGTT = 0, \
6679 .CompareSemaphore = 0, \
6682 struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
{
6683 uint32_t CommandType
;
6684 uint32_t MICommandOpcode
;
6685 uint32_t UseGlobalGTT
;
6686 uint32_t CompareSemaphore
;
6687 uint32_t DwordLength
;
6688 uint32_t CompareDataDword
;
6689 __gen_address_type CompareAddress
;
6690 __gen_address_type CompareAddressHigh
;
6694 GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6695 const struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
6697 uint32_t *dw
= (uint32_t * restrict
) dst
;
6700 __gen_field(values
->CommandType
, 29, 31) |
6701 __gen_field(values
->MICommandOpcode
, 23, 28) |
6702 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6703 __gen_field(values
->CompareSemaphore
, 21, 21) |
6704 __gen_field(values
->DwordLength
, 0, 7) |
6708 __gen_field(values
->CompareDataDword
, 0, 31) |
6715 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
6721 __gen_combine_address(data
, &dw
[3], values
->CompareAddressHigh
, dw3
);
6725 #define GEN8_MI_COPY_MEM_MEM_length 0x00000005
6726 #define GEN8_MI_COPY_MEM_MEM_length_bias 0x00000002
6727 #define GEN8_MI_COPY_MEM_MEM_header \
6729 .MICommandOpcode = 46, \
6732 struct GEN8_MI_COPY_MEM_MEM
{
6733 uint32_t CommandType
;
6734 uint32_t MICommandOpcode
;
6735 #define PerProcessGraphicsAddress 0
6736 #define GlobalGraphicsAddress 1
6737 uint32_t UseGlobalGTTSource
;
6738 #define PerProcessGraphicsAddress 0
6739 #define GlobalGraphicsAddress 1
6740 uint32_t UseGlobalGTTDestination
;
6741 uint32_t DwordLength
;
6742 __gen_address_type DestinationMemoryAddress
;
6743 __gen_address_type SourceMemoryAddress
;
6747 GEN8_MI_COPY_MEM_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6748 const struct GEN8_MI_COPY_MEM_MEM
* restrict values
)
6750 uint32_t *dw
= (uint32_t * restrict
) dst
;
6753 __gen_field(values
->CommandType
, 29, 31) |
6754 __gen_field(values
->MICommandOpcode
, 23, 28) |
6755 __gen_field(values
->UseGlobalGTTSource
, 22, 22) |
6756 __gen_field(values
->UseGlobalGTTDestination
, 21, 21) |
6757 __gen_field(values
->DwordLength
, 0, 7) |
6764 __gen_combine_address(data
, &dw
[1], values
->DestinationMemoryAddress
, dw1
);
6773 __gen_combine_address(data
, &dw
[3], values
->SourceMemoryAddress
, dw3
);
6780 #define GEN8_MI_LOAD_REGISTER_IMM_length 0x00000003
6781 #define GEN8_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
6782 #define GEN8_MI_LOAD_REGISTER_IMM_header \
6784 .MICommandOpcode = 34, \
6787 struct GEN8_MI_LOAD_REGISTER_IMM
{
6788 uint32_t CommandType
;
6789 uint32_t MICommandOpcode
;
6790 uint32_t ByteWriteDisables
;
6791 uint32_t DwordLength
;
6792 uint32_t RegisterOffset
;
6797 GEN8_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6798 const struct GEN8_MI_LOAD_REGISTER_IMM
* restrict values
)
6800 uint32_t *dw
= (uint32_t * restrict
) dst
;
6803 __gen_field(values
->CommandType
, 29, 31) |
6804 __gen_field(values
->MICommandOpcode
, 23, 28) |
6805 __gen_field(values
->ByteWriteDisables
, 8, 11) |
6806 __gen_field(values
->DwordLength
, 0, 7) |
6810 __gen_offset(values
->RegisterOffset
, 2, 22) |
6814 __gen_field(values
->DataDWord
, 0, 31) |
6819 #define GEN8_MI_LOAD_REGISTER_MEM_length 0x00000004
6820 #define GEN8_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
6821 #define GEN8_MI_LOAD_REGISTER_MEM_header \
6823 .MICommandOpcode = 41, \
6826 struct GEN8_MI_LOAD_REGISTER_MEM
{
6827 uint32_t CommandType
;
6828 uint32_t MICommandOpcode
;
6829 uint32_t UseGlobalGTT
;
6830 uint32_t AsyncModeEnable
;
6831 uint32_t DwordLength
;
6832 uint32_t RegisterAddress
;
6833 __gen_address_type MemoryAddress
;
6837 GEN8_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6838 const struct GEN8_MI_LOAD_REGISTER_MEM
* restrict values
)
6840 uint32_t *dw
= (uint32_t * restrict
) dst
;
6843 __gen_field(values
->CommandType
, 29, 31) |
6844 __gen_field(values
->MICommandOpcode
, 23, 28) |
6845 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6846 __gen_field(values
->AsyncModeEnable
, 21, 21) |
6847 __gen_field(values
->DwordLength
, 0, 7) |
6851 __gen_offset(values
->RegisterAddress
, 2, 22) |
6858 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6865 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
6866 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
6867 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_header \
6869 .MICommandOpcode = 19, \
6872 struct GEN8_MI_LOAD_SCAN_LINES_EXCL
{
6873 uint32_t CommandType
;
6874 uint32_t MICommandOpcode
;
6875 #define DisplayPlaneA 0
6876 #define DisplayPlaneB 1
6877 #define DisplayPlaneC 4
6878 uint32_t DisplayPlaneSelect
;
6879 uint32_t DwordLength
;
6880 uint32_t StartScanLineNumber
;
6881 uint32_t EndScanLineNumber
;
6885 GEN8_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data
*data
, void * restrict dst
,
6886 const struct GEN8_MI_LOAD_SCAN_LINES_EXCL
* restrict values
)
6888 uint32_t *dw
= (uint32_t * restrict
) dst
;
6891 __gen_field(values
->CommandType
, 29, 31) |
6892 __gen_field(values
->MICommandOpcode
, 23, 28) |
6893 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6894 __gen_field(values
->DwordLength
, 0, 5) |
6898 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6899 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6904 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
6905 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
6906 #define GEN8_MI_LOAD_SCAN_LINES_INCL_header \
6908 .MICommandOpcode = 18, \
6911 struct GEN8_MI_LOAD_SCAN_LINES_INCL
{
6912 uint32_t CommandType
;
6913 uint32_t MICommandOpcode
;
6914 #define DisplayPlaneA 0
6915 #define DisplayPlaneB 1
6916 #define DisplayPlaneC 4
6917 uint32_t DisplayPlaneSelect
;
6918 #define NeverForward 0
6919 #define AlwaysForward 1
6920 #define ConditionallyForward 2
6921 uint32_t ScanLineEventDoneForward
;
6922 uint32_t DwordLength
;
6923 uint32_t StartScanLineNumber
;
6924 uint32_t EndScanLineNumber
;
6928 GEN8_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data
*data
, void * restrict dst
,
6929 const struct GEN8_MI_LOAD_SCAN_LINES_INCL
* restrict values
)
6931 uint32_t *dw
= (uint32_t * restrict
) dst
;
6934 __gen_field(values
->CommandType
, 29, 31) |
6935 __gen_field(values
->MICommandOpcode
, 23, 28) |
6936 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6937 __gen_field(values
->ScanLineEventDoneForward
, 17, 18) |
6938 __gen_field(values
->DwordLength
, 0, 5) |
6942 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6943 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6948 #define GEN8_MI_LOAD_URB_MEM_length 0x00000004
6949 #define GEN8_MI_LOAD_URB_MEM_length_bias 0x00000002
6950 #define GEN8_MI_LOAD_URB_MEM_header \
6952 .MICommandOpcode = 44, \
6955 struct GEN8_MI_LOAD_URB_MEM
{
6956 uint32_t CommandType
;
6957 uint32_t MICommandOpcode
;
6958 uint32_t DwordLength
;
6959 uint32_t URBAddress
;
6960 __gen_address_type MemoryAddress
;
6964 GEN8_MI_LOAD_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6965 const struct GEN8_MI_LOAD_URB_MEM
* restrict values
)
6967 uint32_t *dw
= (uint32_t * restrict
) dst
;
6970 __gen_field(values
->CommandType
, 29, 31) |
6971 __gen_field(values
->MICommandOpcode
, 23, 28) |
6972 __gen_field(values
->DwordLength
, 0, 7) |
6976 __gen_field(values
->URBAddress
, 2, 14) |
6983 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6990 #define GEN8_MI_MATH_length_bias 0x00000002
6991 #define GEN8_MI_MATH_header \
6993 .MICommandOpcode = 26
6995 struct GEN8_MI_MATH
{
6996 uint32_t CommandType
;
6997 uint32_t MICommandOpcode
;
6998 uint32_t DwordLength
;
6999 uint32_t ALUINSTRUCTION1
;
7000 uint32_t ALUINSTRUCTION2
;
7001 /* variable length fields follow */
7005 GEN8_MI_MATH_pack(__gen_user_data
*data
, void * restrict dst
,
7006 const struct GEN8_MI_MATH
* restrict values
)
7008 uint32_t *dw
= (uint32_t * restrict
) dst
;
7011 __gen_field(values
->CommandType
, 29, 31) |
7012 __gen_field(values
->MICommandOpcode
, 23, 28) |
7013 __gen_field(values
->DwordLength
, 0, 5) |
7017 __gen_field(values
->ALUINSTRUCTION1
, 0, 31) |
7021 __gen_field(values
->ALUINSTRUCTION2
, 0, 31) |
7024 /* variable length fields follow */
7027 #define GEN8_MI_NOOP_length 0x00000001
7028 #define GEN8_MI_NOOP_length_bias 0x00000001
7029 #define GEN8_MI_NOOP_header \
7031 .MICommandOpcode = 0
7033 struct GEN8_MI_NOOP
{
7034 uint32_t CommandType
;
7035 uint32_t MICommandOpcode
;
7036 uint32_t IdentificationNumberRegisterWriteEnable
;
7037 uint32_t IdentificationNumber
;
7041 GEN8_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
7042 const struct GEN8_MI_NOOP
* restrict values
)
7044 uint32_t *dw
= (uint32_t * restrict
) dst
;
7047 __gen_field(values
->CommandType
, 29, 31) |
7048 __gen_field(values
->MICommandOpcode
, 23, 28) |
7049 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
7050 __gen_field(values
->IdentificationNumber
, 0, 21) |
7055 #define GEN8_MI_PREDICATE_length 0x00000001
7056 #define GEN8_MI_PREDICATE_length_bias 0x00000001
7057 #define GEN8_MI_PREDICATE_header \
7059 .MICommandOpcode = 12
7061 struct GEN8_MI_PREDICATE
{
7062 uint32_t CommandType
;
7063 uint32_t MICommandOpcode
;
7067 uint32_t LoadOperation
;
7068 #define COMBINE_SET 0
7069 #define COMBINE_AND 1
7070 #define COMBINE_OR 2
7071 #define COMBINE_XOR 3
7072 uint32_t CombineOperation
;
7073 #define COMPARE_SRCS_EQUAL 2
7074 #define COMPARE_DELTAS_EQUAL 3
7075 uint32_t CompareOperation
;
7079 GEN8_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7080 const struct GEN8_MI_PREDICATE
* restrict values
)
7082 uint32_t *dw
= (uint32_t * restrict
) dst
;
7085 __gen_field(values
->CommandType
, 29, 31) |
7086 __gen_field(values
->MICommandOpcode
, 23, 28) |
7087 __gen_field(values
->LoadOperation
, 6, 7) |
7088 __gen_field(values
->CombineOperation
, 3, 4) |
7089 __gen_field(values
->CompareOperation
, 0, 1) |
7094 #define GEN8_MI_REPORT_HEAD_length 0x00000001
7095 #define GEN8_MI_REPORT_HEAD_length_bias 0x00000001
7096 #define GEN8_MI_REPORT_HEAD_header \
7098 .MICommandOpcode = 7
7100 struct GEN8_MI_REPORT_HEAD
{
7101 uint32_t CommandType
;
7102 uint32_t MICommandOpcode
;
7106 GEN8_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
7107 const struct GEN8_MI_REPORT_HEAD
* restrict values
)
7109 uint32_t *dw
= (uint32_t * restrict
) dst
;
7112 __gen_field(values
->CommandType
, 29, 31) |
7113 __gen_field(values
->MICommandOpcode
, 23, 28) |
7118 #define GEN8_MI_RS_CONTEXT_length 0x00000001
7119 #define GEN8_MI_RS_CONTEXT_length_bias 0x00000001
7120 #define GEN8_MI_RS_CONTEXT_header \
7122 .MICommandOpcode = 15
7124 struct GEN8_MI_RS_CONTEXT
{
7125 uint32_t CommandType
;
7126 uint32_t MICommandOpcode
;
7129 uint32_t ResourceStreamerSave
;
7133 GEN8_MI_RS_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7134 const struct GEN8_MI_RS_CONTEXT
* restrict values
)
7136 uint32_t *dw
= (uint32_t * restrict
) dst
;
7139 __gen_field(values
->CommandType
, 29, 31) |
7140 __gen_field(values
->MICommandOpcode
, 23, 28) |
7141 __gen_field(values
->ResourceStreamerSave
, 0, 0) |
7146 #define GEN8_MI_RS_CONTROL_length 0x00000001
7147 #define GEN8_MI_RS_CONTROL_length_bias 0x00000001
7148 #define GEN8_MI_RS_CONTROL_header \
7150 .MICommandOpcode = 6
7152 struct GEN8_MI_RS_CONTROL
{
7153 uint32_t CommandType
;
7154 uint32_t MICommandOpcode
;
7157 uint32_t ResourceStreamerControl
;
7161 GEN8_MI_RS_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7162 const struct GEN8_MI_RS_CONTROL
* restrict values
)
7164 uint32_t *dw
= (uint32_t * restrict
) dst
;
7167 __gen_field(values
->CommandType
, 29, 31) |
7168 __gen_field(values
->MICommandOpcode
, 23, 28) |
7169 __gen_field(values
->ResourceStreamerControl
, 0, 0) |
7174 #define GEN8_MI_RS_STORE_DATA_IMM_length 0x00000004
7175 #define GEN8_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
7176 #define GEN8_MI_RS_STORE_DATA_IMM_header \
7178 .MICommandOpcode = 43, \
7181 struct GEN8_MI_RS_STORE_DATA_IMM
{
7182 uint32_t CommandType
;
7183 uint32_t MICommandOpcode
;
7184 uint32_t DwordLength
;
7185 __gen_address_type DestinationAddress
;
7186 uint32_t CoreModeEnable
;
7187 uint32_t DataDWord0
;
7191 GEN8_MI_RS_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7192 const struct GEN8_MI_RS_STORE_DATA_IMM
* restrict values
)
7194 uint32_t *dw
= (uint32_t * restrict
) dst
;
7197 __gen_field(values
->CommandType
, 29, 31) |
7198 __gen_field(values
->MICommandOpcode
, 23, 28) |
7199 __gen_field(values
->DwordLength
, 0, 7) |
7203 __gen_field(values
->CoreModeEnable
, 0, 0) |
7207 __gen_combine_address(data
, &dw
[1], values
->DestinationAddress
, dw1
);
7213 __gen_field(values
->DataDWord0
, 0, 31) |
7218 #define GEN8_MI_SET_CONTEXT_length 0x00000002
7219 #define GEN8_MI_SET_CONTEXT_length_bias 0x00000002
7220 #define GEN8_MI_SET_CONTEXT_header \
7222 .MICommandOpcode = 24, \
7225 struct GEN8_MI_SET_CONTEXT
{
7226 uint32_t CommandType
;
7227 uint32_t MICommandOpcode
;
7228 uint32_t DwordLength
;
7229 __gen_address_type LogicalContextAddress
;
7230 uint32_t ReservedMustbe1
;
7231 uint32_t CoreModeEnable
;
7232 uint32_t ResourceStreamerStateSaveEnable
;
7233 uint32_t ResourceStreamerStateRestoreEnable
;
7234 uint32_t ForceRestore
;
7235 uint32_t RestoreInhibit
;
7239 GEN8_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7240 const struct GEN8_MI_SET_CONTEXT
* restrict values
)
7242 uint32_t *dw
= (uint32_t * restrict
) dst
;
7245 __gen_field(values
->CommandType
, 29, 31) |
7246 __gen_field(values
->MICommandOpcode
, 23, 28) |
7247 __gen_field(values
->DwordLength
, 0, 7) |
7251 __gen_field(values
->ReservedMustbe1
, 8, 8) |
7252 __gen_field(values
->CoreModeEnable
, 4, 4) |
7253 __gen_field(values
->ResourceStreamerStateSaveEnable
, 3, 3) |
7254 __gen_field(values
->ResourceStreamerStateRestoreEnable
, 2, 2) |
7255 __gen_field(values
->ForceRestore
, 1, 1) |
7256 __gen_field(values
->RestoreInhibit
, 0, 0) |
7260 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
7264 #define GEN8_MI_SET_PREDICATE_length 0x00000001
7265 #define GEN8_MI_SET_PREDICATE_length_bias 0x00000001
7266 #define GEN8_MI_SET_PREDICATE_header \
7268 .MICommandOpcode = 1
7270 struct GEN8_MI_SET_PREDICATE
{
7271 uint32_t CommandType
;
7272 uint32_t MICommandOpcode
;
7274 #define NOOPonResult2clear 1
7275 #define NOOPonResult2set 2
7276 #define NOOPonResultclear 3
7277 #define NOOPonResultset 4
7278 #define Executewhenonesliceenabled 5
7279 #define Executewhentwoslicesareenabled 6
7280 #define Executewhenthreeslicesareenabled 7
7281 #define NOOPAlways 15
7282 uint32_t PREDICATEENABLE
;
7286 GEN8_MI_SET_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7287 const struct GEN8_MI_SET_PREDICATE
* restrict values
)
7289 uint32_t *dw
= (uint32_t * restrict
) dst
;
7292 __gen_field(values
->CommandType
, 29, 31) |
7293 __gen_field(values
->MICommandOpcode
, 23, 28) |
7294 __gen_field(values
->PREDICATEENABLE
, 0, 3) |
7299 #define GEN8_MI_STORE_DATA_IMM_length 0x00000004
7300 #define GEN8_MI_STORE_DATA_IMM_length_bias 0x00000002
7301 #define GEN8_MI_STORE_DATA_IMM_header \
7303 .MICommandOpcode = 32, \
7306 struct GEN8_MI_STORE_DATA_IMM
{
7307 uint32_t CommandType
;
7308 uint32_t MICommandOpcode
;
7309 uint32_t UseGlobalGTT
;
7310 uint32_t StoreQword
;
7311 uint32_t DwordLength
;
7312 __gen_address_type Address
;
7313 uint32_t CoreModeEnable
;
7314 uint32_t DataDWord0
;
7315 uint32_t DataDWord1
;
7319 GEN8_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7320 const struct GEN8_MI_STORE_DATA_IMM
* restrict values
)
7322 uint32_t *dw
= (uint32_t * restrict
) dst
;
7325 __gen_field(values
->CommandType
, 29, 31) |
7326 __gen_field(values
->MICommandOpcode
, 23, 28) |
7327 __gen_field(values
->UseGlobalGTT
, 22, 22) |
7328 __gen_field(values
->StoreQword
, 21, 21) |
7329 __gen_field(values
->DwordLength
, 0, 9) |
7333 __gen_field(values
->CoreModeEnable
, 0, 0) |
7337 __gen_combine_address(data
, &dw
[1], values
->Address
, dw1
);
7343 __gen_field(values
->DataDWord0
, 0, 31) |
7347 __gen_field(values
->DataDWord1
, 0, 31) |
7352 #define GEN8_MI_STORE_DATA_INDEX_length 0x00000003
7353 #define GEN8_MI_STORE_DATA_INDEX_length_bias 0x00000002
7354 #define GEN8_MI_STORE_DATA_INDEX_header \
7356 .MICommandOpcode = 33, \
7359 struct GEN8_MI_STORE_DATA_INDEX
{
7360 uint32_t CommandType
;
7361 uint32_t MICommandOpcode
;
7362 uint32_t UsePerProcessHardwareStatusPage
;
7363 uint32_t DwordLength
;
7365 uint32_t DataDWord0
;
7366 uint32_t DataDWord1
;
7370 GEN8_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
7371 const struct GEN8_MI_STORE_DATA_INDEX
* restrict values
)
7373 uint32_t *dw
= (uint32_t * restrict
) dst
;
7376 __gen_field(values
->CommandType
, 29, 31) |
7377 __gen_field(values
->MICommandOpcode
, 23, 28) |
7378 __gen_field(values
->UsePerProcessHardwareStatusPage
, 21, 21) |
7379 __gen_field(values
->DwordLength
, 0, 7) |
7383 __gen_field(values
->Offset
, 2, 11) |
7387 __gen_field(values
->DataDWord0
, 0, 31) |
7391 __gen_field(values
->DataDWord1
, 0, 31) |
7396 #define GEN8_MI_STORE_URB_MEM_length 0x00000004
7397 #define GEN8_MI_STORE_URB_MEM_length_bias 0x00000002
7398 #define GEN8_MI_STORE_URB_MEM_header \
7400 .MICommandOpcode = 45, \
7403 struct GEN8_MI_STORE_URB_MEM
{
7404 uint32_t CommandType
;
7405 uint32_t MICommandOpcode
;
7406 uint32_t DwordLength
;
7407 uint32_t URBAddress
;
7408 __gen_address_type MemoryAddress
;
7412 GEN8_MI_STORE_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7413 const struct GEN8_MI_STORE_URB_MEM
* restrict values
)
7415 uint32_t *dw
= (uint32_t * restrict
) dst
;
7418 __gen_field(values
->CommandType
, 29, 31) |
7419 __gen_field(values
->MICommandOpcode
, 23, 28) |
7420 __gen_field(values
->DwordLength
, 0, 7) |
7424 __gen_field(values
->URBAddress
, 2, 14) |
7431 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
7438 #define GEN8_MI_SUSPEND_FLUSH_length 0x00000001
7439 #define GEN8_MI_SUSPEND_FLUSH_length_bias 0x00000001
7440 #define GEN8_MI_SUSPEND_FLUSH_header \
7442 .MICommandOpcode = 11
7444 struct GEN8_MI_SUSPEND_FLUSH
{
7445 uint32_t CommandType
;
7446 uint32_t MICommandOpcode
;
7447 uint32_t SuspendFlush
;
7451 GEN8_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
7452 const struct GEN8_MI_SUSPEND_FLUSH
* restrict values
)
7454 uint32_t *dw
= (uint32_t * restrict
) dst
;
7457 __gen_field(values
->CommandType
, 29, 31) |
7458 __gen_field(values
->MICommandOpcode
, 23, 28) |
7459 __gen_field(values
->SuspendFlush
, 0, 0) |
7464 #define GEN8_MI_TOPOLOGY_FILTER_length 0x00000001
7465 #define GEN8_MI_TOPOLOGY_FILTER_length_bias 0x00000001
7466 #define GEN8_MI_TOPOLOGY_FILTER_header \
7468 .MICommandOpcode = 13
7470 struct GEN8_MI_TOPOLOGY_FILTER
{
7471 uint32_t CommandType
;
7472 uint32_t MICommandOpcode
;
7473 uint32_t TopologyFilterValue
;
7477 GEN8_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
7478 const struct GEN8_MI_TOPOLOGY_FILTER
* restrict values
)
7480 uint32_t *dw
= (uint32_t * restrict
) dst
;
7483 __gen_field(values
->CommandType
, 29, 31) |
7484 __gen_field(values
->MICommandOpcode
, 23, 28) |
7485 __gen_field(values
->TopologyFilterValue
, 0, 5) |
7490 #define GEN8_MI_UPDATE_GTT_length_bias 0x00000002
7491 #define GEN8_MI_UPDATE_GTT_header \
7493 .MICommandOpcode = 35
7495 struct GEN8_MI_UPDATE_GTT
{
7496 uint32_t CommandType
;
7497 uint32_t MICommandOpcode
;
7498 uint32_t DwordLength
;
7499 __gen_address_type EntryAddress
;
7500 /* variable length fields follow */
7504 GEN8_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
7505 const struct GEN8_MI_UPDATE_GTT
* restrict values
)
7507 uint32_t *dw
= (uint32_t * restrict
) dst
;
7510 __gen_field(values
->CommandType
, 29, 31) |
7511 __gen_field(values
->MICommandOpcode
, 23, 28) |
7512 __gen_field(values
->DwordLength
, 0, 9) |
7519 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
7521 /* variable length fields follow */
7524 #define GEN8_MI_URB_ATOMIC_ALLOC_length 0x00000001
7525 #define GEN8_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
7526 #define GEN8_MI_URB_ATOMIC_ALLOC_header \
7528 .MICommandOpcode = 9
7530 struct GEN8_MI_URB_ATOMIC_ALLOC
{
7531 uint32_t CommandType
;
7532 uint32_t MICommandOpcode
;
7533 uint32_t URBAtomicStorageOffset
;
7534 uint32_t URBAtomicStorageSize
;
7538 GEN8_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
7539 const struct GEN8_MI_URB_ATOMIC_ALLOC
* restrict values
)
7541 uint32_t *dw
= (uint32_t * restrict
) dst
;
7544 __gen_field(values
->CommandType
, 29, 31) |
7545 __gen_field(values
->MICommandOpcode
, 23, 28) |
7546 __gen_field(values
->URBAtomicStorageOffset
, 12, 19) |
7547 __gen_field(values
->URBAtomicStorageSize
, 0, 8) |
7552 #define GEN8_MI_URB_CLEAR_length 0x00000002
7553 #define GEN8_MI_URB_CLEAR_length_bias 0x00000002
7554 #define GEN8_MI_URB_CLEAR_header \
7556 .MICommandOpcode = 25, \
7559 struct GEN8_MI_URB_CLEAR
{
7560 uint32_t CommandType
;
7561 uint32_t MICommandOpcode
;
7562 uint32_t DwordLength
;
7563 uint32_t URBClearLength
;
7564 uint32_t URBAddress
;
7568 GEN8_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
7569 const struct GEN8_MI_URB_CLEAR
* restrict values
)
7571 uint32_t *dw
= (uint32_t * restrict
) dst
;
7574 __gen_field(values
->CommandType
, 29, 31) |
7575 __gen_field(values
->MICommandOpcode
, 23, 28) |
7576 __gen_field(values
->DwordLength
, 0, 7) |
7580 __gen_field(values
->URBClearLength
, 16, 29) |
7581 __gen_offset(values
->URBAddress
, 0, 14) |
7586 #define GEN8_MI_USER_INTERRUPT_length 0x00000001
7587 #define GEN8_MI_USER_INTERRUPT_length_bias 0x00000001
7588 #define GEN8_MI_USER_INTERRUPT_header \
7590 .MICommandOpcode = 2
7592 struct GEN8_MI_USER_INTERRUPT
{
7593 uint32_t CommandType
;
7594 uint32_t MICommandOpcode
;
7598 GEN8_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
7599 const struct GEN8_MI_USER_INTERRUPT
* restrict values
)
7601 uint32_t *dw
= (uint32_t * restrict
) dst
;
7604 __gen_field(values
->CommandType
, 29, 31) |
7605 __gen_field(values
->MICommandOpcode
, 23, 28) |
7610 #define GEN8_MI_WAIT_FOR_EVENT_length 0x00000001
7611 #define GEN8_MI_WAIT_FOR_EVENT_length_bias 0x00000001
7612 #define GEN8_MI_WAIT_FOR_EVENT_header \
7614 .MICommandOpcode = 3
7616 struct GEN8_MI_WAIT_FOR_EVENT
{
7617 uint32_t CommandType
;
7618 uint32_t MICommandOpcode
;
7619 uint32_t DisplayPipeCVerticalBlankWaitEnable
;
7620 uint32_t DisplaySpriteCFlipPendingWaitEnable
;
7621 uint32_t DisplayPlaneCFlipPendingWaitEnable
;
7622 uint32_t DisplayPipeCScanLineWaitEnable
;
7623 uint32_t DisplayPipeBVerticalBlankWaitEnable
;
7624 uint32_t DisplaySpriteBFlipPendingWaitEnable
;
7625 uint32_t DisplayPlaneBFlipPendingWaitEnable
;
7626 uint32_t DisplayPipeBScanLineWaitEnable
;
7627 uint32_t DisplayPipeAVerticalBlankWaitEnable
;
7628 uint32_t DisplaySpriteAFlipPendingWaitEnable
;
7629 uint32_t DisplayPlaneAFlipPendingWaitEnable
;
7630 uint32_t DisplayPipeAScanLineWaitEnable
;
7634 GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
7635 const struct GEN8_MI_WAIT_FOR_EVENT
* restrict values
)
7637 uint32_t *dw
= (uint32_t * restrict
) dst
;
7640 __gen_field(values
->CommandType
, 29, 31) |
7641 __gen_field(values
->MICommandOpcode
, 23, 28) |
7642 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
7643 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
7644 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
7645 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
7646 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
7647 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
7648 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
7649 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
7650 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
7651 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
7652 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
7653 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
7658 #define GEN8_PIPE_CONTROL_length 0x00000006
7659 #define GEN8_PIPE_CONTROL_length_bias 0x00000002
7660 #define GEN8_PIPE_CONTROL_header \
7662 .CommandSubType = 3, \
7663 ._3DCommandOpcode = 2, \
7664 ._3DCommandSubOpcode = 0, \
7667 struct GEN8_PIPE_CONTROL
{
7668 uint32_t CommandType
;
7669 uint32_t CommandSubType
;
7670 uint32_t _3DCommandOpcode
;
7671 uint32_t _3DCommandSubOpcode
;
7672 uint32_t DwordLength
;
7675 uint32_t DestinationAddressType
;
7676 #define NoLRIOperation 0
7677 #define MMIOWriteImmediateData 1
7678 uint32_t LRIPostSyncOperation
;
7679 uint32_t StoreDataIndex
;
7680 uint32_t CommandStreamerStallEnable
;
7683 uint32_t GlobalSnapshotCountReset
;
7684 uint32_t TLBInvalidate
;
7685 uint32_t GenericMediaStateClear
;
7687 #define WriteImmediateData 1
7688 #define WritePSDepthCount 2
7689 #define WriteTimestamp 3
7690 uint32_t PostSyncOperation
;
7691 uint32_t DepthStallEnable
;
7692 #define DisableFlush 0
7693 #define EnableFlush 1
7694 uint32_t RenderTargetCacheFlushEnable
;
7695 uint32_t InstructionCacheInvalidateEnable
;
7696 uint32_t TextureCacheInvalidationEnable
;
7697 uint32_t IndirectStatePointersDisable
;
7698 uint32_t NotifyEnable
;
7699 uint32_t PipeControlFlushEnable
;
7700 uint32_t DCFlushEnable
;
7701 uint32_t VFCacheInvalidationEnable
;
7702 uint32_t ConstantCacheInvalidationEnable
;
7703 uint32_t StateCacheInvalidationEnable
;
7704 uint32_t StallAtPixelScoreboard
;
7705 #define FlushDisabled 0
7706 #define FlushEnabled 1
7707 uint32_t DepthCacheFlushEnable
;
7708 __gen_address_type Address
;
7709 __gen_address_type AddressHigh
;
7710 uint64_t ImmediateData
;
7714 GEN8_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7715 const struct GEN8_PIPE_CONTROL
* restrict values
)
7717 uint32_t *dw
= (uint32_t * restrict
) dst
;
7720 __gen_field(values
->CommandType
, 29, 31) |
7721 __gen_field(values
->CommandSubType
, 27, 28) |
7722 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
7723 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
7724 __gen_field(values
->DwordLength
, 0, 7) |
7728 __gen_field(values
->DestinationAddressType
, 24, 24) |
7729 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
7730 __gen_field(values
->StoreDataIndex
, 21, 21) |
7731 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
7732 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
7733 __gen_field(values
->TLBInvalidate
, 18, 18) |
7734 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
7735 __gen_field(values
->PostSyncOperation
, 14, 15) |
7736 __gen_field(values
->DepthStallEnable
, 13, 13) |
7737 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
7738 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
7739 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
7740 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
7741 __gen_field(values
->NotifyEnable
, 8, 8) |
7742 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
7743 __gen_field(values
->DCFlushEnable
, 5, 5) |
7744 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
7745 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
7746 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
7747 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
7748 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
7755 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
7761 __gen_combine_address(data
, &dw
[3], values
->AddressHigh
, dw3
);
7764 __gen_field(values
->ImmediateData
, 0, 63) |
7772 #define GEN8_3DSTATE_CONSTANT_BODY_length 0x0000000a
7774 #define GEN8_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
7776 #define GEN8_GATHER_CONSTANT_ENTRY_length 0x00000001
7778 #define GEN8_VERTEX_BUFFER_STATE_length 0x00000004
7780 #define GEN8_VERTEX_ELEMENT_STATE_length 0x00000002
7782 #define GEN8_SO_DECL_ENTRY_length 0x00000002
7784 #define GEN8_SO_DECL_length 0x00000001
7786 #define GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
7788 #define GEN8_SCISSOR_RECT_length 0x00000002
7790 struct GEN8_SCISSOR_RECT
{
7791 uint32_t ScissorRectangleYMin
;
7792 uint32_t ScissorRectangleXMin
;
7793 uint32_t ScissorRectangleYMax
;
7794 uint32_t ScissorRectangleXMax
;
7798 GEN8_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
7799 const struct GEN8_SCISSOR_RECT
* restrict values
)
7801 uint32_t *dw
= (uint32_t * restrict
) dst
;
7804 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
7805 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
7809 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
7810 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
7815 #define GEN8_SF_CLIP_VIEWPORT_length 0x00000010
7817 struct GEN8_SF_CLIP_VIEWPORT
{
7818 float ViewportMatrixElementm00
;
7819 float ViewportMatrixElementm11
;
7820 float ViewportMatrixElementm22
;
7821 float ViewportMatrixElementm30
;
7822 float ViewportMatrixElementm31
;
7823 float ViewportMatrixElementm32
;
7824 float XMinClipGuardband
;
7825 float XMaxClipGuardband
;
7826 float YMinClipGuardband
;
7827 float YMaxClipGuardband
;
7835 GEN8_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7836 const struct GEN8_SF_CLIP_VIEWPORT
* restrict values
)
7838 uint32_t *dw
= (uint32_t * restrict
) dst
;
7841 __gen_float(values
->ViewportMatrixElementm00
) |
7845 __gen_float(values
->ViewportMatrixElementm11
) |
7849 __gen_float(values
->ViewportMatrixElementm22
) |
7853 __gen_float(values
->ViewportMatrixElementm30
) |
7857 __gen_float(values
->ViewportMatrixElementm31
) |
7861 __gen_float(values
->ViewportMatrixElementm32
) |
7871 __gen_float(values
->XMinClipGuardband
) |
7875 __gen_float(values
->XMaxClipGuardband
) |
7879 __gen_float(values
->YMinClipGuardband
) |
7883 __gen_float(values
->YMaxClipGuardband
) |
7887 __gen_float(values
->XMinViewPort
) |
7891 __gen_float(values
->XMaxViewPort
) |
7895 __gen_float(values
->YMinViewPort
) |
7899 __gen_float(values
->YMaxViewPort
) |
7904 #define GEN8_BLEND_STATE_length 0x00000011
7906 struct GEN8_BLEND_STATE_ENTRY
{
7907 uint32_t LogicOpEnable
;
7908 uint32_t LogicOpFunction
;
7909 uint32_t PreBlendSourceOnlyClampEnable
;
7910 #define COLORCLAMP_UNORM 0
7911 #define COLORCLAMP_SNORM 1
7912 #define COLORCLAMP_RTFORMAT 2
7913 uint32_t ColorClampRange
;
7914 uint32_t PreBlendColorClampEnable
;
7915 uint32_t PostBlendColorClampEnable
;
7916 uint32_t ColorBufferBlendEnable
;
7917 uint32_t SourceBlendFactor
;
7918 uint32_t DestinationBlendFactor
;
7919 uint32_t ColorBlendFunction
;
7920 uint32_t SourceAlphaBlendFactor
;
7921 uint32_t DestinationAlphaBlendFactor
;
7922 uint32_t AlphaBlendFunction
;
7923 uint32_t WriteDisableAlpha
;
7924 uint32_t WriteDisableRed
;
7925 uint32_t WriteDisableGreen
;
7926 uint32_t WriteDisableBlue
;
7930 GEN8_BLEND_STATE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
7931 const struct GEN8_BLEND_STATE_ENTRY
* restrict values
)
7933 uint32_t *dw
= (uint32_t * restrict
) dst
;
7936 __gen_field(values
->LogicOpEnable
, 63, 63) |
7937 __gen_field(values
->LogicOpFunction
, 59, 62) |
7938 __gen_field(values
->PreBlendSourceOnlyClampEnable
, 36, 36) |
7939 __gen_field(values
->ColorClampRange
, 34, 35) |
7940 __gen_field(values
->PreBlendColorClampEnable
, 33, 33) |
7941 __gen_field(values
->PostBlendColorClampEnable
, 32, 32) |
7942 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
7943 __gen_field(values
->SourceBlendFactor
, 26, 30) |
7944 __gen_field(values
->DestinationBlendFactor
, 21, 25) |
7945 __gen_field(values
->ColorBlendFunction
, 18, 20) |
7946 __gen_field(values
->SourceAlphaBlendFactor
, 13, 17) |
7947 __gen_field(values
->DestinationAlphaBlendFactor
, 8, 12) |
7948 __gen_field(values
->AlphaBlendFunction
, 5, 7) |
7949 __gen_field(values
->WriteDisableAlpha
, 3, 3) |
7950 __gen_field(values
->WriteDisableRed
, 2, 2) |
7951 __gen_field(values
->WriteDisableGreen
, 1, 1) |
7952 __gen_field(values
->WriteDisableBlue
, 0, 0) |
7957 struct GEN8_BLEND_STATE
{
7958 uint32_t AlphaToCoverageEnable
;
7959 uint32_t IndependentAlphaBlendEnable
;
7960 uint32_t AlphaToOneEnable
;
7961 uint32_t AlphaToCoverageDitherEnable
;
7962 uint32_t AlphaTestEnable
;
7963 uint32_t AlphaTestFunction
;
7964 uint32_t ColorDitherEnable
;
7965 uint32_t XDitherOffset
;
7966 uint32_t YDitherOffset
;
7967 struct GEN8_BLEND_STATE_ENTRY Entry
;
7971 GEN8_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7972 const struct GEN8_BLEND_STATE
* restrict values
)
7974 uint32_t *dw
= (uint32_t * restrict
) dst
;
7977 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
7978 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
7979 __gen_field(values
->AlphaToOneEnable
, 29, 29) |
7980 __gen_field(values
->AlphaToCoverageDitherEnable
, 28, 28) |
7981 __gen_field(values
->AlphaTestEnable
, 27, 27) |
7982 __gen_field(values
->AlphaTestFunction
, 24, 26) |
7983 __gen_field(values
->ColorDitherEnable
, 23, 23) |
7984 __gen_field(values
->XDitherOffset
, 21, 22) |
7985 __gen_field(values
->YDitherOffset
, 19, 20) |
7988 GEN8_BLEND_STATE_ENTRY_pack(data
, &dw
[1], &values
->Entry
);
7991 #define GEN8_BLEND_STATE_ENTRY_length 0x00000001
7993 #define GEN8_CC_VIEWPORT_length 0x00000002
7995 struct GEN8_CC_VIEWPORT
{
8001 GEN8_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
8002 const struct GEN8_CC_VIEWPORT
* restrict values
)
8004 uint32_t *dw
= (uint32_t * restrict
) dst
;
8007 __gen_float(values
->MinimumDepth
) |
8011 __gen_float(values
->MaximumDepth
) |
8016 #define GEN8_COLOR_CALC_STATE_length 0x00000006
8018 struct GEN8_COLOR_CALC_STATE
{
8019 uint32_t StencilReferenceValue
;
8020 uint32_t BackFaceStencilReferenceValue
;
8022 #define NotCancelled 1
8023 uint32_t RoundDisableFunctionDisable
;
8024 #define ALPHATEST_UNORM8 0
8025 #define ALPHATEST_FLOAT32 1
8026 uint32_t AlphaTestFormat
;
8027 uint32_t AlphaReferenceValueAsUNORM8
;
8028 float AlphaReferenceValueAsFLOAT32
;
8029 float BlendConstantColorRed
;
8030 float BlendConstantColorGreen
;
8031 float BlendConstantColorBlue
;
8032 float BlendConstantColorAlpha
;
8036 GEN8_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8037 const struct GEN8_COLOR_CALC_STATE
* restrict values
)
8039 uint32_t *dw
= (uint32_t * restrict
) dst
;
8042 __gen_field(values
->StencilReferenceValue
, 24, 31) |
8043 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
8044 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
8045 __gen_field(values
->AlphaTestFormat
, 0, 0) |
8049 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
8050 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
8054 __gen_float(values
->BlendConstantColorRed
) |
8058 __gen_float(values
->BlendConstantColorGreen
) |
8062 __gen_float(values
->BlendConstantColorBlue
) |
8066 __gen_float(values
->BlendConstantColorAlpha
) |
8071 #define GEN8_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
8073 #define GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001
8075 struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
{
8076 #define UseCacheabilityControlsfrompagetableUCwithFenceifcoherentcycle 0
8077 #define UncacheableUCnoncacheable 1
8078 #define WritethroughWT 2
8079 #define WritebackWB 3
8080 uint32_t MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
;
8083 #define LLCeLLCAllowed 2
8084 #define L3LLCeLLCAllowed 3
8085 uint32_t TargetCacheTC
;
8086 uint32_t EncryptedData
;
8087 #define PoorChance 3
8088 #define NormalChance 2
8089 #define BetterChance 1
8090 #define BestChance 0
8091 uint32_t AgeforQUADLRUAGE
;
8095 GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_pack(__gen_user_data
*data
, void * restrict dst
,
8096 const struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
* restrict values
)
8098 uint32_t *dw
= (uint32_t * restrict
) dst
;
8101 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
, 5, 6) |
8102 __gen_field(values
->TargetCacheTC
, 3, 4) |
8103 __gen_field(values
->EncryptedData
, 2, 2) |
8104 __gen_field(values
->AgeforQUADLRUAGE
, 0, 1) |
8109 #define GEN8_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
8111 struct GEN8_INTERFACE_DESCRIPTOR_DATA
{
8112 uint32_t KernelStartPointer
;
8113 uint32_t KernelStartPointerHigh
;
8115 #define SetByKernel 1
8116 uint32_t DenormMode
;
8119 uint32_t SingleProgramFlow
;
8120 #define NormalPriority 0
8121 #define HighPriority 1
8122 uint32_t ThreadPriority
;
8125 uint32_t FloatingPointMode
;
8126 uint32_t IllegalOpcodeExceptionEnable
;
8127 uint32_t MaskStackExceptionEnable
;
8128 uint32_t SoftwareExceptionEnable
;
8129 uint32_t SamplerStatePointer
;
8130 #define Nosamplersused 0
8131 #define Between1and4samplersused 1
8132 #define Between5and8samplersused 2
8133 #define Between9and12samplersused 3
8134 #define Between13and16samplersused 4
8135 uint32_t SamplerCount
;
8136 uint32_t BindingTablePointer
;
8137 uint32_t BindingTableEntryCount
;
8138 uint32_t ConstantIndirectURBEntryReadLength
;
8139 uint32_t ConstantURBEntryReadOffset
;
8144 uint32_t RoundingMode
;
8145 uint32_t BarrierEnable
;
8149 #define Encodes16k 4
8150 #define Encodes32k 8
8151 #define Encodes64k 16
8152 uint32_t SharedLocalMemorySize
;
8153 uint32_t NumberofThreadsinGPGPUThreadGroup
;
8154 uint32_t CrossThreadConstantDataReadLength
;
8158 GEN8_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
8159 const struct GEN8_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
8161 uint32_t *dw
= (uint32_t * restrict
) dst
;
8164 __gen_offset(values
->KernelStartPointer
, 6, 31) |
8168 __gen_offset(values
->KernelStartPointerHigh
, 0, 15) |
8172 __gen_field(values
->DenormMode
, 19, 19) |
8173 __gen_field(values
->SingleProgramFlow
, 18, 18) |
8174 __gen_field(values
->ThreadPriority
, 17, 17) |
8175 __gen_field(values
->FloatingPointMode
, 16, 16) |
8176 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
8177 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
8178 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
8182 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
8183 __gen_field(values
->SamplerCount
, 2, 4) |
8187 __gen_offset(values
->BindingTablePointer
, 5, 15) |
8188 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
8192 __gen_field(values
->ConstantIndirectURBEntryReadLength
, 16, 31) |
8193 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
8197 __gen_field(values
->RoundingMode
, 22, 23) |
8198 __gen_field(values
->BarrierEnable
, 21, 21) |
8199 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
8200 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 9) |
8204 __gen_field(values
->CrossThreadConstantDataReadLength
, 0, 7) |
8209 #define GEN8_PALETTE_ENTRY_length 0x00000001
8211 #define GEN8_BINDING_TABLE_STATE_length 0x00000001
8213 struct GEN8_BINDING_TABLE_STATE
{
8214 uint32_t SurfaceStatePointer
;
8218 GEN8_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8219 const struct GEN8_BINDING_TABLE_STATE
* restrict values
)
8221 uint32_t *dw
= (uint32_t * restrict
) dst
;
8224 __gen_offset(values
->SurfaceStatePointer
, 6, 31) |
8229 #define GEN8_RENDER_SURFACE_STATE_length 0x00000010
8231 struct GEN8_RENDER_SURFACE_STATE
{
8232 #define SURFTYPE_1D 0
8233 #define SURFTYPE_2D 1
8234 #define SURFTYPE_3D 2
8235 #define SURFTYPE_CUBE 3
8236 #define SURFTYPE_BUFFER 4
8237 #define SURFTYPE_STRBUF 5
8238 #define SURFTYPE_NULL 7
8239 uint32_t SurfaceType
;
8240 uint32_t SurfaceArray
;
8241 uint32_t SurfaceFormat
;
8245 uint32_t SurfaceVerticalAlignment
;
8249 uint32_t SurfaceHorizontalAlignment
;
8255 uint32_t VerticalLineStride
;
8256 uint32_t VerticalLineStrideOffset
;
8257 uint32_t SamplerL2BypassModeDisable
;
8258 #define WriteOnlyCache 0
8259 #define ReadWriteCache 1
8260 uint32_t RenderCacheReadWriteMode
;
8261 #define NORMAL_MODE 0
8262 #define PROGRESSIVE_FRAME 2
8263 #define INTERLACED_FRAME 3
8264 uint32_t MediaBoundaryPixelMode
;
8265 uint32_t CubeFaceEnablePositiveZ
;
8266 uint32_t CubeFaceEnableNegativeZ
;
8267 uint32_t CubeFaceEnablePositiveY
;
8268 uint32_t CubeFaceEnableNegativeY
;
8269 uint32_t CubeFaceEnablePositiveX
;
8270 uint32_t CubeFaceEnableNegativeX
;
8271 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
8273 uint32_t SurfaceQPitch
;
8277 uint32_t SurfacePitch
;
8281 uint32_t RenderTargetAndSampleUnormRotation
;
8282 uint32_t MinimumArrayElement
;
8283 uint32_t RenderTargetViewExtent
;
8285 #define DEPTH_STENCIL 1
8286 uint32_t MultisampledSurfaceStorageFormat
;
8287 #define MULTISAMPLECOUNT_1 0
8288 #define MULTISAMPLECOUNT_2 1
8289 #define MULTISAMPLECOUNT_4 2
8290 #define MULTISAMPLECOUNT_8 3
8291 uint32_t NumberofMultisamples
;
8292 uint32_t MultisamplePositionPaletteIndex
;
8295 uint32_t EWADisableForCube
;
8296 #define GPUcoherent 0
8297 #define IAcoherent 1
8298 uint32_t CoherencyType
;
8299 uint32_t SurfaceMinLOD
;
8300 uint32_t MIPCountLOD
;
8301 uint32_t AuxiliarySurfaceQPitch
;
8302 uint32_t AuxiliarySurfacePitch
;
8305 #define AUX_APPEND 2
8307 uint32_t AuxiliarySurfaceMode
;
8308 uint32_t SeparateUVPlaneEnable
;
8309 uint32_t XOffsetforUorUVPlane
;
8310 uint32_t YOffsetforUorUVPlane
;
8311 uint32_t RedClearColor
;
8312 uint32_t GreenClearColor
;
8313 uint32_t BlueClearColor
;
8314 uint32_t AlphaClearColor
;
8315 uint32_t ShaderChannelSelectRed
;
8316 uint32_t ShaderChannelSelectGreen
;
8317 uint32_t ShaderChannelSelectBlue
;
8318 uint32_t ShaderChannelSelectAlpha
;
8319 float ResourceMinLOD
;
8320 __gen_address_type SurfaceBaseAddress
;
8321 uint32_t XOffsetforVPlane
;
8322 uint32_t YOffsetforVPlane
;
8323 uint32_t AuxiliaryTableIndexforMediaCompressedSurface
;
8324 __gen_address_type AuxiliarySurfaceBaseAddress
;
8328 GEN8_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8329 const struct GEN8_RENDER_SURFACE_STATE
* restrict values
)
8331 uint32_t *dw
= (uint32_t * restrict
) dst
;
8334 __gen_field(values
->SurfaceType
, 29, 31) |
8335 __gen_field(values
->SurfaceArray
, 28, 28) |
8336 __gen_field(values
->SurfaceFormat
, 18, 26) |
8337 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
8338 __gen_field(values
->SurfaceHorizontalAlignment
, 14, 15) |
8339 __gen_field(values
->TileMode
, 12, 13) |
8340 __gen_field(values
->VerticalLineStride
, 11, 11) |
8341 __gen_field(values
->VerticalLineStrideOffset
, 10, 10) |
8342 __gen_field(values
->SamplerL2BypassModeDisable
, 9, 9) |
8343 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
8344 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
8345 __gen_field(values
->CubeFaceEnablePositiveZ
, 0, 0) |
8346 __gen_field(values
->CubeFaceEnableNegativeZ
, 1, 1) |
8347 __gen_field(values
->CubeFaceEnablePositiveY
, 2, 2) |
8348 __gen_field(values
->CubeFaceEnableNegativeY
, 3, 3) |
8349 __gen_field(values
->CubeFaceEnablePositiveX
, 4, 4) |
8350 __gen_field(values
->CubeFaceEnableNegativeX
, 5, 5) |
8353 uint32_t dw_MemoryObjectControlState
;
8354 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
8356 __gen_field(dw_MemoryObjectControlState
, 24, 30) |
8357 __gen_field(values
->BaseMipLevel
* (1 << 1), 19, 23) |
8358 __gen_field(values
->SurfaceQPitch
, 0, 14) |
8362 __gen_field(values
->Height
, 16, 29) |
8363 __gen_field(values
->Width
, 0, 13) |
8367 __gen_field(values
->Depth
, 21, 31) |
8368 __gen_field(values
->SurfacePitch
, 0, 17) |
8372 __gen_field(values
->RenderTargetAndSampleUnormRotation
, 29, 30) |
8373 __gen_field(values
->MinimumArrayElement
, 18, 28) |
8374 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
8375 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
8376 __gen_field(values
->NumberofMultisamples
, 3, 5) |
8377 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
8381 __gen_offset(values
->XOffset
, 25, 31) |
8382 __gen_offset(values
->YOffset
, 21, 23) |
8383 __gen_field(values
->EWADisableForCube
, 20, 20) |
8384 __gen_field(values
->CoherencyType
, 14, 14) |
8385 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
8386 __gen_field(values
->MIPCountLOD
, 0, 3) |
8390 __gen_field(values
->AuxiliarySurfaceQPitch
, 16, 30) |
8391 __gen_field(values
->AuxiliarySurfacePitch
, 3, 11) |
8392 __gen_field(values
->AuxiliarySurfaceMode
, 0, 2) |
8393 __gen_field(values
->SeparateUVPlaneEnable
, 31, 31) |
8394 __gen_field(values
->XOffsetforUorUVPlane
, 16, 29) |
8395 __gen_field(values
->YOffsetforUorUVPlane
, 0, 13) |
8399 __gen_field(values
->RedClearColor
, 31, 31) |
8400 __gen_field(values
->GreenClearColor
, 30, 30) |
8401 __gen_field(values
->BlueClearColor
, 29, 29) |
8402 __gen_field(values
->AlphaClearColor
, 28, 28) |
8403 __gen_field(values
->ShaderChannelSelectRed
, 25, 27) |
8404 __gen_field(values
->ShaderChannelSelectGreen
, 22, 24) |
8405 __gen_field(values
->ShaderChannelSelectBlue
, 19, 21) |
8406 __gen_field(values
->ShaderChannelSelectAlpha
, 16, 18) |
8407 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
8414 __gen_combine_address(data
, &dw
[8], values
->SurfaceBaseAddress
, dw8
);
8420 __gen_field(values
->XOffsetforVPlane
, 48, 61) |
8421 __gen_field(values
->YOffsetforVPlane
, 32, 45) |
8422 __gen_field(values
->AuxiliaryTableIndexforMediaCompressedSurface
, 21, 31) |
8426 __gen_combine_address(data
, &dw
[10], values
->AuxiliarySurfaceBaseAddress
, dw10
);
8429 dw
[11] = qw10
>> 32;
8445 #define GEN8_SAMPLER_STATE_length 0x00000004
8447 struct GEN8_SAMPLER_STATE
{
8448 uint32_t SamplerDisable
;
8451 uint32_t TextureBorderColorMode
;
8452 #define CLAMP_NONE 0
8454 uint32_t LODPreClampMode
;
8456 #define MIPFILTER_NONE 0
8457 #define MIPFILTER_NEAREST 1
8458 #define MIPFILTER_LINEAR 3
8459 uint32_t MipModeFilter
;
8460 #define MAPFILTER_NEAREST 0
8461 #define MAPFILTER_LINEAR 1
8462 #define MAPFILTER_ANISOTROPIC 2
8463 #define MAPFILTER_MONO 6
8464 uint32_t MagModeFilter
;
8465 #define MAPFILTER_NEAREST 0
8466 #define MAPFILTER_LINEAR 1
8467 #define MAPFILTER_ANISOTROPIC 2
8468 #define MAPFILTER_MONO 6
8469 uint32_t MinModeFilter
;
8470 uint32_t TextureLODBias
;
8472 #define EWAApproximation 1
8473 uint32_t AnisotropicAlgorithm
;
8476 uint32_t ChromaKeyEnable
;
8477 uint32_t ChromaKeyIndex
;
8478 #define KEYFILTER_KILL_ON_ANY_MATCH 0
8479 #define KEYFILTER_REPLACE_BLACK 1
8480 uint32_t ChromaKeyMode
;
8481 #define PREFILTEROPALWAYS 0
8482 #define PREFILTEROPNEVER 1
8483 #define PREFILTEROPLESS 2
8484 #define PREFILTEROPEQUAL 3
8485 #define PREFILTEROPLEQUAL 4
8486 #define PREFILTEROPGREATER 5
8487 #define PREFILTEROPNOTEQUAL 6
8488 #define PREFILTEROPGEQUAL 7
8489 uint32_t ShadowFunction
;
8490 #define PROGRAMMED 0
8492 uint32_t CubeSurfaceControlMode
;
8493 uint32_t IndirectStatePointer
;
8496 uint32_t LODClampMagnificationMode
;
8505 uint32_t MaximumAnisotropy
;
8506 uint32_t RAddressMinFilterRoundingEnable
;
8507 uint32_t RAddressMagFilterRoundingEnable
;
8508 uint32_t VAddressMinFilterRoundingEnable
;
8509 uint32_t VAddressMagFilterRoundingEnable
;
8510 uint32_t UAddressMinFilterRoundingEnable
;
8511 uint32_t UAddressMagFilterRoundingEnable
;
8516 uint32_t TrilinearFilterQuality
;
8517 uint32_t NonnormalizedCoordinateEnable
;
8518 uint32_t TCXAddressControlMode
;
8519 uint32_t TCYAddressControlMode
;
8520 uint32_t TCZAddressControlMode
;
8524 GEN8_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8525 const struct GEN8_SAMPLER_STATE
* restrict values
)
8527 uint32_t *dw
= (uint32_t * restrict
) dst
;
8530 __gen_field(values
->SamplerDisable
, 31, 31) |
8531 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
8532 __gen_field(values
->LODPreClampMode
, 27, 28) |
8533 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
8534 __gen_field(values
->MipModeFilter
, 20, 21) |
8535 __gen_field(values
->MagModeFilter
, 17, 19) |
8536 __gen_field(values
->MinModeFilter
, 14, 16) |
8537 __gen_field(values
->TextureLODBias
, 1, 13) |
8538 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
8542 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
8543 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
8544 __gen_field(values
->ChromaKeyEnable
, 7, 7) |
8545 __gen_field(values
->ChromaKeyIndex
, 5, 6) |
8546 __gen_field(values
->ChromaKeyMode
, 4, 4) |
8547 __gen_field(values
->ShadowFunction
, 1, 3) |
8548 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
8552 __gen_field(values
->IndirectStatePointer
, 6, 23) |
8553 __gen_field(values
->LODClampMagnificationMode
, 0, 0) |
8557 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
8558 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
8559 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
8560 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
8561 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
8562 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
8563 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
8564 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
8565 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
8566 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
8567 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
8568 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
8573 /* Enum 3D_Prim_Topo_Type */
8574 #define _3DPRIM_POINTLIST 1
8575 #define _3DPRIM_LINELIST 2
8576 #define _3DPRIM_LINESTRIP 3
8577 #define _3DPRIM_TRILIST 4
8578 #define _3DPRIM_TRISTRIP 5
8579 #define _3DPRIM_TRIFAN 6
8580 #define _3DPRIM_QUADLIST 7
8581 #define _3DPRIM_QUADSTRIP 8
8582 #define _3DPRIM_LINELIST_ADJ 9
8583 #define _3DPRIM_LISTSTRIP_ADJ 10
8584 #define _3DPRIM_TRILIST_ADJ 11
8585 #define _3DPRIM_TRISTRIP_ADJ 12
8586 #define _3DPRIM_TRISTRIP_REVERSE 13
8587 #define _3DPRIM_POLYGON 14
8588 #define _3DPRIM_RECTLIST 15
8589 #define _3DPRIM_LINELOOP 16
8590 #define _3DPRIM_POINTLIST_BF 17
8591 #define _3DPRIM_LINESTRIP_CONT 18
8592 #define _3DPRIM_LINESTRIP_BF 19
8593 #define _3DPRIM_LINESTRIP_CONT_BF 20
8594 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
8595 #define _3DPRIM_PATCHLIST_1 32
8596 #define _3DPRIM_PATCHLIST_2 33
8597 #define _3DPRIM_PATCHLIST_3 34
8598 #define _3DPRIM_PATCHLIST_4 35
8599 #define _3DPRIM_PATCHLIST_5 36
8600 #define _3DPRIM_PATCHLIST_6 37
8601 #define _3DPRIM_PATCHLIST_7 38
8602 #define _3DPRIM_PATCHLIST_8 39
8603 #define _3DPRIM_PATCHLIST_9 40
8604 #define _3DPRIM_PATCHLIST_10 41
8605 #define _3DPRIM_PATCHLIST_11 42
8606 #define _3DPRIM_PATCHLIST_12 43
8607 #define _3DPRIM_PATCHLIST_13 44
8608 #define _3DPRIM_PATCHLIST_14 45
8609 #define _3DPRIM_PATCHLIST_15 46
8610 #define _3DPRIM_PATCHLIST_16 47
8611 #define _3DPRIM_PATCHLIST_17 48
8612 #define _3DPRIM_PATCHLIST_18 49
8613 #define _3DPRIM_PATCHLIST_19 50
8614 #define _3DPRIM_PATCHLIST_20 51
8615 #define _3DPRIM_PATCHLIST_21 52
8616 #define _3DPRIM_PATCHLIST_22 53
8617 #define _3DPRIM_PATCHLIST_23 54
8618 #define _3DPRIM_PATCHLIST_24 55
8619 #define _3DPRIM_PATCHLIST_25 56
8620 #define _3DPRIM_PATCHLIST_26 57
8621 #define _3DPRIM_PATCHLIST_27 58
8622 #define _3DPRIM_PATCHLIST_28 59
8623 #define _3DPRIM_PATCHLIST_29 60
8624 #define _3DPRIM_PATCHLIST_30 61
8625 #define _3DPRIM_PATCHLIST_31 62
8626 #define _3DPRIM_PATCHLIST_32 63
8628 /* Enum 3D_Vertex_Component_Control */
8629 #define VFCOMP_NOSTORE 0
8630 #define VFCOMP_STORE_SRC 1
8631 #define VFCOMP_STORE_0 2
8632 #define VFCOMP_STORE_1_FP 3
8633 #define VFCOMP_STORE_1_INT 4
8634 #define VFCOMP_STORE_PID 7
8636 /* Enum WRAP_SHORTEST_ENABLE */
8653 /* Enum 3D_Stencil_Operation */
8654 #define STENCILOP_KEEP 0
8655 #define STENCILOP_ZERO 1
8656 #define STENCILOP_REPLACE 2
8657 #define STENCILOP_INCRSAT 3
8658 #define STENCILOP_DECRSAT 4
8659 #define STENCILOP_INCR 5
8660 #define STENCILOP_DECR 6
8661 #define STENCILOP_INVERT 7
8663 /* Enum 3D_Color_Buffer_Blend_Factor */
8664 #define BLENDFACTOR_ONE 1
8665 #define BLENDFACTOR_SRC_COLOR 2
8666 #define BLENDFACTOR_SRC_ALPHA 3
8667 #define BLENDFACTOR_DST_ALPHA 4
8668 #define BLENDFACTOR_DST_COLOR 5
8669 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
8670 #define BLENDFACTOR_CONST_COLOR 7
8671 #define BLENDFACTOR_CONST_ALPHA 8
8672 #define BLENDFACTOR_SRC1_COLOR 9
8673 #define BLENDFACTOR_SRC1_ALPHA 10
8674 #define BLENDFACTOR_ZERO 17
8675 #define BLENDFACTOR_INV_SRC_COLOR 18
8676 #define BLENDFACTOR_INV_SRC_ALPHA 19
8677 #define BLENDFACTOR_INV_DST_ALPHA 20
8678 #define BLENDFACTOR_INV_DST_COLOR 21
8679 #define BLENDFACTOR_INV_CONST_COLOR 23
8680 #define BLENDFACTOR_INV_CONST_ALPHA 24
8681 #define BLENDFACTOR_INV_SRC1_COLOR 25
8682 #define BLENDFACTOR_INV_SRC1_ALPHA 26
8684 /* Enum 3D_Color_Buffer_Blend_Function */
8685 #define BLENDFUNCTION_ADD 0
8686 #define BLENDFUNCTION_SUBTRACT 1
8687 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
8688 #define BLENDFUNCTION_MIN 3
8689 #define BLENDFUNCTION_MAX 4
8691 /* Enum 3D_Compare_Function */
8692 #define COMPAREFUNCTION_ALWAYS 0
8693 #define COMPAREFUNCTION_NEVER 1
8694 #define COMPAREFUNCTION_LESS 2
8695 #define COMPAREFUNCTION_EQUAL 3
8696 #define COMPAREFUNCTION_LEQUAL 4
8697 #define COMPAREFUNCTION_GREATER 5
8698 #define COMPAREFUNCTION_NOTEQUAL 6
8699 #define COMPAREFUNCTION_GEQUAL 7
8701 /* Enum 3D_Logic_Op_Function */
8702 #define LOGICOP_CLEAR 0
8703 #define LOGICOP_NOR 1
8704 #define LOGICOP_AND_INVERTED 2
8705 #define LOGICOP_COPY_INVERTED 3
8706 #define LOGICOP_AND_REVERSE 4
8707 #define LOGICOP_INVERT 5
8708 #define LOGICOP_XOR 6
8709 #define LOGICOP_NAND 7
8710 #define LOGICOP_AND 8
8711 #define LOGICOP_EQUIV 9
8712 #define LOGICOP_NOOP 10
8713 #define LOGICOP_OR_INVERTED 11
8714 #define LOGICOP_COPY 12
8715 #define LOGICOP_OR_REVERSE 13
8716 #define LOGICOP_OR 14
8717 #define LOGICOP_SET 15
8719 /* Enum SURFACE_FORMAT */
8720 #define R32G32B32A32_FLOAT 0
8721 #define R32G32B32A32_SINT 1
8722 #define R32G32B32A32_UINT 2
8723 #define R32G32B32A32_UNORM 3
8724 #define R32G32B32A32_SNORM 4
8725 #define R64G64_FLOAT 5
8726 #define R32G32B32X32_FLOAT 6
8727 #define R32G32B32A32_SSCALED 7
8728 #define R32G32B32A32_USCALED 8
8729 #define R32G32B32A32_SFIXED 32
8730 #define R64G64_PASSTHRU 33
8731 #define R32G32B32_FLOAT 64
8732 #define R32G32B32_SINT 65
8733 #define R32G32B32_UINT 66
8734 #define R32G32B32_UNORM 67
8735 #define R32G32B32_SNORM 68
8736 #define R32G32B32_SSCALED 69
8737 #define R32G32B32_USCALED 70
8738 #define R32G32B32_SFIXED 80
8739 #define R16G16B16A16_UNORM 128
8740 #define R16G16B16A16_SNORM 129
8741 #define R16G16B16A16_SINT 130
8742 #define R16G16B16A16_UINT 131
8743 #define R16G16B16A16_FLOAT 132
8744 #define R32G32_FLOAT 133
8745 #define R32G32_SINT 134
8746 #define R32G32_UINT 135
8747 #define R32_FLOAT_X8X24_TYPELESS 136
8748 #define X32_TYPELESS_G8X24_UINT 137
8749 #define L32A32_FLOAT 138
8750 #define R32G32_UNORM 139
8751 #define R32G32_SNORM 140
8752 #define R64_FLOAT 141
8753 #define R16G16B16X16_UNORM 142
8754 #define R16G16B16X16_FLOAT 143
8755 #define A32X32_FLOAT 144
8756 #define L32X32_FLOAT 145
8757 #define I32X32_FLOAT 146
8758 #define R16G16B16A16_SSCALED 147
8759 #define R16G16B16A16_USCALED 148
8760 #define R32G32_SSCALED 149
8761 #define R32G32_USCALED 150
8762 #define R32G32_SFIXED 160
8763 #define R64_PASSTHRU 161
8764 #define B8G8R8A8_UNORM 192
8765 #define B8G8R8A8_UNORM_SRGB 193
8766 #define R10G10B10A2_UNORM 194
8767 #define R10G10B10A2_UNORM_SRGB 195
8768 #define R10G10B10A2_UINT 196
8769 #define R10G10B10_SNORM_A2_UNORM 197
8770 #define R8G8B8A8_UNORM 199
8771 #define R8G8B8A8_UNORM_SRGB 200
8772 #define R8G8B8A8_SNORM 201
8773 #define R8G8B8A8_SINT 202
8774 #define R8G8B8A8_UINT 203
8775 #define R16G16_UNORM 204
8776 #define R16G16_SNORM 205
8777 #define R16G16_SINT 206
8778 #define R16G16_UINT 207
8779 #define R16G16_FLOAT 208
8780 #define B10G10R10A2_UNORM 209
8781 #define B10G10R10A2_UNORM_SRGB 210
8782 #define R11G11B10_FLOAT 211
8783 #define R32_SINT 214
8784 #define R32_UINT 215
8785 #define R32_FLOAT 216
8786 #define R24_UNORM_X8_TYPELESS 217
8787 #define X24_TYPELESS_G8_UINT 218
8788 #define L32_UNORM 221
8789 #define A32_UNORM 222
8790 #define L16A16_UNORM 223
8791 #define I24X8_UNORM 224
8792 #define L24X8_UNORM 225
8793 #define A24X8_UNORM 226
8794 #define I32_FLOAT 227
8795 #define L32_FLOAT 228
8796 #define A32_FLOAT 229
8797 #define X8B8_UNORM_G8R8_SNORM 230
8798 #define A8X8_UNORM_G8R8_SNORM 231
8799 #define B8X8_UNORM_G8R8_SNORM 232
8800 #define B8G8R8X8_UNORM 233
8801 #define B8G8R8X8_UNORM_SRGB 234
8802 #define R8G8B8X8_UNORM 235
8803 #define R8G8B8X8_UNORM_SRGB 236
8804 #define R9G9B9E5_SHAREDEXP 237
8805 #define B10G10R10X2_UNORM 238
8806 #define L16A16_FLOAT 240
8807 #define R32_UNORM 241
8808 #define R32_SNORM 242
8809 #define R10G10B10X2_USCALED 243
8810 #define R8G8B8A8_SSCALED 244
8811 #define R8G8B8A8_USCALED 245
8812 #define R16G16_SSCALED 246
8813 #define R16G16_USCALED 247
8814 #define R32_SSCALED 248
8815 #define R32_USCALED 249
8816 #define B5G6R5_UNORM 256
8817 #define B5G6R5_UNORM_SRGB 257
8818 #define B5G5R5A1_UNORM 258
8819 #define B5G5R5A1_UNORM_SRGB 259
8820 #define B4G4R4A4_UNORM 260
8821 #define B4G4R4A4_UNORM_SRGB 261
8822 #define R8G8_UNORM 262
8823 #define R8G8_SNORM 263
8824 #define R8G8_SINT 264
8825 #define R8G8_UINT 265
8826 #define R16_UNORM 266
8827 #define R16_SNORM 267
8828 #define R16_SINT 268
8829 #define R16_UINT 269
8830 #define R16_FLOAT 270
8831 #define A8P8_UNORM_PALETTE0 271
8832 #define A8P8_UNORM_PALETTE1 272
8833 #define I16_UNORM 273
8834 #define L16_UNORM 274
8835 #define A16_UNORM 275
8836 #define L8A8_UNORM 276
8837 #define I16_FLOAT 277
8838 #define L16_FLOAT 278
8839 #define A16_FLOAT 279
8840 #define L8A8_UNORM_SRGB 280
8841 #define R5G5_SNORM_B6_UNORM 281
8842 #define B5G5R5X1_UNORM 282
8843 #define B5G5R5X1_UNORM_SRGB 283
8844 #define R8G8_SSCALED 284
8845 #define R8G8_USCALED 285
8846 #define R16_SSCALED 286
8847 #define R16_USCALED 287
8848 #define P8A8_UNORM_PALETTE0 290
8849 #define P8A8_UNORM_PALETTE1 291
8850 #define A1B5G5R5_UNORM 292
8851 #define A4B4G4R4_UNORM 293
8852 #define L8A8_UINT 294
8853 #define L8A8_SINT 295
8854 #define R8_UNORM 320
8855 #define R8_SNORM 321
8858 #define A8_UNORM 324
8859 #define I8_UNORM 325
8860 #define L8_UNORM 326
8861 #define P4A4_UNORM_PALETTE0 327
8862 #define A4P4_UNORM_PALETTE0 328
8863 #define R8_SSCALED 329
8864 #define R8_USCALED 330
8865 #define P8_UNORM_PALETTE0 331
8866 #define L8_UNORM_SRGB 332
8867 #define P8_UNORM_PALETTE1 333
8868 #define P4A4_UNORM_PALETTE1 334
8869 #define A4P4_UNORM_PALETTE1 335
8870 #define Y8_UNORM 336
8875 #define DXT1_RGB_SRGB 384
8876 #define R1_UNORM 385
8877 #define YCRCB_NORMAL 386
8878 #define YCRCB_SWAPUVY 387
8879 #define P2_UNORM_PALETTE0 388
8880 #define P2_UNORM_PALETTE1 389
8881 #define BC1_UNORM 390
8882 #define BC2_UNORM 391
8883 #define BC3_UNORM 392
8884 #define BC4_UNORM 393
8885 #define BC5_UNORM 394
8886 #define BC1_UNORM_SRGB 395
8887 #define BC2_UNORM_SRGB 396
8888 #define BC3_UNORM_SRGB 397
8890 #define YCRCB_SWAPUV 399
8891 #define YCRCB_SWAPY 400
8892 #define DXT1_RGB 401
8894 #define R8G8B8_UNORM 403
8895 #define R8G8B8_SNORM 404
8896 #define R8G8B8_SSCALED 405
8897 #define R8G8B8_USCALED 406
8898 #define R64G64B64A64_FLOAT 407
8899 #define R64G64B64_FLOAT 408
8900 #define BC4_SNORM 409
8901 #define BC5_SNORM 410
8902 #define R16G16B16_FLOAT 411
8903 #define R16G16B16_UNORM 412
8904 #define R16G16B16_SNORM 413
8905 #define R16G16B16_SSCALED 414
8906 #define R16G16B16_USCALED 415
8907 #define BC6H_SF16 417
8908 #define BC7_UNORM 418
8909 #define BC7_UNORM_SRGB 419
8910 #define BC6H_UF16 420
8911 #define PLANAR_420_8 421
8912 #define R8G8B8_UNORM_SRGB 424
8913 #define ETC1_RGB8 425
8914 #define ETC2_RGB8 426
8916 #define EAC_RG11 428
8917 #define EAC_SIGNED_R11 429
8918 #define EAC_SIGNED_RG11 430
8919 #define ETC2_SRGB8 431
8920 #define R16G16B16_UINT 432
8921 #define R16G16B16_SINT 433
8922 #define R32_SFIXED 434
8923 #define R10G10B10A2_SNORM 435
8924 #define R10G10B10A2_USCALED 436
8925 #define R10G10B10A2_SSCALED 437
8926 #define R10G10B10A2_SINT 438
8927 #define B10G10R10A2_SNORM 439
8928 #define B10G10R10A2_USCALED 440
8929 #define B10G10R10A2_SSCALED 441
8930 #define B10G10R10A2_UINT 442
8931 #define B10G10R10A2_SINT 443
8932 #define R64G64B64A64_PASSTHRU 444
8933 #define R64G64B64_PASSTHRU 445
8934 #define ETC2_RGB8_PTA 448
8935 #define ETC2_SRGB8_PTA 449
8936 #define ETC2_EAC_RGBA8 450
8937 #define ETC2_EAC_SRGB8_A8 451
8938 #define R8G8B8_UINT 456
8939 #define R8G8B8_SINT 457
8942 /* Enum Shader Channel Select */
8950 /* Enum Clear Color */
8954 /* Enum Texture Coordinate Mode */
8956 #define TCM_MIRROR 1
8959 #define TCM_CLAMP_BORDER 4
8960 #define TCM_MIRROR_ONCE 5
8961 #define TCM_HALF_BORDER 6