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 SKL.
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 GEN9_3DSTATE_URB_VS_length_bias 0x00000002
96 #define GEN9_3DSTATE_URB_VS_header \
98 .CommandSubType = 3, \
99 ._3DCommandOpcode = 0, \
100 ._3DCommandSubOpcode = 48, \
103 #define GEN9_3DSTATE_URB_VS_length 0x00000002
105 struct GEN9_3DSTATE_URB_VS
{
106 uint32_t CommandType
;
107 uint32_t CommandSubType
;
108 uint32_t _3DCommandOpcode
;
109 uint32_t _3DCommandSubOpcode
;
110 uint32_t DwordLength
;
111 uint32_t VSURBStartingAddress
;
112 uint32_t VSURBEntryAllocationSize
;
113 uint32_t VSNumberofURBEntries
;
117 GEN9_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
118 const struct GEN9_3DSTATE_URB_VS
* restrict values
)
120 uint32_t *dw
= (uint32_t * restrict
) dst
;
123 __gen_field(values
->CommandType
, 29, 31) |
124 __gen_field(values
->CommandSubType
, 27, 28) |
125 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
126 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
127 __gen_field(values
->DwordLength
, 0, 7) |
131 __gen_field(values
->VSURBStartingAddress
, 25, 31) |
132 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
133 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
138 #define GEN9_3DSTATE_VS_length_bias 0x00000002
139 #define GEN9_3DSTATE_VS_header \
141 .CommandSubType = 3, \
142 ._3DCommandOpcode = 0, \
143 ._3DCommandSubOpcode = 16, \
146 #define GEN9_3DSTATE_VS_length 0x00000009
148 #define __gen_prefix(name) GEN9_ ## name
150 struct __gen_prefix(3DSTATE_VS
) {
151 uint32_t CommandType
;
152 uint32_t CommandSubType
;
153 uint32_t _3DCommandOpcode
;
154 uint32_t _3DCommandSubOpcode
;
155 uint32_t DwordLength
;
156 uint64_t KernelStartPointer
;
159 uint32_t SingleVertexDispatch
;
162 uint32_t VectorMaskEnable
;
164 #define _14Samplers 1
165 #define _58Samplers 2
166 #define _912Samplers 3
167 #define _1316Samplers 4
168 uint32_t SamplerCount
;
169 uint32_t BindingTableEntryCount
;
172 uint32_t ThreadDispatchPriority
;
175 uint32_t FloatingPointMode
;
176 bool IllegalOpcodeExceptionEnable
;
178 bool SoftwareExceptionEnable
;
179 uint64_t ScratchSpaceBasePointer
;
180 uint32_t PerThreadScratchSpace
;
181 uint32_t DispatchGRFStartRegisterForURBData
;
182 uint32_t VertexURBEntryReadLength
;
183 uint32_t VertexURBEntryReadOffset
;
184 uint32_t MaximumNumberofThreads
;
185 bool StatisticsEnable
;
186 bool SIMD8DispatchEnable
;
187 bool VertexCacheDisable
;
189 uint32_t VertexURBEntryOutputReadOffset
;
190 uint32_t VertexURBEntryOutputLength
;
191 uint32_t UserClipDistanceClipTestEnableBitmask
;
192 uint32_t UserClipDistanceCullTestEnableBitmask
;
196 GEN9_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
197 const struct GEN9_3DSTATE_VS
* restrict values
)
199 uint32_t *dw
= (uint32_t * restrict
) dst
;
202 __gen_field(values
->CommandType
, 29, 31) |
203 __gen_field(values
->CommandSubType
, 27, 28) |
204 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
205 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
206 __gen_field(values
->DwordLength
, 0, 7) |
210 __gen_offset(values
->KernelStartPointer
, 6, 63) |
217 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
218 __gen_field(values
->VectorMaskEnable
, 30, 30) |
219 __gen_field(values
->SamplerCount
, 27, 29) |
220 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
221 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
222 __gen_field(values
->FloatingPointMode
, 16, 16) |
223 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
224 __gen_field(values
->AccessesUAV
, 12, 12) |
225 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
229 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
230 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
237 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
238 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
239 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
243 __gen_field(values
->MaximumNumberofThreads
, 23, 31) |
244 __gen_field(values
->StatisticsEnable
, 10, 10) |
245 __gen_field(values
->SIMD8DispatchEnable
, 2, 2) |
246 __gen_field(values
->VertexCacheDisable
, 1, 1) |
247 __gen_field(values
->FunctionEnable
, 0, 0) |
251 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
252 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
253 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
254 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
259 #define GEN9_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002
260 #define GEN9_GPGPU_CSR_BASE_ADDRESS_header \
262 .CommandSubType = 0, \
263 ._3DCommandOpcode = 1, \
264 ._3DCommandSubOpcode = 4, \
267 #define GEN9_GPGPU_CSR_BASE_ADDRESS_length 0x00000003
269 struct GEN9_GPGPU_CSR_BASE_ADDRESS
{
270 uint32_t CommandType
;
271 uint32_t CommandSubType
;
272 uint32_t _3DCommandOpcode
;
273 uint32_t _3DCommandSubOpcode
;
274 uint32_t DwordLength
;
275 __gen_address_type GPGPUCSRBaseAddress
;
279 GEN9_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
280 const struct GEN9_GPGPU_CSR_BASE_ADDRESS
* restrict values
)
282 uint32_t *dw
= (uint32_t * restrict
) dst
;
285 __gen_field(values
->CommandType
, 29, 31) |
286 __gen_field(values
->CommandSubType
, 27, 28) |
287 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
288 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
289 __gen_field(values
->DwordLength
, 0, 7) |
296 __gen_combine_address(data
, &dw
[1], values
->GPGPUCSRBaseAddress
, dw1
);
303 #define GEN9_MI_ATOMIC_length_bias 0x00000002
304 #define GEN9_MI_ATOMIC_header \
306 .MICommandOpcode = 47
308 #define GEN9_MI_ATOMIC_length 0x00000003
310 struct __gen_prefix(MI_ATOMIC
) {
311 uint32_t CommandType
;
312 uint32_t MICommandOpcode
;
313 #define PerProcessGraphicsAddress 0
314 #define GlobalGraphicsAddress 1
316 uint32_t PostSyncOperation
;
324 uint32_t ReturnDataControl
;
325 uint32_t ATOMICOPCODE
;
326 uint32_t DwordLength
;
327 __gen_address_type MemoryAddress
;
328 uint32_t Operand1DataDword0
;
329 uint32_t Operand2DataDword0
;
330 uint32_t Operand1DataDword1
;
331 uint32_t Operand2DataDword1
;
332 uint32_t Operand1DataDword2
;
333 uint32_t Operand2DataDword2
;
334 uint32_t Operand1DataDword3
;
335 uint32_t Operand2DataDword3
;
339 GEN9_MI_ATOMIC_pack(__gen_user_data
*data
, void * restrict dst
,
340 const struct GEN9_MI_ATOMIC
* restrict values
)
342 uint32_t *dw
= (uint32_t * restrict
) dst
;
345 __gen_field(values
->CommandType
, 29, 31) |
346 __gen_field(values
->MICommandOpcode
, 23, 28) |
347 __gen_field(values
->MemoryType
, 22, 22) |
348 __gen_field(values
->PostSyncOperation
, 21, 21) |
349 __gen_field(values
->DataSize
, 19, 20) |
350 __gen_field(values
->InlineData
, 18, 18) |
351 __gen_field(values
->CSSTALL
, 17, 17) |
352 __gen_field(values
->ReturnDataControl
, 16, 16) |
353 __gen_field(values
->ATOMICOPCODE
, 8, 15) |
354 __gen_field(values
->DwordLength
, 0, 7) |
361 __gen_combine_address(data
, &dw
[1], values
->MemoryAddress
, dw1
);
367 __gen_field(values
->Operand1DataDword0
, 0, 31) |
371 __gen_field(values
->Operand2DataDword0
, 0, 31) |
375 __gen_field(values
->Operand1DataDword1
, 0, 31) |
379 __gen_field(values
->Operand2DataDword1
, 0, 31) |
383 __gen_field(values
->Operand1DataDword2
, 0, 31) |
387 __gen_field(values
->Operand2DataDword2
, 0, 31) |
391 __gen_field(values
->Operand1DataDword3
, 0, 31) |
395 __gen_field(values
->Operand2DataDword3
, 0, 31) |
400 #define GEN9_MI_BATCH_BUFFER_START_length_bias 0x00000002
401 #define GEN9_MI_BATCH_BUFFER_START_header \
403 .MICommandOpcode = 49, \
406 #define GEN9_MI_BATCH_BUFFER_START_length 0x00000003
408 struct GEN9_MI_BATCH_BUFFER_START
{
409 uint32_t CommandType
;
410 uint32_t MICommandOpcode
;
411 #define Firstlevelbatch 0
412 #define Secondlevelbatch 1
413 uint32_t SecondLevelBatchBuffer
;
414 bool AddOffsetEnable
;
415 uint32_t PredicationEnable
;
416 bool ResourceStreamerEnable
;
419 uint32_t AddressSpaceIndicator
;
420 uint32_t DwordLength
;
421 __gen_address_type BatchBufferStartAddress
;
425 GEN9_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
426 const struct GEN9_MI_BATCH_BUFFER_START
* restrict values
)
428 uint32_t *dw
= (uint32_t * restrict
) dst
;
431 __gen_field(values
->CommandType
, 29, 31) |
432 __gen_field(values
->MICommandOpcode
, 23, 28) |
433 __gen_field(values
->SecondLevelBatchBuffer
, 22, 22) |
434 __gen_field(values
->AddOffsetEnable
, 16, 16) |
435 __gen_field(values
->PredicationEnable
, 15, 15) |
436 __gen_field(values
->ResourceStreamerEnable
, 10, 10) |
437 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
438 __gen_field(values
->DwordLength
, 0, 7) |
445 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
452 #define GEN9_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
453 #define GEN9_MI_CONDITIONAL_BATCH_BUFFER_END_header\
455 .MICommandOpcode = 54, \
457 .CompareSemaphore = 0, \
460 #define GEN9_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000004
462 struct GEN9_MI_CONDITIONAL_BATCH_BUFFER_END
{
463 uint32_t CommandType
;
464 uint32_t MICommandOpcode
;
465 uint32_t UseGlobalGTT
;
466 uint32_t CompareSemaphore
;
467 #define CompareMaskModeDisabled 0
468 #define CompareMaskModeEnabled 1
469 uint32_t CompareMaskMode
;
470 uint32_t DwordLength
;
471 uint32_t CompareDataDword
;
472 __gen_address_type CompareAddress
;
476 GEN9_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
477 const struct GEN9_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
479 uint32_t *dw
= (uint32_t * restrict
) dst
;
482 __gen_field(values
->CommandType
, 29, 31) |
483 __gen_field(values
->MICommandOpcode
, 23, 28) |
484 __gen_field(values
->UseGlobalGTT
, 22, 22) |
485 __gen_field(values
->CompareSemaphore
, 21, 21) |
486 __gen_field(values
->CompareMaskMode
, 19, 19) |
487 __gen_field(values
->DwordLength
, 0, 7) |
491 __gen_field(values
->CompareDataDword
, 0, 31) |
498 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
505 #define GEN9_MI_FORCE_WAKEUP_length_bias 0x00000002
506 #define GEN9_MI_FORCE_WAKEUP_header \
508 .MICommandOpcode = 29, \
511 #define GEN9_MI_FORCE_WAKEUP_length 0x00000002
513 struct GEN9_MI_FORCE_WAKEUP
{
514 uint32_t CommandType
;
515 uint32_t MICommandOpcode
;
516 uint32_t DwordLength
;
518 uint32_t ForceRenderAwake
;
519 uint32_t ForceMediaAwake
;
523 GEN9_MI_FORCE_WAKEUP_pack(__gen_user_data
*data
, void * restrict dst
,
524 const struct GEN9_MI_FORCE_WAKEUP
* restrict values
)
526 uint32_t *dw
= (uint32_t * restrict
) dst
;
529 __gen_field(values
->CommandType
, 29, 31) |
530 __gen_field(values
->MICommandOpcode
, 23, 28) |
531 __gen_field(values
->DwordLength
, 0, 7) |
535 __gen_field(values
->MaskBits
, 16, 31) |
536 __gen_field(values
->ForceRenderAwake
, 1, 1) |
537 __gen_field(values
->ForceMediaAwake
, 0, 0) |
542 #define GEN9_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
543 #define GEN9_MI_LOAD_REGISTER_IMM_header \
545 .MICommandOpcode = 34, \
548 #define GEN9_MI_LOAD_REGISTER_IMM_length 0x00000003
550 struct GEN9_MI_LOAD_REGISTER_IMM
{
551 uint32_t CommandType
;
552 uint32_t MICommandOpcode
;
553 uint32_t ByteWriteDisables
;
554 uint32_t DwordLength
;
555 uint32_t RegisterOffset
;
560 GEN9_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
561 const struct GEN9_MI_LOAD_REGISTER_IMM
* restrict values
)
563 uint32_t *dw
= (uint32_t * restrict
) dst
;
566 __gen_field(values
->CommandType
, 29, 31) |
567 __gen_field(values
->MICommandOpcode
, 23, 28) |
568 __gen_field(values
->ByteWriteDisables
, 8, 11) |
569 __gen_field(values
->DwordLength
, 0, 7) |
573 __gen_offset(values
->RegisterOffset
, 2, 22) |
577 __gen_field(values
->DataDWord
, 0, 31) |
582 #define GEN9_MI_LOAD_REGISTER_REG_length_bias 0x00000002
583 #define GEN9_MI_LOAD_REGISTER_REG_header \
585 .MICommandOpcode = 42, \
588 #define GEN9_MI_LOAD_REGISTER_REG_length 0x00000003
590 struct GEN9_MI_LOAD_REGISTER_REG
{
591 uint32_t CommandType
;
592 uint32_t MICommandOpcode
;
593 uint32_t DwordLength
;
594 uint32_t SourceRegisterAddress
;
595 uint32_t DestinationRegisterAddress
;
599 GEN9_MI_LOAD_REGISTER_REG_pack(__gen_user_data
*data
, void * restrict dst
,
600 const struct GEN9_MI_LOAD_REGISTER_REG
* restrict values
)
602 uint32_t *dw
= (uint32_t * restrict
) dst
;
605 __gen_field(values
->CommandType
, 29, 31) |
606 __gen_field(values
->MICommandOpcode
, 23, 28) |
607 __gen_field(values
->DwordLength
, 0, 7) |
611 __gen_offset(values
->SourceRegisterAddress
, 2, 22) |
615 __gen_offset(values
->DestinationRegisterAddress
, 2, 22) |
620 #define GEN9_MI_SEMAPHORE_SIGNAL_length_bias 0x00000002
621 #define GEN9_MI_SEMAPHORE_SIGNAL_header \
623 .MICommandOpcode = 27, \
626 #define GEN9_MI_SEMAPHORE_SIGNAL_length 0x00000002
628 struct GEN9_MI_SEMAPHORE_SIGNAL
{
629 uint32_t CommandType
;
630 uint32_t MICommandOpcode
;
631 uint32_t PostSyncOperation
;
637 uint32_t TargetEngineSelect
;
638 uint32_t DwordLength
;
639 uint32_t TargetContextID
;
643 GEN9_MI_SEMAPHORE_SIGNAL_pack(__gen_user_data
*data
, void * restrict dst
,
644 const struct GEN9_MI_SEMAPHORE_SIGNAL
* restrict values
)
646 uint32_t *dw
= (uint32_t * restrict
) dst
;
649 __gen_field(values
->CommandType
, 29, 31) |
650 __gen_field(values
->MICommandOpcode
, 23, 28) |
651 __gen_field(values
->PostSyncOperation
, 21, 21) |
652 __gen_field(values
->TargetEngineSelect
, 15, 17) |
653 __gen_field(values
->DwordLength
, 0, 7) |
657 __gen_field(values
->TargetContextID
, 0, 31) |
662 #define GEN9_MI_SEMAPHORE_WAIT_length_bias 0x00000002
663 #define GEN9_MI_SEMAPHORE_WAIT_header \
665 .MICommandOpcode = 28, \
668 #define GEN9_MI_SEMAPHORE_WAIT_length 0x00000004
670 struct GEN9_MI_SEMAPHORE_WAIT
{
671 uint32_t CommandType
;
672 uint32_t MICommandOpcode
;
673 #define PerProcessGraphicsAddress 0
674 #define GlobalGraphicsAddress 1
676 #define PollingMode 1
679 #define SAD_GREATER_THAN_SDD 0
680 #define SAD_GREATER_THAN_OR_EQUAL_SDD 1
681 #define SAD_LESS_THAN_SDD 2
682 #define SAD_LESS_THAN_OR_EQUAL_SDD 3
683 #define SAD_EQUAL_SDD 4
684 #define SAD_NOT_EQUAL_SDD 5
685 uint32_t CompareOperation
;
686 uint32_t DwordLength
;
687 uint32_t SemaphoreDataDword
;
688 __gen_address_type SemaphoreAddress
;
692 GEN9_MI_SEMAPHORE_WAIT_pack(__gen_user_data
*data
, void * restrict dst
,
693 const struct GEN9_MI_SEMAPHORE_WAIT
* restrict values
)
695 uint32_t *dw
= (uint32_t * restrict
) dst
;
698 __gen_field(values
->CommandType
, 29, 31) |
699 __gen_field(values
->MICommandOpcode
, 23, 28) |
700 __gen_field(values
->MemoryType
, 22, 22) |
701 __gen_field(values
->WaitMode
, 15, 15) |
702 __gen_field(values
->CompareOperation
, 12, 14) |
703 __gen_field(values
->DwordLength
, 0, 7) |
707 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
714 __gen_combine_address(data
, &dw
[2], values
->SemaphoreAddress
, dw2
);
721 #define GEN9_MI_STORE_DATA_IMM_length_bias 0x00000002
722 #define GEN9_MI_STORE_DATA_IMM_header \
724 .MICommandOpcode = 32, \
727 #define GEN9_MI_STORE_DATA_IMM_length 0x00000004
729 struct GEN9_MI_STORE_DATA_IMM
{
730 uint32_t CommandType
;
731 uint32_t MICommandOpcode
;
734 uint32_t DwordLength
;
735 __gen_address_type Address
;
736 uint32_t CoreModeEnable
;
742 GEN9_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
743 const struct GEN9_MI_STORE_DATA_IMM
* restrict values
)
745 uint32_t *dw
= (uint32_t * restrict
) dst
;
748 __gen_field(values
->CommandType
, 29, 31) |
749 __gen_field(values
->MICommandOpcode
, 23, 28) |
750 __gen_field(values
->UseGlobalGTT
, 22, 22) |
751 __gen_field(values
->StoreQword
, 21, 21) |
752 __gen_field(values
->DwordLength
, 0, 9) |
756 __gen_field(values
->CoreModeEnable
, 0, 0) |
760 __gen_combine_address(data
, &dw
[1], values
->Address
, dw1
);
766 __gen_field(values
->DataDWord0
, 0, 31) |
770 __gen_field(values
->DataDWord1
, 0, 31) |
775 #define GEN9_MI_STORE_REGISTER_MEM_length_bias 0x00000002
776 #define GEN9_MI_STORE_REGISTER_MEM_header \
778 .MICommandOpcode = 36, \
781 #define GEN9_MI_STORE_REGISTER_MEM_length 0x00000004
783 struct GEN9_MI_STORE_REGISTER_MEM
{
784 uint32_t CommandType
;
785 uint32_t MICommandOpcode
;
787 uint32_t PredicateEnable
;
788 uint32_t DwordLength
;
789 uint32_t RegisterAddress
;
790 __gen_address_type MemoryAddress
;
794 GEN9_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
795 const struct GEN9_MI_STORE_REGISTER_MEM
* restrict values
)
797 uint32_t *dw
= (uint32_t * restrict
) dst
;
800 __gen_field(values
->CommandType
, 29, 31) |
801 __gen_field(values
->MICommandOpcode
, 23, 28) |
802 __gen_field(values
->UseGlobalGTT
, 22, 22) |
803 __gen_field(values
->PredicateEnable
, 21, 21) |
804 __gen_field(values
->DwordLength
, 0, 7) |
808 __gen_offset(values
->RegisterAddress
, 2, 22) |
815 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
822 #define GEN9_PIPELINE_SELECT_length_bias 0x00000001
823 #define GEN9_PIPELINE_SELECT_header \
825 .CommandSubType = 1, \
826 ._3DCommandOpcode = 1, \
827 ._3DCommandSubOpcode = 4
829 #define GEN9_PIPELINE_SELECT_length 0x00000001
831 struct GEN9_PIPELINE_SELECT
{
832 uint32_t CommandType
;
833 uint32_t CommandSubType
;
834 uint32_t _3DCommandOpcode
;
835 uint32_t _3DCommandSubOpcode
;
837 uint32_t ForceMediaAwake
;
838 uint32_t MediaSamplerDOPClockGateEnable
;
842 uint32_t PipelineSelection
;
846 GEN9_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
847 const struct GEN9_PIPELINE_SELECT
* restrict values
)
849 uint32_t *dw
= (uint32_t * restrict
) dst
;
852 __gen_field(values
->CommandType
, 29, 31) |
853 __gen_field(values
->CommandSubType
, 27, 28) |
854 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
855 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
856 __gen_field(values
->MaskBits
, 8, 15) |
857 __gen_field(values
->ForceMediaAwake
, 5, 5) |
858 __gen_field(values
->MediaSamplerDOPClockGateEnable
, 4, 4) |
859 __gen_field(values
->PipelineSelection
, 0, 1) |
864 #define GEN9_STATE_BASE_ADDRESS_length_bias 0x00000002
865 #define GEN9_STATE_BASE_ADDRESS_header \
867 .CommandSubType = 0, \
868 ._3DCommandOpcode = 1, \
869 ._3DCommandSubOpcode = 1, \
872 #define GEN9_STATE_BASE_ADDRESS_length 0x00000013
874 #define GEN9_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
876 struct GEN9_MEMORY_OBJECT_CONTROL_STATE
{
877 uint32_t IndextoMOCSTables
;
881 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
882 const struct GEN9_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
884 uint32_t *dw
= (uint32_t * restrict
) dst
;
887 __gen_field(values
->IndextoMOCSTables
, 1, 6) |
892 struct GEN9_STATE_BASE_ADDRESS
{
893 uint32_t CommandType
;
894 uint32_t CommandSubType
;
895 uint32_t _3DCommandOpcode
;
896 uint32_t _3DCommandSubOpcode
;
897 uint32_t DwordLength
;
898 __gen_address_type GeneralStateBaseAddress
;
899 struct GEN9_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
900 bool GeneralStateBaseAddressModifyEnable
;
901 struct GEN9_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
902 __gen_address_type SurfaceStateBaseAddress
;
903 struct GEN9_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
904 bool SurfaceStateBaseAddressModifyEnable
;
905 __gen_address_type DynamicStateBaseAddress
;
906 struct GEN9_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
907 bool DynamicStateBaseAddressModifyEnable
;
908 __gen_address_type IndirectObjectBaseAddress
;
909 struct GEN9_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
910 bool IndirectObjectBaseAddressModifyEnable
;
911 __gen_address_type InstructionBaseAddress
;
912 struct GEN9_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
913 bool InstructionBaseAddressModifyEnable
;
914 uint32_t GeneralStateBufferSize
;
915 bool GeneralStateBufferSizeModifyEnable
;
916 uint32_t DynamicStateBufferSize
;
917 bool DynamicStateBufferSizeModifyEnable
;
918 uint32_t IndirectObjectBufferSize
;
919 bool IndirectObjectBufferSizeModifyEnable
;
920 uint32_t InstructionBufferSize
;
921 bool InstructionBuffersizeModifyEnable
;
922 __gen_address_type BindlessSurfaceStateBaseAddress
;
923 struct GEN9_MEMORY_OBJECT_CONTROL_STATE BindlessSurfaceStateMemoryObjectControlState
;
924 bool BindlessSurfaceStateBaseAddressModifyEnable
;
925 uint32_t BindlessSurfaceStateSize
;
929 GEN9_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
930 const struct GEN9_STATE_BASE_ADDRESS
* restrict values
)
932 uint32_t *dw
= (uint32_t * restrict
) dst
;
935 __gen_field(values
->CommandType
, 29, 31) |
936 __gen_field(values
->CommandSubType
, 27, 28) |
937 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
938 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
939 __gen_field(values
->DwordLength
, 0, 7) |
942 uint32_t dw_GeneralStateMemoryObjectControlState
;
943 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
945 __gen_field(dw_GeneralStateMemoryObjectControlState
, 4, 10) |
946 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
950 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
955 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
956 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
958 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 16, 22) |
961 uint32_t dw_SurfaceStateMemoryObjectControlState
;
962 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
964 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 4, 10) |
965 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
969 __gen_combine_address(data
, &dw
[4], values
->SurfaceStateBaseAddress
, dw4
);
974 uint32_t dw_DynamicStateMemoryObjectControlState
;
975 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
977 __gen_field(dw_DynamicStateMemoryObjectControlState
, 4, 10) |
978 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
982 __gen_combine_address(data
, &dw
[6], values
->DynamicStateBaseAddress
, dw6
);
987 uint32_t dw_IndirectObjectMemoryObjectControlState
;
988 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
990 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 4, 10) |
991 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
995 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectBaseAddress
, dw8
);
1000 uint32_t dw_InstructionMemoryObjectControlState
;
1001 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
1003 __gen_field(dw_InstructionMemoryObjectControlState
, 4, 10) |
1004 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
1008 __gen_combine_address(data
, &dw
[10], values
->InstructionBaseAddress
, dw10
);
1011 dw
[11] = qw10
>> 32;
1014 __gen_field(values
->GeneralStateBufferSize
, 12, 31) |
1015 __gen_field(values
->GeneralStateBufferSizeModifyEnable
, 0, 0) |
1019 __gen_field(values
->DynamicStateBufferSize
, 12, 31) |
1020 __gen_field(values
->DynamicStateBufferSizeModifyEnable
, 0, 0) |
1024 __gen_field(values
->IndirectObjectBufferSize
, 12, 31) |
1025 __gen_field(values
->IndirectObjectBufferSizeModifyEnable
, 0, 0) |
1029 __gen_field(values
->InstructionBufferSize
, 12, 31) |
1030 __gen_field(values
->InstructionBuffersizeModifyEnable
, 0, 0) |
1033 uint32_t dw_BindlessSurfaceStateMemoryObjectControlState
;
1034 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_BindlessSurfaceStateMemoryObjectControlState
, &values
->BindlessSurfaceStateMemoryObjectControlState
);
1036 __gen_field(dw_BindlessSurfaceStateMemoryObjectControlState
, 4, 10) |
1037 __gen_field(values
->BindlessSurfaceStateBaseAddressModifyEnable
, 0, 0) |
1041 __gen_combine_address(data
, &dw
[16], values
->BindlessSurfaceStateBaseAddress
, dw16
);
1044 dw
[17] = qw16
>> 32;
1047 __gen_field(values
->BindlessSurfaceStateSize
, 12, 31) |
1052 #define GEN9_STATE_PREFETCH_length_bias 0x00000002
1053 #define GEN9_STATE_PREFETCH_header \
1055 .CommandSubType = 0, \
1056 ._3DCommandOpcode = 0, \
1057 ._3DCommandSubOpcode = 3, \
1060 #define GEN9_STATE_PREFETCH_length 0x00000002
1062 struct GEN9_STATE_PREFETCH
{
1063 uint32_t CommandType
;
1064 uint32_t CommandSubType
;
1065 uint32_t _3DCommandOpcode
;
1066 uint32_t _3DCommandSubOpcode
;
1067 uint32_t DwordLength
;
1068 __gen_address_type PrefetchPointer
;
1069 uint32_t PrefetchCount
;
1073 GEN9_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
1074 const struct GEN9_STATE_PREFETCH
* restrict values
)
1076 uint32_t *dw
= (uint32_t * restrict
) dst
;
1079 __gen_field(values
->CommandType
, 29, 31) |
1080 __gen_field(values
->CommandSubType
, 27, 28) |
1081 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1082 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1083 __gen_field(values
->DwordLength
, 0, 7) |
1087 __gen_field(values
->PrefetchCount
, 0, 2) |
1091 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
1095 #define GEN9_STATE_SIP_length_bias 0x00000002
1096 #define GEN9_STATE_SIP_header \
1098 .CommandSubType = 0, \
1099 ._3DCommandOpcode = 1, \
1100 ._3DCommandSubOpcode = 2, \
1103 #define GEN9_STATE_SIP_length 0x00000003
1105 struct GEN9_STATE_SIP
{
1106 uint32_t CommandType
;
1107 uint32_t CommandSubType
;
1108 uint32_t _3DCommandOpcode
;
1109 uint32_t _3DCommandSubOpcode
;
1110 uint32_t DwordLength
;
1111 uint64_t SystemInstructionPointer
;
1115 GEN9_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
1116 const struct GEN9_STATE_SIP
* restrict values
)
1118 uint32_t *dw
= (uint32_t * restrict
) dst
;
1121 __gen_field(values
->CommandType
, 29, 31) |
1122 __gen_field(values
->CommandSubType
, 27, 28) |
1123 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1124 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1125 __gen_field(values
->DwordLength
, 0, 7) |
1129 __gen_offset(values
->SystemInstructionPointer
, 4, 63) |
1137 #define GEN9_3DPRIMITIVE_length_bias 0x00000002
1138 #define GEN9_3DPRIMITIVE_header \
1140 .CommandSubType = 3, \
1141 ._3DCommandOpcode = 3, \
1142 ._3DCommandSubOpcode = 0, \
1145 #define GEN9_3DPRIMITIVE_length 0x00000007
1147 struct GEN9_3DPRIMITIVE
{
1148 uint32_t CommandType
;
1149 uint32_t CommandSubType
;
1150 uint32_t _3DCommandOpcode
;
1151 uint32_t _3DCommandSubOpcode
;
1152 bool IndirectParameterEnable
;
1153 uint32_t UAVCoherencyRequired
;
1154 bool PredicateEnable
;
1155 uint32_t DwordLength
;
1156 bool EndOffsetEnable
;
1157 #define SEQUENTIAL 0
1159 uint32_t VertexAccessType
;
1160 uint32_t PrimitiveTopologyType
;
1161 uint32_t VertexCountPerInstance
;
1162 uint32_t StartVertexLocation
;
1163 uint32_t InstanceCount
;
1164 uint32_t StartInstanceLocation
;
1165 uint32_t BaseVertexLocation
;
1169 GEN9_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
1170 const struct GEN9_3DPRIMITIVE
* restrict values
)
1172 uint32_t *dw
= (uint32_t * restrict
) dst
;
1175 __gen_field(values
->CommandType
, 29, 31) |
1176 __gen_field(values
->CommandSubType
, 27, 28) |
1177 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1178 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1179 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
1180 __gen_field(values
->UAVCoherencyRequired
, 9, 9) |
1181 __gen_field(values
->PredicateEnable
, 8, 8) |
1182 __gen_field(values
->DwordLength
, 0, 7) |
1186 __gen_field(values
->EndOffsetEnable
, 9, 9) |
1187 __gen_field(values
->VertexAccessType
, 8, 8) |
1188 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
1192 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
1196 __gen_field(values
->StartVertexLocation
, 0, 31) |
1200 __gen_field(values
->InstanceCount
, 0, 31) |
1204 __gen_field(values
->StartInstanceLocation
, 0, 31) |
1208 __gen_field(values
->BaseVertexLocation
, 0, 31) |
1213 #define GEN9_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
1214 #define GEN9_3DSTATE_AA_LINE_PARAMETERS_header \
1216 .CommandSubType = 3, \
1217 ._3DCommandOpcode = 1, \
1218 ._3DCommandSubOpcode = 10, \
1221 #define GEN9_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
1223 struct GEN9_3DSTATE_AA_LINE_PARAMETERS
{
1224 uint32_t CommandType
;
1225 uint32_t CommandSubType
;
1226 uint32_t _3DCommandOpcode
;
1227 uint32_t _3DCommandSubOpcode
;
1228 uint32_t DwordLength
;
1229 float AAPointCoverageBias
;
1230 float AACoverageBias
;
1231 float AAPointCoverageSlope
;
1232 float AACoverageSlope
;
1233 float AAPointCoverageEndCapBias
;
1234 float AACoverageEndCapBias
;
1235 float AAPointCoverageEndCapSlope
;
1236 float AACoverageEndCapSlope
;
1240 GEN9_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
1241 const struct GEN9_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
1243 uint32_t *dw
= (uint32_t * restrict
) dst
;
1246 __gen_field(values
->CommandType
, 29, 31) |
1247 __gen_field(values
->CommandSubType
, 27, 28) |
1248 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1249 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1250 __gen_field(values
->DwordLength
, 0, 7) |
1254 __gen_field(values
->AAPointCoverageBias
* (1 << 8), 24, 31) |
1255 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
1256 __gen_field(values
->AAPointCoverageSlope
* (1 << 8), 8, 15) |
1257 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
1261 __gen_field(values
->AAPointCoverageEndCapBias
* (1 << 8), 24, 31) |
1262 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
1263 __gen_field(values
->AAPointCoverageEndCapSlope
* (1 << 8), 8, 15) |
1264 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
1269 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_DS_length_bias 0x00000002
1270 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_DS_header\
1272 .CommandSubType = 3, \
1273 ._3DCommandOpcode = 0, \
1274 ._3DCommandSubOpcode = 70
1276 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_DS_length 0x00000000
1278 #define GEN9_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
1280 struct GEN9_BINDING_TABLE_EDIT_ENTRY
{
1281 uint32_t BindingTableIndex
;
1282 uint32_t SurfaceStatePointer
;
1286 GEN9_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
1287 const struct GEN9_BINDING_TABLE_EDIT_ENTRY
* restrict values
)
1289 uint32_t *dw
= (uint32_t * restrict
) dst
;
1292 __gen_field(values
->BindingTableIndex
, 16, 23) |
1293 __gen_offset(values
->SurfaceStatePointer
, 0, 15) |
1298 struct GEN9_3DSTATE_BINDING_TABLE_EDIT_DS
{
1299 uint32_t CommandType
;
1300 uint32_t CommandSubType
;
1301 uint32_t _3DCommandOpcode
;
1302 uint32_t _3DCommandSubOpcode
;
1303 uint32_t DwordLength
;
1304 uint32_t BindingTableBlockClear
;
1308 uint32_t BindingTableEditTarget
;
1309 /* variable length fields follow */
1313 GEN9_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1314 const struct GEN9_3DSTATE_BINDING_TABLE_EDIT_DS
* restrict values
)
1316 uint32_t *dw
= (uint32_t * restrict
) dst
;
1319 __gen_field(values
->CommandType
, 29, 31) |
1320 __gen_field(values
->CommandSubType
, 27, 28) |
1321 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1322 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1323 __gen_field(values
->DwordLength
, 0, 8) |
1327 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1328 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1331 /* variable length fields follow */
1334 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_GS_length_bias 0x00000002
1335 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_GS_header\
1337 .CommandSubType = 3, \
1338 ._3DCommandOpcode = 0, \
1339 ._3DCommandSubOpcode = 68
1341 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_GS_length 0x00000000
1343 struct GEN9_3DSTATE_BINDING_TABLE_EDIT_GS
{
1344 uint32_t CommandType
;
1345 uint32_t CommandSubType
;
1346 uint32_t _3DCommandOpcode
;
1347 uint32_t _3DCommandSubOpcode
;
1348 uint32_t DwordLength
;
1349 uint32_t BindingTableBlockClear
;
1353 uint32_t BindingTableEditTarget
;
1354 /* variable length fields follow */
1358 GEN9_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1359 const struct GEN9_3DSTATE_BINDING_TABLE_EDIT_GS
* restrict values
)
1361 uint32_t *dw
= (uint32_t * restrict
) dst
;
1364 __gen_field(values
->CommandType
, 29, 31) |
1365 __gen_field(values
->CommandSubType
, 27, 28) |
1366 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1367 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1368 __gen_field(values
->DwordLength
, 0, 8) |
1372 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1373 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1376 /* variable length fields follow */
1379 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_HS_length_bias 0x00000002
1380 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_HS_header\
1382 .CommandSubType = 3, \
1383 ._3DCommandOpcode = 0, \
1384 ._3DCommandSubOpcode = 69
1386 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_HS_length 0x00000000
1388 struct GEN9_3DSTATE_BINDING_TABLE_EDIT_HS
{
1389 uint32_t CommandType
;
1390 uint32_t CommandSubType
;
1391 uint32_t _3DCommandOpcode
;
1392 uint32_t _3DCommandSubOpcode
;
1393 uint32_t DwordLength
;
1394 uint32_t BindingTableBlockClear
;
1398 uint32_t BindingTableEditTarget
;
1399 /* variable length fields follow */
1403 GEN9_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1404 const struct GEN9_3DSTATE_BINDING_TABLE_EDIT_HS
* restrict values
)
1406 uint32_t *dw
= (uint32_t * restrict
) dst
;
1409 __gen_field(values
->CommandType
, 29, 31) |
1410 __gen_field(values
->CommandSubType
, 27, 28) |
1411 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1412 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1413 __gen_field(values
->DwordLength
, 0, 8) |
1417 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1418 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1421 /* variable length fields follow */
1424 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_PS_length_bias 0x00000002
1425 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_PS_header\
1427 .CommandSubType = 3, \
1428 ._3DCommandOpcode = 0, \
1429 ._3DCommandSubOpcode = 71
1431 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_PS_length 0x00000000
1433 struct GEN9_3DSTATE_BINDING_TABLE_EDIT_PS
{
1434 uint32_t CommandType
;
1435 uint32_t CommandSubType
;
1436 uint32_t _3DCommandOpcode
;
1437 uint32_t _3DCommandSubOpcode
;
1438 uint32_t DwordLength
;
1439 uint32_t BindingTableBlockClear
;
1443 uint32_t BindingTableEditTarget
;
1444 /* variable length fields follow */
1448 GEN9_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1449 const struct GEN9_3DSTATE_BINDING_TABLE_EDIT_PS
* restrict values
)
1451 uint32_t *dw
= (uint32_t * restrict
) dst
;
1454 __gen_field(values
->CommandType
, 29, 31) |
1455 __gen_field(values
->CommandSubType
, 27, 28) |
1456 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1457 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1458 __gen_field(values
->DwordLength
, 0, 8) |
1462 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1463 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1466 /* variable length fields follow */
1469 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_VS_length_bias 0x00000002
1470 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_VS_header\
1472 .CommandSubType = 3, \
1473 ._3DCommandOpcode = 0, \
1474 ._3DCommandSubOpcode = 67
1476 #define GEN9_3DSTATE_BINDING_TABLE_EDIT_VS_length 0x00000000
1478 struct GEN9_3DSTATE_BINDING_TABLE_EDIT_VS
{
1479 uint32_t CommandType
;
1480 uint32_t CommandSubType
;
1481 uint32_t _3DCommandOpcode
;
1482 uint32_t _3DCommandSubOpcode
;
1483 uint32_t DwordLength
;
1484 uint32_t BindingTableBlockClear
;
1488 uint32_t BindingTableEditTarget
;
1489 /* variable length fields follow */
1493 GEN9_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1494 const struct GEN9_3DSTATE_BINDING_TABLE_EDIT_VS
* restrict values
)
1496 uint32_t *dw
= (uint32_t * restrict
) dst
;
1499 __gen_field(values
->CommandType
, 29, 31) |
1500 __gen_field(values
->CommandSubType
, 27, 28) |
1501 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1502 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1503 __gen_field(values
->DwordLength
, 0, 8) |
1507 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1508 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1511 /* variable length fields follow */
1514 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
1515 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
1517 .CommandSubType = 3, \
1518 ._3DCommandOpcode = 0, \
1519 ._3DCommandSubOpcode = 40, \
1522 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
1524 struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS
{
1525 uint32_t CommandType
;
1526 uint32_t CommandSubType
;
1527 uint32_t _3DCommandOpcode
;
1528 uint32_t _3DCommandSubOpcode
;
1529 uint32_t DwordLength
;
1530 uint32_t PointertoDSBindingTable
;
1534 GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1535 const struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
1537 uint32_t *dw
= (uint32_t * restrict
) dst
;
1540 __gen_field(values
->CommandType
, 29, 31) |
1541 __gen_field(values
->CommandSubType
, 27, 28) |
1542 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1543 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1544 __gen_field(values
->DwordLength
, 0, 7) |
1548 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
1553 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
1554 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
1556 .CommandSubType = 3, \
1557 ._3DCommandOpcode = 0, \
1558 ._3DCommandSubOpcode = 41, \
1561 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
1563 struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS
{
1564 uint32_t CommandType
;
1565 uint32_t CommandSubType
;
1566 uint32_t _3DCommandOpcode
;
1567 uint32_t _3DCommandSubOpcode
;
1568 uint32_t DwordLength
;
1569 uint32_t PointertoGSBindingTable
;
1573 GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1574 const struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
1576 uint32_t *dw
= (uint32_t * restrict
) dst
;
1579 __gen_field(values
->CommandType
, 29, 31) |
1580 __gen_field(values
->CommandSubType
, 27, 28) |
1581 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1582 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1583 __gen_field(values
->DwordLength
, 0, 7) |
1587 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
1592 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
1593 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
1595 .CommandSubType = 3, \
1596 ._3DCommandOpcode = 0, \
1597 ._3DCommandSubOpcode = 39, \
1600 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
1602 struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS
{
1603 uint32_t CommandType
;
1604 uint32_t CommandSubType
;
1605 uint32_t _3DCommandOpcode
;
1606 uint32_t _3DCommandSubOpcode
;
1607 uint32_t DwordLength
;
1608 uint32_t PointertoHSBindingTable
;
1612 GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1613 const struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
1615 uint32_t *dw
= (uint32_t * restrict
) dst
;
1618 __gen_field(values
->CommandType
, 29, 31) |
1619 __gen_field(values
->CommandSubType
, 27, 28) |
1620 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1621 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1622 __gen_field(values
->DwordLength
, 0, 7) |
1626 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
1631 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
1632 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
1634 .CommandSubType = 3, \
1635 ._3DCommandOpcode = 0, \
1636 ._3DCommandSubOpcode = 42, \
1639 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
1641 struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS
{
1642 uint32_t CommandType
;
1643 uint32_t CommandSubType
;
1644 uint32_t _3DCommandOpcode
;
1645 uint32_t _3DCommandSubOpcode
;
1646 uint32_t DwordLength
;
1647 uint32_t PointertoPSBindingTable
;
1651 GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1652 const struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
1654 uint32_t *dw
= (uint32_t * restrict
) dst
;
1657 __gen_field(values
->CommandType
, 29, 31) |
1658 __gen_field(values
->CommandSubType
, 27, 28) |
1659 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1660 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1661 __gen_field(values
->DwordLength
, 0, 7) |
1665 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
1670 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
1671 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
1673 .CommandSubType = 3, \
1674 ._3DCommandOpcode = 0, \
1675 ._3DCommandSubOpcode = 38, \
1678 #define GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
1680 struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS
{
1681 uint32_t CommandType
;
1682 uint32_t CommandSubType
;
1683 uint32_t _3DCommandOpcode
;
1684 uint32_t _3DCommandSubOpcode
;
1685 uint32_t DwordLength
;
1686 uint32_t PointertoVSBindingTable
;
1690 GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1691 const struct GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
1693 uint32_t *dw
= (uint32_t * restrict
) dst
;
1696 __gen_field(values
->CommandType
, 29, 31) |
1697 __gen_field(values
->CommandSubType
, 27, 28) |
1698 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1699 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1700 __gen_field(values
->DwordLength
, 0, 7) |
1704 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
1709 #define GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002
1710 #define GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\
1712 .CommandSubType = 3, \
1713 ._3DCommandOpcode = 1, \
1714 ._3DCommandSubOpcode = 25, \
1717 #define GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000004
1719 struct GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC
{
1720 uint32_t CommandType
;
1721 uint32_t CommandSubType
;
1722 uint32_t _3DCommandOpcode
;
1723 uint32_t _3DCommandSubOpcode
;
1724 uint32_t DwordLength
;
1725 __gen_address_type BindingTablePoolBaseAddress
;
1726 uint32_t BindingTablePoolEnable
;
1727 struct GEN9_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
1728 #define NoValidData 0
1729 uint32_t BindingTablePoolBufferSize
;
1733 GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
1734 const struct GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC
* restrict values
)
1736 uint32_t *dw
= (uint32_t * restrict
) dst
;
1739 __gen_field(values
->CommandType
, 29, 31) |
1740 __gen_field(values
->CommandSubType
, 27, 28) |
1741 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1742 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1743 __gen_field(values
->DwordLength
, 0, 7) |
1746 uint32_t dw_SurfaceObjectControlState
;
1747 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
1749 __gen_field(values
->BindingTablePoolEnable
, 11, 11) |
1750 __gen_field(dw_SurfaceObjectControlState
, 0, 6) |
1754 __gen_combine_address(data
, &dw
[1], values
->BindingTablePoolBaseAddress
, dw1
);
1760 __gen_field(values
->BindingTablePoolBufferSize
, 12, 31) |
1765 #define GEN9_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
1766 #define GEN9_3DSTATE_BLEND_STATE_POINTERS_header\
1768 .CommandSubType = 3, \
1769 ._3DCommandOpcode = 0, \
1770 ._3DCommandSubOpcode = 36, \
1773 #define GEN9_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
1775 struct GEN9_3DSTATE_BLEND_STATE_POINTERS
{
1776 uint32_t CommandType
;
1777 uint32_t CommandSubType
;
1778 uint32_t _3DCommandOpcode
;
1779 uint32_t _3DCommandSubOpcode
;
1780 uint32_t DwordLength
;
1781 uint32_t BlendStatePointer
;
1782 bool BlendStatePointerValid
;
1786 GEN9_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1787 const struct GEN9_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
1789 uint32_t *dw
= (uint32_t * restrict
) dst
;
1792 __gen_field(values
->CommandType
, 29, 31) |
1793 __gen_field(values
->CommandSubType
, 27, 28) |
1794 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1795 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1796 __gen_field(values
->DwordLength
, 0, 7) |
1800 __gen_offset(values
->BlendStatePointer
, 6, 31) |
1801 __gen_field(values
->BlendStatePointerValid
, 0, 0) |
1806 #define GEN9_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
1807 #define GEN9_3DSTATE_CC_STATE_POINTERS_header \
1809 .CommandSubType = 3, \
1810 ._3DCommandOpcode = 0, \
1811 ._3DCommandSubOpcode = 14, \
1814 #define GEN9_3DSTATE_CC_STATE_POINTERS_length 0x00000002
1816 struct GEN9_3DSTATE_CC_STATE_POINTERS
{
1817 uint32_t CommandType
;
1818 uint32_t CommandSubType
;
1819 uint32_t _3DCommandOpcode
;
1820 uint32_t _3DCommandSubOpcode
;
1821 uint32_t DwordLength
;
1822 uint32_t ColorCalcStatePointer
;
1823 bool ColorCalcStatePointerValid
;
1827 GEN9_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1828 const struct GEN9_3DSTATE_CC_STATE_POINTERS
* restrict values
)
1830 uint32_t *dw
= (uint32_t * restrict
) dst
;
1833 __gen_field(values
->CommandType
, 29, 31) |
1834 __gen_field(values
->CommandSubType
, 27, 28) |
1835 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1836 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1837 __gen_field(values
->DwordLength
, 0, 7) |
1841 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
1842 __gen_field(values
->ColorCalcStatePointerValid
, 0, 0) |
1847 #define GEN9_3DSTATE_CHROMA_KEY_length_bias 0x00000002
1848 #define GEN9_3DSTATE_CHROMA_KEY_header \
1850 .CommandSubType = 3, \
1851 ._3DCommandOpcode = 1, \
1852 ._3DCommandSubOpcode = 4, \
1855 #define GEN9_3DSTATE_CHROMA_KEY_length 0x00000004
1857 struct GEN9_3DSTATE_CHROMA_KEY
{
1858 uint32_t CommandType
;
1859 uint32_t CommandSubType
;
1860 uint32_t _3DCommandOpcode
;
1861 uint32_t _3DCommandSubOpcode
;
1862 uint32_t DwordLength
;
1863 uint32_t ChromaKeyTableIndex
;
1864 uint32_t ChromaKeyLowValue
;
1865 uint32_t ChromaKeyHighValue
;
1869 GEN9_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
1870 const struct GEN9_3DSTATE_CHROMA_KEY
* restrict values
)
1872 uint32_t *dw
= (uint32_t * restrict
) dst
;
1875 __gen_field(values
->CommandType
, 29, 31) |
1876 __gen_field(values
->CommandSubType
, 27, 28) |
1877 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1878 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1879 __gen_field(values
->DwordLength
, 0, 7) |
1883 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
1887 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
1891 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
1896 #define GEN9_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
1897 #define GEN9_3DSTATE_CLEAR_PARAMS_header \
1899 .CommandSubType = 3, \
1900 ._3DCommandOpcode = 0, \
1901 ._3DCommandSubOpcode = 4, \
1904 #define GEN9_3DSTATE_CLEAR_PARAMS_length 0x00000003
1906 struct GEN9_3DSTATE_CLEAR_PARAMS
{
1907 uint32_t CommandType
;
1908 uint32_t CommandSubType
;
1909 uint32_t _3DCommandOpcode
;
1910 uint32_t _3DCommandSubOpcode
;
1911 uint32_t DwordLength
;
1912 float DepthClearValue
;
1913 bool DepthClearValueValid
;
1917 GEN9_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
1918 const struct GEN9_3DSTATE_CLEAR_PARAMS
* restrict values
)
1920 uint32_t *dw
= (uint32_t * restrict
) dst
;
1923 __gen_field(values
->CommandType
, 29, 31) |
1924 __gen_field(values
->CommandSubType
, 27, 28) |
1925 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1926 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1927 __gen_field(values
->DwordLength
, 0, 7) |
1931 __gen_float(values
->DepthClearValue
) |
1935 __gen_field(values
->DepthClearValueValid
, 0, 0) |
1940 #define GEN9_3DSTATE_CLIP_length_bias 0x00000002
1941 #define GEN9_3DSTATE_CLIP_header \
1943 .CommandSubType = 3, \
1944 ._3DCommandOpcode = 0, \
1945 ._3DCommandSubOpcode = 18, \
1948 #define GEN9_3DSTATE_CLIP_length 0x00000004
1950 struct GEN9_3DSTATE_CLIP
{
1951 uint32_t CommandType
;
1952 uint32_t CommandSubType
;
1953 uint32_t _3DCommandOpcode
;
1954 uint32_t _3DCommandSubOpcode
;
1955 uint32_t DwordLength
;
1958 bool ForceUserClipDistanceCullTestEnableBitmask
;
1961 uint32_t VertexSubPixelPrecisionSelect
;
1962 bool EarlyCullEnable
;
1965 bool ForceUserClipDistanceClipTestEnableBitmask
;
1969 bool ClipperStatisticsEnable
;
1970 uint32_t UserClipDistanceCullTestEnableBitmask
;
1974 bool ViewportXYClipTestEnable
;
1975 bool GuardbandClipTestEnable
;
1976 uint32_t UserClipDistanceClipTestEnableBitmask
;
1978 #define REJECT_ALL 3
1979 #define ACCEPT_ALL 4
1981 bool PerspectiveDivideDisable
;
1982 bool NonPerspectiveBarycentricEnable
;
1983 uint32_t TriangleStripListProvokingVertexSelect
;
1984 uint32_t LineStripListProvokingVertexSelect
;
1985 uint32_t TriangleFanProvokingVertexSelect
;
1986 float MinimumPointWidth
;
1987 float MaximumPointWidth
;
1988 bool ForceZeroRTAIndexEnable
;
1989 uint32_t MaximumVPIndex
;
1993 GEN9_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1994 const struct GEN9_3DSTATE_CLIP
* restrict values
)
1996 uint32_t *dw
= (uint32_t * restrict
) dst
;
1999 __gen_field(values
->CommandType
, 29, 31) |
2000 __gen_field(values
->CommandSubType
, 27, 28) |
2001 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2002 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2003 __gen_field(values
->DwordLength
, 0, 7) |
2007 __gen_field(values
->ForceUserClipDistanceCullTestEnableBitmask
, 20, 20) |
2008 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
2009 __gen_field(values
->EarlyCullEnable
, 18, 18) |
2010 __gen_field(values
->ForceUserClipDistanceClipTestEnableBitmask
, 17, 17) |
2011 __gen_field(values
->ForceClipMode
, 16, 16) |
2012 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
2013 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2017 __gen_field(values
->ClipEnable
, 31, 31) |
2018 __gen_field(values
->APIMode
, 30, 30) |
2019 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
2020 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
2021 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
2022 __gen_field(values
->ClipMode
, 13, 15) |
2023 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
2024 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
2025 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
2026 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
2027 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
2031 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
2032 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
2033 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
2034 __gen_field(values
->MaximumVPIndex
, 0, 3) |
2039 #define GEN9_3DSTATE_CONSTANT_DS_length_bias 0x00000002
2040 #define GEN9_3DSTATE_CONSTANT_DS_header \
2042 .CommandSubType = 3, \
2043 ._3DCommandOpcode = 0, \
2044 ._3DCommandSubOpcode = 26, \
2047 #define GEN9_3DSTATE_CONSTANT_DS_length 0x0000000b
2049 #define GEN9_3DSTATE_CONSTANT_BODY_length 0x0000000a
2051 struct GEN9_3DSTATE_CONSTANT_BODY
{
2052 uint32_t ConstantBuffer1ReadLength
;
2053 uint32_t ConstantBuffer0ReadLength
;
2054 uint32_t ConstantBuffer3ReadLength
;
2055 uint32_t ConstantBuffer2ReadLength
;
2056 __gen_address_type PointerToConstantBuffer0
;
2057 __gen_address_type PointerToConstantBuffer1
;
2058 __gen_address_type PointerToConstantBuffer2
;
2059 __gen_address_type PointerToConstantBuffer3
;
2063 GEN9_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
2064 const struct GEN9_3DSTATE_CONSTANT_BODY
* restrict values
)
2066 uint32_t *dw
= (uint32_t * restrict
) dst
;
2069 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
2070 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
2074 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
2075 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
2082 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
2091 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer1
, dw4
);
2100 __gen_combine_address(data
, &dw
[6], values
->PointerToConstantBuffer2
, dw6
);
2109 __gen_combine_address(data
, &dw
[8], values
->PointerToConstantBuffer3
, dw8
);
2116 struct GEN9_3DSTATE_CONSTANT_DS
{
2117 uint32_t CommandType
;
2118 uint32_t CommandSubType
;
2119 uint32_t _3DCommandOpcode
;
2120 uint32_t _3DCommandSubOpcode
;
2121 struct GEN9_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2122 uint32_t DwordLength
;
2123 struct GEN9_3DSTATE_CONSTANT_BODY ConstantBody
;
2127 GEN9_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2128 const struct GEN9_3DSTATE_CONSTANT_DS
* restrict values
)
2130 uint32_t *dw
= (uint32_t * restrict
) dst
;
2132 uint32_t dw_ConstantBufferObjectControlState
;
2133 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2135 __gen_field(values
->CommandType
, 29, 31) |
2136 __gen_field(values
->CommandSubType
, 27, 28) |
2137 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2138 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2139 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2140 __gen_field(values
->DwordLength
, 0, 7) |
2143 GEN9_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2146 #define GEN9_3DSTATE_CONSTANT_GS_length_bias 0x00000002
2147 #define GEN9_3DSTATE_CONSTANT_GS_header \
2149 .CommandSubType = 3, \
2150 ._3DCommandOpcode = 0, \
2151 ._3DCommandSubOpcode = 22, \
2154 #define GEN9_3DSTATE_CONSTANT_GS_length 0x0000000b
2156 struct GEN9_3DSTATE_CONSTANT_GS
{
2157 uint32_t CommandType
;
2158 uint32_t CommandSubType
;
2159 uint32_t _3DCommandOpcode
;
2160 uint32_t _3DCommandSubOpcode
;
2161 struct GEN9_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2162 uint32_t DwordLength
;
2163 struct GEN9_3DSTATE_CONSTANT_BODY ConstantBody
;
2167 GEN9_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2168 const struct GEN9_3DSTATE_CONSTANT_GS
* restrict values
)
2170 uint32_t *dw
= (uint32_t * restrict
) dst
;
2172 uint32_t dw_ConstantBufferObjectControlState
;
2173 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2175 __gen_field(values
->CommandType
, 29, 31) |
2176 __gen_field(values
->CommandSubType
, 27, 28) |
2177 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2178 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2179 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2180 __gen_field(values
->DwordLength
, 0, 7) |
2183 GEN9_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2186 #define GEN9_3DSTATE_CONSTANT_HS_length_bias 0x00000002
2187 #define GEN9_3DSTATE_CONSTANT_HS_header \
2189 .CommandSubType = 3, \
2190 ._3DCommandOpcode = 0, \
2191 ._3DCommandSubOpcode = 25, \
2194 #define GEN9_3DSTATE_CONSTANT_HS_length 0x0000000b
2196 struct GEN9_3DSTATE_CONSTANT_HS
{
2197 uint32_t CommandType
;
2198 uint32_t CommandSubType
;
2199 uint32_t _3DCommandOpcode
;
2200 uint32_t _3DCommandSubOpcode
;
2201 struct GEN9_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2202 uint32_t DwordLength
;
2203 struct GEN9_3DSTATE_CONSTANT_BODY ConstantBody
;
2207 GEN9_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2208 const struct GEN9_3DSTATE_CONSTANT_HS
* restrict values
)
2210 uint32_t *dw
= (uint32_t * restrict
) dst
;
2212 uint32_t dw_ConstantBufferObjectControlState
;
2213 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2215 __gen_field(values
->CommandType
, 29, 31) |
2216 __gen_field(values
->CommandSubType
, 27, 28) |
2217 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2218 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2219 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2220 __gen_field(values
->DwordLength
, 0, 7) |
2223 GEN9_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2226 #define GEN9_3DSTATE_CONSTANT_PS_length_bias 0x00000002
2227 #define GEN9_3DSTATE_CONSTANT_PS_header \
2229 .CommandSubType = 3, \
2230 ._3DCommandOpcode = 0, \
2231 ._3DCommandSubOpcode = 23, \
2234 #define GEN9_3DSTATE_CONSTANT_PS_length 0x0000000b
2236 struct GEN9_3DSTATE_CONSTANT_PS
{
2237 uint32_t CommandType
;
2238 uint32_t CommandSubType
;
2239 uint32_t _3DCommandOpcode
;
2240 uint32_t _3DCommandSubOpcode
;
2241 struct GEN9_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2242 uint32_t DwordLength
;
2243 struct GEN9_3DSTATE_CONSTANT_BODY ConstantBody
;
2247 GEN9_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2248 const struct GEN9_3DSTATE_CONSTANT_PS
* restrict values
)
2250 uint32_t *dw
= (uint32_t * restrict
) dst
;
2252 uint32_t dw_ConstantBufferObjectControlState
;
2253 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2255 __gen_field(values
->CommandType
, 29, 31) |
2256 __gen_field(values
->CommandSubType
, 27, 28) |
2257 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2258 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2259 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2260 __gen_field(values
->DwordLength
, 0, 7) |
2263 GEN9_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2266 #define GEN9_3DSTATE_CONSTANT_VS_length_bias 0x00000002
2267 #define GEN9_3DSTATE_CONSTANT_VS_header \
2269 .CommandSubType = 3, \
2270 ._3DCommandOpcode = 0, \
2271 ._3DCommandSubOpcode = 21, \
2274 #define GEN9_3DSTATE_CONSTANT_VS_length 0x0000000b
2276 struct GEN9_3DSTATE_CONSTANT_VS
{
2277 uint32_t CommandType
;
2278 uint32_t CommandSubType
;
2279 uint32_t _3DCommandOpcode
;
2280 uint32_t _3DCommandSubOpcode
;
2281 struct GEN9_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2282 uint32_t DwordLength
;
2283 struct GEN9_3DSTATE_CONSTANT_BODY ConstantBody
;
2287 GEN9_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2288 const struct GEN9_3DSTATE_CONSTANT_VS
* restrict values
)
2290 uint32_t *dw
= (uint32_t * restrict
) dst
;
2292 uint32_t dw_ConstantBufferObjectControlState
;
2293 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2295 __gen_field(values
->CommandType
, 29, 31) |
2296 __gen_field(values
->CommandSubType
, 27, 28) |
2297 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2298 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2299 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2300 __gen_field(values
->DwordLength
, 0, 7) |
2303 GEN9_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2306 #define GEN9_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
2307 #define GEN9_3DSTATE_DEPTH_BUFFER_header \
2309 .CommandSubType = 3, \
2310 ._3DCommandOpcode = 0, \
2311 ._3DCommandSubOpcode = 5, \
2314 #define GEN9_3DSTATE_DEPTH_BUFFER_length 0x00000008
2316 struct GEN9_3DSTATE_DEPTH_BUFFER
{
2317 uint32_t CommandType
;
2318 uint32_t CommandSubType
;
2319 uint32_t _3DCommandOpcode
;
2320 uint32_t _3DCommandSubOpcode
;
2321 uint32_t DwordLength
;
2322 #define SURFTYPE_2D 1
2323 #define SURFTYPE_CUBE 3
2324 #define SURFTYPE_NULL 7
2325 uint32_t SurfaceType
;
2326 bool DepthWriteEnable
;
2327 bool StencilWriteEnable
;
2328 bool HierarchicalDepthBufferEnable
;
2330 #define D24_UNORM_X8_UINT 3
2332 uint32_t SurfaceFormat
;
2333 uint32_t SurfacePitch
;
2334 __gen_address_type SurfaceBaseAddress
;
2339 uint32_t MinimumArrayElement
;
2340 struct GEN9_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
2344 uint32_t TiledResourceMode
;
2345 uint32_t MipTailStartLOD
;
2346 uint32_t RenderTargetViewExtent
;
2347 uint32_t SurfaceQPitch
;
2351 GEN9_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2352 const struct GEN9_3DSTATE_DEPTH_BUFFER
* restrict values
)
2354 uint32_t *dw
= (uint32_t * restrict
) dst
;
2357 __gen_field(values
->CommandType
, 29, 31) |
2358 __gen_field(values
->CommandSubType
, 27, 28) |
2359 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2360 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2361 __gen_field(values
->DwordLength
, 0, 7) |
2365 __gen_field(values
->SurfaceType
, 29, 31) |
2366 __gen_field(values
->DepthWriteEnable
, 28, 28) |
2367 __gen_field(values
->StencilWriteEnable
, 27, 27) |
2368 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
2369 __gen_field(values
->SurfaceFormat
, 18, 20) |
2370 __gen_field(values
->SurfacePitch
, 0, 17) |
2377 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2383 __gen_field(values
->Height
, 18, 31) |
2384 __gen_field(values
->Width
, 4, 17) |
2385 __gen_field(values
->LOD
, 0, 3) |
2388 uint32_t dw_DepthBufferObjectControlState
;
2389 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
2391 __gen_field(values
->Depth
, 21, 31) |
2392 __gen_field(values
->MinimumArrayElement
, 10, 20) |
2393 __gen_field(dw_DepthBufferObjectControlState
, 0, 6) |
2397 __gen_field(values
->TiledResourceMode
, 30, 31) |
2398 __gen_field(values
->MipTailStartLOD
, 26, 29) |
2402 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
2403 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2408 #define GEN9_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
2409 #define GEN9_3DSTATE_DRAWING_RECTANGLE_header \
2411 .CommandSubType = 3, \
2412 ._3DCommandOpcode = 1, \
2413 ._3DCommandSubOpcode = 0, \
2416 #define GEN9_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
2418 struct GEN9_3DSTATE_DRAWING_RECTANGLE
{
2419 uint32_t CommandType
;
2420 uint32_t CommandSubType
;
2421 uint32_t _3DCommandOpcode
;
2422 uint32_t _3DCommandSubOpcode
;
2424 #define Core0Enabled 1
2425 #define Core1Enabled 2
2426 uint32_t CoreModeSelect
;
2427 uint32_t DwordLength
;
2428 uint32_t ClippedDrawingRectangleYMin
;
2429 uint32_t ClippedDrawingRectangleXMin
;
2430 uint32_t ClippedDrawingRectangleYMax
;
2431 uint32_t ClippedDrawingRectangleXMax
;
2432 uint32_t DrawingRectangleOriginY
;
2433 uint32_t DrawingRectangleOriginX
;
2437 GEN9_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
2438 const struct GEN9_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
2440 uint32_t *dw
= (uint32_t * restrict
) dst
;
2443 __gen_field(values
->CommandType
, 29, 31) |
2444 __gen_field(values
->CommandSubType
, 27, 28) |
2445 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2446 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2447 __gen_field(values
->CoreModeSelect
, 14, 15) |
2448 __gen_field(values
->DwordLength
, 0, 7) |
2452 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
2453 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
2457 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
2458 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
2462 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
2463 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
2468 #define GEN9_3DSTATE_DS_length_bias 0x00000002
2469 #define GEN9_3DSTATE_DS_header \
2471 .CommandSubType = 3, \
2472 ._3DCommandOpcode = 0, \
2473 ._3DCommandSubOpcode = 29, \
2476 #define GEN9_3DSTATE_DS_length 0x0000000b
2478 struct GEN9_3DSTATE_DS
{
2479 uint32_t CommandType
;
2480 uint32_t CommandSubType
;
2481 uint32_t _3DCommandOpcode
;
2482 uint32_t _3DCommandSubOpcode
;
2483 uint32_t DwordLength
;
2484 uint64_t KernelStartPointer
;
2487 uint32_t VectorMaskEnable
;
2488 #define NoSamplers 0
2489 #define _14Samplers 1
2490 #define _58Samplers 2
2491 #define _912Samplers 3
2492 #define _1316Samplers 4
2493 uint32_t SamplerCount
;
2494 uint32_t BindingTableEntryCount
;
2497 uint32_t ThreadDispatchPriority
;
2500 uint32_t FloatingPointMode
;
2502 bool IllegalOpcodeExceptionEnable
;
2503 bool SoftwareExceptionEnable
;
2504 uint64_t ScratchSpaceBasePointer
;
2505 uint32_t PerThreadScratchSpace
;
2506 uint32_t DispatchGRFStartRegisterForURBData
;
2507 uint32_t PatchURBEntryReadLength
;
2508 uint32_t PatchURBEntryReadOffset
;
2509 uint32_t MaximumNumberofThreads
;
2510 bool StatisticsEnable
;
2512 #define SIMD8_SINGLE_PATCH 1
2513 #define SIMD8_SINGLE_OR_DUAL_PATCH 2
2514 uint32_t DispatchMode
;
2515 bool ComputeWCoordinateEnable
;
2517 bool FunctionEnable
;
2518 uint32_t VertexURBEntryOutputReadOffset
;
2519 uint32_t VertexURBEntryOutputLength
;
2520 uint32_t UserClipDistanceClipTestEnableBitmask
;
2521 uint32_t UserClipDistanceCullTestEnableBitmask
;
2522 uint64_t DUAL_PATCHKernelStartPointer
;
2526 GEN9_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2527 const struct GEN9_3DSTATE_DS
* restrict values
)
2529 uint32_t *dw
= (uint32_t * restrict
) dst
;
2532 __gen_field(values
->CommandType
, 29, 31) |
2533 __gen_field(values
->CommandSubType
, 27, 28) |
2534 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2535 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2536 __gen_field(values
->DwordLength
, 0, 7) |
2540 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2547 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2548 __gen_field(values
->SamplerCount
, 27, 29) |
2549 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2550 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2551 __gen_field(values
->FloatingPointMode
, 16, 16) |
2552 __gen_field(values
->AccessesUAV
, 14, 14) |
2553 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2554 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2558 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2559 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2566 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
2567 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
2568 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
2572 __gen_field(values
->MaximumNumberofThreads
, 21, 29) |
2573 __gen_field(values
->StatisticsEnable
, 10, 10) |
2574 __gen_field(values
->DispatchMode
, 3, 4) |
2575 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
2576 __gen_field(values
->CacheDisable
, 1, 1) |
2577 __gen_field(values
->FunctionEnable
, 0, 0) |
2581 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2582 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2583 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2584 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2588 __gen_offset(values
->DUAL_PATCHKernelStartPointer
, 6, 63) |
2596 #define GEN9_3DSTATE_GATHER_CONSTANT_DS_length_bias 0x00000002
2597 #define GEN9_3DSTATE_GATHER_CONSTANT_DS_header \
2599 .CommandSubType = 3, \
2600 ._3DCommandOpcode = 0, \
2601 ._3DCommandSubOpcode = 55
2603 #define GEN9_3DSTATE_GATHER_CONSTANT_DS_length 0x00000000
2605 #define GEN9_GATHER_CONSTANT_ENTRY_length 0x00000001
2607 struct GEN9_GATHER_CONSTANT_ENTRY
{
2608 uint32_t ConstantBufferOffset
;
2609 uint32_t ChannelMask
;
2610 uint32_t BindingTableIndexOffset
;
2614 GEN9_GATHER_CONSTANT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2615 const struct GEN9_GATHER_CONSTANT_ENTRY
* restrict values
)
2617 uint32_t *dw
= (uint32_t * restrict
) dst
;
2620 __gen_offset(values
->ConstantBufferOffset
, 8, 15) |
2621 __gen_field(values
->ChannelMask
, 4, 7) |
2622 __gen_field(values
->BindingTableIndexOffset
, 0, 3) |
2627 struct GEN9_3DSTATE_GATHER_CONSTANT_DS
{
2628 uint32_t CommandType
;
2629 uint32_t CommandSubType
;
2630 uint32_t _3DCommandOpcode
;
2631 uint32_t _3DCommandSubOpcode
;
2632 uint32_t DwordLength
;
2633 uint32_t ConstantBufferValid
;
2634 uint32_t ConstantBufferBindingTableBlock
;
2635 #define CommitGather 0
2636 #define NonCommitGather 1
2637 uint32_t UpdateGatherTableOnly
;
2638 uint32_t GatherBufferOffset
;
2639 bool ConstantBufferDx9GenerateStall
;
2642 uint32_t OnDieTable
;
2643 /* variable length fields follow */
2647 GEN9_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2648 const struct GEN9_3DSTATE_GATHER_CONSTANT_DS
* restrict values
)
2650 uint32_t *dw
= (uint32_t * restrict
) dst
;
2653 __gen_field(values
->CommandType
, 29, 31) |
2654 __gen_field(values
->CommandSubType
, 27, 28) |
2655 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2656 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2657 __gen_field(values
->DwordLength
, 0, 7) |
2661 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2662 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2663 __gen_field(values
->UpdateGatherTableOnly
, 1, 1) |
2667 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2668 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2669 __gen_field(values
->OnDieTable
, 3, 3) |
2672 /* variable length fields follow */
2675 #define GEN9_3DSTATE_GATHER_CONSTANT_GS_length_bias 0x00000002
2676 #define GEN9_3DSTATE_GATHER_CONSTANT_GS_header \
2678 .CommandSubType = 3, \
2679 ._3DCommandOpcode = 0, \
2680 ._3DCommandSubOpcode = 53
2682 #define GEN9_3DSTATE_GATHER_CONSTANT_GS_length 0x00000000
2684 struct GEN9_3DSTATE_GATHER_CONSTANT_GS
{
2685 uint32_t CommandType
;
2686 uint32_t CommandSubType
;
2687 uint32_t _3DCommandOpcode
;
2688 uint32_t _3DCommandSubOpcode
;
2689 uint32_t DwordLength
;
2690 uint32_t ConstantBufferValid
;
2691 uint32_t ConstantBufferBindingTableBlock
;
2692 #define CommitGather 0
2693 #define NonCommitGather 1
2694 uint32_t UpdateGatherTableOnly
;
2695 uint32_t GatherBufferOffset
;
2696 bool ConstantBufferDx9GenerateStall
;
2699 uint32_t OnDieTable
;
2700 /* variable length fields follow */
2704 GEN9_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2705 const struct GEN9_3DSTATE_GATHER_CONSTANT_GS
* restrict values
)
2707 uint32_t *dw
= (uint32_t * restrict
) dst
;
2710 __gen_field(values
->CommandType
, 29, 31) |
2711 __gen_field(values
->CommandSubType
, 27, 28) |
2712 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2713 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2714 __gen_field(values
->DwordLength
, 0, 7) |
2718 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2719 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2720 __gen_field(values
->UpdateGatherTableOnly
, 1, 1) |
2724 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2725 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2726 __gen_field(values
->OnDieTable
, 3, 3) |
2729 /* variable length fields follow */
2732 #define GEN9_3DSTATE_GATHER_CONSTANT_HS_length_bias 0x00000002
2733 #define GEN9_3DSTATE_GATHER_CONSTANT_HS_header \
2735 .CommandSubType = 3, \
2736 ._3DCommandOpcode = 0, \
2737 ._3DCommandSubOpcode = 54
2739 #define GEN9_3DSTATE_GATHER_CONSTANT_HS_length 0x00000000
2741 struct GEN9_3DSTATE_GATHER_CONSTANT_HS
{
2742 uint32_t CommandType
;
2743 uint32_t CommandSubType
;
2744 uint32_t _3DCommandOpcode
;
2745 uint32_t _3DCommandSubOpcode
;
2746 uint32_t DwordLength
;
2747 uint32_t ConstantBufferValid
;
2748 uint32_t ConstantBufferBindingTableBlock
;
2749 #define CommitGather 0
2750 #define NonCommitGather 1
2751 uint32_t UpdateGatherTableOnly
;
2752 uint32_t GatherBufferOffset
;
2753 bool ConstantBufferDx9GenerateStall
;
2756 uint32_t OnDieTable
;
2757 /* variable length fields follow */
2761 GEN9_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2762 const struct GEN9_3DSTATE_GATHER_CONSTANT_HS
* restrict values
)
2764 uint32_t *dw
= (uint32_t * restrict
) dst
;
2767 __gen_field(values
->CommandType
, 29, 31) |
2768 __gen_field(values
->CommandSubType
, 27, 28) |
2769 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2770 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2771 __gen_field(values
->DwordLength
, 0, 7) |
2775 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2776 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2777 __gen_field(values
->UpdateGatherTableOnly
, 1, 1) |
2781 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2782 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2783 __gen_field(values
->OnDieTable
, 3, 3) |
2786 /* variable length fields follow */
2789 #define GEN9_3DSTATE_GATHER_CONSTANT_PS_length_bias 0x00000002
2790 #define GEN9_3DSTATE_GATHER_CONSTANT_PS_header \
2792 .CommandSubType = 3, \
2793 ._3DCommandOpcode = 0, \
2794 ._3DCommandSubOpcode = 56
2796 #define GEN9_3DSTATE_GATHER_CONSTANT_PS_length 0x00000000
2798 struct GEN9_3DSTATE_GATHER_CONSTANT_PS
{
2799 uint32_t CommandType
;
2800 uint32_t CommandSubType
;
2801 uint32_t _3DCommandOpcode
;
2802 uint32_t _3DCommandSubOpcode
;
2803 uint32_t DwordLength
;
2804 uint32_t ConstantBufferValid
;
2805 uint32_t ConstantBufferBindingTableBlock
;
2806 #define CommitGather 0
2807 #define NonCommitGather 1
2808 uint32_t UpdateGatherTableOnly
;
2809 bool DX9OnDieRegisterReadEnable
;
2810 uint32_t GatherBufferOffset
;
2811 bool ConstantBufferDx9GenerateStall
;
2812 bool ConstantBufferDx9Enable
;
2815 uint32_t OnDieTable
;
2816 /* variable length fields follow */
2820 GEN9_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2821 const struct GEN9_3DSTATE_GATHER_CONSTANT_PS
* restrict values
)
2823 uint32_t *dw
= (uint32_t * restrict
) dst
;
2826 __gen_field(values
->CommandType
, 29, 31) |
2827 __gen_field(values
->CommandSubType
, 27, 28) |
2828 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2829 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2830 __gen_field(values
->DwordLength
, 0, 7) |
2834 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2835 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2836 __gen_field(values
->UpdateGatherTableOnly
, 1, 1) |
2837 __gen_field(values
->DX9OnDieRegisterReadEnable
, 0, 0) |
2841 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2842 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2843 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2844 __gen_field(values
->OnDieTable
, 3, 3) |
2847 /* variable length fields follow */
2850 #define GEN9_3DSTATE_GATHER_CONSTANT_VS_length_bias 0x00000002
2851 #define GEN9_3DSTATE_GATHER_CONSTANT_VS_header \
2853 .CommandSubType = 3, \
2854 ._3DCommandOpcode = 0, \
2855 ._3DCommandSubOpcode = 52
2857 #define GEN9_3DSTATE_GATHER_CONSTANT_VS_length 0x00000000
2859 struct GEN9_3DSTATE_GATHER_CONSTANT_VS
{
2860 uint32_t CommandType
;
2861 uint32_t CommandSubType
;
2862 uint32_t _3DCommandOpcode
;
2863 uint32_t _3DCommandSubOpcode
;
2864 uint32_t DwordLength
;
2865 uint32_t ConstantBufferValid
;
2866 uint32_t ConstantBufferBindingTableBlock
;
2867 #define CommitGather 0
2868 #define NonCommitGather 1
2869 uint32_t UpdateGatherTableOnly
;
2870 bool DX9OnDieRegisterReadEnable
;
2871 uint32_t GatherBufferOffset
;
2872 bool ConstantBufferDx9GenerateStall
;
2873 bool ConstantBufferDx9Enable
;
2876 uint32_t OnDieTable
;
2877 /* variable length fields follow */
2881 GEN9_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2882 const struct GEN9_3DSTATE_GATHER_CONSTANT_VS
* restrict values
)
2884 uint32_t *dw
= (uint32_t * restrict
) dst
;
2887 __gen_field(values
->CommandType
, 29, 31) |
2888 __gen_field(values
->CommandSubType
, 27, 28) |
2889 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2890 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2891 __gen_field(values
->DwordLength
, 0, 7) |
2895 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2896 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2897 __gen_field(values
->UpdateGatherTableOnly
, 1, 1) |
2898 __gen_field(values
->DX9OnDieRegisterReadEnable
, 0, 0) |
2902 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2903 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2904 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2905 __gen_field(values
->OnDieTable
, 3, 3) |
2908 /* variable length fields follow */
2911 #define GEN9_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002
2912 #define GEN9_3DSTATE_GATHER_POOL_ALLOC_header \
2914 .CommandSubType = 3, \
2915 ._3DCommandOpcode = 1, \
2916 ._3DCommandSubOpcode = 26, \
2919 #define GEN9_3DSTATE_GATHER_POOL_ALLOC_length 0x00000004
2921 struct GEN9_3DSTATE_GATHER_POOL_ALLOC
{
2922 uint32_t CommandType
;
2923 uint32_t CommandSubType
;
2924 uint32_t _3DCommandOpcode
;
2925 uint32_t _3DCommandSubOpcode
;
2926 uint32_t DwordLength
;
2927 __gen_address_type GatherPoolBaseAddress
;
2928 bool GatherPoolEnable
;
2929 struct GEN9_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2930 uint32_t GatherPoolBufferSize
;
2934 GEN9_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
2935 const struct GEN9_3DSTATE_GATHER_POOL_ALLOC
* restrict values
)
2937 uint32_t *dw
= (uint32_t * restrict
) dst
;
2940 __gen_field(values
->CommandType
, 29, 31) |
2941 __gen_field(values
->CommandSubType
, 27, 28) |
2942 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2943 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2944 __gen_field(values
->DwordLength
, 0, 7) |
2947 uint32_t dw_MemoryObjectControlState
;
2948 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2950 __gen_field(values
->GatherPoolEnable
, 11, 11) |
2951 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
2955 __gen_combine_address(data
, &dw
[1], values
->GatherPoolBaseAddress
, dw1
);
2961 __gen_field(values
->GatherPoolBufferSize
, 12, 31) |
2966 #define GEN9_3DSTATE_GS_length_bias 0x00000002
2967 #define GEN9_3DSTATE_GS_header \
2969 .CommandSubType = 3, \
2970 ._3DCommandOpcode = 0, \
2971 ._3DCommandSubOpcode = 17, \
2974 #define GEN9_3DSTATE_GS_length 0x0000000a
2976 struct GEN9_3DSTATE_GS
{
2977 uint32_t CommandType
;
2978 uint32_t CommandSubType
;
2979 uint32_t _3DCommandOpcode
;
2980 uint32_t _3DCommandSubOpcode
;
2981 uint32_t DwordLength
;
2982 uint64_t KernelStartPointer
;
2983 uint32_t SingleProgramFlow
;
2986 uint32_t VectorMaskEnable
;
2987 #define NoSamplers 0
2988 #define _14Samplers 1
2989 #define _58Samplers 2
2990 #define _912Samplers 3
2991 #define _1316Samplers 4
2992 uint32_t SamplerCount
;
2993 uint32_t BindingTableEntryCount
;
2996 uint32_t ThreadDispatchPriority
;
2999 uint32_t FloatingPointMode
;
3000 bool IllegalOpcodeExceptionEnable
;
3002 bool MaskStackExceptionEnable
;
3003 bool SoftwareExceptionEnable
;
3004 uint32_t ExpectedVertexCount
;
3005 uint64_t ScratchSpaceBasePointer
;
3006 uint32_t PerThreadScratchSpace
;
3007 uint32_t DispatchGRFStartRegisterForURBData54
;
3008 uint32_t OutputVertexSize
;
3009 uint32_t OutputTopology
;
3010 uint32_t VertexURBEntryReadLength
;
3011 bool IncludeVertexHandles
;
3012 uint32_t VertexURBEntryReadOffset
;
3013 uint32_t DispatchGRFStartRegisterForURBData
;
3014 uint32_t ControlDataHeaderSize
;
3015 uint32_t InstanceControl
;
3016 uint32_t DefaultStreamId
;
3017 #define DispatchModeSingle 0
3018 #define DispatchModeDualInstance 1
3019 #define DispatchModeDualObject 2
3020 #define DispatchModeSIMD8 3
3021 uint32_t DispatchMode
;
3022 bool StatisticsEnable
;
3023 uint32_t InvocationsIncrementValue
;
3024 bool IncludePrimitiveID
;
3028 uint32_t ReorderMode
;
3029 bool DiscardAdjacency
;
3033 uint32_t ControlDataFormat
;
3035 uint32_t StaticOutputVertexCount
;
3036 uint32_t MaximumNumberofThreads
;
3037 uint32_t VertexURBEntryOutputReadOffset
;
3038 uint32_t VertexURBEntryOutputLength
;
3039 uint32_t UserClipDistanceClipTestEnableBitmask
;
3040 uint32_t UserClipDistanceCullTestEnableBitmask
;
3044 GEN9_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3045 const struct GEN9_3DSTATE_GS
* restrict values
)
3047 uint32_t *dw
= (uint32_t * restrict
) dst
;
3050 __gen_field(values
->CommandType
, 29, 31) |
3051 __gen_field(values
->CommandSubType
, 27, 28) |
3052 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3053 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3054 __gen_field(values
->DwordLength
, 0, 7) |
3058 __gen_offset(values
->KernelStartPointer
, 6, 63) |
3065 __gen_field(values
->SingleProgramFlow
, 31, 31) |
3066 __gen_field(values
->VectorMaskEnable
, 30, 30) |
3067 __gen_field(values
->SamplerCount
, 27, 29) |
3068 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3069 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
3070 __gen_field(values
->FloatingPointMode
, 16, 16) |
3071 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3072 __gen_field(values
->AccessesUAV
, 12, 12) |
3073 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
3074 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3075 __gen_field(values
->ExpectedVertexCount
, 0, 5) |
3079 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
3080 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3087 __gen_field(values
->DispatchGRFStartRegisterForURBData54
, 29, 30) |
3088 __gen_field(values
->OutputVertexSize
, 23, 28) |
3089 __gen_field(values
->OutputTopology
, 17, 22) |
3090 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
3091 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
3092 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
3093 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 0, 3) |
3097 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
3098 __gen_field(values
->InstanceControl
, 15, 19) |
3099 __gen_field(values
->DefaultStreamId
, 13, 14) |
3100 __gen_field(values
->DispatchMode
, 11, 12) |
3101 __gen_field(values
->StatisticsEnable
, 10, 10) |
3102 __gen_field(values
->InvocationsIncrementValue
, 5, 9) |
3103 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
3104 __gen_field(values
->Hint
, 3, 3) |
3105 __gen_field(values
->ReorderMode
, 2, 2) |
3106 __gen_field(values
->DiscardAdjacency
, 1, 1) |
3107 __gen_field(values
->Enable
, 0, 0) |
3111 __gen_field(values
->ControlDataFormat
, 31, 31) |
3112 __gen_field(values
->StaticOutput
, 30, 30) |
3113 __gen_field(values
->StaticOutputVertexCount
, 16, 26) |
3114 __gen_field(values
->MaximumNumberofThreads
, 0, 8) |
3118 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
3119 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
3120 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
3121 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
3126 #define GEN9_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
3127 #define GEN9_3DSTATE_HIER_DEPTH_BUFFER_header \
3129 .CommandSubType = 3, \
3130 ._3DCommandOpcode = 0, \
3131 ._3DCommandSubOpcode = 7, \
3134 #define GEN9_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000005
3136 struct GEN9_3DSTATE_HIER_DEPTH_BUFFER
{
3137 uint32_t CommandType
;
3138 uint32_t CommandSubType
;
3139 uint32_t _3DCommandOpcode
;
3140 uint32_t _3DCommandSubOpcode
;
3141 uint32_t DwordLength
;
3142 struct GEN9_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
3143 uint32_t SurfacePitch
;
3144 __gen_address_type SurfaceBaseAddress
;
3145 uint32_t SurfaceQPitch
;
3149 GEN9_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3150 const struct GEN9_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
3152 uint32_t *dw
= (uint32_t * restrict
) dst
;
3155 __gen_field(values
->CommandType
, 29, 31) |
3156 __gen_field(values
->CommandSubType
, 27, 28) |
3157 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3158 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3159 __gen_field(values
->DwordLength
, 0, 7) |
3162 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
3163 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
3165 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 31) |
3166 __gen_field(values
->SurfacePitch
, 0, 16) |
3173 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3179 __gen_field(values
->SurfaceQPitch
, 0, 14) |
3184 #define GEN9_3DSTATE_HS_length_bias 0x00000002
3185 #define GEN9_3DSTATE_HS_header \
3187 .CommandSubType = 3, \
3188 ._3DCommandOpcode = 0, \
3189 ._3DCommandSubOpcode = 27, \
3192 #define GEN9_3DSTATE_HS_length 0x00000009
3194 struct GEN9_3DSTATE_HS
{
3195 uint32_t CommandType
;
3196 uint32_t CommandSubType
;
3197 uint32_t _3DCommandOpcode
;
3198 uint32_t _3DCommandSubOpcode
;
3199 uint32_t DwordLength
;
3200 #define NoSamplers 0
3201 #define _14Samplers 1
3202 #define _58Samplers 2
3203 #define _912Samplers 3
3204 #define _1316Samplers 4
3205 uint32_t SamplerCount
;
3206 uint32_t BindingTableEntryCount
;
3209 uint32_t ThreadDispatchPriority
;
3212 uint32_t FloatingPointMode
;
3213 bool IllegalOpcodeExceptionEnable
;
3214 bool SoftwareExceptionEnable
;
3216 bool StatisticsEnable
;
3217 uint32_t MaximumNumberofThreads
;
3218 uint32_t InstanceCount
;
3219 uint64_t KernelStartPointer
;
3220 uint64_t ScratchSpaceBasePointer
;
3221 uint32_t PerThreadScratchSpace
;
3222 uint32_t DispatchGRFStartRegisterForURBData5
;
3223 bool SingleProgramFlow
;
3226 uint32_t VectorMaskEnable
;
3228 bool IncludeVertexHandles
;
3229 uint32_t DispatchGRFStartRegisterForURBData
;
3230 #define SINGLE_PATCH 0
3231 #define DUAL_PATCH 1
3233 uint32_t DispatchMode
;
3234 uint32_t VertexURBEntryReadLength
;
3235 uint32_t VertexURBEntryReadOffset
;
3236 bool IncludePrimitiveID
;
3240 GEN9_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3241 const struct GEN9_3DSTATE_HS
* restrict values
)
3243 uint32_t *dw
= (uint32_t * restrict
) dst
;
3246 __gen_field(values
->CommandType
, 29, 31) |
3247 __gen_field(values
->CommandSubType
, 27, 28) |
3248 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3249 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3250 __gen_field(values
->DwordLength
, 0, 7) |
3254 __gen_field(values
->SamplerCount
, 27, 29) |
3255 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3256 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
3257 __gen_field(values
->FloatingPointMode
, 16, 16) |
3258 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3259 __gen_field(values
->SoftwareExceptionEnable
, 12, 12) |
3263 __gen_field(values
->Enable
, 31, 31) |
3264 __gen_field(values
->StatisticsEnable
, 29, 29) |
3265 __gen_field(values
->MaximumNumberofThreads
, 8, 16) |
3266 __gen_field(values
->InstanceCount
, 0, 3) |
3270 __gen_offset(values
->KernelStartPointer
, 6, 63) |
3277 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
3278 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3285 __gen_field(values
->DispatchGRFStartRegisterForURBData5
, 28, 28) |
3286 __gen_field(values
->SingleProgramFlow
, 27, 27) |
3287 __gen_field(values
->VectorMaskEnable
, 26, 26) |
3288 __gen_field(values
->AccessesUAV
, 25, 25) |
3289 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
3290 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
3291 __gen_field(values
->DispatchMode
, 17, 18) |
3292 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
3293 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
3294 __gen_field(values
->IncludePrimitiveID
, 0, 0) |
3302 #define GEN9_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
3303 #define GEN9_3DSTATE_INDEX_BUFFER_header \
3305 .CommandSubType = 3, \
3306 ._3DCommandOpcode = 0, \
3307 ._3DCommandSubOpcode = 10, \
3310 #define GEN9_3DSTATE_INDEX_BUFFER_length 0x00000005
3312 struct GEN9_3DSTATE_INDEX_BUFFER
{
3313 uint32_t CommandType
;
3314 uint32_t CommandSubType
;
3315 uint32_t _3DCommandOpcode
;
3316 uint32_t _3DCommandSubOpcode
;
3317 uint32_t DwordLength
;
3318 #define INDEX_BYTE 0
3319 #define INDEX_WORD 1
3320 #define INDEX_DWORD 2
3321 uint32_t IndexFormat
;
3322 struct GEN9_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
3323 __gen_address_type BufferStartingAddress
;
3324 uint32_t BufferSize
;
3328 GEN9_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3329 const struct GEN9_3DSTATE_INDEX_BUFFER
* restrict values
)
3331 uint32_t *dw
= (uint32_t * restrict
) dst
;
3334 __gen_field(values
->CommandType
, 29, 31) |
3335 __gen_field(values
->CommandSubType
, 27, 28) |
3336 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3337 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3338 __gen_field(values
->DwordLength
, 0, 7) |
3341 uint32_t dw_MemoryObjectControlState
;
3342 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
3344 __gen_field(values
->IndexFormat
, 8, 9) |
3345 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
3352 __gen_combine_address(data
, &dw
[2], values
->BufferStartingAddress
, dw2
);
3358 __gen_field(values
->BufferSize
, 0, 31) |
3363 #define GEN9_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
3364 #define GEN9_3DSTATE_LINE_STIPPLE_header \
3366 .CommandSubType = 3, \
3367 ._3DCommandOpcode = 1, \
3368 ._3DCommandSubOpcode = 8, \
3371 #define GEN9_3DSTATE_LINE_STIPPLE_length 0x00000003
3373 struct GEN9_3DSTATE_LINE_STIPPLE
{
3374 uint32_t CommandType
;
3375 uint32_t CommandSubType
;
3376 uint32_t _3DCommandOpcode
;
3377 uint32_t _3DCommandSubOpcode
;
3378 uint32_t DwordLength
;
3379 bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
3380 uint32_t CurrentRepeatCounter
;
3381 uint32_t CurrentStippleIndex
;
3382 uint32_t LineStipplePattern
;
3383 float LineStippleInverseRepeatCount
;
3384 uint32_t LineStippleRepeatCount
;
3388 GEN9_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3389 const struct GEN9_3DSTATE_LINE_STIPPLE
* restrict values
)
3391 uint32_t *dw
= (uint32_t * restrict
) dst
;
3394 __gen_field(values
->CommandType
, 29, 31) |
3395 __gen_field(values
->CommandSubType
, 27, 28) |
3396 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3397 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3398 __gen_field(values
->DwordLength
, 0, 7) |
3402 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
3403 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
3404 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
3405 __gen_field(values
->LineStipplePattern
, 0, 15) |
3409 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
3410 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
3415 #define GEN9_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
3416 #define GEN9_3DSTATE_MONOFILTER_SIZE_header \
3418 .CommandSubType = 3, \
3419 ._3DCommandOpcode = 1, \
3420 ._3DCommandSubOpcode = 17, \
3423 #define GEN9_3DSTATE_MONOFILTER_SIZE_length 0x00000002
3425 struct GEN9_3DSTATE_MONOFILTER_SIZE
{
3426 uint32_t CommandType
;
3427 uint32_t CommandSubType
;
3428 uint32_t _3DCommandOpcode
;
3429 uint32_t _3DCommandSubOpcode
;
3430 uint32_t DwordLength
;
3431 uint32_t MonochromeFilterWidth
;
3432 uint32_t MonochromeFilterHeight
;
3436 GEN9_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
3437 const struct GEN9_3DSTATE_MONOFILTER_SIZE
* restrict values
)
3439 uint32_t *dw
= (uint32_t * restrict
) dst
;
3442 __gen_field(values
->CommandType
, 29, 31) |
3443 __gen_field(values
->CommandSubType
, 27, 28) |
3444 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3445 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3446 __gen_field(values
->DwordLength
, 0, 7) |
3450 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
3451 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
3456 #define GEN9_3DSTATE_MULTISAMPLE_length_bias 0x00000002
3457 #define GEN9_3DSTATE_MULTISAMPLE_header \
3459 .CommandSubType = 3, \
3460 ._3DCommandOpcode = 0, \
3461 ._3DCommandSubOpcode = 13, \
3464 #define GEN9_3DSTATE_MULTISAMPLE_length 0x00000002
3466 struct GEN9_3DSTATE_MULTISAMPLE
{
3467 uint32_t CommandType
;
3468 uint32_t CommandSubType
;
3469 uint32_t _3DCommandOpcode
;
3470 uint32_t _3DCommandSubOpcode
;
3471 uint32_t DwordLength
;
3472 uint32_t PixelPositionOffsetEnable
;
3475 uint32_t PixelLocation
;
3476 uint32_t NumberofMultisamples
;
3480 GEN9_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3481 const struct GEN9_3DSTATE_MULTISAMPLE
* restrict values
)
3483 uint32_t *dw
= (uint32_t * restrict
) dst
;
3486 __gen_field(values
->CommandType
, 29, 31) |
3487 __gen_field(values
->CommandSubType
, 27, 28) |
3488 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3489 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3490 __gen_field(values
->DwordLength
, 0, 7) |
3494 __gen_field(values
->PixelPositionOffsetEnable
, 5, 5) |
3495 __gen_field(values
->PixelLocation
, 4, 4) |
3496 __gen_field(values
->NumberofMultisamples
, 1, 3) |
3501 #define GEN9_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
3502 #define GEN9_3DSTATE_POLY_STIPPLE_OFFSET_header \
3504 .CommandSubType = 3, \
3505 ._3DCommandOpcode = 1, \
3506 ._3DCommandSubOpcode = 6, \
3509 #define GEN9_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
3511 struct GEN9_3DSTATE_POLY_STIPPLE_OFFSET
{
3512 uint32_t CommandType
;
3513 uint32_t CommandSubType
;
3514 uint32_t _3DCommandOpcode
;
3515 uint32_t _3DCommandSubOpcode
;
3516 uint32_t DwordLength
;
3517 uint32_t PolygonStippleXOffset
;
3518 uint32_t PolygonStippleYOffset
;
3522 GEN9_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
3523 const struct GEN9_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
3525 uint32_t *dw
= (uint32_t * restrict
) dst
;
3528 __gen_field(values
->CommandType
, 29, 31) |
3529 __gen_field(values
->CommandSubType
, 27, 28) |
3530 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3531 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3532 __gen_field(values
->DwordLength
, 0, 7) |
3536 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
3537 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
3542 #define GEN9_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
3543 #define GEN9_3DSTATE_POLY_STIPPLE_PATTERN_header\
3545 .CommandSubType = 3, \
3546 ._3DCommandOpcode = 1, \
3547 ._3DCommandSubOpcode = 7, \
3550 #define GEN9_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
3552 struct GEN9_3DSTATE_POLY_STIPPLE_PATTERN
{
3553 uint32_t CommandType
;
3554 uint32_t CommandSubType
;
3555 uint32_t _3DCommandOpcode
;
3556 uint32_t _3DCommandSubOpcode
;
3557 uint32_t DwordLength
;
3558 uint32_t PatternRow
[32];
3562 GEN9_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
3563 const struct GEN9_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
3565 uint32_t *dw
= (uint32_t * restrict
) dst
;
3568 __gen_field(values
->CommandType
, 29, 31) |
3569 __gen_field(values
->CommandSubType
, 27, 28) |
3570 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3571 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3572 __gen_field(values
->DwordLength
, 0, 7) |
3575 for (uint32_t i
= 0, j
= 1; i
< 32; i
+= 1, j
++) {
3577 __gen_field(values
->PatternRow
[i
+ 0], 0, 31) |
3583 #define GEN9_3DSTATE_PS_length_bias 0x00000002
3584 #define GEN9_3DSTATE_PS_header \
3586 .CommandSubType = 3, \
3587 ._3DCommandOpcode = 0, \
3588 ._3DCommandSubOpcode = 32, \
3591 #define GEN9_3DSTATE_PS_length 0x0000000c
3593 struct GEN9_3DSTATE_PS
{
3594 uint32_t CommandType
;
3595 uint32_t CommandSubType
;
3596 uint32_t _3DCommandOpcode
;
3597 uint32_t _3DCommandSubOpcode
;
3598 uint32_t DwordLength
;
3599 uint64_t KernelStartPointer0
;
3602 uint32_t SingleProgramFlow
;
3605 uint32_t VectorMaskEnable
;
3606 #define NoSamplers 0
3607 #define _14Samplers 1
3608 #define _58Samplers 2
3609 #define _912Samplers 3
3610 #define _1316Samplers 4
3611 uint32_t SamplerCount
;
3612 #define FlushedtoZero 0
3614 uint32_t SinglePrecisionDenormalMode
;
3615 uint32_t BindingTableEntryCount
;
3618 uint32_t ThreadDispatchPriority
;
3621 uint32_t FloatingPointMode
;
3626 uint32_t RoundingMode
;
3627 bool IllegalOpcodeExceptionEnable
;
3628 bool MaskStackExceptionEnable
;
3629 bool SoftwareExceptionEnable
;
3630 uint64_t ScratchSpaceBasePointer
;
3631 uint32_t PerThreadScratchSpace
;
3632 uint32_t MaximumNumberofThreadsPerPSD
;
3633 bool PushConstantEnable
;
3634 bool RenderTargetFastClearEnable
;
3635 #define RESOLVE_DISABLED 0
3636 #define RESOLVE_PARTIAL 1
3637 #define RESOLVE_FULL 3
3638 uint32_t RenderTargetResolveType
;
3639 #define POSOFFSET_NONE 0
3640 #define POSOFFSET_CENTROID 2
3641 #define POSOFFSET_SAMPLE 3
3642 uint32_t PositionXYOffsetSelect
;
3643 bool _32PixelDispatchEnable
;
3644 bool _16PixelDispatchEnable
;
3645 bool _8PixelDispatchEnable
;
3646 uint32_t DispatchGRFStartRegisterForConstantSetupData0
;
3647 uint32_t DispatchGRFStartRegisterForConstantSetupData1
;
3648 uint32_t DispatchGRFStartRegisterForConstantSetupData2
;
3649 uint64_t KernelStartPointer1
;
3650 uint64_t KernelStartPointer2
;
3654 GEN9_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3655 const struct GEN9_3DSTATE_PS
* restrict values
)
3657 uint32_t *dw
= (uint32_t * restrict
) dst
;
3660 __gen_field(values
->CommandType
, 29, 31) |
3661 __gen_field(values
->CommandSubType
, 27, 28) |
3662 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3663 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3664 __gen_field(values
->DwordLength
, 0, 7) |
3668 __gen_offset(values
->KernelStartPointer0
, 6, 63) |
3675 __gen_field(values
->SingleProgramFlow
, 31, 31) |
3676 __gen_field(values
->VectorMaskEnable
, 30, 30) |
3677 __gen_field(values
->SamplerCount
, 27, 29) |
3678 __gen_field(values
->SinglePrecisionDenormalMode
, 26, 26) |
3679 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3680 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
3681 __gen_field(values
->FloatingPointMode
, 16, 16) |
3682 __gen_field(values
->RoundingMode
, 14, 15) |
3683 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3684 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
3685 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3689 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
3690 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3697 __gen_field(values
->MaximumNumberofThreadsPerPSD
, 23, 31) |
3698 __gen_field(values
->PushConstantEnable
, 11, 11) |
3699 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
3700 __gen_field(values
->RenderTargetResolveType
, 6, 7) |
3701 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
3702 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
3703 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
3704 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
3708 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData0
, 16, 22) |
3709 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData1
, 8, 14) |
3710 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData2
, 0, 6) |
3714 __gen_offset(values
->KernelStartPointer1
, 6, 63) |
3721 __gen_offset(values
->KernelStartPointer2
, 6, 63) |
3725 dw
[11] = qw10
>> 32;
3729 #define GEN9_3DSTATE_PS_BLEND_length_bias 0x00000002
3730 #define GEN9_3DSTATE_PS_BLEND_header \
3732 .CommandSubType = 3, \
3733 ._3DCommandOpcode = 0, \
3734 ._3DCommandSubOpcode = 77, \
3737 #define GEN9_3DSTATE_PS_BLEND_length 0x00000002
3739 struct GEN9_3DSTATE_PS_BLEND
{
3740 uint32_t CommandType
;
3741 uint32_t CommandSubType
;
3742 uint32_t _3DCommandOpcode
;
3743 uint32_t _3DCommandSubOpcode
;
3744 uint32_t DwordLength
;
3745 bool AlphaToCoverageEnable
;
3746 bool HasWriteableRT
;
3747 bool ColorBufferBlendEnable
;
3748 uint32_t SourceAlphaBlendFactor
;
3749 uint32_t DestinationAlphaBlendFactor
;
3750 uint32_t SourceBlendFactor
;
3751 uint32_t DestinationBlendFactor
;
3752 bool AlphaTestEnable
;
3753 bool IndependentAlphaBlendEnable
;
3757 GEN9_3DSTATE_PS_BLEND_pack(__gen_user_data
*data
, void * restrict dst
,
3758 const struct GEN9_3DSTATE_PS_BLEND
* restrict values
)
3760 uint32_t *dw
= (uint32_t * restrict
) dst
;
3763 __gen_field(values
->CommandType
, 29, 31) |
3764 __gen_field(values
->CommandSubType
, 27, 28) |
3765 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3766 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3767 __gen_field(values
->DwordLength
, 0, 7) |
3771 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
3772 __gen_field(values
->HasWriteableRT
, 30, 30) |
3773 __gen_field(values
->ColorBufferBlendEnable
, 29, 29) |
3774 __gen_field(values
->SourceAlphaBlendFactor
, 24, 28) |
3775 __gen_field(values
->DestinationAlphaBlendFactor
, 19, 23) |
3776 __gen_field(values
->SourceBlendFactor
, 14, 18) |
3777 __gen_field(values
->DestinationBlendFactor
, 9, 13) |
3778 __gen_field(values
->AlphaTestEnable
, 8, 8) |
3779 __gen_field(values
->IndependentAlphaBlendEnable
, 7, 7) |
3784 #define GEN9_3DSTATE_PS_EXTRA_length_bias 0x00000002
3785 #define GEN9_3DSTATE_PS_EXTRA_header \
3787 .CommandSubType = 3, \
3788 ._3DCommandOpcode = 0, \
3789 ._3DCommandSubOpcode = 79, \
3792 #define GEN9_3DSTATE_PS_EXTRA_length 0x00000002
3794 struct GEN9_3DSTATE_PS_EXTRA
{
3795 uint32_t CommandType
;
3796 uint32_t CommandSubType
;
3797 uint32_t _3DCommandOpcode
;
3798 uint32_t _3DCommandSubOpcode
;
3799 uint32_t DwordLength
;
3800 bool PixelShaderValid
;
3801 bool PixelShaderDoesnotwritetoRT
;
3802 bool oMaskPresenttoRenderTarget
;
3803 bool PixelShaderKillsPixel
;
3804 #define PSCDEPTH_OFF 0
3805 #define PSCDEPTH_ON 1
3806 #define PSCDEPTH_ON_GE 2
3807 #define PSCDEPTH_ON_LE 3
3808 uint32_t PixelShaderComputedDepthMode
;
3809 bool ForceComputedDepth
;
3810 bool PixelShaderUsesSourceDepth
;
3811 bool PixelShaderUsesSourceW
;
3813 bool AttributeEnable
;
3814 bool PixelShaderDisablesAlphaToCoverage
;
3815 bool PixelShaderIsPerSample
;
3816 bool PixelShaderComputesStencil
;
3817 bool PixelShaderPullsBary
;
3818 bool PixelShaderHasUAV
;
3820 #define ICMS_NORMAL 1
3821 #define ICMS_INNER_CONSERVATIVE 2
3822 #define ICMS_DEPTH_COVERAGE 3
3823 uint32_t InputCoverageMaskState
;
3827 GEN9_3DSTATE_PS_EXTRA_pack(__gen_user_data
*data
, void * restrict dst
,
3828 const struct GEN9_3DSTATE_PS_EXTRA
* restrict values
)
3830 uint32_t *dw
= (uint32_t * restrict
) dst
;
3833 __gen_field(values
->CommandType
, 29, 31) |
3834 __gen_field(values
->CommandSubType
, 27, 28) |
3835 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3836 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3837 __gen_field(values
->DwordLength
, 0, 7) |
3841 __gen_field(values
->PixelShaderValid
, 31, 31) |
3842 __gen_field(values
->PixelShaderDoesnotwritetoRT
, 30, 30) |
3843 __gen_field(values
->oMaskPresenttoRenderTarget
, 29, 29) |
3844 __gen_field(values
->PixelShaderKillsPixel
, 28, 28) |
3845 __gen_field(values
->PixelShaderComputedDepthMode
, 26, 27) |
3846 __gen_field(values
->ForceComputedDepth
, 25, 25) |
3847 __gen_field(values
->PixelShaderUsesSourceDepth
, 24, 24) |
3848 __gen_field(values
->PixelShaderUsesSourceW
, 23, 23) |
3849 __gen_field(values
->Removed
, 17, 17) |
3850 __gen_field(values
->AttributeEnable
, 8, 8) |
3851 __gen_field(values
->PixelShaderDisablesAlphaToCoverage
, 7, 7) |
3852 __gen_field(values
->PixelShaderIsPerSample
, 6, 6) |
3853 __gen_field(values
->PixelShaderComputesStencil
, 5, 5) |
3854 __gen_field(values
->PixelShaderPullsBary
, 3, 3) |
3855 __gen_field(values
->PixelShaderHasUAV
, 2, 2) |
3856 __gen_field(values
->InputCoverageMaskState
, 0, 1) |
3861 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
3862 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
3864 .CommandSubType = 3, \
3865 ._3DCommandOpcode = 1, \
3866 ._3DCommandSubOpcode = 20, \
3869 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
3871 struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
3872 uint32_t CommandType
;
3873 uint32_t CommandSubType
;
3874 uint32_t _3DCommandOpcode
;
3875 uint32_t _3DCommandSubOpcode
;
3876 uint32_t DwordLength
;
3877 uint32_t ConstantBufferOffset
;
3878 uint32_t ConstantBufferSize
;
3882 GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3883 const struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
3885 uint32_t *dw
= (uint32_t * restrict
) dst
;
3888 __gen_field(values
->CommandType
, 29, 31) |
3889 __gen_field(values
->CommandSubType
, 27, 28) |
3890 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3891 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3892 __gen_field(values
->DwordLength
, 0, 7) |
3896 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3897 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3902 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
3903 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
3905 .CommandSubType = 3, \
3906 ._3DCommandOpcode = 1, \
3907 ._3DCommandSubOpcode = 21, \
3910 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
3912 struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
3913 uint32_t CommandType
;
3914 uint32_t CommandSubType
;
3915 uint32_t _3DCommandOpcode
;
3916 uint32_t _3DCommandSubOpcode
;
3917 uint32_t DwordLength
;
3918 uint32_t ConstantBufferOffset
;
3919 uint32_t ConstantBufferSize
;
3923 GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3924 const struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
3926 uint32_t *dw
= (uint32_t * restrict
) dst
;
3929 __gen_field(values
->CommandType
, 29, 31) |
3930 __gen_field(values
->CommandSubType
, 27, 28) |
3931 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3932 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3933 __gen_field(values
->DwordLength
, 0, 7) |
3937 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3938 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3943 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
3944 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
3946 .CommandSubType = 3, \
3947 ._3DCommandOpcode = 1, \
3948 ._3DCommandSubOpcode = 19, \
3951 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
3953 struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
3954 uint32_t CommandType
;
3955 uint32_t CommandSubType
;
3956 uint32_t _3DCommandOpcode
;
3957 uint32_t _3DCommandSubOpcode
;
3958 uint32_t DwordLength
;
3959 uint32_t ConstantBufferOffset
;
3960 uint32_t ConstantBufferSize
;
3964 GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3965 const struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
3967 uint32_t *dw
= (uint32_t * restrict
) dst
;
3970 __gen_field(values
->CommandType
, 29, 31) |
3971 __gen_field(values
->CommandSubType
, 27, 28) |
3972 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3973 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3974 __gen_field(values
->DwordLength
, 0, 7) |
3978 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3979 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3984 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
3985 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
3987 .CommandSubType = 3, \
3988 ._3DCommandOpcode = 1, \
3989 ._3DCommandSubOpcode = 22, \
3992 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
3994 struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
3995 uint32_t CommandType
;
3996 uint32_t CommandSubType
;
3997 uint32_t _3DCommandOpcode
;
3998 uint32_t _3DCommandSubOpcode
;
3999 uint32_t DwordLength
;
4000 uint32_t ConstantBufferOffset
;
4001 uint32_t ConstantBufferSize
;
4005 GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
4006 const struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
4008 uint32_t *dw
= (uint32_t * restrict
) dst
;
4011 __gen_field(values
->CommandType
, 29, 31) |
4012 __gen_field(values
->CommandSubType
, 27, 28) |
4013 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4014 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4015 __gen_field(values
->DwordLength
, 0, 7) |
4019 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
4020 __gen_field(values
->ConstantBufferSize
, 0, 5) |
4025 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
4026 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
4028 .CommandSubType = 3, \
4029 ._3DCommandOpcode = 1, \
4030 ._3DCommandSubOpcode = 18, \
4033 #define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
4035 struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
4036 uint32_t CommandType
;
4037 uint32_t CommandSubType
;
4038 uint32_t _3DCommandOpcode
;
4039 uint32_t _3DCommandSubOpcode
;
4040 uint32_t DwordLength
;
4041 uint32_t ConstantBufferOffset
;
4042 uint32_t ConstantBufferSize
;
4046 GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4047 const struct GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
4049 uint32_t *dw
= (uint32_t * restrict
) dst
;
4052 __gen_field(values
->CommandType
, 29, 31) |
4053 __gen_field(values
->CommandSubType
, 27, 28) |
4054 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4055 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4056 __gen_field(values
->DwordLength
, 0, 7) |
4060 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
4061 __gen_field(values
->ConstantBufferSize
, 0, 5) |
4066 #define GEN9_3DSTATE_RASTER_length_bias 0x00000002
4067 #define GEN9_3DSTATE_RASTER_header \
4069 .CommandSubType = 3, \
4070 ._3DCommandOpcode = 0, \
4071 ._3DCommandSubOpcode = 80, \
4074 #define GEN9_3DSTATE_RASTER_length 0x00000005
4076 struct GEN9_3DSTATE_RASTER
{
4077 uint32_t CommandType
;
4078 uint32_t CommandSubType
;
4079 uint32_t _3DCommandOpcode
;
4080 uint32_t _3DCommandSubOpcode
;
4081 uint32_t DwordLength
;
4082 bool ViewportZFarClipTestEnable
;
4083 bool ConservativeRasterizationEnable
;
4089 #define CounterClockwise 1
4090 uint32_t FrontWinding
;
4091 #define FSC_NUMRASTSAMPLES_0 0
4092 #define FSC_NUMRASTSAMPLES_1 1
4093 #define FSC_NUMRASTSAMPLES_2 2
4094 #define FSC_NUMRASTSAMPLES_4 3
4095 #define FSC_NUMRASTSAMPLES_8 4
4096 #define FSC_NUMRASTSAMPLES_16 5
4097 uint32_t ForcedSampleCount
;
4098 #define CULLMODE_BOTH 0
4099 #define CULLMODE_NONE 1
4100 #define CULLMODE_FRONT 2
4101 #define CULLMODE_BACK 3
4105 uint32_t ForceMultisampling
;
4106 bool SmoothPointEnable
;
4107 bool DXMultisampleRasterizationEnable
;
4108 #define MSRASTMODE_OFF_PIXEL 0
4109 #define MSRASTMODE_OFF_PATTERN 1
4110 #define MSRASTMODE_ON_PIXEL 2
4111 #define MSRASTMODE_ON_PATTERN 3
4112 uint32_t DXMultisampleRasterizationMode
;
4113 bool GlobalDepthOffsetEnableSolid
;
4114 bool GlobalDepthOffsetEnableWireframe
;
4115 bool GlobalDepthOffsetEnablePoint
;
4116 #define RASTER_SOLID 0
4117 #define RASTER_WIREFRAME 1
4118 #define RASTER_POINT 2
4119 uint32_t FrontFaceFillMode
;
4120 #define RASTER_SOLID 0
4121 #define RASTER_WIREFRAME 1
4122 #define RASTER_POINT 2
4123 uint32_t BackFaceFillMode
;
4124 bool AntialiasingEnable
;
4125 bool ScissorRectangleEnable
;
4126 bool ViewportZNearClipTestEnable
;
4127 float GlobalDepthOffsetConstant
;
4128 float GlobalDepthOffsetScale
;
4129 float GlobalDepthOffsetClamp
;
4133 GEN9_3DSTATE_RASTER_pack(__gen_user_data
*data
, void * restrict dst
,
4134 const struct GEN9_3DSTATE_RASTER
* restrict values
)
4136 uint32_t *dw
= (uint32_t * restrict
) dst
;
4139 __gen_field(values
->CommandType
, 29, 31) |
4140 __gen_field(values
->CommandSubType
, 27, 28) |
4141 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4142 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4143 __gen_field(values
->DwordLength
, 0, 7) |
4147 __gen_field(values
->ViewportZFarClipTestEnable
, 26, 26) |
4148 __gen_field(values
->ConservativeRasterizationEnable
, 24, 24) |
4149 __gen_field(values
->APIMode
, 22, 23) |
4150 __gen_field(values
->FrontWinding
, 21, 21) |
4151 __gen_field(values
->ForcedSampleCount
, 18, 20) |
4152 __gen_field(values
->CullMode
, 16, 17) |
4153 __gen_field(values
->ForceMultisampling
, 14, 14) |
4154 __gen_field(values
->SmoothPointEnable
, 13, 13) |
4155 __gen_field(values
->DXMultisampleRasterizationEnable
, 12, 12) |
4156 __gen_field(values
->DXMultisampleRasterizationMode
, 10, 11) |
4157 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
4158 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
4159 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
4160 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
4161 __gen_field(values
->BackFaceFillMode
, 3, 4) |
4162 __gen_field(values
->AntialiasingEnable
, 2, 2) |
4163 __gen_field(values
->ScissorRectangleEnable
, 1, 1) |
4164 __gen_field(values
->ViewportZNearClipTestEnable
, 0, 0) |
4168 __gen_float(values
->GlobalDepthOffsetConstant
) |
4172 __gen_float(values
->GlobalDepthOffsetScale
) |
4176 __gen_float(values
->GlobalDepthOffsetClamp
) |
4181 #define GEN9_3DSTATE_RS_CONSTANT_POINTER_length_bias 0x00000002
4182 #define GEN9_3DSTATE_RS_CONSTANT_POINTER_header \
4184 .CommandSubType = 3, \
4185 ._3DCommandOpcode = 0, \
4186 ._3DCommandSubOpcode = 84, \
4189 #define GEN9_3DSTATE_RS_CONSTANT_POINTER_length 0x00000004
4191 struct GEN9_3DSTATE_RS_CONSTANT_POINTER
{
4192 uint32_t CommandType
;
4193 uint32_t CommandSubType
;
4194 uint32_t _3DCommandOpcode
;
4195 uint32_t _3DCommandSubOpcode
;
4196 uint32_t DwordLength
;
4199 uint32_t ShaderSelect
;
4202 uint32_t OperationLoadorStore
;
4203 __gen_address_type GlobalConstantBufferAddress
;
4204 __gen_address_type GlobalConstantBufferAddressHigh
;
4208 GEN9_3DSTATE_RS_CONSTANT_POINTER_pack(__gen_user_data
*data
, void * restrict dst
,
4209 const struct GEN9_3DSTATE_RS_CONSTANT_POINTER
* restrict values
)
4211 uint32_t *dw
= (uint32_t * restrict
) dst
;
4214 __gen_field(values
->CommandType
, 29, 31) |
4215 __gen_field(values
->CommandSubType
, 27, 28) |
4216 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4217 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4218 __gen_field(values
->DwordLength
, 0, 7) |
4222 __gen_field(values
->ShaderSelect
, 28, 30) |
4223 __gen_field(values
->OperationLoadorStore
, 12, 12) |
4230 __gen_combine_address(data
, &dw
[2], values
->GlobalConstantBufferAddress
, dw2
);
4236 __gen_combine_address(data
, &dw
[3], values
->GlobalConstantBufferAddressHigh
, dw3
);
4240 #define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
4241 #define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
4243 .CommandSubType = 3, \
4244 ._3DCommandOpcode = 1, \
4245 ._3DCommandSubOpcode = 2
4247 #define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000
4249 #define GEN9_PALETTE_ENTRY_length 0x00000001
4251 struct GEN9_PALETTE_ENTRY
{
4259 GEN9_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
4260 const struct GEN9_PALETTE_ENTRY
* restrict values
)
4262 uint32_t *dw
= (uint32_t * restrict
) dst
;
4265 __gen_field(values
->Alpha
, 24, 31) |
4266 __gen_field(values
->Red
, 16, 23) |
4267 __gen_field(values
->Green
, 8, 15) |
4268 __gen_field(values
->Blue
, 0, 7) |
4273 struct GEN9_3DSTATE_SAMPLER_PALETTE_LOAD0
{
4274 uint32_t CommandType
;
4275 uint32_t CommandSubType
;
4276 uint32_t _3DCommandOpcode
;
4277 uint32_t _3DCommandSubOpcode
;
4278 uint32_t DwordLength
;
4279 /* variable length fields follow */
4283 GEN9_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
4284 const struct GEN9_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
4286 uint32_t *dw
= (uint32_t * restrict
) dst
;
4289 __gen_field(values
->CommandType
, 29, 31) |
4290 __gen_field(values
->CommandSubType
, 27, 28) |
4291 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4292 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4293 __gen_field(values
->DwordLength
, 0, 7) |
4296 /* variable length fields follow */
4299 #define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
4300 #define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
4302 .CommandSubType = 3, \
4303 ._3DCommandOpcode = 1, \
4304 ._3DCommandSubOpcode = 12
4306 #define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000
4308 struct GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1
{
4309 uint32_t CommandType
;
4310 uint32_t CommandSubType
;
4311 uint32_t _3DCommandOpcode
;
4312 uint32_t _3DCommandSubOpcode
;
4313 uint32_t DwordLength
;
4314 /* variable length fields follow */
4318 GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
4319 const struct GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
4321 uint32_t *dw
= (uint32_t * restrict
) dst
;
4324 __gen_field(values
->CommandType
, 29, 31) |
4325 __gen_field(values
->CommandSubType
, 27, 28) |
4326 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4327 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4328 __gen_field(values
->DwordLength
, 0, 7) |
4331 /* variable length fields follow */
4334 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
4335 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
4337 .CommandSubType = 3, \
4338 ._3DCommandOpcode = 0, \
4339 ._3DCommandSubOpcode = 45, \
4342 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
4344 struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
4345 uint32_t CommandType
;
4346 uint32_t CommandSubType
;
4347 uint32_t _3DCommandOpcode
;
4348 uint32_t _3DCommandSubOpcode
;
4349 uint32_t DwordLength
;
4350 uint32_t PointertoDSSamplerState
;
4354 GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
4355 const struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
4357 uint32_t *dw
= (uint32_t * restrict
) dst
;
4360 __gen_field(values
->CommandType
, 29, 31) |
4361 __gen_field(values
->CommandSubType
, 27, 28) |
4362 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4363 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4364 __gen_field(values
->DwordLength
, 0, 7) |
4368 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
4373 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
4374 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
4376 .CommandSubType = 3, \
4377 ._3DCommandOpcode = 0, \
4378 ._3DCommandSubOpcode = 46, \
4381 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
4383 struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
4384 uint32_t CommandType
;
4385 uint32_t CommandSubType
;
4386 uint32_t _3DCommandOpcode
;
4387 uint32_t _3DCommandSubOpcode
;
4388 uint32_t DwordLength
;
4389 uint32_t PointertoGSSamplerState
;
4393 GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
4394 const struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
4396 uint32_t *dw
= (uint32_t * restrict
) dst
;
4399 __gen_field(values
->CommandType
, 29, 31) |
4400 __gen_field(values
->CommandSubType
, 27, 28) |
4401 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4402 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4403 __gen_field(values
->DwordLength
, 0, 7) |
4407 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
4412 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
4413 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
4415 .CommandSubType = 3, \
4416 ._3DCommandOpcode = 0, \
4417 ._3DCommandSubOpcode = 44, \
4420 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
4422 struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
4423 uint32_t CommandType
;
4424 uint32_t CommandSubType
;
4425 uint32_t _3DCommandOpcode
;
4426 uint32_t _3DCommandSubOpcode
;
4427 uint32_t DwordLength
;
4428 uint32_t PointertoHSSamplerState
;
4432 GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
4433 const struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
4435 uint32_t *dw
= (uint32_t * restrict
) dst
;
4438 __gen_field(values
->CommandType
, 29, 31) |
4439 __gen_field(values
->CommandSubType
, 27, 28) |
4440 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4441 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4442 __gen_field(values
->DwordLength
, 0, 7) |
4446 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
4451 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
4452 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
4454 .CommandSubType = 3, \
4455 ._3DCommandOpcode = 0, \
4456 ._3DCommandSubOpcode = 47, \
4459 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
4461 struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
4462 uint32_t CommandType
;
4463 uint32_t CommandSubType
;
4464 uint32_t _3DCommandOpcode
;
4465 uint32_t _3DCommandSubOpcode
;
4466 uint32_t DwordLength
;
4467 uint32_t PointertoPSSamplerState
;
4471 GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
4472 const struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
4474 uint32_t *dw
= (uint32_t * restrict
) dst
;
4477 __gen_field(values
->CommandType
, 29, 31) |
4478 __gen_field(values
->CommandSubType
, 27, 28) |
4479 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4480 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4481 __gen_field(values
->DwordLength
, 0, 7) |
4485 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
4490 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
4491 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
4493 .CommandSubType = 3, \
4494 ._3DCommandOpcode = 0, \
4495 ._3DCommandSubOpcode = 43, \
4498 #define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
4500 struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
4501 uint32_t CommandType
;
4502 uint32_t CommandSubType
;
4503 uint32_t _3DCommandOpcode
;
4504 uint32_t _3DCommandSubOpcode
;
4505 uint32_t DwordLength
;
4506 uint32_t PointertoVSSamplerState
;
4510 GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4511 const struct GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
4513 uint32_t *dw
= (uint32_t * restrict
) dst
;
4516 __gen_field(values
->CommandType
, 29, 31) |
4517 __gen_field(values
->CommandSubType
, 27, 28) |
4518 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4519 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4520 __gen_field(values
->DwordLength
, 0, 7) |
4524 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
4529 #define GEN9_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
4530 #define GEN9_3DSTATE_SAMPLE_MASK_header \
4532 .CommandSubType = 3, \
4533 ._3DCommandOpcode = 0, \
4534 ._3DCommandSubOpcode = 24, \
4537 #define GEN9_3DSTATE_SAMPLE_MASK_length 0x00000002
4539 struct GEN9_3DSTATE_SAMPLE_MASK
{
4540 uint32_t CommandType
;
4541 uint32_t CommandSubType
;
4542 uint32_t _3DCommandOpcode
;
4543 uint32_t _3DCommandSubOpcode
;
4544 uint32_t DwordLength
;
4545 uint32_t SampleMask
;
4549 GEN9_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
4550 const struct GEN9_3DSTATE_SAMPLE_MASK
* restrict values
)
4552 uint32_t *dw
= (uint32_t * restrict
) dst
;
4555 __gen_field(values
->CommandType
, 29, 31) |
4556 __gen_field(values
->CommandSubType
, 27, 28) |
4557 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4558 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4559 __gen_field(values
->DwordLength
, 0, 7) |
4563 __gen_field(values
->SampleMask
, 0, 15) |
4568 #define GEN9_3DSTATE_SAMPLE_PATTERN_length_bias 0x00000002
4569 #define GEN9_3DSTATE_SAMPLE_PATTERN_header \
4571 .CommandSubType = 3, \
4572 ._3DCommandOpcode = 1, \
4573 ._3DCommandSubOpcode = 28, \
4576 #define GEN9_3DSTATE_SAMPLE_PATTERN_length 0x00000009
4578 struct GEN9_3DSTATE_SAMPLE_PATTERN
{
4579 uint32_t CommandType
;
4580 uint32_t CommandSubType
;
4581 uint32_t _3DCommandOpcode
;
4582 uint32_t _3DCommandSubOpcode
;
4583 uint32_t DwordLength
;
4584 float _16xSample3XOffset
;
4585 float _16xSample3YOffset
;
4586 float _16xSample2XOffset
;
4587 float _16xSample2YOffset
;
4588 float _16xSample1XOffset
;
4589 float _16xSample1YOffset
;
4590 float _16xSample0XOffset
;
4591 float _16xSample0YOffset
;
4592 float _16xSample7XOffset
;
4593 float _16xSample7YOffset
;
4594 float _16xSample6XOffset
;
4595 float _16xSample6YOffset
;
4596 float _16xSample5XOffset
;
4597 float _16xSample5YOffset
;
4598 float _16xSample4XOffset
;
4599 float _16xSample4YOffset
;
4600 float _16xSample11XOffset
;
4601 float _16xSample11YOffset
;
4602 float _16xSample10XOffset
;
4603 float _16xSample10YOffset
;
4604 float _16xSample9XOffset
;
4605 float _16xSample9YOffset
;
4606 float _16xSample8XOffset
;
4607 float _16xSample8YOffset
;
4608 float _16xSample15XOffset
;
4609 float _16xSample15YOffset
;
4610 float _16xSample14XOffset
;
4611 float _16xSample14YOffset
;
4612 float _16xSample13XOffset
;
4613 float _16xSample13YOffset
;
4614 float _16xSample12XOffset
;
4615 float _16xSample12YOffset
;
4616 float _8xSample7XOffset
;
4617 float _8xSample7YOffset
;
4618 float _8xSample6XOffset
;
4619 float _8xSample6YOffset
;
4620 float _8xSample5XOffset
;
4621 float _8xSample5YOffset
;
4622 float _8xSample4XOffset
;
4623 float _8xSample4YOffset
;
4624 float _8xSample3XOffset
;
4625 float _8xSample3YOffset
;
4626 float _8xSample2XOffset
;
4627 float _8xSample2YOffset
;
4628 float _8xSample1XOffset
;
4629 float _8xSample1YOffset
;
4630 float _8xSample0XOffset
;
4631 float _8xSample0YOffset
;
4632 float _4xSample3XOffset
;
4633 float _4xSample3YOffset
;
4634 float _4xSample2XOffset
;
4635 float _4xSample2YOffset
;
4636 float _4xSample1XOffset
;
4637 float _4xSample1YOffset
;
4638 float _4xSample0XOffset
;
4639 float _4xSample0YOffset
;
4640 float _1xSample0XOffset
;
4641 float _1xSample0YOffset
;
4642 float _2xSample1XOffset
;
4643 float _2xSample1YOffset
;
4644 float _2xSample0XOffset
;
4645 float _2xSample0YOffset
;
4649 GEN9_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
4650 const struct GEN9_3DSTATE_SAMPLE_PATTERN
* restrict values
)
4652 uint32_t *dw
= (uint32_t * restrict
) dst
;
4655 __gen_field(values
->CommandType
, 29, 31) |
4656 __gen_field(values
->CommandSubType
, 27, 28) |
4657 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4658 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4659 __gen_field(values
->DwordLength
, 0, 7) |
4663 __gen_field(values
->_16xSample3XOffset
* (1 << 4), 28, 31) |
4664 __gen_field(values
->_16xSample3YOffset
* (1 << 4), 24, 27) |
4665 __gen_field(values
->_16xSample2XOffset
* (1 << 4), 20, 23) |
4666 __gen_field(values
->_16xSample2YOffset
* (1 << 4), 16, 19) |
4667 __gen_field(values
->_16xSample1XOffset
* (1 << 4), 12, 15) |
4668 __gen_field(values
->_16xSample1YOffset
* (1 << 4), 8, 11) |
4669 __gen_field(values
->_16xSample0XOffset
* (1 << 4), 4, 7) |
4670 __gen_field(values
->_16xSample0YOffset
* (1 << 4), 0, 3) |
4674 __gen_field(values
->_16xSample7XOffset
* (1 << 4), 28, 31) |
4675 __gen_field(values
->_16xSample7YOffset
* (1 << 4), 24, 27) |
4676 __gen_field(values
->_16xSample6XOffset
* (1 << 4), 20, 23) |
4677 __gen_field(values
->_16xSample6YOffset
* (1 << 4), 16, 19) |
4678 __gen_field(values
->_16xSample5XOffset
* (1 << 4), 12, 15) |
4679 __gen_field(values
->_16xSample5YOffset
* (1 << 4), 8, 11) |
4680 __gen_field(values
->_16xSample4XOffset
* (1 << 4), 4, 7) |
4681 __gen_field(values
->_16xSample4YOffset
* (1 << 4), 0, 3) |
4685 __gen_field(values
->_16xSample11XOffset
* (1 << 4), 28, 31) |
4686 __gen_field(values
->_16xSample11YOffset
* (1 << 4), 24, 27) |
4687 __gen_field(values
->_16xSample10XOffset
* (1 << 4), 20, 23) |
4688 __gen_field(values
->_16xSample10YOffset
* (1 << 4), 16, 19) |
4689 __gen_field(values
->_16xSample9XOffset
* (1 << 4), 12, 15) |
4690 __gen_field(values
->_16xSample9YOffset
* (1 << 4), 8, 11) |
4691 __gen_field(values
->_16xSample8XOffset
* (1 << 4), 4, 7) |
4692 __gen_field(values
->_16xSample8YOffset
* (1 << 4), 0, 3) |
4696 __gen_field(values
->_16xSample15XOffset
* (1 << 4), 28, 31) |
4697 __gen_field(values
->_16xSample15YOffset
* (1 << 4), 24, 27) |
4698 __gen_field(values
->_16xSample14XOffset
* (1 << 4), 20, 23) |
4699 __gen_field(values
->_16xSample14YOffset
* (1 << 4), 16, 19) |
4700 __gen_field(values
->_16xSample13XOffset
* (1 << 4), 12, 15) |
4701 __gen_field(values
->_16xSample13YOffset
* (1 << 4), 8, 11) |
4702 __gen_field(values
->_16xSample12XOffset
* (1 << 4), 4, 7) |
4703 __gen_field(values
->_16xSample12YOffset
* (1 << 4), 0, 3) |
4707 __gen_field(values
->_8xSample7XOffset
* (1 << 4), 28, 31) |
4708 __gen_field(values
->_8xSample7YOffset
* (1 << 4), 24, 27) |
4709 __gen_field(values
->_8xSample6XOffset
* (1 << 4), 20, 23) |
4710 __gen_field(values
->_8xSample6YOffset
* (1 << 4), 16, 19) |
4711 __gen_field(values
->_8xSample5XOffset
* (1 << 4), 12, 15) |
4712 __gen_field(values
->_8xSample5YOffset
* (1 << 4), 8, 11) |
4713 __gen_field(values
->_8xSample4XOffset
* (1 << 4), 4, 7) |
4714 __gen_field(values
->_8xSample4YOffset
* (1 << 4), 0, 3) |
4718 __gen_field(values
->_8xSample3XOffset
* (1 << 4), 28, 31) |
4719 __gen_field(values
->_8xSample3YOffset
* (1 << 4), 24, 27) |
4720 __gen_field(values
->_8xSample2XOffset
* (1 << 4), 20, 23) |
4721 __gen_field(values
->_8xSample2YOffset
* (1 << 4), 16, 19) |
4722 __gen_field(values
->_8xSample1XOffset
* (1 << 4), 12, 15) |
4723 __gen_field(values
->_8xSample1YOffset
* (1 << 4), 8, 11) |
4724 __gen_field(values
->_8xSample0XOffset
* (1 << 4), 4, 7) |
4725 __gen_field(values
->_8xSample0YOffset
* (1 << 4), 0, 3) |
4729 __gen_field(values
->_4xSample3XOffset
* (1 << 4), 28, 31) |
4730 __gen_field(values
->_4xSample3YOffset
* (1 << 4), 24, 27) |
4731 __gen_field(values
->_4xSample2XOffset
* (1 << 4), 20, 23) |
4732 __gen_field(values
->_4xSample2YOffset
* (1 << 4), 16, 19) |
4733 __gen_field(values
->_4xSample1XOffset
* (1 << 4), 12, 15) |
4734 __gen_field(values
->_4xSample1YOffset
* (1 << 4), 8, 11) |
4735 __gen_field(values
->_4xSample0XOffset
* (1 << 4), 4, 7) |
4736 __gen_field(values
->_4xSample0YOffset
* (1 << 4), 0, 3) |
4740 __gen_field(values
->_1xSample0XOffset
* (1 << 4), 20, 23) |
4741 __gen_field(values
->_1xSample0YOffset
* (1 << 4), 16, 19) |
4742 __gen_field(values
->_2xSample1XOffset
* (1 << 4), 12, 15) |
4743 __gen_field(values
->_2xSample1YOffset
* (1 << 4), 8, 11) |
4744 __gen_field(values
->_2xSample0XOffset
* (1 << 4), 4, 7) |
4745 __gen_field(values
->_2xSample0YOffset
* (1 << 4), 0, 3) |
4750 #define GEN9_3DSTATE_SBE_length_bias 0x00000002
4751 #define GEN9_3DSTATE_SBE_header \
4753 .CommandSubType = 3, \
4754 ._3DCommandOpcode = 0, \
4755 ._3DCommandSubOpcode = 31, \
4758 #define GEN9_3DSTATE_SBE_length 0x00000006
4760 struct GEN9_3DSTATE_SBE
{
4761 uint32_t CommandType
;
4762 uint32_t CommandSubType
;
4763 uint32_t _3DCommandOpcode
;
4764 uint32_t _3DCommandSubOpcode
;
4765 uint32_t DwordLength
;
4766 bool ForceVertexURBEntryReadLength
;
4767 bool ForceVertexURBEntryReadOffset
;
4768 uint32_t NumberofSFOutputAttributes
;
4769 bool AttributeSwizzleEnable
;
4772 uint32_t PointSpriteTextureCoordinateOrigin
;
4773 bool PrimitiveIDOverrideComponentW
;
4774 bool PrimitiveIDOverrideComponentZ
;
4775 bool PrimitiveIDOverrideComponentY
;
4776 bool PrimitiveIDOverrideComponentX
;
4777 uint32_t VertexURBEntryReadLength
;
4778 uint32_t VertexURBEntryReadOffset
;
4779 uint32_t PrimitiveIDOverrideAttributeSelect
;
4780 uint32_t PointSpriteTextureCoordinateEnable
;
4781 uint32_t ConstantInterpolationEnable
;
4782 uint32_t Attribute15ActiveComponentFormat
;
4783 uint32_t Attribute14ActiveComponentFormat
;
4784 uint32_t Attribute13ActiveComponentFormat
;
4785 uint32_t Attribute12ActiveComponentFormat
;
4786 uint32_t Attribute11ActiveComponentFormat
;
4787 uint32_t Attribute10ActiveComponentFormat
;
4788 uint32_t Attribute9ActiveComponentFormat
;
4789 uint32_t Attribute8ActiveComponentFormat
;
4790 uint32_t Attribute7ActiveComponentFormat
;
4791 uint32_t Attribute6ActiveComponentFormat
;
4792 uint32_t Attribute5ActiveComponentFormat
;
4793 uint32_t Attribute4ActiveComponentFormat
;
4794 uint32_t Attribute3ActiveComponentFormat
;
4795 uint32_t Attribute2ActiveComponentFormat
;
4796 uint32_t Attribute1ActiveComponentFormat
;
4797 uint32_t Attribute0ActiveComponentFormat
;
4798 uint32_t Attribute31ActiveComponentFormat
;
4799 uint32_t Attribute30ActiveComponentFormat
;
4800 uint32_t Attribute29ActiveComponentFormat
;
4801 uint32_t Attribute28ActiveComponentFormat
;
4802 uint32_t Attribute27ActiveComponentFormat
;
4803 uint32_t Attribute26ActiveComponentFormat
;
4804 uint32_t Attribute25ActiveComponentFormat
;
4805 uint32_t Attribute24ActiveComponentFormat
;
4806 uint32_t Attribute23ActiveComponentFormat
;
4807 uint32_t Attribute22ActiveComponentFormat
;
4808 uint32_t Attribute21ActiveComponentFormat
;
4809 uint32_t Attribute20ActiveComponentFormat
;
4810 uint32_t Attribute19ActiveComponentFormat
;
4811 uint32_t Attribute18ActiveComponentFormat
;
4812 uint32_t Attribute17ActiveComponentFormat
;
4813 uint32_t Attribute16ActiveComponentFormat
;
4817 GEN9_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
4818 const struct GEN9_3DSTATE_SBE
* restrict values
)
4820 uint32_t *dw
= (uint32_t * restrict
) dst
;
4823 __gen_field(values
->CommandType
, 29, 31) |
4824 __gen_field(values
->CommandSubType
, 27, 28) |
4825 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4826 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4827 __gen_field(values
->DwordLength
, 0, 7) |
4831 __gen_field(values
->ForceVertexURBEntryReadLength
, 29, 29) |
4832 __gen_field(values
->ForceVertexURBEntryReadOffset
, 28, 28) |
4833 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
4834 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
4835 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
4836 __gen_field(values
->PrimitiveIDOverrideComponentW
, 19, 19) |
4837 __gen_field(values
->PrimitiveIDOverrideComponentZ
, 18, 18) |
4838 __gen_field(values
->PrimitiveIDOverrideComponentY
, 17, 17) |
4839 __gen_field(values
->PrimitiveIDOverrideComponentX
, 16, 16) |
4840 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
4841 __gen_field(values
->VertexURBEntryReadOffset
, 5, 10) |
4842 __gen_field(values
->PrimitiveIDOverrideAttributeSelect
, 0, 4) |
4846 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
4850 __gen_field(values
->ConstantInterpolationEnable
, 0, 31) |
4854 __gen_field(values
->Attribute15ActiveComponentFormat
, 30, 31) |
4855 __gen_field(values
->Attribute14ActiveComponentFormat
, 28, 29) |
4856 __gen_field(values
->Attribute13ActiveComponentFormat
, 26, 27) |
4857 __gen_field(values
->Attribute12ActiveComponentFormat
, 24, 25) |
4858 __gen_field(values
->Attribute11ActiveComponentFormat
, 22, 23) |
4859 __gen_field(values
->Attribute10ActiveComponentFormat
, 20, 21) |
4860 __gen_field(values
->Attribute9ActiveComponentFormat
, 18, 19) |
4861 __gen_field(values
->Attribute8ActiveComponentFormat
, 16, 17) |
4862 __gen_field(values
->Attribute7ActiveComponentFormat
, 14, 15) |
4863 __gen_field(values
->Attribute6ActiveComponentFormat
, 12, 13) |
4864 __gen_field(values
->Attribute5ActiveComponentFormat
, 10, 11) |
4865 __gen_field(values
->Attribute4ActiveComponentFormat
, 8, 9) |
4866 __gen_field(values
->Attribute3ActiveComponentFormat
, 6, 7) |
4867 __gen_field(values
->Attribute2ActiveComponentFormat
, 4, 5) |
4868 __gen_field(values
->Attribute1ActiveComponentFormat
, 2, 3) |
4869 __gen_field(values
->Attribute0ActiveComponentFormat
, 0, 1) |
4873 __gen_field(values
->Attribute31ActiveComponentFormat
, 30, 31) |
4874 __gen_field(values
->Attribute30ActiveComponentFormat
, 28, 29) |
4875 __gen_field(values
->Attribute29ActiveComponentFormat
, 26, 27) |
4876 __gen_field(values
->Attribute28ActiveComponentFormat
, 24, 25) |
4877 __gen_field(values
->Attribute27ActiveComponentFormat
, 22, 23) |
4878 __gen_field(values
->Attribute26ActiveComponentFormat
, 20, 21) |
4879 __gen_field(values
->Attribute25ActiveComponentFormat
, 18, 19) |
4880 __gen_field(values
->Attribute24ActiveComponentFormat
, 16, 17) |
4881 __gen_field(values
->Attribute23ActiveComponentFormat
, 14, 15) |
4882 __gen_field(values
->Attribute22ActiveComponentFormat
, 12, 13) |
4883 __gen_field(values
->Attribute21ActiveComponentFormat
, 10, 11) |
4884 __gen_field(values
->Attribute20ActiveComponentFormat
, 8, 9) |
4885 __gen_field(values
->Attribute19ActiveComponentFormat
, 6, 7) |
4886 __gen_field(values
->Attribute18ActiveComponentFormat
, 4, 5) |
4887 __gen_field(values
->Attribute17ActiveComponentFormat
, 2, 3) |
4888 __gen_field(values
->Attribute16ActiveComponentFormat
, 0, 1) |
4893 #define GEN9_3DSTATE_SBE_SWIZ_length_bias 0x00000002
4894 #define GEN9_3DSTATE_SBE_SWIZ_header \
4896 .CommandSubType = 3, \
4897 ._3DCommandOpcode = 0, \
4898 ._3DCommandSubOpcode = 81, \
4901 #define GEN9_3DSTATE_SBE_SWIZ_length 0x0000000b
4903 #define GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
4905 struct GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL
{
4906 bool ComponentOverrideW
;
4907 bool ComponentOverrideZ
;
4908 bool ComponentOverrideY
;
4909 bool ComponentOverrideX
;
4910 uint32_t SwizzleControlMode
;
4911 #define CONST_0000 0
4912 #define CONST_0001_FLOAT 1
4913 #define CONST_1111_FLOAT 2
4915 uint32_t ConstantSource
;
4917 #define INPUTATTR_FACING 1
4918 #define INPUTATTR_W 2
4919 #define INPUTATTR_FACING_W 3
4920 uint32_t SwizzleSelect
;
4921 uint32_t SourceAttribute
;
4925 GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(__gen_user_data
*data
, void * restrict dst
,
4926 const struct GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL
* restrict values
)
4928 uint32_t *dw
= (uint32_t * restrict
) dst
;
4931 __gen_field(values
->ComponentOverrideW
, 15, 15) |
4932 __gen_field(values
->ComponentOverrideZ
, 14, 14) |
4933 __gen_field(values
->ComponentOverrideY
, 13, 13) |
4934 __gen_field(values
->ComponentOverrideX
, 12, 12) |
4935 __gen_field(values
->SwizzleControlMode
, 11, 11) |
4936 __gen_field(values
->ConstantSource
, 9, 10) |
4937 __gen_field(values
->SwizzleSelect
, 6, 7) |
4938 __gen_field(values
->SourceAttribute
, 0, 4) |
4943 struct GEN9_3DSTATE_SBE_SWIZ
{
4944 uint32_t CommandType
;
4945 uint32_t CommandSubType
;
4946 uint32_t _3DCommandOpcode
;
4947 uint32_t _3DCommandSubOpcode
;
4948 uint32_t DwordLength
;
4949 struct GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL Attribute
[16];
4950 uint32_t AttributeWrapShortestEnables
[16];
4954 GEN9_3DSTATE_SBE_SWIZ_pack(__gen_user_data
*data
, void * restrict dst
,
4955 const struct GEN9_3DSTATE_SBE_SWIZ
* restrict values
)
4957 uint32_t *dw
= (uint32_t * restrict
) dst
;
4960 __gen_field(values
->CommandType
, 29, 31) |
4961 __gen_field(values
->CommandSubType
, 27, 28) |
4962 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4963 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4964 __gen_field(values
->DwordLength
, 0, 7) |
4967 for (uint32_t i
= 0, j
= 1; i
< 16; i
+= 2, j
++) {
4968 uint32_t dw_Attribute0
;
4969 GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data
, &dw_Attribute0
, &values
->Attribute
[i
+ 0]);
4970 uint32_t dw_Attribute1
;
4971 GEN9_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data
, &dw_Attribute1
, &values
->Attribute
[i
+ 1]);
4973 __gen_field(dw_Attribute0
, 0, 15) |
4974 __gen_field(dw_Attribute1
, 16, 31) |
4978 for (uint32_t i
= 0, j
= 9; i
< 16; i
+= 8, j
++) {
4980 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 0], 0, 3) |
4981 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 1], 4, 7) |
4982 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 2], 8, 11) |
4983 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 3], 12, 15) |
4984 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 4], 16, 19) |
4985 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 5], 20, 23) |
4986 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 6], 24, 27) |
4987 __gen_field(values
->AttributeWrapShortestEnables
[i
+ 7], 28, 31) |
4993 #define GEN9_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
4994 #define GEN9_3DSTATE_SCISSOR_STATE_POINTERS_header\
4996 .CommandSubType = 3, \
4997 ._3DCommandOpcode = 0, \
4998 ._3DCommandSubOpcode = 15, \
5001 #define GEN9_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
5003 struct GEN9_3DSTATE_SCISSOR_STATE_POINTERS
{
5004 uint32_t CommandType
;
5005 uint32_t CommandSubType
;
5006 uint32_t _3DCommandOpcode
;
5007 uint32_t _3DCommandSubOpcode
;
5008 uint32_t DwordLength
;
5009 uint32_t ScissorRectPointer
;
5013 GEN9_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
5014 const struct GEN9_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
5016 uint32_t *dw
= (uint32_t * restrict
) dst
;
5019 __gen_field(values
->CommandType
, 29, 31) |
5020 __gen_field(values
->CommandSubType
, 27, 28) |
5021 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5022 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5023 __gen_field(values
->DwordLength
, 0, 7) |
5027 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
5032 #define GEN9_3DSTATE_SF_length_bias 0x00000002
5033 #define GEN9_3DSTATE_SF_header \
5035 .CommandSubType = 3, \
5036 ._3DCommandOpcode = 0, \
5037 ._3DCommandSubOpcode = 19, \
5040 #define GEN9_3DSTATE_SF_length 0x00000004
5042 struct GEN9_3DSTATE_SF
{
5043 uint32_t CommandType
;
5044 uint32_t CommandSubType
;
5045 uint32_t _3DCommandOpcode
;
5046 uint32_t _3DCommandSubOpcode
;
5047 uint32_t DwordLength
;
5049 bool LegacyGlobalDepthBiasEnable
;
5050 bool StatisticsEnable
;
5051 bool ViewportTransformEnable
;
5056 uint32_t LineEndCapAntialiasingRegionWidth
;
5057 bool LastPixelEnable
;
5058 uint32_t TriangleStripListProvokingVertexSelect
;
5059 uint32_t LineStripListProvokingVertexSelect
;
5060 uint32_t TriangleFanProvokingVertexSelect
;
5061 #define AALINEDISTANCE_TRUE 1
5062 uint32_t AALineDistanceMode
;
5063 bool SmoothPointEnable
;
5064 uint32_t VertexSubPixelPrecisionSelect
;
5067 uint32_t PointWidthSource
;
5072 GEN9_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
5073 const struct GEN9_3DSTATE_SF
* restrict values
)
5075 uint32_t *dw
= (uint32_t * restrict
) dst
;
5078 __gen_field(values
->CommandType
, 29, 31) |
5079 __gen_field(values
->CommandSubType
, 27, 28) |
5080 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5081 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5082 __gen_field(values
->DwordLength
, 0, 7) |
5086 __gen_field(values
->LineWidth
* (1 << 7), 12, 29) |
5087 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
5088 __gen_field(values
->StatisticsEnable
, 10, 10) |
5089 __gen_field(values
->ViewportTransformEnable
, 1, 1) |
5093 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
5097 __gen_field(values
->LastPixelEnable
, 31, 31) |
5098 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
5099 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
5100 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
5101 __gen_field(values
->AALineDistanceMode
, 14, 14) |
5102 __gen_field(values
->SmoothPointEnable
, 13, 13) |
5103 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
5104 __gen_field(values
->PointWidthSource
, 11, 11) |
5105 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
5110 #define GEN9_3DSTATE_SO_BUFFER_length_bias 0x00000002
5111 #define GEN9_3DSTATE_SO_BUFFER_header \
5113 .CommandSubType = 3, \
5114 ._3DCommandOpcode = 1, \
5115 ._3DCommandSubOpcode = 24, \
5118 #define GEN9_3DSTATE_SO_BUFFER_length 0x00000008
5120 struct GEN9_3DSTATE_SO_BUFFER
{
5121 uint32_t CommandType
;
5122 uint32_t CommandSubType
;
5123 uint32_t _3DCommandOpcode
;
5124 uint32_t _3DCommandSubOpcode
;
5125 uint32_t DwordLength
;
5126 bool SOBufferEnable
;
5127 uint32_t SOBufferIndex
;
5128 struct GEN9_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
5129 bool StreamOffsetWriteEnable
;
5130 bool StreamOutputBufferOffsetAddressEnable
;
5131 __gen_address_type SurfaceBaseAddress
;
5132 uint32_t SurfaceSize
;
5133 __gen_address_type StreamOutputBufferOffsetAddress
;
5134 uint32_t StreamOffset
;
5138 GEN9_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
5139 const struct GEN9_3DSTATE_SO_BUFFER
* restrict values
)
5141 uint32_t *dw
= (uint32_t * restrict
) dst
;
5144 __gen_field(values
->CommandType
, 29, 31) |
5145 __gen_field(values
->CommandSubType
, 27, 28) |
5146 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5147 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5148 __gen_field(values
->DwordLength
, 0, 7) |
5151 uint32_t dw_SOBufferObjectControlState
;
5152 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
5154 __gen_field(values
->SOBufferEnable
, 31, 31) |
5155 __gen_field(values
->SOBufferIndex
, 29, 30) |
5156 __gen_field(dw_SOBufferObjectControlState
, 22, 28) |
5157 __gen_field(values
->StreamOffsetWriteEnable
, 21, 21) |
5158 __gen_field(values
->StreamOutputBufferOffsetAddressEnable
, 20, 20) |
5165 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
5171 __gen_field(values
->SurfaceSize
, 0, 29) |
5178 __gen_combine_address(data
, &dw
[5], values
->StreamOutputBufferOffsetAddress
, dw5
);
5184 __gen_field(values
->StreamOffset
, 0, 31) |
5189 #define GEN9_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
5190 #define GEN9_3DSTATE_SO_DECL_LIST_header \
5192 .CommandSubType = 3, \
5193 ._3DCommandOpcode = 1, \
5194 ._3DCommandSubOpcode = 23
5196 #define GEN9_3DSTATE_SO_DECL_LIST_length 0x00000000
5198 #define GEN9_SO_DECL_ENTRY_length 0x00000002
5200 #define GEN9_SO_DECL_length 0x00000001
5202 struct GEN9_SO_DECL
{
5203 uint32_t OutputBufferSlot
;
5205 uint32_t RegisterIndex
;
5206 uint32_t ComponentMask
;
5210 GEN9_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
5211 const struct GEN9_SO_DECL
* restrict values
)
5213 uint32_t *dw
= (uint32_t * restrict
) dst
;
5216 __gen_field(values
->OutputBufferSlot
, 12, 13) |
5217 __gen_field(values
->HoleFlag
, 11, 11) |
5218 __gen_field(values
->RegisterIndex
, 4, 9) |
5219 __gen_field(values
->ComponentMask
, 0, 3) |
5224 struct GEN9_SO_DECL_ENTRY
{
5225 struct GEN9_SO_DECL Stream3Decl
;
5226 struct GEN9_SO_DECL Stream2Decl
;
5227 struct GEN9_SO_DECL Stream1Decl
;
5228 struct GEN9_SO_DECL Stream0Decl
;
5232 GEN9_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
5233 const struct GEN9_SO_DECL_ENTRY
* restrict values
)
5235 uint32_t *dw
= (uint32_t * restrict
) dst
;
5237 uint32_t dw_Stream3Decl
;
5238 GEN9_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
5239 uint32_t dw_Stream2Decl
;
5240 GEN9_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
5241 uint32_t dw_Stream1Decl
;
5242 GEN9_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
5243 uint32_t dw_Stream0Decl
;
5244 GEN9_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
5246 __gen_field(dw_Stream3Decl
, 48, 63) |
5247 __gen_field(dw_Stream2Decl
, 32, 47) |
5248 __gen_field(dw_Stream1Decl
, 16, 31) |
5249 __gen_field(dw_Stream0Decl
, 0, 15) |
5257 struct GEN9_3DSTATE_SO_DECL_LIST
{
5258 uint32_t CommandType
;
5259 uint32_t CommandSubType
;
5260 uint32_t _3DCommandOpcode
;
5261 uint32_t _3DCommandSubOpcode
;
5262 uint32_t DwordLength
;
5263 uint32_t StreamtoBufferSelects3
;
5264 uint32_t StreamtoBufferSelects2
;
5265 uint32_t StreamtoBufferSelects1
;
5266 uint32_t StreamtoBufferSelects0
;
5267 uint32_t NumEntries3
;
5268 uint32_t NumEntries2
;
5269 uint32_t NumEntries1
;
5270 uint32_t NumEntries0
;
5271 /* variable length fields follow */
5275 GEN9_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
5276 const struct GEN9_3DSTATE_SO_DECL_LIST
* 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, 8) |
5289 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
5290 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
5291 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
5292 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
5296 __gen_field(values
->NumEntries3
, 24, 31) |
5297 __gen_field(values
->NumEntries2
, 16, 23) |
5298 __gen_field(values
->NumEntries1
, 8, 15) |
5299 __gen_field(values
->NumEntries0
, 0, 7) |
5302 /* variable length fields follow */
5305 #define GEN9_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
5306 #define GEN9_3DSTATE_STENCIL_BUFFER_header \
5308 .CommandSubType = 3, \
5309 ._3DCommandOpcode = 0, \
5310 ._3DCommandSubOpcode = 6, \
5313 #define GEN9_3DSTATE_STENCIL_BUFFER_length 0x00000005
5315 struct GEN9_3DSTATE_STENCIL_BUFFER
{
5316 uint32_t CommandType
;
5317 uint32_t CommandSubType
;
5318 uint32_t _3DCommandOpcode
;
5319 uint32_t _3DCommandSubOpcode
;
5320 uint32_t DwordLength
;
5321 uint32_t StencilBufferEnable
;
5322 struct GEN9_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
5323 uint32_t SurfacePitch
;
5324 __gen_address_type SurfaceBaseAddress
;
5325 uint32_t SurfaceQPitch
;
5329 GEN9_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
5330 const struct GEN9_3DSTATE_STENCIL_BUFFER
* restrict values
)
5332 uint32_t *dw
= (uint32_t * restrict
) dst
;
5335 __gen_field(values
->CommandType
, 29, 31) |
5336 __gen_field(values
->CommandSubType
, 27, 28) |
5337 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5338 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5339 __gen_field(values
->DwordLength
, 0, 7) |
5342 uint32_t dw_StencilBufferObjectControlState
;
5343 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
5345 __gen_field(values
->StencilBufferEnable
, 31, 31) |
5346 __gen_field(dw_StencilBufferObjectControlState
, 22, 28) |
5347 __gen_field(values
->SurfacePitch
, 0, 16) |
5354 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
5360 __gen_field(values
->SurfaceQPitch
, 0, 14) |
5365 #define GEN9_3DSTATE_STREAMOUT_length_bias 0x00000002
5366 #define GEN9_3DSTATE_STREAMOUT_header \
5368 .CommandSubType = 3, \
5369 ._3DCommandOpcode = 0, \
5370 ._3DCommandSubOpcode = 30, \
5373 #define GEN9_3DSTATE_STREAMOUT_length 0x00000005
5375 struct GEN9_3DSTATE_STREAMOUT
{
5376 uint32_t CommandType
;
5377 uint32_t CommandSubType
;
5378 uint32_t _3DCommandOpcode
;
5379 uint32_t _3DCommandSubOpcode
;
5380 uint32_t DwordLength
;
5381 uint32_t SOFunctionEnable
;
5382 uint32_t APIRenderingDisable
;
5383 uint32_t RenderStreamSelect
;
5386 uint32_t ReorderMode
;
5387 bool SOStatisticsEnable
;
5392 uint32_t ForceRendering
;
5393 uint32_t Stream3VertexReadOffset
;
5394 uint32_t Stream3VertexReadLength
;
5395 uint32_t Stream2VertexReadOffset
;
5396 uint32_t Stream2VertexReadLength
;
5397 uint32_t Stream1VertexReadOffset
;
5398 uint32_t Stream1VertexReadLength
;
5399 uint32_t Stream0VertexReadOffset
;
5400 uint32_t Stream0VertexReadLength
;
5401 uint32_t Buffer1SurfacePitch
;
5402 uint32_t Buffer0SurfacePitch
;
5403 uint32_t Buffer3SurfacePitch
;
5404 uint32_t Buffer2SurfacePitch
;
5408 GEN9_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
5409 const struct GEN9_3DSTATE_STREAMOUT
* restrict values
)
5411 uint32_t *dw
= (uint32_t * restrict
) dst
;
5414 __gen_field(values
->CommandType
, 29, 31) |
5415 __gen_field(values
->CommandSubType
, 27, 28) |
5416 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5417 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5418 __gen_field(values
->DwordLength
, 0, 7) |
5422 __gen_field(values
->SOFunctionEnable
, 31, 31) |
5423 __gen_field(values
->APIRenderingDisable
, 30, 30) |
5424 __gen_field(values
->RenderStreamSelect
, 27, 28) |
5425 __gen_field(values
->ReorderMode
, 26, 26) |
5426 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
5427 __gen_field(values
->ForceRendering
, 23, 24) |
5431 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
5432 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
5433 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
5434 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
5435 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
5436 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
5437 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
5438 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
5442 __gen_field(values
->Buffer1SurfacePitch
, 16, 27) |
5443 __gen_field(values
->Buffer0SurfacePitch
, 0, 11) |
5447 __gen_field(values
->Buffer3SurfacePitch
, 16, 27) |
5448 __gen_field(values
->Buffer2SurfacePitch
, 0, 11) |
5453 #define GEN9_3DSTATE_TE_length_bias 0x00000002
5454 #define GEN9_3DSTATE_TE_header \
5456 .CommandSubType = 3, \
5457 ._3DCommandOpcode = 0, \
5458 ._3DCommandSubOpcode = 28, \
5461 #define GEN9_3DSTATE_TE_length 0x00000004
5463 struct GEN9_3DSTATE_TE
{
5464 uint32_t CommandType
;
5465 uint32_t CommandSubType
;
5466 uint32_t _3DCommandOpcode
;
5467 uint32_t _3DCommandSubOpcode
;
5468 uint32_t DwordLength
;
5470 #define ODD_FRACTIONAL 1
5471 #define EVEN_FRACTIONAL 2
5472 uint32_t Partitioning
;
5474 #define OUTPUT_LINE 1
5475 #define OUTPUT_TRI_CW 2
5476 #define OUTPUT_TRI_CCW 3
5477 uint32_t OutputTopology
;
5485 float MaximumTessellationFactorOdd
;
5486 float MaximumTessellationFactorNotOdd
;
5490 GEN9_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
5491 const struct GEN9_3DSTATE_TE
* restrict values
)
5493 uint32_t *dw
= (uint32_t * restrict
) dst
;
5496 __gen_field(values
->CommandType
, 29, 31) |
5497 __gen_field(values
->CommandSubType
, 27, 28) |
5498 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5499 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5500 __gen_field(values
->DwordLength
, 0, 7) |
5504 __gen_field(values
->Partitioning
, 12, 13) |
5505 __gen_field(values
->OutputTopology
, 8, 9) |
5506 __gen_field(values
->TEDomain
, 4, 5) |
5507 __gen_field(values
->TEMode
, 1, 2) |
5508 __gen_field(values
->TEEnable
, 0, 0) |
5512 __gen_float(values
->MaximumTessellationFactorOdd
) |
5516 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
5521 #define GEN9_3DSTATE_URB_CLEAR_length_bias 0x00000002
5522 #define GEN9_3DSTATE_URB_CLEAR_header \
5524 .CommandSubType = 3, \
5525 ._3DCommandOpcode = 1, \
5526 ._3DCommandSubOpcode = 29, \
5529 #define GEN9_3DSTATE_URB_CLEAR_length 0x00000002
5531 struct GEN9_3DSTATE_URB_CLEAR
{
5532 uint32_t CommandType
;
5533 uint32_t CommandSubType
;
5534 uint32_t _3DCommandOpcode
;
5535 uint32_t _3DCommandSubOpcode
;
5536 uint32_t DwordLength
;
5537 uint32_t URBClearLength
;
5538 uint32_t URBAddress
;
5542 GEN9_3DSTATE_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
5543 const struct GEN9_3DSTATE_URB_CLEAR
* restrict values
)
5545 uint32_t *dw
= (uint32_t * restrict
) dst
;
5548 __gen_field(values
->CommandType
, 29, 31) |
5549 __gen_field(values
->CommandSubType
, 27, 28) |
5550 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5551 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5552 __gen_field(values
->DwordLength
, 0, 7) |
5556 __gen_field(values
->URBClearLength
, 16, 29) |
5557 __gen_offset(values
->URBAddress
, 0, 14) |
5562 #define GEN9_3DSTATE_URB_DS_length_bias 0x00000002
5563 #define GEN9_3DSTATE_URB_DS_header \
5565 .CommandSubType = 3, \
5566 ._3DCommandOpcode = 0, \
5567 ._3DCommandSubOpcode = 50, \
5570 #define GEN9_3DSTATE_URB_DS_length 0x00000002
5572 struct GEN9_3DSTATE_URB_DS
{
5573 uint32_t CommandType
;
5574 uint32_t CommandSubType
;
5575 uint32_t _3DCommandOpcode
;
5576 uint32_t _3DCommandSubOpcode
;
5577 uint32_t DwordLength
;
5578 uint32_t DSURBStartingAddress
;
5579 uint32_t DSURBEntryAllocationSize
;
5580 uint32_t DSNumberofURBEntries
;
5584 GEN9_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
5585 const struct GEN9_3DSTATE_URB_DS
* restrict values
)
5587 uint32_t *dw
= (uint32_t * restrict
) dst
;
5590 __gen_field(values
->CommandType
, 29, 31) |
5591 __gen_field(values
->CommandSubType
, 27, 28) |
5592 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5593 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5594 __gen_field(values
->DwordLength
, 0, 7) |
5598 __gen_field(values
->DSURBStartingAddress
, 25, 31) |
5599 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
5600 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
5605 #define GEN9_3DSTATE_URB_GS_length_bias 0x00000002
5606 #define GEN9_3DSTATE_URB_GS_header \
5608 .CommandSubType = 3, \
5609 ._3DCommandOpcode = 0, \
5610 ._3DCommandSubOpcode = 51, \
5613 #define GEN9_3DSTATE_URB_GS_length 0x00000002
5615 struct GEN9_3DSTATE_URB_GS
{
5616 uint32_t CommandType
;
5617 uint32_t CommandSubType
;
5618 uint32_t _3DCommandOpcode
;
5619 uint32_t _3DCommandSubOpcode
;
5620 uint32_t DwordLength
;
5621 uint32_t GSURBStartingAddress
;
5622 uint32_t GSURBEntryAllocationSize
;
5623 uint32_t GSNumberofURBEntries
;
5627 GEN9_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
5628 const struct GEN9_3DSTATE_URB_GS
* restrict values
)
5630 uint32_t *dw
= (uint32_t * restrict
) dst
;
5633 __gen_field(values
->CommandType
, 29, 31) |
5634 __gen_field(values
->CommandSubType
, 27, 28) |
5635 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5636 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5637 __gen_field(values
->DwordLength
, 0, 7) |
5641 __gen_field(values
->GSURBStartingAddress
, 25, 31) |
5642 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
5643 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
5648 #define GEN9_3DSTATE_URB_HS_length_bias 0x00000002
5649 #define GEN9_3DSTATE_URB_HS_header \
5651 .CommandSubType = 3, \
5652 ._3DCommandOpcode = 0, \
5653 ._3DCommandSubOpcode = 49, \
5656 #define GEN9_3DSTATE_URB_HS_length 0x00000002
5658 struct GEN9_3DSTATE_URB_HS
{
5659 uint32_t CommandType
;
5660 uint32_t CommandSubType
;
5661 uint32_t _3DCommandOpcode
;
5662 uint32_t _3DCommandSubOpcode
;
5663 uint32_t DwordLength
;
5664 uint32_t HSURBStartingAddress
;
5665 uint32_t HSURBEntryAllocationSize
;
5666 uint32_t HSNumberofURBEntries
;
5670 GEN9_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
5671 const struct GEN9_3DSTATE_URB_HS
* restrict values
)
5673 uint32_t *dw
= (uint32_t * restrict
) dst
;
5676 __gen_field(values
->CommandType
, 29, 31) |
5677 __gen_field(values
->CommandSubType
, 27, 28) |
5678 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5679 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5680 __gen_field(values
->DwordLength
, 0, 7) |
5684 __gen_field(values
->HSURBStartingAddress
, 25, 31) |
5685 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
5686 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
5691 #define GEN9_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
5692 #define GEN9_3DSTATE_VERTEX_BUFFERS_header \
5694 .CommandSubType = 3, \
5695 ._3DCommandOpcode = 0, \
5696 ._3DCommandSubOpcode = 8
5698 #define GEN9_3DSTATE_VERTEX_BUFFERS_length 0x00000000
5700 #define GEN9_VERTEX_BUFFER_STATE_length 0x00000004
5702 struct GEN9_VERTEX_BUFFER_STATE
{
5703 uint32_t VertexBufferIndex
;
5704 struct GEN9_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
5705 uint32_t AddressModifyEnable
;
5706 bool NullVertexBuffer
;
5707 uint32_t BufferPitch
;
5708 __gen_address_type BufferStartingAddress
;
5709 uint32_t BufferSize
;
5713 GEN9_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5714 const struct GEN9_VERTEX_BUFFER_STATE
* restrict values
)
5716 uint32_t *dw
= (uint32_t * restrict
) dst
;
5718 uint32_t dw_MemoryObjectControlState
;
5719 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
5721 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5722 __gen_field(dw_MemoryObjectControlState
, 16, 22) |
5723 __gen_field(values
->AddressModifyEnable
, 14, 14) |
5724 __gen_field(values
->NullVertexBuffer
, 13, 13) |
5725 __gen_field(values
->BufferPitch
, 0, 11) |
5732 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
5738 __gen_field(values
->BufferSize
, 0, 31) |
5743 struct GEN9_3DSTATE_VERTEX_BUFFERS
{
5744 uint32_t CommandType
;
5745 uint32_t CommandSubType
;
5746 uint32_t _3DCommandOpcode
;
5747 uint32_t _3DCommandSubOpcode
;
5748 uint32_t DwordLength
;
5749 /* variable length fields follow */
5753 GEN9_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
5754 const struct GEN9_3DSTATE_VERTEX_BUFFERS
* restrict values
)
5756 uint32_t *dw
= (uint32_t * restrict
) dst
;
5759 __gen_field(values
->CommandType
, 29, 31) |
5760 __gen_field(values
->CommandSubType
, 27, 28) |
5761 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5762 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5763 __gen_field(values
->DwordLength
, 0, 7) |
5766 /* variable length fields follow */
5769 #define GEN9_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
5770 #define GEN9_3DSTATE_VERTEX_ELEMENTS_header \
5772 .CommandSubType = 3, \
5773 ._3DCommandOpcode = 0, \
5774 ._3DCommandSubOpcode = 9
5776 #define GEN9_3DSTATE_VERTEX_ELEMENTS_length 0x00000000
5778 #define GEN9_VERTEX_ELEMENT_STATE_length 0x00000002
5780 struct GEN9_VERTEX_ELEMENT_STATE
{
5781 uint32_t VertexBufferIndex
;
5783 uint32_t SourceElementFormat
;
5784 bool EdgeFlagEnable
;
5785 uint32_t SourceElementOffset
;
5786 uint32_t Component0Control
;
5787 uint32_t Component1Control
;
5788 uint32_t Component2Control
;
5789 uint32_t Component3Control
;
5793 GEN9_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5794 const struct GEN9_VERTEX_ELEMENT_STATE
* restrict values
)
5796 uint32_t *dw
= (uint32_t * restrict
) dst
;
5799 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5800 __gen_field(values
->Valid
, 25, 25) |
5801 __gen_field(values
->SourceElementFormat
, 16, 24) |
5802 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
5803 __gen_field(values
->SourceElementOffset
, 0, 11) |
5807 __gen_field(values
->Component0Control
, 28, 30) |
5808 __gen_field(values
->Component1Control
, 24, 26) |
5809 __gen_field(values
->Component2Control
, 20, 22) |
5810 __gen_field(values
->Component3Control
, 16, 18) |
5815 struct GEN9_3DSTATE_VERTEX_ELEMENTS
{
5816 uint32_t CommandType
;
5817 uint32_t CommandSubType
;
5818 uint32_t _3DCommandOpcode
;
5819 uint32_t _3DCommandSubOpcode
;
5820 uint32_t DwordLength
;
5821 /* variable length fields follow */
5825 GEN9_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
5826 const struct GEN9_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
5828 uint32_t *dw
= (uint32_t * restrict
) dst
;
5831 __gen_field(values
->CommandType
, 29, 31) |
5832 __gen_field(values
->CommandSubType
, 27, 28) |
5833 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5834 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5835 __gen_field(values
->DwordLength
, 0, 7) |
5838 /* variable length fields follow */
5841 #define GEN9_3DSTATE_VF_length_bias 0x00000002
5842 #define GEN9_3DSTATE_VF_header \
5844 .CommandSubType = 3, \
5845 ._3DCommandOpcode = 0, \
5846 ._3DCommandSubOpcode = 12, \
5849 #define GEN9_3DSTATE_VF_length 0x00000002
5851 struct GEN9_3DSTATE_VF
{
5852 uint32_t CommandType
;
5853 uint32_t CommandSubType
;
5854 uint32_t _3DCommandOpcode
;
5855 uint32_t _3DCommandSubOpcode
;
5856 bool SequentialDrawCutIndexEnable
;
5857 bool ComponentPackingEnable
;
5858 bool IndexedDrawCutIndexEnable
;
5859 uint32_t DwordLength
;
5864 GEN9_3DSTATE_VF_pack(__gen_user_data
*data
, void * restrict dst
,
5865 const struct GEN9_3DSTATE_VF
* restrict values
)
5867 uint32_t *dw
= (uint32_t * restrict
) dst
;
5870 __gen_field(values
->CommandType
, 29, 31) |
5871 __gen_field(values
->CommandSubType
, 27, 28) |
5872 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5873 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5874 __gen_field(values
->SequentialDrawCutIndexEnable
, 10, 10) |
5875 __gen_field(values
->ComponentPackingEnable
, 9, 9) |
5876 __gen_field(values
->IndexedDrawCutIndexEnable
, 8, 8) |
5877 __gen_field(values
->DwordLength
, 0, 7) |
5881 __gen_field(values
->CutIndex
, 0, 31) |
5886 #define GEN9_3DSTATE_VF_COMPONENT_PACKING_length_bias 0x00000002
5887 #define GEN9_3DSTATE_VF_COMPONENT_PACKING_header\
5889 .CommandSubType = 3, \
5890 ._3DCommandOpcode = 0, \
5891 ._3DCommandSubOpcode = 85, \
5894 #define GEN9_3DSTATE_VF_COMPONENT_PACKING_length 0x00000005
5896 struct GEN9_3DSTATE_VF_COMPONENT_PACKING
{
5897 uint32_t CommandType
;
5898 uint32_t CommandSubType
;
5899 uint32_t _3DCommandOpcode
;
5900 uint32_t _3DCommandSubOpcode
;
5901 uint32_t DwordLength
;
5902 uint32_t VertexElement07Enables
;
5903 uint32_t VertexElement06Enables
;
5904 uint32_t VertexElement05Enables
;
5905 uint32_t VertexElement04Enables
;
5906 uint32_t VertexElement03Enables
;
5907 uint32_t VertexElement02Enables
;
5908 uint32_t VertexElement01Enables
;
5909 uint32_t VertexElement00Enables
;
5910 uint32_t VertexElement15Enables
;
5911 uint32_t VertexElement14Enables
;
5912 uint32_t VertexElement13Enables
;
5913 uint32_t VertexElement12Enables
;
5914 uint32_t VertexElement11Enables
;
5915 uint32_t VertexElement10Enables
;
5916 uint32_t VertexElement09Enables
;
5917 uint32_t VertexElement08Enables
;
5918 uint32_t VertexElement23Enables
;
5919 uint32_t VertexElement22Enables
;
5920 uint32_t VertexElement21Enables
;
5921 uint32_t VertexElement20Enables
;
5922 uint32_t VertexElement19Enables
;
5923 uint32_t VertexElement18Enables
;
5924 uint32_t VertexElement17Enables
;
5925 uint32_t VertexElement16Enables
;
5926 uint32_t VertexElement31Enables
;
5927 uint32_t VertexElement30Enables
;
5928 uint32_t VertexElement29Enables
;
5929 uint32_t VertexElement28Enables
;
5930 uint32_t VertexElement27Enables
;
5931 uint32_t VertexElement26Enables
;
5932 uint32_t VertexElement25Enables
;
5933 uint32_t VertexElement24Enables
;
5937 GEN9_3DSTATE_VF_COMPONENT_PACKING_pack(__gen_user_data
*data
, void * restrict dst
,
5938 const struct GEN9_3DSTATE_VF_COMPONENT_PACKING
* restrict values
)
5940 uint32_t *dw
= (uint32_t * restrict
) dst
;
5943 __gen_field(values
->CommandType
, 29, 31) |
5944 __gen_field(values
->CommandSubType
, 27, 28) |
5945 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5946 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5947 __gen_field(values
->DwordLength
, 0, 7) |
5951 __gen_field(values
->VertexElement07Enables
, 28, 31) |
5952 __gen_field(values
->VertexElement06Enables
, 24, 27) |
5953 __gen_field(values
->VertexElement05Enables
, 20, 23) |
5954 __gen_field(values
->VertexElement04Enables
, 16, 19) |
5955 __gen_field(values
->VertexElement03Enables
, 12, 15) |
5956 __gen_field(values
->VertexElement02Enables
, 8, 11) |
5957 __gen_field(values
->VertexElement01Enables
, 4, 7) |
5958 __gen_field(values
->VertexElement00Enables
, 0, 3) |
5962 __gen_field(values
->VertexElement15Enables
, 28, 31) |
5963 __gen_field(values
->VertexElement14Enables
, 24, 27) |
5964 __gen_field(values
->VertexElement13Enables
, 20, 23) |
5965 __gen_field(values
->VertexElement12Enables
, 16, 19) |
5966 __gen_field(values
->VertexElement11Enables
, 12, 15) |
5967 __gen_field(values
->VertexElement10Enables
, 8, 11) |
5968 __gen_field(values
->VertexElement09Enables
, 4, 7) |
5969 __gen_field(values
->VertexElement08Enables
, 0, 3) |
5973 __gen_field(values
->VertexElement23Enables
, 28, 31) |
5974 __gen_field(values
->VertexElement22Enables
, 24, 27) |
5975 __gen_field(values
->VertexElement21Enables
, 20, 23) |
5976 __gen_field(values
->VertexElement20Enables
, 16, 19) |
5977 __gen_field(values
->VertexElement19Enables
, 12, 15) |
5978 __gen_field(values
->VertexElement18Enables
, 8, 11) |
5979 __gen_field(values
->VertexElement17Enables
, 4, 7) |
5980 __gen_field(values
->VertexElement16Enables
, 0, 3) |
5984 __gen_field(values
->VertexElement31Enables
, 28, 31) |
5985 __gen_field(values
->VertexElement30Enables
, 24, 27) |
5986 __gen_field(values
->VertexElement29Enables
, 20, 23) |
5987 __gen_field(values
->VertexElement28Enables
, 16, 19) |
5988 __gen_field(values
->VertexElement27Enables
, 12, 15) |
5989 __gen_field(values
->VertexElement26Enables
, 8, 11) |
5990 __gen_field(values
->VertexElement25Enables
, 4, 7) |
5991 __gen_field(values
->VertexElement24Enables
, 0, 3) |
5996 #define GEN9_3DSTATE_VF_INSTANCING_length_bias 0x00000002
5997 #define GEN9_3DSTATE_VF_INSTANCING_header \
5999 .CommandSubType = 3, \
6000 ._3DCommandOpcode = 0, \
6001 ._3DCommandSubOpcode = 73, \
6004 #define GEN9_3DSTATE_VF_INSTANCING_length 0x00000003
6006 struct GEN9_3DSTATE_VF_INSTANCING
{
6007 uint32_t CommandType
;
6008 uint32_t CommandSubType
;
6009 uint32_t _3DCommandOpcode
;
6010 uint32_t _3DCommandSubOpcode
;
6011 uint32_t DwordLength
;
6012 bool InstancingEnable
;
6013 uint32_t VertexElementIndex
;
6014 uint32_t InstanceDataStepRate
;
6018 GEN9_3DSTATE_VF_INSTANCING_pack(__gen_user_data
*data
, void * restrict dst
,
6019 const struct GEN9_3DSTATE_VF_INSTANCING
* restrict values
)
6021 uint32_t *dw
= (uint32_t * restrict
) dst
;
6024 __gen_field(values
->CommandType
, 29, 31) |
6025 __gen_field(values
->CommandSubType
, 27, 28) |
6026 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6027 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6028 __gen_field(values
->DwordLength
, 0, 7) |
6032 __gen_field(values
->InstancingEnable
, 8, 8) |
6033 __gen_field(values
->VertexElementIndex
, 0, 5) |
6037 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
6042 #define GEN9_3DSTATE_VF_SGVS_length_bias 0x00000002
6043 #define GEN9_3DSTATE_VF_SGVS_header \
6045 .CommandSubType = 3, \
6046 ._3DCommandOpcode = 0, \
6047 ._3DCommandSubOpcode = 74, \
6050 #define GEN9_3DSTATE_VF_SGVS_length 0x00000002
6052 struct GEN9_3DSTATE_VF_SGVS
{
6053 uint32_t CommandType
;
6054 uint32_t CommandSubType
;
6055 uint32_t _3DCommandOpcode
;
6056 uint32_t _3DCommandSubOpcode
;
6057 uint32_t DwordLength
;
6058 bool InstanceIDEnable
;
6063 uint32_t InstanceIDComponentNumber
;
6064 uint32_t InstanceIDElementOffset
;
6065 bool VertexIDEnable
;
6070 uint32_t VertexIDComponentNumber
;
6071 uint32_t VertexIDElementOffset
;
6075 GEN9_3DSTATE_VF_SGVS_pack(__gen_user_data
*data
, void * restrict dst
,
6076 const struct GEN9_3DSTATE_VF_SGVS
* restrict values
)
6078 uint32_t *dw
= (uint32_t * restrict
) dst
;
6081 __gen_field(values
->CommandType
, 29, 31) |
6082 __gen_field(values
->CommandSubType
, 27, 28) |
6083 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6084 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6085 __gen_field(values
->DwordLength
, 0, 7) |
6089 __gen_field(values
->InstanceIDEnable
, 31, 31) |
6090 __gen_field(values
->InstanceIDComponentNumber
, 29, 30) |
6091 __gen_field(values
->InstanceIDElementOffset
, 16, 21) |
6092 __gen_field(values
->VertexIDEnable
, 15, 15) |
6093 __gen_field(values
->VertexIDComponentNumber
, 13, 14) |
6094 __gen_field(values
->VertexIDElementOffset
, 0, 5) |
6099 #define GEN9_3DSTATE_VF_STATISTICS_length_bias 0x00000001
6100 #define GEN9_3DSTATE_VF_STATISTICS_header \
6102 .CommandSubType = 1, \
6103 ._3DCommandOpcode = 0, \
6104 ._3DCommandSubOpcode = 11
6106 #define GEN9_3DSTATE_VF_STATISTICS_length 0x00000001
6108 struct GEN9_3DSTATE_VF_STATISTICS
{
6109 uint32_t CommandType
;
6110 uint32_t CommandSubType
;
6111 uint32_t _3DCommandOpcode
;
6112 uint32_t _3DCommandSubOpcode
;
6113 bool StatisticsEnable
;
6117 GEN9_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
6118 const struct GEN9_3DSTATE_VF_STATISTICS
* restrict values
)
6120 uint32_t *dw
= (uint32_t * restrict
) dst
;
6123 __gen_field(values
->CommandType
, 29, 31) |
6124 __gen_field(values
->CommandSubType
, 27, 28) |
6125 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6126 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6127 __gen_field(values
->StatisticsEnable
, 0, 0) |
6132 #define GEN9_3DSTATE_VF_TOPOLOGY_length_bias 0x00000002
6133 #define GEN9_3DSTATE_VF_TOPOLOGY_header \
6135 .CommandSubType = 3, \
6136 ._3DCommandOpcode = 0, \
6137 ._3DCommandSubOpcode = 75, \
6140 #define GEN9_3DSTATE_VF_TOPOLOGY_length 0x00000002
6142 struct GEN9_3DSTATE_VF_TOPOLOGY
{
6143 uint32_t CommandType
;
6144 uint32_t CommandSubType
;
6145 uint32_t _3DCommandOpcode
;
6146 uint32_t _3DCommandSubOpcode
;
6147 uint32_t DwordLength
;
6148 uint32_t PrimitiveTopologyType
;
6152 GEN9_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data
*data
, void * restrict dst
,
6153 const struct GEN9_3DSTATE_VF_TOPOLOGY
* restrict values
)
6155 uint32_t *dw
= (uint32_t * restrict
) dst
;
6158 __gen_field(values
->CommandType
, 29, 31) |
6159 __gen_field(values
->CommandSubType
, 27, 28) |
6160 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6161 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6162 __gen_field(values
->DwordLength
, 0, 7) |
6166 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
6171 #define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
6172 #define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
6174 .CommandSubType = 3, \
6175 ._3DCommandOpcode = 0, \
6176 ._3DCommandSubOpcode = 35, \
6179 #define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
6181 struct GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
6182 uint32_t CommandType
;
6183 uint32_t CommandSubType
;
6184 uint32_t _3DCommandOpcode
;
6185 uint32_t _3DCommandSubOpcode
;
6186 uint32_t DwordLength
;
6187 uint32_t CCViewportPointer
;
6191 GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
6192 const struct GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
6194 uint32_t *dw
= (uint32_t * restrict
) dst
;
6197 __gen_field(values
->CommandType
, 29, 31) |
6198 __gen_field(values
->CommandSubType
, 27, 28) |
6199 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6200 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6201 __gen_field(values
->DwordLength
, 0, 7) |
6205 __gen_offset(values
->CCViewportPointer
, 5, 31) |
6210 #define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
6211 #define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
6213 .CommandSubType = 3, \
6214 ._3DCommandOpcode = 0, \
6215 ._3DCommandSubOpcode = 33, \
6218 #define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
6220 struct GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
6221 uint32_t CommandType
;
6222 uint32_t CommandSubType
;
6223 uint32_t _3DCommandOpcode
;
6224 uint32_t _3DCommandSubOpcode
;
6225 uint32_t DwordLength
;
6226 uint32_t SFClipViewportPointer
;
6230 GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
6231 const struct GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
6233 uint32_t *dw
= (uint32_t * restrict
) dst
;
6236 __gen_field(values
->CommandType
, 29, 31) |
6237 __gen_field(values
->CommandSubType
, 27, 28) |
6238 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6239 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6240 __gen_field(values
->DwordLength
, 0, 7) |
6244 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
6249 #define GEN9_3DSTATE_WM_length_bias 0x00000002
6250 #define GEN9_3DSTATE_WM_header \
6252 .CommandSubType = 3, \
6253 ._3DCommandOpcode = 0, \
6254 ._3DCommandSubOpcode = 20, \
6257 #define GEN9_3DSTATE_WM_length 0x00000002
6259 struct GEN9_3DSTATE_WM
{
6260 uint32_t CommandType
;
6261 uint32_t CommandSubType
;
6262 uint32_t _3DCommandOpcode
;
6263 uint32_t _3DCommandSubOpcode
;
6264 uint32_t DwordLength
;
6265 bool StatisticsEnable
;
6266 bool LegacyDepthBufferClearEnable
;
6267 bool LegacyDepthBufferResolveEnable
;
6268 bool LegacyHierarchicalDepthBufferResolveEnable
;
6269 bool LegacyDiamondLineRasterization
;
6273 uint32_t EarlyDepthStencilControl
;
6277 uint32_t ForceThreadDispatchEnable
;
6278 #define INTERP_PIXEL 0
6279 #define INTERP_CENTROID 2
6280 #define INTERP_SAMPLE 3
6281 uint32_t PositionZWInterpolationMode
;
6282 uint32_t BarycentricInterpolationMode
;
6287 uint32_t LineEndCapAntialiasingRegionWidth
;
6292 uint32_t LineAntialiasingRegionWidth
;
6293 bool PolygonStippleEnable
;
6294 bool LineStippleEnable
;
6295 #define RASTRULE_UPPER_LEFT 0
6296 #define RASTRULE_UPPER_RIGHT 1
6297 uint32_t PointRasterizationRule
;
6301 uint32_t ForceKillPixelEnable
;
6305 GEN9_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
6306 const struct GEN9_3DSTATE_WM
* restrict values
)
6308 uint32_t *dw
= (uint32_t * restrict
) dst
;
6311 __gen_field(values
->CommandType
, 29, 31) |
6312 __gen_field(values
->CommandSubType
, 27, 28) |
6313 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6314 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6315 __gen_field(values
->DwordLength
, 0, 7) |
6319 __gen_field(values
->StatisticsEnable
, 31, 31) |
6320 __gen_field(values
->LegacyDepthBufferClearEnable
, 30, 30) |
6321 __gen_field(values
->LegacyDepthBufferResolveEnable
, 28, 28) |
6322 __gen_field(values
->LegacyHierarchicalDepthBufferResolveEnable
, 27, 27) |
6323 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
6324 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
6325 __gen_field(values
->ForceThreadDispatchEnable
, 19, 20) |
6326 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
6327 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
6328 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
6329 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
6330 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
6331 __gen_field(values
->LineStippleEnable
, 3, 3) |
6332 __gen_field(values
->PointRasterizationRule
, 2, 2) |
6333 __gen_field(values
->ForceKillPixelEnable
, 0, 1) |
6338 #define GEN9_3DSTATE_WM_CHROMAKEY_length_bias 0x00000002
6339 #define GEN9_3DSTATE_WM_CHROMAKEY_header \
6341 .CommandSubType = 3, \
6342 ._3DCommandOpcode = 0, \
6343 ._3DCommandSubOpcode = 76, \
6346 #define GEN9_3DSTATE_WM_CHROMAKEY_length 0x00000002
6348 struct GEN9_3DSTATE_WM_CHROMAKEY
{
6349 uint32_t CommandType
;
6350 uint32_t CommandSubType
;
6351 uint32_t _3DCommandOpcode
;
6352 uint32_t _3DCommandSubOpcode
;
6353 uint32_t DwordLength
;
6354 bool ChromaKeyKillEnable
;
6358 GEN9_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data
*data
, void * restrict dst
,
6359 const struct GEN9_3DSTATE_WM_CHROMAKEY
* restrict values
)
6361 uint32_t *dw
= (uint32_t * restrict
) dst
;
6364 __gen_field(values
->CommandType
, 29, 31) |
6365 __gen_field(values
->CommandSubType
, 27, 28) |
6366 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6367 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6368 __gen_field(values
->DwordLength
, 0, 7) |
6372 __gen_field(values
->ChromaKeyKillEnable
, 31, 31) |
6377 #define GEN9_3DSTATE_WM_DEPTH_STENCIL_length_bias 0x00000002
6378 #define GEN9_3DSTATE_WM_DEPTH_STENCIL_header \
6380 .CommandSubType = 3, \
6381 ._3DCommandOpcode = 0, \
6382 ._3DCommandSubOpcode = 78, \
6385 #define GEN9_3DSTATE_WM_DEPTH_STENCIL_length 0x00000004
6387 struct GEN9_3DSTATE_WM_DEPTH_STENCIL
{
6388 uint32_t CommandType
;
6389 uint32_t CommandSubType
;
6390 uint32_t _3DCommandOpcode
;
6391 uint32_t _3DCommandSubOpcode
;
6392 uint32_t DwordLength
;
6393 uint32_t StencilFailOp
;
6394 uint32_t StencilPassDepthFailOp
;
6395 uint32_t StencilPassDepthPassOp
;
6396 uint32_t BackfaceStencilTestFunction
;
6397 uint32_t BackfaceStencilFailOp
;
6398 uint32_t BackfaceStencilPassDepthFailOp
;
6399 uint32_t BackfaceStencilPassDepthPassOp
;
6400 uint32_t StencilTestFunction
;
6401 uint32_t DepthTestFunction
;
6402 bool DoubleSidedStencilEnable
;
6403 bool StencilTestEnable
;
6404 bool StencilBufferWriteEnable
;
6405 bool DepthTestEnable
;
6406 bool DepthBufferWriteEnable
;
6407 uint32_t StencilTestMask
;
6408 uint32_t StencilWriteMask
;
6409 uint32_t BackfaceStencilTestMask
;
6410 uint32_t BackfaceStencilWriteMask
;
6411 uint32_t StencilReferenceValue
;
6412 uint32_t BackfaceStencilReferenceValue
;
6416 GEN9_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data
*data
, void * restrict dst
,
6417 const struct GEN9_3DSTATE_WM_DEPTH_STENCIL
* restrict values
)
6419 uint32_t *dw
= (uint32_t * restrict
) dst
;
6422 __gen_field(values
->CommandType
, 29, 31) |
6423 __gen_field(values
->CommandSubType
, 27, 28) |
6424 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6425 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6426 __gen_field(values
->DwordLength
, 0, 7) |
6430 __gen_field(values
->StencilFailOp
, 29, 31) |
6431 __gen_field(values
->StencilPassDepthFailOp
, 26, 28) |
6432 __gen_field(values
->StencilPassDepthPassOp
, 23, 25) |
6433 __gen_field(values
->BackfaceStencilTestFunction
, 20, 22) |
6434 __gen_field(values
->BackfaceStencilFailOp
, 17, 19) |
6435 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 14, 16) |
6436 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 11, 13) |
6437 __gen_field(values
->StencilTestFunction
, 8, 10) |
6438 __gen_field(values
->DepthTestFunction
, 5, 7) |
6439 __gen_field(values
->DoubleSidedStencilEnable
, 4, 4) |
6440 __gen_field(values
->StencilTestEnable
, 3, 3) |
6441 __gen_field(values
->StencilBufferWriteEnable
, 2, 2) |
6442 __gen_field(values
->DepthTestEnable
, 1, 1) |
6443 __gen_field(values
->DepthBufferWriteEnable
, 0, 0) |
6447 __gen_field(values
->StencilTestMask
, 24, 31) |
6448 __gen_field(values
->StencilWriteMask
, 16, 23) |
6449 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
6450 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
6454 __gen_field(values
->StencilReferenceValue
, 8, 15) |
6455 __gen_field(values
->BackfaceStencilReferenceValue
, 0, 7) |
6460 #define GEN9_3DSTATE_WM_HZ_OP_length_bias 0x00000002
6461 #define GEN9_3DSTATE_WM_HZ_OP_header \
6463 .CommandSubType = 3, \
6464 ._3DCommandOpcode = 0, \
6465 ._3DCommandSubOpcode = 82, \
6468 #define GEN9_3DSTATE_WM_HZ_OP_length 0x00000005
6470 struct GEN9_3DSTATE_WM_HZ_OP
{
6471 uint32_t CommandType
;
6472 uint32_t CommandSubType
;
6473 uint32_t _3DCommandOpcode
;
6474 uint32_t _3DCommandSubOpcode
;
6475 uint32_t DwordLength
;
6476 bool StencilBufferClearEnable
;
6477 bool DepthBufferClearEnable
;
6478 bool ScissorRectangleEnable
;
6479 bool DepthBufferResolveEnable
;
6480 bool HierarchicalDepthBufferResolveEnable
;
6481 uint32_t PixelPositionOffsetEnable
;
6482 bool FullSurfaceDepthClear
;
6483 uint32_t StencilClearValue
;
6484 uint32_t NumberofMultisamples
;
6485 uint32_t ClearRectangleYMin
;
6486 uint32_t ClearRectangleXMin
;
6487 uint32_t ClearRectangleYMax
;
6488 uint32_t ClearRectangleXMax
;
6489 uint32_t SampleMask
;
6493 GEN9_3DSTATE_WM_HZ_OP_pack(__gen_user_data
*data
, void * restrict dst
,
6494 const struct GEN9_3DSTATE_WM_HZ_OP
* restrict values
)
6496 uint32_t *dw
= (uint32_t * restrict
) dst
;
6499 __gen_field(values
->CommandType
, 29, 31) |
6500 __gen_field(values
->CommandSubType
, 27, 28) |
6501 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
6502 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
6503 __gen_field(values
->DwordLength
, 0, 7) |
6507 __gen_field(values
->StencilBufferClearEnable
, 31, 31) |
6508 __gen_field(values
->DepthBufferClearEnable
, 30, 30) |
6509 __gen_field(values
->ScissorRectangleEnable
, 29, 29) |
6510 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
6511 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
6512 __gen_field(values
->PixelPositionOffsetEnable
, 26, 26) |
6513 __gen_field(values
->FullSurfaceDepthClear
, 25, 25) |
6514 __gen_field(values
->StencilClearValue
, 16, 23) |
6515 __gen_field(values
->NumberofMultisamples
, 13, 15) |
6519 __gen_field(values
->ClearRectangleYMin
, 16, 31) |
6520 __gen_field(values
->ClearRectangleXMin
, 0, 15) |
6524 __gen_field(values
->ClearRectangleYMax
, 16, 31) |
6525 __gen_field(values
->ClearRectangleXMax
, 0, 15) |
6529 __gen_field(values
->SampleMask
, 0, 15) |
6534 #define GEN9_GPGPU_WALKER_length_bias 0x00000002
6535 #define GEN9_GPGPU_WALKER_header \
6538 .MediaCommandOpcode = 1, \
6542 #define GEN9_GPGPU_WALKER_length 0x0000000f
6544 struct GEN9_GPGPU_WALKER
{
6545 uint32_t CommandType
;
6547 uint32_t MediaCommandOpcode
;
6549 bool IndirectParameterEnable
;
6550 bool PredicateEnable
;
6551 uint32_t DwordLength
;
6552 uint32_t InterfaceDescriptorOffset
;
6553 uint32_t IndirectDataLength
;
6554 uint32_t IndirectDataStartAddress
;
6559 uint32_t ThreadDepthCounterMaximum
;
6560 uint32_t ThreadHeightCounterMaximum
;
6561 uint32_t ThreadWidthCounterMaximum
;
6562 uint32_t ThreadGroupIDStartingX
;
6563 uint32_t ThreadGroupIDXDimension
;
6564 uint32_t ThreadGroupIDStartingY
;
6565 uint32_t ThreadGroupIDYDimension
;
6566 uint32_t ThreadGroupIDStartingResumeZ
;
6567 uint32_t ThreadGroupIDZDimension
;
6568 uint32_t RightExecutionMask
;
6569 uint32_t BottomExecutionMask
;
6573 GEN9_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
6574 const struct GEN9_GPGPU_WALKER
* restrict values
)
6576 uint32_t *dw
= (uint32_t * restrict
) dst
;
6579 __gen_field(values
->CommandType
, 29, 31) |
6580 __gen_field(values
->Pipeline
, 27, 28) |
6581 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6582 __gen_field(values
->SubOpcode
, 16, 23) |
6583 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
6584 __gen_field(values
->PredicateEnable
, 8, 8) |
6585 __gen_field(values
->DwordLength
, 0, 7) |
6589 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6593 __gen_field(values
->IndirectDataLength
, 0, 16) |
6597 __gen_offset(values
->IndirectDataStartAddress
, 6, 31) |
6601 __gen_field(values
->SIMDSize
, 30, 31) |
6602 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
6603 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
6604 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
6608 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
6615 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
6619 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
6626 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
6630 __gen_field(values
->ThreadGroupIDStartingResumeZ
, 0, 31) |
6634 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
6638 __gen_field(values
->RightExecutionMask
, 0, 31) |
6642 __gen_field(values
->BottomExecutionMask
, 0, 31) |
6647 #define GEN9_MEDIA_CURBE_LOAD_length_bias 0x00000002
6648 #define GEN9_MEDIA_CURBE_LOAD_header \
6651 .MediaCommandOpcode = 0, \
6655 #define GEN9_MEDIA_CURBE_LOAD_length 0x00000004
6657 struct GEN9_MEDIA_CURBE_LOAD
{
6658 uint32_t CommandType
;
6660 uint32_t MediaCommandOpcode
;
6662 uint32_t DwordLength
;
6663 uint32_t CURBETotalDataLength
;
6664 uint32_t CURBEDataStartAddress
;
6668 GEN9_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
6669 const struct GEN9_MEDIA_CURBE_LOAD
* restrict values
)
6671 uint32_t *dw
= (uint32_t * restrict
) dst
;
6674 __gen_field(values
->CommandType
, 29, 31) |
6675 __gen_field(values
->Pipeline
, 27, 28) |
6676 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6677 __gen_field(values
->SubOpcode
, 16, 23) |
6678 __gen_field(values
->DwordLength
, 0, 15) |
6685 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
6689 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
6694 #define GEN9_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
6695 #define GEN9_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
6698 .MediaCommandOpcode = 0, \
6702 #define GEN9_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
6704 struct GEN9_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
6705 uint32_t CommandType
;
6707 uint32_t MediaCommandOpcode
;
6709 uint32_t DwordLength
;
6710 uint32_t InterfaceDescriptorTotalLength
;
6711 uint32_t InterfaceDescriptorDataStartAddress
;
6715 GEN9_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
6716 const struct GEN9_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
6718 uint32_t *dw
= (uint32_t * restrict
) dst
;
6721 __gen_field(values
->CommandType
, 29, 31) |
6722 __gen_field(values
->Pipeline
, 27, 28) |
6723 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6724 __gen_field(values
->SubOpcode
, 16, 23) |
6725 __gen_field(values
->DwordLength
, 0, 15) |
6732 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
6736 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
6741 #define GEN9_MEDIA_OBJECT_length_bias 0x00000002
6742 #define GEN9_MEDIA_OBJECT_header \
6744 .MediaCommandPipeline = 2, \
6745 .MediaCommandOpcode = 1, \
6746 .MediaCommandSubOpcode = 0
6748 #define GEN9_MEDIA_OBJECT_length 0x00000000
6750 struct GEN9_MEDIA_OBJECT
{
6751 uint32_t CommandType
;
6752 uint32_t MediaCommandPipeline
;
6753 uint32_t MediaCommandOpcode
;
6754 uint32_t MediaCommandSubOpcode
;
6755 uint32_t DwordLength
;
6756 uint32_t InterfaceDescriptorOffset
;
6757 bool ChildrenPresent
;
6758 uint32_t SliceDestinationSelectMSBs
;
6759 #define Nothreadsynchronization 0
6760 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
6761 uint32_t ThreadSynchronization
;
6762 uint32_t ForceDestination
;
6763 #define Notusingscoreboard 0
6764 #define Usingscoreboard 1
6765 uint32_t UseScoreboard
;
6769 uint32_t SliceDestinationSelect
;
6774 uint32_t SubSliceDestinationSelect
;
6775 uint32_t IndirectDataLength
;
6776 __gen_address_type IndirectDataStartAddress
;
6777 uint32_t ScoredboardY
;
6778 uint32_t ScoreboardX
;
6779 uint32_t ScoreboardColor
;
6780 bool ScoreboardMask
;
6781 /* variable length fields follow */
6785 GEN9_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
6786 const struct GEN9_MEDIA_OBJECT
* restrict values
)
6788 uint32_t *dw
= (uint32_t * restrict
) dst
;
6791 __gen_field(values
->CommandType
, 29, 31) |
6792 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6793 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6794 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6795 __gen_field(values
->DwordLength
, 0, 15) |
6799 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6803 __gen_field(values
->ChildrenPresent
, 31, 31) |
6804 __gen_field(values
->SliceDestinationSelectMSBs
, 25, 26) |
6805 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6806 __gen_field(values
->ForceDestination
, 22, 22) |
6807 __gen_field(values
->UseScoreboard
, 21, 21) |
6808 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6809 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6810 __gen_field(values
->IndirectDataLength
, 0, 16) |
6817 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6820 __gen_field(values
->ScoredboardY
, 16, 24) |
6821 __gen_field(values
->ScoreboardX
, 0, 8) |
6825 __gen_field(values
->ScoreboardColor
, 16, 19) |
6826 __gen_field(values
->ScoreboardMask
, 0, 7) |
6829 /* variable length fields follow */
6832 #define GEN9_MEDIA_OBJECT_GRPID_length_bias 0x00000002
6833 #define GEN9_MEDIA_OBJECT_GRPID_header \
6835 .MediaCommandPipeline = 2, \
6836 .MediaCommandOpcode = 1, \
6837 .MediaCommandSubOpcode = 6
6839 #define GEN9_MEDIA_OBJECT_GRPID_length 0x00000000
6841 struct GEN9_MEDIA_OBJECT_GRPID
{
6842 uint32_t CommandType
;
6843 uint32_t MediaCommandPipeline
;
6844 uint32_t MediaCommandOpcode
;
6845 uint32_t MediaCommandSubOpcode
;
6846 uint32_t DwordLength
;
6847 uint32_t InterfaceDescriptorOffset
;
6848 uint32_t SliceDestinationSelectMSB
;
6849 uint32_t EndofThreadGroup
;
6850 uint32_t ForceDestination
;
6851 #define Notusingscoreboard 0
6852 #define Usingscoreboard 1
6853 uint32_t UseScoreboard
;
6857 uint32_t SliceDestinationSelect
;
6862 uint32_t SubSliceDestinationSelect
;
6863 uint32_t IndirectDataLength
;
6864 __gen_address_type IndirectDataStartAddress
;
6865 uint32_t ScoreboardY
;
6866 uint32_t ScoreboardX
;
6867 uint32_t ScoreboardColor
;
6868 bool ScoreboardMask
;
6870 /* variable length fields follow */
6874 GEN9_MEDIA_OBJECT_GRPID_pack(__gen_user_data
*data
, void * restrict dst
,
6875 const struct GEN9_MEDIA_OBJECT_GRPID
* restrict values
)
6877 uint32_t *dw
= (uint32_t * restrict
) dst
;
6880 __gen_field(values
->CommandType
, 29, 31) |
6881 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6882 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6883 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6884 __gen_field(values
->DwordLength
, 0, 15) |
6888 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6892 __gen_field(values
->SliceDestinationSelectMSB
, 24, 24) |
6893 __gen_field(values
->EndofThreadGroup
, 23, 23) |
6894 __gen_field(values
->ForceDestination
, 22, 22) |
6895 __gen_field(values
->UseScoreboard
, 21, 21) |
6896 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6897 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6898 __gen_field(values
->IndirectDataLength
, 0, 16) |
6905 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6908 __gen_field(values
->ScoreboardY
, 16, 24) |
6909 __gen_field(values
->ScoreboardX
, 0, 8) |
6913 __gen_field(values
->ScoreboardColor
, 16, 19) |
6914 __gen_field(values
->ScoreboardMask
, 0, 7) |
6918 __gen_field(values
->GroupID
, 0, 31) |
6921 /* variable length fields follow */
6924 #define GEN9_MEDIA_OBJECT_PRT_length_bias 0x00000002
6925 #define GEN9_MEDIA_OBJECT_PRT_header \
6928 .MediaCommandOpcode = 1, \
6932 #define GEN9_MEDIA_OBJECT_PRT_length 0x00000010
6934 struct GEN9_MEDIA_OBJECT_PRT
{
6935 uint32_t CommandType
;
6937 uint32_t MediaCommandOpcode
;
6939 uint32_t DwordLength
;
6940 uint32_t InterfaceDescriptorOffset
;
6941 bool ChildrenPresent
;
6942 bool PRT_FenceNeeded
;
6943 #define Rootthreadqueue 0
6944 #define VFEstateflush 1
6945 uint32_t PRT_FenceType
;
6946 uint32_t InlineData
[12];
6950 GEN9_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
6951 const struct GEN9_MEDIA_OBJECT_PRT
* restrict values
)
6953 uint32_t *dw
= (uint32_t * restrict
) dst
;
6956 __gen_field(values
->CommandType
, 29, 31) |
6957 __gen_field(values
->Pipeline
, 27, 28) |
6958 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6959 __gen_field(values
->SubOpcode
, 16, 23) |
6960 __gen_field(values
->DwordLength
, 0, 15) |
6964 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6968 __gen_field(values
->ChildrenPresent
, 31, 31) |
6969 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
6970 __gen_field(values
->PRT_FenceType
, 22, 22) |
6976 for (uint32_t i
= 0, j
= 4; i
< 12; i
+= 1, j
++) {
6978 __gen_field(values
->InlineData
[i
+ 0], 0, 31) |
6984 #define GEN9_MEDIA_OBJECT_WALKER_length_bias 0x00000002
6985 #define GEN9_MEDIA_OBJECT_WALKER_header \
6988 .MediaCommandOpcode = 1, \
6991 #define GEN9_MEDIA_OBJECT_WALKER_length 0x00000000
6993 struct GEN9_MEDIA_OBJECT_WALKER
{
6994 uint32_t CommandType
;
6996 uint32_t MediaCommandOpcode
;
6998 uint32_t DwordLength
;
6999 uint32_t InterfaceDescriptorOffset
;
7000 #define Nothreadsynchronization 0
7001 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
7002 uint32_t ThreadSynchronization
;
7003 uint32_t MaskedDispatch
;
7004 #define Notusingscoreboard 0
7005 #define Usingscoreboard 1
7006 uint32_t UseScoreboard
;
7007 uint32_t IndirectDataLength
;
7008 uint32_t IndirectDataStartAddress
;
7009 uint32_t GroupIDLoopSelect
;
7010 bool ScoreboardMask
;
7011 uint32_t ColorCountMinusOne
;
7012 uint32_t MiddleLoopExtraSteps
;
7013 uint32_t LocalMidLoopUnitY
;
7014 uint32_t MidLoopUnitX
;
7015 uint32_t GlobalLoopExecCount
;
7016 uint32_t LocalLoopExecCount
;
7017 uint32_t BlockResolutionY
;
7018 uint32_t BlockResolutionX
;
7019 uint32_t LocalStartY
;
7020 uint32_t LocalStartX
;
7021 uint32_t LocalOuterLoopStrideY
;
7022 uint32_t LocalOuterLoopStrideX
;
7023 uint32_t LocalInnerLoopUnitY
;
7024 uint32_t LocalInnerLoopUnitX
;
7025 uint32_t GlobalResolutionY
;
7026 uint32_t GlobalResolutionX
;
7027 uint32_t GlobalStartY
;
7028 uint32_t GlobalStartX
;
7029 uint32_t GlobalOuterLoopStrideY
;
7030 uint32_t GlobalOuterLoopStrideX
;
7031 uint32_t GlobalInnerLoopUnitY
;
7032 uint32_t GlobalInnerLoopUnitX
;
7033 /* variable length fields follow */
7037 GEN9_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
7038 const struct GEN9_MEDIA_OBJECT_WALKER
* restrict values
)
7040 uint32_t *dw
= (uint32_t * restrict
) dst
;
7043 __gen_field(values
->CommandType
, 29, 31) |
7044 __gen_field(values
->Pipeline
, 27, 28) |
7045 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
7046 __gen_field(values
->SubOpcode
, 16, 23) |
7047 __gen_field(values
->DwordLength
, 0, 15) |
7051 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
7055 __gen_field(values
->ThreadSynchronization
, 24, 24) |
7056 __gen_field(values
->MaskedDispatch
, 22, 23) |
7057 __gen_field(values
->UseScoreboard
, 21, 21) |
7058 __gen_field(values
->IndirectDataLength
, 0, 16) |
7062 __gen_field(values
->IndirectDataStartAddress
, 0, 31) |
7069 __gen_field(values
->GroupIDLoopSelect
, 8, 31) |
7070 __gen_field(values
->ScoreboardMask
, 0, 7) |
7074 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
7075 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
7076 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
7077 __gen_field(values
->MidLoopUnitX
, 8, 9) |
7081 __gen_field(values
->GlobalLoopExecCount
, 16, 27) |
7082 __gen_field(values
->LocalLoopExecCount
, 0, 11) |
7086 __gen_field(values
->BlockResolutionY
, 16, 26) |
7087 __gen_field(values
->BlockResolutionX
, 0, 10) |
7091 __gen_field(values
->LocalStartY
, 16, 26) |
7092 __gen_field(values
->LocalStartX
, 0, 10) |
7099 __gen_field(values
->LocalOuterLoopStrideY
, 16, 27) |
7100 __gen_field(values
->LocalOuterLoopStrideX
, 0, 11) |
7104 __gen_field(values
->LocalInnerLoopUnitY
, 16, 27) |
7105 __gen_field(values
->LocalInnerLoopUnitX
, 0, 11) |
7109 __gen_field(values
->GlobalResolutionY
, 16, 26) |
7110 __gen_field(values
->GlobalResolutionX
, 0, 10) |
7114 __gen_field(values
->GlobalStartY
, 16, 27) |
7115 __gen_field(values
->GlobalStartX
, 0, 11) |
7119 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 27) |
7120 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 11) |
7124 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 27) |
7125 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 11) |
7128 /* variable length fields follow */
7131 #define GEN9_MEDIA_STATE_FLUSH_length_bias 0x00000002
7132 #define GEN9_MEDIA_STATE_FLUSH_header \
7135 .MediaCommandOpcode = 0, \
7139 #define GEN9_MEDIA_STATE_FLUSH_length 0x00000002
7141 struct GEN9_MEDIA_STATE_FLUSH
{
7142 uint32_t CommandType
;
7144 uint32_t MediaCommandOpcode
;
7146 uint32_t DwordLength
;
7148 uint32_t WatermarkRequired
;
7149 uint32_t InterfaceDescriptorOffset
;
7153 GEN9_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
7154 const struct GEN9_MEDIA_STATE_FLUSH
* restrict values
)
7156 uint32_t *dw
= (uint32_t * restrict
) dst
;
7159 __gen_field(values
->CommandType
, 29, 31) |
7160 __gen_field(values
->Pipeline
, 27, 28) |
7161 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
7162 __gen_field(values
->SubOpcode
, 16, 23) |
7163 __gen_field(values
->DwordLength
, 0, 15) |
7167 __gen_field(values
->FlushtoGO
, 7, 7) |
7168 __gen_field(values
->WatermarkRequired
, 6, 6) |
7169 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
7174 #define GEN9_MEDIA_VFE_STATE_length_bias 0x00000002
7175 #define GEN9_MEDIA_VFE_STATE_header \
7178 .MediaCommandOpcode = 0, \
7182 #define GEN9_MEDIA_VFE_STATE_length 0x00000009
7184 struct GEN9_MEDIA_VFE_STATE
{
7185 uint32_t CommandType
;
7187 uint32_t MediaCommandOpcode
;
7189 uint32_t DwordLength
;
7190 uint32_t ScratchSpaceBasePointer
;
7192 uint32_t PerThreadScratchSpace
;
7193 uint32_t ScratchSpaceBasePointerHigh
;
7194 uint32_t MaximumNumberofThreads
;
7195 uint32_t NumberofURBEntries
;
7196 #define Maintainingtheexistingtimestampstate 0
7197 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
7198 uint32_t ResetGatewayTimer
;
7199 uint32_t SliceDisable
;
7200 uint32_t URBEntryAllocationSize
;
7201 uint32_t CURBEAllocationSize
;
7202 #define Scoreboarddisabled 0
7203 #define Scoreboardenabled 1
7204 uint32_t ScoreboardEnable
;
7205 #define StallingScoreboard 0
7206 #define NonStallingScoreboard 1
7207 uint32_t ScoreboardType
;
7208 uint32_t ScoreboardMask
;
7209 uint32_t Scoreboard3DeltaY
;
7210 uint32_t Scoreboard3DeltaX
;
7211 uint32_t Scoreboard2DeltaY
;
7212 uint32_t Scoreboard2DeltaX
;
7213 uint32_t Scoreboard1DeltaY
;
7214 uint32_t Scoreboard1DeltaX
;
7215 uint32_t Scoreboard0DeltaY
;
7216 uint32_t Scoreboard0DeltaX
;
7217 uint32_t Scoreboard7DeltaY
;
7218 uint32_t Scoreboard7DeltaX
;
7219 uint32_t Scoreboard6DeltaY
;
7220 uint32_t Scoreboard6DeltaX
;
7221 uint32_t Scoreboard5DeltaY
;
7222 uint32_t Scoreboard5DeltaX
;
7223 uint32_t Scoreboard4DeltaY
;
7224 uint32_t Scoreboard4DeltaX
;
7228 GEN9_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7229 const struct GEN9_MEDIA_VFE_STATE
* restrict values
)
7231 uint32_t *dw
= (uint32_t * restrict
) dst
;
7234 __gen_field(values
->CommandType
, 29, 31) |
7235 __gen_field(values
->Pipeline
, 27, 28) |
7236 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
7237 __gen_field(values
->SubOpcode
, 16, 23) |
7238 __gen_field(values
->DwordLength
, 0, 15) |
7242 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
7243 __gen_field(values
->StackSize
, 4, 7) |
7244 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
7248 __gen_offset(values
->ScratchSpaceBasePointerHigh
, 0, 15) |
7252 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
7253 __gen_field(values
->NumberofURBEntries
, 8, 15) |
7254 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
7258 __gen_field(values
->SliceDisable
, 0, 1) |
7262 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
7263 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
7267 __gen_field(values
->ScoreboardEnable
, 31, 31) |
7268 __gen_field(values
->ScoreboardType
, 30, 30) |
7269 __gen_field(values
->ScoreboardMask
, 0, 7) |
7273 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
7274 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
7275 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
7276 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
7277 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
7278 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
7279 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
7280 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
7284 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
7285 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
7286 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
7287 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
7288 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
7289 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
7290 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
7291 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
7296 #define GEN9_MI_ARB_CHECK_length_bias 0x00000001
7297 #define GEN9_MI_ARB_CHECK_header \
7299 .MICommandOpcode = 5
7301 #define GEN9_MI_ARB_CHECK_length 0x00000001
7303 struct GEN9_MI_ARB_CHECK
{
7304 uint32_t CommandType
;
7305 uint32_t MICommandOpcode
;
7309 GEN9_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
7310 const struct GEN9_MI_ARB_CHECK
* restrict values
)
7312 uint32_t *dw
= (uint32_t * restrict
) dst
;
7315 __gen_field(values
->CommandType
, 29, 31) |
7316 __gen_field(values
->MICommandOpcode
, 23, 28) |
7321 #define GEN9_MI_BATCH_BUFFER_END_length_bias 0x00000001
7322 #define GEN9_MI_BATCH_BUFFER_END_header \
7324 .MICommandOpcode = 10
7326 #define GEN9_MI_BATCH_BUFFER_END_length 0x00000001
7328 struct GEN9_MI_BATCH_BUFFER_END
{
7329 uint32_t CommandType
;
7330 uint32_t MICommandOpcode
;
7334 GEN9_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
7335 const struct GEN9_MI_BATCH_BUFFER_END
* restrict values
)
7337 uint32_t *dw
= (uint32_t * restrict
) dst
;
7340 __gen_field(values
->CommandType
, 29, 31) |
7341 __gen_field(values
->MICommandOpcode
, 23, 28) |
7346 #define GEN9_MI_CLFLUSH_length_bias 0x00000002
7347 #define GEN9_MI_CLFLUSH_header \
7349 .MICommandOpcode = 39
7351 #define GEN9_MI_CLFLUSH_length 0x00000000
7353 struct GEN9_MI_CLFLUSH
{
7354 uint32_t CommandType
;
7355 uint32_t MICommandOpcode
;
7356 #define PerProcessGraphicsAddress 0
7357 #define GlobalGraphicsAddress 1
7358 uint32_t UseGlobalGTT
;
7359 uint32_t DwordLength
;
7360 __gen_address_type PageBaseAddress
;
7361 uint32_t StartingCachelineOffset
;
7362 /* variable length fields follow */
7366 GEN9_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
7367 const struct GEN9_MI_CLFLUSH
* restrict values
)
7369 uint32_t *dw
= (uint32_t * restrict
) dst
;
7372 __gen_field(values
->CommandType
, 29, 31) |
7373 __gen_field(values
->MICommandOpcode
, 23, 28) |
7374 __gen_field(values
->UseGlobalGTT
, 22, 22) |
7375 __gen_field(values
->DwordLength
, 0, 9) |
7379 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
7383 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
7388 /* variable length fields follow */
7391 #define GEN9_MI_COPY_MEM_MEM_length_bias 0x00000002
7392 #define GEN9_MI_COPY_MEM_MEM_header \
7394 .MICommandOpcode = 46, \
7397 #define GEN9_MI_COPY_MEM_MEM_length 0x00000005
7399 struct GEN9_MI_COPY_MEM_MEM
{
7400 uint32_t CommandType
;
7401 uint32_t MICommandOpcode
;
7402 #define PerProcessGraphicsAddress 0
7403 #define GlobalGraphicsAddress 1
7404 uint32_t UseGlobalGTTSource
;
7405 #define PerProcessGraphicsAddress 0
7406 #define GlobalGraphicsAddress 1
7407 uint32_t UseGlobalGTTDestination
;
7408 uint32_t DwordLength
;
7409 __gen_address_type DestinationMemoryAddress
;
7410 __gen_address_type SourceMemoryAddress
;
7414 GEN9_MI_COPY_MEM_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7415 const struct GEN9_MI_COPY_MEM_MEM
* restrict values
)
7417 uint32_t *dw
= (uint32_t * restrict
) dst
;
7420 __gen_field(values
->CommandType
, 29, 31) |
7421 __gen_field(values
->MICommandOpcode
, 23, 28) |
7422 __gen_field(values
->UseGlobalGTTSource
, 22, 22) |
7423 __gen_field(values
->UseGlobalGTTDestination
, 21, 21) |
7424 __gen_field(values
->DwordLength
, 0, 7) |
7431 __gen_combine_address(data
, &dw
[1], values
->DestinationMemoryAddress
, dw1
);
7440 __gen_combine_address(data
, &dw
[3], values
->SourceMemoryAddress
, dw3
);
7447 #define GEN9_MI_DISPLAY_FLIP_length_bias 0x00000002
7448 #define GEN9_MI_DISPLAY_FLIP_header \
7450 .MICommandOpcode = 20
7452 #define GEN9_MI_DISPLAY_FLIP_length 0x00000003
7454 struct GEN9_MI_DISPLAY_FLIP
{
7455 uint32_t CommandType
;
7456 uint32_t MICommandOpcode
;
7457 bool AsyncFlipIndicator
;
7458 #define DisplayPlane1 0
7459 #define DisplayPlane2 1
7460 #define DisplayPlane3 2
7461 #define DisplayPlane4 4
7462 #define DisplayPlane5 5
7463 #define DisplayPlane6 6
7464 #define DisplayPlane7 7
7465 #define DisplayPlane8 8
7466 #define DisplayPlane9 9
7467 #define DisplayPlane10 10
7468 #define DisplayPlane11 11
7469 #define DisplayPlane12 12
7470 uint32_t DisplayPlaneSelect
;
7471 uint32_t DwordLength
;
7472 bool Stereoscopic3DMode
;
7473 uint32_t DisplayBufferPitch
;
7476 #define TiledYLegacyYB 4
7479 __gen_address_type DisplayBufferBaseAddress
;
7482 #define Stereo3DFlip 2
7484 __gen_address_type LeftEyeDisplayBufferBaseAddress
;
7488 GEN9_MI_DISPLAY_FLIP_pack(__gen_user_data
*data
, void * restrict dst
,
7489 const struct GEN9_MI_DISPLAY_FLIP
* restrict values
)
7491 uint32_t *dw
= (uint32_t * restrict
) dst
;
7494 __gen_field(values
->CommandType
, 29, 31) |
7495 __gen_field(values
->MICommandOpcode
, 23, 28) |
7496 __gen_field(values
->AsyncFlipIndicator
, 22, 22) |
7497 __gen_field(values
->DisplayPlaneSelect
, 8, 12) |
7498 __gen_field(values
->DwordLength
, 0, 7) |
7502 __gen_field(values
->Stereoscopic3DMode
, 31, 31) |
7503 __gen_field(values
->DisplayBufferPitch
, 6, 15) |
7504 __gen_field(values
->TileParameter
, 0, 2) |
7508 __gen_field(values
->FlipType
, 0, 1) |
7512 __gen_combine_address(data
, &dw
[2], values
->DisplayBufferBaseAddress
, dw2
);
7518 __gen_combine_address(data
, &dw
[3], values
->LeftEyeDisplayBufferBaseAddress
, dw3
);
7522 #define GEN9_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
7523 #define GEN9_MI_LOAD_REGISTER_MEM_header \
7525 .MICommandOpcode = 41, \
7528 #define GEN9_MI_LOAD_REGISTER_MEM_length 0x00000004
7530 struct GEN9_MI_LOAD_REGISTER_MEM
{
7531 uint32_t CommandType
;
7532 uint32_t MICommandOpcode
;
7534 uint32_t AsyncModeEnable
;
7535 uint32_t DwordLength
;
7536 uint32_t RegisterAddress
;
7537 __gen_address_type MemoryAddress
;
7541 GEN9_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7542 const struct GEN9_MI_LOAD_REGISTER_MEM
* restrict values
)
7544 uint32_t *dw
= (uint32_t * restrict
) dst
;
7547 __gen_field(values
->CommandType
, 29, 31) |
7548 __gen_field(values
->MICommandOpcode
, 23, 28) |
7549 __gen_field(values
->UseGlobalGTT
, 22, 22) |
7550 __gen_field(values
->AsyncModeEnable
, 21, 21) |
7551 __gen_field(values
->DwordLength
, 0, 7) |
7555 __gen_offset(values
->RegisterAddress
, 2, 22) |
7562 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
7569 #define GEN9_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
7570 #define GEN9_MI_LOAD_SCAN_LINES_EXCL_header \
7572 .MICommandOpcode = 19, \
7575 #define GEN9_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
7577 struct GEN9_MI_LOAD_SCAN_LINES_EXCL
{
7578 uint32_t CommandType
;
7579 uint32_t MICommandOpcode
;
7580 #define DisplayPlaneA 0
7581 #define DisplayPlaneB 1
7582 #define DisplayPlaneC 4
7583 uint32_t DisplayPlaneSelect
;
7584 uint32_t DwordLength
;
7585 uint32_t StartScanLineNumber
;
7586 uint32_t EndScanLineNumber
;
7590 GEN9_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data
*data
, void * restrict dst
,
7591 const struct GEN9_MI_LOAD_SCAN_LINES_EXCL
* restrict values
)
7593 uint32_t *dw
= (uint32_t * restrict
) dst
;
7596 __gen_field(values
->CommandType
, 29, 31) |
7597 __gen_field(values
->MICommandOpcode
, 23, 28) |
7598 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
7599 __gen_field(values
->DwordLength
, 0, 5) |
7603 __gen_field(values
->StartScanLineNumber
, 16, 28) |
7604 __gen_field(values
->EndScanLineNumber
, 0, 12) |
7609 #define GEN9_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
7610 #define GEN9_MI_LOAD_SCAN_LINES_INCL_header \
7612 .MICommandOpcode = 18, \
7615 #define GEN9_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
7617 struct GEN9_MI_LOAD_SCAN_LINES_INCL
{
7618 uint32_t CommandType
;
7619 uint32_t MICommandOpcode
;
7620 #define DisplayPlane1A 0
7621 #define DisplayPlane1B 1
7622 #define DisplayPlane1C 4
7623 uint32_t DisplayPlaneSelect
;
7624 #define NeverForward 0
7625 #define AlwaysForward 1
7626 #define ConditionallyForward 2
7627 bool ScanLineEventDoneForward
;
7628 uint32_t DwordLength
;
7629 uint32_t StartScanLineNumber
;
7630 uint32_t EndScanLineNumber
;
7634 GEN9_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data
*data
, void * restrict dst
,
7635 const struct GEN9_MI_LOAD_SCAN_LINES_INCL
* 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
->DisplayPlaneSelect
, 19, 21) |
7643 __gen_field(values
->ScanLineEventDoneForward
, 17, 18) |
7644 __gen_field(values
->DwordLength
, 0, 5) |
7648 __gen_field(values
->StartScanLineNumber
, 16, 28) |
7649 __gen_field(values
->EndScanLineNumber
, 0, 12) |
7654 #define GEN9_MI_LOAD_URB_MEM_length_bias 0x00000002
7655 #define GEN9_MI_LOAD_URB_MEM_header \
7657 .MICommandOpcode = 44, \
7660 #define GEN9_MI_LOAD_URB_MEM_length 0x00000004
7662 struct GEN9_MI_LOAD_URB_MEM
{
7663 uint32_t CommandType
;
7664 uint32_t MICommandOpcode
;
7665 uint32_t DwordLength
;
7666 uint32_t URBAddress
;
7667 __gen_address_type MemoryAddress
;
7671 GEN9_MI_LOAD_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7672 const struct GEN9_MI_LOAD_URB_MEM
* restrict values
)
7674 uint32_t *dw
= (uint32_t * restrict
) dst
;
7677 __gen_field(values
->CommandType
, 29, 31) |
7678 __gen_field(values
->MICommandOpcode
, 23, 28) |
7679 __gen_field(values
->DwordLength
, 0, 7) |
7683 __gen_field(values
->URBAddress
, 2, 14) |
7690 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
7697 #define GEN9_MI_MATH_length_bias 0x00000002
7698 #define GEN9_MI_MATH_header \
7700 .MICommandOpcode = 26
7702 #define GEN9_MI_MATH_length 0x00000000
7704 struct GEN9_MI_MATH
{
7705 uint32_t CommandType
;
7706 uint32_t MICommandOpcode
;
7707 uint32_t DwordLength
;
7708 uint32_t ALUINSTRUCTION1
;
7709 uint32_t ALUINSTRUCTION2
;
7710 /* variable length fields follow */
7714 GEN9_MI_MATH_pack(__gen_user_data
*data
, void * restrict dst
,
7715 const struct GEN9_MI_MATH
* restrict values
)
7717 uint32_t *dw
= (uint32_t * restrict
) dst
;
7720 __gen_field(values
->CommandType
, 29, 31) |
7721 __gen_field(values
->MICommandOpcode
, 23, 28) |
7722 __gen_field(values
->DwordLength
, 0, 7) |
7726 __gen_field(values
->ALUINSTRUCTION1
, 0, 31) |
7730 __gen_field(values
->ALUINSTRUCTION2
, 0, 31) |
7733 /* variable length fields follow */
7736 #define GEN9_MI_NOOP_length_bias 0x00000001
7737 #define GEN9_MI_NOOP_header \
7739 .MICommandOpcode = 0
7741 #define GEN9_MI_NOOP_length 0x00000001
7743 struct GEN9_MI_NOOP
{
7744 uint32_t CommandType
;
7745 uint32_t MICommandOpcode
;
7746 bool IdentificationNumberRegisterWriteEnable
;
7747 uint32_t IdentificationNumber
;
7751 GEN9_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
7752 const struct GEN9_MI_NOOP
* restrict values
)
7754 uint32_t *dw
= (uint32_t * restrict
) dst
;
7757 __gen_field(values
->CommandType
, 29, 31) |
7758 __gen_field(values
->MICommandOpcode
, 23, 28) |
7759 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
7760 __gen_field(values
->IdentificationNumber
, 0, 21) |
7765 #define GEN9_MI_PREDICATE_length_bias 0x00000001
7766 #define GEN9_MI_PREDICATE_header \
7768 .MICommandOpcode = 12
7770 #define GEN9_MI_PREDICATE_length 0x00000001
7772 struct GEN9_MI_PREDICATE
{
7773 uint32_t CommandType
;
7774 uint32_t MICommandOpcode
;
7777 #define LOAD_LOADINV 3
7778 uint32_t LoadOperation
;
7779 #define COMBINE_SET 0
7780 #define COMBINE_AND 1
7781 #define COMBINE_OR 2
7782 #define COMBINE_XOR 3
7783 uint32_t CombineOperation
;
7784 #define COMPARE_SRCS_EQUAL 2
7785 #define COMPARE_DELTAS_EQUAL 3
7786 uint32_t CompareOperation
;
7790 GEN9_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7791 const struct GEN9_MI_PREDICATE
* restrict values
)
7793 uint32_t *dw
= (uint32_t * restrict
) dst
;
7796 __gen_field(values
->CommandType
, 29, 31) |
7797 __gen_field(values
->MICommandOpcode
, 23, 28) |
7798 __gen_field(values
->LoadOperation
, 6, 7) |
7799 __gen_field(values
->CombineOperation
, 3, 4) |
7800 __gen_field(values
->CompareOperation
, 0, 1) |
7805 #define GEN9_MI_REPORT_HEAD_length_bias 0x00000001
7806 #define GEN9_MI_REPORT_HEAD_header \
7808 .MICommandOpcode = 7
7810 #define GEN9_MI_REPORT_HEAD_length 0x00000001
7812 struct GEN9_MI_REPORT_HEAD
{
7813 uint32_t CommandType
;
7814 uint32_t MICommandOpcode
;
7818 GEN9_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
7819 const struct GEN9_MI_REPORT_HEAD
* restrict values
)
7821 uint32_t *dw
= (uint32_t * restrict
) dst
;
7824 __gen_field(values
->CommandType
, 29, 31) |
7825 __gen_field(values
->MICommandOpcode
, 23, 28) |
7830 #define GEN9_MI_RS_CONTEXT_length_bias 0x00000001
7831 #define GEN9_MI_RS_CONTEXT_header \
7833 .MICommandOpcode = 15
7835 #define GEN9_MI_RS_CONTEXT_length 0x00000001
7837 struct GEN9_MI_RS_CONTEXT
{
7838 uint32_t CommandType
;
7839 uint32_t MICommandOpcode
;
7840 #define RS_RESTORE 0
7842 uint32_t ResourceStreamerSave
;
7846 GEN9_MI_RS_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7847 const struct GEN9_MI_RS_CONTEXT
* restrict values
)
7849 uint32_t *dw
= (uint32_t * restrict
) dst
;
7852 __gen_field(values
->CommandType
, 29, 31) |
7853 __gen_field(values
->MICommandOpcode
, 23, 28) |
7854 __gen_field(values
->ResourceStreamerSave
, 0, 0) |
7859 #define GEN9_MI_RS_CONTROL_length_bias 0x00000001
7860 #define GEN9_MI_RS_CONTROL_header \
7862 .MICommandOpcode = 6
7864 #define GEN9_MI_RS_CONTROL_length 0x00000001
7866 struct GEN9_MI_RS_CONTROL
{
7867 uint32_t CommandType
;
7868 uint32_t MICommandOpcode
;
7871 uint32_t ResourceStreamerControl
;
7875 GEN9_MI_RS_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7876 const struct GEN9_MI_RS_CONTROL
* restrict values
)
7878 uint32_t *dw
= (uint32_t * restrict
) dst
;
7881 __gen_field(values
->CommandType
, 29, 31) |
7882 __gen_field(values
->MICommandOpcode
, 23, 28) |
7883 __gen_field(values
->ResourceStreamerControl
, 0, 0) |
7888 #define GEN9_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
7889 #define GEN9_MI_RS_STORE_DATA_IMM_header \
7891 .MICommandOpcode = 43, \
7894 #define GEN9_MI_RS_STORE_DATA_IMM_length 0x00000004
7896 struct GEN9_MI_RS_STORE_DATA_IMM
{
7897 uint32_t CommandType
;
7898 uint32_t MICommandOpcode
;
7899 uint32_t DwordLength
;
7900 __gen_address_type DestinationAddress
;
7901 uint32_t CoreModeEnable
;
7902 uint32_t DataDWord0
;
7906 GEN9_MI_RS_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7907 const struct GEN9_MI_RS_STORE_DATA_IMM
* restrict values
)
7909 uint32_t *dw
= (uint32_t * restrict
) dst
;
7912 __gen_field(values
->CommandType
, 29, 31) |
7913 __gen_field(values
->MICommandOpcode
, 23, 28) |
7914 __gen_field(values
->DwordLength
, 0, 7) |
7918 __gen_field(values
->CoreModeEnable
, 0, 0) |
7922 __gen_combine_address(data
, &dw
[1], values
->DestinationAddress
, dw1
);
7928 __gen_field(values
->DataDWord0
, 0, 31) |
7933 #define GEN9_MI_SET_CONTEXT_length_bias 0x00000002
7934 #define GEN9_MI_SET_CONTEXT_header \
7936 .MICommandOpcode = 24, \
7939 #define GEN9_MI_SET_CONTEXT_length 0x00000002
7941 struct GEN9_MI_SET_CONTEXT
{
7942 uint32_t CommandType
;
7943 uint32_t MICommandOpcode
;
7944 uint32_t DwordLength
;
7945 __gen_address_type LogicalContextAddress
;
7946 uint32_t ReservedMustbe1
;
7947 bool CoreModeEnable
;
7948 bool ResourceStreamerStateSaveEnable
;
7949 bool ResourceStreamerStateRestoreEnable
;
7950 uint32_t ForceRestore
;
7951 uint32_t RestoreInhibit
;
7955 GEN9_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7956 const struct GEN9_MI_SET_CONTEXT
* restrict values
)
7958 uint32_t *dw
= (uint32_t * restrict
) dst
;
7961 __gen_field(values
->CommandType
, 29, 31) |
7962 __gen_field(values
->MICommandOpcode
, 23, 28) |
7963 __gen_field(values
->DwordLength
, 0, 7) |
7967 __gen_field(values
->ReservedMustbe1
, 8, 8) |
7968 __gen_field(values
->CoreModeEnable
, 4, 4) |
7969 __gen_field(values
->ResourceStreamerStateSaveEnable
, 3, 3) |
7970 __gen_field(values
->ResourceStreamerStateRestoreEnable
, 2, 2) |
7971 __gen_field(values
->ForceRestore
, 1, 1) |
7972 __gen_field(values
->RestoreInhibit
, 0, 0) |
7976 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
7980 #define GEN9_MI_SET_PREDICATE_length_bias 0x00000001
7981 #define GEN9_MI_SET_PREDICATE_header \
7983 .MICommandOpcode = 1
7985 #define GEN9_MI_SET_PREDICATE_length 0x00000001
7987 struct GEN9_MI_SET_PREDICATE
{
7988 uint32_t CommandType
;
7989 uint32_t MICommandOpcode
;
7991 #define NOOPonResult2clear 1
7992 #define NOOPonResult2set 2
7993 #define NOOPonResultclear 3
7994 #define NOOPonResultset 4
7995 #define Executewhenonesliceenabled 5
7996 #define Executewhentwoslicesareenabled 6
7997 #define Executewhenthreeslicesareenabled 7
7998 #define NOOPAlways 15
7999 uint32_t PREDICATEENABLE
;
8003 GEN9_MI_SET_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
8004 const struct GEN9_MI_SET_PREDICATE
* restrict values
)
8006 uint32_t *dw
= (uint32_t * restrict
) dst
;
8009 __gen_field(values
->CommandType
, 29, 31) |
8010 __gen_field(values
->MICommandOpcode
, 23, 28) |
8011 __gen_field(values
->PREDICATEENABLE
, 0, 3) |
8016 #define GEN9_MI_STORE_DATA_INDEX_length_bias 0x00000002
8017 #define GEN9_MI_STORE_DATA_INDEX_header \
8019 .MICommandOpcode = 33, \
8022 #define GEN9_MI_STORE_DATA_INDEX_length 0x00000003
8024 struct GEN9_MI_STORE_DATA_INDEX
{
8025 uint32_t CommandType
;
8026 uint32_t MICommandOpcode
;
8027 uint32_t UsePerProcessHardwareStatusPage
;
8028 uint32_t DwordLength
;
8030 uint32_t DataDWord0
;
8031 uint32_t DataDWord1
;
8035 GEN9_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
8036 const struct GEN9_MI_STORE_DATA_INDEX
* restrict values
)
8038 uint32_t *dw
= (uint32_t * restrict
) dst
;
8041 __gen_field(values
->CommandType
, 29, 31) |
8042 __gen_field(values
->MICommandOpcode
, 23, 28) |
8043 __gen_field(values
->UsePerProcessHardwareStatusPage
, 21, 21) |
8044 __gen_field(values
->DwordLength
, 0, 7) |
8048 __gen_field(values
->Offset
, 2, 11) |
8052 __gen_field(values
->DataDWord0
, 0, 31) |
8056 __gen_field(values
->DataDWord1
, 0, 31) |
8061 #define GEN9_MI_STORE_URB_MEM_length_bias 0x00000002
8062 #define GEN9_MI_STORE_URB_MEM_header \
8064 .MICommandOpcode = 45, \
8067 #define GEN9_MI_STORE_URB_MEM_length 0x00000004
8069 struct GEN9_MI_STORE_URB_MEM
{
8070 uint32_t CommandType
;
8071 uint32_t MICommandOpcode
;
8072 uint32_t DwordLength
;
8073 uint32_t URBAddress
;
8074 __gen_address_type MemoryAddress
;
8078 GEN9_MI_STORE_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
8079 const struct GEN9_MI_STORE_URB_MEM
* restrict values
)
8081 uint32_t *dw
= (uint32_t * restrict
) dst
;
8084 __gen_field(values
->CommandType
, 29, 31) |
8085 __gen_field(values
->MICommandOpcode
, 23, 28) |
8086 __gen_field(values
->DwordLength
, 0, 7) |
8090 __gen_field(values
->URBAddress
, 2, 14) |
8097 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
8104 #define GEN9_MI_SUSPEND_FLUSH_length_bias 0x00000001
8105 #define GEN9_MI_SUSPEND_FLUSH_header \
8107 .MICommandOpcode = 11
8109 #define GEN9_MI_SUSPEND_FLUSH_length 0x00000001
8111 struct GEN9_MI_SUSPEND_FLUSH
{
8112 uint32_t CommandType
;
8113 uint32_t MICommandOpcode
;
8118 GEN9_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
8119 const struct GEN9_MI_SUSPEND_FLUSH
* restrict values
)
8121 uint32_t *dw
= (uint32_t * restrict
) dst
;
8124 __gen_field(values
->CommandType
, 29, 31) |
8125 __gen_field(values
->MICommandOpcode
, 23, 28) |
8126 __gen_field(values
->SuspendFlush
, 0, 0) |
8131 #define GEN9_MI_TOPOLOGY_FILTER_length_bias 0x00000001
8132 #define GEN9_MI_TOPOLOGY_FILTER_header \
8134 .MICommandOpcode = 13
8136 #define GEN9_MI_TOPOLOGY_FILTER_length 0x00000001
8138 struct GEN9_MI_TOPOLOGY_FILTER
{
8139 uint32_t CommandType
;
8140 uint32_t MICommandOpcode
;
8141 uint32_t TopologyFilterValue
;
8145 GEN9_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
8146 const struct GEN9_MI_TOPOLOGY_FILTER
* restrict values
)
8148 uint32_t *dw
= (uint32_t * restrict
) dst
;
8151 __gen_field(values
->CommandType
, 29, 31) |
8152 __gen_field(values
->MICommandOpcode
, 23, 28) |
8153 __gen_field(values
->TopologyFilterValue
, 0, 5) |
8158 #define GEN9_MI_UPDATE_GTT_length_bias 0x00000002
8159 #define GEN9_MI_UPDATE_GTT_header \
8161 .MICommandOpcode = 35
8163 #define GEN9_MI_UPDATE_GTT_length 0x00000000
8165 struct GEN9_MI_UPDATE_GTT
{
8166 uint32_t CommandType
;
8167 uint32_t MICommandOpcode
;
8168 uint32_t DwordLength
;
8169 __gen_address_type EntryAddress
;
8170 /* variable length fields follow */
8174 GEN9_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
8175 const struct GEN9_MI_UPDATE_GTT
* restrict values
)
8177 uint32_t *dw
= (uint32_t * restrict
) dst
;
8180 __gen_field(values
->CommandType
, 29, 31) |
8181 __gen_field(values
->MICommandOpcode
, 23, 28) |
8182 __gen_field(values
->DwordLength
, 0, 9) |
8189 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
8191 /* variable length fields follow */
8194 #define GEN9_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
8195 #define GEN9_MI_URB_ATOMIC_ALLOC_header \
8197 .MICommandOpcode = 9
8199 #define GEN9_MI_URB_ATOMIC_ALLOC_length 0x00000001
8201 struct GEN9_MI_URB_ATOMIC_ALLOC
{
8202 uint32_t CommandType
;
8203 uint32_t MICommandOpcode
;
8204 uint32_t URBAtomicStorageOffset
;
8205 uint32_t URBAtomicStorageSize
;
8209 GEN9_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
8210 const struct GEN9_MI_URB_ATOMIC_ALLOC
* restrict values
)
8212 uint32_t *dw
= (uint32_t * restrict
) dst
;
8215 __gen_field(values
->CommandType
, 29, 31) |
8216 __gen_field(values
->MICommandOpcode
, 23, 28) |
8217 __gen_field(values
->URBAtomicStorageOffset
, 12, 19) |
8218 __gen_field(values
->URBAtomicStorageSize
, 0, 8) |
8223 #define GEN9_MI_USER_INTERRUPT_length_bias 0x00000001
8224 #define GEN9_MI_USER_INTERRUPT_header \
8226 .MICommandOpcode = 2
8228 #define GEN9_MI_USER_INTERRUPT_length 0x00000001
8230 struct GEN9_MI_USER_INTERRUPT
{
8231 uint32_t CommandType
;
8232 uint32_t MICommandOpcode
;
8236 GEN9_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
8237 const struct GEN9_MI_USER_INTERRUPT
* restrict values
)
8239 uint32_t *dw
= (uint32_t * restrict
) dst
;
8242 __gen_field(values
->CommandType
, 29, 31) |
8243 __gen_field(values
->MICommandOpcode
, 23, 28) |
8248 #define GEN9_MI_WAIT_FOR_EVENT_length_bias 0x00000001
8249 #define GEN9_MI_WAIT_FOR_EVENT_header \
8251 .MICommandOpcode = 3
8253 #define GEN9_MI_WAIT_FOR_EVENT_length 0x00000001
8255 struct GEN9_MI_WAIT_FOR_EVENT
{
8256 uint32_t CommandType
;
8257 uint32_t MICommandOpcode
;
8258 bool DisplayPlane1CVerticalBlankWaitEnable
;
8259 bool DisplayPlane6FlipPendingWaitEnable
;
8260 bool DisplayPlane12FlipPendingWaitEnable
;
8261 bool DisplayPlane11FlipPendingWaitEnable
;
8262 bool DisplayPlane10FlipPendingWaitEnable
;
8263 bool DisplayPlane9FlipPendingWaitEnable
;
8264 bool DisplayPlane3FlipPendingWaitEnable
;
8265 bool DisplayPlane1CScanLineWaitEnable
;
8266 bool DisplayPlane1BVerticalBlankWaitEnable
;
8267 bool DisplayPlane5FlipPendingWaitEnable
;
8268 bool DisplayPlane2FlipPendingWaitEnable
;
8269 bool DisplayPlane1BScanLineWaitEnable
;
8270 bool DisplayPlane8FlipPendingWaitEnable
;
8271 bool DisplayPlane7FlipPendingWaitEnable
;
8272 bool DisplayPlane1AVerticalBlankWaitEnable
;
8273 bool DisplayPlane4FlipPendingWaitEnable
;
8274 bool DisplayPlane1FlipPendingWaitEnable
;
8275 bool DisplayPlnae1AScanLineWaitEnable
;
8279 GEN9_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
8280 const struct GEN9_MI_WAIT_FOR_EVENT
* restrict values
)
8282 uint32_t *dw
= (uint32_t * restrict
) dst
;
8285 __gen_field(values
->CommandType
, 29, 31) |
8286 __gen_field(values
->MICommandOpcode
, 23, 28) |
8287 __gen_field(values
->DisplayPlane1CVerticalBlankWaitEnable
, 21, 21) |
8288 __gen_field(values
->DisplayPlane6FlipPendingWaitEnable
, 20, 20) |
8289 __gen_field(values
->DisplayPlane12FlipPendingWaitEnable
, 19, 19) |
8290 __gen_field(values
->DisplayPlane11FlipPendingWaitEnable
, 18, 18) |
8291 __gen_field(values
->DisplayPlane10FlipPendingWaitEnable
, 17, 17) |
8292 __gen_field(values
->DisplayPlane9FlipPendingWaitEnable
, 16, 16) |
8293 __gen_field(values
->DisplayPlane3FlipPendingWaitEnable
, 15, 15) |
8294 __gen_field(values
->DisplayPlane1CScanLineWaitEnable
, 14, 14) |
8295 __gen_field(values
->DisplayPlane1BVerticalBlankWaitEnable
, 11, 11) |
8296 __gen_field(values
->DisplayPlane5FlipPendingWaitEnable
, 10, 10) |
8297 __gen_field(values
->DisplayPlane2FlipPendingWaitEnable
, 9, 9) |
8298 __gen_field(values
->DisplayPlane1BScanLineWaitEnable
, 8, 8) |
8299 __gen_field(values
->DisplayPlane8FlipPendingWaitEnable
, 7, 7) |
8300 __gen_field(values
->DisplayPlane7FlipPendingWaitEnable
, 6, 6) |
8301 __gen_field(values
->DisplayPlane1AVerticalBlankWaitEnable
, 3, 3) |
8302 __gen_field(values
->DisplayPlane4FlipPendingWaitEnable
, 2, 2) |
8303 __gen_field(values
->DisplayPlane1FlipPendingWaitEnable
, 1, 1) |
8304 __gen_field(values
->DisplayPlnae1AScanLineWaitEnable
, 0, 0) |
8309 #define GEN9_PIPE_CONTROL_length_bias 0x00000002
8310 #define GEN9_PIPE_CONTROL_header \
8312 .CommandSubType = 3, \
8313 ._3DCommandOpcode = 2, \
8314 ._3DCommandSubOpcode = 0, \
8317 #define GEN9_PIPE_CONTROL_length 0x00000006
8319 struct GEN9_PIPE_CONTROL
{
8320 uint32_t CommandType
;
8321 uint32_t CommandSubType
;
8322 uint32_t _3DCommandOpcode
;
8323 uint32_t _3DCommandSubOpcode
;
8324 uint32_t DwordLength
;
8328 uint32_t DestinationAddressType
;
8329 #define NoLRIOperation 0
8330 #define MMIOWriteImmediateData 1
8331 uint32_t LRIPostSyncOperation
;
8332 uint32_t StoreDataIndex
;
8333 uint32_t CommandStreamerStallEnable
;
8336 uint32_t GlobalSnapshotCountReset
;
8337 uint32_t TLBInvalidate
;
8338 bool GenericMediaStateClear
;
8340 #define WriteImmediateData 1
8341 #define WritePSDepthCount 2
8342 #define WriteTimestamp 3
8343 uint32_t PostSyncOperation
;
8344 bool DepthStallEnable
;
8345 #define DisableFlush 0
8346 #define EnableFlush 1
8347 bool RenderTargetCacheFlushEnable
;
8348 bool InstructionCacheInvalidateEnable
;
8349 bool TextureCacheInvalidationEnable
;
8350 bool IndirectStatePointersDisable
;
8352 bool PipeControlFlushEnable
;
8354 bool VFCacheInvalidationEnable
;
8355 bool ConstantCacheInvalidationEnable
;
8356 bool StateCacheInvalidationEnable
;
8357 bool StallAtPixelScoreboard
;
8358 #define FlushDisabled 0
8359 #define FlushEnabled 1
8360 bool DepthCacheFlushEnable
;
8361 __gen_address_type Address
;
8362 uint64_t ImmediateData
;
8366 GEN9_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
8367 const struct GEN9_PIPE_CONTROL
* restrict values
)
8369 uint32_t *dw
= (uint32_t * restrict
) dst
;
8372 __gen_field(values
->CommandType
, 29, 31) |
8373 __gen_field(values
->CommandSubType
, 27, 28) |
8374 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
8375 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
8376 __gen_field(values
->DwordLength
, 0, 7) |
8380 __gen_field(values
->FlushLLC
, 26, 26) |
8381 __gen_field(values
->DestinationAddressType
, 24, 24) |
8382 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
8383 __gen_field(values
->StoreDataIndex
, 21, 21) |
8384 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
8385 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
8386 __gen_field(values
->TLBInvalidate
, 18, 18) |
8387 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
8388 __gen_field(values
->PostSyncOperation
, 14, 15) |
8389 __gen_field(values
->DepthStallEnable
, 13, 13) |
8390 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
8391 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
8392 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
8393 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
8394 __gen_field(values
->NotifyEnable
, 8, 8) |
8395 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
8396 __gen_field(values
->DCFlushEnable
, 5, 5) |
8397 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
8398 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
8399 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
8400 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
8401 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
8408 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
8414 __gen_field(values
->ImmediateData
, 0, 63) |
8422 #define GEN9_SCISSOR_RECT_length 0x00000002
8424 struct GEN9_SCISSOR_RECT
{
8425 uint32_t ScissorRectangleYMin
;
8426 uint32_t ScissorRectangleXMin
;
8427 uint32_t ScissorRectangleYMax
;
8428 uint32_t ScissorRectangleXMax
;
8432 GEN9_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
8433 const struct GEN9_SCISSOR_RECT
* restrict values
)
8435 uint32_t *dw
= (uint32_t * restrict
) dst
;
8438 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
8439 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
8443 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
8444 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
8449 #define GEN9_SF_CLIP_VIEWPORT_length 0x00000010
8451 struct GEN9_SF_CLIP_VIEWPORT
{
8452 float ViewportMatrixElementm00
;
8453 float ViewportMatrixElementm11
;
8454 float ViewportMatrixElementm22
;
8455 float ViewportMatrixElementm30
;
8456 float ViewportMatrixElementm31
;
8457 float ViewportMatrixElementm32
;
8458 float XMinClipGuardband
;
8459 float XMaxClipGuardband
;
8460 float YMinClipGuardband
;
8461 float YMaxClipGuardband
;
8469 GEN9_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
8470 const struct GEN9_SF_CLIP_VIEWPORT
* restrict values
)
8472 uint32_t *dw
= (uint32_t * restrict
) dst
;
8475 __gen_float(values
->ViewportMatrixElementm00
) |
8479 __gen_float(values
->ViewportMatrixElementm11
) |
8483 __gen_float(values
->ViewportMatrixElementm22
) |
8487 __gen_float(values
->ViewportMatrixElementm30
) |
8491 __gen_float(values
->ViewportMatrixElementm31
) |
8495 __gen_float(values
->ViewportMatrixElementm32
) |
8505 __gen_float(values
->XMinClipGuardband
) |
8509 __gen_float(values
->XMaxClipGuardband
) |
8513 __gen_float(values
->YMinClipGuardband
) |
8517 __gen_float(values
->YMaxClipGuardband
) |
8521 __gen_float(values
->XMinViewPort
) |
8525 __gen_float(values
->XMaxViewPort
) |
8529 __gen_float(values
->YMinViewPort
) |
8533 __gen_float(values
->YMaxViewPort
) |
8538 #define GEN9_BLEND_STATE_length 0x00000011
8540 #define GEN9_BLEND_STATE_ENTRY_length 0x00000002
8542 struct GEN9_BLEND_STATE_ENTRY
{
8544 uint32_t LogicOpFunction
;
8545 uint32_t PreBlendSourceOnlyClampEnable
;
8546 #define COLORCLAMP_UNORM 0
8547 #define COLORCLAMP_SNORM 1
8548 #define COLORCLAMP_RTFORMAT 2
8549 uint32_t ColorClampRange
;
8550 bool PreBlendColorClampEnable
;
8551 bool PostBlendColorClampEnable
;
8552 bool ColorBufferBlendEnable
;
8553 uint32_t SourceBlendFactor
;
8554 uint32_t DestinationBlendFactor
;
8555 uint32_t ColorBlendFunction
;
8556 uint32_t SourceAlphaBlendFactor
;
8557 uint32_t DestinationAlphaBlendFactor
;
8558 uint32_t AlphaBlendFunction
;
8559 bool WriteDisableAlpha
;
8560 bool WriteDisableRed
;
8561 bool WriteDisableGreen
;
8562 bool WriteDisableBlue
;
8566 GEN9_BLEND_STATE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
8567 const struct GEN9_BLEND_STATE_ENTRY
* restrict values
)
8569 uint32_t *dw
= (uint32_t * restrict
) dst
;
8572 __gen_field(values
->LogicOpEnable
, 63, 63) |
8573 __gen_field(values
->LogicOpFunction
, 59, 62) |
8574 __gen_field(values
->PreBlendSourceOnlyClampEnable
, 36, 36) |
8575 __gen_field(values
->ColorClampRange
, 34, 35) |
8576 __gen_field(values
->PreBlendColorClampEnable
, 33, 33) |
8577 __gen_field(values
->PostBlendColorClampEnable
, 32, 32) |
8578 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
8579 __gen_field(values
->SourceBlendFactor
, 26, 30) |
8580 __gen_field(values
->DestinationBlendFactor
, 21, 25) |
8581 __gen_field(values
->ColorBlendFunction
, 18, 20) |
8582 __gen_field(values
->SourceAlphaBlendFactor
, 13, 17) |
8583 __gen_field(values
->DestinationAlphaBlendFactor
, 8, 12) |
8584 __gen_field(values
->AlphaBlendFunction
, 5, 7) |
8585 __gen_field(values
->WriteDisableAlpha
, 3, 3) |
8586 __gen_field(values
->WriteDisableRed
, 2, 2) |
8587 __gen_field(values
->WriteDisableGreen
, 1, 1) |
8588 __gen_field(values
->WriteDisableBlue
, 0, 0) |
8596 struct GEN9_BLEND_STATE
{
8597 bool AlphaToCoverageEnable
;
8598 bool IndependentAlphaBlendEnable
;
8599 bool AlphaToOneEnable
;
8600 bool AlphaToCoverageDitherEnable
;
8601 bool AlphaTestEnable
;
8602 uint32_t AlphaTestFunction
;
8603 bool ColorDitherEnable
;
8604 uint32_t XDitherOffset
;
8605 uint32_t YDitherOffset
;
8606 struct GEN9_BLEND_STATE_ENTRY Entry
[8];
8610 GEN9_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8611 const struct GEN9_BLEND_STATE
* restrict values
)
8613 uint32_t *dw
= (uint32_t * restrict
) dst
;
8616 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
8617 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
8618 __gen_field(values
->AlphaToOneEnable
, 29, 29) |
8619 __gen_field(values
->AlphaToCoverageDitherEnable
, 28, 28) |
8620 __gen_field(values
->AlphaTestEnable
, 27, 27) |
8621 __gen_field(values
->AlphaTestFunction
, 24, 26) |
8622 __gen_field(values
->ColorDitherEnable
, 23, 23) |
8623 __gen_field(values
->XDitherOffset
, 21, 22) |
8624 __gen_field(values
->YDitherOffset
, 19, 20) |
8627 for (uint32_t i
= 0, j
= 1; i
< 8; i
++, j
+= 2)
8628 GEN9_BLEND_STATE_ENTRY_pack(data
, &dw
[j
], &values
->Entry
[i
]);
8631 #define GEN9_CC_VIEWPORT_length 0x00000002
8633 struct GEN9_CC_VIEWPORT
{
8639 GEN9_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
8640 const struct GEN9_CC_VIEWPORT
* restrict values
)
8642 uint32_t *dw
= (uint32_t * restrict
) dst
;
8645 __gen_float(values
->MinimumDepth
) |
8649 __gen_float(values
->MaximumDepth
) |
8654 #define GEN9_COLOR_CALC_STATE_length 0x00000006
8656 struct GEN9_COLOR_CALC_STATE
{
8658 #define NotCancelled 1
8659 uint32_t RoundDisableFunctionDisable
;
8660 #define ALPHATEST_UNORM8 0
8661 #define ALPHATEST_FLOAT32 1
8662 uint32_t AlphaTestFormat
;
8663 uint32_t AlphaReferenceValueAsUNORM8
;
8664 float AlphaReferenceValueAsFLOAT32
;
8665 float BlendConstantColorRed
;
8666 float BlendConstantColorGreen
;
8667 float BlendConstantColorBlue
;
8668 float BlendConstantColorAlpha
;
8672 GEN9_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8673 const struct GEN9_COLOR_CALC_STATE
* restrict values
)
8675 uint32_t *dw
= (uint32_t * restrict
) dst
;
8678 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
8679 __gen_field(values
->AlphaTestFormat
, 0, 0) |
8683 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
8684 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
8688 __gen_float(values
->BlendConstantColorRed
) |
8692 __gen_float(values
->BlendConstantColorGreen
) |
8696 __gen_float(values
->BlendConstantColorBlue
) |
8700 __gen_float(values
->BlendConstantColorAlpha
) |
8705 #define GEN9_EXECUTION_UNIT_EXTENDED_MESSAGE_DESCRIPTOR_length 0x00000001
8707 struct GEN9_EXECUTION_UNIT_EXTENDED_MESSAGE_DESCRIPTOR
{
8708 uint32_t ExtendedMessageLength
;
8709 #define NoTermination 0
8711 uint32_t EndOfThread
;
8712 uint32_t TargetFunctionID
;
8716 GEN9_EXECUTION_UNIT_EXTENDED_MESSAGE_DESCRIPTOR_pack(__gen_user_data
*data
, void * restrict dst
,
8717 const struct GEN9_EXECUTION_UNIT_EXTENDED_MESSAGE_DESCRIPTOR
* restrict values
)
8719 uint32_t *dw
= (uint32_t * restrict
) dst
;
8722 __gen_field(values
->ExtendedMessageLength
, 6, 9) |
8723 __gen_field(values
->EndOfThread
, 5, 5) |
8724 __gen_field(values
->TargetFunctionID
, 0, 3) |
8729 #define GEN9_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
8731 struct GEN9_INTERFACE_DESCRIPTOR_DATA
{
8732 uint32_t KernelStartPointer
;
8733 uint32_t KernelStartPointerHigh
;
8735 #define SetByKernel 1
8736 uint32_t DenormMode
;
8739 uint32_t SingleProgramFlow
;
8740 #define NormalPriority 0
8741 #define HighPriority 1
8742 uint32_t ThreadPriority
;
8745 uint32_t FloatingPointMode
;
8746 bool IllegalOpcodeExceptionEnable
;
8747 bool MaskStackExceptionEnable
;
8748 bool SoftwareExceptionEnable
;
8749 uint32_t SamplerStatePointer
;
8750 #define Nosamplersused 0
8751 #define Between1and4samplersused 1
8752 #define Between5and8samplersused 2
8753 #define Between9and12samplersused 3
8754 #define Between13and16samplersused 4
8755 uint32_t SamplerCount
;
8756 uint32_t BindingTablePointer
;
8757 uint32_t BindingTableEntryCount
;
8758 uint32_t ConstantIndirectURBEntryReadLength
;
8759 uint32_t ConstantURBEntryReadOffset
;
8764 uint32_t RoundingMode
;
8771 #define Encodes16K 5
8772 #define Encodes32K 6
8773 #define Encodes64K 7
8774 uint32_t SharedLocalMemorySize
;
8775 bool GlobalBarrierEnable
;
8776 uint32_t NumberofThreadsinGPGPUThreadGroup
;
8777 uint32_t CrossThreadConstantDataReadLength
;
8781 GEN9_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
8782 const struct GEN9_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
8784 uint32_t *dw
= (uint32_t * restrict
) dst
;
8787 __gen_offset(values
->KernelStartPointer
, 6, 31) |
8791 __gen_offset(values
->KernelStartPointerHigh
, 0, 15) |
8795 __gen_field(values
->DenormMode
, 19, 19) |
8796 __gen_field(values
->SingleProgramFlow
, 18, 18) |
8797 __gen_field(values
->ThreadPriority
, 17, 17) |
8798 __gen_field(values
->FloatingPointMode
, 16, 16) |
8799 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
8800 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
8801 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
8805 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
8806 __gen_field(values
->SamplerCount
, 2, 4) |
8810 __gen_offset(values
->BindingTablePointer
, 5, 15) |
8811 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
8815 __gen_field(values
->ConstantIndirectURBEntryReadLength
, 16, 31) |
8816 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
8820 __gen_field(values
->RoundingMode
, 22, 23) |
8821 __gen_field(values
->BarrierEnable
, 21, 21) |
8822 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
8823 __gen_field(values
->GlobalBarrierEnable
, 15, 15) |
8824 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 9) |
8828 __gen_field(values
->CrossThreadConstantDataReadLength
, 0, 7) |
8833 #define GEN9_ROUNDINGPRECISIONTABLE_3_BITS_length 0x00000001
8835 struct GEN9_ROUNDINGPRECISIONTABLE_3_BITS
{
8844 uint32_t RoundingPrecision
;
8848 GEN9_ROUNDINGPRECISIONTABLE_3_BITS_pack(__gen_user_data
*data
, void * restrict dst
,
8849 const struct GEN9_ROUNDINGPRECISIONTABLE_3_BITS
* restrict values
)
8851 uint32_t *dw
= (uint32_t * restrict
) dst
;
8854 __gen_field(values
->RoundingPrecision
, 0, 2) |
8859 #define GEN9_BINDING_TABLE_STATE_length 0x00000001
8861 struct GEN9_BINDING_TABLE_STATE
{
8862 uint32_t SurfaceStatePointer
;
8866 GEN9_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8867 const struct GEN9_BINDING_TABLE_STATE
* restrict values
)
8869 uint32_t *dw
= (uint32_t * restrict
) dst
;
8872 __gen_offset(values
->SurfaceStatePointer
, 6, 31) |
8877 #define GEN9_RENDER_SURFACE_STATE_length 0x00000010
8879 struct GEN9_RENDER_SURFACE_STATE
{
8880 #define SURFTYPE_1D 0
8881 #define SURFTYPE_2D 1
8882 #define SURFTYPE_3D 2
8883 #define SURFTYPE_CUBE 3
8884 #define SURFTYPE_BUFFER 4
8885 #define SURFTYPE_STRBUF 5
8886 #define SURFTYPE_NULL 7
8887 uint32_t SurfaceType
;
8890 uint32_t SurfaceFormat
;
8894 uint32_t SurfaceVerticalAlignment
;
8898 uint32_t SurfaceHorizontalAlignment
;
8904 uint32_t VerticalLineStride
;
8905 uint32_t VerticalLineStrideOffset
;
8906 bool SamplerL2BypassModeDisable
;
8907 #define WriteOnlyCache 0
8908 #define ReadWriteCache 1
8909 uint32_t RenderCacheReadWriteMode
;
8910 #define NORMAL_MODE 0
8911 #define PROGRESSIVE_FRAME 2
8912 #define INTERLACED_FRAME 3
8913 uint32_t MediaBoundaryPixelMode
;
8914 bool CubeFaceEnablePositiveZ
;
8915 bool CubeFaceEnableNegativeZ
;
8916 bool CubeFaceEnablePositiveY
;
8917 bool CubeFaceEnableNegativeY
;
8918 bool CubeFaceEnablePositiveX
;
8919 bool CubeFaceEnableNegativeX
;
8920 struct GEN9_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
8922 uint32_t SurfaceQPitch
;
8926 uint32_t SurfacePitch
;
8931 uint32_t RenderTargetAndSampleUnormRotation
;
8932 uint32_t MinimumArrayElement
;
8933 uint32_t RenderTargetViewExtent
;
8935 #define DEPTH_STENCIL 1
8936 uint32_t MultisampledSurfaceStorageFormat
;
8937 #define MULTISAMPLECOUNT_1 0
8938 #define MULTISAMPLECOUNT_2 1
8939 #define MULTISAMPLECOUNT_4 2
8940 #define MULTISAMPLECOUNT_8 3
8941 #define MULTISAMPLECOUNT_16 4
8942 uint32_t NumberofMultisamples
;
8943 uint32_t MultisamplePositionPaletteIndex
;
8946 bool EWADisableForCube
;
8952 uint32_t TiledResourceMode
;
8953 #define GPUcoherent 0
8954 #define IAcoherent 1
8955 uint32_t CoherencyType
;
8956 uint32_t MipTailStartLOD
;
8957 uint32_t SurfaceMinLOD
;
8958 uint32_t MIPCountLOD
;
8959 uint32_t AuxiliarySurfaceQPitch
;
8960 uint32_t AuxiliarySurfacePitch
;
8963 #define AUX_APPEND 2
8966 uint32_t AuxiliarySurfaceMode
;
8967 bool SeparateUVPlaneEnable
;
8968 uint32_t XOffsetforUorUVPlane
;
8969 uint32_t YOffsetforUorUVPlane
;
8970 #define Horizontal 0
8972 uint32_t MemoryCompressionMode
;
8973 bool MemoryCompressionEnable
;
8974 uint32_t ShaderChannelSelectRed
;
8975 uint32_t ShaderChannelSelectGreen
;
8976 uint32_t ShaderChannelSelectBlue
;
8977 uint32_t ShaderChannelSelectAlpha
;
8978 float ResourceMinLOD
;
8979 __gen_address_type SurfaceBaseAddress
;
8980 uint32_t XOffsetforVPlane
;
8981 uint32_t YOffsetforVPlane
;
8982 uint32_t AuxiliaryTableIndexforMediaCompressedSurface
;
8983 __gen_address_type AuxiliarySurfaceBaseAddress
;
8984 uint32_t QuiltHeight
;
8985 uint32_t QuiltWidth
;
8986 float HierarchicalDepthClearValue
;
8987 uint32_t RedClearColor
;
8988 uint32_t GreenClearColor
;
8989 uint32_t BlueClearColor
;
8990 uint32_t AlphaClearColor
;
8994 GEN9_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8995 const struct GEN9_RENDER_SURFACE_STATE
* restrict values
)
8997 uint32_t *dw
= (uint32_t * restrict
) dst
;
9000 __gen_field(values
->SurfaceType
, 29, 31) |
9001 __gen_field(values
->SurfaceArray
, 28, 28) |
9002 __gen_field(values
->ASTC_Enable
, 27, 27) |
9003 __gen_field(values
->SurfaceFormat
, 18, 26) |
9004 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
9005 __gen_field(values
->SurfaceHorizontalAlignment
, 14, 15) |
9006 __gen_field(values
->TileMode
, 12, 13) |
9007 __gen_field(values
->VerticalLineStride
, 11, 11) |
9008 __gen_field(values
->VerticalLineStrideOffset
, 10, 10) |
9009 __gen_field(values
->SamplerL2BypassModeDisable
, 9, 9) |
9010 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
9011 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
9012 __gen_field(values
->CubeFaceEnablePositiveZ
, 0, 0) |
9013 __gen_field(values
->CubeFaceEnableNegativeZ
, 1, 1) |
9014 __gen_field(values
->CubeFaceEnablePositiveY
, 2, 2) |
9015 __gen_field(values
->CubeFaceEnableNegativeY
, 3, 3) |
9016 __gen_field(values
->CubeFaceEnablePositiveX
, 4, 4) |
9017 __gen_field(values
->CubeFaceEnableNegativeX
, 5, 5) |
9020 uint32_t dw_MemoryObjectControlState
;
9021 GEN9_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
9023 __gen_field(dw_MemoryObjectControlState
, 24, 30) |
9024 __gen_field(values
->BaseMipLevel
* (1 << 1), 19, 23) |
9025 __gen_field(values
->SurfaceQPitch
, 0, 14) |
9029 __gen_field(values
->Height
, 16, 29) |
9030 __gen_field(values
->Width
, 0, 13) |
9034 __gen_field(values
->Depth
, 21, 31) |
9035 __gen_field(values
->SurfacePitch
, 0, 17) |
9039 __gen_field(values
->RenderTargetAndSampleUnormRotation
, 29, 30) |
9040 __gen_field(values
->MinimumArrayElement
, 18, 28) |
9041 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
9042 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
9043 __gen_field(values
->NumberofMultisamples
, 3, 5) |
9044 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
9048 __gen_offset(values
->XOffset
, 25, 31) |
9049 __gen_offset(values
->YOffset
, 21, 23) |
9050 __gen_field(values
->EWADisableForCube
, 20, 20) |
9051 __gen_field(values
->TiledResourceMode
, 18, 19) |
9052 __gen_field(values
->CoherencyType
, 14, 14) |
9053 __gen_field(values
->MipTailStartLOD
, 8, 11) |
9054 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
9055 __gen_field(values
->MIPCountLOD
, 0, 3) |
9059 __gen_field(values
->AuxiliarySurfaceQPitch
, 16, 30) |
9060 __gen_field(values
->AuxiliarySurfacePitch
, 3, 11) |
9061 __gen_field(values
->AuxiliarySurfaceMode
, 0, 2) |
9062 __gen_field(values
->SeparateUVPlaneEnable
, 31, 31) |
9063 __gen_field(values
->XOffsetforUorUVPlane
, 16, 29) |
9064 __gen_field(values
->YOffsetforUorUVPlane
, 0, 13) |
9068 __gen_field(values
->MemoryCompressionMode
, 31, 31) |
9069 __gen_field(values
->MemoryCompressionEnable
, 30, 30) |
9070 __gen_field(values
->ShaderChannelSelectRed
, 25, 27) |
9071 __gen_field(values
->ShaderChannelSelectGreen
, 22, 24) |
9072 __gen_field(values
->ShaderChannelSelectBlue
, 19, 21) |
9073 __gen_field(values
->ShaderChannelSelectAlpha
, 16, 18) |
9074 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
9081 __gen_combine_address(data
, &dw
[8], values
->SurfaceBaseAddress
, dw8
);
9087 __gen_field(values
->XOffsetforVPlane
, 48, 61) |
9088 __gen_field(values
->YOffsetforVPlane
, 32, 45) |
9089 __gen_field(values
->AuxiliaryTableIndexforMediaCompressedSurface
, 21, 31) |
9090 __gen_field(values
->QuiltHeight
, 5, 9) |
9091 __gen_field(values
->QuiltWidth
, 0, 4) |
9095 __gen_combine_address(data
, &dw
[10], values
->AuxiliarySurfaceBaseAddress
, dw10
);
9098 dw
[11] = qw10
>> 32;
9101 __gen_float(values
->HierarchicalDepthClearValue
) |
9102 __gen_field(values
->RedClearColor
, 0, 31) |
9106 __gen_field(values
->GreenClearColor
, 0, 31) |
9110 __gen_field(values
->BlueClearColor
, 0, 31) |
9114 __gen_field(values
->AlphaClearColor
, 0, 31) |
9119 #define GEN9_FILTER_COEFFICIENT_length 0x00000001
9121 struct GEN9_FILTER_COEFFICIENT
{
9122 uint32_t FilterCoefficient
;
9126 GEN9_FILTER_COEFFICIENT_pack(__gen_user_data
*data
, void * restrict dst
,
9127 const struct GEN9_FILTER_COEFFICIENT
* restrict values
)
9129 uint32_t *dw
= (uint32_t * restrict
) dst
;
9132 __gen_field(values
->FilterCoefficient
, 0, 7) |
9137 #define GEN9_SAMPLER_STATE_length 0x00000004
9139 struct GEN9_SAMPLER_STATE
{
9140 bool SamplerDisable
;
9143 uint32_t TextureBorderColorMode
;
9144 #define CLAMP_NONE 0
9146 uint32_t LODPreClampMode
;
9147 uint32_t CoarseLODQualityMode
;
9148 #define MIPFILTER_NONE 0
9149 #define MIPFILTER_NEAREST 1
9150 #define MIPFILTER_LINEAR 3
9151 uint32_t MipModeFilter
;
9152 #define MAPFILTER_NEAREST 0
9153 #define MAPFILTER_LINEAR 1
9154 #define MAPFILTER_ANISOTROPIC 2
9155 #define MAPFILTER_MONO 6
9156 uint32_t MagModeFilter
;
9157 #define MAPFILTER_NEAREST 0
9158 #define MAPFILTER_LINEAR 1
9159 #define MAPFILTER_ANISOTROPIC 2
9160 #define MAPFILTER_MONO 6
9161 uint32_t MinModeFilter
;
9162 uint32_t TextureLODBias
;
9164 #define EWAApproximation 1
9165 uint32_t AnisotropicAlgorithm
;
9168 bool ChromaKeyEnable
;
9169 uint32_t ChromaKeyIndex
;
9170 #define KEYFILTER_KILL_ON_ANY_MATCH 0
9171 #define KEYFILTER_REPLACE_BLACK 1
9172 uint32_t ChromaKeyMode
;
9173 #define PREFILTEROPALWAYS 0
9174 #define PREFILTEROPNEVER 1
9175 #define PREFILTEROPLESS 2
9176 #define PREFILTEROPEQUAL 3
9177 #define PREFILTEROPLEQUAL 4
9178 #define PREFILTEROPGREATER 5
9179 #define PREFILTEROPNOTEQUAL 6
9180 #define PREFILTEROPGEQUAL 7
9181 uint32_t ShadowFunction
;
9182 #define PROGRAMMED 0
9184 uint32_t CubeSurfaceControlMode
;
9185 uint32_t IndirectStatePointer
;
9188 uint32_t LODClampMagnificationMode
;
9189 #define STD_FILTER 0
9190 #define COMPARISON 1
9193 uint32_t ReductionType
;
9202 uint32_t MaximumAnisotropy
;
9203 bool RAddressMinFilterRoundingEnable
;
9204 bool RAddressMagFilterRoundingEnable
;
9205 bool VAddressMinFilterRoundingEnable
;
9206 bool VAddressMagFilterRoundingEnable
;
9207 bool UAddressMinFilterRoundingEnable
;
9208 bool UAddressMagFilterRoundingEnable
;
9213 uint32_t TrilinearFilterQuality
;
9214 bool NonnormalizedCoordinateEnable
;
9215 bool ReductionTypeEnable
;
9216 uint32_t TCXAddressControlMode
;
9217 uint32_t TCYAddressControlMode
;
9218 uint32_t TCZAddressControlMode
;
9222 GEN9_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
9223 const struct GEN9_SAMPLER_STATE
* restrict values
)
9225 uint32_t *dw
= (uint32_t * restrict
) dst
;
9228 __gen_field(values
->SamplerDisable
, 31, 31) |
9229 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
9230 __gen_field(values
->LODPreClampMode
, 27, 28) |
9231 __gen_field(values
->CoarseLODQualityMode
, 22, 26) |
9232 __gen_field(values
->MipModeFilter
, 20, 21) |
9233 __gen_field(values
->MagModeFilter
, 17, 19) |
9234 __gen_field(values
->MinModeFilter
, 14, 16) |
9235 __gen_field(values
->TextureLODBias
, 1, 13) |
9236 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
9240 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
9241 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
9242 __gen_field(values
->ChromaKeyEnable
, 7, 7) |
9243 __gen_field(values
->ChromaKeyIndex
, 5, 6) |
9244 __gen_field(values
->ChromaKeyMode
, 4, 4) |
9245 __gen_field(values
->ShadowFunction
, 1, 3) |
9246 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
9250 __gen_field(values
->IndirectStatePointer
, 6, 23) |
9251 __gen_field(values
->LODClampMagnificationMode
, 0, 0) |
9255 __gen_field(values
->ReductionType
, 22, 23) |
9256 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
9257 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
9258 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
9259 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
9260 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
9261 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
9262 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
9263 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
9264 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
9265 __gen_field(values
->ReductionTypeEnable
, 9, 9) |
9266 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
9267 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
9268 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
9273 #define GEN9_SAMPLER_STATE_8X8_AVS_COEFFICIENTS_length 0x00000008
9275 struct GEN9_SAMPLER_STATE_8X8_AVS_COEFFICIENTS
{
9276 uint32_t Table0YFilterCoefficientn1
;
9277 uint32_t Table0XFilterCoefficientn1
;
9278 uint32_t Table0YFilterCoefficientn0
;
9279 uint32_t Table0XFilterCoefficientn0
;
9280 uint32_t Table0YFilterCoefficientn3
;
9281 uint32_t Table0XFilterCoefficientn3
;
9282 uint32_t Table0YFilterCoefficientn2
;
9283 uint32_t Table0XFilterCoefficientn2
;
9284 uint32_t Table0YFilterCoefficientn5
;
9285 uint32_t Table0XFilterCoefficientn5
;
9286 uint32_t Table0YFilterCoefficientn4
;
9287 uint32_t Table0XFilterCoefficientn4
;
9288 uint32_t Table0YFilterCoefficientn7
;
9289 uint32_t Table0XFilterCoefficientn7
;
9290 uint32_t Table0YFilterCoefficientn6
;
9291 uint32_t Table0XFilterCoefficientn6
;
9292 uint32_t Table1XFilterCoefficientn3
;
9293 uint32_t Table1XFilterCoefficientn2
;
9294 uint32_t Table1XFilterCoefficientn5
;
9295 uint32_t Table1XFilterCoefficientn4
;
9296 uint32_t Table1YFilterCoefficientn3
;
9297 uint32_t Table1YFilterCoefficientn2
;
9298 uint32_t Table1YFilterCoefficientn5
;
9299 uint32_t Table1YFilterCoefficientn4
;
9303 GEN9_SAMPLER_STATE_8X8_AVS_COEFFICIENTS_pack(__gen_user_data
*data
, void * restrict dst
,
9304 const struct GEN9_SAMPLER_STATE_8X8_AVS_COEFFICIENTS
* restrict values
)
9306 uint32_t *dw
= (uint32_t * restrict
) dst
;
9309 __gen_field(values
->Table0YFilterCoefficientn1
, 24, 31) |
9310 __gen_field(values
->Table0XFilterCoefficientn1
, 16, 23) |
9311 __gen_field(values
->Table0YFilterCoefficientn0
, 8, 15) |
9312 __gen_field(values
->Table0XFilterCoefficientn0
, 0, 7) |
9316 __gen_field(values
->Table0YFilterCoefficientn3
, 24, 31) |
9317 __gen_field(values
->Table0XFilterCoefficientn3
, 16, 23) |
9318 __gen_field(values
->Table0YFilterCoefficientn2
, 8, 15) |
9319 __gen_field(values
->Table0XFilterCoefficientn2
, 0, 7) |
9323 __gen_field(values
->Table0YFilterCoefficientn5
, 24, 31) |
9324 __gen_field(values
->Table0XFilterCoefficientn5
, 16, 23) |
9325 __gen_field(values
->Table0YFilterCoefficientn4
, 8, 15) |
9326 __gen_field(values
->Table0XFilterCoefficientn4
, 0, 7) |
9330 __gen_field(values
->Table0YFilterCoefficientn7
, 24, 31) |
9331 __gen_field(values
->Table0XFilterCoefficientn7
, 16, 23) |
9332 __gen_field(values
->Table0YFilterCoefficientn6
, 8, 15) |
9333 __gen_field(values
->Table0XFilterCoefficientn6
, 0, 7) |
9337 __gen_field(values
->Table1XFilterCoefficientn3
, 24, 31) |
9338 __gen_field(values
->Table1XFilterCoefficientn2
, 16, 23) |
9342 __gen_field(values
->Table1XFilterCoefficientn5
, 8, 15) |
9343 __gen_field(values
->Table1XFilterCoefficientn4
, 0, 7) |
9347 __gen_field(values
->Table1YFilterCoefficientn3
, 24, 31) |
9348 __gen_field(values
->Table1YFilterCoefficientn2
, 16, 23) |
9352 __gen_field(values
->Table1YFilterCoefficientn5
, 8, 15) |
9353 __gen_field(values
->Table1YFilterCoefficientn4
, 0, 7) |
9358 /* Enum 3D_Prim_Topo_Type */
9359 #define _3DPRIM_POINTLIST 1
9360 #define _3DPRIM_LINELIST 2
9361 #define _3DPRIM_LINESTRIP 3
9362 #define _3DPRIM_TRILIST 4
9363 #define _3DPRIM_TRISTRIP 5
9364 #define _3DPRIM_TRIFAN 6
9365 #define _3DPRIM_QUADLIST 7
9366 #define _3DPRIM_QUADSTRIP 8
9367 #define _3DPRIM_LINELIST_ADJ 9
9368 #define _3DPRIM_LINESTRIP_ADJ 10
9369 #define _3DPRIM_TRILIST_ADJ 11
9370 #define _3DPRIM_TRISTRIP_ADJ 12
9371 #define _3DPRIM_TRISTRIP_REVERSE 13
9372 #define _3DPRIM_POLYGON 14
9373 #define _3DPRIM_RECTLIST 15
9374 #define _3DPRIM_LINELOOP 16
9375 #define _3DPRIM_POINTLIST_BF 17
9376 #define _3DPRIM_LINESTRIP_CONT 18
9377 #define _3DPRIM_LINESTRIP_BF 19
9378 #define _3DPRIM_LINESTRIP_CONT_BF 20
9379 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
9380 #define _3DPRIM_PATCHLIST_1 32
9381 #define _3DPRIM_PATCHLIST_2 33
9382 #define _3DPRIM_PATCHLIST_3 34
9383 #define _3DPRIM_PATCHLIST_4 35
9384 #define _3DPRIM_PATCHLIST_5 36
9385 #define _3DPRIM_PATCHLIST_6 37
9386 #define _3DPRIM_PATCHLIST_7 38
9387 #define _3DPRIM_PATCHLIST_8 39
9388 #define _3DPRIM_PATCHLIST_9 40
9389 #define _3DPRIM_PATCHLIST_10 41
9390 #define _3DPRIM_PATCHLIST_11 42
9391 #define _3DPRIM_PATCHLIST_12 43
9392 #define _3DPRIM_PATCHLIST_13 44
9393 #define _3DPRIM_PATCHLIST_14 45
9394 #define _3DPRIM_PATCHLIST_15 46
9395 #define _3DPRIM_PATCHLIST_16 47
9396 #define _3DPRIM_PATCHLIST_17 48
9397 #define _3DPRIM_PATCHLIST_18 49
9398 #define _3DPRIM_PATCHLIST_19 50
9399 #define _3DPRIM_PATCHLIST_20 51
9400 #define _3DPRIM_PATCHLIST_21 52
9401 #define _3DPRIM_PATCHLIST_22 53
9402 #define _3DPRIM_PATCHLIST_23 54
9403 #define _3DPRIM_PATCHLIST_24 55
9404 #define _3DPRIM_PATCHLIST_25 56
9405 #define _3DPRIM_PATCHLIST_26 57
9406 #define _3DPRIM_PATCHLIST_27 58
9407 #define _3DPRIM_PATCHLIST_28 59
9408 #define _3DPRIM_PATCHLIST_29 60
9409 #define _3DPRIM_PATCHLIST_30 61
9410 #define _3DPRIM_PATCHLIST_31 62
9411 #define _3DPRIM_PATCHLIST_32 63
9413 /* Enum 3D_Vertex_Component_Control */
9414 #define VFCOMP_NOSTORE 0
9415 #define VFCOMP_STORE_SRC 1
9416 #define VFCOMP_STORE_0 2
9417 #define VFCOMP_STORE_1_FP 3
9418 #define VFCOMP_STORE_1_INT 4
9419 #define VFCOMP_STORE_PID 7
9421 /* Enum COMPONENT_ENABLES */
9439 /* Enum Attribute_Component_Format */
9440 #define ACF_DISABLED 0
9445 /* Enum WRAP_SHORTEST_ENABLE */
9462 /* Enum 3D_Stencil_Operation */
9463 #define STENCILOP_KEEP 0
9464 #define STENCILOP_ZERO 1
9465 #define STENCILOP_REPLACE 2
9466 #define STENCILOP_INCRSAT 3
9467 #define STENCILOP_DECRSAT 4
9468 #define STENCILOP_INCR 5
9469 #define STENCILOP_DECR 6
9470 #define STENCILOP_INVERT 7
9472 /* Enum 3D_Color_Buffer_Blend_Factor */
9473 #define BLENDFACTOR_ONE 1
9474 #define BLENDFACTOR_SRC_COLOR 2
9475 #define BLENDFACTOR_SRC_ALPHA 3
9476 #define BLENDFACTOR_DST_ALPHA 4
9477 #define BLENDFACTOR_DST_COLOR 5
9478 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
9479 #define BLENDFACTOR_CONST_COLOR 7
9480 #define BLENDFACTOR_CONST_ALPHA 8
9481 #define BLENDFACTOR_SRC1_COLOR 9
9482 #define BLENDFACTOR_SRC1_ALPHA 10
9483 #define BLENDFACTOR_ZERO 17
9484 #define BLENDFACTOR_INV_SRC_COLOR 18
9485 #define BLENDFACTOR_INV_SRC_ALPHA 19
9486 #define BLENDFACTOR_INV_DST_ALPHA 20
9487 #define BLENDFACTOR_INV_DST_COLOR 21
9488 #define BLENDFACTOR_INV_CONST_COLOR 23
9489 #define BLENDFACTOR_INV_CONST_ALPHA 24
9490 #define BLENDFACTOR_INV_SRC1_COLOR 25
9491 #define BLENDFACTOR_INV_SRC1_ALPHA 26
9493 /* Enum 3D_Color_Buffer_Blend_Function */
9494 #define BLENDFUNCTION_ADD 0
9495 #define BLENDFUNCTION_SUBTRACT 1
9496 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
9497 #define BLENDFUNCTION_MIN 3
9498 #define BLENDFUNCTION_MAX 4
9500 /* Enum 3D_Compare_Function */
9501 #define COMPAREFUNCTION_ALWAYS 0
9502 #define COMPAREFUNCTION_NEVER 1
9503 #define COMPAREFUNCTION_LESS 2
9504 #define COMPAREFUNCTION_EQUAL 3
9505 #define COMPAREFUNCTION_LEQUAL 4
9506 #define COMPAREFUNCTION_GREATER 5
9507 #define COMPAREFUNCTION_NOTEQUAL 6
9508 #define COMPAREFUNCTION_GEQUAL 7
9510 /* Enum 3D_Logic_Op_Function */
9511 #define LOGICOP_CLEAR 0
9512 #define LOGICOP_NOR 1
9513 #define LOGICOP_AND_INVERTED 2
9514 #define LOGICOP_COPY_INVERTED 3
9515 #define LOGICOP_AND_REVERSE 4
9516 #define LOGICOP_INVERT 5
9517 #define LOGICOP_XOR 6
9518 #define LOGICOP_NAND 7
9519 #define LOGICOP_AND 8
9520 #define LOGICOP_EQUIV 9
9521 #define LOGICOP_NOOP 10
9522 #define LOGICOP_OR_INVERTED 11
9523 #define LOGICOP_COPY 12
9524 #define LOGICOP_OR_REVERSE 13
9525 #define LOGICOP_OR 14
9526 #define LOGICOP_SET 15
9528 /* Enum SURFACE_FORMAT */
9529 #define R32G32B32A32_FLOAT 0
9530 #define R32G32B32A32_SINT 1
9531 #define R32G32B32A32_UINT 2
9532 #define R32G32B32A32_UNORM 3
9533 #define R32G32B32A32_SNORM 4
9534 #define R64G64_FLOAT 5
9535 #define R32G32B32X32_FLOAT 6
9536 #define R32G32B32A32_SSCALED 7
9537 #define R32G32B32A32_USCALED 8
9538 #define R32G32B32A32_SFIXED 32
9539 #define R64G64_PASSTHRU 33
9540 #define R32G32B32_FLOAT 64
9541 #define R32G32B32_SINT 65
9542 #define R32G32B32_UINT 66
9543 #define R32G32B32_UNORM 67
9544 #define R32G32B32_SNORM 68
9545 #define R32G32B32_SSCALED 69
9546 #define R32G32B32_USCALED 70
9547 #define R32G32B32_SFIXED 80
9548 #define R16G16B16A16_UNORM 128
9549 #define R16G16B16A16_SNORM 129
9550 #define R16G16B16A16_SINT 130
9551 #define R16G16B16A16_UINT 131
9552 #define R16G16B16A16_FLOAT 132
9553 #define R32G32_FLOAT 133
9554 #define R32G32_SINT 134
9555 #define R32G32_UINT 135
9556 #define R32_FLOAT_X8X24_TYPELESS 136
9557 #define X32_TYPELESS_G8X24_UINT 137
9558 #define L32A32_FLOAT 138
9559 #define R32G32_UNORM 139
9560 #define R32G32_SNORM 140
9561 #define R64_FLOAT 141
9562 #define R16G16B16X16_UNORM 142
9563 #define R16G16B16X16_FLOAT 143
9564 #define A32X32_FLOAT 144
9565 #define L32X32_FLOAT 145
9566 #define I32X32_FLOAT 146
9567 #define R16G16B16A16_SSCALED 147
9568 #define R16G16B16A16_USCALED 148
9569 #define R32G32_SSCALED 149
9570 #define R32G32_USCALED 150
9571 #define R32G32_SFIXED 160
9572 #define R64_PASSTHRU 161
9573 #define B8G8R8A8_UNORM 192
9574 #define B8G8R8A8_UNORM_SRGB 193
9575 #define R10G10B10A2_UNORM 194
9576 #define R10G10B10A2_UNORM_SRGB 195
9577 #define R10G10B10A2_UINT 196
9578 #define R10G10B10_SNORM_A2_UNORM 197
9579 #define R8G8B8A8_UNORM 199
9580 #define R8G8B8A8_UNORM_SRGB 200
9581 #define R8G8B8A8_SNORM 201
9582 #define R8G8B8A8_SINT 202
9583 #define R8G8B8A8_UINT 203
9584 #define R16G16_UNORM 204
9585 #define R16G16_SNORM 205
9586 #define R16G16_SINT 206
9587 #define R16G16_UINT 207
9588 #define R16G16_FLOAT 208
9589 #define B10G10R10A2_UNORM 209
9590 #define B10G10R10A2_UNORM_SRGB 210
9591 #define R11G11B10_FLOAT 211
9592 #define R32_SINT 214
9593 #define R32_UINT 215
9594 #define R32_FLOAT 216
9595 #define R24_UNORM_X8_TYPELESS 217
9596 #define X24_TYPELESS_G8_UINT 218
9597 #define L32_UNORM 221
9598 #define A32_UNORM 222
9599 #define L16A16_UNORM 223
9600 #define I24X8_UNORM 224
9601 #define L24X8_UNORM 225
9602 #define A24X8_UNORM 226
9603 #define I32_FLOAT 227
9604 #define L32_FLOAT 228
9605 #define A32_FLOAT 229
9606 #define X8B8_UNORM_G8R8_SNORM 230
9607 #define A8X8_UNORM_G8R8_SNORM 231
9608 #define B8X8_UNORM_G8R8_SNORM 232
9609 #define B8G8R8X8_UNORM 233
9610 #define B8G8R8X8_UNORM_SRGB 234
9611 #define R8G8B8X8_UNORM 235
9612 #define R8G8B8X8_UNORM_SRGB 236
9613 #define R9G9B9E5_SHAREDEXP 237
9614 #define B10G10R10X2_UNORM 238
9615 #define L16A16_FLOAT 240
9616 #define R32_UNORM 241
9617 #define R32_SNORM 242
9618 #define R10G10B10X2_USCALED 243
9619 #define R8G8B8A8_SSCALED 244
9620 #define R8G8B8A8_USCALED 245
9621 #define R16G16_SSCALED 246
9622 #define R16G16_USCALED 247
9623 #define R32_SSCALED 248
9624 #define R32_USCALED 249
9625 #define B5G6R5_UNORM 256
9626 #define B5G6R5_UNORM_SRGB 257
9627 #define B5G5R5A1_UNORM 258
9628 #define B5G5R5A1_UNORM_SRGB 259
9629 #define B4G4R4A4_UNORM 260
9630 #define B4G4R4A4_UNORM_SRGB 261
9631 #define R8G8_UNORM 262
9632 #define R8G8_SNORM 263
9633 #define R8G8_SINT 264
9634 #define R8G8_UINT 265
9635 #define R16_UNORM 266
9636 #define R16_SNORM 267
9637 #define R16_SINT 268
9638 #define R16_UINT 269
9639 #define R16_FLOAT 270
9640 #define A8P8_UNORM_PALETTE0 271
9641 #define A8P8_UNORM_PALETTE1 272
9642 #define I16_UNORM 273
9643 #define L16_UNORM 274
9644 #define A16_UNORM 275
9645 #define L8A8_UNORM 276
9646 #define I16_FLOAT 277
9647 #define L16_FLOAT 278
9648 #define A16_FLOAT 279
9649 #define L8A8_UNORM_SRGB 280
9650 #define R5G5_SNORM_B6_UNORM 281
9651 #define B5G5R5X1_UNORM 282
9652 #define B5G5R5X1_UNORM_SRGB 283
9653 #define R8G8_SSCALED 284
9654 #define R8G8_USCALED 285
9655 #define R16_SSCALED 286
9656 #define R16_USCALED 287
9657 #define P8A8_UNORM_PALETTE0 290
9658 #define P8A8_UNORM_PALETTE1 291
9659 #define A1B5G5R5_UNORM 292
9660 #define A4B4G4R4_UNORM 293
9661 #define L8A8_UINT 294
9662 #define L8A8_SINT 295
9663 #define R8_UNORM 320
9664 #define R8_SNORM 321
9667 #define A8_UNORM 324
9668 #define I8_UNORM 325
9669 #define L8_UNORM 326
9670 #define P4A4_UNORM_PALETTE0 327
9671 #define A4P4_UNORM_PALETTE0 328
9672 #define R8_SSCALED 329
9673 #define R8_USCALED 330
9674 #define P8_UNORM_PALETTE0 331
9675 #define L8_UNORM_SRGB 332
9676 #define P8_UNORM_PALETTE1 333
9677 #define P4A4_UNORM_PALETTE1 334
9678 #define A4P4_UNORM_PALETTE1 335
9679 #define Y8_UNORM 336
9684 #define DXT1_RGB_SRGB 384
9685 #define R1_UNORM 385
9686 #define YCRCB_NORMAL 386
9687 #define YCRCB_SWAPUVY 387
9688 #define P2_UNORM_PALETTE0 388
9689 #define P2_UNORM_PALETTE1 389
9690 #define BC1_UNORM 390
9691 #define BC2_UNORM 391
9692 #define BC3_UNORM 392
9693 #define BC4_UNORM 393
9694 #define BC5_UNORM 394
9695 #define BC1_UNORM_SRGB 395
9696 #define BC2_UNORM_SRGB 396
9697 #define BC3_UNORM_SRGB 397
9699 #define YCRCB_SWAPUV 399
9700 #define YCRCB_SWAPY 400
9701 #define DXT1_RGB 401
9703 #define R8G8B8_UNORM 403
9704 #define R8G8B8_SNORM 404
9705 #define R8G8B8_SSCALED 405
9706 #define R8G8B8_USCALED 406
9707 #define R64G64B64A64_FLOAT 407
9708 #define R64G64B64_FLOAT 408
9709 #define BC4_SNORM 409
9710 #define BC5_SNORM 410
9711 #define R16G16B16_FLOAT 411
9712 #define R16G16B16_UNORM 412
9713 #define R16G16B16_SNORM 413
9714 #define R16G16B16_SSCALED 414
9715 #define R16G16B16_USCALED 415
9716 #define BC6H_SF16 417
9717 #define BC7_UNORM 418
9718 #define BC7_UNORM_SRGB 419
9719 #define BC6H_UF16 420
9720 #define PLANAR_420_8 421
9721 #define R8G8B8_UNORM_SRGB 424
9722 #define ETC1_RGB8 425
9723 #define ETC2_RGB8 426
9725 #define EAC_RG11 428
9726 #define EAC_SIGNED_R11 429
9727 #define EAC_SIGNED_RG11 430
9728 #define ETC2_SRGB8 431
9729 #define R16G16B16_UINT 432
9730 #define R16G16B16_SINT 433
9731 #define R32_SFIXED 434
9732 #define R10G10B10A2_SNORM 435
9733 #define R10G10B10A2_USCALED 436
9734 #define R10G10B10A2_SSCALED 437
9735 #define R10G10B10A2_SINT 438
9736 #define B10G10R10A2_SNORM 439
9737 #define B10G10R10A2_USCALED 440
9738 #define B10G10R10A2_SSCALED 441
9739 #define B10G10R10A2_UINT 442
9740 #define B10G10R10A2_SINT 443
9741 #define R64G64B64A64_PASSTHRU 444
9742 #define R64G64B64_PASSTHRU 445
9743 #define ETC2_RGB8_PTA 448
9744 #define ETC2_SRGB8_PTA 449
9745 #define ETC2_EAC_RGBA8 450
9746 #define ETC2_EAC_SRGB8_A8 451
9747 #define R8G8B8_UINT 456
9748 #define R8G8B8_SINT 457
9751 /* Enum Shader Channel Select */
9759 /* Enum Texture Coordinate Mode */
9761 #define TCM_MIRROR 1
9764 #define TCM_CLAMP_BORDER 4
9765 #define TCM_MIRROR_ONCE 5
9766 #define TCM_HALF_BORDER 6