2 * Copyright © 2015 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
25 /* Instructions, enums and structures for BDW.
27 * This file has been generated, do not hand edit.
35 #ifndef __gen_field_functions
36 #define __gen_field_functions
43 static inline uint64_t
44 __gen_field(uint64_t v
, uint32_t start
, uint32_t end
)
47 if (end
- start
+ 1 < 64)
48 assert(v
< 1ul << (end
- start
+ 1));
54 static inline uint64_t
55 __gen_offset(uint64_t v
, uint32_t start
, uint32_t end
)
58 uint64_t mask
= (~0ul >> (64 - (end
- start
+ 1))) << start
;
60 assert((v
& ~mask
) == 0);
66 static inline uint32_t
69 return ((union __gen_value
) { .f
= (v
) }).dw
;
72 #ifndef __gen_address_type
73 #error #define __gen_address_type before including this file
76 #ifndef __gen_user_data
77 #error #define __gen_combine_address before including this file
82 #define GEN8_3DSTATE_URB_VS_length 0x00000002
83 #define GEN8_3DSTATE_URB_VS_length_bias 0x00000002
84 #define GEN8_3DSTATE_URB_VS_header \
86 .CommandSubType = 3, \
87 ._3DCommandOpcode = 0, \
88 ._3DCommandSubOpcode = 48, \
91 struct GEN8_3DSTATE_URB_VS
{
93 uint32_t CommandSubType
;
94 uint32_t _3DCommandOpcode
;
95 uint32_t _3DCommandSubOpcode
;
97 uint32_t VSURBStartingAddress
;
98 uint32_t VSURBEntryAllocationSize
;
99 uint32_t VSNumberofURBEntries
;
103 GEN8_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
104 const struct GEN8_3DSTATE_URB_VS
* restrict values
)
106 uint32_t *dw
= (uint32_t * restrict
) dst
;
109 __gen_field(values
->CommandType
, 29, 31) |
110 __gen_field(values
->CommandSubType
, 27, 28) |
111 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
112 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
113 __gen_field(values
->DwordLength
, 0, 7) |
117 __gen_field(values
->VSURBStartingAddress
, 25, 31) |
118 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
119 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
124 #define GEN8_3DSTATE_VS_length 0x00000009
125 #define GEN8_3DSTATE_VS_length_bias 0x00000002
126 #define GEN8_3DSTATE_VS_header \
128 .CommandSubType = 3, \
129 ._3DCommandOpcode = 0, \
130 ._3DCommandSubOpcode = 16, \
133 struct GEN8_3DSTATE_VS
{
134 uint32_t CommandType
;
135 uint32_t CommandSubType
;
136 uint32_t _3DCommandOpcode
;
137 uint32_t _3DCommandSubOpcode
;
138 uint32_t DwordLength
;
139 uint32_t KernelStartPointer
;
142 uint32_t SingleVertexDispatch
;
145 uint32_t VectorMaskEnable
;
147 #define _14Samplers 1
148 #define _58Samplers 2
149 #define _912Samplers 3
150 #define _1316Samplers 4
151 uint32_t SamplerCount
;
152 uint32_t BindingTableEntryCount
;
155 uint32_t ThreadDispatchPriority
;
158 uint32_t FloatingPointMode
;
159 uint32_t IllegalOpcodeExceptionEnable
;
160 uint32_t AccessesUAV
;
161 uint32_t SoftwareExceptionEnable
;
162 uint32_t ScratchSpaceBasePointer
;
163 uint32_t PerThreadScratchSpace
;
164 uint32_t DispatchGRFStartRegisterForURBData
;
165 uint32_t VertexURBEntryReadLength
;
166 uint32_t VertexURBEntryReadOffset
;
167 uint32_t MaximumNumberofThreads
;
168 uint32_t StatisticsEnable
;
169 uint32_t SIMD8DispatchEnable
;
170 uint32_t VertexCacheDisable
;
171 uint32_t FunctionEnable
;
172 uint32_t VertexURBEntryOutputReadOffset
;
173 uint32_t VertexURBEntryOutputLength
;
174 uint32_t UserClipDistanceClipTestEnableBitmask
;
175 uint32_t UserClipDistanceCullTestEnableBitmask
;
179 GEN8_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
180 const struct GEN8_3DSTATE_VS
* restrict values
)
182 uint32_t *dw
= (uint32_t * restrict
) dst
;
185 __gen_field(values
->CommandType
, 29, 31) |
186 __gen_field(values
->CommandSubType
, 27, 28) |
187 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
188 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
189 __gen_field(values
->DwordLength
, 0, 7) |
193 __gen_offset(values
->KernelStartPointer
, 6, 63) |
197 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
198 __gen_field(values
->VectorMaskEnable
, 30, 30) |
199 __gen_field(values
->SamplerCount
, 27, 29) |
200 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
201 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
202 __gen_field(values
->FloatingPointMode
, 16, 16) |
203 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
204 __gen_field(values
->AccessesUAV
, 12, 12) |
205 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
209 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
210 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
214 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
215 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
216 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
220 __gen_field(values
->MaximumNumberofThreads
, 23, 31) |
221 __gen_field(values
->StatisticsEnable
, 10, 10) |
222 __gen_field(values
->SIMD8DispatchEnable
, 2, 2) |
223 __gen_field(values
->VertexCacheDisable
, 1, 1) |
224 __gen_field(values
->FunctionEnable
, 0, 0) |
228 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
229 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
230 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
231 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
236 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length 0x00000003
237 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002
238 #define GEN8_GPGPU_CSR_BASE_ADDRESS_header \
240 .CommandSubType = 0, \
241 ._3DCommandOpcode = 1, \
242 ._3DCommandSubOpcode = 4, \
245 struct GEN8_GPGPU_CSR_BASE_ADDRESS
{
246 uint32_t CommandType
;
247 uint32_t CommandSubType
;
248 uint32_t _3DCommandOpcode
;
249 uint32_t _3DCommandSubOpcode
;
250 uint32_t DwordLength
;
251 __gen_address_type GPGPUCSRBaseAddressHigh
;
255 GEN8_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
256 const struct GEN8_GPGPU_CSR_BASE_ADDRESS
* restrict values
)
258 uint32_t *dw
= (uint32_t * restrict
) dst
;
261 __gen_field(values
->CommandType
, 29, 31) |
262 __gen_field(values
->CommandSubType
, 27, 28) |
263 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
264 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
265 __gen_field(values
->DwordLength
, 0, 7) |
272 __gen_combine_address(data
, &dw
[1], values
->GPGPUCSRBaseAddressHigh
, dw1
);
276 #define GEN8_MI_ATOMIC_length 0x00000003
277 #define GEN8_MI_ATOMIC_length_bias 0x00000002
278 #define GEN8_MI_ATOMIC_header \
280 .MICommandOpcode = 47
282 struct GEN8_MI_ATOMIC
{
283 uint32_t CommandType
;
284 uint32_t MICommandOpcode
;
285 #define PerProcessGraphicsAddress 0
286 #define GlobalGraphicsAddress 1
288 uint32_t PostSyncOperation
;
296 uint32_t ReturnDataControl
;
297 uint32_t ATOMICOPCODE
;
298 uint32_t DwordLength
;
299 __gen_address_type MemoryAddress
;
300 uint32_t MemoryAddressHigh
;
301 uint32_t Operand1DataDword0
;
302 uint32_t Operand2DataDword0
;
303 uint32_t Operand1DataDword1
;
304 uint32_t Operand2DataDword1
;
305 uint32_t Operand1DataDword2
;
306 uint32_t Operand2DataDword2
;
307 uint32_t Operand1DataDword3
;
308 uint32_t Operand2DataDword3
;
312 GEN8_MI_ATOMIC_pack(__gen_user_data
*data
, void * restrict dst
,
313 const struct GEN8_MI_ATOMIC
* restrict values
)
315 uint32_t *dw
= (uint32_t * restrict
) dst
;
318 __gen_field(values
->CommandType
, 29, 31) |
319 __gen_field(values
->MICommandOpcode
, 23, 28) |
320 __gen_field(values
->MemoryType
, 22, 22) |
321 __gen_field(values
->PostSyncOperation
, 21, 21) |
322 __gen_field(values
->DataSize
, 19, 20) |
323 __gen_field(values
->InlineData
, 18, 18) |
324 __gen_field(values
->CSSTALL
, 17, 17) |
325 __gen_field(values
->ReturnDataControl
, 16, 16) |
326 __gen_field(values
->ATOMICOPCODE
, 8, 15) |
327 __gen_field(values
->DwordLength
, 0, 7) |
334 __gen_combine_address(data
, &dw
[1], values
->MemoryAddress
, dw1
);
337 __gen_field(values
->MemoryAddressHigh
, 0, 15) |
341 __gen_field(values
->Operand1DataDword0
, 0, 31) |
345 __gen_field(values
->Operand2DataDword0
, 0, 31) |
349 __gen_field(values
->Operand1DataDword1
, 0, 31) |
353 __gen_field(values
->Operand2DataDword1
, 0, 31) |
357 __gen_field(values
->Operand1DataDword2
, 0, 31) |
361 __gen_field(values
->Operand2DataDword2
, 0, 31) |
365 __gen_field(values
->Operand1DataDword3
, 0, 31) |
369 __gen_field(values
->Operand2DataDword3
, 0, 31) |
374 #define GEN8_MI_LOAD_REGISTER_REG_length 0x00000003
375 #define GEN8_MI_LOAD_REGISTER_REG_length_bias 0x00000002
376 #define GEN8_MI_LOAD_REGISTER_REG_header \
378 .MICommandOpcode = 42, \
381 struct GEN8_MI_LOAD_REGISTER_REG
{
382 uint32_t CommandType
;
383 uint32_t MICommandOpcode
;
384 uint32_t DwordLength
;
385 uint32_t SourceRegisterAddress
;
386 uint32_t DestinationRegisterAddress
;
390 GEN8_MI_LOAD_REGISTER_REG_pack(__gen_user_data
*data
, void * restrict dst
,
391 const struct GEN8_MI_LOAD_REGISTER_REG
* restrict values
)
393 uint32_t *dw
= (uint32_t * restrict
) dst
;
396 __gen_field(values
->CommandType
, 29, 31) |
397 __gen_field(values
->MICommandOpcode
, 23, 28) |
398 __gen_field(values
->DwordLength
, 0, 7) |
402 __gen_offset(values
->SourceRegisterAddress
, 2, 22) |
406 __gen_offset(values
->DestinationRegisterAddress
, 2, 22) |
411 #define GEN8_MI_SEMAPHORE_SIGNAL_length 0x00000002
412 #define GEN8_MI_SEMAPHORE_SIGNAL_length_bias 0x00000002
413 #define GEN8_MI_SEMAPHORE_SIGNAL_header \
415 .MICommandOpcode = 27, \
418 struct GEN8_MI_SEMAPHORE_SIGNAL
{
419 uint32_t CommandType
;
420 uint32_t MICommandOpcode
;
421 uint32_t PostSyncOperation
;
427 uint32_t TargetEngineSelect
;
428 uint32_t DwordLength
;
429 uint32_t TargetContextID
;
433 GEN8_MI_SEMAPHORE_SIGNAL_pack(__gen_user_data
*data
, void * restrict dst
,
434 const struct GEN8_MI_SEMAPHORE_SIGNAL
* restrict values
)
436 uint32_t *dw
= (uint32_t * restrict
) dst
;
439 __gen_field(values
->CommandType
, 29, 31) |
440 __gen_field(values
->MICommandOpcode
, 23, 28) |
441 __gen_field(values
->PostSyncOperation
, 21, 21) |
442 __gen_field(values
->TargetEngineSelect
, 15, 17) |
443 __gen_field(values
->DwordLength
, 0, 7) |
447 __gen_field(values
->TargetContextID
, 0, 31) |
452 #define GEN8_MI_SEMAPHORE_WAIT_length 0x00000004
453 #define GEN8_MI_SEMAPHORE_WAIT_length_bias 0x00000002
454 #define GEN8_MI_SEMAPHORE_WAIT_header \
456 .MICommandOpcode = 28, \
459 struct GEN8_MI_SEMAPHORE_WAIT
{
460 uint32_t CommandType
;
461 uint32_t MICommandOpcode
;
462 #define PerProcessGraphicsAddress 0
463 #define GlobalGraphicsAddress 1
465 #define PollingMode 1
468 #define SAD_GREATER_THAN_SDD 0
469 #define SAD_GREATER_THAN_OR_EQUAL_SDD 1
470 #define SAD_LESS_THAN_SDD 2
471 #define SAD_LESS_THAN_OR_EQUAL_SDD 3
472 #define SAD_EQUAL_SDD 4
473 #define SAD_NOT_EQUAL_SDD 5
474 uint32_t CompareOperation
;
475 uint32_t DwordLength
;
476 uint32_t SemaphoreDataDword
;
477 __gen_address_type SemaphoreAddress
;
481 GEN8_MI_SEMAPHORE_WAIT_pack(__gen_user_data
*data
, void * restrict dst
,
482 const struct GEN8_MI_SEMAPHORE_WAIT
* restrict values
)
484 uint32_t *dw
= (uint32_t * restrict
) dst
;
487 __gen_field(values
->CommandType
, 29, 31) |
488 __gen_field(values
->MICommandOpcode
, 23, 28) |
489 __gen_field(values
->MemoryType
, 22, 22) |
490 __gen_field(values
->WaitMode
, 15, 15) |
491 __gen_field(values
->CompareOperation
, 12, 14) |
492 __gen_field(values
->DwordLength
, 0, 7) |
496 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
503 __gen_combine_address(data
, &dw
[2], values
->SemaphoreAddress
, dw2
);
507 #define GEN8_MI_STORE_REGISTER_MEM_length 0x00000004
508 #define GEN8_MI_STORE_REGISTER_MEM_length_bias 0x00000002
509 #define GEN8_MI_STORE_REGISTER_MEM_header \
511 .MICommandOpcode = 36, \
514 struct GEN8_MI_STORE_REGISTER_MEM
{
515 uint32_t CommandType
;
516 uint32_t MICommandOpcode
;
517 uint32_t UseGlobalGTT
;
518 uint32_t PredicateEnable
;
519 uint32_t DwordLength
;
520 uint32_t RegisterAddress
;
521 __gen_address_type MemoryAddress
;
525 GEN8_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
526 const struct GEN8_MI_STORE_REGISTER_MEM
* restrict values
)
528 uint32_t *dw
= (uint32_t * restrict
) dst
;
531 __gen_field(values
->CommandType
, 29, 31) |
532 __gen_field(values
->MICommandOpcode
, 23, 28) |
533 __gen_field(values
->UseGlobalGTT
, 22, 22) |
534 __gen_field(values
->PredicateEnable
, 21, 21) |
535 __gen_field(values
->DwordLength
, 0, 7) |
539 __gen_offset(values
->RegisterAddress
, 2, 22) |
546 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
550 #define GEN8_PIPELINE_SELECT_length 0x00000001
551 #define GEN8_PIPELINE_SELECT_length_bias 0x00000001
552 #define GEN8_PIPELINE_SELECT_header \
554 .CommandSubType = 1, \
555 ._3DCommandOpcode = 1, \
556 ._3DCommandSubOpcode = 4
558 struct GEN8_PIPELINE_SELECT
{
559 uint32_t CommandType
;
560 uint32_t CommandSubType
;
561 uint32_t _3DCommandOpcode
;
562 uint32_t _3DCommandSubOpcode
;
566 uint32_t PipelineSelection
;
570 GEN8_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
571 const struct GEN8_PIPELINE_SELECT
* restrict values
)
573 uint32_t *dw
= (uint32_t * restrict
) dst
;
576 __gen_field(values
->CommandType
, 29, 31) |
577 __gen_field(values
->CommandSubType
, 27, 28) |
578 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
579 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
580 __gen_field(values
->PipelineSelection
, 0, 1) |
585 #define GEN8_STATE_BASE_ADDRESS_length 0x00000010
586 #define GEN8_STATE_BASE_ADDRESS_length_bias 0x00000002
587 #define GEN8_STATE_BASE_ADDRESS_header \
589 .CommandSubType = 0, \
590 ._3DCommandOpcode = 1, \
591 ._3DCommandSubOpcode = 1, \
594 struct GEN8_MEMORY_OBJECT_CONTROL_STATE
{
595 #define UCwithFenceifcoherentcycle 0
596 #define UCUncacheable 1
599 uint32_t MemoryTypeLLCeLLCCacheabilityControl
;
600 #define eLLCOnlywheneDRAMispresentelsegetsallocatedinLLC 0
602 #define LLCeLLCAllowed 2
603 #define L3DefertoPATforLLCeLLCselection 3
604 uint32_t TargetCache
;
605 uint32_t AgeforQUADLRU
;
609 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
610 const struct GEN8_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
612 uint32_t *dw
= (uint32_t * restrict
) dst
;
615 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControl
, 5, 6) |
616 __gen_field(values
->TargetCache
, 3, 4) |
617 __gen_field(values
->AgeforQUADLRU
, 0, 1) |
622 struct GEN8_STATE_BASE_ADDRESS
{
623 uint32_t CommandType
;
624 uint32_t CommandSubType
;
625 uint32_t _3DCommandOpcode
;
626 uint32_t _3DCommandSubOpcode
;
627 uint32_t DwordLength
;
628 __gen_address_type GeneralStateBaseAddress
;
629 struct GEN8_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
630 uint32_t GeneralStateBaseAddressModifyEnable
;
631 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
632 __gen_address_type SurfaceStateBaseAddress
;
633 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
634 uint32_t SurfaceStateBaseAddressModifyEnable
;
635 __gen_address_type DynamicStateBaseAddress
;
636 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
637 uint32_t DynamicStateBaseAddressModifyEnable
;
638 __gen_address_type IndirectObjectBaseAddress
;
639 struct GEN8_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
640 uint32_t IndirectObjectBaseAddressModifyEnable
;
641 __gen_address_type InstructionBaseAddress
;
642 struct GEN8_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
643 uint32_t InstructionBaseAddressModifyEnable
;
644 uint32_t GeneralStateBufferSize
;
645 uint32_t GeneralStateBufferSizeModifyEnable
;
646 uint32_t DynamicStateBufferSize
;
647 uint32_t DynamicStateBufferSizeModifyEnable
;
648 uint32_t IndirectObjectBufferSize
;
649 uint32_t IndirectObjectBufferSizeModifyEnable
;
650 uint32_t InstructionBufferSize
;
651 uint32_t InstructionBuffersizeModifyEnable
;
655 GEN8_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
656 const struct GEN8_STATE_BASE_ADDRESS
* restrict values
)
658 uint32_t *dw
= (uint32_t * restrict
) dst
;
661 __gen_field(values
->CommandType
, 29, 31) |
662 __gen_field(values
->CommandSubType
, 27, 28) |
663 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
664 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
665 __gen_field(values
->DwordLength
, 0, 7) |
668 uint32_t dw_GeneralStateMemoryObjectControlState
;
669 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
671 /* Struct GeneralStateMemoryObjectControlState (4..10): */
672 __gen_field(dw_GeneralStateMemoryObjectControlState
, 4, 10) |
673 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
677 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
679 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
680 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
682 /* Struct StatelessDataPortAccessMemoryObjectControlState (16..22): */
683 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 16, 22) |
686 uint32_t dw_SurfaceStateMemoryObjectControlState
;
687 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
689 /* Struct SurfaceStateMemoryObjectControlState (4..10): */
690 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 4, 10) |
691 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
695 __gen_combine_address(data
, &dw
[4], values
->SurfaceStateBaseAddress
, dw4
);
697 uint32_t dw_DynamicStateMemoryObjectControlState
;
698 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
700 /* Struct DynamicStateMemoryObjectControlState (4..10): */
701 __gen_field(dw_DynamicStateMemoryObjectControlState
, 4, 10) |
702 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
706 __gen_combine_address(data
, &dw
[6], values
->DynamicStateBaseAddress
, dw6
);
708 uint32_t dw_IndirectObjectMemoryObjectControlState
;
709 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
711 /* Struct IndirectObjectMemoryObjectControlState (4..10): */
712 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 4, 10) |
713 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
717 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectBaseAddress
, dw8
);
719 uint32_t dw_InstructionMemoryObjectControlState
;
720 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
722 /* Struct InstructionMemoryObjectControlState (4..10): */
723 __gen_field(dw_InstructionMemoryObjectControlState
, 4, 10) |
724 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
728 __gen_combine_address(data
, &dw
[10], values
->InstructionBaseAddress
, dw10
);
731 __gen_field(values
->GeneralStateBufferSize
, 12, 31) |
732 __gen_field(values
->GeneralStateBufferSizeModifyEnable
, 0, 0) |
736 __gen_field(values
->DynamicStateBufferSize
, 12, 31) |
737 __gen_field(values
->DynamicStateBufferSizeModifyEnable
, 0, 0) |
741 __gen_field(values
->IndirectObjectBufferSize
, 12, 31) |
742 __gen_field(values
->IndirectObjectBufferSizeModifyEnable
, 0, 0) |
746 __gen_field(values
->InstructionBufferSize
, 12, 31) |
747 __gen_field(values
->InstructionBuffersizeModifyEnable
, 0, 0) |
752 #define GEN8_STATE_PREFETCH_length 0x00000002
753 #define GEN8_STATE_PREFETCH_length_bias 0x00000002
754 #define GEN8_STATE_PREFETCH_header \
756 .CommandSubType = 0, \
757 ._3DCommandOpcode = 0, \
758 ._3DCommandSubOpcode = 3, \
761 struct GEN8_STATE_PREFETCH
{
762 uint32_t CommandType
;
763 uint32_t CommandSubType
;
764 uint32_t _3DCommandOpcode
;
765 uint32_t _3DCommandSubOpcode
;
766 uint32_t DwordLength
;
767 __gen_address_type PrefetchPointer
;
768 uint32_t PrefetchCount
;
772 GEN8_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
773 const struct GEN8_STATE_PREFETCH
* restrict values
)
775 uint32_t *dw
= (uint32_t * restrict
) dst
;
778 __gen_field(values
->CommandType
, 29, 31) |
779 __gen_field(values
->CommandSubType
, 27, 28) |
780 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
781 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
782 __gen_field(values
->DwordLength
, 0, 7) |
786 __gen_field(values
->PrefetchCount
, 0, 2) |
790 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
794 #define GEN8_STATE_SIP_length 0x00000003
795 #define GEN8_STATE_SIP_length_bias 0x00000002
796 #define GEN8_STATE_SIP_header \
798 .CommandSubType = 0, \
799 ._3DCommandOpcode = 1, \
800 ._3DCommandSubOpcode = 2, \
803 struct GEN8_STATE_SIP
{
804 uint32_t CommandType
;
805 uint32_t CommandSubType
;
806 uint32_t _3DCommandOpcode
;
807 uint32_t _3DCommandSubOpcode
;
808 uint32_t DwordLength
;
809 uint32_t SystemInstructionPointer
;
813 GEN8_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
814 const struct GEN8_STATE_SIP
* restrict values
)
816 uint32_t *dw
= (uint32_t * restrict
) dst
;
819 __gen_field(values
->CommandType
, 29, 31) |
820 __gen_field(values
->CommandSubType
, 27, 28) |
821 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
822 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
823 __gen_field(values
->DwordLength
, 0, 7) |
827 __gen_offset(values
->SystemInstructionPointer
, 4, 63) |
832 #define GEN8_SWTESS_BASE_ADDRESS_length 0x00000002
833 #define GEN8_SWTESS_BASE_ADDRESS_length_bias 0x00000002
834 #define GEN8_SWTESS_BASE_ADDRESS_header \
836 .CommandSubType = 0, \
837 ._3DCommandOpcode = 1, \
838 ._3DCommandSubOpcode = 3, \
841 struct GEN8_SWTESS_BASE_ADDRESS
{
842 uint32_t CommandType
;
843 uint32_t CommandSubType
;
844 uint32_t _3DCommandOpcode
;
845 uint32_t _3DCommandSubOpcode
;
846 uint32_t DwordLength
;
847 __gen_address_type SWTessellationBaseAddress
;
848 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
849 __gen_address_type SWTessellationBaseAddressHigh
;
853 GEN8_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
854 const struct GEN8_SWTESS_BASE_ADDRESS
* restrict values
)
856 uint32_t *dw
= (uint32_t * restrict
) dst
;
859 __gen_field(values
->CommandType
, 29, 31) |
860 __gen_field(values
->CommandSubType
, 27, 28) |
861 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
862 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
863 __gen_field(values
->DwordLength
, 0, 7) |
866 uint32_t dw_SWTessellationMemoryObjectControlState
;
867 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
869 /* Struct SWTessellationMemoryObjectControlState (8..11): */
870 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
874 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
880 __gen_combine_address(data
, &dw
[2], values
->SWTessellationBaseAddressHigh
, dw2
);
884 #define GEN8_3DPRIMITIVE_length 0x00000007
885 #define GEN8_3DPRIMITIVE_length_bias 0x00000002
886 #define GEN8_3DPRIMITIVE_header \
888 .CommandSubType = 3, \
889 ._3DCommandOpcode = 3, \
890 ._3DCommandSubOpcode = 0, \
893 struct GEN8_3DPRIMITIVE
{
894 uint32_t CommandType
;
895 uint32_t CommandSubType
;
896 uint32_t _3DCommandOpcode
;
897 uint32_t _3DCommandSubOpcode
;
898 uint32_t IndirectParameterEnable
;
899 uint32_t UAVCoherencyRequired
;
900 uint32_t PredicateEnable
;
901 uint32_t DwordLength
;
902 uint32_t EndOffsetEnable
;
905 uint32_t VertexAccessType
;
906 uint32_t PrimitiveTopologyType
;
907 uint32_t VertexCountPerInstance
;
908 uint32_t StartVertexLocation
;
909 uint32_t InstanceCount
;
910 uint32_t StartInstanceLocation
;
911 uint32_t BaseVertexLocation
;
915 GEN8_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
916 const struct GEN8_3DPRIMITIVE
* restrict values
)
918 uint32_t *dw
= (uint32_t * restrict
) dst
;
921 __gen_field(values
->CommandType
, 29, 31) |
922 __gen_field(values
->CommandSubType
, 27, 28) |
923 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
924 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
925 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
926 __gen_field(values
->UAVCoherencyRequired
, 9, 9) |
927 __gen_field(values
->PredicateEnable
, 8, 8) |
928 __gen_field(values
->DwordLength
, 0, 7) |
932 __gen_field(values
->EndOffsetEnable
, 9, 9) |
933 __gen_field(values
->VertexAccessType
, 8, 8) |
934 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
938 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
942 __gen_field(values
->StartVertexLocation
, 0, 31) |
946 __gen_field(values
->InstanceCount
, 0, 31) |
950 __gen_field(values
->StartInstanceLocation
, 0, 31) |
954 __gen_field(values
->BaseVertexLocation
, 0, 31) |
959 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
960 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
961 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_header \
963 .CommandSubType = 3, \
964 ._3DCommandOpcode = 1, \
965 ._3DCommandSubOpcode = 10, \
968 struct GEN8_3DSTATE_AA_LINE_PARAMETERS
{
969 uint32_t CommandType
;
970 uint32_t CommandSubType
;
971 uint32_t _3DCommandOpcode
;
972 uint32_t _3DCommandSubOpcode
;
973 uint32_t DwordLength
;
974 uint32_t AAPointCoverageBias
;
975 uint32_t AACoverageBias
;
976 uint32_t AAPointCoverageSlope
;
977 uint32_t AACoverageSlope
;
978 uint32_t AAPointCoverageEndCapBias
;
979 uint32_t AACoverageEndCapBias
;
980 uint32_t AAPointCoverageEndCapSlope
;
981 uint32_t AACoverageEndCapSlope
;
985 GEN8_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
986 const struct GEN8_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
988 uint32_t *dw
= (uint32_t * restrict
) dst
;
991 __gen_field(values
->CommandType
, 29, 31) |
992 __gen_field(values
->CommandSubType
, 27, 28) |
993 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
994 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
995 __gen_field(values
->DwordLength
, 0, 7) |
999 __gen_field(values
->AAPointCoverageBias
, 24, 31) |
1000 __gen_field(values
->AACoverageBias
, 16, 23) |
1001 __gen_field(values
->AAPointCoverageSlope
, 8, 15) |
1002 __gen_field(values
->AACoverageSlope
, 0, 7) |
1006 __gen_field(values
->AAPointCoverageEndCapBias
, 24, 31) |
1007 __gen_field(values
->AACoverageEndCapBias
, 16, 23) |
1008 __gen_field(values
->AAPointCoverageEndCapSlope
, 8, 15) |
1009 __gen_field(values
->AACoverageEndCapSlope
, 0, 7) |
1014 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_length_bias 0x00000002
1015 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_header\
1017 .CommandSubType = 3, \
1018 ._3DCommandOpcode = 0, \
1019 ._3DCommandSubOpcode = 70
1021 struct GEN8_BINDING_TABLE_EDIT_ENTRY
{
1022 uint32_t BindingTableIndex
;
1023 uint32_t SurfaceStatePointer
;
1027 GEN8_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
1028 const struct GEN8_BINDING_TABLE_EDIT_ENTRY
* restrict values
)
1030 uint32_t *dw
= (uint32_t * restrict
) dst
;
1033 __gen_field(values
->BindingTableIndex
, 16, 23) |
1034 __gen_offset(values
->SurfaceStatePointer
, 0, 15) |
1039 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS
{
1040 uint32_t CommandType
;
1041 uint32_t CommandSubType
;
1042 uint32_t _3DCommandOpcode
;
1043 uint32_t _3DCommandSubOpcode
;
1044 uint32_t DwordLength
;
1045 uint32_t BindingTableBlockClear
;
1049 uint32_t BindingTableEditTarget
;
1050 /* variable length fields follow */
1054 GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1055 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS
* restrict values
)
1057 uint32_t *dw
= (uint32_t * restrict
) dst
;
1060 __gen_field(values
->CommandType
, 29, 31) |
1061 __gen_field(values
->CommandSubType
, 27, 28) |
1062 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1063 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1064 __gen_field(values
->DwordLength
, 0, 8) |
1068 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1069 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1072 /* variable length fields follow */
1075 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_length_bias 0x00000002
1076 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_header\
1078 .CommandSubType = 3, \
1079 ._3DCommandOpcode = 0, \
1080 ._3DCommandSubOpcode = 68
1082 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS
{
1083 uint32_t CommandType
;
1084 uint32_t CommandSubType
;
1085 uint32_t _3DCommandOpcode
;
1086 uint32_t _3DCommandSubOpcode
;
1087 uint32_t DwordLength
;
1088 uint32_t BindingTableBlockClear
;
1092 uint32_t BindingTableEditTarget
;
1093 /* variable length fields follow */
1097 GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1098 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS
* restrict values
)
1100 uint32_t *dw
= (uint32_t * restrict
) dst
;
1103 __gen_field(values
->CommandType
, 29, 31) |
1104 __gen_field(values
->CommandSubType
, 27, 28) |
1105 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1106 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1107 __gen_field(values
->DwordLength
, 0, 8) |
1111 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1112 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1115 /* variable length fields follow */
1118 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_length_bias 0x00000002
1119 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_header\
1121 .CommandSubType = 3, \
1122 ._3DCommandOpcode = 0, \
1123 ._3DCommandSubOpcode = 69
1125 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS
{
1126 uint32_t CommandType
;
1127 uint32_t CommandSubType
;
1128 uint32_t _3DCommandOpcode
;
1129 uint32_t _3DCommandSubOpcode
;
1130 uint32_t DwordLength
;
1131 uint32_t BindingTableBlockClear
;
1135 uint32_t BindingTableEditTarget
;
1136 /* variable length fields follow */
1140 GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1141 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS
* restrict values
)
1143 uint32_t *dw
= (uint32_t * restrict
) dst
;
1146 __gen_field(values
->CommandType
, 29, 31) |
1147 __gen_field(values
->CommandSubType
, 27, 28) |
1148 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1149 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1150 __gen_field(values
->DwordLength
, 0, 8) |
1154 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1155 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1158 /* variable length fields follow */
1161 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_length_bias 0x00000002
1162 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_header\
1164 .CommandSubType = 3, \
1165 ._3DCommandOpcode = 0, \
1166 ._3DCommandSubOpcode = 71
1168 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS
{
1169 uint32_t CommandType
;
1170 uint32_t CommandSubType
;
1171 uint32_t _3DCommandOpcode
;
1172 uint32_t _3DCommandSubOpcode
;
1173 uint32_t DwordLength
;
1174 uint32_t BindingTableBlockClear
;
1178 uint32_t BindingTableEditTarget
;
1179 /* variable length fields follow */
1183 GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1184 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS
* restrict values
)
1186 uint32_t *dw
= (uint32_t * restrict
) dst
;
1189 __gen_field(values
->CommandType
, 29, 31) |
1190 __gen_field(values
->CommandSubType
, 27, 28) |
1191 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1192 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1193 __gen_field(values
->DwordLength
, 0, 8) |
1197 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1198 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1201 /* variable length fields follow */
1204 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_length_bias 0x00000002
1205 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_header\
1207 .CommandSubType = 3, \
1208 ._3DCommandOpcode = 0, \
1209 ._3DCommandSubOpcode = 67
1211 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS
{
1212 uint32_t CommandType
;
1213 uint32_t CommandSubType
;
1214 uint32_t _3DCommandOpcode
;
1215 uint32_t _3DCommandSubOpcode
;
1216 uint32_t DwordLength
;
1217 uint32_t BindingTableBlockClear
;
1221 uint32_t BindingTableEditTarget
;
1222 /* variable length fields follow */
1226 GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1227 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS
* restrict values
)
1229 uint32_t *dw
= (uint32_t * restrict
) dst
;
1232 __gen_field(values
->CommandType
, 29, 31) |
1233 __gen_field(values
->CommandSubType
, 27, 28) |
1234 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1235 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1236 __gen_field(values
->DwordLength
, 0, 8) |
1240 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1241 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1244 /* variable length fields follow */
1247 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
1248 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
1249 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
1251 .CommandSubType = 3, \
1252 ._3DCommandOpcode = 0, \
1253 ._3DCommandSubOpcode = 40, \
1256 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS
{
1257 uint32_t CommandType
;
1258 uint32_t CommandSubType
;
1259 uint32_t _3DCommandOpcode
;
1260 uint32_t _3DCommandSubOpcode
;
1261 uint32_t DwordLength
;
1262 uint32_t PointertoDSBindingTable
;
1266 GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1267 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
1269 uint32_t *dw
= (uint32_t * restrict
) dst
;
1272 __gen_field(values
->CommandType
, 29, 31) |
1273 __gen_field(values
->CommandSubType
, 27, 28) |
1274 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1275 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1276 __gen_field(values
->DwordLength
, 0, 7) |
1280 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
1285 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
1286 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
1287 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
1289 .CommandSubType = 3, \
1290 ._3DCommandOpcode = 0, \
1291 ._3DCommandSubOpcode = 41, \
1294 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS
{
1295 uint32_t CommandType
;
1296 uint32_t CommandSubType
;
1297 uint32_t _3DCommandOpcode
;
1298 uint32_t _3DCommandSubOpcode
;
1299 uint32_t DwordLength
;
1300 uint32_t PointertoGSBindingTable
;
1304 GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1305 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
1307 uint32_t *dw
= (uint32_t * restrict
) dst
;
1310 __gen_field(values
->CommandType
, 29, 31) |
1311 __gen_field(values
->CommandSubType
, 27, 28) |
1312 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1313 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1314 __gen_field(values
->DwordLength
, 0, 7) |
1318 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
1323 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
1324 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
1325 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
1327 .CommandSubType = 3, \
1328 ._3DCommandOpcode = 0, \
1329 ._3DCommandSubOpcode = 39, \
1332 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS
{
1333 uint32_t CommandType
;
1334 uint32_t CommandSubType
;
1335 uint32_t _3DCommandOpcode
;
1336 uint32_t _3DCommandSubOpcode
;
1337 uint32_t DwordLength
;
1338 uint32_t PointertoHSBindingTable
;
1342 GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1343 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
1345 uint32_t *dw
= (uint32_t * restrict
) dst
;
1348 __gen_field(values
->CommandType
, 29, 31) |
1349 __gen_field(values
->CommandSubType
, 27, 28) |
1350 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1351 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1352 __gen_field(values
->DwordLength
, 0, 7) |
1356 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
1361 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
1362 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
1363 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
1365 .CommandSubType = 3, \
1366 ._3DCommandOpcode = 0, \
1367 ._3DCommandSubOpcode = 42, \
1370 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS
{
1371 uint32_t CommandType
;
1372 uint32_t CommandSubType
;
1373 uint32_t _3DCommandOpcode
;
1374 uint32_t _3DCommandSubOpcode
;
1375 uint32_t DwordLength
;
1376 uint32_t PointertoPSBindingTable
;
1380 GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1381 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
1383 uint32_t *dw
= (uint32_t * restrict
) dst
;
1386 __gen_field(values
->CommandType
, 29, 31) |
1387 __gen_field(values
->CommandSubType
, 27, 28) |
1388 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1389 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1390 __gen_field(values
->DwordLength
, 0, 7) |
1394 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
1399 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
1400 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
1401 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
1403 .CommandSubType = 3, \
1404 ._3DCommandOpcode = 0, \
1405 ._3DCommandSubOpcode = 38, \
1408 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS
{
1409 uint32_t CommandType
;
1410 uint32_t CommandSubType
;
1411 uint32_t _3DCommandOpcode
;
1412 uint32_t _3DCommandSubOpcode
;
1413 uint32_t DwordLength
;
1414 uint32_t PointertoVSBindingTable
;
1418 GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1419 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
1421 uint32_t *dw
= (uint32_t * restrict
) dst
;
1424 __gen_field(values
->CommandType
, 29, 31) |
1425 __gen_field(values
->CommandSubType
, 27, 28) |
1426 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1427 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1428 __gen_field(values
->DwordLength
, 0, 7) |
1432 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
1437 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000004
1438 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002
1439 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\
1441 .CommandSubType = 3, \
1442 ._3DCommandOpcode = 1, \
1443 ._3DCommandSubOpcode = 25, \
1446 struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC
{
1447 uint32_t CommandType
;
1448 uint32_t CommandSubType
;
1449 uint32_t _3DCommandOpcode
;
1450 uint32_t _3DCommandSubOpcode
;
1451 uint32_t DwordLength
;
1452 __gen_address_type BindingTablePoolBaseAddress
;
1453 uint32_t BindingTablePoolEnable
;
1454 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
1455 #define NoValidData 0
1456 uint32_t BindingTablePoolBufferSize
;
1460 GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
1461 const struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC
* restrict values
)
1463 uint32_t *dw
= (uint32_t * restrict
) dst
;
1466 __gen_field(values
->CommandType
, 29, 31) |
1467 __gen_field(values
->CommandSubType
, 27, 28) |
1468 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1469 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1470 __gen_field(values
->DwordLength
, 0, 7) |
1473 uint32_t dw_SurfaceObjectControlState
;
1474 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
1476 __gen_field(values
->BindingTablePoolEnable
, 11, 11) |
1477 /* Struct SurfaceObjectControlState (0..6): */
1478 __gen_field(dw_SurfaceObjectControlState
, 0, 6) |
1482 __gen_combine_address(data
, &dw
[1], values
->BindingTablePoolBaseAddress
, dw1
);
1485 __gen_field(values
->BindingTablePoolBufferSize
, 12, 31) |
1490 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
1491 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
1492 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_header\
1494 .CommandSubType = 3, \
1495 ._3DCommandOpcode = 0, \
1496 ._3DCommandSubOpcode = 36, \
1499 struct GEN8_3DSTATE_BLEND_STATE_POINTERS
{
1500 uint32_t CommandType
;
1501 uint32_t CommandSubType
;
1502 uint32_t _3DCommandOpcode
;
1503 uint32_t _3DCommandSubOpcode
;
1504 uint32_t DwordLength
;
1505 uint32_t BlendStatePointer
;
1506 uint32_t BlendStatePointerValid
;
1510 GEN8_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1511 const struct GEN8_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
1513 uint32_t *dw
= (uint32_t * restrict
) dst
;
1516 __gen_field(values
->CommandType
, 29, 31) |
1517 __gen_field(values
->CommandSubType
, 27, 28) |
1518 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1519 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1520 __gen_field(values
->DwordLength
, 0, 7) |
1524 __gen_offset(values
->BlendStatePointer
, 6, 31) |
1525 __gen_field(values
->BlendStatePointerValid
, 0, 0) |
1530 #define GEN8_3DSTATE_CC_STATE_POINTERS_length 0x00000002
1531 #define GEN8_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
1532 #define GEN8_3DSTATE_CC_STATE_POINTERS_header \
1534 .CommandSubType = 3, \
1535 ._3DCommandOpcode = 0, \
1536 ._3DCommandSubOpcode = 14, \
1539 struct GEN8_3DSTATE_CC_STATE_POINTERS
{
1540 uint32_t CommandType
;
1541 uint32_t CommandSubType
;
1542 uint32_t _3DCommandOpcode
;
1543 uint32_t _3DCommandSubOpcode
;
1544 uint32_t DwordLength
;
1545 uint32_t ColorCalcStatePointer
;
1546 uint32_t ColorCalcStatePointerValid
;
1550 GEN8_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1551 const struct GEN8_3DSTATE_CC_STATE_POINTERS
* restrict values
)
1553 uint32_t *dw
= (uint32_t * restrict
) dst
;
1556 __gen_field(values
->CommandType
, 29, 31) |
1557 __gen_field(values
->CommandSubType
, 27, 28) |
1558 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1559 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1560 __gen_field(values
->DwordLength
, 0, 7) |
1564 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
1565 __gen_field(values
->ColorCalcStatePointerValid
, 0, 0) |
1570 #define GEN8_3DSTATE_CHROMA_KEY_length 0x00000004
1571 #define GEN8_3DSTATE_CHROMA_KEY_length_bias 0x00000002
1572 #define GEN8_3DSTATE_CHROMA_KEY_header \
1574 .CommandSubType = 3, \
1575 ._3DCommandOpcode = 1, \
1576 ._3DCommandSubOpcode = 4, \
1579 struct GEN8_3DSTATE_CHROMA_KEY
{
1580 uint32_t CommandType
;
1581 uint32_t CommandSubType
;
1582 uint32_t _3DCommandOpcode
;
1583 uint32_t _3DCommandSubOpcode
;
1584 uint32_t DwordLength
;
1585 uint32_t ChromaKeyTableIndex
;
1586 uint32_t ChromaKeyLowValue
;
1587 uint32_t ChromaKeyHighValue
;
1591 GEN8_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
1592 const struct GEN8_3DSTATE_CHROMA_KEY
* restrict values
)
1594 uint32_t *dw
= (uint32_t * restrict
) dst
;
1597 __gen_field(values
->CommandType
, 29, 31) |
1598 __gen_field(values
->CommandSubType
, 27, 28) |
1599 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1600 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1601 __gen_field(values
->DwordLength
, 0, 7) |
1605 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
1609 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
1613 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
1618 #define GEN8_3DSTATE_CLEAR_PARAMS_length 0x00000003
1619 #define GEN8_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
1620 #define GEN8_3DSTATE_CLEAR_PARAMS_header \
1622 .CommandSubType = 3, \
1623 ._3DCommandOpcode = 0, \
1624 ._3DCommandSubOpcode = 4, \
1627 struct GEN8_3DSTATE_CLEAR_PARAMS
{
1628 uint32_t CommandType
;
1629 uint32_t CommandSubType
;
1630 uint32_t _3DCommandOpcode
;
1631 uint32_t _3DCommandSubOpcode
;
1632 uint32_t DwordLength
;
1633 float DepthClearValue
;
1634 uint32_t DepthClearValueValid
;
1638 GEN8_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
1639 const struct GEN8_3DSTATE_CLEAR_PARAMS
* restrict values
)
1641 uint32_t *dw
= (uint32_t * restrict
) dst
;
1644 __gen_field(values
->CommandType
, 29, 31) |
1645 __gen_field(values
->CommandSubType
, 27, 28) |
1646 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1647 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1648 __gen_field(values
->DwordLength
, 0, 7) |
1652 __gen_float(values
->DepthClearValue
) |
1656 __gen_field(values
->DepthClearValueValid
, 0, 0) |
1661 #define GEN8_3DSTATE_CLIP_length 0x00000004
1662 #define GEN8_3DSTATE_CLIP_length_bias 0x00000002
1663 #define GEN8_3DSTATE_CLIP_header \
1665 .CommandSubType = 3, \
1666 ._3DCommandOpcode = 0, \
1667 ._3DCommandSubOpcode = 18, \
1670 struct GEN8_3DSTATE_CLIP
{
1671 uint32_t CommandType
;
1672 uint32_t CommandSubType
;
1673 uint32_t _3DCommandOpcode
;
1674 uint32_t _3DCommandSubOpcode
;
1675 uint32_t DwordLength
;
1678 uint32_t ForceUserClipDistanceCullTestEnableBitmask
;
1681 uint32_t VertexSubPixelPrecisionSelect
;
1682 uint32_t EarlyCullEnable
;
1685 uint32_t ForceUserClipDistanceClipTestEnableBitmask
;
1688 uint32_t ForceClipMode
;
1689 uint32_t ClipperStatisticsEnable
;
1690 uint32_t UserClipDistanceCullTestEnableBitmask
;
1691 uint32_t ClipEnable
;
1694 uint32_t ViewportXYClipTestEnable
;
1695 uint32_t GuardbandClipTestEnable
;
1696 uint32_t UserClipDistanceClipTestEnableBitmask
;
1698 #define REJECT_ALL 3
1699 #define ACCEPT_ALL 4
1701 uint32_t PerspectiveDivideDisable
;
1702 uint32_t NonPerspectiveBarycentricEnable
;
1703 uint32_t TriangleStripListProvokingVertexSelect
;
1704 uint32_t LineStripListProvokingVertexSelect
;
1705 uint32_t TriangleFanProvokingVertexSelect
;
1706 uint32_t MinimumPointWidth
;
1707 uint32_t MaximumPointWidth
;
1708 uint32_t ForceZeroRTAIndexEnable
;
1709 uint32_t MaximumVPIndex
;
1713 GEN8_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1714 const struct GEN8_3DSTATE_CLIP
* restrict values
)
1716 uint32_t *dw
= (uint32_t * restrict
) dst
;
1719 __gen_field(values
->CommandType
, 29, 31) |
1720 __gen_field(values
->CommandSubType
, 27, 28) |
1721 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1722 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1723 __gen_field(values
->DwordLength
, 0, 7) |
1727 __gen_field(values
->ForceUserClipDistanceCullTestEnableBitmask
, 20, 20) |
1728 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1729 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1730 __gen_field(values
->ForceUserClipDistanceClipTestEnableBitmask
, 17, 17) |
1731 __gen_field(values
->ForceClipMode
, 16, 16) |
1732 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1733 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1737 __gen_field(values
->ClipEnable
, 31, 31) |
1738 __gen_field(values
->APIMode
, 30, 30) |
1739 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1740 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1741 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1742 __gen_field(values
->ClipMode
, 13, 15) |
1743 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1744 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1745 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1746 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1747 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1751 __gen_field(values
->MinimumPointWidth
, 17, 27) |
1752 __gen_field(values
->MaximumPointWidth
, 6, 16) |
1753 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1754 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1759 #define GEN8_3DSTATE_CONSTANT_DS_length 0x0000000b
1760 #define GEN8_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1761 #define GEN8_3DSTATE_CONSTANT_DS_header \
1763 .CommandSubType = 3, \
1764 ._3DCommandOpcode = 0, \
1765 ._3DCommandSubOpcode = 26, \
1768 struct GEN8_3DSTATE_CONSTANT_BODY
{
1769 uint32_t ConstantBuffer1ReadLength
;
1770 uint32_t ConstantBuffer0ReadLength
;
1771 uint32_t ConstantBuffer3ReadLength
;
1772 uint32_t ConstantBuffer2ReadLength
;
1773 __gen_address_type PointerToConstantBuffer0
;
1774 __gen_address_type PointerToConstantBuffer1
;
1775 __gen_address_type PointerToConstantBuffer2
;
1776 __gen_address_type PointerToConstantBuffer3
;
1780 GEN8_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1781 const struct GEN8_3DSTATE_CONSTANT_BODY
* restrict values
)
1783 uint32_t *dw
= (uint32_t * restrict
) dst
;
1786 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1787 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1791 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1792 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1799 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1805 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer1
, dw4
);
1811 __gen_combine_address(data
, &dw
[6], values
->PointerToConstantBuffer2
, dw6
);
1817 __gen_combine_address(data
, &dw
[8], values
->PointerToConstantBuffer3
, dw8
);
1821 struct GEN8_3DSTATE_CONSTANT_DS
{
1822 uint32_t CommandType
;
1823 uint32_t CommandSubType
;
1824 uint32_t _3DCommandOpcode
;
1825 uint32_t _3DCommandSubOpcode
;
1826 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1827 uint32_t DwordLength
;
1828 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1832 GEN8_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1833 const struct GEN8_3DSTATE_CONSTANT_DS
* restrict values
)
1835 uint32_t *dw
= (uint32_t * restrict
) dst
;
1837 uint32_t dw_ConstantBufferObjectControlState
;
1838 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1840 __gen_field(values
->CommandType
, 29, 31) |
1841 __gen_field(values
->CommandSubType
, 27, 28) |
1842 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1843 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1844 /* Struct ConstantBufferObjectControlState (8..14): */
1845 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1846 __gen_field(values
->DwordLength
, 0, 7) |
1849 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1852 #define GEN8_3DSTATE_CONSTANT_GS_length 0x0000000b
1853 #define GEN8_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1854 #define GEN8_3DSTATE_CONSTANT_GS_header \
1856 .CommandSubType = 3, \
1857 ._3DCommandOpcode = 0, \
1858 ._3DCommandSubOpcode = 22, \
1861 struct GEN8_3DSTATE_CONSTANT_GS
{
1862 uint32_t CommandType
;
1863 uint32_t CommandSubType
;
1864 uint32_t _3DCommandOpcode
;
1865 uint32_t _3DCommandSubOpcode
;
1866 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1867 uint32_t DwordLength
;
1868 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1872 GEN8_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1873 const struct GEN8_3DSTATE_CONSTANT_GS
* restrict values
)
1875 uint32_t *dw
= (uint32_t * restrict
) dst
;
1877 uint32_t dw_ConstantBufferObjectControlState
;
1878 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1880 __gen_field(values
->CommandType
, 29, 31) |
1881 __gen_field(values
->CommandSubType
, 27, 28) |
1882 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1883 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1884 /* Struct ConstantBufferObjectControlState (8..14): */
1885 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1886 __gen_field(values
->DwordLength
, 0, 7) |
1889 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1892 #define GEN8_3DSTATE_CONSTANT_HS_length 0x0000000b
1893 #define GEN8_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1894 #define GEN8_3DSTATE_CONSTANT_HS_header \
1896 .CommandSubType = 3, \
1897 ._3DCommandOpcode = 0, \
1898 ._3DCommandSubOpcode = 25, \
1901 struct GEN8_3DSTATE_CONSTANT_HS
{
1902 uint32_t CommandType
;
1903 uint32_t CommandSubType
;
1904 uint32_t _3DCommandOpcode
;
1905 uint32_t _3DCommandSubOpcode
;
1906 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1907 uint32_t DwordLength
;
1908 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1912 GEN8_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1913 const struct GEN8_3DSTATE_CONSTANT_HS
* restrict values
)
1915 uint32_t *dw
= (uint32_t * restrict
) dst
;
1917 uint32_t dw_ConstantBufferObjectControlState
;
1918 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1920 __gen_field(values
->CommandType
, 29, 31) |
1921 __gen_field(values
->CommandSubType
, 27, 28) |
1922 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1923 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1924 /* Struct ConstantBufferObjectControlState (8..14): */
1925 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1926 __gen_field(values
->DwordLength
, 0, 7) |
1929 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1932 #define GEN8_3DSTATE_CONSTANT_PS_length 0x0000000b
1933 #define GEN8_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1934 #define GEN8_3DSTATE_CONSTANT_PS_header \
1936 .CommandSubType = 3, \
1937 ._3DCommandOpcode = 0, \
1938 ._3DCommandSubOpcode = 23, \
1941 struct GEN8_3DSTATE_CONSTANT_PS
{
1942 uint32_t CommandType
;
1943 uint32_t CommandSubType
;
1944 uint32_t _3DCommandOpcode
;
1945 uint32_t _3DCommandSubOpcode
;
1946 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1947 uint32_t DwordLength
;
1948 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1952 GEN8_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1953 const struct GEN8_3DSTATE_CONSTANT_PS
* restrict values
)
1955 uint32_t *dw
= (uint32_t * restrict
) dst
;
1957 uint32_t dw_ConstantBufferObjectControlState
;
1958 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1960 __gen_field(values
->CommandType
, 29, 31) |
1961 __gen_field(values
->CommandSubType
, 27, 28) |
1962 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1963 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1964 /* Struct ConstantBufferObjectControlState (8..14): */
1965 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1966 __gen_field(values
->DwordLength
, 0, 7) |
1969 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1972 #define GEN8_3DSTATE_CONSTANT_VS_length 0x0000000b
1973 #define GEN8_3DSTATE_CONSTANT_VS_length_bias 0x00000002
1974 #define GEN8_3DSTATE_CONSTANT_VS_header \
1976 .CommandSubType = 3, \
1977 ._3DCommandOpcode = 0, \
1978 ._3DCommandSubOpcode = 21, \
1981 struct GEN8_3DSTATE_CONSTANT_VS
{
1982 uint32_t CommandType
;
1983 uint32_t CommandSubType
;
1984 uint32_t _3DCommandOpcode
;
1985 uint32_t _3DCommandSubOpcode
;
1986 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1987 uint32_t DwordLength
;
1988 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1992 GEN8_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1993 const struct GEN8_3DSTATE_CONSTANT_VS
* restrict values
)
1995 uint32_t *dw
= (uint32_t * restrict
) dst
;
1997 uint32_t dw_ConstantBufferObjectControlState
;
1998 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2000 __gen_field(values
->CommandType
, 29, 31) |
2001 __gen_field(values
->CommandSubType
, 27, 28) |
2002 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2003 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2004 /* Struct ConstantBufferObjectControlState (8..14): */
2005 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2006 __gen_field(values
->DwordLength
, 0, 7) |
2009 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2012 #define GEN8_3DSTATE_DEPTH_BUFFER_length 0x00000008
2013 #define GEN8_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
2014 #define GEN8_3DSTATE_DEPTH_BUFFER_header \
2016 .CommandSubType = 3, \
2017 ._3DCommandOpcode = 0, \
2018 ._3DCommandSubOpcode = 5, \
2021 struct GEN8_3DSTATE_DEPTH_BUFFER
{
2022 uint32_t CommandType
;
2023 uint32_t CommandSubType
;
2024 uint32_t _3DCommandOpcode
;
2025 uint32_t _3DCommandSubOpcode
;
2026 uint32_t DwordLength
;
2027 #define SURFTYPE_1D 0
2028 #define SURFTYPE_2D 1
2029 #define SURFTYPE_3D 2
2030 #define SURFTYPE_CUBE 3
2031 #define SURFTYPE_NULL 7
2032 uint32_t SurfaceType
;
2033 uint32_t DepthWriteEnable
;
2034 uint32_t StencilWriteEnable
;
2035 uint32_t HierarchicalDepthBufferEnable
;
2037 #define D24_UNORM_X8_UINT 3
2039 uint32_t SurfaceFormat
;
2040 uint32_t SurfacePitch
;
2041 __gen_address_type SurfaceBaseAddress
;
2046 uint32_t MinimumArrayElement
;
2047 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
2048 uint32_t RenderTargetViewExtent
;
2049 uint32_t SurfaceQPitch
;
2053 GEN8_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2054 const struct GEN8_3DSTATE_DEPTH_BUFFER
* restrict values
)
2056 uint32_t *dw
= (uint32_t * restrict
) dst
;
2059 __gen_field(values
->CommandType
, 29, 31) |
2060 __gen_field(values
->CommandSubType
, 27, 28) |
2061 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2062 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2063 __gen_field(values
->DwordLength
, 0, 7) |
2067 __gen_field(values
->SurfaceType
, 29, 31) |
2068 __gen_field(values
->DepthWriteEnable
, 28, 28) |
2069 __gen_field(values
->StencilWriteEnable
, 27, 27) |
2070 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
2071 __gen_field(values
->SurfaceFormat
, 18, 20) |
2072 __gen_field(values
->SurfacePitch
, 0, 17) |
2079 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2082 __gen_field(values
->Height
, 18, 31) |
2083 __gen_field(values
->Width
, 4, 17) |
2084 __gen_field(values
->LOD
, 0, 3) |
2087 uint32_t dw_DepthBufferObjectControlState
;
2088 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
2090 __gen_field(values
->Depth
, 21, 31) |
2091 __gen_field(values
->MinimumArrayElement
, 10, 20) |
2092 /* Struct DepthBufferObjectControlState (0..6): */
2093 __gen_field(dw_DepthBufferObjectControlState
, 0, 6) |
2100 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
2101 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2106 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
2107 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
2108 #define GEN8_3DSTATE_DRAWING_RECTANGLE_header \
2110 .CommandSubType = 3, \
2111 ._3DCommandOpcode = 1, \
2112 ._3DCommandSubOpcode = 0, \
2115 struct GEN8_3DSTATE_DRAWING_RECTANGLE
{
2116 uint32_t CommandType
;
2117 uint32_t CommandSubType
;
2118 uint32_t _3DCommandOpcode
;
2119 uint32_t _3DCommandSubOpcode
;
2121 #define Core0Enabled 1
2122 #define Core1Enabled 2
2123 uint32_t CoreModeSelect
;
2124 uint32_t DwordLength
;
2125 uint32_t ClippedDrawingRectangleYMin
;
2126 uint32_t ClippedDrawingRectangleXMin
;
2127 uint32_t ClippedDrawingRectangleYMax
;
2128 uint32_t ClippedDrawingRectangleXMax
;
2129 uint32_t DrawingRectangleOriginY
;
2130 uint32_t DrawingRectangleOriginX
;
2134 GEN8_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
2135 const struct GEN8_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
2137 uint32_t *dw
= (uint32_t * restrict
) dst
;
2140 __gen_field(values
->CommandType
, 29, 31) |
2141 __gen_field(values
->CommandSubType
, 27, 28) |
2142 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2143 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2144 __gen_field(values
->CoreModeSelect
, 14, 15) |
2145 __gen_field(values
->DwordLength
, 0, 7) |
2149 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
2150 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
2154 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
2155 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
2159 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
2160 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
2165 #define GEN8_3DSTATE_DS_length 0x00000009
2166 #define GEN8_3DSTATE_DS_length_bias 0x00000002
2167 #define GEN8_3DSTATE_DS_header \
2169 .CommandSubType = 3, \
2170 ._3DCommandOpcode = 0, \
2171 ._3DCommandSubOpcode = 29, \
2174 struct GEN8_3DSTATE_DS
{
2175 uint32_t CommandType
;
2176 uint32_t CommandSubType
;
2177 uint32_t _3DCommandOpcode
;
2178 uint32_t _3DCommandSubOpcode
;
2179 uint32_t DwordLength
;
2180 uint32_t KernelStartPointer
;
2183 uint32_t SingleDomainPointDispatch
;
2186 uint32_t VectorMaskEnable
;
2187 #define NoSamplers 0
2188 #define _14Samplers 1
2189 #define _58Samplers 2
2190 #define _912Samplers 3
2191 #define _1316Samplers 4
2192 uint32_t SamplerCount
;
2193 uint32_t BindingTableEntryCount
;
2196 uint32_t ThreadDispatchPriority
;
2199 uint32_t FloatingPointMode
;
2200 uint32_t AccessesUAV
;
2201 uint32_t IllegalOpcodeExceptionEnable
;
2202 uint32_t SoftwareExceptionEnable
;
2203 uint32_t ScratchSpaceBasePointer
;
2204 uint32_t PerThreadScratchSpace
;
2205 uint32_t DispatchGRFStartRegisterForURBData
;
2206 uint32_t PatchURBEntryReadLength
;
2207 uint32_t PatchURBEntryReadOffset
;
2208 uint32_t MaximumNumberofThreads
;
2209 uint32_t StatisticsEnable
;
2210 uint32_t SIMD8DispatchEnable
;
2211 uint32_t ComputeWCoordinateEnable
;
2212 uint32_t CacheDisable
;
2213 uint32_t FunctionEnable
;
2214 uint32_t VertexURBEntryOutputReadOffset
;
2215 uint32_t VertexURBEntryOutputLength
;
2216 uint32_t UserClipDistanceClipTestEnableBitmask
;
2217 uint32_t UserClipDistanceCullTestEnableBitmask
;
2221 GEN8_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2222 const struct GEN8_3DSTATE_DS
* restrict values
)
2224 uint32_t *dw
= (uint32_t * restrict
) dst
;
2227 __gen_field(values
->CommandType
, 29, 31) |
2228 __gen_field(values
->CommandSubType
, 27, 28) |
2229 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2230 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2231 __gen_field(values
->DwordLength
, 0, 7) |
2235 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2239 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
2240 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2241 __gen_field(values
->SamplerCount
, 27, 29) |
2242 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2243 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2244 __gen_field(values
->FloatingPointMode
, 16, 16) |
2245 __gen_field(values
->AccessesUAV
, 14, 14) |
2246 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2247 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2251 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2252 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2256 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
2257 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
2258 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
2262 __gen_field(values
->MaximumNumberofThreads
, 21, 29) |
2263 __gen_field(values
->StatisticsEnable
, 10, 10) |
2264 __gen_field(values
->SIMD8DispatchEnable
, 3, 3) |
2265 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
2266 __gen_field(values
->CacheDisable
, 1, 1) |
2267 __gen_field(values
->FunctionEnable
, 0, 0) |
2271 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2272 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2273 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2274 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2279 #define GEN8_3DSTATE_GATHER_CONSTANT_DS_length_bias 0x00000002
2280 #define GEN8_3DSTATE_GATHER_CONSTANT_DS_header \
2282 .CommandSubType = 3, \
2283 ._3DCommandOpcode = 0, \
2284 ._3DCommandSubOpcode = 55
2286 struct GEN8_GATHER_CONSTANT_ENTRY
{
2287 uint32_t ConstantBufferOffset
;
2288 uint32_t ChannelMask
;
2289 uint32_t BindingTableIndexOffset
;
2293 GEN8_GATHER_CONSTANT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2294 const struct GEN8_GATHER_CONSTANT_ENTRY
* restrict values
)
2296 uint32_t *dw
= (uint32_t * restrict
) dst
;
2299 __gen_offset(values
->ConstantBufferOffset
, 8, 15) |
2300 __gen_field(values
->ChannelMask
, 4, 7) |
2301 __gen_field(values
->BindingTableIndexOffset
, 0, 3) |
2306 struct GEN8_3DSTATE_GATHER_CONSTANT_DS
{
2307 uint32_t CommandType
;
2308 uint32_t CommandSubType
;
2309 uint32_t _3DCommandOpcode
;
2310 uint32_t _3DCommandSubOpcode
;
2311 uint32_t DwordLength
;
2312 uint32_t ConstantBufferValid
;
2313 uint32_t ConstantBufferBindingTableBlock
;
2314 uint32_t GatherBufferOffset
;
2315 uint32_t ConstantBufferDx9GenerateStall
;
2316 /* variable length fields follow */
2320 GEN8_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2321 const struct GEN8_3DSTATE_GATHER_CONSTANT_DS
* restrict values
)
2323 uint32_t *dw
= (uint32_t * restrict
) dst
;
2326 __gen_field(values
->CommandType
, 29, 31) |
2327 __gen_field(values
->CommandSubType
, 27, 28) |
2328 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2329 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2330 __gen_field(values
->DwordLength
, 0, 7) |
2334 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2335 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2339 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2340 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2343 /* variable length fields follow */
2346 #define GEN8_3DSTATE_GATHER_CONSTANT_GS_length_bias 0x00000002
2347 #define GEN8_3DSTATE_GATHER_CONSTANT_GS_header \
2349 .CommandSubType = 3, \
2350 ._3DCommandOpcode = 0, \
2351 ._3DCommandSubOpcode = 53
2353 struct GEN8_3DSTATE_GATHER_CONSTANT_GS
{
2354 uint32_t CommandType
;
2355 uint32_t CommandSubType
;
2356 uint32_t _3DCommandOpcode
;
2357 uint32_t _3DCommandSubOpcode
;
2358 uint32_t DwordLength
;
2359 uint32_t ConstantBufferValid
;
2360 uint32_t ConstantBufferBindingTableBlock
;
2361 uint32_t GatherBufferOffset
;
2362 uint32_t ConstantBufferDx9GenerateStall
;
2363 /* variable length fields follow */
2367 GEN8_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2368 const struct GEN8_3DSTATE_GATHER_CONSTANT_GS
* restrict values
)
2370 uint32_t *dw
= (uint32_t * restrict
) dst
;
2373 __gen_field(values
->CommandType
, 29, 31) |
2374 __gen_field(values
->CommandSubType
, 27, 28) |
2375 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2376 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2377 __gen_field(values
->DwordLength
, 0, 7) |
2381 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2382 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2386 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2387 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2390 /* variable length fields follow */
2393 #define GEN8_3DSTATE_GATHER_CONSTANT_HS_length_bias 0x00000002
2394 #define GEN8_3DSTATE_GATHER_CONSTANT_HS_header \
2396 .CommandSubType = 3, \
2397 ._3DCommandOpcode = 0, \
2398 ._3DCommandSubOpcode = 54
2400 struct GEN8_3DSTATE_GATHER_CONSTANT_HS
{
2401 uint32_t CommandType
;
2402 uint32_t CommandSubType
;
2403 uint32_t _3DCommandOpcode
;
2404 uint32_t _3DCommandSubOpcode
;
2405 uint32_t DwordLength
;
2406 uint32_t ConstantBufferValid
;
2407 uint32_t ConstantBufferBindingTableBlock
;
2408 uint32_t GatherBufferOffset
;
2409 uint32_t ConstantBufferDx9GenerateStall
;
2410 /* variable length fields follow */
2414 GEN8_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2415 const struct GEN8_3DSTATE_GATHER_CONSTANT_HS
* restrict values
)
2417 uint32_t *dw
= (uint32_t * restrict
) dst
;
2420 __gen_field(values
->CommandType
, 29, 31) |
2421 __gen_field(values
->CommandSubType
, 27, 28) |
2422 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2423 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2424 __gen_field(values
->DwordLength
, 0, 7) |
2428 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2429 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2433 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2434 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2437 /* variable length fields follow */
2440 #define GEN8_3DSTATE_GATHER_CONSTANT_PS_length_bias 0x00000002
2441 #define GEN8_3DSTATE_GATHER_CONSTANT_PS_header \
2443 .CommandSubType = 3, \
2444 ._3DCommandOpcode = 0, \
2445 ._3DCommandSubOpcode = 56
2447 struct GEN8_3DSTATE_GATHER_CONSTANT_PS
{
2448 uint32_t CommandType
;
2449 uint32_t CommandSubType
;
2450 uint32_t _3DCommandOpcode
;
2451 uint32_t _3DCommandSubOpcode
;
2452 uint32_t DwordLength
;
2453 uint32_t ConstantBufferValid
;
2454 uint32_t ConstantBufferBindingTableBlock
;
2455 uint32_t GatherBufferOffset
;
2456 uint32_t ConstantBufferDx9GenerateStall
;
2457 uint32_t ConstantBufferDx9Enable
;
2458 /* variable length fields follow */
2462 GEN8_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2463 const struct GEN8_3DSTATE_GATHER_CONSTANT_PS
* restrict values
)
2465 uint32_t *dw
= (uint32_t * restrict
) dst
;
2468 __gen_field(values
->CommandType
, 29, 31) |
2469 __gen_field(values
->CommandSubType
, 27, 28) |
2470 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2471 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2472 __gen_field(values
->DwordLength
, 0, 7) |
2476 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2477 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2481 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2482 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2483 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2486 /* variable length fields follow */
2489 #define GEN8_3DSTATE_GATHER_CONSTANT_VS_length_bias 0x00000002
2490 #define GEN8_3DSTATE_GATHER_CONSTANT_VS_header \
2492 .CommandSubType = 3, \
2493 ._3DCommandOpcode = 0, \
2494 ._3DCommandSubOpcode = 52
2496 struct GEN8_3DSTATE_GATHER_CONSTANT_VS
{
2497 uint32_t CommandType
;
2498 uint32_t CommandSubType
;
2499 uint32_t _3DCommandOpcode
;
2500 uint32_t _3DCommandSubOpcode
;
2501 uint32_t DwordLength
;
2502 uint32_t ConstantBufferValid
;
2503 uint32_t ConstantBufferBindingTableBlock
;
2504 uint32_t GatherBufferOffset
;
2505 uint32_t ConstantBufferDx9GenerateStall
;
2506 uint32_t ConstantBufferDx9Enable
;
2507 /* variable length fields follow */
2511 GEN8_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2512 const struct GEN8_3DSTATE_GATHER_CONSTANT_VS
* restrict values
)
2514 uint32_t *dw
= (uint32_t * restrict
) dst
;
2517 __gen_field(values
->CommandType
, 29, 31) |
2518 __gen_field(values
->CommandSubType
, 27, 28) |
2519 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2520 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2521 __gen_field(values
->DwordLength
, 0, 7) |
2525 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2526 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2530 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2531 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2532 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2535 /* variable length fields follow */
2538 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length 0x00000004
2539 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002
2540 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_header \
2542 .CommandSubType = 3, \
2543 ._3DCommandOpcode = 1, \
2544 ._3DCommandSubOpcode = 26, \
2547 struct GEN8_3DSTATE_GATHER_POOL_ALLOC
{
2548 uint32_t CommandType
;
2549 uint32_t CommandSubType
;
2550 uint32_t _3DCommandOpcode
;
2551 uint32_t _3DCommandSubOpcode
;
2552 uint32_t DwordLength
;
2553 __gen_address_type GatherPoolBaseAddress
;
2554 uint32_t GatherPoolEnable
;
2555 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2556 uint32_t GatherPoolBufferSize
;
2560 GEN8_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
2561 const struct GEN8_3DSTATE_GATHER_POOL_ALLOC
* restrict values
)
2563 uint32_t *dw
= (uint32_t * restrict
) dst
;
2566 __gen_field(values
->CommandType
, 29, 31) |
2567 __gen_field(values
->CommandSubType
, 27, 28) |
2568 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2569 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2570 __gen_field(values
->DwordLength
, 0, 7) |
2573 uint32_t dw_MemoryObjectControlState
;
2574 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2576 __gen_field(values
->GatherPoolEnable
, 11, 11) |
2577 /* Struct MemoryObjectControlState (0..6): */
2578 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
2582 __gen_combine_address(data
, &dw
[1], values
->GatherPoolBaseAddress
, dw1
);
2585 __gen_field(values
->GatherPoolBufferSize
, 12, 31) |
2590 #define GEN8_3DSTATE_GS_length 0x0000000a
2591 #define GEN8_3DSTATE_GS_length_bias 0x00000002
2592 #define GEN8_3DSTATE_GS_header \
2594 .CommandSubType = 3, \
2595 ._3DCommandOpcode = 0, \
2596 ._3DCommandSubOpcode = 17, \
2599 struct GEN8_3DSTATE_GS
{
2600 uint32_t CommandType
;
2601 uint32_t CommandSubType
;
2602 uint32_t _3DCommandOpcode
;
2603 uint32_t _3DCommandSubOpcode
;
2604 uint32_t DwordLength
;
2605 uint32_t KernelStartPointer
;
2606 uint32_t SingleProgramFlow
;
2609 uint32_t VectorMaskEnable
;
2610 #define NoSamplers 0
2611 #define _14Samplers 1
2612 #define _58Samplers 2
2613 #define _912Samplers 3
2614 #define _1316Samplers 4
2615 uint32_t SamplerCount
;
2616 uint32_t BindingTableEntryCount
;
2619 uint32_t ThreadDispatchPriority
;
2622 uint32_t FloatingPointMode
;
2623 uint32_t IllegalOpcodeExceptionEnable
;
2624 uint32_t AccessesUAV
;
2625 uint32_t MaskStackExceptionEnable
;
2626 uint32_t SoftwareExceptionEnable
;
2627 uint32_t ExpectedVertexCount
;
2628 uint32_t ScratchSpaceBasePointer
;
2629 uint32_t PerThreadScratchSpace
;
2630 uint32_t OutputVertexSize
;
2631 uint32_t OutputTopology
;
2632 uint32_t VertexURBEntryReadLength
;
2633 uint32_t IncludeVertexHandles
;
2634 uint32_t VertexURBEntryReadOffset
;
2635 uint32_t DispatchGRFStartRegisterForURBData
;
2636 uint32_t MaximumNumberofThreads
;
2637 uint32_t ControlDataHeaderSize
;
2638 uint32_t InstanceControl
;
2639 uint32_t DefaultStreamId
;
2640 #define DispatchModeSingle 0
2641 #define DispatchModeDualInstance 1
2642 #define DispatchModeDualObject 2
2643 #define DispatchModeSIMD8 3
2644 uint32_t DispatchMode
;
2645 uint32_t StatisticsEnable
;
2646 uint32_t InvocationsIncrementValue
;
2647 uint32_t IncludePrimitiveID
;
2651 uint32_t ReorderMode
;
2652 uint32_t DiscardAdjacency
;
2656 uint32_t ControlDataFormat
;
2657 uint32_t StaticOutput
;
2658 uint32_t StaticOutputVertexCount
;
2659 uint32_t VertexURBEntryOutputReadOffset
;
2660 uint32_t VertexURBEntryOutputLength
;
2661 uint32_t UserClipDistanceClipTestEnableBitmask
;
2662 uint32_t UserClipDistanceCullTestEnableBitmask
;
2666 GEN8_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2667 const struct GEN8_3DSTATE_GS
* restrict values
)
2669 uint32_t *dw
= (uint32_t * restrict
) dst
;
2672 __gen_field(values
->CommandType
, 29, 31) |
2673 __gen_field(values
->CommandSubType
, 27, 28) |
2674 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2675 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2676 __gen_field(values
->DwordLength
, 0, 7) |
2680 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2684 __gen_field(values
->SingleProgramFlow
, 31, 31) |
2685 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2686 __gen_field(values
->SamplerCount
, 27, 29) |
2687 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2688 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2689 __gen_field(values
->FloatingPointMode
, 16, 16) |
2690 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2691 __gen_field(values
->AccessesUAV
, 12, 12) |
2692 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2693 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2694 __gen_field(values
->ExpectedVertexCount
, 0, 5) |
2698 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2699 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2703 __gen_field(values
->OutputVertexSize
, 23, 28) |
2704 __gen_field(values
->OutputTopology
, 17, 22) |
2705 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2706 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
2707 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2708 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 0, 3) |
2712 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2713 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
2714 __gen_field(values
->InstanceControl
, 15, 19) |
2715 __gen_field(values
->DefaultStreamId
, 13, 14) |
2716 __gen_field(values
->DispatchMode
, 11, 12) |
2717 __gen_field(values
->StatisticsEnable
, 10, 10) |
2718 __gen_field(values
->InvocationsIncrementValue
, 5, 9) |
2719 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
2720 __gen_field(values
->Hint
, 3, 3) |
2721 __gen_field(values
->ReorderMode
, 2, 2) |
2722 __gen_field(values
->DiscardAdjacency
, 1, 1) |
2723 __gen_field(values
->Enable
, 0, 0) |
2727 __gen_field(values
->ControlDataFormat
, 31, 31) |
2728 __gen_field(values
->StaticOutput
, 30, 30) |
2729 __gen_field(values
->StaticOutputVertexCount
, 16, 26) |
2733 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2734 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2735 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2736 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2741 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000005
2742 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
2743 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_header \
2745 .CommandSubType = 3, \
2746 ._3DCommandOpcode = 0, \
2747 ._3DCommandSubOpcode = 7, \
2750 struct GEN8_3DSTATE_HIER_DEPTH_BUFFER
{
2751 uint32_t CommandType
;
2752 uint32_t CommandSubType
;
2753 uint32_t _3DCommandOpcode
;
2754 uint32_t _3DCommandSubOpcode
;
2755 uint32_t DwordLength
;
2756 struct GEN8_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
2757 uint32_t SurfacePitch
;
2758 __gen_address_type SurfaceBaseAddress
;
2759 uint32_t SurfaceQPitch
;
2763 GEN8_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2764 const struct GEN8_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
2766 uint32_t *dw
= (uint32_t * restrict
) dst
;
2769 __gen_field(values
->CommandType
, 29, 31) |
2770 __gen_field(values
->CommandSubType
, 27, 28) |
2771 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2772 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2773 __gen_field(values
->DwordLength
, 0, 7) |
2776 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
2777 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
2779 /* Struct HierarchicalDepthBufferObjectControlState (25..31): */
2780 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 31) |
2781 __gen_field(values
->SurfacePitch
, 0, 16) |
2788 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2791 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2796 #define GEN8_3DSTATE_HS_length 0x00000009
2797 #define GEN8_3DSTATE_HS_length_bias 0x00000002
2798 #define GEN8_3DSTATE_HS_header \
2800 .CommandSubType = 3, \
2801 ._3DCommandOpcode = 0, \
2802 ._3DCommandSubOpcode = 27, \
2805 struct GEN8_3DSTATE_HS
{
2806 uint32_t CommandType
;
2807 uint32_t CommandSubType
;
2808 uint32_t _3DCommandOpcode
;
2809 uint32_t _3DCommandSubOpcode
;
2810 uint32_t DwordLength
;
2811 #define NoSamplers 0
2812 #define _14Samplers 1
2813 #define _58Samplers 2
2814 #define _912Samplers 3
2815 #define _1316Samplers 4
2816 uint32_t SamplerCount
;
2817 uint32_t BindingTableEntryCount
;
2820 uint32_t ThreadDispatchPriority
;
2823 uint32_t FloatingPointMode
;
2824 uint32_t IllegalOpcodeExceptionEnable
;
2825 uint32_t SoftwareExceptionEnable
;
2827 uint32_t StatisticsEnable
;
2828 uint32_t MaximumNumberofThreads
;
2829 uint32_t InstanceCount
;
2830 uint32_t KernelStartPointer
;
2831 uint32_t ScratchSpaceBasePointer
;
2832 uint32_t PerThreadScratchSpace
;
2833 uint32_t SingleProgramFlow
;
2836 uint32_t VectorMaskEnable
;
2837 uint32_t AccessesUAV
;
2838 uint32_t IncludeVertexHandles
;
2839 uint32_t DispatchGRFStartRegisterForURBData
;
2840 uint32_t VertexURBEntryReadLength
;
2841 uint32_t VertexURBEntryReadOffset
;
2845 GEN8_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2846 const struct GEN8_3DSTATE_HS
* restrict values
)
2848 uint32_t *dw
= (uint32_t * restrict
) dst
;
2851 __gen_field(values
->CommandType
, 29, 31) |
2852 __gen_field(values
->CommandSubType
, 27, 28) |
2853 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2854 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2855 __gen_field(values
->DwordLength
, 0, 7) |
2859 __gen_field(values
->SamplerCount
, 27, 29) |
2860 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2861 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2862 __gen_field(values
->FloatingPointMode
, 16, 16) |
2863 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2864 __gen_field(values
->SoftwareExceptionEnable
, 12, 12) |
2868 __gen_field(values
->Enable
, 31, 31) |
2869 __gen_field(values
->StatisticsEnable
, 29, 29) |
2870 __gen_field(values
->MaximumNumberofThreads
, 8, 16) |
2871 __gen_field(values
->InstanceCount
, 0, 3) |
2875 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2879 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2880 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2884 __gen_field(values
->SingleProgramFlow
, 27, 27) |
2885 __gen_field(values
->VectorMaskEnable
, 26, 26) |
2886 __gen_field(values
->AccessesUAV
, 25, 25) |
2887 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
2888 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
2889 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2890 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2898 #define GEN8_3DSTATE_INDEX_BUFFER_length 0x00000005
2899 #define GEN8_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
2900 #define GEN8_3DSTATE_INDEX_BUFFER_header \
2902 .CommandSubType = 3, \
2903 ._3DCommandOpcode = 0, \
2904 ._3DCommandSubOpcode = 10, \
2907 struct GEN8_3DSTATE_INDEX_BUFFER
{
2908 uint32_t CommandType
;
2909 uint32_t CommandSubType
;
2910 uint32_t _3DCommandOpcode
;
2911 uint32_t _3DCommandSubOpcode
;
2912 uint32_t DwordLength
;
2913 #define INDEX_BYTE 0
2914 #define INDEX_WORD 1
2915 #define INDEX_DWORD 2
2916 uint32_t IndexFormat
;
2917 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2918 __gen_address_type BufferStartingAddress
;
2919 uint32_t BufferSize
;
2923 GEN8_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2924 const struct GEN8_3DSTATE_INDEX_BUFFER
* restrict values
)
2926 uint32_t *dw
= (uint32_t * restrict
) dst
;
2929 __gen_field(values
->CommandType
, 29, 31) |
2930 __gen_field(values
->CommandSubType
, 27, 28) |
2931 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2932 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2933 __gen_field(values
->DwordLength
, 0, 7) |
2936 uint32_t dw_MemoryObjectControlState
;
2937 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2939 __gen_field(values
->IndexFormat
, 8, 9) |
2940 /* Struct MemoryObjectControlState (0..6): */
2941 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
2948 __gen_combine_address(data
, &dw
[2], values
->BufferStartingAddress
, dw2
);
2951 __gen_field(values
->BufferSize
, 0, 31) |
2956 #define GEN8_3DSTATE_LINE_STIPPLE_length 0x00000003
2957 #define GEN8_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
2958 #define GEN8_3DSTATE_LINE_STIPPLE_header \
2960 .CommandSubType = 3, \
2961 ._3DCommandOpcode = 1, \
2962 ._3DCommandSubOpcode = 8, \
2965 struct GEN8_3DSTATE_LINE_STIPPLE
{
2966 uint32_t CommandType
;
2967 uint32_t CommandSubType
;
2968 uint32_t _3DCommandOpcode
;
2969 uint32_t _3DCommandSubOpcode
;
2970 uint32_t DwordLength
;
2971 uint32_t ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
2972 uint32_t CurrentRepeatCounter
;
2973 uint32_t CurrentStippleIndex
;
2974 uint32_t LineStipplePattern
;
2975 uint32_t LineStippleInverseRepeatCount
;
2976 uint32_t LineStippleRepeatCount
;
2980 GEN8_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2981 const struct GEN8_3DSTATE_LINE_STIPPLE
* restrict values
)
2983 uint32_t *dw
= (uint32_t * restrict
) dst
;
2986 __gen_field(values
->CommandType
, 29, 31) |
2987 __gen_field(values
->CommandSubType
, 27, 28) |
2988 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2989 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2990 __gen_field(values
->DwordLength
, 0, 7) |
2994 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
2995 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
2996 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
2997 __gen_field(values
->LineStipplePattern
, 0, 15) |
3001 __gen_field(values
->LineStippleInverseRepeatCount
, 15, 31) |
3002 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
3007 #define GEN8_3DSTATE_MONOFILTER_SIZE_length 0x00000002
3008 #define GEN8_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
3009 #define GEN8_3DSTATE_MONOFILTER_SIZE_header \
3011 .CommandSubType = 3, \
3012 ._3DCommandOpcode = 1, \
3013 ._3DCommandSubOpcode = 17, \
3016 struct GEN8_3DSTATE_MONOFILTER_SIZE
{
3017 uint32_t CommandType
;
3018 uint32_t CommandSubType
;
3019 uint32_t _3DCommandOpcode
;
3020 uint32_t _3DCommandSubOpcode
;
3021 uint32_t DwordLength
;
3022 uint32_t MonochromeFilterWidth
;
3023 uint32_t MonochromeFilterHeight
;
3027 GEN8_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
3028 const struct GEN8_3DSTATE_MONOFILTER_SIZE
* restrict values
)
3030 uint32_t *dw
= (uint32_t * restrict
) dst
;
3033 __gen_field(values
->CommandType
, 29, 31) |
3034 __gen_field(values
->CommandSubType
, 27, 28) |
3035 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3036 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3037 __gen_field(values
->DwordLength
, 0, 7) |
3041 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
3042 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
3047 #define GEN8_3DSTATE_MULTISAMPLE_length 0x00000002
3048 #define GEN8_3DSTATE_MULTISAMPLE_length_bias 0x00000002
3049 #define GEN8_3DSTATE_MULTISAMPLE_header \
3051 .CommandSubType = 3, \
3052 ._3DCommandOpcode = 0, \
3053 ._3DCommandSubOpcode = 13, \
3056 struct GEN8_3DSTATE_MULTISAMPLE
{
3057 uint32_t CommandType
;
3058 uint32_t CommandSubType
;
3059 uint32_t _3DCommandOpcode
;
3060 uint32_t _3DCommandSubOpcode
;
3061 uint32_t DwordLength
;
3062 uint32_t PixelPositionOffsetEnable
;
3065 uint32_t PixelLocation
;
3066 uint32_t NumberofMultisamples
;
3070 GEN8_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3071 const struct GEN8_3DSTATE_MULTISAMPLE
* restrict values
)
3073 uint32_t *dw
= (uint32_t * restrict
) dst
;
3076 __gen_field(values
->CommandType
, 29, 31) |
3077 __gen_field(values
->CommandSubType
, 27, 28) |
3078 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3079 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3080 __gen_field(values
->DwordLength
, 0, 7) |
3084 __gen_field(values
->PixelPositionOffsetEnable
, 5, 5) |
3085 __gen_field(values
->PixelLocation
, 4, 4) |
3086 __gen_field(values
->NumberofMultisamples
, 1, 3) |
3091 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
3092 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
3093 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_header \
3095 .CommandSubType = 3, \
3096 ._3DCommandOpcode = 1, \
3097 ._3DCommandSubOpcode = 6, \
3100 struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET
{
3101 uint32_t CommandType
;
3102 uint32_t CommandSubType
;
3103 uint32_t _3DCommandOpcode
;
3104 uint32_t _3DCommandSubOpcode
;
3105 uint32_t DwordLength
;
3106 uint32_t PolygonStippleXOffset
;
3107 uint32_t PolygonStippleYOffset
;
3111 GEN8_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
3112 const struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
3114 uint32_t *dw
= (uint32_t * restrict
) dst
;
3117 __gen_field(values
->CommandType
, 29, 31) |
3118 __gen_field(values
->CommandSubType
, 27, 28) |
3119 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3120 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3121 __gen_field(values
->DwordLength
, 0, 7) |
3125 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
3126 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
3131 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
3132 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
3133 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_header\
3135 .CommandSubType = 3, \
3136 ._3DCommandOpcode = 1, \
3137 ._3DCommandSubOpcode = 7, \
3140 struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN
{
3141 uint32_t CommandType
;
3142 uint32_t CommandSubType
;
3143 uint32_t _3DCommandOpcode
;
3144 uint32_t _3DCommandSubOpcode
;
3145 uint32_t DwordLength
;
3146 uint32_t PatternRow
;
3150 GEN8_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
3151 const struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
3153 uint32_t *dw
= (uint32_t * restrict
) dst
;
3156 __gen_field(values
->CommandType
, 29, 31) |
3157 __gen_field(values
->CommandSubType
, 27, 28) |
3158 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3159 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3160 __gen_field(values
->DwordLength
, 0, 7) |
3164 __gen_field(values
->PatternRow
, 0, 31) |
3169 #define GEN8_3DSTATE_PS_length 0x0000000c
3170 #define GEN8_3DSTATE_PS_length_bias 0x00000002
3171 #define GEN8_3DSTATE_PS_header \
3173 .CommandSubType = 3, \
3174 ._3DCommandOpcode = 0, \
3175 ._3DCommandSubOpcode = 32, \
3178 struct GEN8_3DSTATE_PS
{
3179 uint32_t CommandType
;
3180 uint32_t CommandSubType
;
3181 uint32_t _3DCommandOpcode
;
3182 uint32_t _3DCommandSubOpcode
;
3183 uint32_t DwordLength
;
3184 uint32_t KernelStartPointer0
;
3187 uint32_t SingleProgramFlow
;
3190 uint32_t VectorMaskEnable
;
3191 #define NoSamplers 0
3192 #define _14Samplers 1
3193 #define _58Samplers 2
3194 #define _912Samplers 3
3195 #define _1316Samplers 4
3196 uint32_t SamplerCount
;
3197 #define FlushedtoZero 0
3199 uint32_t SinglePrecisionDenormalMode
;
3200 uint32_t BindingTableEntryCount
;
3203 uint32_t ThreadDispatchPriority
;
3206 uint32_t FloatingPointMode
;
3211 uint32_t RoundingMode
;
3212 uint32_t IllegalOpcodeExceptionEnable
;
3213 uint32_t MaskStackExceptionEnable
;
3214 uint32_t SoftwareExceptionEnable
;
3215 uint32_t ScratchSpaceBasePointer
;
3216 uint32_t PerThreadScratchSpace
;
3217 uint32_t MaximumNumberofThreadsPerPSD
;
3218 uint32_t PushConstantEnable
;
3219 uint32_t RenderTargetFastClearEnable
;
3220 uint32_t RenderTargetResolveEnable
;
3221 #define POSOFFSET_NONE 0
3222 #define POSOFFSET_CENTROID 2
3223 #define POSOFFSET_SAMPLE 3
3224 uint32_t PositionXYOffsetSelect
;
3225 uint32_t _32PixelDispatchEnable
;
3226 uint32_t _16PixelDispatchEnable
;
3227 uint32_t _8PixelDispatchEnable
;
3228 uint32_t DispatchGRFStartRegisterForConstantSetupData0
;
3229 uint32_t DispatchGRFStartRegisterForConstantSetupData1
;
3230 uint32_t DispatchGRFStartRegisterForConstantSetupData2
;
3231 uint32_t KernelStartPointer1
;
3232 uint32_t KernelStartPointer2
;
3236 GEN8_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3237 const struct GEN8_3DSTATE_PS
* restrict values
)
3239 uint32_t *dw
= (uint32_t * restrict
) dst
;
3242 __gen_field(values
->CommandType
, 29, 31) |
3243 __gen_field(values
->CommandSubType
, 27, 28) |
3244 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3245 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3246 __gen_field(values
->DwordLength
, 0, 7) |
3250 __gen_offset(values
->KernelStartPointer0
, 6, 63) |
3254 __gen_field(values
->SingleProgramFlow
, 31, 31) |
3255 __gen_field(values
->VectorMaskEnable
, 30, 30) |
3256 __gen_field(values
->SamplerCount
, 27, 29) |
3257 __gen_field(values
->SinglePrecisionDenormalMode
, 26, 26) |
3258 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3259 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
3260 __gen_field(values
->FloatingPointMode
, 16, 16) |
3261 __gen_field(values
->RoundingMode
, 14, 15) |
3262 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3263 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
3264 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3268 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
3269 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3273 __gen_field(values
->MaximumNumberofThreadsPerPSD
, 23, 31) |
3274 __gen_field(values
->PushConstantEnable
, 11, 11) |
3275 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
3276 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
3277 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
3278 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
3279 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
3280 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
3284 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData0
, 16, 22) |
3285 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData1
, 8, 14) |
3286 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData2
, 0, 6) |
3290 __gen_offset(values
->KernelStartPointer1
, 6, 63) |
3294 __gen_offset(values
->KernelStartPointer2
, 6, 63) |
3299 #define GEN8_3DSTATE_PS_BLEND_length 0x00000002
3300 #define GEN8_3DSTATE_PS_BLEND_length_bias 0x00000002
3301 #define GEN8_3DSTATE_PS_BLEND_header \
3303 .CommandSubType = 3, \
3304 ._3DCommandOpcode = 0, \
3305 ._3DCommandSubOpcode = 77, \
3308 struct GEN8_3DSTATE_PS_BLEND
{
3309 uint32_t CommandType
;
3310 uint32_t CommandSubType
;
3311 uint32_t _3DCommandOpcode
;
3312 uint32_t _3DCommandSubOpcode
;
3313 uint32_t DwordLength
;
3314 uint32_t AlphaToCoverageEnable
;
3315 uint32_t HasWriteableRT
;
3316 uint32_t ColorBufferBlendEnable
;
3317 uint32_t SourceAlphaBlendFactor
;
3318 uint32_t DestinationAlphaBlendFactor
;
3319 uint32_t SourceBlendFactor
;
3320 uint32_t DestinationBlendFactor
;
3321 uint32_t AlphaTestEnable
;
3322 uint32_t IndependentAlphaBlendEnable
;
3326 GEN8_3DSTATE_PS_BLEND_pack(__gen_user_data
*data
, void * restrict dst
,
3327 const struct GEN8_3DSTATE_PS_BLEND
* restrict values
)
3329 uint32_t *dw
= (uint32_t * restrict
) dst
;
3332 __gen_field(values
->CommandType
, 29, 31) |
3333 __gen_field(values
->CommandSubType
, 27, 28) |
3334 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3335 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3336 __gen_field(values
->DwordLength
, 0, 7) |
3340 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
3341 __gen_field(values
->HasWriteableRT
, 30, 30) |
3342 __gen_field(values
->ColorBufferBlendEnable
, 29, 29) |
3343 __gen_field(values
->SourceAlphaBlendFactor
, 24, 28) |
3344 __gen_field(values
->DestinationAlphaBlendFactor
, 19, 23) |
3345 __gen_field(values
->SourceBlendFactor
, 14, 18) |
3346 __gen_field(values
->DestinationBlendFactor
, 9, 13) |
3347 __gen_field(values
->AlphaTestEnable
, 8, 8) |
3348 __gen_field(values
->IndependentAlphaBlendEnable
, 7, 7) |
3353 #define GEN8_3DSTATE_PS_EXTRA_length 0x00000002
3354 #define GEN8_3DSTATE_PS_EXTRA_length_bias 0x00000002
3355 #define GEN8_3DSTATE_PS_EXTRA_header \
3357 .CommandSubType = 3, \
3358 ._3DCommandOpcode = 0, \
3359 ._3DCommandSubOpcode = 79, \
3362 struct GEN8_3DSTATE_PS_EXTRA
{
3363 uint32_t CommandType
;
3364 uint32_t CommandSubType
;
3365 uint32_t _3DCommandOpcode
;
3366 uint32_t _3DCommandSubOpcode
;
3367 uint32_t DwordLength
;
3368 uint32_t PixelShaderValid
;
3369 uint32_t PixelShaderDoesnotwritetoRT
;
3370 uint32_t oMaskPresenttoRenderTarget
;
3371 uint32_t PixelShaderKillsPixel
;
3372 #define PSCDEPTH_OFF 0
3373 #define PSCDEPTH_ON 1
3374 #define PSCDEPTH_ON_GE 2
3375 #define PSCDEPTH_ON_LE 3
3376 uint32_t PixelShaderComputedDepthMode
;
3377 uint32_t ForceComputedDepth
;
3378 uint32_t PixelShaderUsesSourceDepth
;
3379 uint32_t PixelShaderUsesSourceW
;
3381 uint32_t AttributeEnable
;
3382 uint32_t PixelShaderDisablesAlphaToCoverage
;
3383 uint32_t PixelShaderIsPerSample
;
3384 uint32_t PixelShaderHasUAV
;
3385 uint32_t PixelShaderUsesInputCoverageMask
;
3389 GEN8_3DSTATE_PS_EXTRA_pack(__gen_user_data
*data
, void * restrict dst
,
3390 const struct GEN8_3DSTATE_PS_EXTRA
* restrict values
)
3392 uint32_t *dw
= (uint32_t * restrict
) dst
;
3395 __gen_field(values
->CommandType
, 29, 31) |
3396 __gen_field(values
->CommandSubType
, 27, 28) |
3397 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3398 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3399 __gen_field(values
->DwordLength
, 0, 7) |
3403 __gen_field(values
->PixelShaderValid
, 31, 31) |
3404 __gen_field(values
->PixelShaderDoesnotwritetoRT
, 30, 30) |
3405 __gen_field(values
->oMaskPresenttoRenderTarget
, 29, 29) |
3406 __gen_field(values
->PixelShaderKillsPixel
, 28, 28) |
3407 __gen_field(values
->PixelShaderComputedDepthMode
, 26, 27) |
3408 __gen_field(values
->ForceComputedDepth
, 25, 25) |
3409 __gen_field(values
->PixelShaderUsesSourceDepth
, 24, 24) |
3410 __gen_field(values
->PixelShaderUsesSourceW
, 23, 23) |
3411 __gen_field(values
->Removed
, 17, 17) |
3412 __gen_field(values
->AttributeEnable
, 8, 8) |
3413 __gen_field(values
->PixelShaderDisablesAlphaToCoverage
, 7, 7) |
3414 __gen_field(values
->PixelShaderIsPerSample
, 6, 6) |
3415 __gen_field(values
->PixelShaderHasUAV
, 2, 2) |
3416 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 1, 1) |
3421 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
3422 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
3423 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
3425 .CommandSubType = 3, \
3426 ._3DCommandOpcode = 1, \
3427 ._3DCommandSubOpcode = 20, \
3430 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
3431 uint32_t CommandType
;
3432 uint32_t CommandSubType
;
3433 uint32_t _3DCommandOpcode
;
3434 uint32_t _3DCommandSubOpcode
;
3435 uint32_t DwordLength
;
3436 uint32_t ConstantBufferOffset
;
3437 uint32_t ConstantBufferSize
;
3441 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3442 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
3444 uint32_t *dw
= (uint32_t * restrict
) dst
;
3447 __gen_field(values
->CommandType
, 29, 31) |
3448 __gen_field(values
->CommandSubType
, 27, 28) |
3449 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3450 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3451 __gen_field(values
->DwordLength
, 0, 7) |
3455 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3456 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3461 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
3462 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
3463 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
3465 .CommandSubType = 3, \
3466 ._3DCommandOpcode = 1, \
3467 ._3DCommandSubOpcode = 21, \
3470 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
3471 uint32_t CommandType
;
3472 uint32_t CommandSubType
;
3473 uint32_t _3DCommandOpcode
;
3474 uint32_t _3DCommandSubOpcode
;
3475 uint32_t DwordLength
;
3476 uint32_t ConstantBufferOffset
;
3477 uint32_t ConstantBufferSize
;
3481 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3482 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
3484 uint32_t *dw
= (uint32_t * restrict
) dst
;
3487 __gen_field(values
->CommandType
, 29, 31) |
3488 __gen_field(values
->CommandSubType
, 27, 28) |
3489 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3490 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3491 __gen_field(values
->DwordLength
, 0, 7) |
3495 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3496 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3501 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
3502 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
3503 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
3505 .CommandSubType = 3, \
3506 ._3DCommandOpcode = 1, \
3507 ._3DCommandSubOpcode = 19, \
3510 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
3511 uint32_t CommandType
;
3512 uint32_t CommandSubType
;
3513 uint32_t _3DCommandOpcode
;
3514 uint32_t _3DCommandSubOpcode
;
3515 uint32_t DwordLength
;
3516 uint32_t ConstantBufferOffset
;
3517 uint32_t ConstantBufferSize
;
3521 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3522 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
3524 uint32_t *dw
= (uint32_t * restrict
) dst
;
3527 __gen_field(values
->CommandType
, 29, 31) |
3528 __gen_field(values
->CommandSubType
, 27, 28) |
3529 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3530 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3531 __gen_field(values
->DwordLength
, 0, 7) |
3535 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3536 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3541 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
3542 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
3543 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
3545 .CommandSubType = 3, \
3546 ._3DCommandOpcode = 1, \
3547 ._3DCommandSubOpcode = 22, \
3550 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
3551 uint32_t CommandType
;
3552 uint32_t CommandSubType
;
3553 uint32_t _3DCommandOpcode
;
3554 uint32_t _3DCommandSubOpcode
;
3555 uint32_t DwordLength
;
3556 uint32_t ConstantBufferOffset
;
3557 uint32_t ConstantBufferSize
;
3561 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3562 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
3564 uint32_t *dw
= (uint32_t * restrict
) dst
;
3567 __gen_field(values
->CommandType
, 29, 31) |
3568 __gen_field(values
->CommandSubType
, 27, 28) |
3569 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3570 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3571 __gen_field(values
->DwordLength
, 0, 7) |
3575 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3576 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3581 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
3582 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
3583 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
3585 .CommandSubType = 3, \
3586 ._3DCommandOpcode = 1, \
3587 ._3DCommandSubOpcode = 18, \
3590 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
3591 uint32_t CommandType
;
3592 uint32_t CommandSubType
;
3593 uint32_t _3DCommandOpcode
;
3594 uint32_t _3DCommandSubOpcode
;
3595 uint32_t DwordLength
;
3596 uint32_t ConstantBufferOffset
;
3597 uint32_t ConstantBufferSize
;
3601 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3602 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
3604 uint32_t *dw
= (uint32_t * restrict
) dst
;
3607 __gen_field(values
->CommandType
, 29, 31) |
3608 __gen_field(values
->CommandSubType
, 27, 28) |
3609 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3610 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3611 __gen_field(values
->DwordLength
, 0, 7) |
3615 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3616 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3621 #define GEN8_3DSTATE_RASTER_length 0x00000005
3622 #define GEN8_3DSTATE_RASTER_length_bias 0x00000002
3623 #define GEN8_3DSTATE_RASTER_header \
3625 .CommandSubType = 3, \
3626 ._3DCommandOpcode = 0, \
3627 ._3DCommandSubOpcode = 80, \
3630 struct GEN8_3DSTATE_RASTER
{
3631 uint32_t CommandType
;
3632 uint32_t CommandSubType
;
3633 uint32_t _3DCommandOpcode
;
3634 uint32_t _3DCommandSubOpcode
;
3635 uint32_t DwordLength
;
3641 #define CounterClockwise 1
3642 uint32_t FrontWinding
;
3643 #define FSC_NUMRASTSAMPLES_0 0
3644 #define FSC_NUMRASTSAMPLES_1 1
3645 #define FSC_NUMRASTSAMPLES_2 2
3646 #define FSC_NUMRASTSAMPLES_4 3
3647 #define FSC_NUMRASTSAMPLES_8 4
3648 #define FSC_NUMRASTSAMPLES_16 5
3649 uint32_t ForcedSampleCount
;
3650 #define CULLMODE_BOTH 0
3651 #define CULLMODE_NONE 1
3652 #define CULLMODE_FRONT 2
3653 #define CULLMODE_BACK 3
3657 uint32_t ForceMultisampling
;
3658 uint32_t SmoothPointEnable
;
3659 uint32_t DXMultisampleRasterizationEnable
;
3660 #define MSRASTMODE_OFF_PIXEL 0
3661 #define MSRASTMODE_OFF_PATTERN 1
3662 #define MSRASTMODE_ON_PIXEL 2
3663 #define MSRASTMODE_ON_PATTERN 3
3664 uint32_t DXMultisampleRasterizationMode
;
3665 uint32_t GlobalDepthOffsetEnableSolid
;
3666 uint32_t GlobalDepthOffsetEnableWireframe
;
3667 uint32_t GlobalDepthOffsetEnablePoint
;
3668 #define RASTER_SOLID 0
3669 #define RASTER_WIREFRAME 1
3670 #define RASTER_POINT 2
3671 uint32_t FrontFaceFillMode
;
3672 #define RASTER_SOLID 0
3673 #define RASTER_WIREFRAME 1
3674 #define RASTER_POINT 2
3675 uint32_t BackFaceFillMode
;
3676 uint32_t AntialiasingEnable
;
3677 uint32_t ScissorRectangleEnable
;
3678 uint32_t ViewportZClipTestEnable
;
3679 float GlobalDepthOffsetConstant
;
3680 float GlobalDepthOffsetScale
;
3681 float GlobalDepthOffsetClamp
;
3685 GEN8_3DSTATE_RASTER_pack(__gen_user_data
*data
, void * restrict dst
,
3686 const struct GEN8_3DSTATE_RASTER
* restrict values
)
3688 uint32_t *dw
= (uint32_t * restrict
) dst
;
3691 __gen_field(values
->CommandType
, 29, 31) |
3692 __gen_field(values
->CommandSubType
, 27, 28) |
3693 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3694 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3695 __gen_field(values
->DwordLength
, 0, 7) |
3699 __gen_field(values
->APIMode
, 22, 23) |
3700 __gen_field(values
->FrontWinding
, 21, 21) |
3701 __gen_field(values
->ForcedSampleCount
, 18, 20) |
3702 __gen_field(values
->CullMode
, 16, 17) |
3703 __gen_field(values
->ForceMultisampling
, 14, 14) |
3704 __gen_field(values
->SmoothPointEnable
, 13, 13) |
3705 __gen_field(values
->DXMultisampleRasterizationEnable
, 12, 12) |
3706 __gen_field(values
->DXMultisampleRasterizationMode
, 10, 11) |
3707 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3708 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3709 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3710 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3711 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3712 __gen_field(values
->AntialiasingEnable
, 2, 2) |
3713 __gen_field(values
->ScissorRectangleEnable
, 1, 1) |
3714 __gen_field(values
->ViewportZClipTestEnable
, 0, 0) |
3718 __gen_float(values
->GlobalDepthOffsetConstant
) |
3722 __gen_float(values
->GlobalDepthOffsetScale
) |
3726 __gen_float(values
->GlobalDepthOffsetClamp
) |
3731 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
3732 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
3734 .CommandSubType = 3, \
3735 ._3DCommandOpcode = 1, \
3736 ._3DCommandSubOpcode = 2
3738 struct GEN8_PALETTE_ENTRY
{
3746 GEN8_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3747 const struct GEN8_PALETTE_ENTRY
* restrict values
)
3749 uint32_t *dw
= (uint32_t * restrict
) dst
;
3752 __gen_field(values
->Alpha
, 24, 31) |
3753 __gen_field(values
->Red
, 16, 23) |
3754 __gen_field(values
->Green
, 8, 15) |
3755 __gen_field(values
->Blue
, 0, 7) |
3760 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0
{
3761 uint32_t CommandType
;
3762 uint32_t CommandSubType
;
3763 uint32_t _3DCommandOpcode
;
3764 uint32_t _3DCommandSubOpcode
;
3765 uint32_t DwordLength
;
3766 /* variable length fields follow */
3770 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
3771 const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
3773 uint32_t *dw
= (uint32_t * restrict
) dst
;
3776 __gen_field(values
->CommandType
, 29, 31) |
3777 __gen_field(values
->CommandSubType
, 27, 28) |
3778 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3779 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3780 __gen_field(values
->DwordLength
, 0, 7) |
3783 /* variable length fields follow */
3786 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
3787 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
3789 .CommandSubType = 3, \
3790 ._3DCommandOpcode = 1, \
3791 ._3DCommandSubOpcode = 12
3793 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1
{
3794 uint32_t CommandType
;
3795 uint32_t CommandSubType
;
3796 uint32_t _3DCommandOpcode
;
3797 uint32_t _3DCommandSubOpcode
;
3798 uint32_t DwordLength
;
3799 /* variable length fields follow */
3803 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
3804 const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
3806 uint32_t *dw
= (uint32_t * restrict
) dst
;
3809 __gen_field(values
->CommandType
, 29, 31) |
3810 __gen_field(values
->CommandSubType
, 27, 28) |
3811 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3812 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3813 __gen_field(values
->DwordLength
, 0, 7) |
3816 /* variable length fields follow */
3819 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
3820 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
3821 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
3823 .CommandSubType = 3, \
3824 ._3DCommandOpcode = 0, \
3825 ._3DCommandSubOpcode = 45, \
3828 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
3829 uint32_t CommandType
;
3830 uint32_t CommandSubType
;
3831 uint32_t _3DCommandOpcode
;
3832 uint32_t _3DCommandSubOpcode
;
3833 uint32_t DwordLength
;
3834 uint32_t PointertoDSSamplerState
;
3838 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3839 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
3841 uint32_t *dw
= (uint32_t * restrict
) dst
;
3844 __gen_field(values
->CommandType
, 29, 31) |
3845 __gen_field(values
->CommandSubType
, 27, 28) |
3846 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3847 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3848 __gen_field(values
->DwordLength
, 0, 7) |
3852 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
3857 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
3858 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
3859 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
3861 .CommandSubType = 3, \
3862 ._3DCommandOpcode = 0, \
3863 ._3DCommandSubOpcode = 46, \
3866 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
3867 uint32_t CommandType
;
3868 uint32_t CommandSubType
;
3869 uint32_t _3DCommandOpcode
;
3870 uint32_t _3DCommandSubOpcode
;
3871 uint32_t DwordLength
;
3872 uint32_t PointertoGSSamplerState
;
3876 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3877 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
3879 uint32_t *dw
= (uint32_t * restrict
) dst
;
3882 __gen_field(values
->CommandType
, 29, 31) |
3883 __gen_field(values
->CommandSubType
, 27, 28) |
3884 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3885 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3886 __gen_field(values
->DwordLength
, 0, 7) |
3890 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
3895 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
3896 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
3897 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
3899 .CommandSubType = 3, \
3900 ._3DCommandOpcode = 0, \
3901 ._3DCommandSubOpcode = 44, \
3904 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
3905 uint32_t CommandType
;
3906 uint32_t CommandSubType
;
3907 uint32_t _3DCommandOpcode
;
3908 uint32_t _3DCommandSubOpcode
;
3909 uint32_t DwordLength
;
3910 uint32_t PointertoHSSamplerState
;
3914 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3915 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
3917 uint32_t *dw
= (uint32_t * restrict
) dst
;
3920 __gen_field(values
->CommandType
, 29, 31) |
3921 __gen_field(values
->CommandSubType
, 27, 28) |
3922 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3923 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3924 __gen_field(values
->DwordLength
, 0, 7) |
3928 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
3933 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
3934 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
3935 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
3937 .CommandSubType = 3, \
3938 ._3DCommandOpcode = 0, \
3939 ._3DCommandSubOpcode = 47, \
3942 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
3943 uint32_t CommandType
;
3944 uint32_t CommandSubType
;
3945 uint32_t _3DCommandOpcode
;
3946 uint32_t _3DCommandSubOpcode
;
3947 uint32_t DwordLength
;
3948 uint32_t PointertoPSSamplerState
;
3952 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3953 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
3955 uint32_t *dw
= (uint32_t * restrict
) dst
;
3958 __gen_field(values
->CommandType
, 29, 31) |
3959 __gen_field(values
->CommandSubType
, 27, 28) |
3960 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3961 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3962 __gen_field(values
->DwordLength
, 0, 7) |
3966 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
3971 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
3972 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
3973 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
3975 .CommandSubType = 3, \
3976 ._3DCommandOpcode = 0, \
3977 ._3DCommandSubOpcode = 43, \
3980 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
3981 uint32_t CommandType
;
3982 uint32_t CommandSubType
;
3983 uint32_t _3DCommandOpcode
;
3984 uint32_t _3DCommandSubOpcode
;
3985 uint32_t DwordLength
;
3986 uint32_t PointertoVSSamplerState
;
3990 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3991 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
3993 uint32_t *dw
= (uint32_t * restrict
) dst
;
3996 __gen_field(values
->CommandType
, 29, 31) |
3997 __gen_field(values
->CommandSubType
, 27, 28) |
3998 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3999 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4000 __gen_field(values
->DwordLength
, 0, 7) |
4004 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
4009 #define GEN8_3DSTATE_SAMPLE_MASK_length 0x00000002
4010 #define GEN8_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
4011 #define GEN8_3DSTATE_SAMPLE_MASK_header \
4013 .CommandSubType = 3, \
4014 ._3DCommandOpcode = 0, \
4015 ._3DCommandSubOpcode = 24, \
4018 struct GEN8_3DSTATE_SAMPLE_MASK
{
4019 uint32_t CommandType
;
4020 uint32_t CommandSubType
;
4021 uint32_t _3DCommandOpcode
;
4022 uint32_t _3DCommandSubOpcode
;
4023 uint32_t DwordLength
;
4024 uint32_t SampleMask
;
4028 GEN8_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
4029 const struct GEN8_3DSTATE_SAMPLE_MASK
* restrict values
)
4031 uint32_t *dw
= (uint32_t * restrict
) dst
;
4034 __gen_field(values
->CommandType
, 29, 31) |
4035 __gen_field(values
->CommandSubType
, 27, 28) |
4036 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4037 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4038 __gen_field(values
->DwordLength
, 0, 7) |
4042 __gen_field(values
->SampleMask
, 0, 15) |
4047 #define GEN8_3DSTATE_SAMPLE_PATTERN_length 0x00000009
4048 #define GEN8_3DSTATE_SAMPLE_PATTERN_length_bias 0x00000002
4049 #define GEN8_3DSTATE_SAMPLE_PATTERN_header \
4051 .CommandSubType = 3, \
4052 ._3DCommandOpcode = 1, \
4053 ._3DCommandSubOpcode = 28, \
4056 struct GEN8_3DSTATE_SAMPLE_PATTERN
{
4057 uint32_t CommandType
;
4058 uint32_t CommandSubType
;
4059 uint32_t _3DCommandOpcode
;
4060 uint32_t _3DCommandSubOpcode
;
4061 uint32_t DwordLength
;
4062 uint32_t _8xSample7XOffset
;
4063 uint32_t _8xSample7YOffset
;
4064 uint32_t _8xSample6XOffset
;
4065 uint32_t _8xSample6YOffset
;
4066 uint32_t _8xSample5XOffset
;
4067 uint32_t _8xSample5YOffset
;
4068 uint32_t _8xSample4XOffset
;
4069 uint32_t _8xSample4YOffset
;
4070 uint32_t _8xSample3XOffset
;
4071 uint32_t _8xSample3YOffset
;
4072 uint32_t _8xSample2XOffset
;
4073 uint32_t _8xSample2YOffset
;
4074 uint32_t _8xSample1XOffset
;
4075 uint32_t _8xSample1YOffset
;
4076 uint32_t _8xSample0XOffset
;
4077 uint32_t _8xSample0YOffset
;
4078 uint32_t _4xSample3XOffset
;
4079 uint32_t _4xSample3YOffset
;
4080 uint32_t _4xSample2XOffset
;
4081 uint32_t _4xSample2YOffset
;
4082 uint32_t _4xSample1XOffset
;
4083 uint32_t _4xSample1YOffset
;
4084 uint32_t _4xSample0XOffset
;
4085 uint32_t _4xSample0YOffset
;
4086 uint32_t _1xSample0XOffset
;
4087 uint32_t _1xSample0YOffset
;
4088 uint32_t _2xSample1XOffset
;
4089 uint32_t _2xSample1YOffset
;
4090 uint32_t _2xSample0XOffset
;
4091 uint32_t _2xSample0YOffset
;
4095 GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
4096 const struct GEN8_3DSTATE_SAMPLE_PATTERN
* restrict values
)
4098 uint32_t *dw
= (uint32_t * restrict
) dst
;
4101 __gen_field(values
->CommandType
, 29, 31) |
4102 __gen_field(values
->CommandSubType
, 27, 28) |
4103 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4104 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4105 __gen_field(values
->DwordLength
, 0, 7) |
4112 __gen_field(values
->_8xSample7XOffset
, 28, 31) |
4113 __gen_field(values
->_8xSample7YOffset
, 24, 27) |
4114 __gen_field(values
->_8xSample6XOffset
, 20, 23) |
4115 __gen_field(values
->_8xSample6YOffset
, 16, 19) |
4116 __gen_field(values
->_8xSample5XOffset
, 12, 15) |
4117 __gen_field(values
->_8xSample5YOffset
, 8, 11) |
4118 __gen_field(values
->_8xSample4XOffset
, 4, 7) |
4119 __gen_field(values
->_8xSample4YOffset
, 0, 3) |
4123 __gen_field(values
->_8xSample3XOffset
, 28, 31) |
4124 __gen_field(values
->_8xSample3YOffset
, 24, 27) |
4125 __gen_field(values
->_8xSample2XOffset
, 20, 23) |
4126 __gen_field(values
->_8xSample2YOffset
, 16, 19) |
4127 __gen_field(values
->_8xSample1XOffset
, 12, 15) |
4128 __gen_field(values
->_8xSample1YOffset
, 8, 11) |
4129 __gen_field(values
->_8xSample0XOffset
, 4, 7) |
4130 __gen_field(values
->_8xSample0YOffset
, 0, 3) |
4134 __gen_field(values
->_4xSample3XOffset
, 28, 31) |
4135 __gen_field(values
->_4xSample3YOffset
, 24, 27) |
4136 __gen_field(values
->_4xSample2XOffset
, 20, 23) |
4137 __gen_field(values
->_4xSample2YOffset
, 16, 19) |
4138 __gen_field(values
->_4xSample1XOffset
, 12, 15) |
4139 __gen_field(values
->_4xSample1YOffset
, 8, 11) |
4140 __gen_field(values
->_4xSample0XOffset
, 4, 7) |
4141 __gen_field(values
->_4xSample0YOffset
, 0, 3) |
4145 __gen_field(values
->_1xSample0XOffset
, 20, 23) |
4146 __gen_field(values
->_1xSample0YOffset
, 16, 19) |
4147 __gen_field(values
->_2xSample1XOffset
, 12, 15) |
4148 __gen_field(values
->_2xSample1YOffset
, 8, 11) |
4149 __gen_field(values
->_2xSample0XOffset
, 4, 7) |
4150 __gen_field(values
->_2xSample0YOffset
, 0, 3) |
4155 #define GEN8_3DSTATE_SBE_length 0x00000004
4156 #define GEN8_3DSTATE_SBE_length_bias 0x00000002
4157 #define GEN8_3DSTATE_SBE_header \
4159 .CommandSubType = 3, \
4160 ._3DCommandOpcode = 0, \
4161 ._3DCommandSubOpcode = 31, \
4164 struct GEN8_3DSTATE_SBE
{
4165 uint32_t CommandType
;
4166 uint32_t CommandSubType
;
4167 uint32_t _3DCommandOpcode
;
4168 uint32_t _3DCommandSubOpcode
;
4169 uint32_t DwordLength
;
4170 uint32_t ForceVertexURBEntryReadLength
;
4171 uint32_t ForceVertexURBEntryReadOffset
;
4172 uint32_t NumberofSFOutputAttributes
;
4173 uint32_t AttributeSwizzleEnable
;
4176 uint32_t PointSpriteTextureCoordinateOrigin
;
4177 uint32_t PrimitiveIDOverrideComponentW
;
4178 uint32_t PrimitiveIDOverrideComponentZ
;
4179 uint32_t PrimitiveIDOverrideComponentY
;
4180 uint32_t PrimitiveIDOverrideComponentX
;
4181 uint32_t VertexURBEntryReadLength
;
4182 uint32_t VertexURBEntryReadOffset
;
4183 uint32_t PrimitiveIDOverrideAttributeSelect
;
4184 uint32_t PointSpriteTextureCoordinateEnable
;
4185 uint32_t ConstantInterpolationEnable
;
4189 GEN8_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
4190 const struct GEN8_3DSTATE_SBE
* restrict values
)
4192 uint32_t *dw
= (uint32_t * restrict
) dst
;
4195 __gen_field(values
->CommandType
, 29, 31) |
4196 __gen_field(values
->CommandSubType
, 27, 28) |
4197 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4198 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4199 __gen_field(values
->DwordLength
, 0, 7) |
4203 __gen_field(values
->ForceVertexURBEntryReadLength
, 29, 29) |
4204 __gen_field(values
->ForceVertexURBEntryReadOffset
, 28, 28) |
4205 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
4206 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
4207 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
4208 __gen_field(values
->PrimitiveIDOverrideComponentW
, 19, 19) |
4209 __gen_field(values
->PrimitiveIDOverrideComponentZ
, 18, 18) |
4210 __gen_field(values
->PrimitiveIDOverrideComponentY
, 17, 17) |
4211 __gen_field(values
->PrimitiveIDOverrideComponentX
, 16, 16) |
4212 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
4213 __gen_field(values
->VertexURBEntryReadOffset
, 5, 10) |
4214 __gen_field(values
->PrimitiveIDOverrideAttributeSelect
, 0, 4) |
4218 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
4222 __gen_field(values
->ConstantInterpolationEnable
, 0, 31) |
4227 #define GEN8_3DSTATE_SBE_SWIZ_length 0x0000000b
4228 #define GEN8_3DSTATE_SBE_SWIZ_length_bias 0x00000002
4229 #define GEN8_3DSTATE_SBE_SWIZ_header \
4231 .CommandSubType = 3, \
4232 ._3DCommandOpcode = 0, \
4233 ._3DCommandSubOpcode = 81, \
4236 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL
{
4237 uint32_t ComponentOverrideW
;
4238 uint32_t ComponentOverrideZ
;
4239 uint32_t ComponentOverrideY
;
4240 uint32_t ComponentOverrideX
;
4241 uint32_t SwizzleControlMode
;
4242 #define CONST_0000 0
4243 #define CONST_0001_FLOAT 1
4244 #define CONST_1111_FLOAT 2
4246 uint32_t ConstantSource
;
4248 #define INPUTATTR_FACING 1
4249 #define INPUTATTR_W 2
4250 #define INPUTATTR_FACING_W 3
4251 uint32_t SwizzleSelect
;
4252 uint32_t SourceAttribute
;
4256 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(__gen_user_data
*data
, void * restrict dst
,
4257 const struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL
* restrict values
)
4259 uint32_t *dw
= (uint32_t * restrict
) dst
;
4262 __gen_field(values
->ComponentOverrideW
, 15, 15) |
4263 __gen_field(values
->ComponentOverrideZ
, 14, 14) |
4264 __gen_field(values
->ComponentOverrideY
, 13, 13) |
4265 __gen_field(values
->ComponentOverrideX
, 12, 12) |
4266 __gen_field(values
->SwizzleControlMode
, 11, 11) |
4267 __gen_field(values
->ConstantSource
, 9, 10) |
4268 __gen_field(values
->SwizzleSelect
, 6, 7) |
4269 __gen_field(values
->SourceAttribute
, 0, 4) |
4274 struct GEN8_3DSTATE_SBE_SWIZ
{
4275 uint32_t CommandType
;
4276 uint32_t CommandSubType
;
4277 uint32_t _3DCommandOpcode
;
4278 uint32_t _3DCommandSubOpcode
;
4279 uint32_t DwordLength
;
4280 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL Attribute
;
4281 uint32_t Attribute15WrapShortestEnables
;
4282 uint32_t Attribute14WrapShortestEnables
;
4283 uint32_t Attribute13WrapShortestEnables
;
4284 uint32_t Attribute12WrapShortestEnables
;
4285 uint32_t Attribute11WrapShortestEnables
;
4286 uint32_t Attribute10WrapShortestEnables
;
4287 uint32_t Attribute09WrapShortestEnables
;
4288 uint32_t Attribute08WrapShortestEnables
;
4289 uint32_t Attribute07WrapShortestEnables
;
4290 uint32_t Attribute06WrapShortestEnables
;
4291 uint32_t Attribute05WrapShortestEnables
;
4292 uint32_t Attribute04WrapShortestEnables
;
4293 uint32_t Attribute03WrapShortestEnables
;
4294 uint32_t Attribute02WrapShortestEnables
;
4295 uint32_t Attribute01WrapShortestEnables
;
4296 uint32_t Attribute00WrapShortestEnables
;
4300 GEN8_3DSTATE_SBE_SWIZ_pack(__gen_user_data
*data
, void * restrict dst
,
4301 const struct GEN8_3DSTATE_SBE_SWIZ
* restrict values
)
4303 uint32_t *dw
= (uint32_t * restrict
) dst
;
4306 __gen_field(values
->CommandType
, 29, 31) |
4307 __gen_field(values
->CommandSubType
, 27, 28) |
4308 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4309 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4310 __gen_field(values
->DwordLength
, 0, 7) |
4313 uint32_t dw_Attribute
;
4314 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data
, &dw_Attribute
, &values
->Attribute
);
4316 /* Struct Attribute (0..15): */
4317 __gen_field(dw_Attribute
, 0, 15) |
4320 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data
, &dw
[1], &values
->Attribute
);
4322 __gen_field(values
->Attribute15WrapShortestEnables
, 60, 63) |
4323 __gen_field(values
->Attribute14WrapShortestEnables
, 56, 59) |
4324 __gen_field(values
->Attribute13WrapShortestEnables
, 52, 55) |
4325 __gen_field(values
->Attribute12WrapShortestEnables
, 48, 51) |
4326 __gen_field(values
->Attribute11WrapShortestEnables
, 44, 47) |
4327 __gen_field(values
->Attribute10WrapShortestEnables
, 40, 43) |
4328 __gen_field(values
->Attribute09WrapShortestEnables
, 36, 39) |
4329 __gen_field(values
->Attribute08WrapShortestEnables
, 32, 35) |
4330 __gen_field(values
->Attribute07WrapShortestEnables
, 28, 31) |
4331 __gen_field(values
->Attribute06WrapShortestEnables
, 24, 27) |
4332 __gen_field(values
->Attribute05WrapShortestEnables
, 20, 23) |
4333 __gen_field(values
->Attribute04WrapShortestEnables
, 16, 19) |
4334 __gen_field(values
->Attribute03WrapShortestEnables
, 12, 15) |
4335 __gen_field(values
->Attribute02WrapShortestEnables
, 8, 11) |
4336 __gen_field(values
->Attribute01WrapShortestEnables
, 4, 7) |
4337 __gen_field(values
->Attribute00WrapShortestEnables
, 0, 3) |
4342 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
4343 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
4344 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_header\
4346 .CommandSubType = 3, \
4347 ._3DCommandOpcode = 0, \
4348 ._3DCommandSubOpcode = 15, \
4351 struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS
{
4352 uint32_t CommandType
;
4353 uint32_t CommandSubType
;
4354 uint32_t _3DCommandOpcode
;
4355 uint32_t _3DCommandSubOpcode
;
4356 uint32_t DwordLength
;
4357 uint32_t ScissorRectPointer
;
4361 GEN8_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
4362 const struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
4364 uint32_t *dw
= (uint32_t * restrict
) dst
;
4367 __gen_field(values
->CommandType
, 29, 31) |
4368 __gen_field(values
->CommandSubType
, 27, 28) |
4369 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4370 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4371 __gen_field(values
->DwordLength
, 0, 7) |
4375 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
4380 #define GEN8_3DSTATE_SF_length 0x00000004
4381 #define GEN8_3DSTATE_SF_length_bias 0x00000002
4382 #define GEN8_3DSTATE_SF_header \
4384 .CommandSubType = 3, \
4385 ._3DCommandOpcode = 0, \
4386 ._3DCommandSubOpcode = 19, \
4389 struct GEN8_3DSTATE_SF
{
4390 uint32_t CommandType
;
4391 uint32_t CommandSubType
;
4392 uint32_t _3DCommandOpcode
;
4393 uint32_t _3DCommandSubOpcode
;
4394 uint32_t DwordLength
;
4395 uint32_t LegacyGlobalDepthBiasEnable
;
4396 uint32_t StatisticsEnable
;
4397 uint32_t ViewportTransformEnable
;
4403 uint32_t LineEndCapAntialiasingRegionWidth
;
4404 uint32_t LastPixelEnable
;
4405 uint32_t TriangleStripListProvokingVertexSelect
;
4406 uint32_t LineStripListProvokingVertexSelect
;
4407 uint32_t TriangleFanProvokingVertexSelect
;
4408 #define AALINEDISTANCE_TRUE 1
4409 uint32_t AALineDistanceMode
;
4410 uint32_t SmoothPointEnable
;
4411 uint32_t VertexSubPixelPrecisionSelect
;
4414 uint32_t PointWidthSource
;
4415 uint32_t PointWidth
;
4419 GEN8_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
4420 const struct GEN8_3DSTATE_SF
* restrict values
)
4422 uint32_t *dw
= (uint32_t * restrict
) dst
;
4425 __gen_field(values
->CommandType
, 29, 31) |
4426 __gen_field(values
->CommandSubType
, 27, 28) |
4427 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4428 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4429 __gen_field(values
->DwordLength
, 0, 7) |
4433 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
4434 __gen_field(values
->StatisticsEnable
, 10, 10) |
4435 __gen_field(values
->ViewportTransformEnable
, 1, 1) |
4439 __gen_field(values
->LineWidth
, 18, 27) |
4440 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
4444 __gen_field(values
->LastPixelEnable
, 31, 31) |
4445 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
4446 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
4447 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
4448 __gen_field(values
->AALineDistanceMode
, 14, 14) |
4449 __gen_field(values
->SmoothPointEnable
, 13, 13) |
4450 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
4451 __gen_field(values
->PointWidthSource
, 11, 11) |
4452 __gen_field(values
->PointWidth
, 0, 10) |
4457 #define GEN8_3DSTATE_SO_BUFFER_length 0x00000008
4458 #define GEN8_3DSTATE_SO_BUFFER_length_bias 0x00000002
4459 #define GEN8_3DSTATE_SO_BUFFER_header \
4461 .CommandSubType = 3, \
4462 ._3DCommandOpcode = 1, \
4463 ._3DCommandSubOpcode = 24, \
4466 struct GEN8_3DSTATE_SO_BUFFER
{
4467 uint32_t CommandType
;
4468 uint32_t CommandSubType
;
4469 uint32_t _3DCommandOpcode
;
4470 uint32_t _3DCommandSubOpcode
;
4471 uint32_t DwordLength
;
4472 uint32_t SOBufferEnable
;
4473 uint32_t SOBufferIndex
;
4474 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
4475 uint32_t StreamOffsetWriteEnable
;
4476 uint32_t StreamOutputBufferOffsetAddressEnable
;
4477 __gen_address_type SurfaceBaseAddress
;
4478 uint32_t SurfaceSize
;
4479 __gen_address_type StreamOutputBufferOffsetAddress
;
4480 uint32_t StreamOffset
;
4484 GEN8_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4485 const struct GEN8_3DSTATE_SO_BUFFER
* restrict values
)
4487 uint32_t *dw
= (uint32_t * restrict
) dst
;
4490 __gen_field(values
->CommandType
, 29, 31) |
4491 __gen_field(values
->CommandSubType
, 27, 28) |
4492 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4493 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4494 __gen_field(values
->DwordLength
, 0, 7) |
4497 uint32_t dw_SOBufferObjectControlState
;
4498 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
4500 __gen_field(values
->SOBufferEnable
, 31, 31) |
4501 __gen_field(values
->SOBufferIndex
, 29, 30) |
4502 /* Struct SOBufferObjectControlState (22..28): */
4503 __gen_field(dw_SOBufferObjectControlState
, 22, 28) |
4504 __gen_field(values
->StreamOffsetWriteEnable
, 21, 21) |
4505 __gen_field(values
->StreamOutputBufferOffsetAddressEnable
, 20, 20) |
4512 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4515 __gen_field(values
->SurfaceSize
, 0, 29) |
4522 __gen_combine_address(data
, &dw
[5], values
->StreamOutputBufferOffsetAddress
, dw5
);
4525 __gen_field(values
->StreamOffset
, 0, 31) |
4530 #define GEN8_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
4531 #define GEN8_3DSTATE_SO_DECL_LIST_header \
4533 .CommandSubType = 3, \
4534 ._3DCommandOpcode = 1, \
4535 ._3DCommandSubOpcode = 23
4537 struct GEN8_SO_DECL
{
4538 uint32_t OutputBufferSlot
;
4540 uint32_t RegisterIndex
;
4541 uint32_t ComponentMask
;
4545 GEN8_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
4546 const struct GEN8_SO_DECL
* restrict values
)
4548 uint32_t *dw
= (uint32_t * restrict
) dst
;
4551 __gen_field(values
->OutputBufferSlot
, 12, 13) |
4552 __gen_field(values
->HoleFlag
, 11, 11) |
4553 __gen_field(values
->RegisterIndex
, 4, 9) |
4554 __gen_field(values
->ComponentMask
, 0, 3) |
4559 struct GEN8_SO_DECL_ENTRY
{
4560 struct GEN8_SO_DECL Stream3Decl
;
4561 struct GEN8_SO_DECL Stream2Decl
;
4562 struct GEN8_SO_DECL Stream1Decl
;
4563 struct GEN8_SO_DECL Stream0Decl
;
4567 GEN8_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
4568 const struct GEN8_SO_DECL_ENTRY
* restrict values
)
4570 uint32_t *dw
= (uint32_t * restrict
) dst
;
4572 uint32_t dw_Stream3Decl
;
4573 GEN8_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
4574 uint32_t dw_Stream2Decl
;
4575 GEN8_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
4576 uint32_t dw_Stream1Decl
;
4577 GEN8_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
4578 uint32_t dw_Stream0Decl
;
4579 GEN8_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
4581 /* Struct Stream3Decl (48..63): */
4582 __gen_field(dw_Stream3Decl
, 48, 63) |
4583 /* Struct Stream2Decl (32..47): */
4584 __gen_field(dw_Stream2Decl
, 32, 47) |
4585 /* Struct Stream1Decl (16..31): */
4586 __gen_field(dw_Stream1Decl
, 16, 31) |
4587 /* Struct Stream0Decl (0..15): */
4588 __gen_field(dw_Stream0Decl
, 0, 15) |
4591 GEN8_SO_DECL_pack(data
, &dw
[0], &values
->Stream0Decl
);
4594 struct GEN8_3DSTATE_SO_DECL_LIST
{
4595 uint32_t CommandType
;
4596 uint32_t CommandSubType
;
4597 uint32_t _3DCommandOpcode
;
4598 uint32_t _3DCommandSubOpcode
;
4599 uint32_t DwordLength
;
4600 uint32_t StreamtoBufferSelects3
;
4601 uint32_t StreamtoBufferSelects2
;
4602 uint32_t StreamtoBufferSelects1
;
4603 uint32_t StreamtoBufferSelects0
;
4604 uint32_t NumEntries3
;
4605 uint32_t NumEntries2
;
4606 uint32_t NumEntries1
;
4607 uint32_t NumEntries0
;
4608 /* variable length fields follow */
4612 GEN8_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
4613 const struct GEN8_3DSTATE_SO_DECL_LIST
* restrict values
)
4615 uint32_t *dw
= (uint32_t * restrict
) dst
;
4618 __gen_field(values
->CommandType
, 29, 31) |
4619 __gen_field(values
->CommandSubType
, 27, 28) |
4620 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4621 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4622 __gen_field(values
->DwordLength
, 0, 8) |
4626 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
4627 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
4628 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
4629 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
4633 __gen_field(values
->NumEntries3
, 24, 31) |
4634 __gen_field(values
->NumEntries2
, 16, 23) |
4635 __gen_field(values
->NumEntries1
, 8, 15) |
4636 __gen_field(values
->NumEntries0
, 0, 7) |
4639 /* variable length fields follow */
4642 #define GEN8_3DSTATE_STENCIL_BUFFER_length 0x00000005
4643 #define GEN8_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
4644 #define GEN8_3DSTATE_STENCIL_BUFFER_header \
4646 .CommandSubType = 3, \
4647 ._3DCommandOpcode = 0, \
4648 ._3DCommandSubOpcode = 6, \
4651 struct GEN8_3DSTATE_STENCIL_BUFFER
{
4652 uint32_t CommandType
;
4653 uint32_t CommandSubType
;
4654 uint32_t _3DCommandOpcode
;
4655 uint32_t _3DCommandSubOpcode
;
4656 uint32_t DwordLength
;
4657 uint32_t StencilBufferEnable
;
4658 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
4659 uint32_t SurfacePitch
;
4660 __gen_address_type SurfaceBaseAddress
;
4661 uint32_t SurfaceQPitch
;
4665 GEN8_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4666 const struct GEN8_3DSTATE_STENCIL_BUFFER
* restrict values
)
4668 uint32_t *dw
= (uint32_t * restrict
) dst
;
4671 __gen_field(values
->CommandType
, 29, 31) |
4672 __gen_field(values
->CommandSubType
, 27, 28) |
4673 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4674 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4675 __gen_field(values
->DwordLength
, 0, 7) |
4678 uint32_t dw_StencilBufferObjectControlState
;
4679 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
4681 __gen_field(values
->StencilBufferEnable
, 31, 31) |
4682 /* Struct StencilBufferObjectControlState (22..28): */
4683 __gen_field(dw_StencilBufferObjectControlState
, 22, 28) |
4684 __gen_field(values
->SurfacePitch
, 0, 16) |
4691 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4694 __gen_field(values
->SurfaceQPitch
, 0, 14) |
4699 #define GEN8_3DSTATE_STREAMOUT_length 0x00000005
4700 #define GEN8_3DSTATE_STREAMOUT_length_bias 0x00000002
4701 #define GEN8_3DSTATE_STREAMOUT_header \
4703 .CommandSubType = 3, \
4704 ._3DCommandOpcode = 0, \
4705 ._3DCommandSubOpcode = 30, \
4708 struct GEN8_3DSTATE_STREAMOUT
{
4709 uint32_t CommandType
;
4710 uint32_t CommandSubType
;
4711 uint32_t _3DCommandOpcode
;
4712 uint32_t _3DCommandSubOpcode
;
4713 uint32_t DwordLength
;
4714 uint32_t SOFunctionEnable
;
4715 uint32_t APIRenderingDisable
;
4716 uint32_t RenderStreamSelect
;
4719 uint32_t ReorderMode
;
4720 uint32_t SOStatisticsEnable
;
4725 uint32_t ForceRendering
;
4726 uint32_t Stream3VertexReadOffset
;
4727 uint32_t Stream3VertexReadLength
;
4728 uint32_t Stream2VertexReadOffset
;
4729 uint32_t Stream2VertexReadLength
;
4730 uint32_t Stream1VertexReadOffset
;
4731 uint32_t Stream1VertexReadLength
;
4732 uint32_t Stream0VertexReadOffset
;
4733 uint32_t Stream0VertexReadLength
;
4734 uint32_t Buffer1SurfacePitch
;
4735 uint32_t Buffer0SurfacePitch
;
4736 uint32_t Buffer3SurfacePitch
;
4737 uint32_t Buffer2SurfacePitch
;
4741 GEN8_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
4742 const struct GEN8_3DSTATE_STREAMOUT
* restrict values
)
4744 uint32_t *dw
= (uint32_t * restrict
) dst
;
4747 __gen_field(values
->CommandType
, 29, 31) |
4748 __gen_field(values
->CommandSubType
, 27, 28) |
4749 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4750 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4751 __gen_field(values
->DwordLength
, 0, 7) |
4755 __gen_field(values
->SOFunctionEnable
, 31, 31) |
4756 __gen_field(values
->APIRenderingDisable
, 30, 30) |
4757 __gen_field(values
->RenderStreamSelect
, 27, 28) |
4758 __gen_field(values
->ReorderMode
, 26, 26) |
4759 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
4760 __gen_field(values
->ForceRendering
, 23, 24) |
4764 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
4765 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
4766 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
4767 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
4768 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
4769 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
4770 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
4771 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
4775 __gen_field(values
->Buffer1SurfacePitch
, 16, 27) |
4776 __gen_field(values
->Buffer0SurfacePitch
, 0, 11) |
4780 __gen_field(values
->Buffer3SurfacePitch
, 16, 27) |
4781 __gen_field(values
->Buffer2SurfacePitch
, 0, 11) |
4786 #define GEN8_3DSTATE_TE_length 0x00000004
4787 #define GEN8_3DSTATE_TE_length_bias 0x00000002
4788 #define GEN8_3DSTATE_TE_header \
4790 .CommandSubType = 3, \
4791 ._3DCommandOpcode = 0, \
4792 ._3DCommandSubOpcode = 28, \
4795 struct GEN8_3DSTATE_TE
{
4796 uint32_t CommandType
;
4797 uint32_t CommandSubType
;
4798 uint32_t _3DCommandOpcode
;
4799 uint32_t _3DCommandSubOpcode
;
4800 uint32_t DwordLength
;
4802 #define ODD_FRACTIONAL 1
4803 #define EVEN_FRACTIONAL 2
4804 uint32_t Partitioning
;
4809 uint32_t OutputTopology
;
4818 float MaximumTessellationFactorOdd
;
4819 float MaximumTessellationFactorNotOdd
;
4823 GEN8_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
4824 const struct GEN8_3DSTATE_TE
* restrict values
)
4826 uint32_t *dw
= (uint32_t * restrict
) dst
;
4829 __gen_field(values
->CommandType
, 29, 31) |
4830 __gen_field(values
->CommandSubType
, 27, 28) |
4831 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4832 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4833 __gen_field(values
->DwordLength
, 0, 7) |
4837 __gen_field(values
->Partitioning
, 12, 13) |
4838 __gen_field(values
->OutputTopology
, 8, 9) |
4839 __gen_field(values
->TEDomain
, 4, 5) |
4840 __gen_field(values
->TEMode
, 1, 2) |
4841 __gen_field(values
->TEEnable
, 0, 0) |
4845 __gen_float(values
->MaximumTessellationFactorOdd
) |
4849 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
4854 #define GEN8_3DSTATE_URB_DS_length 0x00000002
4855 #define GEN8_3DSTATE_URB_DS_length_bias 0x00000002
4856 #define GEN8_3DSTATE_URB_DS_header \
4858 .CommandSubType = 3, \
4859 ._3DCommandOpcode = 0, \
4860 ._3DCommandSubOpcode = 50, \
4863 struct GEN8_3DSTATE_URB_DS
{
4864 uint32_t CommandType
;
4865 uint32_t CommandSubType
;
4866 uint32_t _3DCommandOpcode
;
4867 uint32_t _3DCommandSubOpcode
;
4868 uint32_t DwordLength
;
4869 uint32_t DSURBStartingAddress
;
4870 uint32_t DSURBEntryAllocationSize
;
4871 uint32_t DSNumberofURBEntries
;
4875 GEN8_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
4876 const struct GEN8_3DSTATE_URB_DS
* restrict values
)
4878 uint32_t *dw
= (uint32_t * restrict
) dst
;
4881 __gen_field(values
->CommandType
, 29, 31) |
4882 __gen_field(values
->CommandSubType
, 27, 28) |
4883 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4884 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4885 __gen_field(values
->DwordLength
, 0, 7) |
4889 __gen_field(values
->DSURBStartingAddress
, 25, 31) |
4890 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
4891 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
4896 #define GEN8_3DSTATE_URB_GS_length 0x00000002
4897 #define GEN8_3DSTATE_URB_GS_length_bias 0x00000002
4898 #define GEN8_3DSTATE_URB_GS_header \
4900 .CommandSubType = 3, \
4901 ._3DCommandOpcode = 0, \
4902 ._3DCommandSubOpcode = 51, \
4905 struct GEN8_3DSTATE_URB_GS
{
4906 uint32_t CommandType
;
4907 uint32_t CommandSubType
;
4908 uint32_t _3DCommandOpcode
;
4909 uint32_t _3DCommandSubOpcode
;
4910 uint32_t DwordLength
;
4911 uint32_t GSURBStartingAddress
;
4912 uint32_t GSURBEntryAllocationSize
;
4913 uint32_t GSNumberofURBEntries
;
4917 GEN8_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
4918 const struct GEN8_3DSTATE_URB_GS
* restrict values
)
4920 uint32_t *dw
= (uint32_t * restrict
) dst
;
4923 __gen_field(values
->CommandType
, 29, 31) |
4924 __gen_field(values
->CommandSubType
, 27, 28) |
4925 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4926 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4927 __gen_field(values
->DwordLength
, 0, 7) |
4931 __gen_field(values
->GSURBStartingAddress
, 25, 31) |
4932 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
4933 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
4938 #define GEN8_3DSTATE_URB_HS_length 0x00000002
4939 #define GEN8_3DSTATE_URB_HS_length_bias 0x00000002
4940 #define GEN8_3DSTATE_URB_HS_header \
4942 .CommandSubType = 3, \
4943 ._3DCommandOpcode = 0, \
4944 ._3DCommandSubOpcode = 49, \
4947 struct GEN8_3DSTATE_URB_HS
{
4948 uint32_t CommandType
;
4949 uint32_t CommandSubType
;
4950 uint32_t _3DCommandOpcode
;
4951 uint32_t _3DCommandSubOpcode
;
4952 uint32_t DwordLength
;
4953 uint32_t HSURBStartingAddress
;
4954 uint32_t HSURBEntryAllocationSize
;
4955 uint32_t HSNumberofURBEntries
;
4959 GEN8_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
4960 const struct GEN8_3DSTATE_URB_HS
* restrict values
)
4962 uint32_t *dw
= (uint32_t * restrict
) dst
;
4965 __gen_field(values
->CommandType
, 29, 31) |
4966 __gen_field(values
->CommandSubType
, 27, 28) |
4967 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4968 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4969 __gen_field(values
->DwordLength
, 0, 7) |
4973 __gen_field(values
->HSURBStartingAddress
, 25, 31) |
4974 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
4975 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
4980 #define GEN8_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
4981 #define GEN8_3DSTATE_VERTEX_BUFFERS_header \
4983 .CommandSubType = 3, \
4984 ._3DCommandOpcode = 0, \
4985 ._3DCommandSubOpcode = 8
4987 struct GEN8_VERTEX_BUFFER_STATE
{
4988 uint32_t VertexBufferIndex
;
4989 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
4990 uint32_t AddressModifyEnable
;
4991 uint32_t NullVertexBuffer
;
4992 uint32_t BufferPitch
;
4993 __gen_address_type BufferStartingAddress
;
4994 uint32_t BufferSize
;
4998 GEN8_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4999 const struct GEN8_VERTEX_BUFFER_STATE
* restrict values
)
5001 uint32_t *dw
= (uint32_t * restrict
) dst
;
5003 uint32_t dw_MemoryObjectControlState
;
5004 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
5006 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5007 /* Struct MemoryObjectControlState (16..22): */
5008 __gen_field(dw_MemoryObjectControlState
, 16, 22) |
5009 __gen_field(values
->AddressModifyEnable
, 14, 14) |
5010 __gen_field(values
->NullVertexBuffer
, 13, 13) |
5011 __gen_field(values
->BufferPitch
, 0, 11) |
5018 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
5021 __gen_field(values
->BufferSize
, 0, 31) |
5026 struct GEN8_3DSTATE_VERTEX_BUFFERS
{
5027 uint32_t CommandType
;
5028 uint32_t CommandSubType
;
5029 uint32_t _3DCommandOpcode
;
5030 uint32_t _3DCommandSubOpcode
;
5031 uint32_t DwordLength
;
5032 /* variable length fields follow */
5036 GEN8_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
5037 const struct GEN8_3DSTATE_VERTEX_BUFFERS
* restrict values
)
5039 uint32_t *dw
= (uint32_t * restrict
) dst
;
5042 __gen_field(values
->CommandType
, 29, 31) |
5043 __gen_field(values
->CommandSubType
, 27, 28) |
5044 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5045 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5046 __gen_field(values
->DwordLength
, 0, 7) |
5049 /* variable length fields follow */
5052 #define GEN8_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
5053 #define GEN8_3DSTATE_VERTEX_ELEMENTS_header \
5055 .CommandSubType = 3, \
5056 ._3DCommandOpcode = 0, \
5057 ._3DCommandSubOpcode = 9
5059 struct GEN8_VERTEX_ELEMENT_STATE
{
5060 uint32_t VertexBufferIndex
;
5062 uint32_t SourceElementFormat
;
5063 uint32_t EdgeFlagEnable
;
5064 uint32_t SourceElementOffset
;
5065 uint32_t Component0Control
;
5066 uint32_t Component1Control
;
5067 uint32_t Component2Control
;
5068 uint32_t Component3Control
;
5072 GEN8_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5073 const struct GEN8_VERTEX_ELEMENT_STATE
* restrict values
)
5075 uint32_t *dw
= (uint32_t * restrict
) dst
;
5078 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5079 __gen_field(values
->Valid
, 25, 25) |
5080 __gen_field(values
->SourceElementFormat
, 16, 24) |
5081 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
5082 __gen_field(values
->SourceElementOffset
, 0, 11) |
5086 __gen_field(values
->Component0Control
, 28, 30) |
5087 __gen_field(values
->Component1Control
, 24, 26) |
5088 __gen_field(values
->Component2Control
, 20, 22) |
5089 __gen_field(values
->Component3Control
, 16, 18) |
5094 struct GEN8_3DSTATE_VERTEX_ELEMENTS
{
5095 uint32_t CommandType
;
5096 uint32_t CommandSubType
;
5097 uint32_t _3DCommandOpcode
;
5098 uint32_t _3DCommandSubOpcode
;
5099 uint32_t DwordLength
;
5100 /* variable length fields follow */
5104 GEN8_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
5105 const struct GEN8_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
5107 uint32_t *dw
= (uint32_t * restrict
) dst
;
5110 __gen_field(values
->CommandType
, 29, 31) |
5111 __gen_field(values
->CommandSubType
, 27, 28) |
5112 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5113 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5114 __gen_field(values
->DwordLength
, 0, 7) |
5117 /* variable length fields follow */
5120 #define GEN8_3DSTATE_VF_length 0x00000002
5121 #define GEN8_3DSTATE_VF_length_bias 0x00000002
5122 #define GEN8_3DSTATE_VF_header \
5124 .CommandSubType = 3, \
5125 ._3DCommandOpcode = 0, \
5126 ._3DCommandSubOpcode = 12, \
5129 struct GEN8_3DSTATE_VF
{
5130 uint32_t CommandType
;
5131 uint32_t CommandSubType
;
5132 uint32_t _3DCommandOpcode
;
5133 uint32_t _3DCommandSubOpcode
;
5134 uint32_t IndexedDrawCutIndexEnable
;
5135 uint32_t DwordLength
;
5140 GEN8_3DSTATE_VF_pack(__gen_user_data
*data
, void * restrict dst
,
5141 const struct GEN8_3DSTATE_VF
* restrict values
)
5143 uint32_t *dw
= (uint32_t * restrict
) dst
;
5146 __gen_field(values
->CommandType
, 29, 31) |
5147 __gen_field(values
->CommandSubType
, 27, 28) |
5148 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5149 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5150 __gen_field(values
->IndexedDrawCutIndexEnable
, 8, 8) |
5151 __gen_field(values
->DwordLength
, 0, 7) |
5155 __gen_field(values
->CutIndex
, 0, 31) |
5160 #define GEN8_3DSTATE_VF_INSTANCING_length 0x00000003
5161 #define GEN8_3DSTATE_VF_INSTANCING_length_bias 0x00000002
5162 #define GEN8_3DSTATE_VF_INSTANCING_header \
5164 .CommandSubType = 3, \
5165 ._3DCommandOpcode = 0, \
5166 ._3DCommandSubOpcode = 73, \
5169 struct GEN8_3DSTATE_VF_INSTANCING
{
5170 uint32_t CommandType
;
5171 uint32_t CommandSubType
;
5172 uint32_t _3DCommandOpcode
;
5173 uint32_t _3DCommandSubOpcode
;
5174 uint32_t DwordLength
;
5175 uint32_t InstancingEnable
;
5176 uint32_t VertexElementIndex
;
5177 uint32_t InstanceDataStepRate
;
5181 GEN8_3DSTATE_VF_INSTANCING_pack(__gen_user_data
*data
, void * restrict dst
,
5182 const struct GEN8_3DSTATE_VF_INSTANCING
* restrict values
)
5184 uint32_t *dw
= (uint32_t * restrict
) dst
;
5187 __gen_field(values
->CommandType
, 29, 31) |
5188 __gen_field(values
->CommandSubType
, 27, 28) |
5189 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5190 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5191 __gen_field(values
->DwordLength
, 0, 7) |
5195 __gen_field(values
->InstancingEnable
, 8, 8) |
5196 __gen_field(values
->VertexElementIndex
, 0, 5) |
5200 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
5205 #define GEN8_3DSTATE_VF_SGVS_length 0x00000002
5206 #define GEN8_3DSTATE_VF_SGVS_length_bias 0x00000002
5207 #define GEN8_3DSTATE_VF_SGVS_header \
5209 .CommandSubType = 3, \
5210 ._3DCommandOpcode = 0, \
5211 ._3DCommandSubOpcode = 74, \
5214 struct GEN8_3DSTATE_VF_SGVS
{
5215 uint32_t CommandType
;
5216 uint32_t CommandSubType
;
5217 uint32_t _3DCommandOpcode
;
5218 uint32_t _3DCommandSubOpcode
;
5219 uint32_t DwordLength
;
5220 uint32_t InstanceIDEnable
;
5225 uint32_t InstanceIDComponentNumber
;
5226 uint32_t InstanceIDElementOffset
;
5227 uint32_t VertexIDEnable
;
5232 uint32_t VertexIDComponentNumber
;
5233 uint32_t VertexIDElementOffset
;
5237 GEN8_3DSTATE_VF_SGVS_pack(__gen_user_data
*data
, void * restrict dst
,
5238 const struct GEN8_3DSTATE_VF_SGVS
* restrict values
)
5240 uint32_t *dw
= (uint32_t * restrict
) dst
;
5243 __gen_field(values
->CommandType
, 29, 31) |
5244 __gen_field(values
->CommandSubType
, 27, 28) |
5245 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5246 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5247 __gen_field(values
->DwordLength
, 0, 7) |
5251 __gen_field(values
->InstanceIDEnable
, 31, 31) |
5252 __gen_field(values
->InstanceIDComponentNumber
, 29, 30) |
5253 __gen_field(values
->InstanceIDElementOffset
, 16, 21) |
5254 __gen_field(values
->VertexIDEnable
, 15, 15) |
5255 __gen_field(values
->VertexIDComponentNumber
, 13, 14) |
5256 __gen_field(values
->VertexIDElementOffset
, 0, 5) |
5261 #define GEN8_3DSTATE_VF_STATISTICS_length 0x00000001
5262 #define GEN8_3DSTATE_VF_STATISTICS_length_bias 0x00000001
5263 #define GEN8_3DSTATE_VF_STATISTICS_header \
5265 .CommandSubType = 1, \
5266 ._3DCommandOpcode = 0, \
5267 ._3DCommandSubOpcode = 11
5269 struct GEN8_3DSTATE_VF_STATISTICS
{
5270 uint32_t CommandType
;
5271 uint32_t CommandSubType
;
5272 uint32_t _3DCommandOpcode
;
5273 uint32_t _3DCommandSubOpcode
;
5274 uint32_t StatisticsEnable
;
5278 GEN8_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
5279 const struct GEN8_3DSTATE_VF_STATISTICS
* restrict values
)
5281 uint32_t *dw
= (uint32_t * restrict
) dst
;
5284 __gen_field(values
->CommandType
, 29, 31) |
5285 __gen_field(values
->CommandSubType
, 27, 28) |
5286 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5287 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5288 __gen_field(values
->StatisticsEnable
, 0, 0) |
5293 #define GEN8_3DSTATE_VF_TOPOLOGY_length 0x00000002
5294 #define GEN8_3DSTATE_VF_TOPOLOGY_length_bias 0x00000002
5295 #define GEN8_3DSTATE_VF_TOPOLOGY_header \
5297 .CommandSubType = 3, \
5298 ._3DCommandOpcode = 0, \
5299 ._3DCommandSubOpcode = 75, \
5302 struct GEN8_3DSTATE_VF_TOPOLOGY
{
5303 uint32_t CommandType
;
5304 uint32_t CommandSubType
;
5305 uint32_t _3DCommandOpcode
;
5306 uint32_t _3DCommandSubOpcode
;
5307 uint32_t DwordLength
;
5308 uint32_t PrimitiveTopologyType
;
5312 GEN8_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data
*data
, void * restrict dst
,
5313 const struct GEN8_3DSTATE_VF_TOPOLOGY
* restrict values
)
5315 uint32_t *dw
= (uint32_t * restrict
) dst
;
5318 __gen_field(values
->CommandType
, 29, 31) |
5319 __gen_field(values
->CommandSubType
, 27, 28) |
5320 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5321 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5322 __gen_field(values
->DwordLength
, 0, 7) |
5326 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
5331 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
5332 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
5333 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
5335 .CommandSubType = 3, \
5336 ._3DCommandOpcode = 0, \
5337 ._3DCommandSubOpcode = 35, \
5340 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
5341 uint32_t CommandType
;
5342 uint32_t CommandSubType
;
5343 uint32_t _3DCommandOpcode
;
5344 uint32_t _3DCommandSubOpcode
;
5345 uint32_t DwordLength
;
5346 uint32_t CCViewportPointer
;
5350 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
5351 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
5353 uint32_t *dw
= (uint32_t * restrict
) dst
;
5356 __gen_field(values
->CommandType
, 29, 31) |
5357 __gen_field(values
->CommandSubType
, 27, 28) |
5358 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5359 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5360 __gen_field(values
->DwordLength
, 0, 7) |
5364 __gen_offset(values
->CCViewportPointer
, 5, 31) |
5369 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
5370 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
5371 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
5373 .CommandSubType = 3, \
5374 ._3DCommandOpcode = 0, \
5375 ._3DCommandSubOpcode = 33, \
5378 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
5379 uint32_t CommandType
;
5380 uint32_t CommandSubType
;
5381 uint32_t _3DCommandOpcode
;
5382 uint32_t _3DCommandSubOpcode
;
5383 uint32_t DwordLength
;
5384 uint32_t SFClipViewportPointer
;
5388 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
5389 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
5391 uint32_t *dw
= (uint32_t * restrict
) dst
;
5394 __gen_field(values
->CommandType
, 29, 31) |
5395 __gen_field(values
->CommandSubType
, 27, 28) |
5396 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5397 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5398 __gen_field(values
->DwordLength
, 0, 7) |
5402 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
5407 #define GEN8_3DSTATE_WM_length 0x00000002
5408 #define GEN8_3DSTATE_WM_length_bias 0x00000002
5409 #define GEN8_3DSTATE_WM_header \
5411 .CommandSubType = 3, \
5412 ._3DCommandOpcode = 0, \
5413 ._3DCommandSubOpcode = 20, \
5416 struct GEN8_3DSTATE_WM
{
5417 uint32_t CommandType
;
5418 uint32_t CommandSubType
;
5419 uint32_t _3DCommandOpcode
;
5420 uint32_t _3DCommandSubOpcode
;
5421 uint32_t DwordLength
;
5422 uint32_t StatisticsEnable
;
5423 uint32_t LegacyDepthBufferClearEnable
;
5424 uint32_t LegacyDepthBufferResolveEnable
;
5425 uint32_t LegacyHierarchicalDepthBufferResolveEnable
;
5426 uint32_t LegacyDiamondLineRasterization
;
5430 uint32_t EarlyDepthStencilControl
;
5434 uint32_t ForceThreadDispatchEnable
;
5435 #define INTERP_PIXEL 0
5436 #define INTERP_CENTROID 2
5437 #define INTERP_SAMPLE 3
5438 uint32_t PositionZWInterpolationMode
;
5439 uint32_t BarycentricInterpolationMode
;
5444 uint32_t LineEndCapAntialiasingRegionWidth
;
5449 uint32_t LineAntialiasingRegionWidth
;
5450 uint32_t PolygonStippleEnable
;
5451 uint32_t LineStippleEnable
;
5452 #define RASTRULE_UPPER_LEFT 0
5453 #define RASTRULE_UPPER_RIGHT 1
5454 uint32_t PointRasterizationRule
;
5458 uint32_t ForceKillPixelEnable
;
5462 GEN8_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
5463 const struct GEN8_3DSTATE_WM
* restrict values
)
5465 uint32_t *dw
= (uint32_t * restrict
) dst
;
5468 __gen_field(values
->CommandType
, 29, 31) |
5469 __gen_field(values
->CommandSubType
, 27, 28) |
5470 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5471 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5472 __gen_field(values
->DwordLength
, 0, 7) |
5476 __gen_field(values
->StatisticsEnable
, 31, 31) |
5477 __gen_field(values
->LegacyDepthBufferClearEnable
, 30, 30) |
5478 __gen_field(values
->LegacyDepthBufferResolveEnable
, 28, 28) |
5479 __gen_field(values
->LegacyHierarchicalDepthBufferResolveEnable
, 27, 27) |
5480 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
5481 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
5482 __gen_field(values
->ForceThreadDispatchEnable
, 19, 20) |
5483 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
5484 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
5485 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
5486 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
5487 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
5488 __gen_field(values
->LineStippleEnable
, 3, 3) |
5489 __gen_field(values
->PointRasterizationRule
, 2, 2) |
5490 __gen_field(values
->ForceKillPixelEnable
, 0, 1) |
5495 #define GEN8_3DSTATE_WM_CHROMAKEY_length 0x00000002
5496 #define GEN8_3DSTATE_WM_CHROMAKEY_length_bias 0x00000002
5497 #define GEN8_3DSTATE_WM_CHROMAKEY_header \
5499 .CommandSubType = 3, \
5500 ._3DCommandOpcode = 0, \
5501 ._3DCommandSubOpcode = 76, \
5504 struct GEN8_3DSTATE_WM_CHROMAKEY
{
5505 uint32_t CommandType
;
5506 uint32_t CommandSubType
;
5507 uint32_t _3DCommandOpcode
;
5508 uint32_t _3DCommandSubOpcode
;
5509 uint32_t DwordLength
;
5510 uint32_t ChromaKeyKillEnable
;
5514 GEN8_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data
*data
, void * restrict dst
,
5515 const struct GEN8_3DSTATE_WM_CHROMAKEY
* restrict values
)
5517 uint32_t *dw
= (uint32_t * restrict
) dst
;
5520 __gen_field(values
->CommandType
, 29, 31) |
5521 __gen_field(values
->CommandSubType
, 27, 28) |
5522 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5523 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5524 __gen_field(values
->DwordLength
, 0, 7) |
5528 __gen_field(values
->ChromaKeyKillEnable
, 31, 31) |
5533 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length 0x00000003
5534 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length_bias 0x00000002
5535 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_header \
5537 .CommandSubType = 3, \
5538 ._3DCommandOpcode = 0, \
5539 ._3DCommandSubOpcode = 78, \
5542 struct GEN8_3DSTATE_WM_DEPTH_STENCIL
{
5543 uint32_t CommandType
;
5544 uint32_t CommandSubType
;
5545 uint32_t _3DCommandOpcode
;
5546 uint32_t _3DCommandSubOpcode
;
5547 uint32_t DwordLength
;
5548 uint32_t StencilFailOp
;
5549 uint32_t StencilPassDepthFailOp
;
5550 uint32_t StencilPassDepthPassOp
;
5551 uint32_t BackfaceStencilTestFunction
;
5552 uint32_t BackfaceStencilFailOp
;
5553 uint32_t BackfaceStencilPassDepthFailOp
;
5554 uint32_t BackfaceStencilPassDepthPassOp
;
5555 uint32_t StencilTestFunction
;
5556 uint32_t DepthTestFunction
;
5559 uint32_t DoubleSidedStencilEnable
;
5560 uint32_t StencilTestEnable
;
5561 uint32_t StencilBufferWriteEnable
;
5562 uint32_t DepthTestEnable
;
5563 uint32_t DepthBufferWriteEnable
;
5564 uint32_t StencilTestMask
;
5565 uint32_t StencilWriteMask
;
5566 uint32_t BackfaceStencilTestMask
;
5567 uint32_t BackfaceStencilWriteMask
;
5571 GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data
*data
, void * restrict dst
,
5572 const struct GEN8_3DSTATE_WM_DEPTH_STENCIL
* restrict values
)
5574 uint32_t *dw
= (uint32_t * restrict
) dst
;
5577 __gen_field(values
->CommandType
, 29, 31) |
5578 __gen_field(values
->CommandSubType
, 27, 28) |
5579 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5580 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5581 __gen_field(values
->DwordLength
, 0, 7) |
5585 __gen_field(values
->StencilFailOp
, 29, 31) |
5586 __gen_field(values
->StencilPassDepthFailOp
, 26, 28) |
5587 __gen_field(values
->StencilPassDepthPassOp
, 23, 25) |
5588 __gen_field(values
->BackfaceStencilTestFunction
, 20, 22) |
5589 __gen_field(values
->BackfaceStencilFailOp
, 17, 19) |
5590 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 14, 16) |
5591 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 11, 13) |
5592 __gen_field(values
->StencilTestFunction
, 8, 10) |
5593 __gen_field(values
->DepthTestFunction
, 5, 7) |
5594 __gen_field(values
->DoubleSidedStencilEnable
, 4, 4) |
5595 __gen_field(values
->StencilTestEnable
, 3, 3) |
5596 __gen_field(values
->StencilBufferWriteEnable
, 2, 2) |
5597 __gen_field(values
->DepthTestEnable
, 1, 1) |
5598 __gen_field(values
->DepthBufferWriteEnable
, 0, 0) |
5602 __gen_field(values
->StencilTestMask
, 24, 31) |
5603 __gen_field(values
->StencilWriteMask
, 16, 23) |
5604 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
5605 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
5610 #define GEN8_3DSTATE_WM_HZ_OP_length 0x00000005
5611 #define GEN8_3DSTATE_WM_HZ_OP_length_bias 0x00000002
5612 #define GEN8_3DSTATE_WM_HZ_OP_header \
5614 .CommandSubType = 3, \
5615 ._3DCommandOpcode = 0, \
5616 ._3DCommandSubOpcode = 82, \
5619 struct GEN8_3DSTATE_WM_HZ_OP
{
5620 uint32_t CommandType
;
5621 uint32_t CommandSubType
;
5622 uint32_t _3DCommandOpcode
;
5623 uint32_t _3DCommandSubOpcode
;
5624 uint32_t DwordLength
;
5625 uint32_t StencilBufferClearEnable
;
5626 uint32_t DepthBufferClearEnable
;
5627 uint32_t ScissorRectangleEnable
;
5628 uint32_t DepthBufferResolveEnable
;
5629 uint32_t HierarchicalDepthBufferResolveEnable
;
5630 uint32_t PixelPositionOffsetEnable
;
5631 uint32_t FullSurfaceDepthClear
;
5632 uint32_t StencilClearValue
;
5633 uint32_t NumberofMultisamples
;
5634 uint32_t ClearRectangleYMin
;
5635 uint32_t ClearRectangleXMin
;
5636 uint32_t ClearRectangleYMax
;
5637 uint32_t ClearRectangleXMax
;
5638 uint32_t SampleMask
;
5642 GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data
*data
, void * restrict dst
,
5643 const struct GEN8_3DSTATE_WM_HZ_OP
* restrict values
)
5645 uint32_t *dw
= (uint32_t * restrict
) dst
;
5648 __gen_field(values
->CommandType
, 29, 31) |
5649 __gen_field(values
->CommandSubType
, 27, 28) |
5650 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5651 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5652 __gen_field(values
->DwordLength
, 0, 7) |
5656 __gen_field(values
->StencilBufferClearEnable
, 31, 31) |
5657 __gen_field(values
->DepthBufferClearEnable
, 30, 30) |
5658 __gen_field(values
->ScissorRectangleEnable
, 29, 29) |
5659 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
5660 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
5661 __gen_field(values
->PixelPositionOffsetEnable
, 26, 26) |
5662 __gen_field(values
->FullSurfaceDepthClear
, 25, 25) |
5663 __gen_field(values
->StencilClearValue
, 16, 23) |
5664 __gen_field(values
->NumberofMultisamples
, 13, 15) |
5668 __gen_field(values
->ClearRectangleYMin
, 16, 31) |
5669 __gen_field(values
->ClearRectangleXMin
, 0, 15) |
5673 __gen_field(values
->ClearRectangleYMax
, 16, 31) |
5674 __gen_field(values
->ClearRectangleXMax
, 0, 15) |
5678 __gen_field(values
->SampleMask
, 0, 15) |
5683 #define GEN8_GPGPU_WALKER_length 0x0000000f
5684 #define GEN8_GPGPU_WALKER_length_bias 0x00000002
5685 #define GEN8_GPGPU_WALKER_header \
5688 .MediaCommandOpcode = 1, \
5692 struct GEN8_GPGPU_WALKER
{
5693 uint32_t CommandType
;
5695 uint32_t MediaCommandOpcode
;
5697 uint32_t IndirectParameterEnable
;
5698 uint32_t PredicateEnable
;
5699 uint32_t DwordLength
;
5700 uint32_t InterfaceDescriptorOffset
;
5701 uint32_t IndirectDataLength
;
5702 uint32_t IndirectDataStartAddress
;
5707 uint32_t ThreadDepthCounterMaximum
;
5708 uint32_t ThreadHeightCounterMaximum
;
5709 uint32_t ThreadWidthCounterMaximum
;
5710 uint32_t ThreadGroupIDStartingX
;
5711 uint32_t ThreadGroupIDXDimension
;
5712 uint32_t ThreadGroupIDStartingY
;
5713 uint32_t ThreadGroupIDYDimension
;
5714 uint32_t ThreadGroupIDStartingResumeZ
;
5715 uint32_t ThreadGroupIDZDimension
;
5716 uint32_t RightExecutionMask
;
5717 uint32_t BottomExecutionMask
;
5721 GEN8_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
5722 const struct GEN8_GPGPU_WALKER
* restrict values
)
5724 uint32_t *dw
= (uint32_t * restrict
) dst
;
5727 __gen_field(values
->CommandType
, 29, 31) |
5728 __gen_field(values
->Pipeline
, 27, 28) |
5729 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5730 __gen_field(values
->SubOpcode
, 16, 23) |
5731 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
5732 __gen_field(values
->PredicateEnable
, 8, 8) |
5733 __gen_field(values
->DwordLength
, 0, 7) |
5737 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5741 __gen_field(values
->IndirectDataLength
, 0, 16) |
5745 __gen_offset(values
->IndirectDataStartAddress
, 6, 31) |
5749 __gen_field(values
->SIMDSize
, 30, 31) |
5750 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
5751 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
5752 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
5756 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
5763 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
5767 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
5774 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
5778 __gen_field(values
->ThreadGroupIDStartingResumeZ
, 0, 31) |
5782 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
5786 __gen_field(values
->RightExecutionMask
, 0, 31) |
5790 __gen_field(values
->BottomExecutionMask
, 0, 31) |
5795 #define GEN8_MEDIA_CURBE_LOAD_length 0x00000004
5796 #define GEN8_MEDIA_CURBE_LOAD_length_bias 0x00000002
5797 #define GEN8_MEDIA_CURBE_LOAD_header \
5800 .MediaCommandOpcode = 0, \
5804 struct GEN8_MEDIA_CURBE_LOAD
{
5805 uint32_t CommandType
;
5807 uint32_t MediaCommandOpcode
;
5809 uint32_t DwordLength
;
5810 uint32_t CURBETotalDataLength
;
5811 uint32_t CURBEDataStartAddress
;
5815 GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5816 const struct GEN8_MEDIA_CURBE_LOAD
* restrict values
)
5818 uint32_t *dw
= (uint32_t * restrict
) dst
;
5821 __gen_field(values
->CommandType
, 29, 31) |
5822 __gen_field(values
->Pipeline
, 27, 28) |
5823 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5824 __gen_field(values
->SubOpcode
, 16, 23) |
5825 __gen_field(values
->DwordLength
, 0, 15) |
5832 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
5836 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
5841 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
5842 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
5843 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
5846 .MediaCommandOpcode = 0, \
5850 struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
5851 uint32_t CommandType
;
5853 uint32_t MediaCommandOpcode
;
5855 uint32_t DwordLength
;
5856 uint32_t InterfaceDescriptorTotalLength
;
5857 uint32_t InterfaceDescriptorDataStartAddress
;
5861 GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5862 const struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
5864 uint32_t *dw
= (uint32_t * restrict
) dst
;
5867 __gen_field(values
->CommandType
, 29, 31) |
5868 __gen_field(values
->Pipeline
, 27, 28) |
5869 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5870 __gen_field(values
->SubOpcode
, 16, 23) |
5871 __gen_field(values
->DwordLength
, 0, 15) |
5878 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
5882 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
5887 #define GEN8_MEDIA_OBJECT_length_bias 0x00000002
5888 #define GEN8_MEDIA_OBJECT_header \
5890 .MediaCommandPipeline = 2, \
5891 .MediaCommandOpcode = 1, \
5892 .MediaCommandSubOpcode = 0
5894 struct GEN8_MEDIA_OBJECT
{
5895 uint32_t CommandType
;
5896 uint32_t MediaCommandPipeline
;
5897 uint32_t MediaCommandOpcode
;
5898 uint32_t MediaCommandSubOpcode
;
5899 uint32_t DwordLength
;
5900 uint32_t InterfaceDescriptorOffset
;
5901 uint32_t ChildrenPresent
;
5902 #define Nothreadsynchronization 0
5903 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
5904 uint32_t ThreadSynchronization
;
5905 uint32_t ForceDestination
;
5906 #define Notusingscoreboard 0
5907 #define Usingscoreboard 1
5908 uint32_t UseScoreboard
;
5912 uint32_t SliceDestinationSelect
;
5916 uint32_t SubSliceDestinationSelect
;
5917 uint32_t IndirectDataLength
;
5918 __gen_address_type IndirectDataStartAddress
;
5919 uint32_t ScoredboardY
;
5920 uint32_t ScoreboardX
;
5921 uint32_t ScoreboardColor
;
5922 uint32_t ScoreboardMask
;
5923 /* variable length fields follow */
5927 GEN8_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
5928 const struct GEN8_MEDIA_OBJECT
* restrict values
)
5930 uint32_t *dw
= (uint32_t * restrict
) dst
;
5933 __gen_field(values
->CommandType
, 29, 31) |
5934 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
5935 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5936 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
5937 __gen_field(values
->DwordLength
, 0, 15) |
5941 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5945 __gen_field(values
->ChildrenPresent
, 31, 31) |
5946 __gen_field(values
->ThreadSynchronization
, 24, 24) |
5947 __gen_field(values
->ForceDestination
, 22, 22) |
5948 __gen_field(values
->UseScoreboard
, 21, 21) |
5949 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
5950 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
5951 __gen_field(values
->IndirectDataLength
, 0, 16) |
5958 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
5961 __gen_field(values
->ScoredboardY
, 16, 24) |
5962 __gen_field(values
->ScoreboardX
, 0, 8) |
5966 __gen_field(values
->ScoreboardColor
, 16, 19) |
5967 __gen_field(values
->ScoreboardMask
, 0, 7) |
5970 /* variable length fields follow */
5973 #define GEN8_MEDIA_OBJECT_GRPID_length_bias 0x00000002
5974 #define GEN8_MEDIA_OBJECT_GRPID_header \
5976 .MediaCommandPipeline = 2, \
5977 .MediaCommandOpcode = 1, \
5978 .MediaCommandSubOpcode = 6
5980 struct GEN8_MEDIA_OBJECT_GRPID
{
5981 uint32_t CommandType
;
5982 uint32_t MediaCommandPipeline
;
5983 uint32_t MediaCommandOpcode
;
5984 uint32_t MediaCommandSubOpcode
;
5985 uint32_t DwordLength
;
5986 uint32_t InterfaceDescriptorOffset
;
5987 uint32_t EndofThreadGroup
;
5988 uint32_t ForceDestination
;
5989 #define Notusingscoreboard 0
5990 #define Usingscoreboard 1
5991 uint32_t UseScoreboard
;
5995 uint32_t SliceDestinationSelect
;
5999 uint32_t SubSliceDestinationSelect
;
6000 uint32_t IndirectDataLength
;
6001 __gen_address_type IndirectDataStartAddress
;
6002 uint32_t ScoredboardY
;
6003 uint32_t ScoreboardX
;
6004 uint32_t ScoreboardColor
;
6005 uint32_t ScoreboardMask
;
6007 /* variable length fields follow */
6011 GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data
*data
, void * restrict dst
,
6012 const struct GEN8_MEDIA_OBJECT_GRPID
* restrict values
)
6014 uint32_t *dw
= (uint32_t * restrict
) dst
;
6017 __gen_field(values
->CommandType
, 29, 31) |
6018 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6019 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6020 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6021 __gen_field(values
->DwordLength
, 0, 15) |
6025 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6029 __gen_field(values
->EndofThreadGroup
, 23, 23) |
6030 __gen_field(values
->ForceDestination
, 22, 22) |
6031 __gen_field(values
->UseScoreboard
, 21, 21) |
6032 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6033 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6034 __gen_field(values
->IndirectDataLength
, 0, 16) |
6041 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6044 __gen_field(values
->ScoredboardY
, 16, 24) |
6045 __gen_field(values
->ScoreboardX
, 0, 8) |
6049 __gen_field(values
->ScoreboardColor
, 16, 19) |
6050 __gen_field(values
->ScoreboardMask
, 0, 7) |
6054 __gen_field(values
->GroupID
, 0, 31) |
6057 /* variable length fields follow */
6060 #define GEN8_MEDIA_OBJECT_PRT_length 0x00000010
6061 #define GEN8_MEDIA_OBJECT_PRT_length_bias 0x00000002
6062 #define GEN8_MEDIA_OBJECT_PRT_header \
6065 .MediaCommandOpcode = 1, \
6069 struct GEN8_MEDIA_OBJECT_PRT
{
6070 uint32_t CommandType
;
6072 uint32_t MediaCommandOpcode
;
6074 uint32_t DwordLength
;
6075 uint32_t InterfaceDescriptorOffset
;
6076 uint32_t ChildrenPresent
;
6077 uint32_t PRT_FenceNeeded
;
6078 #define Rootthreadqueue 0
6079 #define VFEstateflush 1
6080 uint32_t PRT_FenceType
;
6081 uint32_t InlineData
;
6085 GEN8_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
6086 const struct GEN8_MEDIA_OBJECT_PRT
* restrict values
)
6088 uint32_t *dw
= (uint32_t * restrict
) dst
;
6091 __gen_field(values
->CommandType
, 29, 31) |
6092 __gen_field(values
->Pipeline
, 27, 28) |
6093 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6094 __gen_field(values
->SubOpcode
, 16, 23) |
6095 __gen_field(values
->DwordLength
, 0, 15) |
6099 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6103 __gen_field(values
->ChildrenPresent
, 31, 31) |
6104 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
6105 __gen_field(values
->PRT_FenceType
, 22, 22) |
6112 __gen_field(values
->InlineData
, 0, 31) |
6117 #define GEN8_MEDIA_OBJECT_WALKER_length_bias 0x00000002
6118 #define GEN8_MEDIA_OBJECT_WALKER_header \
6121 .MediaCommandOpcode = 1, \
6124 struct GEN8_MEDIA_OBJECT_WALKER
{
6125 uint32_t CommandType
;
6127 uint32_t MediaCommandOpcode
;
6129 uint32_t DwordLength
;
6130 uint32_t InterfaceDescriptorOffset
;
6131 uint32_t ChildrenPresent
;
6132 #define Nothreadsynchronization 0
6133 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
6134 uint32_t ThreadSynchronization
;
6135 #define Notusingscoreboard 0
6136 #define Usingscoreboard 1
6137 uint32_t UseScoreboard
;
6138 uint32_t IndirectDataLength
;
6139 uint32_t IndirectDataStartAddress
;
6140 uint32_t GroupIDLoopSelect
;
6141 uint32_t ScoreboardMask
;
6142 uint32_t ColorCountMinusOne
;
6143 uint32_t MiddleLoopExtraSteps
;
6144 uint32_t LocalMidLoopUnitY
;
6145 uint32_t MidLoopUnitX
;
6146 uint32_t GlobalLoopExecCount
;
6147 uint32_t LocalLoopExecCount
;
6148 uint32_t BlockResolutionY
;
6149 uint32_t BlockResolutionX
;
6150 uint32_t LocalStartY
;
6151 uint32_t LocalStartX
;
6152 uint32_t LocalOuterLoopStrideY
;
6153 uint32_t LocalOuterLoopStrideX
;
6154 uint32_t LocalInnerLoopUnitY
;
6155 uint32_t LocalInnerLoopUnitX
;
6156 uint32_t GlobalResolutionY
;
6157 uint32_t GlobalResolutionX
;
6158 uint32_t GlobalStartY
;
6159 uint32_t GlobalStartX
;
6160 uint32_t GlobalOuterLoopStrideY
;
6161 uint32_t GlobalOuterLoopStrideX
;
6162 uint32_t GlobalInnerLoopUnitY
;
6163 uint32_t GlobalInnerLoopUnitX
;
6164 /* variable length fields follow */
6168 GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
6169 const struct GEN8_MEDIA_OBJECT_WALKER
* restrict values
)
6171 uint32_t *dw
= (uint32_t * restrict
) dst
;
6174 __gen_field(values
->CommandType
, 29, 31) |
6175 __gen_field(values
->Pipeline
, 27, 28) |
6176 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6177 __gen_field(values
->SubOpcode
, 16, 23) |
6178 __gen_field(values
->DwordLength
, 0, 15) |
6182 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6186 __gen_field(values
->ChildrenPresent
, 31, 31) |
6187 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6188 __gen_field(values
->UseScoreboard
, 21, 21) |
6189 __gen_field(values
->IndirectDataLength
, 0, 16) |
6193 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
6200 __gen_field(values
->GroupIDLoopSelect
, 8, 31) |
6201 __gen_field(values
->ScoreboardMask
, 0, 7) |
6205 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
6206 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
6207 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
6208 __gen_field(values
->MidLoopUnitX
, 8, 9) |
6212 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
6213 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
6217 __gen_field(values
->BlockResolutionY
, 16, 24) |
6218 __gen_field(values
->BlockResolutionX
, 0, 8) |
6222 __gen_field(values
->LocalStartY
, 16, 24) |
6223 __gen_field(values
->LocalStartX
, 0, 8) |
6230 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
6231 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
6235 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
6236 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
6240 __gen_field(values
->GlobalResolutionY
, 16, 24) |
6241 __gen_field(values
->GlobalResolutionX
, 0, 8) |
6245 __gen_field(values
->GlobalStartY
, 16, 25) |
6246 __gen_field(values
->GlobalStartX
, 0, 9) |
6250 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
6251 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
6255 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
6256 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
6259 /* variable length fields follow */
6262 #define GEN8_MEDIA_STATE_FLUSH_length 0x00000002
6263 #define GEN8_MEDIA_STATE_FLUSH_length_bias 0x00000002
6264 #define GEN8_MEDIA_STATE_FLUSH_header \
6267 .MediaCommandOpcode = 0, \
6271 struct GEN8_MEDIA_STATE_FLUSH
{
6272 uint32_t CommandType
;
6274 uint32_t MediaCommandOpcode
;
6276 uint32_t DwordLength
;
6278 uint32_t WatermarkRequired
;
6279 uint32_t InterfaceDescriptorOffset
;
6283 GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6284 const struct GEN8_MEDIA_STATE_FLUSH
* restrict values
)
6286 uint32_t *dw
= (uint32_t * restrict
) dst
;
6289 __gen_field(values
->CommandType
, 29, 31) |
6290 __gen_field(values
->Pipeline
, 27, 28) |
6291 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6292 __gen_field(values
->SubOpcode
, 16, 23) |
6293 __gen_field(values
->DwordLength
, 0, 15) |
6297 __gen_field(values
->FlushtoGO
, 7, 7) |
6298 __gen_field(values
->WatermarkRequired
, 6, 6) |
6299 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6304 #define GEN8_MEDIA_VFE_STATE_length 0x00000009
6305 #define GEN8_MEDIA_VFE_STATE_length_bias 0x00000002
6306 #define GEN8_MEDIA_VFE_STATE_header \
6309 .MediaCommandOpcode = 0, \
6313 struct GEN8_MEDIA_VFE_STATE
{
6314 uint32_t CommandType
;
6316 uint32_t MediaCommandOpcode
;
6318 uint32_t DwordLength
;
6319 uint32_t ScratchSpaceBasePointer
;
6321 uint32_t PerThreadScratchSpace
;
6322 uint32_t ScratchSpaceBasePointerHigh
;
6323 uint32_t MaximumNumberofThreads
;
6324 uint32_t NumberofURBEntries
;
6325 #define Maintainingtheexistingtimestampstate 0
6326 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
6327 uint32_t ResetGatewayTimer
;
6328 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
6329 #define BypassingOpenGatewayCloseGatewayprotocol 1
6330 uint32_t BypassGatewayControl
;
6331 uint32_t SliceDisable
;
6332 uint32_t URBEntryAllocationSize
;
6333 uint32_t CURBEAllocationSize
;
6334 #define Scoreboarddisabled 0
6335 #define Scoreboardenabled 1
6336 uint32_t ScoreboardEnable
;
6337 #define StallingScoreboard 0
6338 #define NonStallingScoreboard 1
6339 uint32_t ScoreboardType
;
6340 uint32_t ScoreboardMask
;
6341 uint32_t Scoreboard3DeltaY
;
6342 uint32_t Scoreboard3DeltaX
;
6343 uint32_t Scoreboard2DeltaY
;
6344 uint32_t Scoreboard2DeltaX
;
6345 uint32_t Scoreboard1DeltaY
;
6346 uint32_t Scoreboard1DeltaX
;
6347 uint32_t Scoreboard0DeltaY
;
6348 uint32_t Scoreboard0DeltaX
;
6349 uint32_t Scoreboard7DeltaY
;
6350 uint32_t Scoreboard7DeltaX
;
6351 uint32_t Scoreboard6DeltaY
;
6352 uint32_t Scoreboard6DeltaX
;
6353 uint32_t Scoreboard5DeltaY
;
6354 uint32_t Scoreboard5DeltaX
;
6355 uint32_t Scoreboard4DeltaY
;
6356 uint32_t Scoreboard4DeltaX
;
6360 GEN8_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6361 const struct GEN8_MEDIA_VFE_STATE
* restrict values
)
6363 uint32_t *dw
= (uint32_t * restrict
) dst
;
6366 __gen_field(values
->CommandType
, 29, 31) |
6367 __gen_field(values
->Pipeline
, 27, 28) |
6368 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6369 __gen_field(values
->SubOpcode
, 16, 23) |
6370 __gen_field(values
->DwordLength
, 0, 15) |
6374 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
6375 __gen_field(values
->StackSize
, 4, 7) |
6376 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
6380 __gen_offset(values
->ScratchSpaceBasePointerHigh
, 0, 15) |
6384 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
6385 __gen_field(values
->NumberofURBEntries
, 8, 15) |
6386 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
6387 __gen_field(values
->BypassGatewayControl
, 6, 6) |
6391 __gen_field(values
->SliceDisable
, 0, 1) |
6395 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
6396 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
6400 __gen_field(values
->ScoreboardEnable
, 31, 31) |
6401 __gen_field(values
->ScoreboardType
, 30, 30) |
6402 __gen_field(values
->ScoreboardMask
, 0, 7) |
6406 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
6407 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
6408 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
6409 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
6410 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
6411 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
6412 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
6413 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
6417 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
6418 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
6419 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
6420 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
6421 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
6422 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
6423 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
6424 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
6429 #define GEN8_MI_ARB_CHECK_length 0x00000001
6430 #define GEN8_MI_ARB_CHECK_length_bias 0x00000001
6431 #define GEN8_MI_ARB_CHECK_header \
6433 .MICommandOpcode = 5
6435 struct GEN8_MI_ARB_CHECK
{
6436 uint32_t CommandType
;
6437 uint32_t MICommandOpcode
;
6441 GEN8_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
6442 const struct GEN8_MI_ARB_CHECK
* restrict values
)
6444 uint32_t *dw
= (uint32_t * restrict
) dst
;
6447 __gen_field(values
->CommandType
, 29, 31) |
6448 __gen_field(values
->MICommandOpcode
, 23, 28) |
6453 #define GEN8_MI_BATCH_BUFFER_END_length 0x00000001
6454 #define GEN8_MI_BATCH_BUFFER_END_length_bias 0x00000001
6455 #define GEN8_MI_BATCH_BUFFER_END_header \
6457 .MICommandOpcode = 10
6459 struct GEN8_MI_BATCH_BUFFER_END
{
6460 uint32_t CommandType
;
6461 uint32_t MICommandOpcode
;
6465 GEN8_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6466 const struct GEN8_MI_BATCH_BUFFER_END
* restrict values
)
6468 uint32_t *dw
= (uint32_t * restrict
) dst
;
6471 __gen_field(values
->CommandType
, 29, 31) |
6472 __gen_field(values
->MICommandOpcode
, 23, 28) |
6477 #define GEN8_MI_BATCH_BUFFER_START_length 0x00000003
6478 #define GEN8_MI_BATCH_BUFFER_START_length_bias 0x00000002
6479 #define GEN8_MI_BATCH_BUFFER_START_header \
6481 .MICommandOpcode = 49, \
6484 struct GEN8_MI_BATCH_BUFFER_START
{
6485 uint32_t CommandType
;
6486 uint32_t MICommandOpcode
;
6487 #define _1stlevelbatch 0
6488 #define _2ndlevelbatch 1
6489 uint32_t _2ndLevelBatchBuffer
;
6490 uint32_t AddOffsetEnable
;
6491 uint32_t PredicationEnable
;
6492 uint32_t ResourceStreamerEnable
;
6495 uint32_t AddressSpaceIndicator
;
6496 uint32_t DwordLength
;
6497 __gen_address_type BatchBufferStartAddress
;
6498 __gen_address_type BatchBufferStartAddressHigh
;
6502 GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
6503 const struct GEN8_MI_BATCH_BUFFER_START
* restrict values
)
6505 uint32_t *dw
= (uint32_t * restrict
) dst
;
6508 __gen_field(values
->CommandType
, 29, 31) |
6509 __gen_field(values
->MICommandOpcode
, 23, 28) |
6510 __gen_field(values
->_2ndLevelBatchBuffer
, 22, 22) |
6511 __gen_field(values
->AddOffsetEnable
, 16, 16) |
6512 __gen_field(values
->PredicationEnable
, 15, 15) |
6513 __gen_field(values
->ResourceStreamerEnable
, 10, 10) |
6514 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
6515 __gen_field(values
->DwordLength
, 0, 7) |
6522 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
6528 __gen_combine_address(data
, &dw
[2], values
->BatchBufferStartAddressHigh
, dw2
);
6532 #define GEN8_MI_CLFLUSH_length_bias 0x00000002
6533 #define GEN8_MI_CLFLUSH_header \
6535 .MICommandOpcode = 39
6537 struct GEN8_MI_CLFLUSH
{
6538 uint32_t CommandType
;
6539 uint32_t MICommandOpcode
;
6540 #define PerProcessGraphicsAddress 0
6541 #define GlobalGraphicsAddress 1
6542 uint32_t UseGlobalGTT
;
6543 uint32_t DwordLength
;
6544 __gen_address_type PageBaseAddress
;
6545 uint32_t StartingCachelineOffset
;
6546 __gen_address_type PageBaseAddressHigh
;
6547 /* variable length fields follow */
6551 GEN8_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6552 const struct GEN8_MI_CLFLUSH
* restrict values
)
6554 uint32_t *dw
= (uint32_t * restrict
) dst
;
6557 __gen_field(values
->CommandType
, 29, 31) |
6558 __gen_field(values
->MICommandOpcode
, 23, 28) |
6559 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6560 __gen_field(values
->DwordLength
, 0, 9) |
6564 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
6568 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
6574 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
6576 /* variable length fields follow */
6579 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000003
6580 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
6581 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_header\
6583 .MICommandOpcode = 54, \
6584 .UseGlobalGTT = 0, \
6585 .CompareSemaphore = 0, \
6588 struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
{
6589 uint32_t CommandType
;
6590 uint32_t MICommandOpcode
;
6591 uint32_t UseGlobalGTT
;
6592 uint32_t CompareSemaphore
;
6593 uint32_t DwordLength
;
6594 uint32_t CompareDataDword
;
6595 __gen_address_type CompareAddress
;
6596 __gen_address_type CompareAddressHigh
;
6600 GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6601 const struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
6603 uint32_t *dw
= (uint32_t * restrict
) dst
;
6606 __gen_field(values
->CommandType
, 29, 31) |
6607 __gen_field(values
->MICommandOpcode
, 23, 28) |
6608 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6609 __gen_field(values
->CompareSemaphore
, 21, 21) |
6610 __gen_field(values
->DwordLength
, 0, 7) |
6614 __gen_field(values
->CompareDataDword
, 0, 31) |
6621 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
6627 __gen_combine_address(data
, &dw
[3], values
->CompareAddressHigh
, dw3
);
6631 #define GEN8_MI_COPY_MEM_MEM_length 0x00000005
6632 #define GEN8_MI_COPY_MEM_MEM_length_bias 0x00000002
6633 #define GEN8_MI_COPY_MEM_MEM_header \
6635 .MICommandOpcode = 46, \
6638 struct GEN8_MI_COPY_MEM_MEM
{
6639 uint32_t CommandType
;
6640 uint32_t MICommandOpcode
;
6641 #define PerProcessGraphicsAddress 0
6642 #define GlobalGraphicsAddress 1
6643 uint32_t UseGlobalGTTSource
;
6644 #define PerProcessGraphicsAddress 0
6645 #define GlobalGraphicsAddress 1
6646 uint32_t UseGlobalGTTDestination
;
6647 uint32_t DwordLength
;
6648 __gen_address_type DestinationMemoryAddress
;
6649 __gen_address_type SourceMemoryAddress
;
6653 GEN8_MI_COPY_MEM_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6654 const struct GEN8_MI_COPY_MEM_MEM
* restrict values
)
6656 uint32_t *dw
= (uint32_t * restrict
) dst
;
6659 __gen_field(values
->CommandType
, 29, 31) |
6660 __gen_field(values
->MICommandOpcode
, 23, 28) |
6661 __gen_field(values
->UseGlobalGTTSource
, 22, 22) |
6662 __gen_field(values
->UseGlobalGTTDestination
, 21, 21) |
6663 __gen_field(values
->DwordLength
, 0, 7) |
6670 __gen_combine_address(data
, &dw
[1], values
->DestinationMemoryAddress
, dw1
);
6676 __gen_combine_address(data
, &dw
[3], values
->SourceMemoryAddress
, dw3
);
6680 #define GEN8_MI_LOAD_REGISTER_IMM_length 0x00000003
6681 #define GEN8_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
6682 #define GEN8_MI_LOAD_REGISTER_IMM_header \
6684 .MICommandOpcode = 34, \
6687 struct GEN8_MI_LOAD_REGISTER_IMM
{
6688 uint32_t CommandType
;
6689 uint32_t MICommandOpcode
;
6690 uint32_t ByteWriteDisables
;
6691 uint32_t DwordLength
;
6692 uint32_t RegisterOffset
;
6697 GEN8_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6698 const struct GEN8_MI_LOAD_REGISTER_IMM
* restrict values
)
6700 uint32_t *dw
= (uint32_t * restrict
) dst
;
6703 __gen_field(values
->CommandType
, 29, 31) |
6704 __gen_field(values
->MICommandOpcode
, 23, 28) |
6705 __gen_field(values
->ByteWriteDisables
, 8, 11) |
6706 __gen_field(values
->DwordLength
, 0, 7) |
6710 __gen_offset(values
->RegisterOffset
, 2, 22) |
6714 __gen_field(values
->DataDWord
, 0, 31) |
6719 #define GEN8_MI_LOAD_REGISTER_MEM_length 0x00000004
6720 #define GEN8_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
6721 #define GEN8_MI_LOAD_REGISTER_MEM_header \
6723 .MICommandOpcode = 41, \
6726 struct GEN8_MI_LOAD_REGISTER_MEM
{
6727 uint32_t CommandType
;
6728 uint32_t MICommandOpcode
;
6729 uint32_t UseGlobalGTT
;
6730 uint32_t AsyncModeEnable
;
6731 uint32_t DwordLength
;
6732 uint32_t RegisterAddress
;
6733 __gen_address_type MemoryAddress
;
6737 GEN8_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6738 const struct GEN8_MI_LOAD_REGISTER_MEM
* restrict values
)
6740 uint32_t *dw
= (uint32_t * restrict
) dst
;
6743 __gen_field(values
->CommandType
, 29, 31) |
6744 __gen_field(values
->MICommandOpcode
, 23, 28) |
6745 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6746 __gen_field(values
->AsyncModeEnable
, 21, 21) |
6747 __gen_field(values
->DwordLength
, 0, 7) |
6751 __gen_offset(values
->RegisterAddress
, 2, 22) |
6758 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6762 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
6763 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
6764 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_header \
6766 .MICommandOpcode = 19, \
6769 struct GEN8_MI_LOAD_SCAN_LINES_EXCL
{
6770 uint32_t CommandType
;
6771 uint32_t MICommandOpcode
;
6772 #define DisplayPlaneA 0
6773 #define DisplayPlaneB 1
6774 #define DisplayPlaneC 4
6775 uint32_t DisplayPlaneSelect
;
6776 uint32_t DwordLength
;
6777 uint32_t StartScanLineNumber
;
6778 uint32_t EndScanLineNumber
;
6782 GEN8_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data
*data
, void * restrict dst
,
6783 const struct GEN8_MI_LOAD_SCAN_LINES_EXCL
* restrict values
)
6785 uint32_t *dw
= (uint32_t * restrict
) dst
;
6788 __gen_field(values
->CommandType
, 29, 31) |
6789 __gen_field(values
->MICommandOpcode
, 23, 28) |
6790 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6791 __gen_field(values
->DwordLength
, 0, 5) |
6795 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6796 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6801 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
6802 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
6803 #define GEN8_MI_LOAD_SCAN_LINES_INCL_header \
6805 .MICommandOpcode = 18, \
6808 struct GEN8_MI_LOAD_SCAN_LINES_INCL
{
6809 uint32_t CommandType
;
6810 uint32_t MICommandOpcode
;
6811 #define DisplayPlaneA 0
6812 #define DisplayPlaneB 1
6813 #define DisplayPlaneC 4
6814 uint32_t DisplayPlaneSelect
;
6815 #define NeverForward 0
6816 #define AlwaysForward 1
6817 #define ConditionallyForward 2
6818 uint32_t ScanLineEventDoneForward
;
6819 uint32_t DwordLength
;
6820 uint32_t StartScanLineNumber
;
6821 uint32_t EndScanLineNumber
;
6825 GEN8_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data
*data
, void * restrict dst
,
6826 const struct GEN8_MI_LOAD_SCAN_LINES_INCL
* restrict values
)
6828 uint32_t *dw
= (uint32_t * restrict
) dst
;
6831 __gen_field(values
->CommandType
, 29, 31) |
6832 __gen_field(values
->MICommandOpcode
, 23, 28) |
6833 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6834 __gen_field(values
->ScanLineEventDoneForward
, 17, 18) |
6835 __gen_field(values
->DwordLength
, 0, 5) |
6839 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6840 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6845 #define GEN8_MI_LOAD_URB_MEM_length 0x00000004
6846 #define GEN8_MI_LOAD_URB_MEM_length_bias 0x00000002
6847 #define GEN8_MI_LOAD_URB_MEM_header \
6849 .MICommandOpcode = 44, \
6852 struct GEN8_MI_LOAD_URB_MEM
{
6853 uint32_t CommandType
;
6854 uint32_t MICommandOpcode
;
6855 uint32_t DwordLength
;
6856 uint32_t URBAddress
;
6857 __gen_address_type MemoryAddress
;
6861 GEN8_MI_LOAD_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6862 const struct GEN8_MI_LOAD_URB_MEM
* restrict values
)
6864 uint32_t *dw
= (uint32_t * restrict
) dst
;
6867 __gen_field(values
->CommandType
, 29, 31) |
6868 __gen_field(values
->MICommandOpcode
, 23, 28) |
6869 __gen_field(values
->DwordLength
, 0, 7) |
6873 __gen_field(values
->URBAddress
, 2, 14) |
6880 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6884 #define GEN8_MI_MATH_length_bias 0x00000002
6885 #define GEN8_MI_MATH_header \
6887 .MICommandOpcode = 26
6889 struct GEN8_MI_MATH
{
6890 uint32_t CommandType
;
6891 uint32_t MICommandOpcode
;
6892 uint32_t DwordLength
;
6893 uint32_t ALUINSTRUCTION1
;
6894 uint32_t ALUINSTRUCTION2
;
6895 /* variable length fields follow */
6899 GEN8_MI_MATH_pack(__gen_user_data
*data
, void * restrict dst
,
6900 const struct GEN8_MI_MATH
* restrict values
)
6902 uint32_t *dw
= (uint32_t * restrict
) dst
;
6905 __gen_field(values
->CommandType
, 29, 31) |
6906 __gen_field(values
->MICommandOpcode
, 23, 28) |
6907 __gen_field(values
->DwordLength
, 0, 5) |
6911 __gen_field(values
->ALUINSTRUCTION1
, 0, 31) |
6915 __gen_field(values
->ALUINSTRUCTION2
, 0, 31) |
6918 /* variable length fields follow */
6921 #define GEN8_MI_NOOP_length 0x00000001
6922 #define GEN8_MI_NOOP_length_bias 0x00000001
6923 #define GEN8_MI_NOOP_header \
6925 .MICommandOpcode = 0
6927 struct GEN8_MI_NOOP
{
6928 uint32_t CommandType
;
6929 uint32_t MICommandOpcode
;
6930 uint32_t IdentificationNumberRegisterWriteEnable
;
6931 uint32_t IdentificationNumber
;
6935 GEN8_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
6936 const struct GEN8_MI_NOOP
* restrict values
)
6938 uint32_t *dw
= (uint32_t * restrict
) dst
;
6941 __gen_field(values
->CommandType
, 29, 31) |
6942 __gen_field(values
->MICommandOpcode
, 23, 28) |
6943 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
6944 __gen_field(values
->IdentificationNumber
, 0, 21) |
6949 #define GEN8_MI_PREDICATE_length 0x00000001
6950 #define GEN8_MI_PREDICATE_length_bias 0x00000001
6951 #define GEN8_MI_PREDICATE_header \
6953 .MICommandOpcode = 12
6955 struct GEN8_MI_PREDICATE
{
6956 uint32_t CommandType
;
6957 uint32_t MICommandOpcode
;
6961 uint32_t LoadOperation
;
6962 #define COMBINE_SET 0
6963 #define COMBINE_AND 1
6964 #define COMBINE_OR 2
6965 #define COMBINE_XOR 3
6966 uint32_t CombineOperation
;
6967 #define COMPARE_SRCS_EQUAL 2
6968 #define COMPARE_DELTAS_EQUAL 3
6969 uint32_t CompareOperation
;
6973 GEN8_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
6974 const struct GEN8_MI_PREDICATE
* restrict values
)
6976 uint32_t *dw
= (uint32_t * restrict
) dst
;
6979 __gen_field(values
->CommandType
, 29, 31) |
6980 __gen_field(values
->MICommandOpcode
, 23, 28) |
6981 __gen_field(values
->LoadOperation
, 6, 7) |
6982 __gen_field(values
->CombineOperation
, 3, 4) |
6983 __gen_field(values
->CompareOperation
, 0, 1) |
6988 #define GEN8_MI_REPORT_HEAD_length 0x00000001
6989 #define GEN8_MI_REPORT_HEAD_length_bias 0x00000001
6990 #define GEN8_MI_REPORT_HEAD_header \
6992 .MICommandOpcode = 7
6994 struct GEN8_MI_REPORT_HEAD
{
6995 uint32_t CommandType
;
6996 uint32_t MICommandOpcode
;
7000 GEN8_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
7001 const struct GEN8_MI_REPORT_HEAD
* restrict values
)
7003 uint32_t *dw
= (uint32_t * restrict
) dst
;
7006 __gen_field(values
->CommandType
, 29, 31) |
7007 __gen_field(values
->MICommandOpcode
, 23, 28) |
7012 #define GEN8_MI_RS_CONTEXT_length 0x00000001
7013 #define GEN8_MI_RS_CONTEXT_length_bias 0x00000001
7014 #define GEN8_MI_RS_CONTEXT_header \
7016 .MICommandOpcode = 15
7018 struct GEN8_MI_RS_CONTEXT
{
7019 uint32_t CommandType
;
7020 uint32_t MICommandOpcode
;
7023 uint32_t ResourceStreamerSave
;
7027 GEN8_MI_RS_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7028 const struct GEN8_MI_RS_CONTEXT
* restrict values
)
7030 uint32_t *dw
= (uint32_t * restrict
) dst
;
7033 __gen_field(values
->CommandType
, 29, 31) |
7034 __gen_field(values
->MICommandOpcode
, 23, 28) |
7035 __gen_field(values
->ResourceStreamerSave
, 0, 0) |
7040 #define GEN8_MI_RS_CONTROL_length 0x00000001
7041 #define GEN8_MI_RS_CONTROL_length_bias 0x00000001
7042 #define GEN8_MI_RS_CONTROL_header \
7044 .MICommandOpcode = 6
7046 struct GEN8_MI_RS_CONTROL
{
7047 uint32_t CommandType
;
7048 uint32_t MICommandOpcode
;
7051 uint32_t ResourceStreamerControl
;
7055 GEN8_MI_RS_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7056 const struct GEN8_MI_RS_CONTROL
* restrict values
)
7058 uint32_t *dw
= (uint32_t * restrict
) dst
;
7061 __gen_field(values
->CommandType
, 29, 31) |
7062 __gen_field(values
->MICommandOpcode
, 23, 28) |
7063 __gen_field(values
->ResourceStreamerControl
, 0, 0) |
7068 #define GEN8_MI_RS_STORE_DATA_IMM_length 0x00000004
7069 #define GEN8_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
7070 #define GEN8_MI_RS_STORE_DATA_IMM_header \
7072 .MICommandOpcode = 43, \
7075 struct GEN8_MI_RS_STORE_DATA_IMM
{
7076 uint32_t CommandType
;
7077 uint32_t MICommandOpcode
;
7078 uint32_t DwordLength
;
7079 __gen_address_type DestinationAddress
;
7080 uint32_t CoreModeEnable
;
7081 uint32_t DataDWord0
;
7085 GEN8_MI_RS_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7086 const struct GEN8_MI_RS_STORE_DATA_IMM
* restrict values
)
7088 uint32_t *dw
= (uint32_t * restrict
) dst
;
7091 __gen_field(values
->CommandType
, 29, 31) |
7092 __gen_field(values
->MICommandOpcode
, 23, 28) |
7093 __gen_field(values
->DwordLength
, 0, 7) |
7097 __gen_field(values
->CoreModeEnable
, 0, 0) |
7101 __gen_combine_address(data
, &dw
[1], values
->DestinationAddress
, dw1
);
7104 __gen_field(values
->DataDWord0
, 0, 31) |
7109 #define GEN8_MI_SET_CONTEXT_length 0x00000002
7110 #define GEN8_MI_SET_CONTEXT_length_bias 0x00000002
7111 #define GEN8_MI_SET_CONTEXT_header \
7113 .MICommandOpcode = 24, \
7116 struct GEN8_MI_SET_CONTEXT
{
7117 uint32_t CommandType
;
7118 uint32_t MICommandOpcode
;
7119 uint32_t DwordLength
;
7120 __gen_address_type LogicalContextAddress
;
7121 uint32_t ReservedMustbe1
;
7122 uint32_t CoreModeEnable
;
7123 uint32_t ResourceStreamerStateSaveEnable
;
7124 uint32_t ResourceStreamerStateRestoreEnable
;
7125 uint32_t ForceRestore
;
7126 uint32_t RestoreInhibit
;
7130 GEN8_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7131 const struct GEN8_MI_SET_CONTEXT
* restrict values
)
7133 uint32_t *dw
= (uint32_t * restrict
) dst
;
7136 __gen_field(values
->CommandType
, 29, 31) |
7137 __gen_field(values
->MICommandOpcode
, 23, 28) |
7138 __gen_field(values
->DwordLength
, 0, 7) |
7142 __gen_field(values
->ReservedMustbe1
, 8, 8) |
7143 __gen_field(values
->CoreModeEnable
, 4, 4) |
7144 __gen_field(values
->ResourceStreamerStateSaveEnable
, 3, 3) |
7145 __gen_field(values
->ResourceStreamerStateRestoreEnable
, 2, 2) |
7146 __gen_field(values
->ForceRestore
, 1, 1) |
7147 __gen_field(values
->RestoreInhibit
, 0, 0) |
7151 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
7155 #define GEN8_MI_SET_PREDICATE_length 0x00000001
7156 #define GEN8_MI_SET_PREDICATE_length_bias 0x00000001
7157 #define GEN8_MI_SET_PREDICATE_header \
7159 .MICommandOpcode = 1
7161 struct GEN8_MI_SET_PREDICATE
{
7162 uint32_t CommandType
;
7163 uint32_t MICommandOpcode
;
7165 #define NOOPonResult2clear 1
7166 #define NOOPonResult2set 2
7167 #define NOOPonResultclear 3
7168 #define NOOPonResultset 4
7169 #define Executewhenonesliceenabled 5
7170 #define Executewhentwoslicesareenabled 6
7171 #define Executewhenthreeslicesareenabled 7
7172 #define NOOPAlways 15
7173 uint32_t PREDICATEENABLE
;
7177 GEN8_MI_SET_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7178 const struct GEN8_MI_SET_PREDICATE
* restrict values
)
7180 uint32_t *dw
= (uint32_t * restrict
) dst
;
7183 __gen_field(values
->CommandType
, 29, 31) |
7184 __gen_field(values
->MICommandOpcode
, 23, 28) |
7185 __gen_field(values
->PREDICATEENABLE
, 0, 3) |
7190 #define GEN8_MI_STORE_DATA_IMM_length 0x00000004
7191 #define GEN8_MI_STORE_DATA_IMM_length_bias 0x00000002
7192 #define GEN8_MI_STORE_DATA_IMM_header \
7194 .MICommandOpcode = 32, \
7197 struct GEN8_MI_STORE_DATA_IMM
{
7198 uint32_t CommandType
;
7199 uint32_t MICommandOpcode
;
7200 uint32_t UseGlobalGTT
;
7201 uint32_t StoreQword
;
7202 uint32_t DwordLength
;
7203 __gen_address_type Address
;
7204 uint32_t CoreModeEnable
;
7205 uint32_t DataDWord0
;
7206 uint32_t DataDWord1
;
7210 GEN8_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7211 const struct GEN8_MI_STORE_DATA_IMM
* restrict values
)
7213 uint32_t *dw
= (uint32_t * restrict
) dst
;
7216 __gen_field(values
->CommandType
, 29, 31) |
7217 __gen_field(values
->MICommandOpcode
, 23, 28) |
7218 __gen_field(values
->UseGlobalGTT
, 22, 22) |
7219 __gen_field(values
->StoreQword
, 21, 21) |
7220 __gen_field(values
->DwordLength
, 0, 9) |
7224 __gen_field(values
->CoreModeEnable
, 0, 0) |
7228 __gen_combine_address(data
, &dw
[1], values
->Address
, dw1
);
7231 __gen_field(values
->DataDWord0
, 0, 31) |
7235 __gen_field(values
->DataDWord1
, 0, 31) |
7240 #define GEN8_MI_STORE_DATA_INDEX_length 0x00000003
7241 #define GEN8_MI_STORE_DATA_INDEX_length_bias 0x00000002
7242 #define GEN8_MI_STORE_DATA_INDEX_header \
7244 .MICommandOpcode = 33, \
7247 struct GEN8_MI_STORE_DATA_INDEX
{
7248 uint32_t CommandType
;
7249 uint32_t MICommandOpcode
;
7250 uint32_t UsePerProcessHardwareStatusPage
;
7251 uint32_t DwordLength
;
7253 uint32_t DataDWord0
;
7254 uint32_t DataDWord1
;
7258 GEN8_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
7259 const struct GEN8_MI_STORE_DATA_INDEX
* restrict values
)
7261 uint32_t *dw
= (uint32_t * restrict
) dst
;
7264 __gen_field(values
->CommandType
, 29, 31) |
7265 __gen_field(values
->MICommandOpcode
, 23, 28) |
7266 __gen_field(values
->UsePerProcessHardwareStatusPage
, 21, 21) |
7267 __gen_field(values
->DwordLength
, 0, 7) |
7271 __gen_field(values
->Offset
, 2, 11) |
7275 __gen_field(values
->DataDWord0
, 0, 31) |
7279 __gen_field(values
->DataDWord1
, 0, 31) |
7284 #define GEN8_MI_STORE_URB_MEM_length 0x00000004
7285 #define GEN8_MI_STORE_URB_MEM_length_bias 0x00000002
7286 #define GEN8_MI_STORE_URB_MEM_header \
7288 .MICommandOpcode = 45, \
7291 struct GEN8_MI_STORE_URB_MEM
{
7292 uint32_t CommandType
;
7293 uint32_t MICommandOpcode
;
7294 uint32_t DwordLength
;
7295 uint32_t URBAddress
;
7296 __gen_address_type MemoryAddress
;
7300 GEN8_MI_STORE_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7301 const struct GEN8_MI_STORE_URB_MEM
* restrict values
)
7303 uint32_t *dw
= (uint32_t * restrict
) dst
;
7306 __gen_field(values
->CommandType
, 29, 31) |
7307 __gen_field(values
->MICommandOpcode
, 23, 28) |
7308 __gen_field(values
->DwordLength
, 0, 7) |
7312 __gen_field(values
->URBAddress
, 2, 14) |
7319 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
7323 #define GEN8_MI_SUSPEND_FLUSH_length 0x00000001
7324 #define GEN8_MI_SUSPEND_FLUSH_length_bias 0x00000001
7325 #define GEN8_MI_SUSPEND_FLUSH_header \
7327 .MICommandOpcode = 11
7329 struct GEN8_MI_SUSPEND_FLUSH
{
7330 uint32_t CommandType
;
7331 uint32_t MICommandOpcode
;
7332 uint32_t SuspendFlush
;
7336 GEN8_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
7337 const struct GEN8_MI_SUSPEND_FLUSH
* restrict values
)
7339 uint32_t *dw
= (uint32_t * restrict
) dst
;
7342 __gen_field(values
->CommandType
, 29, 31) |
7343 __gen_field(values
->MICommandOpcode
, 23, 28) |
7344 __gen_field(values
->SuspendFlush
, 0, 0) |
7349 #define GEN8_MI_TOPOLOGY_FILTER_length 0x00000001
7350 #define GEN8_MI_TOPOLOGY_FILTER_length_bias 0x00000001
7351 #define GEN8_MI_TOPOLOGY_FILTER_header \
7353 .MICommandOpcode = 13
7355 struct GEN8_MI_TOPOLOGY_FILTER
{
7356 uint32_t CommandType
;
7357 uint32_t MICommandOpcode
;
7358 uint32_t TopologyFilterValue
;
7362 GEN8_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
7363 const struct GEN8_MI_TOPOLOGY_FILTER
* restrict values
)
7365 uint32_t *dw
= (uint32_t * restrict
) dst
;
7368 __gen_field(values
->CommandType
, 29, 31) |
7369 __gen_field(values
->MICommandOpcode
, 23, 28) |
7370 __gen_field(values
->TopologyFilterValue
, 0, 5) |
7375 #define GEN8_MI_UPDATE_GTT_length_bias 0x00000002
7376 #define GEN8_MI_UPDATE_GTT_header \
7378 .MICommandOpcode = 35
7380 struct GEN8_MI_UPDATE_GTT
{
7381 uint32_t CommandType
;
7382 uint32_t MICommandOpcode
;
7383 uint32_t DwordLength
;
7384 __gen_address_type EntryAddress
;
7385 /* variable length fields follow */
7389 GEN8_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
7390 const struct GEN8_MI_UPDATE_GTT
* restrict values
)
7392 uint32_t *dw
= (uint32_t * restrict
) dst
;
7395 __gen_field(values
->CommandType
, 29, 31) |
7396 __gen_field(values
->MICommandOpcode
, 23, 28) |
7397 __gen_field(values
->DwordLength
, 0, 9) |
7404 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
7406 /* variable length fields follow */
7409 #define GEN8_MI_URB_ATOMIC_ALLOC_length 0x00000001
7410 #define GEN8_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
7411 #define GEN8_MI_URB_ATOMIC_ALLOC_header \
7413 .MICommandOpcode = 9
7415 struct GEN8_MI_URB_ATOMIC_ALLOC
{
7416 uint32_t CommandType
;
7417 uint32_t MICommandOpcode
;
7418 uint32_t URBAtomicStorageOffset
;
7419 uint32_t URBAtomicStorageSize
;
7423 GEN8_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
7424 const struct GEN8_MI_URB_ATOMIC_ALLOC
* restrict values
)
7426 uint32_t *dw
= (uint32_t * restrict
) dst
;
7429 __gen_field(values
->CommandType
, 29, 31) |
7430 __gen_field(values
->MICommandOpcode
, 23, 28) |
7431 __gen_field(values
->URBAtomicStorageOffset
, 12, 19) |
7432 __gen_field(values
->URBAtomicStorageSize
, 0, 8) |
7437 #define GEN8_MI_URB_CLEAR_length 0x00000002
7438 #define GEN8_MI_URB_CLEAR_length_bias 0x00000002
7439 #define GEN8_MI_URB_CLEAR_header \
7441 .MICommandOpcode = 25, \
7444 struct GEN8_MI_URB_CLEAR
{
7445 uint32_t CommandType
;
7446 uint32_t MICommandOpcode
;
7447 uint32_t DwordLength
;
7448 uint32_t URBClearLength
;
7449 uint32_t URBAddress
;
7453 GEN8_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
7454 const struct GEN8_MI_URB_CLEAR
* restrict values
)
7456 uint32_t *dw
= (uint32_t * restrict
) dst
;
7459 __gen_field(values
->CommandType
, 29, 31) |
7460 __gen_field(values
->MICommandOpcode
, 23, 28) |
7461 __gen_field(values
->DwordLength
, 0, 7) |
7465 __gen_field(values
->URBClearLength
, 16, 29) |
7466 __gen_offset(values
->URBAddress
, 0, 14) |
7471 #define GEN8_MI_USER_INTERRUPT_length 0x00000001
7472 #define GEN8_MI_USER_INTERRUPT_length_bias 0x00000001
7473 #define GEN8_MI_USER_INTERRUPT_header \
7475 .MICommandOpcode = 2
7477 struct GEN8_MI_USER_INTERRUPT
{
7478 uint32_t CommandType
;
7479 uint32_t MICommandOpcode
;
7483 GEN8_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
7484 const struct GEN8_MI_USER_INTERRUPT
* restrict values
)
7486 uint32_t *dw
= (uint32_t * restrict
) dst
;
7489 __gen_field(values
->CommandType
, 29, 31) |
7490 __gen_field(values
->MICommandOpcode
, 23, 28) |
7495 #define GEN8_MI_WAIT_FOR_EVENT_length 0x00000001
7496 #define GEN8_MI_WAIT_FOR_EVENT_length_bias 0x00000001
7497 #define GEN8_MI_WAIT_FOR_EVENT_header \
7499 .MICommandOpcode = 3
7501 struct GEN8_MI_WAIT_FOR_EVENT
{
7502 uint32_t CommandType
;
7503 uint32_t MICommandOpcode
;
7504 uint32_t DisplayPipeCVerticalBlankWaitEnable
;
7505 uint32_t DisplaySpriteCFlipPendingWaitEnable
;
7506 uint32_t DisplayPlaneCFlipPendingWaitEnable
;
7507 uint32_t DisplayPipeCScanLineWaitEnable
;
7508 uint32_t DisplayPipeBVerticalBlankWaitEnable
;
7509 uint32_t DisplaySpriteBFlipPendingWaitEnable
;
7510 uint32_t DisplayPlaneBFlipPendingWaitEnable
;
7511 uint32_t DisplayPipeBScanLineWaitEnable
;
7512 uint32_t DisplayPipeAVerticalBlankWaitEnable
;
7513 uint32_t DisplaySpriteAFlipPendingWaitEnable
;
7514 uint32_t DisplayPlaneAFlipPendingWaitEnable
;
7515 uint32_t DisplayPipeAScanLineWaitEnable
;
7519 GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
7520 const struct GEN8_MI_WAIT_FOR_EVENT
* restrict values
)
7522 uint32_t *dw
= (uint32_t * restrict
) dst
;
7525 __gen_field(values
->CommandType
, 29, 31) |
7526 __gen_field(values
->MICommandOpcode
, 23, 28) |
7527 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
7528 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
7529 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
7530 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
7531 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
7532 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
7533 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
7534 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
7535 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
7536 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
7537 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
7538 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
7543 #define GEN8_PIPE_CONTROL_length 0x00000006
7544 #define GEN8_PIPE_CONTROL_length_bias 0x00000002
7545 #define GEN8_PIPE_CONTROL_header \
7547 .CommandSubType = 3, \
7548 ._3DCommandOpcode = 2, \
7549 ._3DCommandSubOpcode = 0, \
7552 struct GEN8_PIPE_CONTROL
{
7553 uint32_t CommandType
;
7554 uint32_t CommandSubType
;
7555 uint32_t _3DCommandOpcode
;
7556 uint32_t _3DCommandSubOpcode
;
7557 uint32_t DwordLength
;
7560 uint32_t DestinationAddressType
;
7561 #define NoLRIOperation 0
7562 #define MMIOWriteImmediateData 1
7563 uint32_t LRIPostSyncOperation
;
7564 uint32_t StoreDataIndex
;
7565 uint32_t CommandStreamerStallEnable
;
7568 uint32_t GlobalSnapshotCountReset
;
7569 uint32_t TLBInvalidate
;
7570 uint32_t GenericMediaStateClear
;
7572 #define WriteImmediateData 1
7573 #define WritePSDepthCount 2
7574 #define WriteTimestamp 3
7575 uint32_t PostSyncOperation
;
7576 uint32_t DepthStallEnable
;
7577 #define DisableFlush 0
7578 #define EnableFlush 1
7579 uint32_t RenderTargetCacheFlushEnable
;
7580 uint32_t InstructionCacheInvalidateEnable
;
7581 uint32_t TextureCacheInvalidationEnable
;
7582 uint32_t IndirectStatePointersDisable
;
7583 uint32_t NotifyEnable
;
7584 uint32_t PipeControlFlushEnable
;
7585 uint32_t DCFlushEnable
;
7586 uint32_t VFCacheInvalidationEnable
;
7587 uint32_t ConstantCacheInvalidationEnable
;
7588 uint32_t StateCacheInvalidationEnable
;
7589 uint32_t StallAtPixelScoreboard
;
7590 #define FlushDisabled 0
7591 #define FlushEnabled 1
7592 uint32_t DepthCacheFlushEnable
;
7593 __gen_address_type Address
;
7594 __gen_address_type AddressHigh
;
7595 uint32_t ImmediateData
;
7599 GEN8_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7600 const struct GEN8_PIPE_CONTROL
* restrict values
)
7602 uint32_t *dw
= (uint32_t * restrict
) dst
;
7605 __gen_field(values
->CommandType
, 29, 31) |
7606 __gen_field(values
->CommandSubType
, 27, 28) |
7607 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
7608 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
7609 __gen_field(values
->DwordLength
, 0, 7) |
7613 __gen_field(values
->DestinationAddressType
, 24, 24) |
7614 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
7615 __gen_field(values
->StoreDataIndex
, 21, 21) |
7616 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
7617 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
7618 __gen_field(values
->TLBInvalidate
, 18, 18) |
7619 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
7620 __gen_field(values
->PostSyncOperation
, 14, 15) |
7621 __gen_field(values
->DepthStallEnable
, 13, 13) |
7622 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
7623 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
7624 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
7625 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
7626 __gen_field(values
->NotifyEnable
, 8, 8) |
7627 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
7628 __gen_field(values
->DCFlushEnable
, 5, 5) |
7629 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
7630 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
7631 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
7632 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
7633 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
7640 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
7646 __gen_combine_address(data
, &dw
[3], values
->AddressHigh
, dw3
);
7649 __gen_field(values
->ImmediateData
, 0, 63) |
7654 #define GEN8_3DSTATE_CONSTANT_BODY_length 0x0000000a
7656 #define GEN8_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
7658 #define GEN8_GATHER_CONSTANT_ENTRY_length 0x00000001
7660 #define GEN8_VERTEX_BUFFER_STATE_length 0x00000004
7662 #define GEN8_VERTEX_ELEMENT_STATE_length 0x00000002
7664 #define GEN8_SO_DECL_ENTRY_length 0x00000002
7666 #define GEN8_SO_DECL_length 0x00000001
7668 #define GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
7670 #define GEN8_SCISSOR_RECT_length 0x00000002
7672 struct GEN8_SCISSOR_RECT
{
7673 uint32_t ScissorRectangleYMin
;
7674 uint32_t ScissorRectangleXMin
;
7675 uint32_t ScissorRectangleYMax
;
7676 uint32_t ScissorRectangleXMax
;
7680 GEN8_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
7681 const struct GEN8_SCISSOR_RECT
* restrict values
)
7683 uint32_t *dw
= (uint32_t * restrict
) dst
;
7686 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
7687 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
7691 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
7692 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
7697 #define GEN8_SF_CLIP_VIEWPORT_length 0x00000010
7699 struct GEN8_SF_CLIP_VIEWPORT
{
7700 float ViewportMatrixElementm00
;
7701 float ViewportMatrixElementm11
;
7702 float ViewportMatrixElementm22
;
7703 float ViewportMatrixElementm30
;
7704 float ViewportMatrixElementm31
;
7705 float ViewportMatrixElementm32
;
7706 float XMinClipGuardband
;
7707 float XMaxClipGuardband
;
7708 float YMinClipGuardband
;
7709 float YMaxClipGuardband
;
7717 GEN8_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7718 const struct GEN8_SF_CLIP_VIEWPORT
* restrict values
)
7720 uint32_t *dw
= (uint32_t * restrict
) dst
;
7723 __gen_float(values
->ViewportMatrixElementm00
) |
7727 __gen_float(values
->ViewportMatrixElementm11
) |
7731 __gen_float(values
->ViewportMatrixElementm22
) |
7735 __gen_float(values
->ViewportMatrixElementm30
) |
7739 __gen_float(values
->ViewportMatrixElementm31
) |
7743 __gen_float(values
->ViewportMatrixElementm32
) |
7753 __gen_float(values
->XMinClipGuardband
) |
7757 __gen_float(values
->XMaxClipGuardband
) |
7761 __gen_float(values
->YMinClipGuardband
) |
7765 __gen_float(values
->YMaxClipGuardband
) |
7769 __gen_float(values
->XMinViewPort
) |
7773 __gen_float(values
->XMaxViewPort
) |
7777 __gen_float(values
->YMinViewPort
) |
7781 __gen_float(values
->YMaxViewPort
) |
7786 #define GEN8_BLEND_STATE_length 0x00000011
7788 struct GEN8_BLEND_STATE_ENTRY
{
7789 uint32_t LogicOpEnable
;
7790 uint32_t LogicOpFunction
;
7791 uint32_t PreBlendSourceOnlyClampEnable
;
7792 #define COLORCLAMP_UNORM 0
7793 #define COLORCLAMP_SNORM 1
7794 #define COLORCLAMP_RTFORMAT 2
7795 uint32_t ColorClampRange
;
7796 uint32_t PreBlendColorClampEnable
;
7797 uint32_t PostBlendColorClampEnable
;
7798 uint32_t ColorBufferBlendEnable
;
7799 uint32_t SourceBlendFactor
;
7800 uint32_t DestinationBlendFactor
;
7801 uint32_t ColorBlendFunction
;
7802 uint32_t SourceAlphaBlendFactor
;
7803 uint32_t DestinationAlphaBlendFactor
;
7804 uint32_t AlphaBlendFunction
;
7805 uint32_t WriteDisableAlpha
;
7806 uint32_t WriteDisableRed
;
7807 uint32_t WriteDisableGreen
;
7808 uint32_t WriteDisableBlue
;
7812 GEN8_BLEND_STATE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
7813 const struct GEN8_BLEND_STATE_ENTRY
* restrict values
)
7815 uint32_t *dw
= (uint32_t * restrict
) dst
;
7818 __gen_field(values
->LogicOpEnable
, 63, 63) |
7819 __gen_field(values
->LogicOpFunction
, 59, 62) |
7820 __gen_field(values
->PreBlendSourceOnlyClampEnable
, 36, 36) |
7821 __gen_field(values
->ColorClampRange
, 34, 35) |
7822 __gen_field(values
->PreBlendColorClampEnable
, 33, 33) |
7823 __gen_field(values
->PostBlendColorClampEnable
, 32, 32) |
7824 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
7825 __gen_field(values
->SourceBlendFactor
, 26, 30) |
7826 __gen_field(values
->DestinationBlendFactor
, 21, 25) |
7827 __gen_field(values
->ColorBlendFunction
, 18, 20) |
7828 __gen_field(values
->SourceAlphaBlendFactor
, 13, 17) |
7829 __gen_field(values
->DestinationAlphaBlendFactor
, 8, 12) |
7830 __gen_field(values
->AlphaBlendFunction
, 5, 7) |
7831 __gen_field(values
->WriteDisableAlpha
, 3, 3) |
7832 __gen_field(values
->WriteDisableRed
, 2, 2) |
7833 __gen_field(values
->WriteDisableGreen
, 1, 1) |
7834 __gen_field(values
->WriteDisableBlue
, 0, 0) |
7839 struct GEN8_BLEND_STATE
{
7840 uint32_t AlphaToCoverageEnable
;
7841 uint32_t IndependentAlphaBlendEnable
;
7842 uint32_t AlphaToOneEnable
;
7843 uint32_t AlphaToCoverageDitherEnable
;
7844 uint32_t AlphaTestEnable
;
7845 uint32_t AlphaTestFunction
;
7846 uint32_t ColorDitherEnable
;
7847 uint32_t XDitherOffset
;
7848 uint32_t YDitherOffset
;
7849 struct GEN8_BLEND_STATE_ENTRY Entry
;
7853 GEN8_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7854 const struct GEN8_BLEND_STATE
* restrict values
)
7856 uint32_t *dw
= (uint32_t * restrict
) dst
;
7859 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
7860 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
7861 __gen_field(values
->AlphaToOneEnable
, 29, 29) |
7862 __gen_field(values
->AlphaToCoverageDitherEnable
, 28, 28) |
7863 __gen_field(values
->AlphaTestEnable
, 27, 27) |
7864 __gen_field(values
->AlphaTestFunction
, 24, 26) |
7865 __gen_field(values
->ColorDitherEnable
, 23, 23) |
7866 __gen_field(values
->XDitherOffset
, 21, 22) |
7867 __gen_field(values
->YDitherOffset
, 19, 20) |
7870 GEN8_BLEND_STATE_ENTRY_pack(data
, &dw
[1], &values
->Entry
);
7873 #define GEN8_BLEND_STATE_ENTRY_length 0x00000001
7875 #define GEN8_CC_VIEWPORT_length 0x00000002
7877 struct GEN8_CC_VIEWPORT
{
7883 GEN8_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7884 const struct GEN8_CC_VIEWPORT
* restrict values
)
7886 uint32_t *dw
= (uint32_t * restrict
) dst
;
7889 __gen_float(values
->MinimumDepth
) |
7893 __gen_float(values
->MaximumDepth
) |
7898 #define GEN8_COLOR_CALC_STATE_length 0x00000006
7900 struct GEN8_COLOR_CALC_STATE
{
7901 uint32_t StencilReferenceValue
;
7902 uint32_t BackFaceStencilReferenceValue
;
7904 #define NotCancelled 1
7905 uint32_t RoundDisableFunctionDisable
;
7906 #define ALPHATEST_UNORM8 0
7907 #define ALPHATEST_FLOAT32 1
7908 uint32_t AlphaTestFormat
;
7909 uint32_t AlphaReferenceValueAsUNORM8
;
7910 float AlphaReferenceValueAsFLOAT32
;
7911 float BlendConstantColorRed
;
7912 float BlendConstantColorGreen
;
7913 float BlendConstantColorBlue
;
7914 float BlendConstantColorAlpha
;
7918 GEN8_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7919 const struct GEN8_COLOR_CALC_STATE
* restrict values
)
7921 uint32_t *dw
= (uint32_t * restrict
) dst
;
7924 __gen_field(values
->StencilReferenceValue
, 24, 31) |
7925 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
7926 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
7927 __gen_field(values
->AlphaTestFormat
, 0, 0) |
7931 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
7932 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
7936 __gen_float(values
->BlendConstantColorRed
) |
7940 __gen_float(values
->BlendConstantColorGreen
) |
7944 __gen_float(values
->BlendConstantColorBlue
) |
7948 __gen_float(values
->BlendConstantColorAlpha
) |
7953 #define GEN8_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
7955 #define GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001
7957 struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
{
7958 #define UseCacheabilityControlsfrompagetableUCwithFenceifcoherentcycle 0
7959 #define UncacheableUCnoncacheable 1
7960 #define WritethroughWT 2
7961 #define WritebackWB 3
7962 uint32_t MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
;
7965 #define LLCeLLCAllowed 2
7966 #define L3LLCeLLCAllowed 3
7967 uint32_t TargetCacheTC
;
7968 uint32_t EncryptedData
;
7969 #define PoorChance 3
7970 #define NormalChance 2
7971 #define BetterChance 1
7972 #define BestChance 0
7973 uint32_t AgeforQUADLRUAGE
;
7977 GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_pack(__gen_user_data
*data
, void * restrict dst
,
7978 const struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
* restrict values
)
7980 uint32_t *dw
= (uint32_t * restrict
) dst
;
7983 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
, 5, 6) |
7984 __gen_field(values
->TargetCacheTC
, 3, 4) |
7985 __gen_field(values
->EncryptedData
, 2, 2) |
7986 __gen_field(values
->AgeforQUADLRUAGE
, 0, 1) |
7991 #define GEN8_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
7993 struct GEN8_INTERFACE_DESCRIPTOR_DATA
{
7994 uint32_t KernelStartPointer
;
7995 uint32_t KernelStartPointerHigh
;
7997 #define SetByKernel 1
7998 uint32_t DenormMode
;
8001 uint32_t SingleProgramFlow
;
8002 #define NormalPriority 0
8003 #define HighPriority 1
8004 uint32_t ThreadPriority
;
8007 uint32_t FloatingPointMode
;
8008 uint32_t IllegalOpcodeExceptionEnable
;
8009 uint32_t MaskStackExceptionEnable
;
8010 uint32_t SoftwareExceptionEnable
;
8011 uint32_t SamplerStatePointer
;
8012 #define Nosamplersused 0
8013 #define Between1and4samplersused 1
8014 #define Between5and8samplersused 2
8015 #define Between9and12samplersused 3
8016 #define Between13and16samplersused 4
8017 uint32_t SamplerCount
;
8018 uint32_t BindingTablePointer
;
8019 uint32_t BindingTableEntryCount
;
8020 uint32_t ConstantIndirectURBEntryReadLength
;
8021 uint32_t ConstantURBEntryReadOffset
;
8026 uint32_t RoundingMode
;
8027 uint32_t BarrierEnable
;
8031 #define Encodes16k 4
8032 #define Encodes32k 8
8033 #define Encodes64k 16
8034 uint32_t SharedLocalMemorySize
;
8035 uint32_t NumberofThreadsinGPGPUThreadGroup
;
8036 uint32_t CrossThreadConstantDataReadLength
;
8040 GEN8_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
8041 const struct GEN8_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
8043 uint32_t *dw
= (uint32_t * restrict
) dst
;
8046 __gen_offset(values
->KernelStartPointer
, 6, 31) |
8050 __gen_offset(values
->KernelStartPointerHigh
, 0, 15) |
8054 __gen_field(values
->DenormMode
, 19, 19) |
8055 __gen_field(values
->SingleProgramFlow
, 18, 18) |
8056 __gen_field(values
->ThreadPriority
, 17, 17) |
8057 __gen_field(values
->FloatingPointMode
, 16, 16) |
8058 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
8059 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
8060 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
8064 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
8065 __gen_field(values
->SamplerCount
, 2, 4) |
8069 __gen_offset(values
->BindingTablePointer
, 5, 15) |
8070 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
8074 __gen_field(values
->ConstantIndirectURBEntryReadLength
, 16, 31) |
8075 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
8079 __gen_field(values
->RoundingMode
, 22, 23) |
8080 __gen_field(values
->BarrierEnable
, 21, 21) |
8081 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
8082 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 9) |
8086 __gen_field(values
->CrossThreadConstantDataReadLength
, 0, 7) |
8091 #define GEN8_PALETTE_ENTRY_length 0x00000001
8093 #define GEN8_RENDER_SURFACE_STATE_length 0x00000010
8095 struct GEN8_RENDER_SURFACE_STATE
{
8096 #define SURFTYPE_1D 0
8097 #define SURFTYPE_2D 1
8098 #define SURFTYPE_3D 2
8099 #define SURFTYPE_CUBE 3
8100 #define SURFTYPE_BUFFER 4
8101 #define SURFTYPE_STRBUF 5
8102 #define SURFTYPE_NULL 7
8103 uint32_t SurfaceType
;
8104 uint32_t SurfaceArray
;
8105 uint32_t SurfaceFormat
;
8109 uint32_t SurfaceVerticalAlignment
;
8113 uint32_t SurfaceHorizontalAlignment
;
8119 uint32_t VerticalLineStride
;
8120 uint32_t VerticalLineStrideOffset
;
8121 uint32_t SamplerL2BypassModeDisable
;
8122 #define WriteOnlyCache 0
8123 #define ReadWriteCache 1
8124 uint32_t RenderCacheReadWriteMode
;
8125 #define NORMAL_MODE 0
8126 #define PROGRESSIVE_FRAME 2
8127 #define INTERLACED_FRAME 3
8128 uint32_t MediaBoundaryPixelMode
;
8129 uint32_t CubeFaceEnablePositiveZ
;
8130 uint32_t CubeFaceEnableNegativeZ
;
8131 uint32_t CubeFaceEnablePositiveY
;
8132 uint32_t CubeFaceEnableNegativeY
;
8133 uint32_t CubeFaceEnablePositiveX
;
8134 uint32_t CubeFaceEnableNegativeX
;
8135 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
8136 uint32_t BaseMipLevel
;
8137 uint32_t SurfaceQPitch
;
8141 uint32_t SurfacePitch
;
8145 uint32_t RenderTargetAndSampleUnormRotation
;
8146 uint32_t MinimumArrayElement
;
8147 uint32_t RenderTargetViewExtent
;
8149 #define DEPTH_STENCIL 1
8150 uint32_t MultisampledSurfaceStorageFormat
;
8151 #define MULTISAMPLECOUNT_1 0
8152 #define MULTISAMPLECOUNT_2 1
8153 #define MULTISAMPLECOUNT_4 2
8154 #define MULTISAMPLECOUNT_8 3
8155 uint32_t NumberofMultisamples
;
8156 uint32_t MultisamplePositionPaletteIndex
;
8159 uint32_t EWADisableForCube
;
8160 #define GPUcoherent 0
8161 #define IAcoherent 1
8162 uint32_t CoherencyType
;
8163 uint32_t SurfaceMinLOD
;
8164 uint32_t MIPCountLOD
;
8165 uint32_t AuxiliarySurfaceQPitch
;
8166 uint32_t AuxiliarySurfacePitch
;
8169 #define AUX_APPEND 2
8171 uint32_t AuxiliarySurfaceMode
;
8172 uint32_t SeparateUVPlaneEnable
;
8173 uint32_t XOffsetforUorUVPlane
;
8174 uint32_t YOffsetforUorUVPlane
;
8175 uint32_t RedClearColor
;
8176 uint32_t GreenClearColor
;
8177 uint32_t BlueClearColor
;
8178 uint32_t AlphaClearColor
;
8179 uint32_t ShaderChannelSelectRed
;
8180 uint32_t ShaderChannelSelectGreen
;
8181 uint32_t ShaderChannelSelectBlue
;
8182 uint32_t ShaderChannelSelectAlpha
;
8183 uint32_t ResourceMinLOD
;
8184 __gen_address_type SurfaceBaseAddress
;
8185 uint32_t XOffsetforVPlane
;
8186 uint32_t YOffsetforVPlane
;
8187 uint32_t AuxiliaryTableIndexforMediaCompressedSurface
;
8188 __gen_address_type AuxiliarySurfaceBaseAddress
;
8192 GEN8_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8193 const struct GEN8_RENDER_SURFACE_STATE
* restrict values
)
8195 uint32_t *dw
= (uint32_t * restrict
) dst
;
8198 __gen_field(values
->SurfaceType
, 29, 31) |
8199 __gen_field(values
->SurfaceArray
, 28, 28) |
8200 __gen_field(values
->SurfaceFormat
, 18, 26) |
8201 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
8202 __gen_field(values
->SurfaceHorizontalAlignment
, 14, 15) |
8203 __gen_field(values
->TileMode
, 12, 13) |
8204 __gen_field(values
->VerticalLineStride
, 11, 11) |
8205 __gen_field(values
->VerticalLineStrideOffset
, 10, 10) |
8206 __gen_field(values
->SamplerL2BypassModeDisable
, 9, 9) |
8207 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
8208 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
8209 __gen_field(values
->CubeFaceEnablePositiveZ
, 0, 0) |
8210 __gen_field(values
->CubeFaceEnableNegativeZ
, 1, 1) |
8211 __gen_field(values
->CubeFaceEnablePositiveY
, 2, 2) |
8212 __gen_field(values
->CubeFaceEnableNegativeY
, 3, 3) |
8213 __gen_field(values
->CubeFaceEnablePositiveX
, 4, 4) |
8214 __gen_field(values
->CubeFaceEnableNegativeX
, 5, 5) |
8217 uint32_t dw_MemoryObjectControlState
;
8218 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
8220 /* Struct MemoryObjectControlState (24..30): */
8221 __gen_field(dw_MemoryObjectControlState
, 24, 30) |
8222 __gen_field(values
->BaseMipLevel
, 19, 23) |
8223 __gen_field(values
->SurfaceQPitch
, 0, 14) |
8227 __gen_field(values
->Height
, 16, 29) |
8228 __gen_field(values
->Width
, 0, 13) |
8232 __gen_field(values
->Depth
, 21, 31) |
8233 __gen_field(values
->SurfacePitch
, 0, 17) |
8237 __gen_field(values
->RenderTargetAndSampleUnormRotation
, 29, 30) |
8238 __gen_field(values
->MinimumArrayElement
, 18, 28) |
8239 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
8240 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
8241 __gen_field(values
->NumberofMultisamples
, 3, 5) |
8242 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
8246 __gen_offset(values
->XOffset
, 25, 31) |
8247 __gen_offset(values
->YOffset
, 21, 23) |
8248 __gen_field(values
->EWADisableForCube
, 20, 20) |
8249 __gen_field(values
->CoherencyType
, 14, 14) |
8250 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
8251 __gen_field(values
->MIPCountLOD
, 0, 3) |
8255 __gen_field(values
->AuxiliarySurfaceQPitch
, 16, 30) |
8256 __gen_field(values
->AuxiliarySurfacePitch
, 3, 11) |
8257 __gen_field(values
->AuxiliarySurfaceMode
, 0, 2) |
8258 __gen_field(values
->SeparateUVPlaneEnable
, 31, 31) |
8259 __gen_field(values
->XOffsetforUorUVPlane
, 16, 29) |
8260 __gen_field(values
->YOffsetforUorUVPlane
, 0, 13) |
8264 __gen_field(values
->RedClearColor
, 31, 31) |
8265 __gen_field(values
->GreenClearColor
, 30, 30) |
8266 __gen_field(values
->BlueClearColor
, 29, 29) |
8267 __gen_field(values
->AlphaClearColor
, 28, 28) |
8268 __gen_field(values
->ShaderChannelSelectRed
, 25, 27) |
8269 __gen_field(values
->ShaderChannelSelectGreen
, 22, 24) |
8270 __gen_field(values
->ShaderChannelSelectBlue
, 19, 21) |
8271 __gen_field(values
->ShaderChannelSelectAlpha
, 16, 18) |
8272 __gen_field(values
->ResourceMinLOD
, 0, 11) |
8279 __gen_combine_address(data
, &dw
[8], values
->SurfaceBaseAddress
, dw8
);
8282 __gen_field(values
->XOffsetforVPlane
, 48, 61) |
8283 __gen_field(values
->YOffsetforVPlane
, 32, 45) |
8284 __gen_field(values
->AuxiliaryTableIndexforMediaCompressedSurface
, 21, 31) |
8288 __gen_combine_address(data
, &dw
[10], values
->AuxiliarySurfaceBaseAddress
, dw10
);
8304 #define GEN8_SAMPLER_STATE_length 0x00000004
8306 struct GEN8_SAMPLER_STATE
{
8307 uint32_t SamplerDisable
;
8310 uint32_t TextureBorderColorMode
;
8311 #define CLAMP_NONE 0
8313 uint32_t LODPreClampMode
;
8314 uint32_t BaseMipLevel
;
8315 #define MIPFILTER_NONE 0
8316 #define MIPFILTER_NEAREST 1
8317 #define MIPFILTER_LINEAR 3
8318 uint32_t MipModeFilter
;
8319 #define MAPFILTER_NEAREST 0
8320 #define MAPFILTER_LINEAR 1
8321 #define MAPFILTER_ANISOTROPIC 2
8322 #define MAPFILTER_MONO 6
8323 uint32_t MagModeFilter
;
8324 #define MAPFILTER_NEAREST 0
8325 #define MAPFILTER_LINEAR 1
8326 #define MAPFILTER_ANISOTROPIC 2
8327 #define MAPFILTER_MONO 6
8328 uint32_t MinModeFilter
;
8329 uint32_t TextureLODBias
;
8331 #define EWAApproximation 1
8332 uint32_t AnisotropicAlgorithm
;
8335 uint32_t ChromaKeyEnable
;
8336 uint32_t ChromaKeyIndex
;
8337 #define KEYFILTER_KILL_ON_ANY_MATCH 0
8338 #define KEYFILTER_REPLACE_BLACK 1
8339 uint32_t ChromaKeyMode
;
8340 #define PREFILTEROPALWAYS 0
8341 #define PREFILTEROPNEVER 1
8342 #define PREFILTEROPLESS 2
8343 #define PREFILTEROPEQUAL 3
8344 #define PREFILTEROPLEQUAL 4
8345 #define PREFILTEROPGREATER 5
8346 #define PREFILTEROPNOTEQUAL 6
8347 #define PREFILTEROPGEQUAL 7
8348 uint32_t ShadowFunction
;
8349 #define PROGRAMMED 0
8351 uint32_t CubeSurfaceControlMode
;
8352 uint32_t IndirectStatePointer
;
8355 uint32_t LODClampMagnificationMode
;
8364 uint32_t MaximumAnisotropy
;
8365 uint32_t RAddressMinFilterRoundingEnable
;
8366 uint32_t RAddressMagFilterRoundingEnable
;
8367 uint32_t VAddressMinFilterRoundingEnable
;
8368 uint32_t VAddressMagFilterRoundingEnable
;
8369 uint32_t UAddressMinFilterRoundingEnable
;
8370 uint32_t UAddressMagFilterRoundingEnable
;
8375 uint32_t TrilinearFilterQuality
;
8376 uint32_t NonnormalizedCoordinateEnable
;
8377 uint32_t TCXAddressControlMode
;
8378 uint32_t TCYAddressControlMode
;
8379 uint32_t TCZAddressControlMode
;
8383 GEN8_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8384 const struct GEN8_SAMPLER_STATE
* restrict values
)
8386 uint32_t *dw
= (uint32_t * restrict
) dst
;
8389 __gen_field(values
->SamplerDisable
, 31, 31) |
8390 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
8391 __gen_field(values
->LODPreClampMode
, 27, 28) |
8392 __gen_field(values
->BaseMipLevel
, 22, 26) |
8393 __gen_field(values
->MipModeFilter
, 20, 21) |
8394 __gen_field(values
->MagModeFilter
, 17, 19) |
8395 __gen_field(values
->MinModeFilter
, 14, 16) |
8396 __gen_field(values
->TextureLODBias
, 1, 13) |
8397 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
8401 __gen_field(values
->MinLOD
, 20, 31) |
8402 __gen_field(values
->MaxLOD
, 8, 19) |
8403 __gen_field(values
->ChromaKeyEnable
, 7, 7) |
8404 __gen_field(values
->ChromaKeyIndex
, 5, 6) |
8405 __gen_field(values
->ChromaKeyMode
, 4, 4) |
8406 __gen_field(values
->ShadowFunction
, 1, 3) |
8407 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
8411 __gen_field(values
->IndirectStatePointer
, 6, 23) |
8412 __gen_field(values
->LODClampMagnificationMode
, 0, 0) |
8416 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
8417 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
8418 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
8419 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
8420 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
8421 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
8422 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
8423 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
8424 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
8425 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
8426 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
8427 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
8432 /* Enum 3D_Prim_Topo_Type */
8433 #define _3DPRIM_POINTLIST 1
8434 #define _3DPRIM_LINELIST 2
8435 #define _3DPRIM_LINESTRIP 3
8436 #define _3DPRIM_TRILIST 4
8437 #define _3DPRIM_TRISTRIP 5
8438 #define _3DPRIM_TRIFAN 6
8439 #define _3DPRIM_QUADLIST 7
8440 #define _3DPRIM_QUADSTRIP 8
8441 #define _3DPRIM_LINELIST_ADJ 9
8442 #define _3DPRIM_LISTSTRIP_ADJ 10
8443 #define _3DPRIM_TRILIST_ADJ 11
8444 #define _3DPRIM_TRISTRIP_ADJ 12
8445 #define _3DPRIM_TRISTRIP_REVERSE 13
8446 #define _3DPRIM_POLYGON 14
8447 #define _3DPRIM_RECTLIST 15
8448 #define _3DPRIM_LINELOOP 16
8449 #define _3DPRIM_POINTLIST_BF 17
8450 #define _3DPRIM_LINESTRIP_CONT 18
8451 #define _3DPRIM_LINESTRIP_BF 19
8452 #define _3DPRIM_LINESTRIP_CONT_BF 20
8453 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
8454 #define _3DPRIM_PATCHLIST_1 32
8455 #define _3DPRIM_PATCHLIST_2 33
8456 #define _3DPRIM_PATCHLIST_3 34
8457 #define _3DPRIM_PATCHLIST_4 35
8458 #define _3DPRIM_PATCHLIST_5 36
8459 #define _3DPRIM_PATCHLIST_6 37
8460 #define _3DPRIM_PATCHLIST_7 38
8461 #define _3DPRIM_PATCHLIST_8 39
8462 #define _3DPRIM_PATCHLIST_9 40
8463 #define _3DPRIM_PATCHLIST_10 41
8464 #define _3DPRIM_PATCHLIST_11 42
8465 #define _3DPRIM_PATCHLIST_12 43
8466 #define _3DPRIM_PATCHLIST_13 44
8467 #define _3DPRIM_PATCHLIST_14 45
8468 #define _3DPRIM_PATCHLIST_15 46
8469 #define _3DPRIM_PATCHLIST_16 47
8470 #define _3DPRIM_PATCHLIST_17 48
8471 #define _3DPRIM_PATCHLIST_18 49
8472 #define _3DPRIM_PATCHLIST_19 50
8473 #define _3DPRIM_PATCHLIST_20 51
8474 #define _3DPRIM_PATCHLIST_21 52
8475 #define _3DPRIM_PATCHLIST_22 53
8476 #define _3DPRIM_PATCHLIST_23 54
8477 #define _3DPRIM_PATCHLIST_24 55
8478 #define _3DPRIM_PATCHLIST_25 56
8479 #define _3DPRIM_PATCHLIST_26 57
8480 #define _3DPRIM_PATCHLIST_27 58
8481 #define _3DPRIM_PATCHLIST_28 59
8482 #define _3DPRIM_PATCHLIST_29 60
8483 #define _3DPRIM_PATCHLIST_30 61
8484 #define _3DPRIM_PATCHLIST_31 62
8485 #define _3DPRIM_PATCHLIST_32 63
8487 /* Enum 3D_Vertex_Component_Control */
8488 #define VFCOMP_NOSTORE 0
8489 #define VFCOMP_STORE_SRC 1
8490 #define VFCOMP_STORE_0 2
8491 #define VFCOMP_STORE_1_FP 3
8492 #define VFCOMP_STORE_1_INT 4
8493 #define VFCOMP_STORE_PID 7
8495 /* Enum WRAP_SHORTEST_ENABLE */
8512 /* Enum 3D_Stencil_Operation */
8513 #define STENCILOP_KEEP 0
8514 #define STENCILOP_ZERO 1
8515 #define STENCILOP_REPLACE 2
8516 #define STENCILOP_INCRSAT 3
8517 #define STENCILOP_DECRSAT 4
8518 #define STENCILOP_INCR 5
8519 #define STENCILOP_DECR 6
8520 #define STENCILOP_INVERT 7
8522 /* Enum 3D_Color_Buffer_Blend_Factor */
8523 #define BLENDFACTOR_ONE 1
8524 #define BLENDFACTOR_SRC_COLOR 2
8525 #define BLENDFACTOR_SRC_ALPHA 3
8526 #define BLENDFACTOR_DST_ALPHA 4
8527 #define BLENDFACTOR_DST_COLOR 5
8528 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
8529 #define BLENDFACTOR_CONST_COLOR 7
8530 #define BLENDFACTOR_CONST_ALPHA 8
8531 #define BLENDFACTOR_SRC1_COLOR 9
8532 #define BLENDFACTOR_SRC1_ALPHA 10
8533 #define BLENDFACTOR_ZERO 17
8534 #define BLENDFACTOR_INV_SRC_COLOR 18
8535 #define BLENDFACTOR_INV_SRC_ALPHA 19
8536 #define BLENDFACTOR_INV_DST_ALPHA 20
8537 #define BLENDFACTOR_INV_DST_COLOR 21
8538 #define BLENDFACTOR_INV_CONST_COLOR 23
8539 #define BLENDFACTOR_INV_CONST_ALPHA 24
8540 #define BLENDFACTOR_INV_SRC1_COLOR 25
8541 #define BLENDFACTOR_INV_SRC1_ALPHA 26
8543 /* Enum 3D_Color_Buffer_Blend_Function */
8544 #define BLENDFUNCTION_ADD 0
8545 #define BLENDFUNCTION_SUBTRACT 1
8546 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
8547 #define BLENDFUNCTION_MIN 3
8548 #define BLENDFUNCTION_MAX 4
8550 /* Enum 3D_Compare_Function */
8551 #define COMPAREFUNCTION_ALWAYS 0
8552 #define COMPAREFUNCTION_NEVER 1
8553 #define COMPAREFUNCTION_LESS 2
8554 #define COMPAREFUNCTION_EQUAL 3
8555 #define COMPAREFUNCTION_LEQUAL 4
8556 #define COMPAREFUNCTION_GREATER 5
8557 #define COMPAREFUNCTION_NOTEQUAL 6
8558 #define COMPAREFUNCTION_GEQUAL 7
8560 /* Enum 3D_Logic_Op_Function */
8561 #define LOGICOP_CLEAR 0
8562 #define LOGICOP_NOR 1
8563 #define LOGICOP_AND_INVERTED 2
8564 #define LOGICOP_COPY_INVERTED 3
8565 #define LOGICOP_AND_REVERSE 4
8566 #define LOGICOP_INVERT 5
8567 #define LOGICOP_XOR 6
8568 #define LOGICOP_NAND 7
8569 #define LOGICOP_AND 8
8570 #define LOGICOP_EQUIV 9
8571 #define LOGICOP_NOOP 10
8572 #define LOGICOP_OR_INVERTED 11
8573 #define LOGICOP_COPY 12
8574 #define LOGICOP_OR_REVERSE 13
8575 #define LOGICOP_OR 14
8576 #define LOGICOP_SET 15
8578 /* Enum SURFACE_FORMAT */
8579 #define R32G32B32A32_FLOAT 0
8580 #define R32G32B32A32_SINT 1
8581 #define R32G32B32A32_UINT 2
8582 #define R32G32B32A32_UNORM 3
8583 #define R32G32B32A32_SNORM 4
8584 #define R64G64_FLOAT 5
8585 #define R32G32B32X32_FLOAT 6
8586 #define R32G32B32A32_SSCALED 7
8587 #define R32G32B32A32_USCALED 8
8588 #define R32G32B32A32_SFIXED 32
8589 #define R64G64_PASSTHRU 33
8590 #define R32G32B32_FLOAT 64
8591 #define R32G32B32_SINT 65
8592 #define R32G32B32_UINT 66
8593 #define R32G32B32_UNORM 67
8594 #define R32G32B32_SNORM 68
8595 #define R32G32B32_SSCALED 69
8596 #define R32G32B32_USCALED 70
8597 #define R32G32B32_SFIXED 80
8598 #define R16G16B16A16_UNORM 128
8599 #define R16G16B16A16_SNORM 129
8600 #define R16G16B16A16_SINT 130
8601 #define R16G16B16A16_UINT 131
8602 #define R16G16B16A16_FLOAT 132
8603 #define R32G32_FLOAT 133
8604 #define R32G32_SINT 134
8605 #define R32G32_UINT 135
8606 #define R32_FLOAT_X8X24_TYPELESS 136
8607 #define X32_TYPELESS_G8X24_UINT 137
8608 #define L32A32_FLOAT 138
8609 #define R32G32_UNORM 139
8610 #define R32G32_SNORM 140
8611 #define R64_FLOAT 141
8612 #define R16G16B16X16_UNORM 142
8613 #define R16G16B16X16_FLOAT 143
8614 #define A32X32_FLOAT 144
8615 #define L32X32_FLOAT 145
8616 #define I32X32_FLOAT 146
8617 #define R16G16B16A16_SSCALED 147
8618 #define R16G16B16A16_USCALED 148
8619 #define R32G32_SSCALED 149
8620 #define R32G32_USCALED 150
8621 #define R32G32_SFIXED 160
8622 #define R64_PASSTHRU 161
8623 #define B8G8R8A8_UNORM 192
8624 #define B8G8R8A8_UNORM_SRGB 193
8625 #define R10G10B10A2_UNORM 194
8626 #define R10G10B10A2_UNORM_SRGB 195
8627 #define R10G10B10A2_UINT 196
8628 #define R10G10B10_SNORM_A2_UNORM 197
8629 #define R8G8B8A8_UNORM 199
8630 #define R8G8B8A8_UNORM_SRGB 200
8631 #define R8G8B8A8_SNORM 201
8632 #define R8G8B8A8_SINT 202
8633 #define R8G8B8A8_UINT 203
8634 #define R16G16_UNORM 204
8635 #define R16G16_SNORM 205
8636 #define R16G16_SINT 206
8637 #define R16G16_UINT 207
8638 #define R16G16_FLOAT 208
8639 #define B10G10R10A2_UNORM 209
8640 #define B10G10R10A2_UNORM_SRGB 210
8641 #define R11G11B10_FLOAT 211
8642 #define R32_SINT 214
8643 #define R32_UINT 215
8644 #define R32_FLOAT 216
8645 #define R24_UNORM_X8_TYPELESS 217
8646 #define X24_TYPELESS_G8_UINT 218
8647 #define L32_UNORM 221
8648 #define A32_UNORM 222
8649 #define L16A16_UNORM 223
8650 #define I24X8_UNORM 224
8651 #define L24X8_UNORM 225
8652 #define A24X8_UNORM 226
8653 #define I32_FLOAT 227
8654 #define L32_FLOAT 228
8655 #define A32_FLOAT 229
8656 #define X8B8_UNORM_G8R8_SNORM 230
8657 #define A8X8_UNORM_G8R8_SNORM 231
8658 #define B8X8_UNORM_G8R8_SNORM 232
8659 #define B8G8R8X8_UNORM 233
8660 #define B8G8R8X8_UNORM_SRGB 234
8661 #define R8G8B8X8_UNORM 235
8662 #define R8G8B8X8_UNORM_SRGB 236
8663 #define R9G9B9E5_SHAREDEXP 237
8664 #define B10G10R10X2_UNORM 238
8665 #define L16A16_FLOAT 240
8666 #define R32_UNORM 241
8667 #define R32_SNORM 242
8668 #define R10G10B10X2_USCALED 243
8669 #define R8G8B8A8_SSCALED 244
8670 #define R8G8B8A8_USCALED 245
8671 #define R16G16_SSCALED 246
8672 #define R16G16_USCALED 247
8673 #define R32_SSCALED 248
8674 #define R32_USCALED 249
8675 #define B5G6R5_UNORM 256
8676 #define B5G6R5_UNORM_SRGB 257
8677 #define B5G5R5A1_UNORM 258
8678 #define B5G5R5A1_UNORM_SRGB 259
8679 #define B4G4R4A4_UNORM 260
8680 #define B4G4R4A4_UNORM_SRGB 261
8681 #define R8G8_UNORM 262
8682 #define R8G8_SNORM 263
8683 #define R8G8_SINT 264
8684 #define R8G8_UINT 265
8685 #define R16_UNORM 266
8686 #define R16_SNORM 267
8687 #define R16_SINT 268
8688 #define R16_UINT 269
8689 #define R16_FLOAT 270
8690 #define A8P8_UNORM_PALETTE0 271
8691 #define A8P8_UNORM_PALETTE1 272
8692 #define I16_UNORM 273
8693 #define L16_UNORM 274
8694 #define A16_UNORM 275
8695 #define L8A8_UNORM 276
8696 #define I16_FLOAT 277
8697 #define L16_FLOAT 278
8698 #define A16_FLOAT 279
8699 #define L8A8_UNORM_SRGB 280
8700 #define R5G5_SNORM_B6_UNORM 281
8701 #define B5G5R5X1_UNORM 282
8702 #define B5G5R5X1_UNORM_SRGB 283
8703 #define R8G8_SSCALED 284
8704 #define R8G8_USCALED 285
8705 #define R16_SSCALED 286
8706 #define R16_USCALED 287
8707 #define P8A8_UNORM_PALETTE0 290
8708 #define P8A8_UNORM_PALETTE1 291
8709 #define A1B5G5R5_UNORM 292
8710 #define A4B4G4R4_UNORM 293
8711 #define L8A8_UINT 294
8712 #define L8A8_SINT 295
8713 #define R8_UNORM 320
8714 #define R8_SNORM 321
8717 #define A8_UNORM 324
8718 #define I8_UNORM 325
8719 #define L8_UNORM 326
8720 #define P4A4_UNORM_PALETTE0 327
8721 #define A4P4_UNORM_PALETTE0 328
8722 #define R8_SSCALED 329
8723 #define R8_USCALED 330
8724 #define P8_UNORM_PALETTE0 331
8725 #define L8_UNORM_SRGB 332
8726 #define P8_UNORM_PALETTE1 333
8727 #define P4A4_UNORM_PALETTE1 334
8728 #define A4P4_UNORM_PALETTE1 335
8729 #define Y8_UNORM 336
8734 #define DXT1_RGB_SRGB 384
8735 #define R1_UNORM 385
8736 #define YCRCB_NORMAL 386
8737 #define YCRCB_SWAPUVY 387
8738 #define P2_UNORM_PALETTE0 388
8739 #define P2_UNORM_PALETTE1 389
8740 #define BC1_UNORM 390
8741 #define BC2_UNORM 391
8742 #define BC3_UNORM 392
8743 #define BC4_UNORM 393
8744 #define BC5_UNORM 394
8745 #define BC1_UNORM_SRGB 395
8746 #define BC2_UNORM_SRGB 396
8747 #define BC3_UNORM_SRGB 397
8749 #define YCRCB_SWAPUV 399
8750 #define YCRCB_SWAPY 400
8751 #define DXT1_RGB 401
8753 #define R8G8B8_UNORM 403
8754 #define R8G8B8_SNORM 404
8755 #define R8G8B8_SSCALED 405
8756 #define R8G8B8_USCALED 406
8757 #define R64G64B64A64_FLOAT 407
8758 #define R64G64B64_FLOAT 408
8759 #define BC4_SNORM 409
8760 #define BC5_SNORM 410
8761 #define R16G16B16_FLOAT 411
8762 #define R16G16B16_UNORM 412
8763 #define R16G16B16_SNORM 413
8764 #define R16G16B16_SSCALED 414
8765 #define R16G16B16_USCALED 415
8766 #define BC6H_SF16 417
8767 #define BC7_UNORM 418
8768 #define BC7_UNORM_SRGB 419
8769 #define BC6H_UF16 420
8770 #define PLANAR_420_8 421
8771 #define R8G8B8_UNORM_SRGB 424
8772 #define ETC1_RGB8 425
8773 #define ETC2_RGB8 426
8775 #define EAC_RG11 428
8776 #define EAC_SIGNED_R11 429
8777 #define EAC_SIGNED_RG11 430
8778 #define ETC2_SRGB8 431
8779 #define R16G16B16_UINT 432
8780 #define R16G16B16_SINT 433
8781 #define R32_SFIXED 434
8782 #define R10G10B10A2_SNORM 435
8783 #define R10G10B10A2_USCALED 436
8784 #define R10G10B10A2_SSCALED 437
8785 #define R10G10B10A2_SINT 438
8786 #define B10G10R10A2_SNORM 439
8787 #define B10G10R10A2_USCALED 440
8788 #define B10G10R10A2_SSCALED 441
8789 #define B10G10R10A2_UINT 442
8790 #define B10G10R10A2_SINT 443
8791 #define R64G64B64A64_PASSTHRU 444
8792 #define R64G64B64_PASSTHRU 445
8793 #define ETC2_RGB8_PTA 448
8794 #define ETC2_SRGB8_PTA 449
8795 #define ETC2_EAC_RGBA8 450
8796 #define ETC2_EAC_SRGB8_A8 451
8797 #define R8G8B8_UINT 456
8798 #define R8G8B8_SINT 457
8801 /* Enum Shader Channel Select */
8809 /* Enum Clear Color */
8813 /* Enum Texture Coordinate Mode */
8815 #define TCM_MIRROR 1
8818 #define TCM_CLAMP_BORDER 4
8819 #define TCM_MIRROR_ONCE 5
8820 #define TCM_HALF_BORDER 6