2 * Copyright © 2015 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
25 /* Instructions, enums and structures for BDW.
27 * This file has been generated, do not hand edit.
35 #ifndef __gen_validate_value
36 #define __gen_validate_value(x)
39 #ifndef __gen_field_functions
40 #define __gen_field_functions
47 static inline uint64_t
48 __gen_field(uint64_t v
, uint32_t start
, uint32_t end
)
50 __gen_validate_value(v
);
52 if (end
- start
+ 1 < 64)
53 assert(v
< 1ul << (end
- start
+ 1));
59 static inline uint64_t
60 __gen_offset(uint64_t v
, uint32_t start
, uint32_t end
)
62 __gen_validate_value(v
);
64 uint64_t mask
= (~0ul >> (64 - (end
- start
+ 1))) << start
;
66 assert((v
& ~mask
) == 0);
72 static inline uint32_t
75 __gen_validate_value(v
);
76 return ((union __gen_value
) { .f
= (v
) }).dw
;
79 #ifndef __gen_address_type
80 #error #define __gen_address_type before including this file
83 #ifndef __gen_user_data
84 #error #define __gen_combine_address before including this file
89 #define GEN8_3DSTATE_URB_VS_length 0x00000002
90 #define GEN8_3DSTATE_URB_VS_length_bias 0x00000002
91 #define GEN8_3DSTATE_URB_VS_header \
93 .CommandSubType = 3, \
94 ._3DCommandOpcode = 0, \
95 ._3DCommandSubOpcode = 48, \
98 struct GEN8_3DSTATE_URB_VS
{
100 uint32_t CommandSubType
;
101 uint32_t _3DCommandOpcode
;
102 uint32_t _3DCommandSubOpcode
;
103 uint32_t DwordLength
;
104 uint32_t VSURBStartingAddress
;
105 uint32_t VSURBEntryAllocationSize
;
106 uint32_t VSNumberofURBEntries
;
110 GEN8_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
111 const struct GEN8_3DSTATE_URB_VS
* restrict values
)
113 uint32_t *dw
= (uint32_t * restrict
) dst
;
116 __gen_field(values
->CommandType
, 29, 31) |
117 __gen_field(values
->CommandSubType
, 27, 28) |
118 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
119 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
120 __gen_field(values
->DwordLength
, 0, 7) |
124 __gen_field(values
->VSURBStartingAddress
, 25, 31) |
125 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
126 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
131 #define GEN8_3DSTATE_VS_length 0x00000009
132 #define GEN8_3DSTATE_VS_length_bias 0x00000002
133 #define GEN8_3DSTATE_VS_header \
135 .CommandSubType = 3, \
136 ._3DCommandOpcode = 0, \
137 ._3DCommandSubOpcode = 16, \
140 struct GEN8_3DSTATE_VS
{
141 uint32_t CommandType
;
142 uint32_t CommandSubType
;
143 uint32_t _3DCommandOpcode
;
144 uint32_t _3DCommandSubOpcode
;
145 uint32_t DwordLength
;
146 uint64_t KernelStartPointer
;
149 uint32_t SingleVertexDispatch
;
152 uint32_t VectorMaskEnable
;
154 #define _14Samplers 1
155 #define _58Samplers 2
156 #define _912Samplers 3
157 #define _1316Samplers 4
158 uint32_t SamplerCount
;
159 uint32_t BindingTableEntryCount
;
162 uint32_t ThreadDispatchPriority
;
165 uint32_t FloatingPointMode
;
166 uint32_t IllegalOpcodeExceptionEnable
;
167 uint32_t AccessesUAV
;
168 uint32_t SoftwareExceptionEnable
;
169 uint64_t ScratchSpaceBasePointer
;
170 uint32_t PerThreadScratchSpace
;
171 uint32_t DispatchGRFStartRegisterForURBData
;
172 uint32_t VertexURBEntryReadLength
;
173 uint32_t VertexURBEntryReadOffset
;
174 uint32_t MaximumNumberofThreads
;
175 uint32_t StatisticsEnable
;
176 uint32_t SIMD8DispatchEnable
;
177 uint32_t VertexCacheDisable
;
178 uint32_t FunctionEnable
;
179 uint32_t VertexURBEntryOutputReadOffset
;
180 uint32_t VertexURBEntryOutputLength
;
181 uint32_t UserClipDistanceClipTestEnableBitmask
;
182 uint32_t UserClipDistanceCullTestEnableBitmask
;
186 GEN8_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
187 const struct GEN8_3DSTATE_VS
* restrict values
)
189 uint32_t *dw
= (uint32_t * restrict
) dst
;
192 __gen_field(values
->CommandType
, 29, 31) |
193 __gen_field(values
->CommandSubType
, 27, 28) |
194 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
195 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
196 __gen_field(values
->DwordLength
, 0, 7) |
200 __gen_offset(values
->KernelStartPointer
, 6, 63) |
207 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
208 __gen_field(values
->VectorMaskEnable
, 30, 30) |
209 __gen_field(values
->SamplerCount
, 27, 29) |
210 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
211 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
212 __gen_field(values
->FloatingPointMode
, 16, 16) |
213 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
214 __gen_field(values
->AccessesUAV
, 12, 12) |
215 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
219 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
220 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
227 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
228 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
229 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
233 __gen_field(values
->MaximumNumberofThreads
, 23, 31) |
234 __gen_field(values
->StatisticsEnable
, 10, 10) |
235 __gen_field(values
->SIMD8DispatchEnable
, 2, 2) |
236 __gen_field(values
->VertexCacheDisable
, 1, 1) |
237 __gen_field(values
->FunctionEnable
, 0, 0) |
241 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
242 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
243 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
244 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
249 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length 0x00000003
250 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002
251 #define GEN8_GPGPU_CSR_BASE_ADDRESS_header \
253 .CommandSubType = 0, \
254 ._3DCommandOpcode = 1, \
255 ._3DCommandSubOpcode = 4, \
258 struct GEN8_GPGPU_CSR_BASE_ADDRESS
{
259 uint32_t CommandType
;
260 uint32_t CommandSubType
;
261 uint32_t _3DCommandOpcode
;
262 uint32_t _3DCommandSubOpcode
;
263 uint32_t DwordLength
;
264 __gen_address_type GPGPUCSRBaseAddressHigh
;
268 GEN8_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
269 const struct GEN8_GPGPU_CSR_BASE_ADDRESS
* restrict values
)
271 uint32_t *dw
= (uint32_t * restrict
) dst
;
274 __gen_field(values
->CommandType
, 29, 31) |
275 __gen_field(values
->CommandSubType
, 27, 28) |
276 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
277 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
278 __gen_field(values
->DwordLength
, 0, 7) |
285 __gen_combine_address(data
, &dw
[1], values
->GPGPUCSRBaseAddressHigh
, dw1
);
292 #define GEN8_MI_ATOMIC_length 0x00000003
293 #define GEN8_MI_ATOMIC_length_bias 0x00000002
294 #define GEN8_MI_ATOMIC_header \
296 .MICommandOpcode = 47
298 struct GEN8_MI_ATOMIC
{
299 uint32_t CommandType
;
300 uint32_t MICommandOpcode
;
301 #define PerProcessGraphicsAddress 0
302 #define GlobalGraphicsAddress 1
304 uint32_t PostSyncOperation
;
312 uint32_t ReturnDataControl
;
313 uint32_t ATOMICOPCODE
;
314 uint32_t DwordLength
;
315 __gen_address_type MemoryAddress
;
316 uint32_t MemoryAddressHigh
;
317 uint32_t Operand1DataDword0
;
318 uint32_t Operand2DataDword0
;
319 uint32_t Operand1DataDword1
;
320 uint32_t Operand2DataDword1
;
321 uint32_t Operand1DataDword2
;
322 uint32_t Operand2DataDword2
;
323 uint32_t Operand1DataDword3
;
324 uint32_t Operand2DataDword3
;
328 GEN8_MI_ATOMIC_pack(__gen_user_data
*data
, void * restrict dst
,
329 const struct GEN8_MI_ATOMIC
* restrict values
)
331 uint32_t *dw
= (uint32_t * restrict
) dst
;
334 __gen_field(values
->CommandType
, 29, 31) |
335 __gen_field(values
->MICommandOpcode
, 23, 28) |
336 __gen_field(values
->MemoryType
, 22, 22) |
337 __gen_field(values
->PostSyncOperation
, 21, 21) |
338 __gen_field(values
->DataSize
, 19, 20) |
339 __gen_field(values
->InlineData
, 18, 18) |
340 __gen_field(values
->CSSTALL
, 17, 17) |
341 __gen_field(values
->ReturnDataControl
, 16, 16) |
342 __gen_field(values
->ATOMICOPCODE
, 8, 15) |
343 __gen_field(values
->DwordLength
, 0, 7) |
350 __gen_combine_address(data
, &dw
[1], values
->MemoryAddress
, dw1
);
353 __gen_field(values
->MemoryAddressHigh
, 0, 15) |
357 __gen_field(values
->Operand1DataDword0
, 0, 31) |
361 __gen_field(values
->Operand2DataDword0
, 0, 31) |
365 __gen_field(values
->Operand1DataDword1
, 0, 31) |
369 __gen_field(values
->Operand2DataDword1
, 0, 31) |
373 __gen_field(values
->Operand1DataDword2
, 0, 31) |
377 __gen_field(values
->Operand2DataDword2
, 0, 31) |
381 __gen_field(values
->Operand1DataDword3
, 0, 31) |
385 __gen_field(values
->Operand2DataDword3
, 0, 31) |
390 #define GEN8_MI_LOAD_REGISTER_REG_length 0x00000003
391 #define GEN8_MI_LOAD_REGISTER_REG_length_bias 0x00000002
392 #define GEN8_MI_LOAD_REGISTER_REG_header \
394 .MICommandOpcode = 42, \
397 struct GEN8_MI_LOAD_REGISTER_REG
{
398 uint32_t CommandType
;
399 uint32_t MICommandOpcode
;
400 uint32_t DwordLength
;
401 uint32_t SourceRegisterAddress
;
402 uint32_t DestinationRegisterAddress
;
406 GEN8_MI_LOAD_REGISTER_REG_pack(__gen_user_data
*data
, void * restrict dst
,
407 const struct GEN8_MI_LOAD_REGISTER_REG
* restrict values
)
409 uint32_t *dw
= (uint32_t * restrict
) dst
;
412 __gen_field(values
->CommandType
, 29, 31) |
413 __gen_field(values
->MICommandOpcode
, 23, 28) |
414 __gen_field(values
->DwordLength
, 0, 7) |
418 __gen_offset(values
->SourceRegisterAddress
, 2, 22) |
422 __gen_offset(values
->DestinationRegisterAddress
, 2, 22) |
427 #define GEN8_MI_SEMAPHORE_SIGNAL_length 0x00000002
428 #define GEN8_MI_SEMAPHORE_SIGNAL_length_bias 0x00000002
429 #define GEN8_MI_SEMAPHORE_SIGNAL_header \
431 .MICommandOpcode = 27, \
434 struct GEN8_MI_SEMAPHORE_SIGNAL
{
435 uint32_t CommandType
;
436 uint32_t MICommandOpcode
;
437 uint32_t PostSyncOperation
;
443 uint32_t TargetEngineSelect
;
444 uint32_t DwordLength
;
445 uint32_t TargetContextID
;
449 GEN8_MI_SEMAPHORE_SIGNAL_pack(__gen_user_data
*data
, void * restrict dst
,
450 const struct GEN8_MI_SEMAPHORE_SIGNAL
* restrict values
)
452 uint32_t *dw
= (uint32_t * restrict
) dst
;
455 __gen_field(values
->CommandType
, 29, 31) |
456 __gen_field(values
->MICommandOpcode
, 23, 28) |
457 __gen_field(values
->PostSyncOperation
, 21, 21) |
458 __gen_field(values
->TargetEngineSelect
, 15, 17) |
459 __gen_field(values
->DwordLength
, 0, 7) |
463 __gen_field(values
->TargetContextID
, 0, 31) |
468 #define GEN8_MI_SEMAPHORE_WAIT_length 0x00000004
469 #define GEN8_MI_SEMAPHORE_WAIT_length_bias 0x00000002
470 #define GEN8_MI_SEMAPHORE_WAIT_header \
472 .MICommandOpcode = 28, \
475 struct GEN8_MI_SEMAPHORE_WAIT
{
476 uint32_t CommandType
;
477 uint32_t MICommandOpcode
;
478 #define PerProcessGraphicsAddress 0
479 #define GlobalGraphicsAddress 1
481 #define PollingMode 1
484 #define SAD_GREATER_THAN_SDD 0
485 #define SAD_GREATER_THAN_OR_EQUAL_SDD 1
486 #define SAD_LESS_THAN_SDD 2
487 #define SAD_LESS_THAN_OR_EQUAL_SDD 3
488 #define SAD_EQUAL_SDD 4
489 #define SAD_NOT_EQUAL_SDD 5
490 uint32_t CompareOperation
;
491 uint32_t DwordLength
;
492 uint32_t SemaphoreDataDword
;
493 __gen_address_type SemaphoreAddress
;
497 GEN8_MI_SEMAPHORE_WAIT_pack(__gen_user_data
*data
, void * restrict dst
,
498 const struct GEN8_MI_SEMAPHORE_WAIT
* restrict values
)
500 uint32_t *dw
= (uint32_t * restrict
) dst
;
503 __gen_field(values
->CommandType
, 29, 31) |
504 __gen_field(values
->MICommandOpcode
, 23, 28) |
505 __gen_field(values
->MemoryType
, 22, 22) |
506 __gen_field(values
->WaitMode
, 15, 15) |
507 __gen_field(values
->CompareOperation
, 12, 14) |
508 __gen_field(values
->DwordLength
, 0, 7) |
512 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
519 __gen_combine_address(data
, &dw
[2], values
->SemaphoreAddress
, dw2
);
526 #define GEN8_MI_STORE_REGISTER_MEM_length 0x00000004
527 #define GEN8_MI_STORE_REGISTER_MEM_length_bias 0x00000002
528 #define GEN8_MI_STORE_REGISTER_MEM_header \
530 .MICommandOpcode = 36, \
533 struct GEN8_MI_STORE_REGISTER_MEM
{
534 uint32_t CommandType
;
535 uint32_t MICommandOpcode
;
536 uint32_t UseGlobalGTT
;
537 uint32_t PredicateEnable
;
538 uint32_t DwordLength
;
539 uint32_t RegisterAddress
;
540 __gen_address_type MemoryAddress
;
544 GEN8_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
545 const struct GEN8_MI_STORE_REGISTER_MEM
* restrict values
)
547 uint32_t *dw
= (uint32_t * restrict
) dst
;
550 __gen_field(values
->CommandType
, 29, 31) |
551 __gen_field(values
->MICommandOpcode
, 23, 28) |
552 __gen_field(values
->UseGlobalGTT
, 22, 22) |
553 __gen_field(values
->PredicateEnable
, 21, 21) |
554 __gen_field(values
->DwordLength
, 0, 7) |
558 __gen_offset(values
->RegisterAddress
, 2, 22) |
565 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
572 #define GEN8_PIPELINE_SELECT_length 0x00000001
573 #define GEN8_PIPELINE_SELECT_length_bias 0x00000001
574 #define GEN8_PIPELINE_SELECT_header \
576 .CommandSubType = 1, \
577 ._3DCommandOpcode = 1, \
578 ._3DCommandSubOpcode = 4
580 struct GEN8_PIPELINE_SELECT
{
581 uint32_t CommandType
;
582 uint32_t CommandSubType
;
583 uint32_t _3DCommandOpcode
;
584 uint32_t _3DCommandSubOpcode
;
588 uint32_t PipelineSelection
;
592 GEN8_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
593 const struct GEN8_PIPELINE_SELECT
* restrict values
)
595 uint32_t *dw
= (uint32_t * restrict
) dst
;
598 __gen_field(values
->CommandType
, 29, 31) |
599 __gen_field(values
->CommandSubType
, 27, 28) |
600 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
601 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
602 __gen_field(values
->PipelineSelection
, 0, 1) |
607 #define GEN8_STATE_BASE_ADDRESS_length 0x00000010
608 #define GEN8_STATE_BASE_ADDRESS_length_bias 0x00000002
609 #define GEN8_STATE_BASE_ADDRESS_header \
611 .CommandSubType = 0, \
612 ._3DCommandOpcode = 1, \
613 ._3DCommandSubOpcode = 1, \
616 struct GEN8_MEMORY_OBJECT_CONTROL_STATE
{
617 #define UCwithFenceifcoherentcycle 0
618 #define UCUncacheable 1
621 uint32_t MemoryTypeLLCeLLCCacheabilityControl
;
622 #define eLLCOnlywheneDRAMispresentelsegetsallocatedinLLC 0
624 #define LLCeLLCAllowed 2
625 #define L3DefertoPATforLLCeLLCselection 3
626 uint32_t TargetCache
;
627 uint32_t AgeforQUADLRU
;
631 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
632 const struct GEN8_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
634 uint32_t *dw
= (uint32_t * restrict
) dst
;
637 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControl
, 5, 6) |
638 __gen_field(values
->TargetCache
, 3, 4) |
639 __gen_field(values
->AgeforQUADLRU
, 0, 1) |
644 struct GEN8_STATE_BASE_ADDRESS
{
645 uint32_t CommandType
;
646 uint32_t CommandSubType
;
647 uint32_t _3DCommandOpcode
;
648 uint32_t _3DCommandSubOpcode
;
649 uint32_t DwordLength
;
650 __gen_address_type GeneralStateBaseAddress
;
651 struct GEN8_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
652 uint32_t GeneralStateBaseAddressModifyEnable
;
653 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
654 __gen_address_type SurfaceStateBaseAddress
;
655 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
656 uint32_t SurfaceStateBaseAddressModifyEnable
;
657 __gen_address_type DynamicStateBaseAddress
;
658 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
659 uint32_t DynamicStateBaseAddressModifyEnable
;
660 __gen_address_type IndirectObjectBaseAddress
;
661 struct GEN8_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
662 uint32_t IndirectObjectBaseAddressModifyEnable
;
663 __gen_address_type InstructionBaseAddress
;
664 struct GEN8_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
665 uint32_t InstructionBaseAddressModifyEnable
;
666 uint32_t GeneralStateBufferSize
;
667 uint32_t GeneralStateBufferSizeModifyEnable
;
668 uint32_t DynamicStateBufferSize
;
669 uint32_t DynamicStateBufferSizeModifyEnable
;
670 uint32_t IndirectObjectBufferSize
;
671 uint32_t IndirectObjectBufferSizeModifyEnable
;
672 uint32_t InstructionBufferSize
;
673 uint32_t InstructionBuffersizeModifyEnable
;
677 GEN8_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
678 const struct GEN8_STATE_BASE_ADDRESS
* restrict values
)
680 uint32_t *dw
= (uint32_t * restrict
) dst
;
683 __gen_field(values
->CommandType
, 29, 31) |
684 __gen_field(values
->CommandSubType
, 27, 28) |
685 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
686 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
687 __gen_field(values
->DwordLength
, 0, 7) |
690 uint32_t dw_GeneralStateMemoryObjectControlState
;
691 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
693 __gen_field(dw_GeneralStateMemoryObjectControlState
, 4, 10) |
694 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
698 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
703 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
704 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
706 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 16, 22) |
709 uint32_t dw_SurfaceStateMemoryObjectControlState
;
710 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
712 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 4, 10) |
713 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
717 __gen_combine_address(data
, &dw
[4], values
->SurfaceStateBaseAddress
, dw4
);
722 uint32_t dw_DynamicStateMemoryObjectControlState
;
723 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
725 __gen_field(dw_DynamicStateMemoryObjectControlState
, 4, 10) |
726 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
730 __gen_combine_address(data
, &dw
[6], values
->DynamicStateBaseAddress
, dw6
);
735 uint32_t dw_IndirectObjectMemoryObjectControlState
;
736 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
738 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 4, 10) |
739 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
743 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectBaseAddress
, dw8
);
748 uint32_t dw_InstructionMemoryObjectControlState
;
749 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
751 __gen_field(dw_InstructionMemoryObjectControlState
, 4, 10) |
752 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
756 __gen_combine_address(data
, &dw
[10], values
->InstructionBaseAddress
, dw10
);
762 __gen_field(values
->GeneralStateBufferSize
, 12, 31) |
763 __gen_field(values
->GeneralStateBufferSizeModifyEnable
, 0, 0) |
767 __gen_field(values
->DynamicStateBufferSize
, 12, 31) |
768 __gen_field(values
->DynamicStateBufferSizeModifyEnable
, 0, 0) |
772 __gen_field(values
->IndirectObjectBufferSize
, 12, 31) |
773 __gen_field(values
->IndirectObjectBufferSizeModifyEnable
, 0, 0) |
777 __gen_field(values
->InstructionBufferSize
, 12, 31) |
778 __gen_field(values
->InstructionBuffersizeModifyEnable
, 0, 0) |
783 #define GEN8_STATE_PREFETCH_length 0x00000002
784 #define GEN8_STATE_PREFETCH_length_bias 0x00000002
785 #define GEN8_STATE_PREFETCH_header \
787 .CommandSubType = 0, \
788 ._3DCommandOpcode = 0, \
789 ._3DCommandSubOpcode = 3, \
792 struct GEN8_STATE_PREFETCH
{
793 uint32_t CommandType
;
794 uint32_t CommandSubType
;
795 uint32_t _3DCommandOpcode
;
796 uint32_t _3DCommandSubOpcode
;
797 uint32_t DwordLength
;
798 __gen_address_type PrefetchPointer
;
799 uint32_t PrefetchCount
;
803 GEN8_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
804 const struct GEN8_STATE_PREFETCH
* restrict values
)
806 uint32_t *dw
= (uint32_t * restrict
) dst
;
809 __gen_field(values
->CommandType
, 29, 31) |
810 __gen_field(values
->CommandSubType
, 27, 28) |
811 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
812 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
813 __gen_field(values
->DwordLength
, 0, 7) |
817 __gen_field(values
->PrefetchCount
, 0, 2) |
821 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
825 #define GEN8_STATE_SIP_length 0x00000003
826 #define GEN8_STATE_SIP_length_bias 0x00000002
827 #define GEN8_STATE_SIP_header \
829 .CommandSubType = 0, \
830 ._3DCommandOpcode = 1, \
831 ._3DCommandSubOpcode = 2, \
834 struct GEN8_STATE_SIP
{
835 uint32_t CommandType
;
836 uint32_t CommandSubType
;
837 uint32_t _3DCommandOpcode
;
838 uint32_t _3DCommandSubOpcode
;
839 uint32_t DwordLength
;
840 uint64_t SystemInstructionPointer
;
844 GEN8_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
845 const struct GEN8_STATE_SIP
* restrict values
)
847 uint32_t *dw
= (uint32_t * restrict
) dst
;
850 __gen_field(values
->CommandType
, 29, 31) |
851 __gen_field(values
->CommandSubType
, 27, 28) |
852 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
853 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
854 __gen_field(values
->DwordLength
, 0, 7) |
858 __gen_offset(values
->SystemInstructionPointer
, 4, 63) |
866 #define GEN8_SWTESS_BASE_ADDRESS_length 0x00000002
867 #define GEN8_SWTESS_BASE_ADDRESS_length_bias 0x00000002
868 #define GEN8_SWTESS_BASE_ADDRESS_header \
870 .CommandSubType = 0, \
871 ._3DCommandOpcode = 1, \
872 ._3DCommandSubOpcode = 3, \
875 struct GEN8_SWTESS_BASE_ADDRESS
{
876 uint32_t CommandType
;
877 uint32_t CommandSubType
;
878 uint32_t _3DCommandOpcode
;
879 uint32_t _3DCommandSubOpcode
;
880 uint32_t DwordLength
;
881 __gen_address_type SWTessellationBaseAddress
;
882 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
883 __gen_address_type SWTessellationBaseAddressHigh
;
887 GEN8_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
888 const struct GEN8_SWTESS_BASE_ADDRESS
* restrict values
)
890 uint32_t *dw
= (uint32_t * restrict
) dst
;
893 __gen_field(values
->CommandType
, 29, 31) |
894 __gen_field(values
->CommandSubType
, 27, 28) |
895 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
896 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
897 __gen_field(values
->DwordLength
, 0, 7) |
900 uint32_t dw_SWTessellationMemoryObjectControlState
;
901 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
903 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
907 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
913 __gen_combine_address(data
, &dw
[2], values
->SWTessellationBaseAddressHigh
, dw2
);
917 #define GEN8_3DPRIMITIVE_length 0x00000007
918 #define GEN8_3DPRIMITIVE_length_bias 0x00000002
919 #define GEN8_3DPRIMITIVE_header \
921 .CommandSubType = 3, \
922 ._3DCommandOpcode = 3, \
923 ._3DCommandSubOpcode = 0, \
926 struct GEN8_3DPRIMITIVE
{
927 uint32_t CommandType
;
928 uint32_t CommandSubType
;
929 uint32_t _3DCommandOpcode
;
930 uint32_t _3DCommandSubOpcode
;
931 uint32_t IndirectParameterEnable
;
932 uint32_t UAVCoherencyRequired
;
933 uint32_t PredicateEnable
;
934 uint32_t DwordLength
;
935 uint32_t EndOffsetEnable
;
938 uint32_t VertexAccessType
;
939 uint32_t PrimitiveTopologyType
;
940 uint32_t VertexCountPerInstance
;
941 uint32_t StartVertexLocation
;
942 uint32_t InstanceCount
;
943 uint32_t StartInstanceLocation
;
944 uint32_t BaseVertexLocation
;
948 GEN8_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
949 const struct GEN8_3DPRIMITIVE
* restrict values
)
951 uint32_t *dw
= (uint32_t * restrict
) dst
;
954 __gen_field(values
->CommandType
, 29, 31) |
955 __gen_field(values
->CommandSubType
, 27, 28) |
956 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
957 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
958 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
959 __gen_field(values
->UAVCoherencyRequired
, 9, 9) |
960 __gen_field(values
->PredicateEnable
, 8, 8) |
961 __gen_field(values
->DwordLength
, 0, 7) |
965 __gen_field(values
->EndOffsetEnable
, 9, 9) |
966 __gen_field(values
->VertexAccessType
, 8, 8) |
967 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
971 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
975 __gen_field(values
->StartVertexLocation
, 0, 31) |
979 __gen_field(values
->InstanceCount
, 0, 31) |
983 __gen_field(values
->StartInstanceLocation
, 0, 31) |
987 __gen_field(values
->BaseVertexLocation
, 0, 31) |
992 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
993 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
994 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_header \
996 .CommandSubType = 3, \
997 ._3DCommandOpcode = 1, \
998 ._3DCommandSubOpcode = 10, \
1001 struct GEN8_3DSTATE_AA_LINE_PARAMETERS
{
1002 uint32_t CommandType
;
1003 uint32_t CommandSubType
;
1004 uint32_t _3DCommandOpcode
;
1005 uint32_t _3DCommandSubOpcode
;
1006 uint32_t DwordLength
;
1007 float AAPointCoverageBias
;
1008 float AACoverageBias
;
1009 float AAPointCoverageSlope
;
1010 float AACoverageSlope
;
1011 float AAPointCoverageEndCapBias
;
1012 float AACoverageEndCapBias
;
1013 float AAPointCoverageEndCapSlope
;
1014 float AACoverageEndCapSlope
;
1018 GEN8_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
1019 const struct GEN8_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
1021 uint32_t *dw
= (uint32_t * restrict
) dst
;
1024 __gen_field(values
->CommandType
, 29, 31) |
1025 __gen_field(values
->CommandSubType
, 27, 28) |
1026 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1027 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1028 __gen_field(values
->DwordLength
, 0, 7) |
1032 __gen_field(values
->AAPointCoverageBias
* (1 << 8), 24, 31) |
1033 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
1034 __gen_field(values
->AAPointCoverageSlope
* (1 << 8), 8, 15) |
1035 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
1039 __gen_field(values
->AAPointCoverageEndCapBias
* (1 << 8), 24, 31) |
1040 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
1041 __gen_field(values
->AAPointCoverageEndCapSlope
* (1 << 8), 8, 15) |
1042 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
1047 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_length_bias 0x00000002
1048 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_header\
1050 .CommandSubType = 3, \
1051 ._3DCommandOpcode = 0, \
1052 ._3DCommandSubOpcode = 70
1054 struct GEN8_BINDING_TABLE_EDIT_ENTRY
{
1055 uint32_t BindingTableIndex
;
1056 uint32_t SurfaceStatePointer
;
1060 GEN8_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
1061 const struct GEN8_BINDING_TABLE_EDIT_ENTRY
* restrict values
)
1063 uint32_t *dw
= (uint32_t * restrict
) dst
;
1066 __gen_field(values
->BindingTableIndex
, 16, 23) |
1067 __gen_offset(values
->SurfaceStatePointer
, 0, 15) |
1072 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS
{
1073 uint32_t CommandType
;
1074 uint32_t CommandSubType
;
1075 uint32_t _3DCommandOpcode
;
1076 uint32_t _3DCommandSubOpcode
;
1077 uint32_t DwordLength
;
1078 uint32_t BindingTableBlockClear
;
1082 uint32_t BindingTableEditTarget
;
1083 /* variable length fields follow */
1087 GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1088 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS
* restrict values
)
1090 uint32_t *dw
= (uint32_t * restrict
) dst
;
1093 __gen_field(values
->CommandType
, 29, 31) |
1094 __gen_field(values
->CommandSubType
, 27, 28) |
1095 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1096 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1097 __gen_field(values
->DwordLength
, 0, 8) |
1101 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1102 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1105 /* variable length fields follow */
1108 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_length_bias 0x00000002
1109 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_header\
1111 .CommandSubType = 3, \
1112 ._3DCommandOpcode = 0, \
1113 ._3DCommandSubOpcode = 68
1115 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS
{
1116 uint32_t CommandType
;
1117 uint32_t CommandSubType
;
1118 uint32_t _3DCommandOpcode
;
1119 uint32_t _3DCommandSubOpcode
;
1120 uint32_t DwordLength
;
1121 uint32_t BindingTableBlockClear
;
1125 uint32_t BindingTableEditTarget
;
1126 /* variable length fields follow */
1130 GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1131 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS
* restrict values
)
1133 uint32_t *dw
= (uint32_t * restrict
) dst
;
1136 __gen_field(values
->CommandType
, 29, 31) |
1137 __gen_field(values
->CommandSubType
, 27, 28) |
1138 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1139 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1140 __gen_field(values
->DwordLength
, 0, 8) |
1144 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1145 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1148 /* variable length fields follow */
1151 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_length_bias 0x00000002
1152 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_header\
1154 .CommandSubType = 3, \
1155 ._3DCommandOpcode = 0, \
1156 ._3DCommandSubOpcode = 69
1158 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS
{
1159 uint32_t CommandType
;
1160 uint32_t CommandSubType
;
1161 uint32_t _3DCommandOpcode
;
1162 uint32_t _3DCommandSubOpcode
;
1163 uint32_t DwordLength
;
1164 uint32_t BindingTableBlockClear
;
1168 uint32_t BindingTableEditTarget
;
1169 /* variable length fields follow */
1173 GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1174 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS
* restrict values
)
1176 uint32_t *dw
= (uint32_t * restrict
) dst
;
1179 __gen_field(values
->CommandType
, 29, 31) |
1180 __gen_field(values
->CommandSubType
, 27, 28) |
1181 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1182 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1183 __gen_field(values
->DwordLength
, 0, 8) |
1187 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1188 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1191 /* variable length fields follow */
1194 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_length_bias 0x00000002
1195 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_header\
1197 .CommandSubType = 3, \
1198 ._3DCommandOpcode = 0, \
1199 ._3DCommandSubOpcode = 71
1201 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS
{
1202 uint32_t CommandType
;
1203 uint32_t CommandSubType
;
1204 uint32_t _3DCommandOpcode
;
1205 uint32_t _3DCommandSubOpcode
;
1206 uint32_t DwordLength
;
1207 uint32_t BindingTableBlockClear
;
1211 uint32_t BindingTableEditTarget
;
1212 /* variable length fields follow */
1216 GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1217 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS
* restrict values
)
1219 uint32_t *dw
= (uint32_t * restrict
) dst
;
1222 __gen_field(values
->CommandType
, 29, 31) |
1223 __gen_field(values
->CommandSubType
, 27, 28) |
1224 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1225 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1226 __gen_field(values
->DwordLength
, 0, 8) |
1230 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1231 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1234 /* variable length fields follow */
1237 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_length_bias 0x00000002
1238 #define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_header\
1240 .CommandSubType = 3, \
1241 ._3DCommandOpcode = 0, \
1242 ._3DCommandSubOpcode = 67
1244 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS
{
1245 uint32_t CommandType
;
1246 uint32_t CommandSubType
;
1247 uint32_t _3DCommandOpcode
;
1248 uint32_t _3DCommandSubOpcode
;
1249 uint32_t DwordLength
;
1250 uint32_t BindingTableBlockClear
;
1254 uint32_t BindingTableEditTarget
;
1255 /* variable length fields follow */
1259 GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1260 const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS
* restrict values
)
1262 uint32_t *dw
= (uint32_t * restrict
) dst
;
1265 __gen_field(values
->CommandType
, 29, 31) |
1266 __gen_field(values
->CommandSubType
, 27, 28) |
1267 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1268 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1269 __gen_field(values
->DwordLength
, 0, 8) |
1273 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
1274 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
1277 /* variable length fields follow */
1280 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
1281 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
1282 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
1284 .CommandSubType = 3, \
1285 ._3DCommandOpcode = 0, \
1286 ._3DCommandSubOpcode = 40, \
1289 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS
{
1290 uint32_t CommandType
;
1291 uint32_t CommandSubType
;
1292 uint32_t _3DCommandOpcode
;
1293 uint32_t _3DCommandSubOpcode
;
1294 uint32_t DwordLength
;
1295 uint32_t PointertoDSBindingTable
;
1299 GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1300 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
1302 uint32_t *dw
= (uint32_t * restrict
) dst
;
1305 __gen_field(values
->CommandType
, 29, 31) |
1306 __gen_field(values
->CommandSubType
, 27, 28) |
1307 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1308 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1309 __gen_field(values
->DwordLength
, 0, 7) |
1313 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
1318 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
1319 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
1320 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
1322 .CommandSubType = 3, \
1323 ._3DCommandOpcode = 0, \
1324 ._3DCommandSubOpcode = 41, \
1327 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS
{
1328 uint32_t CommandType
;
1329 uint32_t CommandSubType
;
1330 uint32_t _3DCommandOpcode
;
1331 uint32_t _3DCommandSubOpcode
;
1332 uint32_t DwordLength
;
1333 uint32_t PointertoGSBindingTable
;
1337 GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1338 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
1340 uint32_t *dw
= (uint32_t * restrict
) dst
;
1343 __gen_field(values
->CommandType
, 29, 31) |
1344 __gen_field(values
->CommandSubType
, 27, 28) |
1345 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1346 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1347 __gen_field(values
->DwordLength
, 0, 7) |
1351 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
1356 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
1357 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
1358 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
1360 .CommandSubType = 3, \
1361 ._3DCommandOpcode = 0, \
1362 ._3DCommandSubOpcode = 39, \
1365 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS
{
1366 uint32_t CommandType
;
1367 uint32_t CommandSubType
;
1368 uint32_t _3DCommandOpcode
;
1369 uint32_t _3DCommandSubOpcode
;
1370 uint32_t DwordLength
;
1371 uint32_t PointertoHSBindingTable
;
1375 GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1376 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
1378 uint32_t *dw
= (uint32_t * restrict
) dst
;
1381 __gen_field(values
->CommandType
, 29, 31) |
1382 __gen_field(values
->CommandSubType
, 27, 28) |
1383 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1384 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1385 __gen_field(values
->DwordLength
, 0, 7) |
1389 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
1394 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
1395 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
1396 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
1398 .CommandSubType = 3, \
1399 ._3DCommandOpcode = 0, \
1400 ._3DCommandSubOpcode = 42, \
1403 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS
{
1404 uint32_t CommandType
;
1405 uint32_t CommandSubType
;
1406 uint32_t _3DCommandOpcode
;
1407 uint32_t _3DCommandSubOpcode
;
1408 uint32_t DwordLength
;
1409 uint32_t PointertoPSBindingTable
;
1413 GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1414 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
1416 uint32_t *dw
= (uint32_t * restrict
) dst
;
1419 __gen_field(values
->CommandType
, 29, 31) |
1420 __gen_field(values
->CommandSubType
, 27, 28) |
1421 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1422 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1423 __gen_field(values
->DwordLength
, 0, 7) |
1427 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
1432 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
1433 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
1434 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
1436 .CommandSubType = 3, \
1437 ._3DCommandOpcode = 0, \
1438 ._3DCommandSubOpcode = 38, \
1441 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS
{
1442 uint32_t CommandType
;
1443 uint32_t CommandSubType
;
1444 uint32_t _3DCommandOpcode
;
1445 uint32_t _3DCommandSubOpcode
;
1446 uint32_t DwordLength
;
1447 uint32_t PointertoVSBindingTable
;
1451 GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1452 const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
1454 uint32_t *dw
= (uint32_t * restrict
) dst
;
1457 __gen_field(values
->CommandType
, 29, 31) |
1458 __gen_field(values
->CommandSubType
, 27, 28) |
1459 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1460 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1461 __gen_field(values
->DwordLength
, 0, 7) |
1465 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
1470 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000004
1471 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002
1472 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\
1474 .CommandSubType = 3, \
1475 ._3DCommandOpcode = 1, \
1476 ._3DCommandSubOpcode = 25, \
1479 struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC
{
1480 uint32_t CommandType
;
1481 uint32_t CommandSubType
;
1482 uint32_t _3DCommandOpcode
;
1483 uint32_t _3DCommandSubOpcode
;
1484 uint32_t DwordLength
;
1485 __gen_address_type BindingTablePoolBaseAddress
;
1486 uint32_t BindingTablePoolEnable
;
1487 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
1488 #define NoValidData 0
1489 uint32_t BindingTablePoolBufferSize
;
1493 GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
1494 const struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC
* restrict values
)
1496 uint32_t *dw
= (uint32_t * restrict
) dst
;
1499 __gen_field(values
->CommandType
, 29, 31) |
1500 __gen_field(values
->CommandSubType
, 27, 28) |
1501 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1502 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1503 __gen_field(values
->DwordLength
, 0, 7) |
1506 uint32_t dw_SurfaceObjectControlState
;
1507 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
1509 __gen_field(values
->BindingTablePoolEnable
, 11, 11) |
1510 __gen_field(dw_SurfaceObjectControlState
, 0, 6) |
1514 __gen_combine_address(data
, &dw
[1], values
->BindingTablePoolBaseAddress
, dw1
);
1520 __gen_field(values
->BindingTablePoolBufferSize
, 12, 31) |
1525 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
1526 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
1527 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_header\
1529 .CommandSubType = 3, \
1530 ._3DCommandOpcode = 0, \
1531 ._3DCommandSubOpcode = 36, \
1534 struct GEN8_3DSTATE_BLEND_STATE_POINTERS
{
1535 uint32_t CommandType
;
1536 uint32_t CommandSubType
;
1537 uint32_t _3DCommandOpcode
;
1538 uint32_t _3DCommandSubOpcode
;
1539 uint32_t DwordLength
;
1540 uint32_t BlendStatePointer
;
1541 uint32_t BlendStatePointerValid
;
1545 GEN8_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1546 const struct GEN8_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
1548 uint32_t *dw
= (uint32_t * restrict
) dst
;
1551 __gen_field(values
->CommandType
, 29, 31) |
1552 __gen_field(values
->CommandSubType
, 27, 28) |
1553 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1554 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1555 __gen_field(values
->DwordLength
, 0, 7) |
1559 __gen_offset(values
->BlendStatePointer
, 6, 31) |
1560 __gen_field(values
->BlendStatePointerValid
, 0, 0) |
1565 #define GEN8_3DSTATE_CC_STATE_POINTERS_length 0x00000002
1566 #define GEN8_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
1567 #define GEN8_3DSTATE_CC_STATE_POINTERS_header \
1569 .CommandSubType = 3, \
1570 ._3DCommandOpcode = 0, \
1571 ._3DCommandSubOpcode = 14, \
1574 struct GEN8_3DSTATE_CC_STATE_POINTERS
{
1575 uint32_t CommandType
;
1576 uint32_t CommandSubType
;
1577 uint32_t _3DCommandOpcode
;
1578 uint32_t _3DCommandSubOpcode
;
1579 uint32_t DwordLength
;
1580 uint32_t ColorCalcStatePointer
;
1581 uint32_t ColorCalcStatePointerValid
;
1585 GEN8_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1586 const struct GEN8_3DSTATE_CC_STATE_POINTERS
* restrict values
)
1588 uint32_t *dw
= (uint32_t * restrict
) dst
;
1591 __gen_field(values
->CommandType
, 29, 31) |
1592 __gen_field(values
->CommandSubType
, 27, 28) |
1593 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1594 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1595 __gen_field(values
->DwordLength
, 0, 7) |
1599 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
1600 __gen_field(values
->ColorCalcStatePointerValid
, 0, 0) |
1605 #define GEN8_3DSTATE_CHROMA_KEY_length 0x00000004
1606 #define GEN8_3DSTATE_CHROMA_KEY_length_bias 0x00000002
1607 #define GEN8_3DSTATE_CHROMA_KEY_header \
1609 .CommandSubType = 3, \
1610 ._3DCommandOpcode = 1, \
1611 ._3DCommandSubOpcode = 4, \
1614 struct GEN8_3DSTATE_CHROMA_KEY
{
1615 uint32_t CommandType
;
1616 uint32_t CommandSubType
;
1617 uint32_t _3DCommandOpcode
;
1618 uint32_t _3DCommandSubOpcode
;
1619 uint32_t DwordLength
;
1620 uint32_t ChromaKeyTableIndex
;
1621 uint32_t ChromaKeyLowValue
;
1622 uint32_t ChromaKeyHighValue
;
1626 GEN8_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
1627 const struct GEN8_3DSTATE_CHROMA_KEY
* restrict values
)
1629 uint32_t *dw
= (uint32_t * restrict
) dst
;
1632 __gen_field(values
->CommandType
, 29, 31) |
1633 __gen_field(values
->CommandSubType
, 27, 28) |
1634 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1635 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1636 __gen_field(values
->DwordLength
, 0, 7) |
1640 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
1644 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
1648 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
1653 #define GEN8_3DSTATE_CLEAR_PARAMS_length 0x00000003
1654 #define GEN8_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
1655 #define GEN8_3DSTATE_CLEAR_PARAMS_header \
1657 .CommandSubType = 3, \
1658 ._3DCommandOpcode = 0, \
1659 ._3DCommandSubOpcode = 4, \
1662 struct GEN8_3DSTATE_CLEAR_PARAMS
{
1663 uint32_t CommandType
;
1664 uint32_t CommandSubType
;
1665 uint32_t _3DCommandOpcode
;
1666 uint32_t _3DCommandSubOpcode
;
1667 uint32_t DwordLength
;
1668 float DepthClearValue
;
1669 uint32_t DepthClearValueValid
;
1673 GEN8_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
1674 const struct GEN8_3DSTATE_CLEAR_PARAMS
* restrict values
)
1676 uint32_t *dw
= (uint32_t * restrict
) dst
;
1679 __gen_field(values
->CommandType
, 29, 31) |
1680 __gen_field(values
->CommandSubType
, 27, 28) |
1681 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1682 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1683 __gen_field(values
->DwordLength
, 0, 7) |
1687 __gen_float(values
->DepthClearValue
) |
1691 __gen_field(values
->DepthClearValueValid
, 0, 0) |
1696 #define GEN8_3DSTATE_CLIP_length 0x00000004
1697 #define GEN8_3DSTATE_CLIP_length_bias 0x00000002
1698 #define GEN8_3DSTATE_CLIP_header \
1700 .CommandSubType = 3, \
1701 ._3DCommandOpcode = 0, \
1702 ._3DCommandSubOpcode = 18, \
1705 struct GEN8_3DSTATE_CLIP
{
1706 uint32_t CommandType
;
1707 uint32_t CommandSubType
;
1708 uint32_t _3DCommandOpcode
;
1709 uint32_t _3DCommandSubOpcode
;
1710 uint32_t DwordLength
;
1713 uint32_t ForceUserClipDistanceCullTestEnableBitmask
;
1716 uint32_t VertexSubPixelPrecisionSelect
;
1717 uint32_t EarlyCullEnable
;
1720 uint32_t ForceUserClipDistanceClipTestEnableBitmask
;
1723 uint32_t ForceClipMode
;
1724 uint32_t ClipperStatisticsEnable
;
1725 uint32_t UserClipDistanceCullTestEnableBitmask
;
1726 uint32_t ClipEnable
;
1729 uint32_t ViewportXYClipTestEnable
;
1730 uint32_t GuardbandClipTestEnable
;
1731 uint32_t UserClipDistanceClipTestEnableBitmask
;
1733 #define REJECT_ALL 3
1734 #define ACCEPT_ALL 4
1736 uint32_t PerspectiveDivideDisable
;
1737 uint32_t NonPerspectiveBarycentricEnable
;
1738 uint32_t TriangleStripListProvokingVertexSelect
;
1739 uint32_t LineStripListProvokingVertexSelect
;
1740 uint32_t TriangleFanProvokingVertexSelect
;
1741 float MinimumPointWidth
;
1742 float MaximumPointWidth
;
1743 uint32_t ForceZeroRTAIndexEnable
;
1744 uint32_t MaximumVPIndex
;
1748 GEN8_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1749 const struct GEN8_3DSTATE_CLIP
* restrict values
)
1751 uint32_t *dw
= (uint32_t * restrict
) dst
;
1754 __gen_field(values
->CommandType
, 29, 31) |
1755 __gen_field(values
->CommandSubType
, 27, 28) |
1756 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1757 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1758 __gen_field(values
->DwordLength
, 0, 7) |
1762 __gen_field(values
->ForceUserClipDistanceCullTestEnableBitmask
, 20, 20) |
1763 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1764 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1765 __gen_field(values
->ForceUserClipDistanceClipTestEnableBitmask
, 17, 17) |
1766 __gen_field(values
->ForceClipMode
, 16, 16) |
1767 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1768 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1772 __gen_field(values
->ClipEnable
, 31, 31) |
1773 __gen_field(values
->APIMode
, 30, 30) |
1774 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1775 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1776 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1777 __gen_field(values
->ClipMode
, 13, 15) |
1778 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1779 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1780 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1781 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1782 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1786 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
1787 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
1788 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1789 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1794 #define GEN8_3DSTATE_CONSTANT_DS_length 0x0000000b
1795 #define GEN8_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1796 #define GEN8_3DSTATE_CONSTANT_DS_header \
1798 .CommandSubType = 3, \
1799 ._3DCommandOpcode = 0, \
1800 ._3DCommandSubOpcode = 26, \
1803 struct GEN8_3DSTATE_CONSTANT_BODY
{
1804 uint32_t ConstantBuffer1ReadLength
;
1805 uint32_t ConstantBuffer0ReadLength
;
1806 uint32_t ConstantBuffer3ReadLength
;
1807 uint32_t ConstantBuffer2ReadLength
;
1808 __gen_address_type PointerToConstantBuffer0
;
1809 __gen_address_type PointerToConstantBuffer1
;
1810 __gen_address_type PointerToConstantBuffer2
;
1811 __gen_address_type PointerToConstantBuffer3
;
1815 GEN8_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1816 const struct GEN8_3DSTATE_CONSTANT_BODY
* restrict values
)
1818 uint32_t *dw
= (uint32_t * restrict
) dst
;
1821 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1822 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1826 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1827 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1834 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1843 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer1
, dw4
);
1852 __gen_combine_address(data
, &dw
[6], values
->PointerToConstantBuffer2
, dw6
);
1861 __gen_combine_address(data
, &dw
[8], values
->PointerToConstantBuffer3
, dw8
);
1868 struct GEN8_3DSTATE_CONSTANT_DS
{
1869 uint32_t CommandType
;
1870 uint32_t CommandSubType
;
1871 uint32_t _3DCommandOpcode
;
1872 uint32_t _3DCommandSubOpcode
;
1873 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1874 uint32_t DwordLength
;
1875 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1879 GEN8_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1880 const struct GEN8_3DSTATE_CONSTANT_DS
* restrict values
)
1882 uint32_t *dw
= (uint32_t * restrict
) dst
;
1884 uint32_t dw_ConstantBufferObjectControlState
;
1885 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1887 __gen_field(values
->CommandType
, 29, 31) |
1888 __gen_field(values
->CommandSubType
, 27, 28) |
1889 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1890 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1891 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1892 __gen_field(values
->DwordLength
, 0, 7) |
1895 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1898 #define GEN8_3DSTATE_CONSTANT_GS_length 0x0000000b
1899 #define GEN8_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1900 #define GEN8_3DSTATE_CONSTANT_GS_header \
1902 .CommandSubType = 3, \
1903 ._3DCommandOpcode = 0, \
1904 ._3DCommandSubOpcode = 22, \
1907 struct GEN8_3DSTATE_CONSTANT_GS
{
1908 uint32_t CommandType
;
1909 uint32_t CommandSubType
;
1910 uint32_t _3DCommandOpcode
;
1911 uint32_t _3DCommandSubOpcode
;
1912 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1913 uint32_t DwordLength
;
1914 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1918 GEN8_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1919 const struct GEN8_3DSTATE_CONSTANT_GS
* restrict values
)
1921 uint32_t *dw
= (uint32_t * restrict
) dst
;
1923 uint32_t dw_ConstantBufferObjectControlState
;
1924 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1926 __gen_field(values
->CommandType
, 29, 31) |
1927 __gen_field(values
->CommandSubType
, 27, 28) |
1928 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1929 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1930 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1931 __gen_field(values
->DwordLength
, 0, 7) |
1934 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1937 #define GEN8_3DSTATE_CONSTANT_HS_length 0x0000000b
1938 #define GEN8_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1939 #define GEN8_3DSTATE_CONSTANT_HS_header \
1941 .CommandSubType = 3, \
1942 ._3DCommandOpcode = 0, \
1943 ._3DCommandSubOpcode = 25, \
1946 struct GEN8_3DSTATE_CONSTANT_HS
{
1947 uint32_t CommandType
;
1948 uint32_t CommandSubType
;
1949 uint32_t _3DCommandOpcode
;
1950 uint32_t _3DCommandSubOpcode
;
1951 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1952 uint32_t DwordLength
;
1953 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1957 GEN8_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1958 const struct GEN8_3DSTATE_CONSTANT_HS
* restrict values
)
1960 uint32_t *dw
= (uint32_t * restrict
) dst
;
1962 uint32_t dw_ConstantBufferObjectControlState
;
1963 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1965 __gen_field(values
->CommandType
, 29, 31) |
1966 __gen_field(values
->CommandSubType
, 27, 28) |
1967 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1968 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1969 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
1970 __gen_field(values
->DwordLength
, 0, 7) |
1973 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1976 #define GEN8_3DSTATE_CONSTANT_PS_length 0x0000000b
1977 #define GEN8_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1978 #define GEN8_3DSTATE_CONSTANT_PS_header \
1980 .CommandSubType = 3, \
1981 ._3DCommandOpcode = 0, \
1982 ._3DCommandSubOpcode = 23, \
1985 struct GEN8_3DSTATE_CONSTANT_PS
{
1986 uint32_t CommandType
;
1987 uint32_t CommandSubType
;
1988 uint32_t _3DCommandOpcode
;
1989 uint32_t _3DCommandSubOpcode
;
1990 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1991 uint32_t DwordLength
;
1992 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
1996 GEN8_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1997 const struct GEN8_3DSTATE_CONSTANT_PS
* restrict values
)
1999 uint32_t *dw
= (uint32_t * restrict
) dst
;
2001 uint32_t dw_ConstantBufferObjectControlState
;
2002 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2004 __gen_field(values
->CommandType
, 29, 31) |
2005 __gen_field(values
->CommandSubType
, 27, 28) |
2006 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2007 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2008 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2009 __gen_field(values
->DwordLength
, 0, 7) |
2012 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2015 #define GEN8_3DSTATE_CONSTANT_VS_length 0x0000000b
2016 #define GEN8_3DSTATE_CONSTANT_VS_length_bias 0x00000002
2017 #define GEN8_3DSTATE_CONSTANT_VS_header \
2019 .CommandSubType = 3, \
2020 ._3DCommandOpcode = 0, \
2021 ._3DCommandSubOpcode = 21, \
2024 struct GEN8_3DSTATE_CONSTANT_VS
{
2025 uint32_t CommandType
;
2026 uint32_t CommandSubType
;
2027 uint32_t _3DCommandOpcode
;
2028 uint32_t _3DCommandSubOpcode
;
2029 struct GEN8_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
2030 uint32_t DwordLength
;
2031 struct GEN8_3DSTATE_CONSTANT_BODY ConstantBody
;
2035 GEN8_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2036 const struct GEN8_3DSTATE_CONSTANT_VS
* restrict values
)
2038 uint32_t *dw
= (uint32_t * restrict
) dst
;
2040 uint32_t dw_ConstantBufferObjectControlState
;
2041 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
2043 __gen_field(values
->CommandType
, 29, 31) |
2044 __gen_field(values
->CommandSubType
, 27, 28) |
2045 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2046 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2047 __gen_field(dw_ConstantBufferObjectControlState
, 8, 14) |
2048 __gen_field(values
->DwordLength
, 0, 7) |
2051 GEN8_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
2054 #define GEN8_3DSTATE_DEPTH_BUFFER_length 0x00000008
2055 #define GEN8_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
2056 #define GEN8_3DSTATE_DEPTH_BUFFER_header \
2058 .CommandSubType = 3, \
2059 ._3DCommandOpcode = 0, \
2060 ._3DCommandSubOpcode = 5, \
2063 struct GEN8_3DSTATE_DEPTH_BUFFER
{
2064 uint32_t CommandType
;
2065 uint32_t CommandSubType
;
2066 uint32_t _3DCommandOpcode
;
2067 uint32_t _3DCommandSubOpcode
;
2068 uint32_t DwordLength
;
2069 #define SURFTYPE_1D 0
2070 #define SURFTYPE_2D 1
2071 #define SURFTYPE_3D 2
2072 #define SURFTYPE_CUBE 3
2073 #define SURFTYPE_NULL 7
2074 uint32_t SurfaceType
;
2075 uint32_t DepthWriteEnable
;
2076 uint32_t StencilWriteEnable
;
2077 uint32_t HierarchicalDepthBufferEnable
;
2079 #define D24_UNORM_X8_UINT 3
2081 uint32_t SurfaceFormat
;
2082 uint32_t SurfacePitch
;
2083 __gen_address_type SurfaceBaseAddress
;
2088 uint32_t MinimumArrayElement
;
2089 struct GEN8_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
2090 uint32_t RenderTargetViewExtent
;
2091 uint32_t SurfaceQPitch
;
2095 GEN8_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2096 const struct GEN8_3DSTATE_DEPTH_BUFFER
* restrict values
)
2098 uint32_t *dw
= (uint32_t * restrict
) dst
;
2101 __gen_field(values
->CommandType
, 29, 31) |
2102 __gen_field(values
->CommandSubType
, 27, 28) |
2103 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2104 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2105 __gen_field(values
->DwordLength
, 0, 7) |
2109 __gen_field(values
->SurfaceType
, 29, 31) |
2110 __gen_field(values
->DepthWriteEnable
, 28, 28) |
2111 __gen_field(values
->StencilWriteEnable
, 27, 27) |
2112 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
2113 __gen_field(values
->SurfaceFormat
, 18, 20) |
2114 __gen_field(values
->SurfacePitch
, 0, 17) |
2121 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2127 __gen_field(values
->Height
, 18, 31) |
2128 __gen_field(values
->Width
, 4, 17) |
2129 __gen_field(values
->LOD
, 0, 3) |
2132 uint32_t dw_DepthBufferObjectControlState
;
2133 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
2135 __gen_field(values
->Depth
, 21, 31) |
2136 __gen_field(values
->MinimumArrayElement
, 10, 20) |
2137 __gen_field(dw_DepthBufferObjectControlState
, 0, 6) |
2144 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
2145 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2150 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
2151 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
2152 #define GEN8_3DSTATE_DRAWING_RECTANGLE_header \
2154 .CommandSubType = 3, \
2155 ._3DCommandOpcode = 1, \
2156 ._3DCommandSubOpcode = 0, \
2159 struct GEN8_3DSTATE_DRAWING_RECTANGLE
{
2160 uint32_t CommandType
;
2161 uint32_t CommandSubType
;
2162 uint32_t _3DCommandOpcode
;
2163 uint32_t _3DCommandSubOpcode
;
2165 #define Core0Enabled 1
2166 #define Core1Enabled 2
2167 uint32_t CoreModeSelect
;
2168 uint32_t DwordLength
;
2169 uint32_t ClippedDrawingRectangleYMin
;
2170 uint32_t ClippedDrawingRectangleXMin
;
2171 uint32_t ClippedDrawingRectangleYMax
;
2172 uint32_t ClippedDrawingRectangleXMax
;
2173 uint32_t DrawingRectangleOriginY
;
2174 uint32_t DrawingRectangleOriginX
;
2178 GEN8_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
2179 const struct GEN8_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
2181 uint32_t *dw
= (uint32_t * restrict
) dst
;
2184 __gen_field(values
->CommandType
, 29, 31) |
2185 __gen_field(values
->CommandSubType
, 27, 28) |
2186 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2187 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2188 __gen_field(values
->CoreModeSelect
, 14, 15) |
2189 __gen_field(values
->DwordLength
, 0, 7) |
2193 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
2194 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
2198 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
2199 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
2203 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
2204 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
2209 #define GEN8_3DSTATE_DS_length 0x00000009
2210 #define GEN8_3DSTATE_DS_length_bias 0x00000002
2211 #define GEN8_3DSTATE_DS_header \
2213 .CommandSubType = 3, \
2214 ._3DCommandOpcode = 0, \
2215 ._3DCommandSubOpcode = 29, \
2218 struct GEN8_3DSTATE_DS
{
2219 uint32_t CommandType
;
2220 uint32_t CommandSubType
;
2221 uint32_t _3DCommandOpcode
;
2222 uint32_t _3DCommandSubOpcode
;
2223 uint32_t DwordLength
;
2224 uint64_t KernelStartPointer
;
2227 uint32_t SingleDomainPointDispatch
;
2230 uint32_t VectorMaskEnable
;
2231 #define NoSamplers 0
2232 #define _14Samplers 1
2233 #define _58Samplers 2
2234 #define _912Samplers 3
2235 #define _1316Samplers 4
2236 uint32_t SamplerCount
;
2237 uint32_t BindingTableEntryCount
;
2240 uint32_t ThreadDispatchPriority
;
2243 uint32_t FloatingPointMode
;
2244 uint32_t AccessesUAV
;
2245 uint32_t IllegalOpcodeExceptionEnable
;
2246 uint32_t SoftwareExceptionEnable
;
2247 uint64_t ScratchSpaceBasePointer
;
2248 uint32_t PerThreadScratchSpace
;
2249 uint32_t DispatchGRFStartRegisterForURBData
;
2250 uint32_t PatchURBEntryReadLength
;
2251 uint32_t PatchURBEntryReadOffset
;
2252 uint32_t MaximumNumberofThreads
;
2253 uint32_t StatisticsEnable
;
2254 uint32_t SIMD8DispatchEnable
;
2255 uint32_t ComputeWCoordinateEnable
;
2256 uint32_t CacheDisable
;
2257 uint32_t FunctionEnable
;
2258 uint32_t VertexURBEntryOutputReadOffset
;
2259 uint32_t VertexURBEntryOutputLength
;
2260 uint32_t UserClipDistanceClipTestEnableBitmask
;
2261 uint32_t UserClipDistanceCullTestEnableBitmask
;
2265 GEN8_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2266 const struct GEN8_3DSTATE_DS
* restrict values
)
2268 uint32_t *dw
= (uint32_t * restrict
) dst
;
2271 __gen_field(values
->CommandType
, 29, 31) |
2272 __gen_field(values
->CommandSubType
, 27, 28) |
2273 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2274 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2275 __gen_field(values
->DwordLength
, 0, 7) |
2279 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2286 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
2287 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2288 __gen_field(values
->SamplerCount
, 27, 29) |
2289 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2290 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2291 __gen_field(values
->FloatingPointMode
, 16, 16) |
2292 __gen_field(values
->AccessesUAV
, 14, 14) |
2293 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2294 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2298 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2299 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2306 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
2307 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
2308 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
2312 __gen_field(values
->MaximumNumberofThreads
, 21, 29) |
2313 __gen_field(values
->StatisticsEnable
, 10, 10) |
2314 __gen_field(values
->SIMD8DispatchEnable
, 3, 3) |
2315 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
2316 __gen_field(values
->CacheDisable
, 1, 1) |
2317 __gen_field(values
->FunctionEnable
, 0, 0) |
2321 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2322 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2323 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2324 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2329 #define GEN8_3DSTATE_GATHER_CONSTANT_DS_length_bias 0x00000002
2330 #define GEN8_3DSTATE_GATHER_CONSTANT_DS_header \
2332 .CommandSubType = 3, \
2333 ._3DCommandOpcode = 0, \
2334 ._3DCommandSubOpcode = 55
2336 struct GEN8_GATHER_CONSTANT_ENTRY
{
2337 uint32_t ConstantBufferOffset
;
2338 uint32_t ChannelMask
;
2339 uint32_t BindingTableIndexOffset
;
2343 GEN8_GATHER_CONSTANT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2344 const struct GEN8_GATHER_CONSTANT_ENTRY
* restrict values
)
2346 uint32_t *dw
= (uint32_t * restrict
) dst
;
2349 __gen_offset(values
->ConstantBufferOffset
, 8, 15) |
2350 __gen_field(values
->ChannelMask
, 4, 7) |
2351 __gen_field(values
->BindingTableIndexOffset
, 0, 3) |
2356 struct GEN8_3DSTATE_GATHER_CONSTANT_DS
{
2357 uint32_t CommandType
;
2358 uint32_t CommandSubType
;
2359 uint32_t _3DCommandOpcode
;
2360 uint32_t _3DCommandSubOpcode
;
2361 uint32_t DwordLength
;
2362 uint32_t ConstantBufferValid
;
2363 uint32_t ConstantBufferBindingTableBlock
;
2364 uint32_t GatherBufferOffset
;
2365 uint32_t ConstantBufferDx9GenerateStall
;
2366 /* variable length fields follow */
2370 GEN8_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2371 const struct GEN8_3DSTATE_GATHER_CONSTANT_DS
* restrict values
)
2373 uint32_t *dw
= (uint32_t * restrict
) dst
;
2376 __gen_field(values
->CommandType
, 29, 31) |
2377 __gen_field(values
->CommandSubType
, 27, 28) |
2378 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2379 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2380 __gen_field(values
->DwordLength
, 0, 7) |
2384 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2385 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2389 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2390 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2393 /* variable length fields follow */
2396 #define GEN8_3DSTATE_GATHER_CONSTANT_GS_length_bias 0x00000002
2397 #define GEN8_3DSTATE_GATHER_CONSTANT_GS_header \
2399 .CommandSubType = 3, \
2400 ._3DCommandOpcode = 0, \
2401 ._3DCommandSubOpcode = 53
2403 struct GEN8_3DSTATE_GATHER_CONSTANT_GS
{
2404 uint32_t CommandType
;
2405 uint32_t CommandSubType
;
2406 uint32_t _3DCommandOpcode
;
2407 uint32_t _3DCommandSubOpcode
;
2408 uint32_t DwordLength
;
2409 uint32_t ConstantBufferValid
;
2410 uint32_t ConstantBufferBindingTableBlock
;
2411 uint32_t GatherBufferOffset
;
2412 uint32_t ConstantBufferDx9GenerateStall
;
2413 /* variable length fields follow */
2417 GEN8_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2418 const struct GEN8_3DSTATE_GATHER_CONSTANT_GS
* restrict values
)
2420 uint32_t *dw
= (uint32_t * restrict
) dst
;
2423 __gen_field(values
->CommandType
, 29, 31) |
2424 __gen_field(values
->CommandSubType
, 27, 28) |
2425 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2426 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2427 __gen_field(values
->DwordLength
, 0, 7) |
2431 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2432 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2436 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2437 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2440 /* variable length fields follow */
2443 #define GEN8_3DSTATE_GATHER_CONSTANT_HS_length_bias 0x00000002
2444 #define GEN8_3DSTATE_GATHER_CONSTANT_HS_header \
2446 .CommandSubType = 3, \
2447 ._3DCommandOpcode = 0, \
2448 ._3DCommandSubOpcode = 54
2450 struct GEN8_3DSTATE_GATHER_CONSTANT_HS
{
2451 uint32_t CommandType
;
2452 uint32_t CommandSubType
;
2453 uint32_t _3DCommandOpcode
;
2454 uint32_t _3DCommandSubOpcode
;
2455 uint32_t DwordLength
;
2456 uint32_t ConstantBufferValid
;
2457 uint32_t ConstantBufferBindingTableBlock
;
2458 uint32_t GatherBufferOffset
;
2459 uint32_t ConstantBufferDx9GenerateStall
;
2460 /* variable length fields follow */
2464 GEN8_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2465 const struct GEN8_3DSTATE_GATHER_CONSTANT_HS
* restrict values
)
2467 uint32_t *dw
= (uint32_t * restrict
) dst
;
2470 __gen_field(values
->CommandType
, 29, 31) |
2471 __gen_field(values
->CommandSubType
, 27, 28) |
2472 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2473 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2474 __gen_field(values
->DwordLength
, 0, 7) |
2478 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2479 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2483 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2484 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2487 /* variable length fields follow */
2490 #define GEN8_3DSTATE_GATHER_CONSTANT_PS_length_bias 0x00000002
2491 #define GEN8_3DSTATE_GATHER_CONSTANT_PS_header \
2493 .CommandSubType = 3, \
2494 ._3DCommandOpcode = 0, \
2495 ._3DCommandSubOpcode = 56
2497 struct GEN8_3DSTATE_GATHER_CONSTANT_PS
{
2498 uint32_t CommandType
;
2499 uint32_t CommandSubType
;
2500 uint32_t _3DCommandOpcode
;
2501 uint32_t _3DCommandSubOpcode
;
2502 uint32_t DwordLength
;
2503 uint32_t ConstantBufferValid
;
2504 uint32_t ConstantBufferBindingTableBlock
;
2505 uint32_t GatherBufferOffset
;
2506 uint32_t ConstantBufferDx9GenerateStall
;
2507 uint32_t ConstantBufferDx9Enable
;
2508 /* variable length fields follow */
2512 GEN8_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2513 const struct GEN8_3DSTATE_GATHER_CONSTANT_PS
* restrict values
)
2515 uint32_t *dw
= (uint32_t * restrict
) dst
;
2518 __gen_field(values
->CommandType
, 29, 31) |
2519 __gen_field(values
->CommandSubType
, 27, 28) |
2520 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2521 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2522 __gen_field(values
->DwordLength
, 0, 7) |
2526 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2527 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2531 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2532 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2533 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2536 /* variable length fields follow */
2539 #define GEN8_3DSTATE_GATHER_CONSTANT_VS_length_bias 0x00000002
2540 #define GEN8_3DSTATE_GATHER_CONSTANT_VS_header \
2542 .CommandSubType = 3, \
2543 ._3DCommandOpcode = 0, \
2544 ._3DCommandSubOpcode = 52
2546 struct GEN8_3DSTATE_GATHER_CONSTANT_VS
{
2547 uint32_t CommandType
;
2548 uint32_t CommandSubType
;
2549 uint32_t _3DCommandOpcode
;
2550 uint32_t _3DCommandSubOpcode
;
2551 uint32_t DwordLength
;
2552 uint32_t ConstantBufferValid
;
2553 uint32_t ConstantBufferBindingTableBlock
;
2554 uint32_t GatherBufferOffset
;
2555 uint32_t ConstantBufferDx9GenerateStall
;
2556 uint32_t ConstantBufferDx9Enable
;
2557 /* variable length fields follow */
2561 GEN8_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2562 const struct GEN8_3DSTATE_GATHER_CONSTANT_VS
* restrict values
)
2564 uint32_t *dw
= (uint32_t * restrict
) dst
;
2567 __gen_field(values
->CommandType
, 29, 31) |
2568 __gen_field(values
->CommandSubType
, 27, 28) |
2569 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2570 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2571 __gen_field(values
->DwordLength
, 0, 7) |
2575 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2576 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2580 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2581 __gen_field(values
->ConstantBufferDx9GenerateStall
, 5, 5) |
2582 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2585 /* variable length fields follow */
2588 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length 0x00000004
2589 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002
2590 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_header \
2592 .CommandSubType = 3, \
2593 ._3DCommandOpcode = 1, \
2594 ._3DCommandSubOpcode = 26, \
2597 struct GEN8_3DSTATE_GATHER_POOL_ALLOC
{
2598 uint32_t CommandType
;
2599 uint32_t CommandSubType
;
2600 uint32_t _3DCommandOpcode
;
2601 uint32_t _3DCommandSubOpcode
;
2602 uint32_t DwordLength
;
2603 __gen_address_type GatherPoolBaseAddress
;
2604 uint32_t GatherPoolEnable
;
2605 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2606 uint32_t GatherPoolBufferSize
;
2610 GEN8_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
2611 const struct GEN8_3DSTATE_GATHER_POOL_ALLOC
* restrict values
)
2613 uint32_t *dw
= (uint32_t * restrict
) dst
;
2616 __gen_field(values
->CommandType
, 29, 31) |
2617 __gen_field(values
->CommandSubType
, 27, 28) |
2618 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2619 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2620 __gen_field(values
->DwordLength
, 0, 7) |
2623 uint32_t dw_MemoryObjectControlState
;
2624 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2626 __gen_field(values
->GatherPoolEnable
, 11, 11) |
2627 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
2631 __gen_combine_address(data
, &dw
[1], values
->GatherPoolBaseAddress
, dw1
);
2637 __gen_field(values
->GatherPoolBufferSize
, 12, 31) |
2642 #define GEN8_3DSTATE_GS_length 0x0000000a
2643 #define GEN8_3DSTATE_GS_length_bias 0x00000002
2644 #define GEN8_3DSTATE_GS_header \
2646 .CommandSubType = 3, \
2647 ._3DCommandOpcode = 0, \
2648 ._3DCommandSubOpcode = 17, \
2651 struct GEN8_3DSTATE_GS
{
2652 uint32_t CommandType
;
2653 uint32_t CommandSubType
;
2654 uint32_t _3DCommandOpcode
;
2655 uint32_t _3DCommandSubOpcode
;
2656 uint32_t DwordLength
;
2657 uint64_t KernelStartPointer
;
2658 uint32_t SingleProgramFlow
;
2661 uint32_t VectorMaskEnable
;
2662 #define NoSamplers 0
2663 #define _14Samplers 1
2664 #define _58Samplers 2
2665 #define _912Samplers 3
2666 #define _1316Samplers 4
2667 uint32_t SamplerCount
;
2668 uint32_t BindingTableEntryCount
;
2671 uint32_t ThreadDispatchPriority
;
2674 uint32_t FloatingPointMode
;
2675 uint32_t IllegalOpcodeExceptionEnable
;
2676 uint32_t AccessesUAV
;
2677 uint32_t MaskStackExceptionEnable
;
2678 uint32_t SoftwareExceptionEnable
;
2679 uint32_t ExpectedVertexCount
;
2680 uint64_t ScratchSpaceBasePointer
;
2681 uint32_t PerThreadScratchSpace
;
2682 uint32_t OutputVertexSize
;
2683 uint32_t OutputTopology
;
2684 uint32_t VertexURBEntryReadLength
;
2685 uint32_t IncludeVertexHandles
;
2686 uint32_t VertexURBEntryReadOffset
;
2687 uint32_t DispatchGRFStartRegisterForURBData
;
2688 uint32_t MaximumNumberofThreads
;
2689 uint32_t ControlDataHeaderSize
;
2690 uint32_t InstanceControl
;
2691 uint32_t DefaultStreamId
;
2692 #define DispatchModeSingle 0
2693 #define DispatchModeDualInstance 1
2694 #define DispatchModeDualObject 2
2695 #define DispatchModeSIMD8 3
2696 uint32_t DispatchMode
;
2697 uint32_t StatisticsEnable
;
2698 uint32_t InvocationsIncrementValue
;
2699 uint32_t IncludePrimitiveID
;
2703 uint32_t ReorderMode
;
2704 uint32_t DiscardAdjacency
;
2708 uint32_t ControlDataFormat
;
2709 uint32_t StaticOutput
;
2710 uint32_t StaticOutputVertexCount
;
2711 uint32_t VertexURBEntryOutputReadOffset
;
2712 uint32_t VertexURBEntryOutputLength
;
2713 uint32_t UserClipDistanceClipTestEnableBitmask
;
2714 uint32_t UserClipDistanceCullTestEnableBitmask
;
2718 GEN8_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2719 const struct GEN8_3DSTATE_GS
* restrict values
)
2721 uint32_t *dw
= (uint32_t * restrict
) dst
;
2724 __gen_field(values
->CommandType
, 29, 31) |
2725 __gen_field(values
->CommandSubType
, 27, 28) |
2726 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2727 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2728 __gen_field(values
->DwordLength
, 0, 7) |
2732 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2739 __gen_field(values
->SingleProgramFlow
, 31, 31) |
2740 __gen_field(values
->VectorMaskEnable
, 30, 30) |
2741 __gen_field(values
->SamplerCount
, 27, 29) |
2742 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2743 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2744 __gen_field(values
->FloatingPointMode
, 16, 16) |
2745 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2746 __gen_field(values
->AccessesUAV
, 12, 12) |
2747 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2748 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2749 __gen_field(values
->ExpectedVertexCount
, 0, 5) |
2753 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2754 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2761 __gen_field(values
->OutputVertexSize
, 23, 28) |
2762 __gen_field(values
->OutputTopology
, 17, 22) |
2763 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2764 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
2765 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2766 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 0, 3) |
2770 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2771 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
2772 __gen_field(values
->InstanceControl
, 15, 19) |
2773 __gen_field(values
->DefaultStreamId
, 13, 14) |
2774 __gen_field(values
->DispatchMode
, 11, 12) |
2775 __gen_field(values
->StatisticsEnable
, 10, 10) |
2776 __gen_field(values
->InvocationsIncrementValue
, 5, 9) |
2777 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
2778 __gen_field(values
->Hint
, 3, 3) |
2779 __gen_field(values
->ReorderMode
, 2, 2) |
2780 __gen_field(values
->DiscardAdjacency
, 1, 1) |
2781 __gen_field(values
->Enable
, 0, 0) |
2785 __gen_field(values
->ControlDataFormat
, 31, 31) |
2786 __gen_field(values
->StaticOutput
, 30, 30) |
2787 __gen_field(values
->StaticOutputVertexCount
, 16, 26) |
2791 __gen_field(values
->VertexURBEntryOutputReadOffset
, 21, 26) |
2792 __gen_field(values
->VertexURBEntryOutputLength
, 16, 20) |
2793 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 8, 15) |
2794 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
2799 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000005
2800 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
2801 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_header \
2803 .CommandSubType = 3, \
2804 ._3DCommandOpcode = 0, \
2805 ._3DCommandSubOpcode = 7, \
2808 struct GEN8_3DSTATE_HIER_DEPTH_BUFFER
{
2809 uint32_t CommandType
;
2810 uint32_t CommandSubType
;
2811 uint32_t _3DCommandOpcode
;
2812 uint32_t _3DCommandSubOpcode
;
2813 uint32_t DwordLength
;
2814 struct GEN8_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
2815 uint32_t SurfacePitch
;
2816 __gen_address_type SurfaceBaseAddress
;
2817 uint32_t SurfaceQPitch
;
2821 GEN8_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2822 const struct GEN8_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
2824 uint32_t *dw
= (uint32_t * restrict
) dst
;
2827 __gen_field(values
->CommandType
, 29, 31) |
2828 __gen_field(values
->CommandSubType
, 27, 28) |
2829 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2830 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2831 __gen_field(values
->DwordLength
, 0, 7) |
2834 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
2835 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
2837 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 31) |
2838 __gen_field(values
->SurfacePitch
, 0, 16) |
2845 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2851 __gen_field(values
->SurfaceQPitch
, 0, 14) |
2856 #define GEN8_3DSTATE_HS_length 0x00000009
2857 #define GEN8_3DSTATE_HS_length_bias 0x00000002
2858 #define GEN8_3DSTATE_HS_header \
2860 .CommandSubType = 3, \
2861 ._3DCommandOpcode = 0, \
2862 ._3DCommandSubOpcode = 27, \
2865 struct GEN8_3DSTATE_HS
{
2866 uint32_t CommandType
;
2867 uint32_t CommandSubType
;
2868 uint32_t _3DCommandOpcode
;
2869 uint32_t _3DCommandSubOpcode
;
2870 uint32_t DwordLength
;
2871 #define NoSamplers 0
2872 #define _14Samplers 1
2873 #define _58Samplers 2
2874 #define _912Samplers 3
2875 #define _1316Samplers 4
2876 uint32_t SamplerCount
;
2877 uint32_t BindingTableEntryCount
;
2880 uint32_t ThreadDispatchPriority
;
2883 uint32_t FloatingPointMode
;
2884 uint32_t IllegalOpcodeExceptionEnable
;
2885 uint32_t SoftwareExceptionEnable
;
2887 uint32_t StatisticsEnable
;
2888 uint32_t MaximumNumberofThreads
;
2889 uint32_t InstanceCount
;
2890 uint64_t KernelStartPointer
;
2891 uint64_t ScratchSpaceBasePointer
;
2892 uint32_t PerThreadScratchSpace
;
2893 uint32_t SingleProgramFlow
;
2896 uint32_t VectorMaskEnable
;
2897 uint32_t AccessesUAV
;
2898 uint32_t IncludeVertexHandles
;
2899 uint32_t DispatchGRFStartRegisterForURBData
;
2900 uint32_t VertexURBEntryReadLength
;
2901 uint32_t VertexURBEntryReadOffset
;
2905 GEN8_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2906 const struct GEN8_3DSTATE_HS
* restrict values
)
2908 uint32_t *dw
= (uint32_t * restrict
) dst
;
2911 __gen_field(values
->CommandType
, 29, 31) |
2912 __gen_field(values
->CommandSubType
, 27, 28) |
2913 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2914 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2915 __gen_field(values
->DwordLength
, 0, 7) |
2919 __gen_field(values
->SamplerCount
, 27, 29) |
2920 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2921 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2922 __gen_field(values
->FloatingPointMode
, 16, 16) |
2923 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2924 __gen_field(values
->SoftwareExceptionEnable
, 12, 12) |
2928 __gen_field(values
->Enable
, 31, 31) |
2929 __gen_field(values
->StatisticsEnable
, 29, 29) |
2930 __gen_field(values
->MaximumNumberofThreads
, 8, 16) |
2931 __gen_field(values
->InstanceCount
, 0, 3) |
2935 __gen_offset(values
->KernelStartPointer
, 6, 63) |
2942 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
2943 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2950 __gen_field(values
->SingleProgramFlow
, 27, 27) |
2951 __gen_field(values
->VectorMaskEnable
, 26, 26) |
2952 __gen_field(values
->AccessesUAV
, 25, 25) |
2953 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
2954 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
2955 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2956 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2964 #define GEN8_3DSTATE_INDEX_BUFFER_length 0x00000005
2965 #define GEN8_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
2966 #define GEN8_3DSTATE_INDEX_BUFFER_header \
2968 .CommandSubType = 3, \
2969 ._3DCommandOpcode = 0, \
2970 ._3DCommandSubOpcode = 10, \
2973 struct GEN8_3DSTATE_INDEX_BUFFER
{
2974 uint32_t CommandType
;
2975 uint32_t CommandSubType
;
2976 uint32_t _3DCommandOpcode
;
2977 uint32_t _3DCommandSubOpcode
;
2978 uint32_t DwordLength
;
2979 #define INDEX_BYTE 0
2980 #define INDEX_WORD 1
2981 #define INDEX_DWORD 2
2982 uint32_t IndexFormat
;
2983 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2984 __gen_address_type BufferStartingAddress
;
2985 uint32_t BufferSize
;
2989 GEN8_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2990 const struct GEN8_3DSTATE_INDEX_BUFFER
* restrict values
)
2992 uint32_t *dw
= (uint32_t * restrict
) dst
;
2995 __gen_field(values
->CommandType
, 29, 31) |
2996 __gen_field(values
->CommandSubType
, 27, 28) |
2997 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2998 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2999 __gen_field(values
->DwordLength
, 0, 7) |
3002 uint32_t dw_MemoryObjectControlState
;
3003 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
3005 __gen_field(values
->IndexFormat
, 8, 9) |
3006 __gen_field(dw_MemoryObjectControlState
, 0, 6) |
3013 __gen_combine_address(data
, &dw
[2], values
->BufferStartingAddress
, dw2
);
3019 __gen_field(values
->BufferSize
, 0, 31) |
3024 #define GEN8_3DSTATE_LINE_STIPPLE_length 0x00000003
3025 #define GEN8_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
3026 #define GEN8_3DSTATE_LINE_STIPPLE_header \
3028 .CommandSubType = 3, \
3029 ._3DCommandOpcode = 1, \
3030 ._3DCommandSubOpcode = 8, \
3033 struct GEN8_3DSTATE_LINE_STIPPLE
{
3034 uint32_t CommandType
;
3035 uint32_t CommandSubType
;
3036 uint32_t _3DCommandOpcode
;
3037 uint32_t _3DCommandSubOpcode
;
3038 uint32_t DwordLength
;
3039 uint32_t ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
3040 uint32_t CurrentRepeatCounter
;
3041 uint32_t CurrentStippleIndex
;
3042 uint32_t LineStipplePattern
;
3043 float LineStippleInverseRepeatCount
;
3044 uint32_t LineStippleRepeatCount
;
3048 GEN8_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3049 const struct GEN8_3DSTATE_LINE_STIPPLE
* restrict values
)
3051 uint32_t *dw
= (uint32_t * restrict
) dst
;
3054 __gen_field(values
->CommandType
, 29, 31) |
3055 __gen_field(values
->CommandSubType
, 27, 28) |
3056 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3057 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3058 __gen_field(values
->DwordLength
, 0, 7) |
3062 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
3063 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
3064 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
3065 __gen_field(values
->LineStipplePattern
, 0, 15) |
3069 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
3070 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
3075 #define GEN8_3DSTATE_MONOFILTER_SIZE_length 0x00000002
3076 #define GEN8_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
3077 #define GEN8_3DSTATE_MONOFILTER_SIZE_header \
3079 .CommandSubType = 3, \
3080 ._3DCommandOpcode = 1, \
3081 ._3DCommandSubOpcode = 17, \
3084 struct GEN8_3DSTATE_MONOFILTER_SIZE
{
3085 uint32_t CommandType
;
3086 uint32_t CommandSubType
;
3087 uint32_t _3DCommandOpcode
;
3088 uint32_t _3DCommandSubOpcode
;
3089 uint32_t DwordLength
;
3090 uint32_t MonochromeFilterWidth
;
3091 uint32_t MonochromeFilterHeight
;
3095 GEN8_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
3096 const struct GEN8_3DSTATE_MONOFILTER_SIZE
* restrict values
)
3098 uint32_t *dw
= (uint32_t * restrict
) dst
;
3101 __gen_field(values
->CommandType
, 29, 31) |
3102 __gen_field(values
->CommandSubType
, 27, 28) |
3103 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3104 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3105 __gen_field(values
->DwordLength
, 0, 7) |
3109 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
3110 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
3115 #define GEN8_3DSTATE_MULTISAMPLE_length 0x00000002
3116 #define GEN8_3DSTATE_MULTISAMPLE_length_bias 0x00000002
3117 #define GEN8_3DSTATE_MULTISAMPLE_header \
3119 .CommandSubType = 3, \
3120 ._3DCommandOpcode = 0, \
3121 ._3DCommandSubOpcode = 13, \
3124 struct GEN8_3DSTATE_MULTISAMPLE
{
3125 uint32_t CommandType
;
3126 uint32_t CommandSubType
;
3127 uint32_t _3DCommandOpcode
;
3128 uint32_t _3DCommandSubOpcode
;
3129 uint32_t DwordLength
;
3130 uint32_t PixelPositionOffsetEnable
;
3133 uint32_t PixelLocation
;
3134 uint32_t NumberofMultisamples
;
3138 GEN8_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3139 const struct GEN8_3DSTATE_MULTISAMPLE
* restrict values
)
3141 uint32_t *dw
= (uint32_t * restrict
) dst
;
3144 __gen_field(values
->CommandType
, 29, 31) |
3145 __gen_field(values
->CommandSubType
, 27, 28) |
3146 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3147 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3148 __gen_field(values
->DwordLength
, 0, 7) |
3152 __gen_field(values
->PixelPositionOffsetEnable
, 5, 5) |
3153 __gen_field(values
->PixelLocation
, 4, 4) |
3154 __gen_field(values
->NumberofMultisamples
, 1, 3) |
3159 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
3160 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
3161 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_header \
3163 .CommandSubType = 3, \
3164 ._3DCommandOpcode = 1, \
3165 ._3DCommandSubOpcode = 6, \
3168 struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET
{
3169 uint32_t CommandType
;
3170 uint32_t CommandSubType
;
3171 uint32_t _3DCommandOpcode
;
3172 uint32_t _3DCommandSubOpcode
;
3173 uint32_t DwordLength
;
3174 uint32_t PolygonStippleXOffset
;
3175 uint32_t PolygonStippleYOffset
;
3179 GEN8_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
3180 const struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
3182 uint32_t *dw
= (uint32_t * restrict
) dst
;
3185 __gen_field(values
->CommandType
, 29, 31) |
3186 __gen_field(values
->CommandSubType
, 27, 28) |
3187 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3188 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3189 __gen_field(values
->DwordLength
, 0, 7) |
3193 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
3194 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
3199 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
3200 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
3201 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_header\
3203 .CommandSubType = 3, \
3204 ._3DCommandOpcode = 1, \
3205 ._3DCommandSubOpcode = 7, \
3208 struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN
{
3209 uint32_t CommandType
;
3210 uint32_t CommandSubType
;
3211 uint32_t _3DCommandOpcode
;
3212 uint32_t _3DCommandSubOpcode
;
3213 uint32_t DwordLength
;
3214 uint32_t PatternRow
;
3218 GEN8_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
3219 const struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
3221 uint32_t *dw
= (uint32_t * restrict
) dst
;
3224 __gen_field(values
->CommandType
, 29, 31) |
3225 __gen_field(values
->CommandSubType
, 27, 28) |
3226 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3227 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3228 __gen_field(values
->DwordLength
, 0, 7) |
3232 __gen_field(values
->PatternRow
, 0, 31) |
3237 #define GEN8_3DSTATE_PS_length 0x0000000c
3238 #define GEN8_3DSTATE_PS_length_bias 0x00000002
3239 #define GEN8_3DSTATE_PS_header \
3241 .CommandSubType = 3, \
3242 ._3DCommandOpcode = 0, \
3243 ._3DCommandSubOpcode = 32, \
3246 struct GEN8_3DSTATE_PS
{
3247 uint32_t CommandType
;
3248 uint32_t CommandSubType
;
3249 uint32_t _3DCommandOpcode
;
3250 uint32_t _3DCommandSubOpcode
;
3251 uint32_t DwordLength
;
3252 uint64_t KernelStartPointer0
;
3255 uint32_t SingleProgramFlow
;
3258 uint32_t VectorMaskEnable
;
3259 #define NoSamplers 0
3260 #define _14Samplers 1
3261 #define _58Samplers 2
3262 #define _912Samplers 3
3263 #define _1316Samplers 4
3264 uint32_t SamplerCount
;
3265 #define FlushedtoZero 0
3267 uint32_t SinglePrecisionDenormalMode
;
3268 uint32_t BindingTableEntryCount
;
3271 uint32_t ThreadDispatchPriority
;
3274 uint32_t FloatingPointMode
;
3279 uint32_t RoundingMode
;
3280 uint32_t IllegalOpcodeExceptionEnable
;
3281 uint32_t MaskStackExceptionEnable
;
3282 uint32_t SoftwareExceptionEnable
;
3283 uint64_t ScratchSpaceBasePointer
;
3284 uint32_t PerThreadScratchSpace
;
3285 uint32_t MaximumNumberofThreadsPerPSD
;
3286 uint32_t PushConstantEnable
;
3287 uint32_t RenderTargetFastClearEnable
;
3288 uint32_t RenderTargetResolveEnable
;
3289 #define POSOFFSET_NONE 0
3290 #define POSOFFSET_CENTROID 2
3291 #define POSOFFSET_SAMPLE 3
3292 uint32_t PositionXYOffsetSelect
;
3293 uint32_t _32PixelDispatchEnable
;
3294 uint32_t _16PixelDispatchEnable
;
3295 uint32_t _8PixelDispatchEnable
;
3296 uint32_t DispatchGRFStartRegisterForConstantSetupData0
;
3297 uint32_t DispatchGRFStartRegisterForConstantSetupData1
;
3298 uint32_t DispatchGRFStartRegisterForConstantSetupData2
;
3299 uint64_t KernelStartPointer1
;
3300 uint64_t KernelStartPointer2
;
3304 GEN8_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3305 const struct GEN8_3DSTATE_PS
* restrict values
)
3307 uint32_t *dw
= (uint32_t * restrict
) dst
;
3310 __gen_field(values
->CommandType
, 29, 31) |
3311 __gen_field(values
->CommandSubType
, 27, 28) |
3312 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3313 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3314 __gen_field(values
->DwordLength
, 0, 7) |
3318 __gen_offset(values
->KernelStartPointer0
, 6, 63) |
3325 __gen_field(values
->SingleProgramFlow
, 31, 31) |
3326 __gen_field(values
->VectorMaskEnable
, 30, 30) |
3327 __gen_field(values
->SamplerCount
, 27, 29) |
3328 __gen_field(values
->SinglePrecisionDenormalMode
, 26, 26) |
3329 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3330 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
3331 __gen_field(values
->FloatingPointMode
, 16, 16) |
3332 __gen_field(values
->RoundingMode
, 14, 15) |
3333 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3334 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
3335 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3339 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 63) |
3340 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3347 __gen_field(values
->MaximumNumberofThreadsPerPSD
, 23, 31) |
3348 __gen_field(values
->PushConstantEnable
, 11, 11) |
3349 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
3350 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
3351 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
3352 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
3353 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
3354 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
3358 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData0
, 16, 22) |
3359 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData1
, 8, 14) |
3360 __gen_field(values
->DispatchGRFStartRegisterForConstantSetupData2
, 0, 6) |
3364 __gen_offset(values
->KernelStartPointer1
, 6, 63) |
3371 __gen_offset(values
->KernelStartPointer2
, 6, 63) |
3375 dw
[11] = qw10
>> 32;
3379 #define GEN8_3DSTATE_PS_BLEND_length 0x00000002
3380 #define GEN8_3DSTATE_PS_BLEND_length_bias 0x00000002
3381 #define GEN8_3DSTATE_PS_BLEND_header \
3383 .CommandSubType = 3, \
3384 ._3DCommandOpcode = 0, \
3385 ._3DCommandSubOpcode = 77, \
3388 struct GEN8_3DSTATE_PS_BLEND
{
3389 uint32_t CommandType
;
3390 uint32_t CommandSubType
;
3391 uint32_t _3DCommandOpcode
;
3392 uint32_t _3DCommandSubOpcode
;
3393 uint32_t DwordLength
;
3394 uint32_t AlphaToCoverageEnable
;
3395 uint32_t HasWriteableRT
;
3396 uint32_t ColorBufferBlendEnable
;
3397 uint32_t SourceAlphaBlendFactor
;
3398 uint32_t DestinationAlphaBlendFactor
;
3399 uint32_t SourceBlendFactor
;
3400 uint32_t DestinationBlendFactor
;
3401 uint32_t AlphaTestEnable
;
3402 uint32_t IndependentAlphaBlendEnable
;
3406 GEN8_3DSTATE_PS_BLEND_pack(__gen_user_data
*data
, void * restrict dst
,
3407 const struct GEN8_3DSTATE_PS_BLEND
* restrict values
)
3409 uint32_t *dw
= (uint32_t * restrict
) dst
;
3412 __gen_field(values
->CommandType
, 29, 31) |
3413 __gen_field(values
->CommandSubType
, 27, 28) |
3414 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3415 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3416 __gen_field(values
->DwordLength
, 0, 7) |
3420 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
3421 __gen_field(values
->HasWriteableRT
, 30, 30) |
3422 __gen_field(values
->ColorBufferBlendEnable
, 29, 29) |
3423 __gen_field(values
->SourceAlphaBlendFactor
, 24, 28) |
3424 __gen_field(values
->DestinationAlphaBlendFactor
, 19, 23) |
3425 __gen_field(values
->SourceBlendFactor
, 14, 18) |
3426 __gen_field(values
->DestinationBlendFactor
, 9, 13) |
3427 __gen_field(values
->AlphaTestEnable
, 8, 8) |
3428 __gen_field(values
->IndependentAlphaBlendEnable
, 7, 7) |
3433 #define GEN8_3DSTATE_PS_EXTRA_length 0x00000002
3434 #define GEN8_3DSTATE_PS_EXTRA_length_bias 0x00000002
3435 #define GEN8_3DSTATE_PS_EXTRA_header \
3437 .CommandSubType = 3, \
3438 ._3DCommandOpcode = 0, \
3439 ._3DCommandSubOpcode = 79, \
3442 struct GEN8_3DSTATE_PS_EXTRA
{
3443 uint32_t CommandType
;
3444 uint32_t CommandSubType
;
3445 uint32_t _3DCommandOpcode
;
3446 uint32_t _3DCommandSubOpcode
;
3447 uint32_t DwordLength
;
3448 uint32_t PixelShaderValid
;
3449 uint32_t PixelShaderDoesnotwritetoRT
;
3450 uint32_t oMaskPresenttoRenderTarget
;
3451 uint32_t PixelShaderKillsPixel
;
3452 #define PSCDEPTH_OFF 0
3453 #define PSCDEPTH_ON 1
3454 #define PSCDEPTH_ON_GE 2
3455 #define PSCDEPTH_ON_LE 3
3456 uint32_t PixelShaderComputedDepthMode
;
3457 uint32_t ForceComputedDepth
;
3458 uint32_t PixelShaderUsesSourceDepth
;
3459 uint32_t PixelShaderUsesSourceW
;
3461 uint32_t AttributeEnable
;
3462 uint32_t PixelShaderDisablesAlphaToCoverage
;
3463 uint32_t PixelShaderIsPerSample
;
3464 uint32_t PixelShaderHasUAV
;
3465 uint32_t PixelShaderUsesInputCoverageMask
;
3469 GEN8_3DSTATE_PS_EXTRA_pack(__gen_user_data
*data
, void * restrict dst
,
3470 const struct GEN8_3DSTATE_PS_EXTRA
* restrict values
)
3472 uint32_t *dw
= (uint32_t * restrict
) dst
;
3475 __gen_field(values
->CommandType
, 29, 31) |
3476 __gen_field(values
->CommandSubType
, 27, 28) |
3477 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3478 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3479 __gen_field(values
->DwordLength
, 0, 7) |
3483 __gen_field(values
->PixelShaderValid
, 31, 31) |
3484 __gen_field(values
->PixelShaderDoesnotwritetoRT
, 30, 30) |
3485 __gen_field(values
->oMaskPresenttoRenderTarget
, 29, 29) |
3486 __gen_field(values
->PixelShaderKillsPixel
, 28, 28) |
3487 __gen_field(values
->PixelShaderComputedDepthMode
, 26, 27) |
3488 __gen_field(values
->ForceComputedDepth
, 25, 25) |
3489 __gen_field(values
->PixelShaderUsesSourceDepth
, 24, 24) |
3490 __gen_field(values
->PixelShaderUsesSourceW
, 23, 23) |
3491 __gen_field(values
->Removed
, 17, 17) |
3492 __gen_field(values
->AttributeEnable
, 8, 8) |
3493 __gen_field(values
->PixelShaderDisablesAlphaToCoverage
, 7, 7) |
3494 __gen_field(values
->PixelShaderIsPerSample
, 6, 6) |
3495 __gen_field(values
->PixelShaderHasUAV
, 2, 2) |
3496 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 1, 1) |
3501 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
3502 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
3503 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
3505 .CommandSubType = 3, \
3506 ._3DCommandOpcode = 1, \
3507 ._3DCommandSubOpcode = 20, \
3510 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
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_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3522 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* 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_GS_length 0x00000002
3542 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
3543 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
3545 .CommandSubType = 3, \
3546 ._3DCommandOpcode = 1, \
3547 ._3DCommandSubOpcode = 21, \
3550 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
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_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3562 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* 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_HS_length 0x00000002
3582 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
3583 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
3585 .CommandSubType = 3, \
3586 ._3DCommandOpcode = 1, \
3587 ._3DCommandSubOpcode = 19, \
3590 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
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_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3602 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* 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_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
3622 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
3623 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
3625 .CommandSubType = 3, \
3626 ._3DCommandOpcode = 1, \
3627 ._3DCommandSubOpcode = 22, \
3630 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
3631 uint32_t CommandType
;
3632 uint32_t CommandSubType
;
3633 uint32_t _3DCommandOpcode
;
3634 uint32_t _3DCommandSubOpcode
;
3635 uint32_t DwordLength
;
3636 uint32_t ConstantBufferOffset
;
3637 uint32_t ConstantBufferSize
;
3641 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3642 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
3644 uint32_t *dw
= (uint32_t * restrict
) dst
;
3647 __gen_field(values
->CommandType
, 29, 31) |
3648 __gen_field(values
->CommandSubType
, 27, 28) |
3649 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3650 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3651 __gen_field(values
->DwordLength
, 0, 7) |
3655 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3656 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3661 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
3662 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
3663 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
3665 .CommandSubType = 3, \
3666 ._3DCommandOpcode = 1, \
3667 ._3DCommandSubOpcode = 18, \
3670 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
3671 uint32_t CommandType
;
3672 uint32_t CommandSubType
;
3673 uint32_t _3DCommandOpcode
;
3674 uint32_t _3DCommandSubOpcode
;
3675 uint32_t DwordLength
;
3676 uint32_t ConstantBufferOffset
;
3677 uint32_t ConstantBufferSize
;
3681 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3682 const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
3684 uint32_t *dw
= (uint32_t * restrict
) dst
;
3687 __gen_field(values
->CommandType
, 29, 31) |
3688 __gen_field(values
->CommandSubType
, 27, 28) |
3689 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3690 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3691 __gen_field(values
->DwordLength
, 0, 7) |
3695 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3696 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3701 #define GEN8_3DSTATE_RASTER_length 0x00000005
3702 #define GEN8_3DSTATE_RASTER_length_bias 0x00000002
3703 #define GEN8_3DSTATE_RASTER_header \
3705 .CommandSubType = 3, \
3706 ._3DCommandOpcode = 0, \
3707 ._3DCommandSubOpcode = 80, \
3710 struct GEN8_3DSTATE_RASTER
{
3711 uint32_t CommandType
;
3712 uint32_t CommandSubType
;
3713 uint32_t _3DCommandOpcode
;
3714 uint32_t _3DCommandSubOpcode
;
3715 uint32_t DwordLength
;
3721 #define CounterClockwise 1
3722 uint32_t FrontWinding
;
3723 #define FSC_NUMRASTSAMPLES_0 0
3724 #define FSC_NUMRASTSAMPLES_1 1
3725 #define FSC_NUMRASTSAMPLES_2 2
3726 #define FSC_NUMRASTSAMPLES_4 3
3727 #define FSC_NUMRASTSAMPLES_8 4
3728 #define FSC_NUMRASTSAMPLES_16 5
3729 uint32_t ForcedSampleCount
;
3730 #define CULLMODE_BOTH 0
3731 #define CULLMODE_NONE 1
3732 #define CULLMODE_FRONT 2
3733 #define CULLMODE_BACK 3
3737 uint32_t ForceMultisampling
;
3738 uint32_t SmoothPointEnable
;
3739 uint32_t DXMultisampleRasterizationEnable
;
3740 #define MSRASTMODE_OFF_PIXEL 0
3741 #define MSRASTMODE_OFF_PATTERN 1
3742 #define MSRASTMODE_ON_PIXEL 2
3743 #define MSRASTMODE_ON_PATTERN 3
3744 uint32_t DXMultisampleRasterizationMode
;
3745 uint32_t GlobalDepthOffsetEnableSolid
;
3746 uint32_t GlobalDepthOffsetEnableWireframe
;
3747 uint32_t GlobalDepthOffsetEnablePoint
;
3748 #define RASTER_SOLID 0
3749 #define RASTER_WIREFRAME 1
3750 #define RASTER_POINT 2
3751 uint32_t FrontFaceFillMode
;
3752 #define RASTER_SOLID 0
3753 #define RASTER_WIREFRAME 1
3754 #define RASTER_POINT 2
3755 uint32_t BackFaceFillMode
;
3756 uint32_t AntialiasingEnable
;
3757 uint32_t ScissorRectangleEnable
;
3758 uint32_t ViewportZClipTestEnable
;
3759 float GlobalDepthOffsetConstant
;
3760 float GlobalDepthOffsetScale
;
3761 float GlobalDepthOffsetClamp
;
3765 GEN8_3DSTATE_RASTER_pack(__gen_user_data
*data
, void * restrict dst
,
3766 const struct GEN8_3DSTATE_RASTER
* restrict values
)
3768 uint32_t *dw
= (uint32_t * restrict
) dst
;
3771 __gen_field(values
->CommandType
, 29, 31) |
3772 __gen_field(values
->CommandSubType
, 27, 28) |
3773 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3774 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3775 __gen_field(values
->DwordLength
, 0, 7) |
3779 __gen_field(values
->APIMode
, 22, 23) |
3780 __gen_field(values
->FrontWinding
, 21, 21) |
3781 __gen_field(values
->ForcedSampleCount
, 18, 20) |
3782 __gen_field(values
->CullMode
, 16, 17) |
3783 __gen_field(values
->ForceMultisampling
, 14, 14) |
3784 __gen_field(values
->SmoothPointEnable
, 13, 13) |
3785 __gen_field(values
->DXMultisampleRasterizationEnable
, 12, 12) |
3786 __gen_field(values
->DXMultisampleRasterizationMode
, 10, 11) |
3787 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3788 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3789 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3790 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3791 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3792 __gen_field(values
->AntialiasingEnable
, 2, 2) |
3793 __gen_field(values
->ScissorRectangleEnable
, 1, 1) |
3794 __gen_field(values
->ViewportZClipTestEnable
, 0, 0) |
3798 __gen_float(values
->GlobalDepthOffsetConstant
) |
3802 __gen_float(values
->GlobalDepthOffsetScale
) |
3806 __gen_float(values
->GlobalDepthOffsetClamp
) |
3811 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
3812 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
3814 .CommandSubType = 3, \
3815 ._3DCommandOpcode = 1, \
3816 ._3DCommandSubOpcode = 2
3818 struct GEN8_PALETTE_ENTRY
{
3826 GEN8_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3827 const struct GEN8_PALETTE_ENTRY
* restrict values
)
3829 uint32_t *dw
= (uint32_t * restrict
) dst
;
3832 __gen_field(values
->Alpha
, 24, 31) |
3833 __gen_field(values
->Red
, 16, 23) |
3834 __gen_field(values
->Green
, 8, 15) |
3835 __gen_field(values
->Blue
, 0, 7) |
3840 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0
{
3841 uint32_t CommandType
;
3842 uint32_t CommandSubType
;
3843 uint32_t _3DCommandOpcode
;
3844 uint32_t _3DCommandSubOpcode
;
3845 uint32_t DwordLength
;
3846 /* variable length fields follow */
3850 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
3851 const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
3853 uint32_t *dw
= (uint32_t * restrict
) dst
;
3856 __gen_field(values
->CommandType
, 29, 31) |
3857 __gen_field(values
->CommandSubType
, 27, 28) |
3858 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3859 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3860 __gen_field(values
->DwordLength
, 0, 7) |
3863 /* variable length fields follow */
3866 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
3867 #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
3869 .CommandSubType = 3, \
3870 ._3DCommandOpcode = 1, \
3871 ._3DCommandSubOpcode = 12
3873 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1
{
3874 uint32_t CommandType
;
3875 uint32_t CommandSubType
;
3876 uint32_t _3DCommandOpcode
;
3877 uint32_t _3DCommandSubOpcode
;
3878 uint32_t DwordLength
;
3879 /* variable length fields follow */
3883 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
3884 const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
3886 uint32_t *dw
= (uint32_t * restrict
) dst
;
3889 __gen_field(values
->CommandType
, 29, 31) |
3890 __gen_field(values
->CommandSubType
, 27, 28) |
3891 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3892 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3893 __gen_field(values
->DwordLength
, 0, 7) |
3896 /* variable length fields follow */
3899 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
3900 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
3901 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
3903 .CommandSubType = 3, \
3904 ._3DCommandOpcode = 0, \
3905 ._3DCommandSubOpcode = 45, \
3908 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
3909 uint32_t CommandType
;
3910 uint32_t CommandSubType
;
3911 uint32_t _3DCommandOpcode
;
3912 uint32_t _3DCommandSubOpcode
;
3913 uint32_t DwordLength
;
3914 uint32_t PointertoDSSamplerState
;
3918 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3919 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
3921 uint32_t *dw
= (uint32_t * restrict
) dst
;
3924 __gen_field(values
->CommandType
, 29, 31) |
3925 __gen_field(values
->CommandSubType
, 27, 28) |
3926 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3927 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3928 __gen_field(values
->DwordLength
, 0, 7) |
3932 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
3937 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
3938 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
3939 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
3941 .CommandSubType = 3, \
3942 ._3DCommandOpcode = 0, \
3943 ._3DCommandSubOpcode = 46, \
3946 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
3947 uint32_t CommandType
;
3948 uint32_t CommandSubType
;
3949 uint32_t _3DCommandOpcode
;
3950 uint32_t _3DCommandSubOpcode
;
3951 uint32_t DwordLength
;
3952 uint32_t PointertoGSSamplerState
;
3956 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3957 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
3959 uint32_t *dw
= (uint32_t * restrict
) dst
;
3962 __gen_field(values
->CommandType
, 29, 31) |
3963 __gen_field(values
->CommandSubType
, 27, 28) |
3964 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3965 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3966 __gen_field(values
->DwordLength
, 0, 7) |
3970 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
3975 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
3976 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
3977 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
3979 .CommandSubType = 3, \
3980 ._3DCommandOpcode = 0, \
3981 ._3DCommandSubOpcode = 44, \
3984 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
3985 uint32_t CommandType
;
3986 uint32_t CommandSubType
;
3987 uint32_t _3DCommandOpcode
;
3988 uint32_t _3DCommandSubOpcode
;
3989 uint32_t DwordLength
;
3990 uint32_t PointertoHSSamplerState
;
3994 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3995 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
3997 uint32_t *dw
= (uint32_t * restrict
) dst
;
4000 __gen_field(values
->CommandType
, 29, 31) |
4001 __gen_field(values
->CommandSubType
, 27, 28) |
4002 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4003 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4004 __gen_field(values
->DwordLength
, 0, 7) |
4008 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
4013 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
4014 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
4015 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
4017 .CommandSubType = 3, \
4018 ._3DCommandOpcode = 0, \
4019 ._3DCommandSubOpcode = 47, \
4022 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
4023 uint32_t CommandType
;
4024 uint32_t CommandSubType
;
4025 uint32_t _3DCommandOpcode
;
4026 uint32_t _3DCommandSubOpcode
;
4027 uint32_t DwordLength
;
4028 uint32_t PointertoPSSamplerState
;
4032 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
4033 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
4035 uint32_t *dw
= (uint32_t * restrict
) dst
;
4038 __gen_field(values
->CommandType
, 29, 31) |
4039 __gen_field(values
->CommandSubType
, 27, 28) |
4040 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4041 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4042 __gen_field(values
->DwordLength
, 0, 7) |
4046 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
4051 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
4052 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
4053 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
4055 .CommandSubType = 3, \
4056 ._3DCommandOpcode = 0, \
4057 ._3DCommandSubOpcode = 43, \
4060 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
4061 uint32_t CommandType
;
4062 uint32_t CommandSubType
;
4063 uint32_t _3DCommandOpcode
;
4064 uint32_t _3DCommandSubOpcode
;
4065 uint32_t DwordLength
;
4066 uint32_t PointertoVSSamplerState
;
4070 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4071 const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
4073 uint32_t *dw
= (uint32_t * restrict
) dst
;
4076 __gen_field(values
->CommandType
, 29, 31) |
4077 __gen_field(values
->CommandSubType
, 27, 28) |
4078 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4079 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4080 __gen_field(values
->DwordLength
, 0, 7) |
4084 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
4089 #define GEN8_3DSTATE_SAMPLE_MASK_length 0x00000002
4090 #define GEN8_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
4091 #define GEN8_3DSTATE_SAMPLE_MASK_header \
4093 .CommandSubType = 3, \
4094 ._3DCommandOpcode = 0, \
4095 ._3DCommandSubOpcode = 24, \
4098 struct GEN8_3DSTATE_SAMPLE_MASK
{
4099 uint32_t CommandType
;
4100 uint32_t CommandSubType
;
4101 uint32_t _3DCommandOpcode
;
4102 uint32_t _3DCommandSubOpcode
;
4103 uint32_t DwordLength
;
4104 uint32_t SampleMask
;
4108 GEN8_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
4109 const struct GEN8_3DSTATE_SAMPLE_MASK
* restrict values
)
4111 uint32_t *dw
= (uint32_t * restrict
) dst
;
4114 __gen_field(values
->CommandType
, 29, 31) |
4115 __gen_field(values
->CommandSubType
, 27, 28) |
4116 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4117 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4118 __gen_field(values
->DwordLength
, 0, 7) |
4122 __gen_field(values
->SampleMask
, 0, 15) |
4127 #define GEN8_3DSTATE_SAMPLE_PATTERN_length 0x00000009
4128 #define GEN8_3DSTATE_SAMPLE_PATTERN_length_bias 0x00000002
4129 #define GEN8_3DSTATE_SAMPLE_PATTERN_header \
4131 .CommandSubType = 3, \
4132 ._3DCommandOpcode = 1, \
4133 ._3DCommandSubOpcode = 28, \
4136 struct GEN8_3DSTATE_SAMPLE_PATTERN
{
4137 uint32_t CommandType
;
4138 uint32_t CommandSubType
;
4139 uint32_t _3DCommandOpcode
;
4140 uint32_t _3DCommandSubOpcode
;
4141 uint32_t DwordLength
;
4142 float _8xSample7XOffset
;
4143 float _8xSample7YOffset
;
4144 float _8xSample6XOffset
;
4145 float _8xSample6YOffset
;
4146 float _8xSample5XOffset
;
4147 float _8xSample5YOffset
;
4148 float _8xSample4XOffset
;
4149 float _8xSample4YOffset
;
4150 float _8xSample3XOffset
;
4151 float _8xSample3YOffset
;
4152 float _8xSample2XOffset
;
4153 float _8xSample2YOffset
;
4154 float _8xSample1XOffset
;
4155 float _8xSample1YOffset
;
4156 float _8xSample0XOffset
;
4157 float _8xSample0YOffset
;
4158 float _4xSample3XOffset
;
4159 float _4xSample3YOffset
;
4160 float _4xSample2XOffset
;
4161 float _4xSample2YOffset
;
4162 float _4xSample1XOffset
;
4163 float _4xSample1YOffset
;
4164 float _4xSample0XOffset
;
4165 float _4xSample0YOffset
;
4166 float _1xSample0XOffset
;
4167 float _1xSample0YOffset
;
4168 float _2xSample1XOffset
;
4169 float _2xSample1YOffset
;
4170 float _2xSample0XOffset
;
4171 float _2xSample0YOffset
;
4175 GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
4176 const struct GEN8_3DSTATE_SAMPLE_PATTERN
* restrict values
)
4178 uint32_t *dw
= (uint32_t * restrict
) dst
;
4181 __gen_field(values
->CommandType
, 29, 31) |
4182 __gen_field(values
->CommandSubType
, 27, 28) |
4183 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4184 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4185 __gen_field(values
->DwordLength
, 0, 7) |
4192 __gen_field(values
->_8xSample7XOffset
* (1 << 4), 28, 31) |
4193 __gen_field(values
->_8xSample7YOffset
* (1 << 4), 24, 27) |
4194 __gen_field(values
->_8xSample6XOffset
* (1 << 4), 20, 23) |
4195 __gen_field(values
->_8xSample6YOffset
* (1 << 4), 16, 19) |
4196 __gen_field(values
->_8xSample5XOffset
* (1 << 4), 12, 15) |
4197 __gen_field(values
->_8xSample5YOffset
* (1 << 4), 8, 11) |
4198 __gen_field(values
->_8xSample4XOffset
* (1 << 4), 4, 7) |
4199 __gen_field(values
->_8xSample4YOffset
* (1 << 4), 0, 3) |
4203 __gen_field(values
->_8xSample3XOffset
* (1 << 4), 28, 31) |
4204 __gen_field(values
->_8xSample3YOffset
* (1 << 4), 24, 27) |
4205 __gen_field(values
->_8xSample2XOffset
* (1 << 4), 20, 23) |
4206 __gen_field(values
->_8xSample2YOffset
* (1 << 4), 16, 19) |
4207 __gen_field(values
->_8xSample1XOffset
* (1 << 4), 12, 15) |
4208 __gen_field(values
->_8xSample1YOffset
* (1 << 4), 8, 11) |
4209 __gen_field(values
->_8xSample0XOffset
* (1 << 4), 4, 7) |
4210 __gen_field(values
->_8xSample0YOffset
* (1 << 4), 0, 3) |
4214 __gen_field(values
->_4xSample3XOffset
* (1 << 4), 28, 31) |
4215 __gen_field(values
->_4xSample3YOffset
* (1 << 4), 24, 27) |
4216 __gen_field(values
->_4xSample2XOffset
* (1 << 4), 20, 23) |
4217 __gen_field(values
->_4xSample2YOffset
* (1 << 4), 16, 19) |
4218 __gen_field(values
->_4xSample1XOffset
* (1 << 4), 12, 15) |
4219 __gen_field(values
->_4xSample1YOffset
* (1 << 4), 8, 11) |
4220 __gen_field(values
->_4xSample0XOffset
* (1 << 4), 4, 7) |
4221 __gen_field(values
->_4xSample0YOffset
* (1 << 4), 0, 3) |
4225 __gen_field(values
->_1xSample0XOffset
* (1 << 4), 20, 23) |
4226 __gen_field(values
->_1xSample0YOffset
* (1 << 4), 16, 19) |
4227 __gen_field(values
->_2xSample1XOffset
* (1 << 4), 12, 15) |
4228 __gen_field(values
->_2xSample1YOffset
* (1 << 4), 8, 11) |
4229 __gen_field(values
->_2xSample0XOffset
* (1 << 4), 4, 7) |
4230 __gen_field(values
->_2xSample0YOffset
* (1 << 4), 0, 3) |
4235 #define GEN8_3DSTATE_SBE_length 0x00000004
4236 #define GEN8_3DSTATE_SBE_length_bias 0x00000002
4237 #define GEN8_3DSTATE_SBE_header \
4239 .CommandSubType = 3, \
4240 ._3DCommandOpcode = 0, \
4241 ._3DCommandSubOpcode = 31, \
4244 struct GEN8_3DSTATE_SBE
{
4245 uint32_t CommandType
;
4246 uint32_t CommandSubType
;
4247 uint32_t _3DCommandOpcode
;
4248 uint32_t _3DCommandSubOpcode
;
4249 uint32_t DwordLength
;
4250 uint32_t ForceVertexURBEntryReadLength
;
4251 uint32_t ForceVertexURBEntryReadOffset
;
4252 uint32_t NumberofSFOutputAttributes
;
4253 uint32_t AttributeSwizzleEnable
;
4256 uint32_t PointSpriteTextureCoordinateOrigin
;
4257 uint32_t PrimitiveIDOverrideComponentW
;
4258 uint32_t PrimitiveIDOverrideComponentZ
;
4259 uint32_t PrimitiveIDOverrideComponentY
;
4260 uint32_t PrimitiveIDOverrideComponentX
;
4261 uint32_t VertexURBEntryReadLength
;
4262 uint32_t VertexURBEntryReadOffset
;
4263 uint32_t PrimitiveIDOverrideAttributeSelect
;
4264 uint32_t PointSpriteTextureCoordinateEnable
;
4265 uint32_t ConstantInterpolationEnable
;
4269 GEN8_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
4270 const struct GEN8_3DSTATE_SBE
* restrict values
)
4272 uint32_t *dw
= (uint32_t * restrict
) dst
;
4275 __gen_field(values
->CommandType
, 29, 31) |
4276 __gen_field(values
->CommandSubType
, 27, 28) |
4277 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4278 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4279 __gen_field(values
->DwordLength
, 0, 7) |
4283 __gen_field(values
->ForceVertexURBEntryReadLength
, 29, 29) |
4284 __gen_field(values
->ForceVertexURBEntryReadOffset
, 28, 28) |
4285 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
4286 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
4287 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
4288 __gen_field(values
->PrimitiveIDOverrideComponentW
, 19, 19) |
4289 __gen_field(values
->PrimitiveIDOverrideComponentZ
, 18, 18) |
4290 __gen_field(values
->PrimitiveIDOverrideComponentY
, 17, 17) |
4291 __gen_field(values
->PrimitiveIDOverrideComponentX
, 16, 16) |
4292 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
4293 __gen_field(values
->VertexURBEntryReadOffset
, 5, 10) |
4294 __gen_field(values
->PrimitiveIDOverrideAttributeSelect
, 0, 4) |
4298 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
4302 __gen_field(values
->ConstantInterpolationEnable
, 0, 31) |
4307 #define GEN8_3DSTATE_SBE_SWIZ_length 0x0000000b
4308 #define GEN8_3DSTATE_SBE_SWIZ_length_bias 0x00000002
4309 #define GEN8_3DSTATE_SBE_SWIZ_header \
4311 .CommandSubType = 3, \
4312 ._3DCommandOpcode = 0, \
4313 ._3DCommandSubOpcode = 81, \
4316 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL
{
4317 uint32_t ComponentOverrideW
;
4318 uint32_t ComponentOverrideZ
;
4319 uint32_t ComponentOverrideY
;
4320 uint32_t ComponentOverrideX
;
4321 uint32_t SwizzleControlMode
;
4322 #define CONST_0000 0
4323 #define CONST_0001_FLOAT 1
4324 #define CONST_1111_FLOAT 2
4326 uint32_t ConstantSource
;
4328 #define INPUTATTR_FACING 1
4329 #define INPUTATTR_W 2
4330 #define INPUTATTR_FACING_W 3
4331 uint32_t SwizzleSelect
;
4332 uint32_t SourceAttribute
;
4336 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(__gen_user_data
*data
, void * restrict dst
,
4337 const struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL
* restrict values
)
4339 uint32_t *dw
= (uint32_t * restrict
) dst
;
4342 __gen_field(values
->ComponentOverrideW
, 15, 15) |
4343 __gen_field(values
->ComponentOverrideZ
, 14, 14) |
4344 __gen_field(values
->ComponentOverrideY
, 13, 13) |
4345 __gen_field(values
->ComponentOverrideX
, 12, 12) |
4346 __gen_field(values
->SwizzleControlMode
, 11, 11) |
4347 __gen_field(values
->ConstantSource
, 9, 10) |
4348 __gen_field(values
->SwizzleSelect
, 6, 7) |
4349 __gen_field(values
->SourceAttribute
, 0, 4) |
4354 struct GEN8_3DSTATE_SBE_SWIZ
{
4355 uint32_t CommandType
;
4356 uint32_t CommandSubType
;
4357 uint32_t _3DCommandOpcode
;
4358 uint32_t _3DCommandSubOpcode
;
4359 uint32_t DwordLength
;
4360 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL Attribute
;
4361 uint32_t Attribute15WrapShortestEnables
;
4362 uint32_t Attribute14WrapShortestEnables
;
4363 uint32_t Attribute13WrapShortestEnables
;
4364 uint32_t Attribute12WrapShortestEnables
;
4365 uint32_t Attribute11WrapShortestEnables
;
4366 uint32_t Attribute10WrapShortestEnables
;
4367 uint32_t Attribute09WrapShortestEnables
;
4368 uint32_t Attribute08WrapShortestEnables
;
4369 uint32_t Attribute07WrapShortestEnables
;
4370 uint32_t Attribute06WrapShortestEnables
;
4371 uint32_t Attribute05WrapShortestEnables
;
4372 uint32_t Attribute04WrapShortestEnables
;
4373 uint32_t Attribute03WrapShortestEnables
;
4374 uint32_t Attribute02WrapShortestEnables
;
4375 uint32_t Attribute01WrapShortestEnables
;
4376 uint32_t Attribute00WrapShortestEnables
;
4380 GEN8_3DSTATE_SBE_SWIZ_pack(__gen_user_data
*data
, void * restrict dst
,
4381 const struct GEN8_3DSTATE_SBE_SWIZ
* restrict values
)
4383 uint32_t *dw
= (uint32_t * restrict
) dst
;
4386 __gen_field(values
->CommandType
, 29, 31) |
4387 __gen_field(values
->CommandSubType
, 27, 28) |
4388 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4389 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4390 __gen_field(values
->DwordLength
, 0, 7) |
4393 uint32_t dw_Attribute
;
4394 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data
, &dw_Attribute
, &values
->Attribute
);
4396 __gen_field(dw_Attribute
, 0, 15) |
4400 __gen_field(values
->Attribute15WrapShortestEnables
, 60, 63) |
4401 __gen_field(values
->Attribute14WrapShortestEnables
, 56, 59) |
4402 __gen_field(values
->Attribute13WrapShortestEnables
, 52, 55) |
4403 __gen_field(values
->Attribute12WrapShortestEnables
, 48, 51) |
4404 __gen_field(values
->Attribute11WrapShortestEnables
, 44, 47) |
4405 __gen_field(values
->Attribute10WrapShortestEnables
, 40, 43) |
4406 __gen_field(values
->Attribute09WrapShortestEnables
, 36, 39) |
4407 __gen_field(values
->Attribute08WrapShortestEnables
, 32, 35) |
4408 __gen_field(values
->Attribute07WrapShortestEnables
, 28, 31) |
4409 __gen_field(values
->Attribute06WrapShortestEnables
, 24, 27) |
4410 __gen_field(values
->Attribute05WrapShortestEnables
, 20, 23) |
4411 __gen_field(values
->Attribute04WrapShortestEnables
, 16, 19) |
4412 __gen_field(values
->Attribute03WrapShortestEnables
, 12, 15) |
4413 __gen_field(values
->Attribute02WrapShortestEnables
, 8, 11) |
4414 __gen_field(values
->Attribute01WrapShortestEnables
, 4, 7) |
4415 __gen_field(values
->Attribute00WrapShortestEnables
, 0, 3) |
4423 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
4424 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
4425 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_header\
4427 .CommandSubType = 3, \
4428 ._3DCommandOpcode = 0, \
4429 ._3DCommandSubOpcode = 15, \
4432 struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS
{
4433 uint32_t CommandType
;
4434 uint32_t CommandSubType
;
4435 uint32_t _3DCommandOpcode
;
4436 uint32_t _3DCommandSubOpcode
;
4437 uint32_t DwordLength
;
4438 uint32_t ScissorRectPointer
;
4442 GEN8_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
4443 const struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
4445 uint32_t *dw
= (uint32_t * restrict
) dst
;
4448 __gen_field(values
->CommandType
, 29, 31) |
4449 __gen_field(values
->CommandSubType
, 27, 28) |
4450 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4451 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4452 __gen_field(values
->DwordLength
, 0, 7) |
4456 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
4461 #define GEN8_3DSTATE_SF_length 0x00000004
4462 #define GEN8_3DSTATE_SF_length_bias 0x00000002
4463 #define GEN8_3DSTATE_SF_header \
4465 .CommandSubType = 3, \
4466 ._3DCommandOpcode = 0, \
4467 ._3DCommandSubOpcode = 19, \
4470 struct GEN8_3DSTATE_SF
{
4471 uint32_t CommandType
;
4472 uint32_t CommandSubType
;
4473 uint32_t _3DCommandOpcode
;
4474 uint32_t _3DCommandSubOpcode
;
4475 uint32_t DwordLength
;
4476 uint32_t LegacyGlobalDepthBiasEnable
;
4477 uint32_t StatisticsEnable
;
4478 uint32_t ViewportTransformEnable
;
4484 uint32_t LineEndCapAntialiasingRegionWidth
;
4485 uint32_t LastPixelEnable
;
4486 uint32_t TriangleStripListProvokingVertexSelect
;
4487 uint32_t LineStripListProvokingVertexSelect
;
4488 uint32_t TriangleFanProvokingVertexSelect
;
4489 #define AALINEDISTANCE_TRUE 1
4490 uint32_t AALineDistanceMode
;
4491 uint32_t SmoothPointEnable
;
4492 uint32_t VertexSubPixelPrecisionSelect
;
4495 uint32_t PointWidthSource
;
4500 GEN8_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
4501 const struct GEN8_3DSTATE_SF
* restrict values
)
4503 uint32_t *dw
= (uint32_t * restrict
) dst
;
4506 __gen_field(values
->CommandType
, 29, 31) |
4507 __gen_field(values
->CommandSubType
, 27, 28) |
4508 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4509 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4510 __gen_field(values
->DwordLength
, 0, 7) |
4514 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
4515 __gen_field(values
->StatisticsEnable
, 10, 10) |
4516 __gen_field(values
->ViewportTransformEnable
, 1, 1) |
4520 __gen_field(values
->LineWidth
* (1 << 7), 18, 27) |
4521 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
4525 __gen_field(values
->LastPixelEnable
, 31, 31) |
4526 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
4527 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
4528 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
4529 __gen_field(values
->AALineDistanceMode
, 14, 14) |
4530 __gen_field(values
->SmoothPointEnable
, 13, 13) |
4531 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
4532 __gen_field(values
->PointWidthSource
, 11, 11) |
4533 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
4538 #define GEN8_3DSTATE_SO_BUFFER_length 0x00000008
4539 #define GEN8_3DSTATE_SO_BUFFER_length_bias 0x00000002
4540 #define GEN8_3DSTATE_SO_BUFFER_header \
4542 .CommandSubType = 3, \
4543 ._3DCommandOpcode = 1, \
4544 ._3DCommandSubOpcode = 24, \
4547 struct GEN8_3DSTATE_SO_BUFFER
{
4548 uint32_t CommandType
;
4549 uint32_t CommandSubType
;
4550 uint32_t _3DCommandOpcode
;
4551 uint32_t _3DCommandSubOpcode
;
4552 uint32_t DwordLength
;
4553 uint32_t SOBufferEnable
;
4554 uint32_t SOBufferIndex
;
4555 struct GEN8_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
4556 uint32_t StreamOffsetWriteEnable
;
4557 uint32_t StreamOutputBufferOffsetAddressEnable
;
4558 __gen_address_type SurfaceBaseAddress
;
4559 uint32_t SurfaceSize
;
4560 __gen_address_type StreamOutputBufferOffsetAddress
;
4561 uint32_t StreamOffset
;
4565 GEN8_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4566 const struct GEN8_3DSTATE_SO_BUFFER
* restrict values
)
4568 uint32_t *dw
= (uint32_t * restrict
) dst
;
4571 __gen_field(values
->CommandType
, 29, 31) |
4572 __gen_field(values
->CommandSubType
, 27, 28) |
4573 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4574 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4575 __gen_field(values
->DwordLength
, 0, 7) |
4578 uint32_t dw_SOBufferObjectControlState
;
4579 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
4581 __gen_field(values
->SOBufferEnable
, 31, 31) |
4582 __gen_field(values
->SOBufferIndex
, 29, 30) |
4583 __gen_field(dw_SOBufferObjectControlState
, 22, 28) |
4584 __gen_field(values
->StreamOffsetWriteEnable
, 21, 21) |
4585 __gen_field(values
->StreamOutputBufferOffsetAddressEnable
, 20, 20) |
4592 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4598 __gen_field(values
->SurfaceSize
, 0, 29) |
4605 __gen_combine_address(data
, &dw
[5], values
->StreamOutputBufferOffsetAddress
, dw5
);
4611 __gen_field(values
->StreamOffset
, 0, 31) |
4616 #define GEN8_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
4617 #define GEN8_3DSTATE_SO_DECL_LIST_header \
4619 .CommandSubType = 3, \
4620 ._3DCommandOpcode = 1, \
4621 ._3DCommandSubOpcode = 23
4623 struct GEN8_SO_DECL
{
4624 uint32_t OutputBufferSlot
;
4626 uint32_t RegisterIndex
;
4627 uint32_t ComponentMask
;
4631 GEN8_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
4632 const struct GEN8_SO_DECL
* restrict values
)
4634 uint32_t *dw
= (uint32_t * restrict
) dst
;
4637 __gen_field(values
->OutputBufferSlot
, 12, 13) |
4638 __gen_field(values
->HoleFlag
, 11, 11) |
4639 __gen_field(values
->RegisterIndex
, 4, 9) |
4640 __gen_field(values
->ComponentMask
, 0, 3) |
4645 struct GEN8_SO_DECL_ENTRY
{
4646 struct GEN8_SO_DECL Stream3Decl
;
4647 struct GEN8_SO_DECL Stream2Decl
;
4648 struct GEN8_SO_DECL Stream1Decl
;
4649 struct GEN8_SO_DECL Stream0Decl
;
4653 GEN8_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
4654 const struct GEN8_SO_DECL_ENTRY
* restrict values
)
4656 uint32_t *dw
= (uint32_t * restrict
) dst
;
4658 uint32_t dw_Stream3Decl
;
4659 GEN8_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
4660 uint32_t dw_Stream2Decl
;
4661 GEN8_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
4662 uint32_t dw_Stream1Decl
;
4663 GEN8_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
4664 uint32_t dw_Stream0Decl
;
4665 GEN8_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
4667 __gen_field(dw_Stream3Decl
, 48, 63) |
4668 __gen_field(dw_Stream2Decl
, 32, 47) |
4669 __gen_field(dw_Stream1Decl
, 16, 31) |
4670 __gen_field(dw_Stream0Decl
, 0, 15) |
4678 struct GEN8_3DSTATE_SO_DECL_LIST
{
4679 uint32_t CommandType
;
4680 uint32_t CommandSubType
;
4681 uint32_t _3DCommandOpcode
;
4682 uint32_t _3DCommandSubOpcode
;
4683 uint32_t DwordLength
;
4684 uint32_t StreamtoBufferSelects3
;
4685 uint32_t StreamtoBufferSelects2
;
4686 uint32_t StreamtoBufferSelects1
;
4687 uint32_t StreamtoBufferSelects0
;
4688 uint32_t NumEntries3
;
4689 uint32_t NumEntries2
;
4690 uint32_t NumEntries1
;
4691 uint32_t NumEntries0
;
4692 /* variable length fields follow */
4696 GEN8_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
4697 const struct GEN8_3DSTATE_SO_DECL_LIST
* restrict values
)
4699 uint32_t *dw
= (uint32_t * restrict
) dst
;
4702 __gen_field(values
->CommandType
, 29, 31) |
4703 __gen_field(values
->CommandSubType
, 27, 28) |
4704 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4705 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4706 __gen_field(values
->DwordLength
, 0, 8) |
4710 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
4711 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
4712 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
4713 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
4717 __gen_field(values
->NumEntries3
, 24, 31) |
4718 __gen_field(values
->NumEntries2
, 16, 23) |
4719 __gen_field(values
->NumEntries1
, 8, 15) |
4720 __gen_field(values
->NumEntries0
, 0, 7) |
4723 /* variable length fields follow */
4726 #define GEN8_3DSTATE_STENCIL_BUFFER_length 0x00000005
4727 #define GEN8_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
4728 #define GEN8_3DSTATE_STENCIL_BUFFER_header \
4730 .CommandSubType = 3, \
4731 ._3DCommandOpcode = 0, \
4732 ._3DCommandSubOpcode = 6, \
4735 struct GEN8_3DSTATE_STENCIL_BUFFER
{
4736 uint32_t CommandType
;
4737 uint32_t CommandSubType
;
4738 uint32_t _3DCommandOpcode
;
4739 uint32_t _3DCommandSubOpcode
;
4740 uint32_t DwordLength
;
4741 uint32_t StencilBufferEnable
;
4742 struct GEN8_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
4743 uint32_t SurfacePitch
;
4744 __gen_address_type SurfaceBaseAddress
;
4745 uint32_t SurfaceQPitch
;
4749 GEN8_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4750 const struct GEN8_3DSTATE_STENCIL_BUFFER
* restrict values
)
4752 uint32_t *dw
= (uint32_t * restrict
) dst
;
4755 __gen_field(values
->CommandType
, 29, 31) |
4756 __gen_field(values
->CommandSubType
, 27, 28) |
4757 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4758 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4759 __gen_field(values
->DwordLength
, 0, 7) |
4762 uint32_t dw_StencilBufferObjectControlState
;
4763 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
4765 __gen_field(values
->StencilBufferEnable
, 31, 31) |
4766 __gen_field(dw_StencilBufferObjectControlState
, 22, 28) |
4767 __gen_field(values
->SurfacePitch
, 0, 16) |
4774 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4780 __gen_field(values
->SurfaceQPitch
, 0, 14) |
4785 #define GEN8_3DSTATE_STREAMOUT_length 0x00000005
4786 #define GEN8_3DSTATE_STREAMOUT_length_bias 0x00000002
4787 #define GEN8_3DSTATE_STREAMOUT_header \
4789 .CommandSubType = 3, \
4790 ._3DCommandOpcode = 0, \
4791 ._3DCommandSubOpcode = 30, \
4794 struct GEN8_3DSTATE_STREAMOUT
{
4795 uint32_t CommandType
;
4796 uint32_t CommandSubType
;
4797 uint32_t _3DCommandOpcode
;
4798 uint32_t _3DCommandSubOpcode
;
4799 uint32_t DwordLength
;
4800 uint32_t SOFunctionEnable
;
4801 uint32_t APIRenderingDisable
;
4802 uint32_t RenderStreamSelect
;
4805 uint32_t ReorderMode
;
4806 uint32_t SOStatisticsEnable
;
4811 uint32_t ForceRendering
;
4812 uint32_t Stream3VertexReadOffset
;
4813 uint32_t Stream3VertexReadLength
;
4814 uint32_t Stream2VertexReadOffset
;
4815 uint32_t Stream2VertexReadLength
;
4816 uint32_t Stream1VertexReadOffset
;
4817 uint32_t Stream1VertexReadLength
;
4818 uint32_t Stream0VertexReadOffset
;
4819 uint32_t Stream0VertexReadLength
;
4820 uint32_t Buffer1SurfacePitch
;
4821 uint32_t Buffer0SurfacePitch
;
4822 uint32_t Buffer3SurfacePitch
;
4823 uint32_t Buffer2SurfacePitch
;
4827 GEN8_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
4828 const struct GEN8_3DSTATE_STREAMOUT
* restrict values
)
4830 uint32_t *dw
= (uint32_t * restrict
) dst
;
4833 __gen_field(values
->CommandType
, 29, 31) |
4834 __gen_field(values
->CommandSubType
, 27, 28) |
4835 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4836 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4837 __gen_field(values
->DwordLength
, 0, 7) |
4841 __gen_field(values
->SOFunctionEnable
, 31, 31) |
4842 __gen_field(values
->APIRenderingDisable
, 30, 30) |
4843 __gen_field(values
->RenderStreamSelect
, 27, 28) |
4844 __gen_field(values
->ReorderMode
, 26, 26) |
4845 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
4846 __gen_field(values
->ForceRendering
, 23, 24) |
4850 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
4851 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
4852 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
4853 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
4854 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
4855 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
4856 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
4857 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
4861 __gen_field(values
->Buffer1SurfacePitch
, 16, 27) |
4862 __gen_field(values
->Buffer0SurfacePitch
, 0, 11) |
4866 __gen_field(values
->Buffer3SurfacePitch
, 16, 27) |
4867 __gen_field(values
->Buffer2SurfacePitch
, 0, 11) |
4872 #define GEN8_3DSTATE_TE_length 0x00000004
4873 #define GEN8_3DSTATE_TE_length_bias 0x00000002
4874 #define GEN8_3DSTATE_TE_header \
4876 .CommandSubType = 3, \
4877 ._3DCommandOpcode = 0, \
4878 ._3DCommandSubOpcode = 28, \
4881 struct GEN8_3DSTATE_TE
{
4882 uint32_t CommandType
;
4883 uint32_t CommandSubType
;
4884 uint32_t _3DCommandOpcode
;
4885 uint32_t _3DCommandSubOpcode
;
4886 uint32_t DwordLength
;
4888 #define ODD_FRACTIONAL 1
4889 #define EVEN_FRACTIONAL 2
4890 uint32_t Partitioning
;
4895 uint32_t OutputTopology
;
4904 float MaximumTessellationFactorOdd
;
4905 float MaximumTessellationFactorNotOdd
;
4909 GEN8_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
4910 const struct GEN8_3DSTATE_TE
* restrict values
)
4912 uint32_t *dw
= (uint32_t * restrict
) dst
;
4915 __gen_field(values
->CommandType
, 29, 31) |
4916 __gen_field(values
->CommandSubType
, 27, 28) |
4917 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4918 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4919 __gen_field(values
->DwordLength
, 0, 7) |
4923 __gen_field(values
->Partitioning
, 12, 13) |
4924 __gen_field(values
->OutputTopology
, 8, 9) |
4925 __gen_field(values
->TEDomain
, 4, 5) |
4926 __gen_field(values
->TEMode
, 1, 2) |
4927 __gen_field(values
->TEEnable
, 0, 0) |
4931 __gen_float(values
->MaximumTessellationFactorOdd
) |
4935 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
4940 #define GEN8_3DSTATE_URB_DS_length 0x00000002
4941 #define GEN8_3DSTATE_URB_DS_length_bias 0x00000002
4942 #define GEN8_3DSTATE_URB_DS_header \
4944 .CommandSubType = 3, \
4945 ._3DCommandOpcode = 0, \
4946 ._3DCommandSubOpcode = 50, \
4949 struct GEN8_3DSTATE_URB_DS
{
4950 uint32_t CommandType
;
4951 uint32_t CommandSubType
;
4952 uint32_t _3DCommandOpcode
;
4953 uint32_t _3DCommandSubOpcode
;
4954 uint32_t DwordLength
;
4955 uint32_t DSURBStartingAddress
;
4956 uint32_t DSURBEntryAllocationSize
;
4957 uint32_t DSNumberofURBEntries
;
4961 GEN8_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
4962 const struct GEN8_3DSTATE_URB_DS
* restrict values
)
4964 uint32_t *dw
= (uint32_t * restrict
) dst
;
4967 __gen_field(values
->CommandType
, 29, 31) |
4968 __gen_field(values
->CommandSubType
, 27, 28) |
4969 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4970 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4971 __gen_field(values
->DwordLength
, 0, 7) |
4975 __gen_field(values
->DSURBStartingAddress
, 25, 31) |
4976 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
4977 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
4982 #define GEN8_3DSTATE_URB_GS_length 0x00000002
4983 #define GEN8_3DSTATE_URB_GS_length_bias 0x00000002
4984 #define GEN8_3DSTATE_URB_GS_header \
4986 .CommandSubType = 3, \
4987 ._3DCommandOpcode = 0, \
4988 ._3DCommandSubOpcode = 51, \
4991 struct GEN8_3DSTATE_URB_GS
{
4992 uint32_t CommandType
;
4993 uint32_t CommandSubType
;
4994 uint32_t _3DCommandOpcode
;
4995 uint32_t _3DCommandSubOpcode
;
4996 uint32_t DwordLength
;
4997 uint32_t GSURBStartingAddress
;
4998 uint32_t GSURBEntryAllocationSize
;
4999 uint32_t GSNumberofURBEntries
;
5003 GEN8_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
5004 const struct GEN8_3DSTATE_URB_GS
* restrict values
)
5006 uint32_t *dw
= (uint32_t * restrict
) dst
;
5009 __gen_field(values
->CommandType
, 29, 31) |
5010 __gen_field(values
->CommandSubType
, 27, 28) |
5011 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5012 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5013 __gen_field(values
->DwordLength
, 0, 7) |
5017 __gen_field(values
->GSURBStartingAddress
, 25, 31) |
5018 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
5019 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
5024 #define GEN8_3DSTATE_URB_HS_length 0x00000002
5025 #define GEN8_3DSTATE_URB_HS_length_bias 0x00000002
5026 #define GEN8_3DSTATE_URB_HS_header \
5028 .CommandSubType = 3, \
5029 ._3DCommandOpcode = 0, \
5030 ._3DCommandSubOpcode = 49, \
5033 struct GEN8_3DSTATE_URB_HS
{
5034 uint32_t CommandType
;
5035 uint32_t CommandSubType
;
5036 uint32_t _3DCommandOpcode
;
5037 uint32_t _3DCommandSubOpcode
;
5038 uint32_t DwordLength
;
5039 uint32_t HSURBStartingAddress
;
5040 uint32_t HSURBEntryAllocationSize
;
5041 uint32_t HSNumberofURBEntries
;
5045 GEN8_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
5046 const struct GEN8_3DSTATE_URB_HS
* restrict values
)
5048 uint32_t *dw
= (uint32_t * restrict
) dst
;
5051 __gen_field(values
->CommandType
, 29, 31) |
5052 __gen_field(values
->CommandSubType
, 27, 28) |
5053 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5054 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5055 __gen_field(values
->DwordLength
, 0, 7) |
5059 __gen_field(values
->HSURBStartingAddress
, 25, 31) |
5060 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
5061 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
5066 #define GEN8_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
5067 #define GEN8_3DSTATE_VERTEX_BUFFERS_header \
5069 .CommandSubType = 3, \
5070 ._3DCommandOpcode = 0, \
5071 ._3DCommandSubOpcode = 8
5073 struct GEN8_VERTEX_BUFFER_STATE
{
5074 uint32_t VertexBufferIndex
;
5075 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
5076 uint32_t AddressModifyEnable
;
5077 uint32_t NullVertexBuffer
;
5078 uint32_t BufferPitch
;
5079 __gen_address_type BufferStartingAddress
;
5080 uint32_t BufferSize
;
5084 GEN8_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5085 const struct GEN8_VERTEX_BUFFER_STATE
* restrict values
)
5087 uint32_t *dw
= (uint32_t * restrict
) dst
;
5089 uint32_t dw_MemoryObjectControlState
;
5090 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
5092 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5093 __gen_field(dw_MemoryObjectControlState
, 16, 22) |
5094 __gen_field(values
->AddressModifyEnable
, 14, 14) |
5095 __gen_field(values
->NullVertexBuffer
, 13, 13) |
5096 __gen_field(values
->BufferPitch
, 0, 11) |
5103 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
5109 __gen_field(values
->BufferSize
, 0, 31) |
5114 struct GEN8_3DSTATE_VERTEX_BUFFERS
{
5115 uint32_t CommandType
;
5116 uint32_t CommandSubType
;
5117 uint32_t _3DCommandOpcode
;
5118 uint32_t _3DCommandSubOpcode
;
5119 uint32_t DwordLength
;
5120 /* variable length fields follow */
5124 GEN8_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
5125 const struct GEN8_3DSTATE_VERTEX_BUFFERS
* restrict values
)
5127 uint32_t *dw
= (uint32_t * restrict
) dst
;
5130 __gen_field(values
->CommandType
, 29, 31) |
5131 __gen_field(values
->CommandSubType
, 27, 28) |
5132 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5133 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5134 __gen_field(values
->DwordLength
, 0, 7) |
5137 /* variable length fields follow */
5140 #define GEN8_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
5141 #define GEN8_3DSTATE_VERTEX_ELEMENTS_header \
5143 .CommandSubType = 3, \
5144 ._3DCommandOpcode = 0, \
5145 ._3DCommandSubOpcode = 9
5147 struct GEN8_VERTEX_ELEMENT_STATE
{
5148 uint32_t VertexBufferIndex
;
5150 uint32_t SourceElementFormat
;
5151 uint32_t EdgeFlagEnable
;
5152 uint32_t SourceElementOffset
;
5153 uint32_t Component0Control
;
5154 uint32_t Component1Control
;
5155 uint32_t Component2Control
;
5156 uint32_t Component3Control
;
5160 GEN8_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5161 const struct GEN8_VERTEX_ELEMENT_STATE
* restrict values
)
5163 uint32_t *dw
= (uint32_t * restrict
) dst
;
5166 __gen_field(values
->VertexBufferIndex
, 26, 31) |
5167 __gen_field(values
->Valid
, 25, 25) |
5168 __gen_field(values
->SourceElementFormat
, 16, 24) |
5169 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
5170 __gen_field(values
->SourceElementOffset
, 0, 11) |
5174 __gen_field(values
->Component0Control
, 28, 30) |
5175 __gen_field(values
->Component1Control
, 24, 26) |
5176 __gen_field(values
->Component2Control
, 20, 22) |
5177 __gen_field(values
->Component3Control
, 16, 18) |
5182 struct GEN8_3DSTATE_VERTEX_ELEMENTS
{
5183 uint32_t CommandType
;
5184 uint32_t CommandSubType
;
5185 uint32_t _3DCommandOpcode
;
5186 uint32_t _3DCommandSubOpcode
;
5187 uint32_t DwordLength
;
5188 /* variable length fields follow */
5192 GEN8_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
5193 const struct GEN8_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
5195 uint32_t *dw
= (uint32_t * restrict
) dst
;
5198 __gen_field(values
->CommandType
, 29, 31) |
5199 __gen_field(values
->CommandSubType
, 27, 28) |
5200 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5201 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5202 __gen_field(values
->DwordLength
, 0, 7) |
5205 /* variable length fields follow */
5208 #define GEN8_3DSTATE_VF_length 0x00000002
5209 #define GEN8_3DSTATE_VF_length_bias 0x00000002
5210 #define GEN8_3DSTATE_VF_header \
5212 .CommandSubType = 3, \
5213 ._3DCommandOpcode = 0, \
5214 ._3DCommandSubOpcode = 12, \
5217 struct GEN8_3DSTATE_VF
{
5218 uint32_t CommandType
;
5219 uint32_t CommandSubType
;
5220 uint32_t _3DCommandOpcode
;
5221 uint32_t _3DCommandSubOpcode
;
5222 uint32_t IndexedDrawCutIndexEnable
;
5223 uint32_t DwordLength
;
5228 GEN8_3DSTATE_VF_pack(__gen_user_data
*data
, void * restrict dst
,
5229 const struct GEN8_3DSTATE_VF
* restrict values
)
5231 uint32_t *dw
= (uint32_t * restrict
) dst
;
5234 __gen_field(values
->CommandType
, 29, 31) |
5235 __gen_field(values
->CommandSubType
, 27, 28) |
5236 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5237 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5238 __gen_field(values
->IndexedDrawCutIndexEnable
, 8, 8) |
5239 __gen_field(values
->DwordLength
, 0, 7) |
5243 __gen_field(values
->CutIndex
, 0, 31) |
5248 #define GEN8_3DSTATE_VF_INSTANCING_length 0x00000003
5249 #define GEN8_3DSTATE_VF_INSTANCING_length_bias 0x00000002
5250 #define GEN8_3DSTATE_VF_INSTANCING_header \
5252 .CommandSubType = 3, \
5253 ._3DCommandOpcode = 0, \
5254 ._3DCommandSubOpcode = 73, \
5257 struct GEN8_3DSTATE_VF_INSTANCING
{
5258 uint32_t CommandType
;
5259 uint32_t CommandSubType
;
5260 uint32_t _3DCommandOpcode
;
5261 uint32_t _3DCommandSubOpcode
;
5262 uint32_t DwordLength
;
5263 uint32_t InstancingEnable
;
5264 uint32_t VertexElementIndex
;
5265 uint32_t InstanceDataStepRate
;
5269 GEN8_3DSTATE_VF_INSTANCING_pack(__gen_user_data
*data
, void * restrict dst
,
5270 const struct GEN8_3DSTATE_VF_INSTANCING
* restrict values
)
5272 uint32_t *dw
= (uint32_t * restrict
) dst
;
5275 __gen_field(values
->CommandType
, 29, 31) |
5276 __gen_field(values
->CommandSubType
, 27, 28) |
5277 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5278 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5279 __gen_field(values
->DwordLength
, 0, 7) |
5283 __gen_field(values
->InstancingEnable
, 8, 8) |
5284 __gen_field(values
->VertexElementIndex
, 0, 5) |
5288 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
5293 #define GEN8_3DSTATE_VF_SGVS_length 0x00000002
5294 #define GEN8_3DSTATE_VF_SGVS_length_bias 0x00000002
5295 #define GEN8_3DSTATE_VF_SGVS_header \
5297 .CommandSubType = 3, \
5298 ._3DCommandOpcode = 0, \
5299 ._3DCommandSubOpcode = 74, \
5302 struct GEN8_3DSTATE_VF_SGVS
{
5303 uint32_t CommandType
;
5304 uint32_t CommandSubType
;
5305 uint32_t _3DCommandOpcode
;
5306 uint32_t _3DCommandSubOpcode
;
5307 uint32_t DwordLength
;
5308 uint32_t InstanceIDEnable
;
5313 uint32_t InstanceIDComponentNumber
;
5314 uint32_t InstanceIDElementOffset
;
5315 uint32_t VertexIDEnable
;
5320 uint32_t VertexIDComponentNumber
;
5321 uint32_t VertexIDElementOffset
;
5325 GEN8_3DSTATE_VF_SGVS_pack(__gen_user_data
*data
, void * restrict dst
,
5326 const struct GEN8_3DSTATE_VF_SGVS
* restrict values
)
5328 uint32_t *dw
= (uint32_t * restrict
) dst
;
5331 __gen_field(values
->CommandType
, 29, 31) |
5332 __gen_field(values
->CommandSubType
, 27, 28) |
5333 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5334 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5335 __gen_field(values
->DwordLength
, 0, 7) |
5339 __gen_field(values
->InstanceIDEnable
, 31, 31) |
5340 __gen_field(values
->InstanceIDComponentNumber
, 29, 30) |
5341 __gen_field(values
->InstanceIDElementOffset
, 16, 21) |
5342 __gen_field(values
->VertexIDEnable
, 15, 15) |
5343 __gen_field(values
->VertexIDComponentNumber
, 13, 14) |
5344 __gen_field(values
->VertexIDElementOffset
, 0, 5) |
5349 #define GEN8_3DSTATE_VF_STATISTICS_length 0x00000001
5350 #define GEN8_3DSTATE_VF_STATISTICS_length_bias 0x00000001
5351 #define GEN8_3DSTATE_VF_STATISTICS_header \
5353 .CommandSubType = 1, \
5354 ._3DCommandOpcode = 0, \
5355 ._3DCommandSubOpcode = 11
5357 struct GEN8_3DSTATE_VF_STATISTICS
{
5358 uint32_t CommandType
;
5359 uint32_t CommandSubType
;
5360 uint32_t _3DCommandOpcode
;
5361 uint32_t _3DCommandSubOpcode
;
5362 uint32_t StatisticsEnable
;
5366 GEN8_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
5367 const struct GEN8_3DSTATE_VF_STATISTICS
* restrict values
)
5369 uint32_t *dw
= (uint32_t * restrict
) dst
;
5372 __gen_field(values
->CommandType
, 29, 31) |
5373 __gen_field(values
->CommandSubType
, 27, 28) |
5374 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5375 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5376 __gen_field(values
->StatisticsEnable
, 0, 0) |
5381 #define GEN8_3DSTATE_VF_TOPOLOGY_length 0x00000002
5382 #define GEN8_3DSTATE_VF_TOPOLOGY_length_bias 0x00000002
5383 #define GEN8_3DSTATE_VF_TOPOLOGY_header \
5385 .CommandSubType = 3, \
5386 ._3DCommandOpcode = 0, \
5387 ._3DCommandSubOpcode = 75, \
5390 struct GEN8_3DSTATE_VF_TOPOLOGY
{
5391 uint32_t CommandType
;
5392 uint32_t CommandSubType
;
5393 uint32_t _3DCommandOpcode
;
5394 uint32_t _3DCommandSubOpcode
;
5395 uint32_t DwordLength
;
5396 uint32_t PrimitiveTopologyType
;
5400 GEN8_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data
*data
, void * restrict dst
,
5401 const struct GEN8_3DSTATE_VF_TOPOLOGY
* restrict values
)
5403 uint32_t *dw
= (uint32_t * restrict
) dst
;
5406 __gen_field(values
->CommandType
, 29, 31) |
5407 __gen_field(values
->CommandSubType
, 27, 28) |
5408 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5409 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5410 __gen_field(values
->DwordLength
, 0, 7) |
5414 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
5419 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
5420 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
5421 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
5423 .CommandSubType = 3, \
5424 ._3DCommandOpcode = 0, \
5425 ._3DCommandSubOpcode = 35, \
5428 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
5429 uint32_t CommandType
;
5430 uint32_t CommandSubType
;
5431 uint32_t _3DCommandOpcode
;
5432 uint32_t _3DCommandSubOpcode
;
5433 uint32_t DwordLength
;
5434 uint32_t CCViewportPointer
;
5438 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
5439 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
5441 uint32_t *dw
= (uint32_t * restrict
) dst
;
5444 __gen_field(values
->CommandType
, 29, 31) |
5445 __gen_field(values
->CommandSubType
, 27, 28) |
5446 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5447 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5448 __gen_field(values
->DwordLength
, 0, 7) |
5452 __gen_offset(values
->CCViewportPointer
, 5, 31) |
5457 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
5458 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
5459 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
5461 .CommandSubType = 3, \
5462 ._3DCommandOpcode = 0, \
5463 ._3DCommandSubOpcode = 33, \
5466 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
5467 uint32_t CommandType
;
5468 uint32_t CommandSubType
;
5469 uint32_t _3DCommandOpcode
;
5470 uint32_t _3DCommandSubOpcode
;
5471 uint32_t DwordLength
;
5472 uint32_t SFClipViewportPointer
;
5476 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
5477 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
5479 uint32_t *dw
= (uint32_t * restrict
) dst
;
5482 __gen_field(values
->CommandType
, 29, 31) |
5483 __gen_field(values
->CommandSubType
, 27, 28) |
5484 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5485 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5486 __gen_field(values
->DwordLength
, 0, 7) |
5490 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
5495 #define GEN8_3DSTATE_WM_length 0x00000002
5496 #define GEN8_3DSTATE_WM_length_bias 0x00000002
5497 #define GEN8_3DSTATE_WM_header \
5499 .CommandSubType = 3, \
5500 ._3DCommandOpcode = 0, \
5501 ._3DCommandSubOpcode = 20, \
5504 struct GEN8_3DSTATE_WM
{
5505 uint32_t CommandType
;
5506 uint32_t CommandSubType
;
5507 uint32_t _3DCommandOpcode
;
5508 uint32_t _3DCommandSubOpcode
;
5509 uint32_t DwordLength
;
5510 uint32_t StatisticsEnable
;
5511 uint32_t LegacyDepthBufferClearEnable
;
5512 uint32_t LegacyDepthBufferResolveEnable
;
5513 uint32_t LegacyHierarchicalDepthBufferResolveEnable
;
5514 uint32_t LegacyDiamondLineRasterization
;
5518 uint32_t EarlyDepthStencilControl
;
5522 uint32_t ForceThreadDispatchEnable
;
5523 #define INTERP_PIXEL 0
5524 #define INTERP_CENTROID 2
5525 #define INTERP_SAMPLE 3
5526 uint32_t PositionZWInterpolationMode
;
5527 uint32_t BarycentricInterpolationMode
;
5532 uint32_t LineEndCapAntialiasingRegionWidth
;
5537 uint32_t LineAntialiasingRegionWidth
;
5538 uint32_t PolygonStippleEnable
;
5539 uint32_t LineStippleEnable
;
5540 #define RASTRULE_UPPER_LEFT 0
5541 #define RASTRULE_UPPER_RIGHT 1
5542 uint32_t PointRasterizationRule
;
5546 uint32_t ForceKillPixelEnable
;
5550 GEN8_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
5551 const struct GEN8_3DSTATE_WM
* restrict values
)
5553 uint32_t *dw
= (uint32_t * restrict
) dst
;
5556 __gen_field(values
->CommandType
, 29, 31) |
5557 __gen_field(values
->CommandSubType
, 27, 28) |
5558 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5559 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5560 __gen_field(values
->DwordLength
, 0, 7) |
5564 __gen_field(values
->StatisticsEnable
, 31, 31) |
5565 __gen_field(values
->LegacyDepthBufferClearEnable
, 30, 30) |
5566 __gen_field(values
->LegacyDepthBufferResolveEnable
, 28, 28) |
5567 __gen_field(values
->LegacyHierarchicalDepthBufferResolveEnable
, 27, 27) |
5568 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
5569 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
5570 __gen_field(values
->ForceThreadDispatchEnable
, 19, 20) |
5571 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
5572 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
5573 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
5574 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
5575 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
5576 __gen_field(values
->LineStippleEnable
, 3, 3) |
5577 __gen_field(values
->PointRasterizationRule
, 2, 2) |
5578 __gen_field(values
->ForceKillPixelEnable
, 0, 1) |
5583 #define GEN8_3DSTATE_WM_CHROMAKEY_length 0x00000002
5584 #define GEN8_3DSTATE_WM_CHROMAKEY_length_bias 0x00000002
5585 #define GEN8_3DSTATE_WM_CHROMAKEY_header \
5587 .CommandSubType = 3, \
5588 ._3DCommandOpcode = 0, \
5589 ._3DCommandSubOpcode = 76, \
5592 struct GEN8_3DSTATE_WM_CHROMAKEY
{
5593 uint32_t CommandType
;
5594 uint32_t CommandSubType
;
5595 uint32_t _3DCommandOpcode
;
5596 uint32_t _3DCommandSubOpcode
;
5597 uint32_t DwordLength
;
5598 uint32_t ChromaKeyKillEnable
;
5602 GEN8_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data
*data
, void * restrict dst
,
5603 const struct GEN8_3DSTATE_WM_CHROMAKEY
* restrict values
)
5605 uint32_t *dw
= (uint32_t * restrict
) dst
;
5608 __gen_field(values
->CommandType
, 29, 31) |
5609 __gen_field(values
->CommandSubType
, 27, 28) |
5610 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5611 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5612 __gen_field(values
->DwordLength
, 0, 7) |
5616 __gen_field(values
->ChromaKeyKillEnable
, 31, 31) |
5621 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length 0x00000003
5622 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length_bias 0x00000002
5623 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_header \
5625 .CommandSubType = 3, \
5626 ._3DCommandOpcode = 0, \
5627 ._3DCommandSubOpcode = 78, \
5630 struct GEN8_3DSTATE_WM_DEPTH_STENCIL
{
5631 uint32_t CommandType
;
5632 uint32_t CommandSubType
;
5633 uint32_t _3DCommandOpcode
;
5634 uint32_t _3DCommandSubOpcode
;
5635 uint32_t DwordLength
;
5636 uint32_t StencilFailOp
;
5637 uint32_t StencilPassDepthFailOp
;
5638 uint32_t StencilPassDepthPassOp
;
5639 uint32_t BackfaceStencilTestFunction
;
5640 uint32_t BackfaceStencilFailOp
;
5641 uint32_t BackfaceStencilPassDepthFailOp
;
5642 uint32_t BackfaceStencilPassDepthPassOp
;
5643 uint32_t StencilTestFunction
;
5644 uint32_t DepthTestFunction
;
5647 uint32_t DoubleSidedStencilEnable
;
5648 uint32_t StencilTestEnable
;
5649 uint32_t StencilBufferWriteEnable
;
5650 uint32_t DepthTestEnable
;
5651 uint32_t DepthBufferWriteEnable
;
5652 uint32_t StencilTestMask
;
5653 uint32_t StencilWriteMask
;
5654 uint32_t BackfaceStencilTestMask
;
5655 uint32_t BackfaceStencilWriteMask
;
5659 GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data
*data
, void * restrict dst
,
5660 const struct GEN8_3DSTATE_WM_DEPTH_STENCIL
* restrict values
)
5662 uint32_t *dw
= (uint32_t * restrict
) dst
;
5665 __gen_field(values
->CommandType
, 29, 31) |
5666 __gen_field(values
->CommandSubType
, 27, 28) |
5667 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5668 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5669 __gen_field(values
->DwordLength
, 0, 7) |
5673 __gen_field(values
->StencilFailOp
, 29, 31) |
5674 __gen_field(values
->StencilPassDepthFailOp
, 26, 28) |
5675 __gen_field(values
->StencilPassDepthPassOp
, 23, 25) |
5676 __gen_field(values
->BackfaceStencilTestFunction
, 20, 22) |
5677 __gen_field(values
->BackfaceStencilFailOp
, 17, 19) |
5678 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 14, 16) |
5679 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 11, 13) |
5680 __gen_field(values
->StencilTestFunction
, 8, 10) |
5681 __gen_field(values
->DepthTestFunction
, 5, 7) |
5682 __gen_field(values
->DoubleSidedStencilEnable
, 4, 4) |
5683 __gen_field(values
->StencilTestEnable
, 3, 3) |
5684 __gen_field(values
->StencilBufferWriteEnable
, 2, 2) |
5685 __gen_field(values
->DepthTestEnable
, 1, 1) |
5686 __gen_field(values
->DepthBufferWriteEnable
, 0, 0) |
5690 __gen_field(values
->StencilTestMask
, 24, 31) |
5691 __gen_field(values
->StencilWriteMask
, 16, 23) |
5692 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
5693 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
5698 #define GEN8_3DSTATE_WM_HZ_OP_length 0x00000005
5699 #define GEN8_3DSTATE_WM_HZ_OP_length_bias 0x00000002
5700 #define GEN8_3DSTATE_WM_HZ_OP_header \
5702 .CommandSubType = 3, \
5703 ._3DCommandOpcode = 0, \
5704 ._3DCommandSubOpcode = 82, \
5707 struct GEN8_3DSTATE_WM_HZ_OP
{
5708 uint32_t CommandType
;
5709 uint32_t CommandSubType
;
5710 uint32_t _3DCommandOpcode
;
5711 uint32_t _3DCommandSubOpcode
;
5712 uint32_t DwordLength
;
5713 uint32_t StencilBufferClearEnable
;
5714 uint32_t DepthBufferClearEnable
;
5715 uint32_t ScissorRectangleEnable
;
5716 uint32_t DepthBufferResolveEnable
;
5717 uint32_t HierarchicalDepthBufferResolveEnable
;
5718 uint32_t PixelPositionOffsetEnable
;
5719 uint32_t FullSurfaceDepthClear
;
5720 uint32_t StencilClearValue
;
5721 uint32_t NumberofMultisamples
;
5722 uint32_t ClearRectangleYMin
;
5723 uint32_t ClearRectangleXMin
;
5724 uint32_t ClearRectangleYMax
;
5725 uint32_t ClearRectangleXMax
;
5726 uint32_t SampleMask
;
5730 GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data
*data
, void * restrict dst
,
5731 const struct GEN8_3DSTATE_WM_HZ_OP
* restrict values
)
5733 uint32_t *dw
= (uint32_t * restrict
) dst
;
5736 __gen_field(values
->CommandType
, 29, 31) |
5737 __gen_field(values
->CommandSubType
, 27, 28) |
5738 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5739 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5740 __gen_field(values
->DwordLength
, 0, 7) |
5744 __gen_field(values
->StencilBufferClearEnable
, 31, 31) |
5745 __gen_field(values
->DepthBufferClearEnable
, 30, 30) |
5746 __gen_field(values
->ScissorRectangleEnable
, 29, 29) |
5747 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
5748 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
5749 __gen_field(values
->PixelPositionOffsetEnable
, 26, 26) |
5750 __gen_field(values
->FullSurfaceDepthClear
, 25, 25) |
5751 __gen_field(values
->StencilClearValue
, 16, 23) |
5752 __gen_field(values
->NumberofMultisamples
, 13, 15) |
5756 __gen_field(values
->ClearRectangleYMin
, 16, 31) |
5757 __gen_field(values
->ClearRectangleXMin
, 0, 15) |
5761 __gen_field(values
->ClearRectangleYMax
, 16, 31) |
5762 __gen_field(values
->ClearRectangleXMax
, 0, 15) |
5766 __gen_field(values
->SampleMask
, 0, 15) |
5771 #define GEN8_GPGPU_WALKER_length 0x0000000f
5772 #define GEN8_GPGPU_WALKER_length_bias 0x00000002
5773 #define GEN8_GPGPU_WALKER_header \
5776 .MediaCommandOpcode = 1, \
5780 struct GEN8_GPGPU_WALKER
{
5781 uint32_t CommandType
;
5783 uint32_t MediaCommandOpcode
;
5785 uint32_t IndirectParameterEnable
;
5786 uint32_t PredicateEnable
;
5787 uint32_t DwordLength
;
5788 uint32_t InterfaceDescriptorOffset
;
5789 uint32_t IndirectDataLength
;
5790 uint32_t IndirectDataStartAddress
;
5795 uint32_t ThreadDepthCounterMaximum
;
5796 uint32_t ThreadHeightCounterMaximum
;
5797 uint32_t ThreadWidthCounterMaximum
;
5798 uint32_t ThreadGroupIDStartingX
;
5799 uint32_t ThreadGroupIDXDimension
;
5800 uint32_t ThreadGroupIDStartingY
;
5801 uint32_t ThreadGroupIDYDimension
;
5802 uint32_t ThreadGroupIDStartingResumeZ
;
5803 uint32_t ThreadGroupIDZDimension
;
5804 uint32_t RightExecutionMask
;
5805 uint32_t BottomExecutionMask
;
5809 GEN8_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
5810 const struct GEN8_GPGPU_WALKER
* restrict values
)
5812 uint32_t *dw
= (uint32_t * restrict
) dst
;
5815 __gen_field(values
->CommandType
, 29, 31) |
5816 __gen_field(values
->Pipeline
, 27, 28) |
5817 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5818 __gen_field(values
->SubOpcode
, 16, 23) |
5819 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
5820 __gen_field(values
->PredicateEnable
, 8, 8) |
5821 __gen_field(values
->DwordLength
, 0, 7) |
5825 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5829 __gen_field(values
->IndirectDataLength
, 0, 16) |
5833 __gen_offset(values
->IndirectDataStartAddress
, 6, 31) |
5837 __gen_field(values
->SIMDSize
, 30, 31) |
5838 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
5839 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
5840 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
5844 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
5851 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
5855 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
5862 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
5866 __gen_field(values
->ThreadGroupIDStartingResumeZ
, 0, 31) |
5870 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
5874 __gen_field(values
->RightExecutionMask
, 0, 31) |
5878 __gen_field(values
->BottomExecutionMask
, 0, 31) |
5883 #define GEN8_MEDIA_CURBE_LOAD_length 0x00000004
5884 #define GEN8_MEDIA_CURBE_LOAD_length_bias 0x00000002
5885 #define GEN8_MEDIA_CURBE_LOAD_header \
5888 .MediaCommandOpcode = 0, \
5892 struct GEN8_MEDIA_CURBE_LOAD
{
5893 uint32_t CommandType
;
5895 uint32_t MediaCommandOpcode
;
5897 uint32_t DwordLength
;
5898 uint32_t CURBETotalDataLength
;
5899 uint32_t CURBEDataStartAddress
;
5903 GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5904 const struct GEN8_MEDIA_CURBE_LOAD
* restrict values
)
5906 uint32_t *dw
= (uint32_t * restrict
) dst
;
5909 __gen_field(values
->CommandType
, 29, 31) |
5910 __gen_field(values
->Pipeline
, 27, 28) |
5911 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5912 __gen_field(values
->SubOpcode
, 16, 23) |
5913 __gen_field(values
->DwordLength
, 0, 15) |
5920 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
5924 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
5929 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
5930 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
5931 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
5934 .MediaCommandOpcode = 0, \
5938 struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
5939 uint32_t CommandType
;
5941 uint32_t MediaCommandOpcode
;
5943 uint32_t DwordLength
;
5944 uint32_t InterfaceDescriptorTotalLength
;
5945 uint32_t InterfaceDescriptorDataStartAddress
;
5949 GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5950 const struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
5952 uint32_t *dw
= (uint32_t * restrict
) dst
;
5955 __gen_field(values
->CommandType
, 29, 31) |
5956 __gen_field(values
->Pipeline
, 27, 28) |
5957 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5958 __gen_field(values
->SubOpcode
, 16, 23) |
5959 __gen_field(values
->DwordLength
, 0, 15) |
5966 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
5970 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
5975 #define GEN8_MEDIA_OBJECT_length_bias 0x00000002
5976 #define GEN8_MEDIA_OBJECT_header \
5978 .MediaCommandPipeline = 2, \
5979 .MediaCommandOpcode = 1, \
5980 .MediaCommandSubOpcode = 0
5982 struct GEN8_MEDIA_OBJECT
{
5983 uint32_t CommandType
;
5984 uint32_t MediaCommandPipeline
;
5985 uint32_t MediaCommandOpcode
;
5986 uint32_t MediaCommandSubOpcode
;
5987 uint32_t DwordLength
;
5988 uint32_t InterfaceDescriptorOffset
;
5989 uint32_t ChildrenPresent
;
5990 #define Nothreadsynchronization 0
5991 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
5992 uint32_t ThreadSynchronization
;
5993 uint32_t ForceDestination
;
5994 #define Notusingscoreboard 0
5995 #define Usingscoreboard 1
5996 uint32_t UseScoreboard
;
6000 uint32_t SliceDestinationSelect
;
6004 uint32_t SubSliceDestinationSelect
;
6005 uint32_t IndirectDataLength
;
6006 __gen_address_type IndirectDataStartAddress
;
6007 uint32_t ScoredboardY
;
6008 uint32_t ScoreboardX
;
6009 uint32_t ScoreboardColor
;
6010 uint32_t ScoreboardMask
;
6011 /* variable length fields follow */
6015 GEN8_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
6016 const struct GEN8_MEDIA_OBJECT
* restrict values
)
6018 uint32_t *dw
= (uint32_t * restrict
) dst
;
6021 __gen_field(values
->CommandType
, 29, 31) |
6022 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6023 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6024 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6025 __gen_field(values
->DwordLength
, 0, 15) |
6029 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6033 __gen_field(values
->ChildrenPresent
, 31, 31) |
6034 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6035 __gen_field(values
->ForceDestination
, 22, 22) |
6036 __gen_field(values
->UseScoreboard
, 21, 21) |
6037 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6038 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6039 __gen_field(values
->IndirectDataLength
, 0, 16) |
6046 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6049 __gen_field(values
->ScoredboardY
, 16, 24) |
6050 __gen_field(values
->ScoreboardX
, 0, 8) |
6054 __gen_field(values
->ScoreboardColor
, 16, 19) |
6055 __gen_field(values
->ScoreboardMask
, 0, 7) |
6058 /* variable length fields follow */
6061 #define GEN8_MEDIA_OBJECT_GRPID_length_bias 0x00000002
6062 #define GEN8_MEDIA_OBJECT_GRPID_header \
6064 .MediaCommandPipeline = 2, \
6065 .MediaCommandOpcode = 1, \
6066 .MediaCommandSubOpcode = 6
6068 struct GEN8_MEDIA_OBJECT_GRPID
{
6069 uint32_t CommandType
;
6070 uint32_t MediaCommandPipeline
;
6071 uint32_t MediaCommandOpcode
;
6072 uint32_t MediaCommandSubOpcode
;
6073 uint32_t DwordLength
;
6074 uint32_t InterfaceDescriptorOffset
;
6075 uint32_t EndofThreadGroup
;
6076 uint32_t ForceDestination
;
6077 #define Notusingscoreboard 0
6078 #define Usingscoreboard 1
6079 uint32_t UseScoreboard
;
6083 uint32_t SliceDestinationSelect
;
6087 uint32_t SubSliceDestinationSelect
;
6088 uint32_t IndirectDataLength
;
6089 __gen_address_type IndirectDataStartAddress
;
6090 uint32_t ScoredboardY
;
6091 uint32_t ScoreboardX
;
6092 uint32_t ScoreboardColor
;
6093 uint32_t ScoreboardMask
;
6095 /* variable length fields follow */
6099 GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data
*data
, void * restrict dst
,
6100 const struct GEN8_MEDIA_OBJECT_GRPID
* restrict values
)
6102 uint32_t *dw
= (uint32_t * restrict
) dst
;
6105 __gen_field(values
->CommandType
, 29, 31) |
6106 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
6107 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6108 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
6109 __gen_field(values
->DwordLength
, 0, 15) |
6113 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6117 __gen_field(values
->EndofThreadGroup
, 23, 23) |
6118 __gen_field(values
->ForceDestination
, 22, 22) |
6119 __gen_field(values
->UseScoreboard
, 21, 21) |
6120 __gen_field(values
->SliceDestinationSelect
, 19, 20) |
6121 __gen_field(values
->SubSliceDestinationSelect
, 17, 18) |
6122 __gen_field(values
->IndirectDataLength
, 0, 16) |
6129 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
6132 __gen_field(values
->ScoredboardY
, 16, 24) |
6133 __gen_field(values
->ScoreboardX
, 0, 8) |
6137 __gen_field(values
->ScoreboardColor
, 16, 19) |
6138 __gen_field(values
->ScoreboardMask
, 0, 7) |
6142 __gen_field(values
->GroupID
, 0, 31) |
6145 /* variable length fields follow */
6148 #define GEN8_MEDIA_OBJECT_PRT_length 0x00000010
6149 #define GEN8_MEDIA_OBJECT_PRT_length_bias 0x00000002
6150 #define GEN8_MEDIA_OBJECT_PRT_header \
6153 .MediaCommandOpcode = 1, \
6157 struct GEN8_MEDIA_OBJECT_PRT
{
6158 uint32_t CommandType
;
6160 uint32_t MediaCommandOpcode
;
6162 uint32_t DwordLength
;
6163 uint32_t InterfaceDescriptorOffset
;
6164 uint32_t ChildrenPresent
;
6165 uint32_t PRT_FenceNeeded
;
6166 #define Rootthreadqueue 0
6167 #define VFEstateflush 1
6168 uint32_t PRT_FenceType
;
6169 uint32_t InlineData
;
6173 GEN8_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
6174 const struct GEN8_MEDIA_OBJECT_PRT
* restrict values
)
6176 uint32_t *dw
= (uint32_t * restrict
) dst
;
6179 __gen_field(values
->CommandType
, 29, 31) |
6180 __gen_field(values
->Pipeline
, 27, 28) |
6181 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6182 __gen_field(values
->SubOpcode
, 16, 23) |
6183 __gen_field(values
->DwordLength
, 0, 15) |
6187 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6191 __gen_field(values
->ChildrenPresent
, 31, 31) |
6192 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
6193 __gen_field(values
->PRT_FenceType
, 22, 22) |
6200 __gen_field(values
->InlineData
, 0, 31) |
6205 #define GEN8_MEDIA_OBJECT_WALKER_length_bias 0x00000002
6206 #define GEN8_MEDIA_OBJECT_WALKER_header \
6209 .MediaCommandOpcode = 1, \
6212 struct GEN8_MEDIA_OBJECT_WALKER
{
6213 uint32_t CommandType
;
6215 uint32_t MediaCommandOpcode
;
6217 uint32_t DwordLength
;
6218 uint32_t InterfaceDescriptorOffset
;
6219 uint32_t ChildrenPresent
;
6220 #define Nothreadsynchronization 0
6221 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
6222 uint32_t ThreadSynchronization
;
6223 #define Notusingscoreboard 0
6224 #define Usingscoreboard 1
6225 uint32_t UseScoreboard
;
6226 uint32_t IndirectDataLength
;
6227 uint32_t IndirectDataStartAddress
;
6228 uint32_t GroupIDLoopSelect
;
6229 uint32_t ScoreboardMask
;
6230 uint32_t ColorCountMinusOne
;
6231 uint32_t MiddleLoopExtraSteps
;
6232 uint32_t LocalMidLoopUnitY
;
6233 uint32_t MidLoopUnitX
;
6234 uint32_t GlobalLoopExecCount
;
6235 uint32_t LocalLoopExecCount
;
6236 uint32_t BlockResolutionY
;
6237 uint32_t BlockResolutionX
;
6238 uint32_t LocalStartY
;
6239 uint32_t LocalStartX
;
6240 uint32_t LocalOuterLoopStrideY
;
6241 uint32_t LocalOuterLoopStrideX
;
6242 uint32_t LocalInnerLoopUnitY
;
6243 uint32_t LocalInnerLoopUnitX
;
6244 uint32_t GlobalResolutionY
;
6245 uint32_t GlobalResolutionX
;
6246 uint32_t GlobalStartY
;
6247 uint32_t GlobalStartX
;
6248 uint32_t GlobalOuterLoopStrideY
;
6249 uint32_t GlobalOuterLoopStrideX
;
6250 uint32_t GlobalInnerLoopUnitY
;
6251 uint32_t GlobalInnerLoopUnitX
;
6252 /* variable length fields follow */
6256 GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
6257 const struct GEN8_MEDIA_OBJECT_WALKER
* restrict values
)
6259 uint32_t *dw
= (uint32_t * restrict
) dst
;
6262 __gen_field(values
->CommandType
, 29, 31) |
6263 __gen_field(values
->Pipeline
, 27, 28) |
6264 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6265 __gen_field(values
->SubOpcode
, 16, 23) |
6266 __gen_field(values
->DwordLength
, 0, 15) |
6270 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6274 __gen_field(values
->ChildrenPresent
, 31, 31) |
6275 __gen_field(values
->ThreadSynchronization
, 24, 24) |
6276 __gen_field(values
->UseScoreboard
, 21, 21) |
6277 __gen_field(values
->IndirectDataLength
, 0, 16) |
6281 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
6288 __gen_field(values
->GroupIDLoopSelect
, 8, 31) |
6289 __gen_field(values
->ScoreboardMask
, 0, 7) |
6293 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
6294 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
6295 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
6296 __gen_field(values
->MidLoopUnitX
, 8, 9) |
6300 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
6301 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
6305 __gen_field(values
->BlockResolutionY
, 16, 24) |
6306 __gen_field(values
->BlockResolutionX
, 0, 8) |
6310 __gen_field(values
->LocalStartY
, 16, 24) |
6311 __gen_field(values
->LocalStartX
, 0, 8) |
6318 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
6319 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
6323 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
6324 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
6328 __gen_field(values
->GlobalResolutionY
, 16, 24) |
6329 __gen_field(values
->GlobalResolutionX
, 0, 8) |
6333 __gen_field(values
->GlobalStartY
, 16, 25) |
6334 __gen_field(values
->GlobalStartX
, 0, 9) |
6338 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
6339 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
6343 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
6344 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
6347 /* variable length fields follow */
6350 #define GEN8_MEDIA_STATE_FLUSH_length 0x00000002
6351 #define GEN8_MEDIA_STATE_FLUSH_length_bias 0x00000002
6352 #define GEN8_MEDIA_STATE_FLUSH_header \
6355 .MediaCommandOpcode = 0, \
6359 struct GEN8_MEDIA_STATE_FLUSH
{
6360 uint32_t CommandType
;
6362 uint32_t MediaCommandOpcode
;
6364 uint32_t DwordLength
;
6366 uint32_t WatermarkRequired
;
6367 uint32_t InterfaceDescriptorOffset
;
6371 GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6372 const struct GEN8_MEDIA_STATE_FLUSH
* restrict values
)
6374 uint32_t *dw
= (uint32_t * restrict
) dst
;
6377 __gen_field(values
->CommandType
, 29, 31) |
6378 __gen_field(values
->Pipeline
, 27, 28) |
6379 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6380 __gen_field(values
->SubOpcode
, 16, 23) |
6381 __gen_field(values
->DwordLength
, 0, 15) |
6385 __gen_field(values
->FlushtoGO
, 7, 7) |
6386 __gen_field(values
->WatermarkRequired
, 6, 6) |
6387 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
6392 #define GEN8_MEDIA_VFE_STATE_length 0x00000009
6393 #define GEN8_MEDIA_VFE_STATE_length_bias 0x00000002
6394 #define GEN8_MEDIA_VFE_STATE_header \
6397 .MediaCommandOpcode = 0, \
6401 struct GEN8_MEDIA_VFE_STATE
{
6402 uint32_t CommandType
;
6404 uint32_t MediaCommandOpcode
;
6406 uint32_t DwordLength
;
6407 uint32_t ScratchSpaceBasePointer
;
6409 uint32_t PerThreadScratchSpace
;
6410 uint32_t ScratchSpaceBasePointerHigh
;
6411 uint32_t MaximumNumberofThreads
;
6412 uint32_t NumberofURBEntries
;
6413 #define Maintainingtheexistingtimestampstate 0
6414 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
6415 uint32_t ResetGatewayTimer
;
6416 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
6417 #define BypassingOpenGatewayCloseGatewayprotocol 1
6418 uint32_t BypassGatewayControl
;
6419 uint32_t SliceDisable
;
6420 uint32_t URBEntryAllocationSize
;
6421 uint32_t CURBEAllocationSize
;
6422 #define Scoreboarddisabled 0
6423 #define Scoreboardenabled 1
6424 uint32_t ScoreboardEnable
;
6425 #define StallingScoreboard 0
6426 #define NonStallingScoreboard 1
6427 uint32_t ScoreboardType
;
6428 uint32_t ScoreboardMask
;
6429 uint32_t Scoreboard3DeltaY
;
6430 uint32_t Scoreboard3DeltaX
;
6431 uint32_t Scoreboard2DeltaY
;
6432 uint32_t Scoreboard2DeltaX
;
6433 uint32_t Scoreboard1DeltaY
;
6434 uint32_t Scoreboard1DeltaX
;
6435 uint32_t Scoreboard0DeltaY
;
6436 uint32_t Scoreboard0DeltaX
;
6437 uint32_t Scoreboard7DeltaY
;
6438 uint32_t Scoreboard7DeltaX
;
6439 uint32_t Scoreboard6DeltaY
;
6440 uint32_t Scoreboard6DeltaX
;
6441 uint32_t Scoreboard5DeltaY
;
6442 uint32_t Scoreboard5DeltaX
;
6443 uint32_t Scoreboard4DeltaY
;
6444 uint32_t Scoreboard4DeltaX
;
6448 GEN8_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6449 const struct GEN8_MEDIA_VFE_STATE
* restrict values
)
6451 uint32_t *dw
= (uint32_t * restrict
) dst
;
6454 __gen_field(values
->CommandType
, 29, 31) |
6455 __gen_field(values
->Pipeline
, 27, 28) |
6456 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
6457 __gen_field(values
->SubOpcode
, 16, 23) |
6458 __gen_field(values
->DwordLength
, 0, 15) |
6462 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
6463 __gen_field(values
->StackSize
, 4, 7) |
6464 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
6468 __gen_offset(values
->ScratchSpaceBasePointerHigh
, 0, 15) |
6472 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
6473 __gen_field(values
->NumberofURBEntries
, 8, 15) |
6474 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
6475 __gen_field(values
->BypassGatewayControl
, 6, 6) |
6479 __gen_field(values
->SliceDisable
, 0, 1) |
6483 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
6484 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
6488 __gen_field(values
->ScoreboardEnable
, 31, 31) |
6489 __gen_field(values
->ScoreboardType
, 30, 30) |
6490 __gen_field(values
->ScoreboardMask
, 0, 7) |
6494 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
6495 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
6496 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
6497 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
6498 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
6499 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
6500 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
6501 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
6505 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
6506 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
6507 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
6508 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
6509 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
6510 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
6511 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
6512 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
6517 #define GEN8_MI_ARB_CHECK_length 0x00000001
6518 #define GEN8_MI_ARB_CHECK_length_bias 0x00000001
6519 #define GEN8_MI_ARB_CHECK_header \
6521 .MICommandOpcode = 5
6523 struct GEN8_MI_ARB_CHECK
{
6524 uint32_t CommandType
;
6525 uint32_t MICommandOpcode
;
6529 GEN8_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
6530 const struct GEN8_MI_ARB_CHECK
* restrict values
)
6532 uint32_t *dw
= (uint32_t * restrict
) dst
;
6535 __gen_field(values
->CommandType
, 29, 31) |
6536 __gen_field(values
->MICommandOpcode
, 23, 28) |
6541 #define GEN8_MI_BATCH_BUFFER_END_length 0x00000001
6542 #define GEN8_MI_BATCH_BUFFER_END_length_bias 0x00000001
6543 #define GEN8_MI_BATCH_BUFFER_END_header \
6545 .MICommandOpcode = 10
6547 struct GEN8_MI_BATCH_BUFFER_END
{
6548 uint32_t CommandType
;
6549 uint32_t MICommandOpcode
;
6553 GEN8_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6554 const struct GEN8_MI_BATCH_BUFFER_END
* restrict values
)
6556 uint32_t *dw
= (uint32_t * restrict
) dst
;
6559 __gen_field(values
->CommandType
, 29, 31) |
6560 __gen_field(values
->MICommandOpcode
, 23, 28) |
6565 #define GEN8_MI_BATCH_BUFFER_START_length 0x00000003
6566 #define GEN8_MI_BATCH_BUFFER_START_length_bias 0x00000002
6567 #define GEN8_MI_BATCH_BUFFER_START_header \
6569 .MICommandOpcode = 49, \
6572 struct GEN8_MI_BATCH_BUFFER_START
{
6573 uint32_t CommandType
;
6574 uint32_t MICommandOpcode
;
6575 #define _1stlevelbatch 0
6576 #define _2ndlevelbatch 1
6577 uint32_t _2ndLevelBatchBuffer
;
6578 uint32_t AddOffsetEnable
;
6579 uint32_t PredicationEnable
;
6580 uint32_t ResourceStreamerEnable
;
6583 uint32_t AddressSpaceIndicator
;
6584 uint32_t DwordLength
;
6585 __gen_address_type BatchBufferStartAddress
;
6586 __gen_address_type BatchBufferStartAddressHigh
;
6590 GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
6591 const struct GEN8_MI_BATCH_BUFFER_START
* restrict values
)
6593 uint32_t *dw
= (uint32_t * restrict
) dst
;
6596 __gen_field(values
->CommandType
, 29, 31) |
6597 __gen_field(values
->MICommandOpcode
, 23, 28) |
6598 __gen_field(values
->_2ndLevelBatchBuffer
, 22, 22) |
6599 __gen_field(values
->AddOffsetEnable
, 16, 16) |
6600 __gen_field(values
->PredicationEnable
, 15, 15) |
6601 __gen_field(values
->ResourceStreamerEnable
, 10, 10) |
6602 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
6603 __gen_field(values
->DwordLength
, 0, 7) |
6610 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
6616 __gen_combine_address(data
, &dw
[2], values
->BatchBufferStartAddressHigh
, dw2
);
6620 #define GEN8_MI_CLFLUSH_length_bias 0x00000002
6621 #define GEN8_MI_CLFLUSH_header \
6623 .MICommandOpcode = 39
6625 struct GEN8_MI_CLFLUSH
{
6626 uint32_t CommandType
;
6627 uint32_t MICommandOpcode
;
6628 #define PerProcessGraphicsAddress 0
6629 #define GlobalGraphicsAddress 1
6630 uint32_t UseGlobalGTT
;
6631 uint32_t DwordLength
;
6632 __gen_address_type PageBaseAddress
;
6633 uint32_t StartingCachelineOffset
;
6634 __gen_address_type PageBaseAddressHigh
;
6635 /* variable length fields follow */
6639 GEN8_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6640 const struct GEN8_MI_CLFLUSH
* restrict values
)
6642 uint32_t *dw
= (uint32_t * restrict
) dst
;
6645 __gen_field(values
->CommandType
, 29, 31) |
6646 __gen_field(values
->MICommandOpcode
, 23, 28) |
6647 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6648 __gen_field(values
->DwordLength
, 0, 9) |
6652 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
6656 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
6662 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
6664 /* variable length fields follow */
6667 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000003
6668 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
6669 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_header\
6671 .MICommandOpcode = 54, \
6672 .UseGlobalGTT = 0, \
6673 .CompareSemaphore = 0, \
6676 struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
{
6677 uint32_t CommandType
;
6678 uint32_t MICommandOpcode
;
6679 uint32_t UseGlobalGTT
;
6680 uint32_t CompareSemaphore
;
6681 uint32_t DwordLength
;
6682 uint32_t CompareDataDword
;
6683 __gen_address_type CompareAddress
;
6684 __gen_address_type CompareAddressHigh
;
6688 GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
6689 const struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
6691 uint32_t *dw
= (uint32_t * restrict
) dst
;
6694 __gen_field(values
->CommandType
, 29, 31) |
6695 __gen_field(values
->MICommandOpcode
, 23, 28) |
6696 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6697 __gen_field(values
->CompareSemaphore
, 21, 21) |
6698 __gen_field(values
->DwordLength
, 0, 7) |
6702 __gen_field(values
->CompareDataDword
, 0, 31) |
6709 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
6715 __gen_combine_address(data
, &dw
[3], values
->CompareAddressHigh
, dw3
);
6719 #define GEN8_MI_COPY_MEM_MEM_length 0x00000005
6720 #define GEN8_MI_COPY_MEM_MEM_length_bias 0x00000002
6721 #define GEN8_MI_COPY_MEM_MEM_header \
6723 .MICommandOpcode = 46, \
6726 struct GEN8_MI_COPY_MEM_MEM
{
6727 uint32_t CommandType
;
6728 uint32_t MICommandOpcode
;
6729 #define PerProcessGraphicsAddress 0
6730 #define GlobalGraphicsAddress 1
6731 uint32_t UseGlobalGTTSource
;
6732 #define PerProcessGraphicsAddress 0
6733 #define GlobalGraphicsAddress 1
6734 uint32_t UseGlobalGTTDestination
;
6735 uint32_t DwordLength
;
6736 __gen_address_type DestinationMemoryAddress
;
6737 __gen_address_type SourceMemoryAddress
;
6741 GEN8_MI_COPY_MEM_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6742 const struct GEN8_MI_COPY_MEM_MEM
* restrict values
)
6744 uint32_t *dw
= (uint32_t * restrict
) dst
;
6747 __gen_field(values
->CommandType
, 29, 31) |
6748 __gen_field(values
->MICommandOpcode
, 23, 28) |
6749 __gen_field(values
->UseGlobalGTTSource
, 22, 22) |
6750 __gen_field(values
->UseGlobalGTTDestination
, 21, 21) |
6751 __gen_field(values
->DwordLength
, 0, 7) |
6758 __gen_combine_address(data
, &dw
[1], values
->DestinationMemoryAddress
, dw1
);
6767 __gen_combine_address(data
, &dw
[3], values
->SourceMemoryAddress
, dw3
);
6774 #define GEN8_MI_LOAD_REGISTER_IMM_length 0x00000003
6775 #define GEN8_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
6776 #define GEN8_MI_LOAD_REGISTER_IMM_header \
6778 .MICommandOpcode = 34, \
6781 struct GEN8_MI_LOAD_REGISTER_IMM
{
6782 uint32_t CommandType
;
6783 uint32_t MICommandOpcode
;
6784 uint32_t ByteWriteDisables
;
6785 uint32_t DwordLength
;
6786 uint32_t RegisterOffset
;
6791 GEN8_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6792 const struct GEN8_MI_LOAD_REGISTER_IMM
* restrict values
)
6794 uint32_t *dw
= (uint32_t * restrict
) dst
;
6797 __gen_field(values
->CommandType
, 29, 31) |
6798 __gen_field(values
->MICommandOpcode
, 23, 28) |
6799 __gen_field(values
->ByteWriteDisables
, 8, 11) |
6800 __gen_field(values
->DwordLength
, 0, 7) |
6804 __gen_offset(values
->RegisterOffset
, 2, 22) |
6808 __gen_field(values
->DataDWord
, 0, 31) |
6813 #define GEN8_MI_LOAD_REGISTER_MEM_length 0x00000004
6814 #define GEN8_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
6815 #define GEN8_MI_LOAD_REGISTER_MEM_header \
6817 .MICommandOpcode = 41, \
6820 struct GEN8_MI_LOAD_REGISTER_MEM
{
6821 uint32_t CommandType
;
6822 uint32_t MICommandOpcode
;
6823 uint32_t UseGlobalGTT
;
6824 uint32_t AsyncModeEnable
;
6825 uint32_t DwordLength
;
6826 uint32_t RegisterAddress
;
6827 __gen_address_type MemoryAddress
;
6831 GEN8_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6832 const struct GEN8_MI_LOAD_REGISTER_MEM
* restrict values
)
6834 uint32_t *dw
= (uint32_t * restrict
) dst
;
6837 __gen_field(values
->CommandType
, 29, 31) |
6838 __gen_field(values
->MICommandOpcode
, 23, 28) |
6839 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6840 __gen_field(values
->AsyncModeEnable
, 21, 21) |
6841 __gen_field(values
->DwordLength
, 0, 7) |
6845 __gen_offset(values
->RegisterAddress
, 2, 22) |
6852 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6859 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
6860 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
6861 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_header \
6863 .MICommandOpcode = 19, \
6866 struct GEN8_MI_LOAD_SCAN_LINES_EXCL
{
6867 uint32_t CommandType
;
6868 uint32_t MICommandOpcode
;
6869 #define DisplayPlaneA 0
6870 #define DisplayPlaneB 1
6871 #define DisplayPlaneC 4
6872 uint32_t DisplayPlaneSelect
;
6873 uint32_t DwordLength
;
6874 uint32_t StartScanLineNumber
;
6875 uint32_t EndScanLineNumber
;
6879 GEN8_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data
*data
, void * restrict dst
,
6880 const struct GEN8_MI_LOAD_SCAN_LINES_EXCL
* restrict values
)
6882 uint32_t *dw
= (uint32_t * restrict
) dst
;
6885 __gen_field(values
->CommandType
, 29, 31) |
6886 __gen_field(values
->MICommandOpcode
, 23, 28) |
6887 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6888 __gen_field(values
->DwordLength
, 0, 5) |
6892 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6893 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6898 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
6899 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
6900 #define GEN8_MI_LOAD_SCAN_LINES_INCL_header \
6902 .MICommandOpcode = 18, \
6905 struct GEN8_MI_LOAD_SCAN_LINES_INCL
{
6906 uint32_t CommandType
;
6907 uint32_t MICommandOpcode
;
6908 #define DisplayPlaneA 0
6909 #define DisplayPlaneB 1
6910 #define DisplayPlaneC 4
6911 uint32_t DisplayPlaneSelect
;
6912 #define NeverForward 0
6913 #define AlwaysForward 1
6914 #define ConditionallyForward 2
6915 uint32_t ScanLineEventDoneForward
;
6916 uint32_t DwordLength
;
6917 uint32_t StartScanLineNumber
;
6918 uint32_t EndScanLineNumber
;
6922 GEN8_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data
*data
, void * restrict dst
,
6923 const struct GEN8_MI_LOAD_SCAN_LINES_INCL
* restrict values
)
6925 uint32_t *dw
= (uint32_t * restrict
) dst
;
6928 __gen_field(values
->CommandType
, 29, 31) |
6929 __gen_field(values
->MICommandOpcode
, 23, 28) |
6930 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6931 __gen_field(values
->ScanLineEventDoneForward
, 17, 18) |
6932 __gen_field(values
->DwordLength
, 0, 5) |
6936 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6937 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6942 #define GEN8_MI_LOAD_URB_MEM_length 0x00000004
6943 #define GEN8_MI_LOAD_URB_MEM_length_bias 0x00000002
6944 #define GEN8_MI_LOAD_URB_MEM_header \
6946 .MICommandOpcode = 44, \
6949 struct GEN8_MI_LOAD_URB_MEM
{
6950 uint32_t CommandType
;
6951 uint32_t MICommandOpcode
;
6952 uint32_t DwordLength
;
6953 uint32_t URBAddress
;
6954 __gen_address_type MemoryAddress
;
6958 GEN8_MI_LOAD_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6959 const struct GEN8_MI_LOAD_URB_MEM
* restrict values
)
6961 uint32_t *dw
= (uint32_t * restrict
) dst
;
6964 __gen_field(values
->CommandType
, 29, 31) |
6965 __gen_field(values
->MICommandOpcode
, 23, 28) |
6966 __gen_field(values
->DwordLength
, 0, 7) |
6970 __gen_field(values
->URBAddress
, 2, 14) |
6977 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6984 #define GEN8_MI_MATH_length_bias 0x00000002
6985 #define GEN8_MI_MATH_header \
6987 .MICommandOpcode = 26
6989 struct GEN8_MI_MATH
{
6990 uint32_t CommandType
;
6991 uint32_t MICommandOpcode
;
6992 uint32_t DwordLength
;
6993 uint32_t ALUINSTRUCTION1
;
6994 uint32_t ALUINSTRUCTION2
;
6995 /* variable length fields follow */
6999 GEN8_MI_MATH_pack(__gen_user_data
*data
, void * restrict dst
,
7000 const struct GEN8_MI_MATH
* restrict values
)
7002 uint32_t *dw
= (uint32_t * restrict
) dst
;
7005 __gen_field(values
->CommandType
, 29, 31) |
7006 __gen_field(values
->MICommandOpcode
, 23, 28) |
7007 __gen_field(values
->DwordLength
, 0, 5) |
7011 __gen_field(values
->ALUINSTRUCTION1
, 0, 31) |
7015 __gen_field(values
->ALUINSTRUCTION2
, 0, 31) |
7018 /* variable length fields follow */
7021 #define GEN8_MI_NOOP_length 0x00000001
7022 #define GEN8_MI_NOOP_length_bias 0x00000001
7023 #define GEN8_MI_NOOP_header \
7025 .MICommandOpcode = 0
7027 struct GEN8_MI_NOOP
{
7028 uint32_t CommandType
;
7029 uint32_t MICommandOpcode
;
7030 uint32_t IdentificationNumberRegisterWriteEnable
;
7031 uint32_t IdentificationNumber
;
7035 GEN8_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
7036 const struct GEN8_MI_NOOP
* restrict values
)
7038 uint32_t *dw
= (uint32_t * restrict
) dst
;
7041 __gen_field(values
->CommandType
, 29, 31) |
7042 __gen_field(values
->MICommandOpcode
, 23, 28) |
7043 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
7044 __gen_field(values
->IdentificationNumber
, 0, 21) |
7049 #define GEN8_MI_PREDICATE_length 0x00000001
7050 #define GEN8_MI_PREDICATE_length_bias 0x00000001
7051 #define GEN8_MI_PREDICATE_header \
7053 .MICommandOpcode = 12
7055 struct GEN8_MI_PREDICATE
{
7056 uint32_t CommandType
;
7057 uint32_t MICommandOpcode
;
7061 uint32_t LoadOperation
;
7062 #define COMBINE_SET 0
7063 #define COMBINE_AND 1
7064 #define COMBINE_OR 2
7065 #define COMBINE_XOR 3
7066 uint32_t CombineOperation
;
7067 #define COMPARE_SRCS_EQUAL 2
7068 #define COMPARE_DELTAS_EQUAL 3
7069 uint32_t CompareOperation
;
7073 GEN8_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7074 const struct GEN8_MI_PREDICATE
* restrict values
)
7076 uint32_t *dw
= (uint32_t * restrict
) dst
;
7079 __gen_field(values
->CommandType
, 29, 31) |
7080 __gen_field(values
->MICommandOpcode
, 23, 28) |
7081 __gen_field(values
->LoadOperation
, 6, 7) |
7082 __gen_field(values
->CombineOperation
, 3, 4) |
7083 __gen_field(values
->CompareOperation
, 0, 1) |
7088 #define GEN8_MI_REPORT_HEAD_length 0x00000001
7089 #define GEN8_MI_REPORT_HEAD_length_bias 0x00000001
7090 #define GEN8_MI_REPORT_HEAD_header \
7092 .MICommandOpcode = 7
7094 struct GEN8_MI_REPORT_HEAD
{
7095 uint32_t CommandType
;
7096 uint32_t MICommandOpcode
;
7100 GEN8_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
7101 const struct GEN8_MI_REPORT_HEAD
* restrict values
)
7103 uint32_t *dw
= (uint32_t * restrict
) dst
;
7106 __gen_field(values
->CommandType
, 29, 31) |
7107 __gen_field(values
->MICommandOpcode
, 23, 28) |
7112 #define GEN8_MI_RS_CONTEXT_length 0x00000001
7113 #define GEN8_MI_RS_CONTEXT_length_bias 0x00000001
7114 #define GEN8_MI_RS_CONTEXT_header \
7116 .MICommandOpcode = 15
7118 struct GEN8_MI_RS_CONTEXT
{
7119 uint32_t CommandType
;
7120 uint32_t MICommandOpcode
;
7123 uint32_t ResourceStreamerSave
;
7127 GEN8_MI_RS_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7128 const struct GEN8_MI_RS_CONTEXT
* restrict values
)
7130 uint32_t *dw
= (uint32_t * restrict
) dst
;
7133 __gen_field(values
->CommandType
, 29, 31) |
7134 __gen_field(values
->MICommandOpcode
, 23, 28) |
7135 __gen_field(values
->ResourceStreamerSave
, 0, 0) |
7140 #define GEN8_MI_RS_CONTROL_length 0x00000001
7141 #define GEN8_MI_RS_CONTROL_length_bias 0x00000001
7142 #define GEN8_MI_RS_CONTROL_header \
7144 .MICommandOpcode = 6
7146 struct GEN8_MI_RS_CONTROL
{
7147 uint32_t CommandType
;
7148 uint32_t MICommandOpcode
;
7151 uint32_t ResourceStreamerControl
;
7155 GEN8_MI_RS_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7156 const struct GEN8_MI_RS_CONTROL
* restrict values
)
7158 uint32_t *dw
= (uint32_t * restrict
) dst
;
7161 __gen_field(values
->CommandType
, 29, 31) |
7162 __gen_field(values
->MICommandOpcode
, 23, 28) |
7163 __gen_field(values
->ResourceStreamerControl
, 0, 0) |
7168 #define GEN8_MI_RS_STORE_DATA_IMM_length 0x00000004
7169 #define GEN8_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
7170 #define GEN8_MI_RS_STORE_DATA_IMM_header \
7172 .MICommandOpcode = 43, \
7175 struct GEN8_MI_RS_STORE_DATA_IMM
{
7176 uint32_t CommandType
;
7177 uint32_t MICommandOpcode
;
7178 uint32_t DwordLength
;
7179 __gen_address_type DestinationAddress
;
7180 uint32_t CoreModeEnable
;
7181 uint32_t DataDWord0
;
7185 GEN8_MI_RS_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7186 const struct GEN8_MI_RS_STORE_DATA_IMM
* restrict values
)
7188 uint32_t *dw
= (uint32_t * restrict
) dst
;
7191 __gen_field(values
->CommandType
, 29, 31) |
7192 __gen_field(values
->MICommandOpcode
, 23, 28) |
7193 __gen_field(values
->DwordLength
, 0, 7) |
7197 __gen_field(values
->CoreModeEnable
, 0, 0) |
7201 __gen_combine_address(data
, &dw
[1], values
->DestinationAddress
, dw1
);
7207 __gen_field(values
->DataDWord0
, 0, 31) |
7212 #define GEN8_MI_SET_CONTEXT_length 0x00000002
7213 #define GEN8_MI_SET_CONTEXT_length_bias 0x00000002
7214 #define GEN8_MI_SET_CONTEXT_header \
7216 .MICommandOpcode = 24, \
7219 struct GEN8_MI_SET_CONTEXT
{
7220 uint32_t CommandType
;
7221 uint32_t MICommandOpcode
;
7222 uint32_t DwordLength
;
7223 __gen_address_type LogicalContextAddress
;
7224 uint32_t ReservedMustbe1
;
7225 uint32_t CoreModeEnable
;
7226 uint32_t ResourceStreamerStateSaveEnable
;
7227 uint32_t ResourceStreamerStateRestoreEnable
;
7228 uint32_t ForceRestore
;
7229 uint32_t RestoreInhibit
;
7233 GEN8_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
7234 const struct GEN8_MI_SET_CONTEXT
* restrict values
)
7236 uint32_t *dw
= (uint32_t * restrict
) dst
;
7239 __gen_field(values
->CommandType
, 29, 31) |
7240 __gen_field(values
->MICommandOpcode
, 23, 28) |
7241 __gen_field(values
->DwordLength
, 0, 7) |
7245 __gen_field(values
->ReservedMustbe1
, 8, 8) |
7246 __gen_field(values
->CoreModeEnable
, 4, 4) |
7247 __gen_field(values
->ResourceStreamerStateSaveEnable
, 3, 3) |
7248 __gen_field(values
->ResourceStreamerStateRestoreEnable
, 2, 2) |
7249 __gen_field(values
->ForceRestore
, 1, 1) |
7250 __gen_field(values
->RestoreInhibit
, 0, 0) |
7254 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
7258 #define GEN8_MI_SET_PREDICATE_length 0x00000001
7259 #define GEN8_MI_SET_PREDICATE_length_bias 0x00000001
7260 #define GEN8_MI_SET_PREDICATE_header \
7262 .MICommandOpcode = 1
7264 struct GEN8_MI_SET_PREDICATE
{
7265 uint32_t CommandType
;
7266 uint32_t MICommandOpcode
;
7268 #define NOOPonResult2clear 1
7269 #define NOOPonResult2set 2
7270 #define NOOPonResultclear 3
7271 #define NOOPonResultset 4
7272 #define Executewhenonesliceenabled 5
7273 #define Executewhentwoslicesareenabled 6
7274 #define Executewhenthreeslicesareenabled 7
7275 #define NOOPAlways 15
7276 uint32_t PREDICATEENABLE
;
7280 GEN8_MI_SET_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
7281 const struct GEN8_MI_SET_PREDICATE
* restrict values
)
7283 uint32_t *dw
= (uint32_t * restrict
) dst
;
7286 __gen_field(values
->CommandType
, 29, 31) |
7287 __gen_field(values
->MICommandOpcode
, 23, 28) |
7288 __gen_field(values
->PREDICATEENABLE
, 0, 3) |
7293 #define GEN8_MI_STORE_DATA_IMM_length 0x00000004
7294 #define GEN8_MI_STORE_DATA_IMM_length_bias 0x00000002
7295 #define GEN8_MI_STORE_DATA_IMM_header \
7297 .MICommandOpcode = 32, \
7300 struct GEN8_MI_STORE_DATA_IMM
{
7301 uint32_t CommandType
;
7302 uint32_t MICommandOpcode
;
7303 uint32_t UseGlobalGTT
;
7304 uint32_t StoreQword
;
7305 uint32_t DwordLength
;
7306 __gen_address_type Address
;
7307 uint32_t CoreModeEnable
;
7308 uint32_t DataDWord0
;
7309 uint32_t DataDWord1
;
7313 GEN8_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
7314 const struct GEN8_MI_STORE_DATA_IMM
* restrict values
)
7316 uint32_t *dw
= (uint32_t * restrict
) dst
;
7319 __gen_field(values
->CommandType
, 29, 31) |
7320 __gen_field(values
->MICommandOpcode
, 23, 28) |
7321 __gen_field(values
->UseGlobalGTT
, 22, 22) |
7322 __gen_field(values
->StoreQword
, 21, 21) |
7323 __gen_field(values
->DwordLength
, 0, 9) |
7327 __gen_field(values
->CoreModeEnable
, 0, 0) |
7331 __gen_combine_address(data
, &dw
[1], values
->Address
, dw1
);
7337 __gen_field(values
->DataDWord0
, 0, 31) |
7341 __gen_field(values
->DataDWord1
, 0, 31) |
7346 #define GEN8_MI_STORE_DATA_INDEX_length 0x00000003
7347 #define GEN8_MI_STORE_DATA_INDEX_length_bias 0x00000002
7348 #define GEN8_MI_STORE_DATA_INDEX_header \
7350 .MICommandOpcode = 33, \
7353 struct GEN8_MI_STORE_DATA_INDEX
{
7354 uint32_t CommandType
;
7355 uint32_t MICommandOpcode
;
7356 uint32_t UsePerProcessHardwareStatusPage
;
7357 uint32_t DwordLength
;
7359 uint32_t DataDWord0
;
7360 uint32_t DataDWord1
;
7364 GEN8_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
7365 const struct GEN8_MI_STORE_DATA_INDEX
* restrict values
)
7367 uint32_t *dw
= (uint32_t * restrict
) dst
;
7370 __gen_field(values
->CommandType
, 29, 31) |
7371 __gen_field(values
->MICommandOpcode
, 23, 28) |
7372 __gen_field(values
->UsePerProcessHardwareStatusPage
, 21, 21) |
7373 __gen_field(values
->DwordLength
, 0, 7) |
7377 __gen_field(values
->Offset
, 2, 11) |
7381 __gen_field(values
->DataDWord0
, 0, 31) |
7385 __gen_field(values
->DataDWord1
, 0, 31) |
7390 #define GEN8_MI_STORE_URB_MEM_length 0x00000004
7391 #define GEN8_MI_STORE_URB_MEM_length_bias 0x00000002
7392 #define GEN8_MI_STORE_URB_MEM_header \
7394 .MICommandOpcode = 45, \
7397 struct GEN8_MI_STORE_URB_MEM
{
7398 uint32_t CommandType
;
7399 uint32_t MICommandOpcode
;
7400 uint32_t DwordLength
;
7401 uint32_t URBAddress
;
7402 __gen_address_type MemoryAddress
;
7406 GEN8_MI_STORE_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
7407 const struct GEN8_MI_STORE_URB_MEM
* restrict values
)
7409 uint32_t *dw
= (uint32_t * restrict
) dst
;
7412 __gen_field(values
->CommandType
, 29, 31) |
7413 __gen_field(values
->MICommandOpcode
, 23, 28) |
7414 __gen_field(values
->DwordLength
, 0, 7) |
7418 __gen_field(values
->URBAddress
, 2, 14) |
7425 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
7432 #define GEN8_MI_SUSPEND_FLUSH_length 0x00000001
7433 #define GEN8_MI_SUSPEND_FLUSH_length_bias 0x00000001
7434 #define GEN8_MI_SUSPEND_FLUSH_header \
7436 .MICommandOpcode = 11
7438 struct GEN8_MI_SUSPEND_FLUSH
{
7439 uint32_t CommandType
;
7440 uint32_t MICommandOpcode
;
7441 uint32_t SuspendFlush
;
7445 GEN8_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
7446 const struct GEN8_MI_SUSPEND_FLUSH
* restrict values
)
7448 uint32_t *dw
= (uint32_t * restrict
) dst
;
7451 __gen_field(values
->CommandType
, 29, 31) |
7452 __gen_field(values
->MICommandOpcode
, 23, 28) |
7453 __gen_field(values
->SuspendFlush
, 0, 0) |
7458 #define GEN8_MI_TOPOLOGY_FILTER_length 0x00000001
7459 #define GEN8_MI_TOPOLOGY_FILTER_length_bias 0x00000001
7460 #define GEN8_MI_TOPOLOGY_FILTER_header \
7462 .MICommandOpcode = 13
7464 struct GEN8_MI_TOPOLOGY_FILTER
{
7465 uint32_t CommandType
;
7466 uint32_t MICommandOpcode
;
7467 uint32_t TopologyFilterValue
;
7471 GEN8_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
7472 const struct GEN8_MI_TOPOLOGY_FILTER
* restrict values
)
7474 uint32_t *dw
= (uint32_t * restrict
) dst
;
7477 __gen_field(values
->CommandType
, 29, 31) |
7478 __gen_field(values
->MICommandOpcode
, 23, 28) |
7479 __gen_field(values
->TopologyFilterValue
, 0, 5) |
7484 #define GEN8_MI_UPDATE_GTT_length_bias 0x00000002
7485 #define GEN8_MI_UPDATE_GTT_header \
7487 .MICommandOpcode = 35
7489 struct GEN8_MI_UPDATE_GTT
{
7490 uint32_t CommandType
;
7491 uint32_t MICommandOpcode
;
7492 uint32_t DwordLength
;
7493 __gen_address_type EntryAddress
;
7494 /* variable length fields follow */
7498 GEN8_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
7499 const struct GEN8_MI_UPDATE_GTT
* restrict values
)
7501 uint32_t *dw
= (uint32_t * restrict
) dst
;
7504 __gen_field(values
->CommandType
, 29, 31) |
7505 __gen_field(values
->MICommandOpcode
, 23, 28) |
7506 __gen_field(values
->DwordLength
, 0, 9) |
7513 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
7515 /* variable length fields follow */
7518 #define GEN8_MI_URB_ATOMIC_ALLOC_length 0x00000001
7519 #define GEN8_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
7520 #define GEN8_MI_URB_ATOMIC_ALLOC_header \
7522 .MICommandOpcode = 9
7524 struct GEN8_MI_URB_ATOMIC_ALLOC
{
7525 uint32_t CommandType
;
7526 uint32_t MICommandOpcode
;
7527 uint32_t URBAtomicStorageOffset
;
7528 uint32_t URBAtomicStorageSize
;
7532 GEN8_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
7533 const struct GEN8_MI_URB_ATOMIC_ALLOC
* restrict values
)
7535 uint32_t *dw
= (uint32_t * restrict
) dst
;
7538 __gen_field(values
->CommandType
, 29, 31) |
7539 __gen_field(values
->MICommandOpcode
, 23, 28) |
7540 __gen_field(values
->URBAtomicStorageOffset
, 12, 19) |
7541 __gen_field(values
->URBAtomicStorageSize
, 0, 8) |
7546 #define GEN8_MI_URB_CLEAR_length 0x00000002
7547 #define GEN8_MI_URB_CLEAR_length_bias 0x00000002
7548 #define GEN8_MI_URB_CLEAR_header \
7550 .MICommandOpcode = 25, \
7553 struct GEN8_MI_URB_CLEAR
{
7554 uint32_t CommandType
;
7555 uint32_t MICommandOpcode
;
7556 uint32_t DwordLength
;
7557 uint32_t URBClearLength
;
7558 uint32_t URBAddress
;
7562 GEN8_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
7563 const struct GEN8_MI_URB_CLEAR
* restrict values
)
7565 uint32_t *dw
= (uint32_t * restrict
) dst
;
7568 __gen_field(values
->CommandType
, 29, 31) |
7569 __gen_field(values
->MICommandOpcode
, 23, 28) |
7570 __gen_field(values
->DwordLength
, 0, 7) |
7574 __gen_field(values
->URBClearLength
, 16, 29) |
7575 __gen_offset(values
->URBAddress
, 0, 14) |
7580 #define GEN8_MI_USER_INTERRUPT_length 0x00000001
7581 #define GEN8_MI_USER_INTERRUPT_length_bias 0x00000001
7582 #define GEN8_MI_USER_INTERRUPT_header \
7584 .MICommandOpcode = 2
7586 struct GEN8_MI_USER_INTERRUPT
{
7587 uint32_t CommandType
;
7588 uint32_t MICommandOpcode
;
7592 GEN8_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
7593 const struct GEN8_MI_USER_INTERRUPT
* restrict values
)
7595 uint32_t *dw
= (uint32_t * restrict
) dst
;
7598 __gen_field(values
->CommandType
, 29, 31) |
7599 __gen_field(values
->MICommandOpcode
, 23, 28) |
7604 #define GEN8_MI_WAIT_FOR_EVENT_length 0x00000001
7605 #define GEN8_MI_WAIT_FOR_EVENT_length_bias 0x00000001
7606 #define GEN8_MI_WAIT_FOR_EVENT_header \
7608 .MICommandOpcode = 3
7610 struct GEN8_MI_WAIT_FOR_EVENT
{
7611 uint32_t CommandType
;
7612 uint32_t MICommandOpcode
;
7613 uint32_t DisplayPipeCVerticalBlankWaitEnable
;
7614 uint32_t DisplaySpriteCFlipPendingWaitEnable
;
7615 uint32_t DisplayPlaneCFlipPendingWaitEnable
;
7616 uint32_t DisplayPipeCScanLineWaitEnable
;
7617 uint32_t DisplayPipeBVerticalBlankWaitEnable
;
7618 uint32_t DisplaySpriteBFlipPendingWaitEnable
;
7619 uint32_t DisplayPlaneBFlipPendingWaitEnable
;
7620 uint32_t DisplayPipeBScanLineWaitEnable
;
7621 uint32_t DisplayPipeAVerticalBlankWaitEnable
;
7622 uint32_t DisplaySpriteAFlipPendingWaitEnable
;
7623 uint32_t DisplayPlaneAFlipPendingWaitEnable
;
7624 uint32_t DisplayPipeAScanLineWaitEnable
;
7628 GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
7629 const struct GEN8_MI_WAIT_FOR_EVENT
* restrict values
)
7631 uint32_t *dw
= (uint32_t * restrict
) dst
;
7634 __gen_field(values
->CommandType
, 29, 31) |
7635 __gen_field(values
->MICommandOpcode
, 23, 28) |
7636 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
7637 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
7638 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
7639 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
7640 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
7641 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
7642 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
7643 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
7644 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
7645 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
7646 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
7647 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
7652 #define GEN8_PIPE_CONTROL_length 0x00000006
7653 #define GEN8_PIPE_CONTROL_length_bias 0x00000002
7654 #define GEN8_PIPE_CONTROL_header \
7656 .CommandSubType = 3, \
7657 ._3DCommandOpcode = 2, \
7658 ._3DCommandSubOpcode = 0, \
7661 struct GEN8_PIPE_CONTROL
{
7662 uint32_t CommandType
;
7663 uint32_t CommandSubType
;
7664 uint32_t _3DCommandOpcode
;
7665 uint32_t _3DCommandSubOpcode
;
7666 uint32_t DwordLength
;
7669 uint32_t DestinationAddressType
;
7670 #define NoLRIOperation 0
7671 #define MMIOWriteImmediateData 1
7672 uint32_t LRIPostSyncOperation
;
7673 uint32_t StoreDataIndex
;
7674 uint32_t CommandStreamerStallEnable
;
7677 uint32_t GlobalSnapshotCountReset
;
7678 uint32_t TLBInvalidate
;
7679 uint32_t GenericMediaStateClear
;
7681 #define WriteImmediateData 1
7682 #define WritePSDepthCount 2
7683 #define WriteTimestamp 3
7684 uint32_t PostSyncOperation
;
7685 uint32_t DepthStallEnable
;
7686 #define DisableFlush 0
7687 #define EnableFlush 1
7688 uint32_t RenderTargetCacheFlushEnable
;
7689 uint32_t InstructionCacheInvalidateEnable
;
7690 uint32_t TextureCacheInvalidationEnable
;
7691 uint32_t IndirectStatePointersDisable
;
7692 uint32_t NotifyEnable
;
7693 uint32_t PipeControlFlushEnable
;
7694 uint32_t DCFlushEnable
;
7695 uint32_t VFCacheInvalidationEnable
;
7696 uint32_t ConstantCacheInvalidationEnable
;
7697 uint32_t StateCacheInvalidationEnable
;
7698 uint32_t StallAtPixelScoreboard
;
7699 #define FlushDisabled 0
7700 #define FlushEnabled 1
7701 uint32_t DepthCacheFlushEnable
;
7702 __gen_address_type Address
;
7703 __gen_address_type AddressHigh
;
7704 uint64_t ImmediateData
;
7708 GEN8_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7709 const struct GEN8_PIPE_CONTROL
* restrict values
)
7711 uint32_t *dw
= (uint32_t * restrict
) dst
;
7714 __gen_field(values
->CommandType
, 29, 31) |
7715 __gen_field(values
->CommandSubType
, 27, 28) |
7716 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
7717 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
7718 __gen_field(values
->DwordLength
, 0, 7) |
7722 __gen_field(values
->DestinationAddressType
, 24, 24) |
7723 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
7724 __gen_field(values
->StoreDataIndex
, 21, 21) |
7725 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
7726 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
7727 __gen_field(values
->TLBInvalidate
, 18, 18) |
7728 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
7729 __gen_field(values
->PostSyncOperation
, 14, 15) |
7730 __gen_field(values
->DepthStallEnable
, 13, 13) |
7731 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
7732 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
7733 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
7734 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
7735 __gen_field(values
->NotifyEnable
, 8, 8) |
7736 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
7737 __gen_field(values
->DCFlushEnable
, 5, 5) |
7738 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
7739 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
7740 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
7741 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
7742 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
7749 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
7755 __gen_combine_address(data
, &dw
[3], values
->AddressHigh
, dw3
);
7758 __gen_field(values
->ImmediateData
, 0, 63) |
7766 #define GEN8_3DSTATE_CONSTANT_BODY_length 0x0000000a
7768 #define GEN8_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
7770 #define GEN8_GATHER_CONSTANT_ENTRY_length 0x00000001
7772 #define GEN8_VERTEX_BUFFER_STATE_length 0x00000004
7774 #define GEN8_VERTEX_ELEMENT_STATE_length 0x00000002
7776 #define GEN8_SO_DECL_ENTRY_length 0x00000002
7778 #define GEN8_SO_DECL_length 0x00000001
7780 #define GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
7782 #define GEN8_SCISSOR_RECT_length 0x00000002
7784 struct GEN8_SCISSOR_RECT
{
7785 uint32_t ScissorRectangleYMin
;
7786 uint32_t ScissorRectangleXMin
;
7787 uint32_t ScissorRectangleYMax
;
7788 uint32_t ScissorRectangleXMax
;
7792 GEN8_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
7793 const struct GEN8_SCISSOR_RECT
* restrict values
)
7795 uint32_t *dw
= (uint32_t * restrict
) dst
;
7798 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
7799 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
7803 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
7804 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
7809 #define GEN8_SF_CLIP_VIEWPORT_length 0x00000010
7811 struct GEN8_SF_CLIP_VIEWPORT
{
7812 float ViewportMatrixElementm00
;
7813 float ViewportMatrixElementm11
;
7814 float ViewportMatrixElementm22
;
7815 float ViewportMatrixElementm30
;
7816 float ViewportMatrixElementm31
;
7817 float ViewportMatrixElementm32
;
7818 float XMinClipGuardband
;
7819 float XMaxClipGuardband
;
7820 float YMinClipGuardband
;
7821 float YMaxClipGuardband
;
7829 GEN8_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7830 const struct GEN8_SF_CLIP_VIEWPORT
* restrict values
)
7832 uint32_t *dw
= (uint32_t * restrict
) dst
;
7835 __gen_float(values
->ViewportMatrixElementm00
) |
7839 __gen_float(values
->ViewportMatrixElementm11
) |
7843 __gen_float(values
->ViewportMatrixElementm22
) |
7847 __gen_float(values
->ViewportMatrixElementm30
) |
7851 __gen_float(values
->ViewportMatrixElementm31
) |
7855 __gen_float(values
->ViewportMatrixElementm32
) |
7865 __gen_float(values
->XMinClipGuardband
) |
7869 __gen_float(values
->XMaxClipGuardband
) |
7873 __gen_float(values
->YMinClipGuardband
) |
7877 __gen_float(values
->YMaxClipGuardband
) |
7881 __gen_float(values
->XMinViewPort
) |
7885 __gen_float(values
->XMaxViewPort
) |
7889 __gen_float(values
->YMinViewPort
) |
7893 __gen_float(values
->YMaxViewPort
) |
7898 #define GEN8_BLEND_STATE_length 0x00000011
7900 struct GEN8_BLEND_STATE_ENTRY
{
7901 uint32_t LogicOpEnable
;
7902 uint32_t LogicOpFunction
;
7903 uint32_t PreBlendSourceOnlyClampEnable
;
7904 #define COLORCLAMP_UNORM 0
7905 #define COLORCLAMP_SNORM 1
7906 #define COLORCLAMP_RTFORMAT 2
7907 uint32_t ColorClampRange
;
7908 uint32_t PreBlendColorClampEnable
;
7909 uint32_t PostBlendColorClampEnable
;
7910 uint32_t ColorBufferBlendEnable
;
7911 uint32_t SourceBlendFactor
;
7912 uint32_t DestinationBlendFactor
;
7913 uint32_t ColorBlendFunction
;
7914 uint32_t SourceAlphaBlendFactor
;
7915 uint32_t DestinationAlphaBlendFactor
;
7916 uint32_t AlphaBlendFunction
;
7917 uint32_t WriteDisableAlpha
;
7918 uint32_t WriteDisableRed
;
7919 uint32_t WriteDisableGreen
;
7920 uint32_t WriteDisableBlue
;
7924 GEN8_BLEND_STATE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
7925 const struct GEN8_BLEND_STATE_ENTRY
* restrict values
)
7927 uint32_t *dw
= (uint32_t * restrict
) dst
;
7930 __gen_field(values
->LogicOpEnable
, 63, 63) |
7931 __gen_field(values
->LogicOpFunction
, 59, 62) |
7932 __gen_field(values
->PreBlendSourceOnlyClampEnable
, 36, 36) |
7933 __gen_field(values
->ColorClampRange
, 34, 35) |
7934 __gen_field(values
->PreBlendColorClampEnable
, 33, 33) |
7935 __gen_field(values
->PostBlendColorClampEnable
, 32, 32) |
7936 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
7937 __gen_field(values
->SourceBlendFactor
, 26, 30) |
7938 __gen_field(values
->DestinationBlendFactor
, 21, 25) |
7939 __gen_field(values
->ColorBlendFunction
, 18, 20) |
7940 __gen_field(values
->SourceAlphaBlendFactor
, 13, 17) |
7941 __gen_field(values
->DestinationAlphaBlendFactor
, 8, 12) |
7942 __gen_field(values
->AlphaBlendFunction
, 5, 7) |
7943 __gen_field(values
->WriteDisableAlpha
, 3, 3) |
7944 __gen_field(values
->WriteDisableRed
, 2, 2) |
7945 __gen_field(values
->WriteDisableGreen
, 1, 1) |
7946 __gen_field(values
->WriteDisableBlue
, 0, 0) |
7951 struct GEN8_BLEND_STATE
{
7952 uint32_t AlphaToCoverageEnable
;
7953 uint32_t IndependentAlphaBlendEnable
;
7954 uint32_t AlphaToOneEnable
;
7955 uint32_t AlphaToCoverageDitherEnable
;
7956 uint32_t AlphaTestEnable
;
7957 uint32_t AlphaTestFunction
;
7958 uint32_t ColorDitherEnable
;
7959 uint32_t XDitherOffset
;
7960 uint32_t YDitherOffset
;
7961 struct GEN8_BLEND_STATE_ENTRY Entry
;
7965 GEN8_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7966 const struct GEN8_BLEND_STATE
* restrict values
)
7968 uint32_t *dw
= (uint32_t * restrict
) dst
;
7971 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
7972 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
7973 __gen_field(values
->AlphaToOneEnable
, 29, 29) |
7974 __gen_field(values
->AlphaToCoverageDitherEnable
, 28, 28) |
7975 __gen_field(values
->AlphaTestEnable
, 27, 27) |
7976 __gen_field(values
->AlphaTestFunction
, 24, 26) |
7977 __gen_field(values
->ColorDitherEnable
, 23, 23) |
7978 __gen_field(values
->XDitherOffset
, 21, 22) |
7979 __gen_field(values
->YDitherOffset
, 19, 20) |
7982 GEN8_BLEND_STATE_ENTRY_pack(data
, &dw
[1], &values
->Entry
);
7985 #define GEN8_BLEND_STATE_ENTRY_length 0x00000001
7987 #define GEN8_CC_VIEWPORT_length 0x00000002
7989 struct GEN8_CC_VIEWPORT
{
7995 GEN8_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7996 const struct GEN8_CC_VIEWPORT
* restrict values
)
7998 uint32_t *dw
= (uint32_t * restrict
) dst
;
8001 __gen_float(values
->MinimumDepth
) |
8005 __gen_float(values
->MaximumDepth
) |
8010 #define GEN8_COLOR_CALC_STATE_length 0x00000006
8012 struct GEN8_COLOR_CALC_STATE
{
8013 uint32_t StencilReferenceValue
;
8014 uint32_t BackFaceStencilReferenceValue
;
8016 #define NotCancelled 1
8017 uint32_t RoundDisableFunctionDisable
;
8018 #define ALPHATEST_UNORM8 0
8019 #define ALPHATEST_FLOAT32 1
8020 uint32_t AlphaTestFormat
;
8021 uint32_t AlphaReferenceValueAsUNORM8
;
8022 float AlphaReferenceValueAsFLOAT32
;
8023 float BlendConstantColorRed
;
8024 float BlendConstantColorGreen
;
8025 float BlendConstantColorBlue
;
8026 float BlendConstantColorAlpha
;
8030 GEN8_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8031 const struct GEN8_COLOR_CALC_STATE
* restrict values
)
8033 uint32_t *dw
= (uint32_t * restrict
) dst
;
8036 __gen_field(values
->StencilReferenceValue
, 24, 31) |
8037 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
8038 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
8039 __gen_field(values
->AlphaTestFormat
, 0, 0) |
8043 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
8044 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
8048 __gen_float(values
->BlendConstantColorRed
) |
8052 __gen_float(values
->BlendConstantColorGreen
) |
8056 __gen_float(values
->BlendConstantColorBlue
) |
8060 __gen_float(values
->BlendConstantColorAlpha
) |
8065 #define GEN8_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
8067 #define GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001
8069 struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
{
8070 #define UseCacheabilityControlsfrompagetableUCwithFenceifcoherentcycle 0
8071 #define UncacheableUCnoncacheable 1
8072 #define WritethroughWT 2
8073 #define WritebackWB 3
8074 uint32_t MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
;
8077 #define LLCeLLCAllowed 2
8078 #define L3LLCeLLCAllowed 3
8079 uint32_t TargetCacheTC
;
8080 uint32_t EncryptedData
;
8081 #define PoorChance 3
8082 #define NormalChance 2
8083 #define BetterChance 1
8084 #define BestChance 0
8085 uint32_t AgeforQUADLRUAGE
;
8089 GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_pack(__gen_user_data
*data
, void * restrict dst
,
8090 const struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS
* restrict values
)
8092 uint32_t *dw
= (uint32_t * restrict
) dst
;
8095 __gen_field(values
->MemoryTypeLLCeLLCCacheabilityControlLeLLCCC
, 5, 6) |
8096 __gen_field(values
->TargetCacheTC
, 3, 4) |
8097 __gen_field(values
->EncryptedData
, 2, 2) |
8098 __gen_field(values
->AgeforQUADLRUAGE
, 0, 1) |
8103 #define GEN8_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
8105 struct GEN8_INTERFACE_DESCRIPTOR_DATA
{
8106 uint32_t KernelStartPointer
;
8107 uint32_t KernelStartPointerHigh
;
8109 #define SetByKernel 1
8110 uint32_t DenormMode
;
8113 uint32_t SingleProgramFlow
;
8114 #define NormalPriority 0
8115 #define HighPriority 1
8116 uint32_t ThreadPriority
;
8119 uint32_t FloatingPointMode
;
8120 uint32_t IllegalOpcodeExceptionEnable
;
8121 uint32_t MaskStackExceptionEnable
;
8122 uint32_t SoftwareExceptionEnable
;
8123 uint32_t SamplerStatePointer
;
8124 #define Nosamplersused 0
8125 #define Between1and4samplersused 1
8126 #define Between5and8samplersused 2
8127 #define Between9and12samplersused 3
8128 #define Between13and16samplersused 4
8129 uint32_t SamplerCount
;
8130 uint32_t BindingTablePointer
;
8131 uint32_t BindingTableEntryCount
;
8132 uint32_t ConstantIndirectURBEntryReadLength
;
8133 uint32_t ConstantURBEntryReadOffset
;
8138 uint32_t RoundingMode
;
8139 uint32_t BarrierEnable
;
8143 #define Encodes16k 4
8144 #define Encodes32k 8
8145 #define Encodes64k 16
8146 uint32_t SharedLocalMemorySize
;
8147 uint32_t NumberofThreadsinGPGPUThreadGroup
;
8148 uint32_t CrossThreadConstantDataReadLength
;
8152 GEN8_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
8153 const struct GEN8_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
8155 uint32_t *dw
= (uint32_t * restrict
) dst
;
8158 __gen_offset(values
->KernelStartPointer
, 6, 31) |
8162 __gen_offset(values
->KernelStartPointerHigh
, 0, 15) |
8166 __gen_field(values
->DenormMode
, 19, 19) |
8167 __gen_field(values
->SingleProgramFlow
, 18, 18) |
8168 __gen_field(values
->ThreadPriority
, 17, 17) |
8169 __gen_field(values
->FloatingPointMode
, 16, 16) |
8170 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
8171 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
8172 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
8176 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
8177 __gen_field(values
->SamplerCount
, 2, 4) |
8181 __gen_offset(values
->BindingTablePointer
, 5, 15) |
8182 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
8186 __gen_field(values
->ConstantIndirectURBEntryReadLength
, 16, 31) |
8187 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
8191 __gen_field(values
->RoundingMode
, 22, 23) |
8192 __gen_field(values
->BarrierEnable
, 21, 21) |
8193 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
8194 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 9) |
8198 __gen_field(values
->CrossThreadConstantDataReadLength
, 0, 7) |
8203 #define GEN8_PALETTE_ENTRY_length 0x00000001
8205 #define GEN8_BINDING_TABLE_STATE_length 0x00000001
8207 struct GEN8_BINDING_TABLE_STATE
{
8208 uint32_t SurfaceStatePointer
;
8212 GEN8_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8213 const struct GEN8_BINDING_TABLE_STATE
* restrict values
)
8215 uint32_t *dw
= (uint32_t * restrict
) dst
;
8218 __gen_offset(values
->SurfaceStatePointer
, 6, 31) |
8223 #define GEN8_RENDER_SURFACE_STATE_length 0x00000010
8225 struct GEN8_RENDER_SURFACE_STATE
{
8226 #define SURFTYPE_1D 0
8227 #define SURFTYPE_2D 1
8228 #define SURFTYPE_3D 2
8229 #define SURFTYPE_CUBE 3
8230 #define SURFTYPE_BUFFER 4
8231 #define SURFTYPE_STRBUF 5
8232 #define SURFTYPE_NULL 7
8233 uint32_t SurfaceType
;
8234 uint32_t SurfaceArray
;
8235 uint32_t SurfaceFormat
;
8239 uint32_t SurfaceVerticalAlignment
;
8243 uint32_t SurfaceHorizontalAlignment
;
8249 uint32_t VerticalLineStride
;
8250 uint32_t VerticalLineStrideOffset
;
8251 uint32_t SamplerL2BypassModeDisable
;
8252 #define WriteOnlyCache 0
8253 #define ReadWriteCache 1
8254 uint32_t RenderCacheReadWriteMode
;
8255 #define NORMAL_MODE 0
8256 #define PROGRESSIVE_FRAME 2
8257 #define INTERLACED_FRAME 3
8258 uint32_t MediaBoundaryPixelMode
;
8259 uint32_t CubeFaceEnablePositiveZ
;
8260 uint32_t CubeFaceEnableNegativeZ
;
8261 uint32_t CubeFaceEnablePositiveY
;
8262 uint32_t CubeFaceEnableNegativeY
;
8263 uint32_t CubeFaceEnablePositiveX
;
8264 uint32_t CubeFaceEnableNegativeX
;
8265 struct GEN8_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
8267 uint32_t SurfaceQPitch
;
8271 uint32_t SurfacePitch
;
8275 uint32_t RenderTargetAndSampleUnormRotation
;
8276 uint32_t MinimumArrayElement
;
8277 uint32_t RenderTargetViewExtent
;
8279 #define DEPTH_STENCIL 1
8280 uint32_t MultisampledSurfaceStorageFormat
;
8281 #define MULTISAMPLECOUNT_1 0
8282 #define MULTISAMPLECOUNT_2 1
8283 #define MULTISAMPLECOUNT_4 2
8284 #define MULTISAMPLECOUNT_8 3
8285 uint32_t NumberofMultisamples
;
8286 uint32_t MultisamplePositionPaletteIndex
;
8289 uint32_t EWADisableForCube
;
8290 #define GPUcoherent 0
8291 #define IAcoherent 1
8292 uint32_t CoherencyType
;
8293 uint32_t SurfaceMinLOD
;
8294 uint32_t MIPCountLOD
;
8295 uint32_t AuxiliarySurfaceQPitch
;
8296 uint32_t AuxiliarySurfacePitch
;
8299 #define AUX_APPEND 2
8301 uint32_t AuxiliarySurfaceMode
;
8302 uint32_t SeparateUVPlaneEnable
;
8303 uint32_t XOffsetforUorUVPlane
;
8304 uint32_t YOffsetforUorUVPlane
;
8305 uint32_t RedClearColor
;
8306 uint32_t GreenClearColor
;
8307 uint32_t BlueClearColor
;
8308 uint32_t AlphaClearColor
;
8309 uint32_t ShaderChannelSelectRed
;
8310 uint32_t ShaderChannelSelectGreen
;
8311 uint32_t ShaderChannelSelectBlue
;
8312 uint32_t ShaderChannelSelectAlpha
;
8313 float ResourceMinLOD
;
8314 __gen_address_type SurfaceBaseAddress
;
8315 uint32_t XOffsetforVPlane
;
8316 uint32_t YOffsetforVPlane
;
8317 uint32_t AuxiliaryTableIndexforMediaCompressedSurface
;
8318 __gen_address_type AuxiliarySurfaceBaseAddress
;
8322 GEN8_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8323 const struct GEN8_RENDER_SURFACE_STATE
* restrict values
)
8325 uint32_t *dw
= (uint32_t * restrict
) dst
;
8328 __gen_field(values
->SurfaceType
, 29, 31) |
8329 __gen_field(values
->SurfaceArray
, 28, 28) |
8330 __gen_field(values
->SurfaceFormat
, 18, 26) |
8331 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
8332 __gen_field(values
->SurfaceHorizontalAlignment
, 14, 15) |
8333 __gen_field(values
->TileMode
, 12, 13) |
8334 __gen_field(values
->VerticalLineStride
, 11, 11) |
8335 __gen_field(values
->VerticalLineStrideOffset
, 10, 10) |
8336 __gen_field(values
->SamplerL2BypassModeDisable
, 9, 9) |
8337 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
8338 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
8339 __gen_field(values
->CubeFaceEnablePositiveZ
, 0, 0) |
8340 __gen_field(values
->CubeFaceEnableNegativeZ
, 1, 1) |
8341 __gen_field(values
->CubeFaceEnablePositiveY
, 2, 2) |
8342 __gen_field(values
->CubeFaceEnableNegativeY
, 3, 3) |
8343 __gen_field(values
->CubeFaceEnablePositiveX
, 4, 4) |
8344 __gen_field(values
->CubeFaceEnableNegativeX
, 5, 5) |
8347 uint32_t dw_MemoryObjectControlState
;
8348 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
8350 __gen_field(dw_MemoryObjectControlState
, 24, 30) |
8351 __gen_field(values
->BaseMipLevel
* (1 << 1), 19, 23) |
8352 __gen_field(values
->SurfaceQPitch
, 0, 14) |
8356 __gen_field(values
->Height
, 16, 29) |
8357 __gen_field(values
->Width
, 0, 13) |
8361 __gen_field(values
->Depth
, 21, 31) |
8362 __gen_field(values
->SurfacePitch
, 0, 17) |
8366 __gen_field(values
->RenderTargetAndSampleUnormRotation
, 29, 30) |
8367 __gen_field(values
->MinimumArrayElement
, 18, 28) |
8368 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
8369 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
8370 __gen_field(values
->NumberofMultisamples
, 3, 5) |
8371 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
8375 __gen_offset(values
->XOffset
, 25, 31) |
8376 __gen_offset(values
->YOffset
, 21, 23) |
8377 __gen_field(values
->EWADisableForCube
, 20, 20) |
8378 __gen_field(values
->CoherencyType
, 14, 14) |
8379 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
8380 __gen_field(values
->MIPCountLOD
, 0, 3) |
8384 __gen_field(values
->AuxiliarySurfaceQPitch
, 16, 30) |
8385 __gen_field(values
->AuxiliarySurfacePitch
, 3, 11) |
8386 __gen_field(values
->AuxiliarySurfaceMode
, 0, 2) |
8387 __gen_field(values
->SeparateUVPlaneEnable
, 31, 31) |
8388 __gen_field(values
->XOffsetforUorUVPlane
, 16, 29) |
8389 __gen_field(values
->YOffsetforUorUVPlane
, 0, 13) |
8393 __gen_field(values
->RedClearColor
, 31, 31) |
8394 __gen_field(values
->GreenClearColor
, 30, 30) |
8395 __gen_field(values
->BlueClearColor
, 29, 29) |
8396 __gen_field(values
->AlphaClearColor
, 28, 28) |
8397 __gen_field(values
->ShaderChannelSelectRed
, 25, 27) |
8398 __gen_field(values
->ShaderChannelSelectGreen
, 22, 24) |
8399 __gen_field(values
->ShaderChannelSelectBlue
, 19, 21) |
8400 __gen_field(values
->ShaderChannelSelectAlpha
, 16, 18) |
8401 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
8408 __gen_combine_address(data
, &dw
[8], values
->SurfaceBaseAddress
, dw8
);
8414 __gen_field(values
->XOffsetforVPlane
, 48, 61) |
8415 __gen_field(values
->YOffsetforVPlane
, 32, 45) |
8416 __gen_field(values
->AuxiliaryTableIndexforMediaCompressedSurface
, 21, 31) |
8420 __gen_combine_address(data
, &dw
[10], values
->AuxiliarySurfaceBaseAddress
, dw10
);
8423 dw
[11] = qw10
>> 32;
8439 #define GEN8_SAMPLER_STATE_length 0x00000004
8441 struct GEN8_SAMPLER_STATE
{
8442 uint32_t SamplerDisable
;
8445 uint32_t TextureBorderColorMode
;
8446 #define CLAMP_NONE 0
8448 uint32_t LODPreClampMode
;
8450 #define MIPFILTER_NONE 0
8451 #define MIPFILTER_NEAREST 1
8452 #define MIPFILTER_LINEAR 3
8453 uint32_t MipModeFilter
;
8454 #define MAPFILTER_NEAREST 0
8455 #define MAPFILTER_LINEAR 1
8456 #define MAPFILTER_ANISOTROPIC 2
8457 #define MAPFILTER_MONO 6
8458 uint32_t MagModeFilter
;
8459 #define MAPFILTER_NEAREST 0
8460 #define MAPFILTER_LINEAR 1
8461 #define MAPFILTER_ANISOTROPIC 2
8462 #define MAPFILTER_MONO 6
8463 uint32_t MinModeFilter
;
8464 uint32_t TextureLODBias
;
8466 #define EWAApproximation 1
8467 uint32_t AnisotropicAlgorithm
;
8470 uint32_t ChromaKeyEnable
;
8471 uint32_t ChromaKeyIndex
;
8472 #define KEYFILTER_KILL_ON_ANY_MATCH 0
8473 #define KEYFILTER_REPLACE_BLACK 1
8474 uint32_t ChromaKeyMode
;
8475 #define PREFILTEROPALWAYS 0
8476 #define PREFILTEROPNEVER 1
8477 #define PREFILTEROPLESS 2
8478 #define PREFILTEROPEQUAL 3
8479 #define PREFILTEROPLEQUAL 4
8480 #define PREFILTEROPGREATER 5
8481 #define PREFILTEROPNOTEQUAL 6
8482 #define PREFILTEROPGEQUAL 7
8483 uint32_t ShadowFunction
;
8484 #define PROGRAMMED 0
8486 uint32_t CubeSurfaceControlMode
;
8487 uint32_t IndirectStatePointer
;
8490 uint32_t LODClampMagnificationMode
;
8499 uint32_t MaximumAnisotropy
;
8500 uint32_t RAddressMinFilterRoundingEnable
;
8501 uint32_t RAddressMagFilterRoundingEnable
;
8502 uint32_t VAddressMinFilterRoundingEnable
;
8503 uint32_t VAddressMagFilterRoundingEnable
;
8504 uint32_t UAddressMinFilterRoundingEnable
;
8505 uint32_t UAddressMagFilterRoundingEnable
;
8510 uint32_t TrilinearFilterQuality
;
8511 uint32_t NonnormalizedCoordinateEnable
;
8512 uint32_t TCXAddressControlMode
;
8513 uint32_t TCYAddressControlMode
;
8514 uint32_t TCZAddressControlMode
;
8518 GEN8_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8519 const struct GEN8_SAMPLER_STATE
* restrict values
)
8521 uint32_t *dw
= (uint32_t * restrict
) dst
;
8524 __gen_field(values
->SamplerDisable
, 31, 31) |
8525 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
8526 __gen_field(values
->LODPreClampMode
, 27, 28) |
8527 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
8528 __gen_field(values
->MipModeFilter
, 20, 21) |
8529 __gen_field(values
->MagModeFilter
, 17, 19) |
8530 __gen_field(values
->MinModeFilter
, 14, 16) |
8531 __gen_field(values
->TextureLODBias
, 1, 13) |
8532 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
8536 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
8537 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
8538 __gen_field(values
->ChromaKeyEnable
, 7, 7) |
8539 __gen_field(values
->ChromaKeyIndex
, 5, 6) |
8540 __gen_field(values
->ChromaKeyMode
, 4, 4) |
8541 __gen_field(values
->ShadowFunction
, 1, 3) |
8542 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
8546 __gen_field(values
->IndirectStatePointer
, 6, 23) |
8547 __gen_field(values
->LODClampMagnificationMode
, 0, 0) |
8551 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
8552 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
8553 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
8554 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
8555 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
8556 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
8557 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
8558 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
8559 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
8560 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
8561 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
8562 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
8567 /* Enum 3D_Prim_Topo_Type */
8568 #define _3DPRIM_POINTLIST 1
8569 #define _3DPRIM_LINELIST 2
8570 #define _3DPRIM_LINESTRIP 3
8571 #define _3DPRIM_TRILIST 4
8572 #define _3DPRIM_TRISTRIP 5
8573 #define _3DPRIM_TRIFAN 6
8574 #define _3DPRIM_QUADLIST 7
8575 #define _3DPRIM_QUADSTRIP 8
8576 #define _3DPRIM_LINELIST_ADJ 9
8577 #define _3DPRIM_LISTSTRIP_ADJ 10
8578 #define _3DPRIM_TRILIST_ADJ 11
8579 #define _3DPRIM_TRISTRIP_ADJ 12
8580 #define _3DPRIM_TRISTRIP_REVERSE 13
8581 #define _3DPRIM_POLYGON 14
8582 #define _3DPRIM_RECTLIST 15
8583 #define _3DPRIM_LINELOOP 16
8584 #define _3DPRIM_POINTLIST_BF 17
8585 #define _3DPRIM_LINESTRIP_CONT 18
8586 #define _3DPRIM_LINESTRIP_BF 19
8587 #define _3DPRIM_LINESTRIP_CONT_BF 20
8588 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
8589 #define _3DPRIM_PATCHLIST_1 32
8590 #define _3DPRIM_PATCHLIST_2 33
8591 #define _3DPRIM_PATCHLIST_3 34
8592 #define _3DPRIM_PATCHLIST_4 35
8593 #define _3DPRIM_PATCHLIST_5 36
8594 #define _3DPRIM_PATCHLIST_6 37
8595 #define _3DPRIM_PATCHLIST_7 38
8596 #define _3DPRIM_PATCHLIST_8 39
8597 #define _3DPRIM_PATCHLIST_9 40
8598 #define _3DPRIM_PATCHLIST_10 41
8599 #define _3DPRIM_PATCHLIST_11 42
8600 #define _3DPRIM_PATCHLIST_12 43
8601 #define _3DPRIM_PATCHLIST_13 44
8602 #define _3DPRIM_PATCHLIST_14 45
8603 #define _3DPRIM_PATCHLIST_15 46
8604 #define _3DPRIM_PATCHLIST_16 47
8605 #define _3DPRIM_PATCHLIST_17 48
8606 #define _3DPRIM_PATCHLIST_18 49
8607 #define _3DPRIM_PATCHLIST_19 50
8608 #define _3DPRIM_PATCHLIST_20 51
8609 #define _3DPRIM_PATCHLIST_21 52
8610 #define _3DPRIM_PATCHLIST_22 53
8611 #define _3DPRIM_PATCHLIST_23 54
8612 #define _3DPRIM_PATCHLIST_24 55
8613 #define _3DPRIM_PATCHLIST_25 56
8614 #define _3DPRIM_PATCHLIST_26 57
8615 #define _3DPRIM_PATCHLIST_27 58
8616 #define _3DPRIM_PATCHLIST_28 59
8617 #define _3DPRIM_PATCHLIST_29 60
8618 #define _3DPRIM_PATCHLIST_30 61
8619 #define _3DPRIM_PATCHLIST_31 62
8620 #define _3DPRIM_PATCHLIST_32 63
8622 /* Enum 3D_Vertex_Component_Control */
8623 #define VFCOMP_NOSTORE 0
8624 #define VFCOMP_STORE_SRC 1
8625 #define VFCOMP_STORE_0 2
8626 #define VFCOMP_STORE_1_FP 3
8627 #define VFCOMP_STORE_1_INT 4
8628 #define VFCOMP_STORE_PID 7
8630 /* Enum WRAP_SHORTEST_ENABLE */
8647 /* Enum 3D_Stencil_Operation */
8648 #define STENCILOP_KEEP 0
8649 #define STENCILOP_ZERO 1
8650 #define STENCILOP_REPLACE 2
8651 #define STENCILOP_INCRSAT 3
8652 #define STENCILOP_DECRSAT 4
8653 #define STENCILOP_INCR 5
8654 #define STENCILOP_DECR 6
8655 #define STENCILOP_INVERT 7
8657 /* Enum 3D_Color_Buffer_Blend_Factor */
8658 #define BLENDFACTOR_ONE 1
8659 #define BLENDFACTOR_SRC_COLOR 2
8660 #define BLENDFACTOR_SRC_ALPHA 3
8661 #define BLENDFACTOR_DST_ALPHA 4
8662 #define BLENDFACTOR_DST_COLOR 5
8663 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
8664 #define BLENDFACTOR_CONST_COLOR 7
8665 #define BLENDFACTOR_CONST_ALPHA 8
8666 #define BLENDFACTOR_SRC1_COLOR 9
8667 #define BLENDFACTOR_SRC1_ALPHA 10
8668 #define BLENDFACTOR_ZERO 17
8669 #define BLENDFACTOR_INV_SRC_COLOR 18
8670 #define BLENDFACTOR_INV_SRC_ALPHA 19
8671 #define BLENDFACTOR_INV_DST_ALPHA 20
8672 #define BLENDFACTOR_INV_DST_COLOR 21
8673 #define BLENDFACTOR_INV_CONST_COLOR 23
8674 #define BLENDFACTOR_INV_CONST_ALPHA 24
8675 #define BLENDFACTOR_INV_SRC1_COLOR 25
8676 #define BLENDFACTOR_INV_SRC1_ALPHA 26
8678 /* Enum 3D_Color_Buffer_Blend_Function */
8679 #define BLENDFUNCTION_ADD 0
8680 #define BLENDFUNCTION_SUBTRACT 1
8681 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
8682 #define BLENDFUNCTION_MIN 3
8683 #define BLENDFUNCTION_MAX 4
8685 /* Enum 3D_Compare_Function */
8686 #define COMPAREFUNCTION_ALWAYS 0
8687 #define COMPAREFUNCTION_NEVER 1
8688 #define COMPAREFUNCTION_LESS 2
8689 #define COMPAREFUNCTION_EQUAL 3
8690 #define COMPAREFUNCTION_LEQUAL 4
8691 #define COMPAREFUNCTION_GREATER 5
8692 #define COMPAREFUNCTION_NOTEQUAL 6
8693 #define COMPAREFUNCTION_GEQUAL 7
8695 /* Enum 3D_Logic_Op_Function */
8696 #define LOGICOP_CLEAR 0
8697 #define LOGICOP_NOR 1
8698 #define LOGICOP_AND_INVERTED 2
8699 #define LOGICOP_COPY_INVERTED 3
8700 #define LOGICOP_AND_REVERSE 4
8701 #define LOGICOP_INVERT 5
8702 #define LOGICOP_XOR 6
8703 #define LOGICOP_NAND 7
8704 #define LOGICOP_AND 8
8705 #define LOGICOP_EQUIV 9
8706 #define LOGICOP_NOOP 10
8707 #define LOGICOP_OR_INVERTED 11
8708 #define LOGICOP_COPY 12
8709 #define LOGICOP_OR_REVERSE 13
8710 #define LOGICOP_OR 14
8711 #define LOGICOP_SET 15
8713 /* Enum SURFACE_FORMAT */
8714 #define R32G32B32A32_FLOAT 0
8715 #define R32G32B32A32_SINT 1
8716 #define R32G32B32A32_UINT 2
8717 #define R32G32B32A32_UNORM 3
8718 #define R32G32B32A32_SNORM 4
8719 #define R64G64_FLOAT 5
8720 #define R32G32B32X32_FLOAT 6
8721 #define R32G32B32A32_SSCALED 7
8722 #define R32G32B32A32_USCALED 8
8723 #define R32G32B32A32_SFIXED 32
8724 #define R64G64_PASSTHRU 33
8725 #define R32G32B32_FLOAT 64
8726 #define R32G32B32_SINT 65
8727 #define R32G32B32_UINT 66
8728 #define R32G32B32_UNORM 67
8729 #define R32G32B32_SNORM 68
8730 #define R32G32B32_SSCALED 69
8731 #define R32G32B32_USCALED 70
8732 #define R32G32B32_SFIXED 80
8733 #define R16G16B16A16_UNORM 128
8734 #define R16G16B16A16_SNORM 129
8735 #define R16G16B16A16_SINT 130
8736 #define R16G16B16A16_UINT 131
8737 #define R16G16B16A16_FLOAT 132
8738 #define R32G32_FLOAT 133
8739 #define R32G32_SINT 134
8740 #define R32G32_UINT 135
8741 #define R32_FLOAT_X8X24_TYPELESS 136
8742 #define X32_TYPELESS_G8X24_UINT 137
8743 #define L32A32_FLOAT 138
8744 #define R32G32_UNORM 139
8745 #define R32G32_SNORM 140
8746 #define R64_FLOAT 141
8747 #define R16G16B16X16_UNORM 142
8748 #define R16G16B16X16_FLOAT 143
8749 #define A32X32_FLOAT 144
8750 #define L32X32_FLOAT 145
8751 #define I32X32_FLOAT 146
8752 #define R16G16B16A16_SSCALED 147
8753 #define R16G16B16A16_USCALED 148
8754 #define R32G32_SSCALED 149
8755 #define R32G32_USCALED 150
8756 #define R32G32_SFIXED 160
8757 #define R64_PASSTHRU 161
8758 #define B8G8R8A8_UNORM 192
8759 #define B8G8R8A8_UNORM_SRGB 193
8760 #define R10G10B10A2_UNORM 194
8761 #define R10G10B10A2_UNORM_SRGB 195
8762 #define R10G10B10A2_UINT 196
8763 #define R10G10B10_SNORM_A2_UNORM 197
8764 #define R8G8B8A8_UNORM 199
8765 #define R8G8B8A8_UNORM_SRGB 200
8766 #define R8G8B8A8_SNORM 201
8767 #define R8G8B8A8_SINT 202
8768 #define R8G8B8A8_UINT 203
8769 #define R16G16_UNORM 204
8770 #define R16G16_SNORM 205
8771 #define R16G16_SINT 206
8772 #define R16G16_UINT 207
8773 #define R16G16_FLOAT 208
8774 #define B10G10R10A2_UNORM 209
8775 #define B10G10R10A2_UNORM_SRGB 210
8776 #define R11G11B10_FLOAT 211
8777 #define R32_SINT 214
8778 #define R32_UINT 215
8779 #define R32_FLOAT 216
8780 #define R24_UNORM_X8_TYPELESS 217
8781 #define X24_TYPELESS_G8_UINT 218
8782 #define L32_UNORM 221
8783 #define A32_UNORM 222
8784 #define L16A16_UNORM 223
8785 #define I24X8_UNORM 224
8786 #define L24X8_UNORM 225
8787 #define A24X8_UNORM 226
8788 #define I32_FLOAT 227
8789 #define L32_FLOAT 228
8790 #define A32_FLOAT 229
8791 #define X8B8_UNORM_G8R8_SNORM 230
8792 #define A8X8_UNORM_G8R8_SNORM 231
8793 #define B8X8_UNORM_G8R8_SNORM 232
8794 #define B8G8R8X8_UNORM 233
8795 #define B8G8R8X8_UNORM_SRGB 234
8796 #define R8G8B8X8_UNORM 235
8797 #define R8G8B8X8_UNORM_SRGB 236
8798 #define R9G9B9E5_SHAREDEXP 237
8799 #define B10G10R10X2_UNORM 238
8800 #define L16A16_FLOAT 240
8801 #define R32_UNORM 241
8802 #define R32_SNORM 242
8803 #define R10G10B10X2_USCALED 243
8804 #define R8G8B8A8_SSCALED 244
8805 #define R8G8B8A8_USCALED 245
8806 #define R16G16_SSCALED 246
8807 #define R16G16_USCALED 247
8808 #define R32_SSCALED 248
8809 #define R32_USCALED 249
8810 #define B5G6R5_UNORM 256
8811 #define B5G6R5_UNORM_SRGB 257
8812 #define B5G5R5A1_UNORM 258
8813 #define B5G5R5A1_UNORM_SRGB 259
8814 #define B4G4R4A4_UNORM 260
8815 #define B4G4R4A4_UNORM_SRGB 261
8816 #define R8G8_UNORM 262
8817 #define R8G8_SNORM 263
8818 #define R8G8_SINT 264
8819 #define R8G8_UINT 265
8820 #define R16_UNORM 266
8821 #define R16_SNORM 267
8822 #define R16_SINT 268
8823 #define R16_UINT 269
8824 #define R16_FLOAT 270
8825 #define A8P8_UNORM_PALETTE0 271
8826 #define A8P8_UNORM_PALETTE1 272
8827 #define I16_UNORM 273
8828 #define L16_UNORM 274
8829 #define A16_UNORM 275
8830 #define L8A8_UNORM 276
8831 #define I16_FLOAT 277
8832 #define L16_FLOAT 278
8833 #define A16_FLOAT 279
8834 #define L8A8_UNORM_SRGB 280
8835 #define R5G5_SNORM_B6_UNORM 281
8836 #define B5G5R5X1_UNORM 282
8837 #define B5G5R5X1_UNORM_SRGB 283
8838 #define R8G8_SSCALED 284
8839 #define R8G8_USCALED 285
8840 #define R16_SSCALED 286
8841 #define R16_USCALED 287
8842 #define P8A8_UNORM_PALETTE0 290
8843 #define P8A8_UNORM_PALETTE1 291
8844 #define A1B5G5R5_UNORM 292
8845 #define A4B4G4R4_UNORM 293
8846 #define L8A8_UINT 294
8847 #define L8A8_SINT 295
8848 #define R8_UNORM 320
8849 #define R8_SNORM 321
8852 #define A8_UNORM 324
8853 #define I8_UNORM 325
8854 #define L8_UNORM 326
8855 #define P4A4_UNORM_PALETTE0 327
8856 #define A4P4_UNORM_PALETTE0 328
8857 #define R8_SSCALED 329
8858 #define R8_USCALED 330
8859 #define P8_UNORM_PALETTE0 331
8860 #define L8_UNORM_SRGB 332
8861 #define P8_UNORM_PALETTE1 333
8862 #define P4A4_UNORM_PALETTE1 334
8863 #define A4P4_UNORM_PALETTE1 335
8864 #define Y8_UNORM 336
8869 #define DXT1_RGB_SRGB 384
8870 #define R1_UNORM 385
8871 #define YCRCB_NORMAL 386
8872 #define YCRCB_SWAPUVY 387
8873 #define P2_UNORM_PALETTE0 388
8874 #define P2_UNORM_PALETTE1 389
8875 #define BC1_UNORM 390
8876 #define BC2_UNORM 391
8877 #define BC3_UNORM 392
8878 #define BC4_UNORM 393
8879 #define BC5_UNORM 394
8880 #define BC1_UNORM_SRGB 395
8881 #define BC2_UNORM_SRGB 396
8882 #define BC3_UNORM_SRGB 397
8884 #define YCRCB_SWAPUV 399
8885 #define YCRCB_SWAPY 400
8886 #define DXT1_RGB 401
8888 #define R8G8B8_UNORM 403
8889 #define R8G8B8_SNORM 404
8890 #define R8G8B8_SSCALED 405
8891 #define R8G8B8_USCALED 406
8892 #define R64G64B64A64_FLOAT 407
8893 #define R64G64B64_FLOAT 408
8894 #define BC4_SNORM 409
8895 #define BC5_SNORM 410
8896 #define R16G16B16_FLOAT 411
8897 #define R16G16B16_UNORM 412
8898 #define R16G16B16_SNORM 413
8899 #define R16G16B16_SSCALED 414
8900 #define R16G16B16_USCALED 415
8901 #define BC6H_SF16 417
8902 #define BC7_UNORM 418
8903 #define BC7_UNORM_SRGB 419
8904 #define BC6H_UF16 420
8905 #define PLANAR_420_8 421
8906 #define R8G8B8_UNORM_SRGB 424
8907 #define ETC1_RGB8 425
8908 #define ETC2_RGB8 426
8910 #define EAC_RG11 428
8911 #define EAC_SIGNED_R11 429
8912 #define EAC_SIGNED_RG11 430
8913 #define ETC2_SRGB8 431
8914 #define R16G16B16_UINT 432
8915 #define R16G16B16_SINT 433
8916 #define R32_SFIXED 434
8917 #define R10G10B10A2_SNORM 435
8918 #define R10G10B10A2_USCALED 436
8919 #define R10G10B10A2_SSCALED 437
8920 #define R10G10B10A2_SINT 438
8921 #define B10G10R10A2_SNORM 439
8922 #define B10G10R10A2_USCALED 440
8923 #define B10G10R10A2_SSCALED 441
8924 #define B10G10R10A2_UINT 442
8925 #define B10G10R10A2_SINT 443
8926 #define R64G64B64A64_PASSTHRU 444
8927 #define R64G64B64_PASSTHRU 445
8928 #define ETC2_RGB8_PTA 448
8929 #define ETC2_SRGB8_PTA 449
8930 #define ETC2_EAC_RGBA8 450
8931 #define ETC2_EAC_SRGB8_A8 451
8932 #define R8G8B8_UINT 456
8933 #define R8G8B8_SINT 457
8936 /* Enum Shader Channel Select */
8944 /* Enum Clear Color */
8948 /* Enum Texture Coordinate Mode */
8950 #define TCM_MIRROR 1
8953 #define TCM_CLAMP_BORDER 4
8954 #define TCM_MIRROR_ONCE 5
8955 #define TCM_HALF_BORDER 6