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 HSW.
27 * This file has been generated, do not hand edit.
35 #ifndef __gen_validate_value
36 #define __gen_validate_value(x)
39 #ifndef __gen_field_functions
40 #define __gen_field_functions
47 static inline uint64_t
48 __gen_mbo(uint32_t start
, uint32_t end
)
50 return (~0ul >> (64 - (end
- start
+ 1))) << start
;
53 static inline uint64_t
54 __gen_field(uint64_t v
, uint32_t start
, uint32_t end
)
56 __gen_validate_value(v
);
58 if (end
- start
+ 1 < 64)
59 assert(v
< 1ul << (end
- start
+ 1));
65 static inline uint64_t
66 __gen_offset(uint64_t v
, uint32_t start
, uint32_t end
)
68 __gen_validate_value(v
);
70 uint64_t mask
= (~0ul >> (64 - (end
- start
+ 1))) << start
;
72 assert((v
& ~mask
) == 0);
78 static inline uint32_t
81 __gen_validate_value(v
);
82 return ((union __gen_value
) { .f
= (v
) }).dw
;
85 #ifndef __gen_address_type
86 #error #define __gen_address_type before including this file
89 #ifndef __gen_user_data
90 #error #define __gen_combine_address before including this file
95 #define GEN75_3DSTATE_URB_VS_length_bias 0x00000002
96 #define GEN75_3DSTATE_URB_VS_header \
98 .CommandSubType = 3, \
99 ._3DCommandOpcode = 0, \
100 ._3DCommandSubOpcode = 48, \
103 #define GEN75_3DSTATE_URB_VS_length 0x00000002
105 struct GEN75_3DSTATE_URB_VS
{
106 uint32_t CommandType
;
107 uint32_t CommandSubType
;
108 uint32_t _3DCommandOpcode
;
109 uint32_t _3DCommandSubOpcode
;
110 uint32_t DwordLength
;
111 uint32_t VSURBStartingAddress
;
112 uint32_t VSURBEntryAllocationSize
;
113 uint32_t VSNumberofURBEntries
;
117 GEN75_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
118 const struct GEN75_3DSTATE_URB_VS
* restrict values
)
120 uint32_t *dw
= (uint32_t * restrict
) dst
;
123 __gen_field(values
->CommandType
, 29, 31) |
124 __gen_field(values
->CommandSubType
, 27, 28) |
125 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
126 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
127 __gen_field(values
->DwordLength
, 0, 7) |
131 __gen_field(values
->VSURBStartingAddress
, 25, 30) |
132 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
133 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
138 #define GEN75_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002
139 #define GEN75_GPGPU_CSR_BASE_ADDRESS_header \
141 .CommandSubType = 0, \
142 ._3DCommandOpcode = 1, \
143 ._3DCommandSubOpcode = 4, \
146 #define GEN75_GPGPU_CSR_BASE_ADDRESS_length 0x00000002
148 struct GEN75_GPGPU_CSR_BASE_ADDRESS
{
149 uint32_t CommandType
;
150 uint32_t CommandSubType
;
151 uint32_t _3DCommandOpcode
;
152 uint32_t _3DCommandSubOpcode
;
153 uint32_t DwordLength
;
154 __gen_address_type GPGPUCSRBaseAddress
;
158 GEN75_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
159 const struct GEN75_GPGPU_CSR_BASE_ADDRESS
* restrict values
)
161 uint32_t *dw
= (uint32_t * restrict
) dst
;
164 __gen_field(values
->CommandType
, 29, 31) |
165 __gen_field(values
->CommandSubType
, 27, 28) |
166 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
167 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
168 __gen_field(values
->DwordLength
, 0, 7) |
175 __gen_combine_address(data
, &dw
[1], values
->GPGPUCSRBaseAddress
, dw1
);
179 #define GEN75_MI_STORE_REGISTER_MEM_length_bias 0x00000002
180 #define GEN75_MI_STORE_REGISTER_MEM_header \
182 .MICommandOpcode = 36, \
185 #define GEN75_MI_STORE_REGISTER_MEM_length 0x00000003
187 struct GEN75_MI_STORE_REGISTER_MEM
{
188 uint32_t CommandType
;
189 uint32_t MICommandOpcode
;
191 uint32_t PredicateEnable
;
192 uint32_t DwordLength
;
193 uint32_t RegisterAddress
;
194 __gen_address_type MemoryAddress
;
198 GEN75_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
199 const struct GEN75_MI_STORE_REGISTER_MEM
* restrict values
)
201 uint32_t *dw
= (uint32_t * restrict
) dst
;
204 __gen_field(values
->CommandType
, 29, 31) |
205 __gen_field(values
->MICommandOpcode
, 23, 28) |
206 __gen_field(values
->UseGlobalGTT
, 22, 22) |
207 __gen_field(values
->PredicateEnable
, 21, 21) |
208 __gen_field(values
->DwordLength
, 0, 7) |
212 __gen_offset(values
->RegisterAddress
, 2, 22) |
219 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
223 #define GEN75_PIPELINE_SELECT_length_bias 0x00000001
224 #define GEN75_PIPELINE_SELECT_header \
226 .CommandSubType = 1, \
227 ._3DCommandOpcode = 1, \
228 ._3DCommandSubOpcode = 4
230 #define GEN75_PIPELINE_SELECT_length 0x00000001
232 struct GEN75_PIPELINE_SELECT
{
233 uint32_t CommandType
;
234 uint32_t CommandSubType
;
235 uint32_t _3DCommandOpcode
;
236 uint32_t _3DCommandSubOpcode
;
240 uint32_t PipelineSelection
;
244 GEN75_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
245 const struct GEN75_PIPELINE_SELECT
* restrict values
)
247 uint32_t *dw
= (uint32_t * restrict
) dst
;
250 __gen_field(values
->CommandType
, 29, 31) |
251 __gen_field(values
->CommandSubType
, 27, 28) |
252 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
253 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
254 __gen_field(values
->PipelineSelection
, 0, 1) |
259 #define GEN75_STATE_BASE_ADDRESS_length_bias 0x00000002
260 #define GEN75_STATE_BASE_ADDRESS_header \
262 .CommandSubType = 0, \
263 ._3DCommandOpcode = 1, \
264 ._3DCommandSubOpcode = 1, \
267 #define GEN75_STATE_BASE_ADDRESS_length 0x0000000a
269 #define GEN75_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
271 struct GEN75_MEMORY_OBJECT_CONTROL_STATE
{
272 uint32_t LLCeLLCCacheabilityControlLLCCC
;
273 uint32_t L3CacheabilityControlL3CC
;
277 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
278 const struct GEN75_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
280 uint32_t *dw
= (uint32_t * restrict
) dst
;
283 __gen_field(values
->LLCeLLCCacheabilityControlLLCCC
, 1, 2) |
284 __gen_field(values
->L3CacheabilityControlL3CC
, 0, 0) |
289 struct GEN75_STATE_BASE_ADDRESS
{
290 uint32_t CommandType
;
291 uint32_t CommandSubType
;
292 uint32_t _3DCommandOpcode
;
293 uint32_t _3DCommandSubOpcode
;
294 uint32_t DwordLength
;
295 __gen_address_type GeneralStateBaseAddress
;
296 struct GEN75_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
297 struct GEN75_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
298 bool GeneralStateBaseAddressModifyEnable
;
299 __gen_address_type SurfaceStateBaseAddress
;
300 struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
301 bool SurfaceStateBaseAddressModifyEnable
;
302 __gen_address_type DynamicStateBaseAddress
;
303 struct GEN75_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
304 bool DynamicStateBaseAddressModifyEnable
;
305 __gen_address_type IndirectObjectBaseAddress
;
306 struct GEN75_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
307 bool IndirectObjectBaseAddressModifyEnable
;
308 __gen_address_type InstructionBaseAddress
;
309 struct GEN75_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
310 bool InstructionBaseAddressModifyEnable
;
311 __gen_address_type GeneralStateAccessUpperBound
;
312 bool GeneralStateAccessUpperBoundModifyEnable
;
313 __gen_address_type DynamicStateAccessUpperBound
;
314 bool DynamicStateAccessUpperBoundModifyEnable
;
315 __gen_address_type IndirectObjectAccessUpperBound
;
316 bool IndirectObjectAccessUpperBoundModifyEnable
;
317 __gen_address_type InstructionAccessUpperBound
;
318 bool InstructionAccessUpperBoundModifyEnable
;
322 GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
323 const struct GEN75_STATE_BASE_ADDRESS
* restrict values
)
325 uint32_t *dw
= (uint32_t * restrict
) dst
;
328 __gen_field(values
->CommandType
, 29, 31) |
329 __gen_field(values
->CommandSubType
, 27, 28) |
330 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
331 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
332 __gen_field(values
->DwordLength
, 0, 7) |
335 uint32_t dw_GeneralStateMemoryObjectControlState
;
336 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
337 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
338 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
340 __gen_field(dw_GeneralStateMemoryObjectControlState
, 8, 11) |
341 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 4, 7) |
342 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
346 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
348 uint32_t dw_SurfaceStateMemoryObjectControlState
;
349 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
351 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 8, 11) |
352 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
356 __gen_combine_address(data
, &dw
[2], values
->SurfaceStateBaseAddress
, dw2
);
358 uint32_t dw_DynamicStateMemoryObjectControlState
;
359 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
361 __gen_field(dw_DynamicStateMemoryObjectControlState
, 8, 11) |
362 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
366 __gen_combine_address(data
, &dw
[3], values
->DynamicStateBaseAddress
, dw3
);
368 uint32_t dw_IndirectObjectMemoryObjectControlState
;
369 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
371 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 8, 11) |
372 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
376 __gen_combine_address(data
, &dw
[4], values
->IndirectObjectBaseAddress
, dw4
);
378 uint32_t dw_InstructionMemoryObjectControlState
;
379 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
381 __gen_field(dw_InstructionMemoryObjectControlState
, 8, 11) |
382 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
386 __gen_combine_address(data
, &dw
[5], values
->InstructionBaseAddress
, dw5
);
389 __gen_field(values
->GeneralStateAccessUpperBoundModifyEnable
, 0, 0) |
393 __gen_combine_address(data
, &dw
[6], values
->GeneralStateAccessUpperBound
, dw6
);
396 __gen_field(values
->DynamicStateAccessUpperBoundModifyEnable
, 0, 0) |
400 __gen_combine_address(data
, &dw
[7], values
->DynamicStateAccessUpperBound
, dw7
);
403 __gen_field(values
->IndirectObjectAccessUpperBoundModifyEnable
, 0, 0) |
407 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectAccessUpperBound
, dw8
);
410 __gen_field(values
->InstructionAccessUpperBoundModifyEnable
, 0, 0) |
414 __gen_combine_address(data
, &dw
[9], values
->InstructionAccessUpperBound
, dw9
);
418 #define GEN75_STATE_PREFETCH_length_bias 0x00000002
419 #define GEN75_STATE_PREFETCH_header \
421 .CommandSubType = 0, \
422 ._3DCommandOpcode = 0, \
423 ._3DCommandSubOpcode = 3, \
426 #define GEN75_STATE_PREFETCH_length 0x00000002
428 struct GEN75_STATE_PREFETCH
{
429 uint32_t CommandType
;
430 uint32_t CommandSubType
;
431 uint32_t _3DCommandOpcode
;
432 uint32_t _3DCommandSubOpcode
;
433 uint32_t DwordLength
;
434 __gen_address_type PrefetchPointer
;
435 uint32_t PrefetchCount
;
439 GEN75_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
440 const struct GEN75_STATE_PREFETCH
* restrict values
)
442 uint32_t *dw
= (uint32_t * restrict
) dst
;
445 __gen_field(values
->CommandType
, 29, 31) |
446 __gen_field(values
->CommandSubType
, 27, 28) |
447 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
448 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
449 __gen_field(values
->DwordLength
, 0, 7) |
453 __gen_field(values
->PrefetchCount
, 0, 2) |
457 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
461 #define GEN75_STATE_SIP_length_bias 0x00000002
462 #define GEN75_STATE_SIP_header \
464 .CommandSubType = 0, \
465 ._3DCommandOpcode = 1, \
466 ._3DCommandSubOpcode = 2, \
469 #define GEN75_STATE_SIP_length 0x00000002
471 struct GEN75_STATE_SIP
{
472 uint32_t CommandType
;
473 uint32_t CommandSubType
;
474 uint32_t _3DCommandOpcode
;
475 uint32_t _3DCommandSubOpcode
;
476 uint32_t DwordLength
;
477 uint32_t SystemInstructionPointer
;
481 GEN75_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
482 const struct GEN75_STATE_SIP
* restrict values
)
484 uint32_t *dw
= (uint32_t * restrict
) dst
;
487 __gen_field(values
->CommandType
, 29, 31) |
488 __gen_field(values
->CommandSubType
, 27, 28) |
489 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
490 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
491 __gen_field(values
->DwordLength
, 0, 7) |
495 __gen_offset(values
->SystemInstructionPointer
, 4, 31) |
500 #define GEN75_SWTESS_BASE_ADDRESS_length_bias 0x00000002
501 #define GEN75_SWTESS_BASE_ADDRESS_header \
503 .CommandSubType = 0, \
504 ._3DCommandOpcode = 1, \
505 ._3DCommandSubOpcode = 3, \
508 #define GEN75_SWTESS_BASE_ADDRESS_length 0x00000002
510 struct GEN75_SWTESS_BASE_ADDRESS
{
511 uint32_t CommandType
;
512 uint32_t CommandSubType
;
513 uint32_t _3DCommandOpcode
;
514 uint32_t _3DCommandSubOpcode
;
515 uint32_t DwordLength
;
516 __gen_address_type SWTessellationBaseAddress
;
517 struct GEN75_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
521 GEN75_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
522 const struct GEN75_SWTESS_BASE_ADDRESS
* restrict values
)
524 uint32_t *dw
= (uint32_t * restrict
) dst
;
527 __gen_field(values
->CommandType
, 29, 31) |
528 __gen_field(values
->CommandSubType
, 27, 28) |
529 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
530 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
531 __gen_field(values
->DwordLength
, 0, 7) |
534 uint32_t dw_SWTessellationMemoryObjectControlState
;
535 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
537 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
541 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
545 #define GEN75_3DPRIMITIVE_length_bias 0x00000002
546 #define GEN75_3DPRIMITIVE_header \
548 .CommandSubType = 3, \
549 ._3DCommandOpcode = 3, \
550 ._3DCommandSubOpcode = 0, \
553 #define GEN75_3DPRIMITIVE_length 0x00000007
555 struct GEN75_3DPRIMITIVE
{
556 uint32_t CommandType
;
557 uint32_t CommandSubType
;
558 uint32_t _3DCommandOpcode
;
559 uint32_t _3DCommandSubOpcode
;
560 bool IndirectParameterEnable
;
561 uint32_t UAVCoherencyRequired
;
562 bool PredicateEnable
;
563 uint32_t DwordLength
;
564 bool EndOffsetEnable
;
567 uint32_t VertexAccessType
;
568 uint32_t PrimitiveTopologyType
;
569 uint32_t VertexCountPerInstance
;
570 uint32_t StartVertexLocation
;
571 uint32_t InstanceCount
;
572 uint32_t StartInstanceLocation
;
573 uint32_t BaseVertexLocation
;
577 GEN75_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
578 const struct GEN75_3DPRIMITIVE
* restrict values
)
580 uint32_t *dw
= (uint32_t * restrict
) dst
;
583 __gen_field(values
->CommandType
, 29, 31) |
584 __gen_field(values
->CommandSubType
, 27, 28) |
585 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
586 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
587 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
588 __gen_field(values
->UAVCoherencyRequired
, 9, 9) |
589 __gen_field(values
->PredicateEnable
, 8, 8) |
590 __gen_field(values
->DwordLength
, 0, 7) |
594 __gen_field(values
->EndOffsetEnable
, 9, 9) |
595 __gen_field(values
->VertexAccessType
, 8, 8) |
596 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
600 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
604 __gen_field(values
->StartVertexLocation
, 0, 31) |
608 __gen_field(values
->InstanceCount
, 0, 31) |
612 __gen_field(values
->StartInstanceLocation
, 0, 31) |
616 __gen_field(values
->BaseVertexLocation
, 0, 31) |
621 #define GEN75_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
622 #define GEN75_3DSTATE_AA_LINE_PARAMETERS_header \
624 .CommandSubType = 3, \
625 ._3DCommandOpcode = 1, \
626 ._3DCommandSubOpcode = 10, \
629 #define GEN75_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
631 struct GEN75_3DSTATE_AA_LINE_PARAMETERS
{
632 uint32_t CommandType
;
633 uint32_t CommandSubType
;
634 uint32_t _3DCommandOpcode
;
635 uint32_t _3DCommandSubOpcode
;
636 uint32_t DwordLength
;
637 float AACoverageBias
;
638 float AACoverageSlope
;
639 float AACoverageEndCapBias
;
640 float AACoverageEndCapSlope
;
644 GEN75_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
645 const struct GEN75_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
647 uint32_t *dw
= (uint32_t * restrict
) dst
;
650 __gen_field(values
->CommandType
, 29, 31) |
651 __gen_field(values
->CommandSubType
, 27, 28) |
652 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
653 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
654 __gen_field(values
->DwordLength
, 0, 7) |
658 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
659 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
663 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
664 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
669 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_length_bias 0x00000002
670 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_header\
672 .CommandSubType = 3, \
673 ._3DCommandOpcode = 0, \
674 ._3DCommandSubOpcode = 70
676 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_length 0x00000000
678 #define GEN75_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
680 struct GEN75_BINDING_TABLE_EDIT_ENTRY
{
681 uint32_t BindingTableIndex
;
682 uint32_t SurfaceStatePointer
;
686 GEN75_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
687 const struct GEN75_BINDING_TABLE_EDIT_ENTRY
* restrict values
)
689 uint32_t *dw
= (uint32_t * restrict
) dst
;
692 __gen_field(values
->BindingTableIndex
, 16, 23) |
693 __gen_offset(values
->SurfaceStatePointer
, 0, 15) |
698 struct GEN75_3DSTATE_BINDING_TABLE_EDIT_DS
{
699 uint32_t CommandType
;
700 uint32_t CommandSubType
;
701 uint32_t _3DCommandOpcode
;
702 uint32_t _3DCommandSubOpcode
;
703 uint32_t DwordLength
;
704 uint32_t BindingTableBlockClear
;
708 uint32_t BindingTableEditTarget
;
709 /* variable length fields follow */
713 GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
714 const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_DS
* restrict values
)
716 uint32_t *dw
= (uint32_t * restrict
) dst
;
719 __gen_field(values
->CommandType
, 29, 31) |
720 __gen_field(values
->CommandSubType
, 27, 28) |
721 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
722 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
723 __gen_field(values
->DwordLength
, 0, 8) |
727 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
728 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
731 /* variable length fields follow */
734 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_length_bias 0x00000002
735 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_header\
737 .CommandSubType = 3, \
738 ._3DCommandOpcode = 0, \
739 ._3DCommandSubOpcode = 68
741 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_length 0x00000000
743 struct GEN75_3DSTATE_BINDING_TABLE_EDIT_GS
{
744 uint32_t CommandType
;
745 uint32_t CommandSubType
;
746 uint32_t _3DCommandOpcode
;
747 uint32_t _3DCommandSubOpcode
;
748 uint32_t DwordLength
;
749 uint32_t BindingTableBlockClear
;
753 uint32_t BindingTableEditTarget
;
754 /* variable length fields follow */
758 GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
759 const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_GS
* restrict values
)
761 uint32_t *dw
= (uint32_t * restrict
) dst
;
764 __gen_field(values
->CommandType
, 29, 31) |
765 __gen_field(values
->CommandSubType
, 27, 28) |
766 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
767 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
768 __gen_field(values
->DwordLength
, 0, 8) |
772 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
773 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
776 /* variable length fields follow */
779 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_length_bias 0x00000002
780 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_header\
782 .CommandSubType = 3, \
783 ._3DCommandOpcode = 0, \
784 ._3DCommandSubOpcode = 69
786 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_length 0x00000000
788 struct GEN75_3DSTATE_BINDING_TABLE_EDIT_HS
{
789 uint32_t CommandType
;
790 uint32_t CommandSubType
;
791 uint32_t _3DCommandOpcode
;
792 uint32_t _3DCommandSubOpcode
;
793 uint32_t DwordLength
;
794 uint32_t BindingTableBlockClear
;
798 uint32_t BindingTableEditTarget
;
799 /* variable length fields follow */
803 GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
804 const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_HS
* 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, 8) |
817 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
818 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
821 /* variable length fields follow */
824 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_length_bias 0x00000002
825 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_header\
827 .CommandSubType = 3, \
828 ._3DCommandOpcode = 0, \
829 ._3DCommandSubOpcode = 71
831 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_length 0x00000000
833 struct GEN75_3DSTATE_BINDING_TABLE_EDIT_PS
{
834 uint32_t CommandType
;
835 uint32_t CommandSubType
;
836 uint32_t _3DCommandOpcode
;
837 uint32_t _3DCommandSubOpcode
;
838 uint32_t DwordLength
;
839 uint32_t BindingTableBlockClear
;
843 uint32_t BindingTableEditTarget
;
844 /* variable length fields follow */
848 GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
849 const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_PS
* restrict values
)
851 uint32_t *dw
= (uint32_t * restrict
) dst
;
854 __gen_field(values
->CommandType
, 29, 31) |
855 __gen_field(values
->CommandSubType
, 27, 28) |
856 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
857 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
858 __gen_field(values
->DwordLength
, 0, 8) |
862 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
863 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
866 /* variable length fields follow */
869 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_length_bias 0x00000002
870 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_header\
872 .CommandSubType = 3, \
873 ._3DCommandOpcode = 0, \
874 ._3DCommandSubOpcode = 67
876 #define GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_length 0x00000000
878 struct GEN75_3DSTATE_BINDING_TABLE_EDIT_VS
{
879 uint32_t CommandType
;
880 uint32_t CommandSubType
;
881 uint32_t _3DCommandOpcode
;
882 uint32_t _3DCommandSubOpcode
;
883 uint32_t DwordLength
;
884 uint32_t BindingTableBlockClear
;
888 uint32_t BindingTableEditTarget
;
889 /* variable length fields follow */
893 GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
894 const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_VS
* restrict values
)
896 uint32_t *dw
= (uint32_t * restrict
) dst
;
899 __gen_field(values
->CommandType
, 29, 31) |
900 __gen_field(values
->CommandSubType
, 27, 28) |
901 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
902 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
903 __gen_field(values
->DwordLength
, 0, 8) |
907 __gen_field(values
->BindingTableBlockClear
, 16, 31) |
908 __gen_field(values
->BindingTableEditTarget
, 0, 1) |
911 /* variable length fields follow */
914 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
915 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
917 .CommandSubType = 3, \
918 ._3DCommandOpcode = 0, \
919 ._3DCommandSubOpcode = 40, \
922 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
924 struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS
{
925 uint32_t CommandType
;
926 uint32_t CommandSubType
;
927 uint32_t _3DCommandOpcode
;
928 uint32_t _3DCommandSubOpcode
;
929 uint32_t DwordLength
;
930 uint32_t PointertoDSBindingTable
;
934 GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
935 const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
937 uint32_t *dw
= (uint32_t * restrict
) dst
;
940 __gen_field(values
->CommandType
, 29, 31) |
941 __gen_field(values
->CommandSubType
, 27, 28) |
942 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
943 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
944 __gen_field(values
->DwordLength
, 0, 7) |
948 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
953 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
954 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
956 .CommandSubType = 3, \
957 ._3DCommandOpcode = 0, \
958 ._3DCommandSubOpcode = 41, \
961 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
963 struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS
{
964 uint32_t CommandType
;
965 uint32_t CommandSubType
;
966 uint32_t _3DCommandOpcode
;
967 uint32_t _3DCommandSubOpcode
;
968 uint32_t DwordLength
;
969 uint32_t PointertoGSBindingTable
;
973 GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
974 const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
976 uint32_t *dw
= (uint32_t * restrict
) dst
;
979 __gen_field(values
->CommandType
, 29, 31) |
980 __gen_field(values
->CommandSubType
, 27, 28) |
981 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
982 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
983 __gen_field(values
->DwordLength
, 0, 7) |
987 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
992 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
993 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
995 .CommandSubType = 3, \
996 ._3DCommandOpcode = 0, \
997 ._3DCommandSubOpcode = 39, \
1000 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
1002 struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS
{
1003 uint32_t CommandType
;
1004 uint32_t CommandSubType
;
1005 uint32_t _3DCommandOpcode
;
1006 uint32_t _3DCommandSubOpcode
;
1007 uint32_t DwordLength
;
1008 uint32_t PointertoHSBindingTable
;
1012 GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1013 const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
1015 uint32_t *dw
= (uint32_t * restrict
) dst
;
1018 __gen_field(values
->CommandType
, 29, 31) |
1019 __gen_field(values
->CommandSubType
, 27, 28) |
1020 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1021 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1022 __gen_field(values
->DwordLength
, 0, 7) |
1026 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
1031 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
1032 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
1034 .CommandSubType = 3, \
1035 ._3DCommandOpcode = 0, \
1036 ._3DCommandSubOpcode = 42, \
1039 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
1041 struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS
{
1042 uint32_t CommandType
;
1043 uint32_t CommandSubType
;
1044 uint32_t _3DCommandOpcode
;
1045 uint32_t _3DCommandSubOpcode
;
1046 uint32_t DwordLength
;
1047 uint32_t PointertoPSBindingTable
;
1051 GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1052 const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
1054 uint32_t *dw
= (uint32_t * restrict
) dst
;
1057 __gen_field(values
->CommandType
, 29, 31) |
1058 __gen_field(values
->CommandSubType
, 27, 28) |
1059 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1060 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1061 __gen_field(values
->DwordLength
, 0, 7) |
1065 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
1070 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
1071 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
1073 .CommandSubType = 3, \
1074 ._3DCommandOpcode = 0, \
1075 ._3DCommandSubOpcode = 38, \
1078 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
1080 struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS
{
1081 uint32_t CommandType
;
1082 uint32_t CommandSubType
;
1083 uint32_t _3DCommandOpcode
;
1084 uint32_t _3DCommandSubOpcode
;
1085 uint32_t DwordLength
;
1086 uint32_t PointertoVSBindingTable
;
1090 GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1091 const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
1093 uint32_t *dw
= (uint32_t * restrict
) dst
;
1096 __gen_field(values
->CommandType
, 29, 31) |
1097 __gen_field(values
->CommandSubType
, 27, 28) |
1098 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1099 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1100 __gen_field(values
->DwordLength
, 0, 7) |
1104 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
1109 #define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002
1110 #define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\
1112 .CommandSubType = 3, \
1113 ._3DCommandOpcode = 1, \
1114 ._3DCommandSubOpcode = 25, \
1117 #define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000003
1119 struct GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC
{
1120 uint32_t CommandType
;
1121 uint32_t CommandSubType
;
1122 uint32_t _3DCommandOpcode
;
1123 uint32_t _3DCommandSubOpcode
;
1124 uint32_t DwordLength
;
1125 __gen_address_type BindingTablePoolBaseAddress
;
1126 uint32_t BindingTablePoolEnable
;
1127 struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
1128 __gen_address_type BindingTablePoolUpperBound
;
1132 GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
1133 const struct GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC
* restrict values
)
1135 uint32_t *dw
= (uint32_t * restrict
) dst
;
1138 __gen_field(values
->CommandType
, 29, 31) |
1139 __gen_field(values
->CommandSubType
, 27, 28) |
1140 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1141 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1142 __gen_field(values
->DwordLength
, 0, 7) |
1145 uint32_t dw_SurfaceObjectControlState
;
1146 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
1148 __gen_field(values
->BindingTablePoolEnable
, 11, 11) |
1149 __gen_field(dw_SurfaceObjectControlState
, 7, 10) |
1153 __gen_combine_address(data
, &dw
[1], values
->BindingTablePoolBaseAddress
, dw1
);
1159 __gen_combine_address(data
, &dw
[2], values
->BindingTablePoolUpperBound
, dw2
);
1163 #define GEN75_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
1164 #define GEN75_3DSTATE_BLEND_STATE_POINTERS_header\
1166 .CommandSubType = 3, \
1167 ._3DCommandOpcode = 0, \
1168 ._3DCommandSubOpcode = 36, \
1171 #define GEN75_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
1173 struct GEN75_3DSTATE_BLEND_STATE_POINTERS
{
1174 uint32_t CommandType
;
1175 uint32_t CommandSubType
;
1176 uint32_t _3DCommandOpcode
;
1177 uint32_t _3DCommandSubOpcode
;
1178 uint32_t DwordLength
;
1179 uint32_t BlendStatePointer
;
1183 GEN75_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1184 const struct GEN75_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
1186 uint32_t *dw
= (uint32_t * restrict
) dst
;
1189 __gen_field(values
->CommandType
, 29, 31) |
1190 __gen_field(values
->CommandSubType
, 27, 28) |
1191 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1192 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1193 __gen_field(values
->DwordLength
, 0, 7) |
1197 __gen_offset(values
->BlendStatePointer
, 6, 31) |
1203 #define GEN75_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
1204 #define GEN75_3DSTATE_CC_STATE_POINTERS_header \
1206 .CommandSubType = 3, \
1207 ._3DCommandOpcode = 0, \
1208 ._3DCommandSubOpcode = 14, \
1211 #define GEN75_3DSTATE_CC_STATE_POINTERS_length 0x00000002
1213 struct GEN75_3DSTATE_CC_STATE_POINTERS
{
1214 uint32_t CommandType
;
1215 uint32_t CommandSubType
;
1216 uint32_t _3DCommandOpcode
;
1217 uint32_t _3DCommandSubOpcode
;
1218 uint32_t DwordLength
;
1219 uint32_t ColorCalcStatePointer
;
1223 GEN75_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1224 const struct GEN75_3DSTATE_CC_STATE_POINTERS
* restrict values
)
1226 uint32_t *dw
= (uint32_t * restrict
) dst
;
1229 __gen_field(values
->CommandType
, 29, 31) |
1230 __gen_field(values
->CommandSubType
, 27, 28) |
1231 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1232 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1233 __gen_field(values
->DwordLength
, 0, 7) |
1237 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
1243 #define GEN75_3DSTATE_CHROMA_KEY_length_bias 0x00000002
1244 #define GEN75_3DSTATE_CHROMA_KEY_header \
1246 .CommandSubType = 3, \
1247 ._3DCommandOpcode = 1, \
1248 ._3DCommandSubOpcode = 4, \
1251 #define GEN75_3DSTATE_CHROMA_KEY_length 0x00000004
1253 struct GEN75_3DSTATE_CHROMA_KEY
{
1254 uint32_t CommandType
;
1255 uint32_t CommandSubType
;
1256 uint32_t _3DCommandOpcode
;
1257 uint32_t _3DCommandSubOpcode
;
1258 uint32_t DwordLength
;
1259 uint32_t ChromaKeyTableIndex
;
1260 uint32_t ChromaKeyLowValue
;
1261 uint32_t ChromaKeyHighValue
;
1265 GEN75_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
1266 const struct GEN75_3DSTATE_CHROMA_KEY
* restrict values
)
1268 uint32_t *dw
= (uint32_t * restrict
) dst
;
1271 __gen_field(values
->CommandType
, 29, 31) |
1272 __gen_field(values
->CommandSubType
, 27, 28) |
1273 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1274 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1275 __gen_field(values
->DwordLength
, 0, 7) |
1279 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
1283 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
1287 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
1292 #define GEN75_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
1293 #define GEN75_3DSTATE_CLEAR_PARAMS_header \
1295 .CommandSubType = 3, \
1296 ._3DCommandOpcode = 0, \
1297 ._3DCommandSubOpcode = 4, \
1300 #define GEN75_3DSTATE_CLEAR_PARAMS_length 0x00000003
1302 struct GEN75_3DSTATE_CLEAR_PARAMS
{
1303 uint32_t CommandType
;
1304 uint32_t CommandSubType
;
1305 uint32_t _3DCommandOpcode
;
1306 uint32_t _3DCommandSubOpcode
;
1307 uint32_t DwordLength
;
1308 uint32_t DepthClearValue
;
1309 bool DepthClearValueValid
;
1313 GEN75_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
1314 const struct GEN75_3DSTATE_CLEAR_PARAMS
* restrict values
)
1316 uint32_t *dw
= (uint32_t * restrict
) dst
;
1319 __gen_field(values
->CommandType
, 29, 31) |
1320 __gen_field(values
->CommandSubType
, 27, 28) |
1321 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1322 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1323 __gen_field(values
->DwordLength
, 0, 7) |
1327 __gen_field(values
->DepthClearValue
, 0, 31) |
1331 __gen_field(values
->DepthClearValueValid
, 0, 0) |
1336 #define GEN75_3DSTATE_CLIP_length_bias 0x00000002
1337 #define GEN75_3DSTATE_CLIP_header \
1339 .CommandSubType = 3, \
1340 ._3DCommandOpcode = 0, \
1341 ._3DCommandSubOpcode = 18, \
1344 #define GEN75_3DSTATE_CLIP_length 0x00000004
1346 struct GEN75_3DSTATE_CLIP
{
1347 uint32_t CommandType
;
1348 uint32_t CommandSubType
;
1349 uint32_t _3DCommandOpcode
;
1350 uint32_t _3DCommandSubOpcode
;
1351 uint32_t DwordLength
;
1352 uint32_t FrontWinding
;
1353 uint32_t VertexSubPixelPrecisionSelect
;
1354 bool EarlyCullEnable
;
1355 #define CULLMODE_BOTH 0
1356 #define CULLMODE_NONE 1
1357 #define CULLMODE_FRONT 2
1358 #define CULLMODE_BACK 3
1360 bool ClipperStatisticsEnable
;
1361 uint32_t UserClipDistanceCullTestEnableBitmask
;
1363 #define APIMODE_OGL 0
1365 bool ViewportXYClipTestEnable
;
1366 bool ViewportZClipTestEnable
;
1367 bool GuardbandClipTestEnable
;
1368 uint32_t UserClipDistanceClipTestEnableBitmask
;
1369 #define CLIPMODE_NORMAL 0
1370 #define CLIPMODE_REJECT_ALL 3
1371 #define CLIPMODE_ACCEPT_ALL 4
1373 bool PerspectiveDivideDisable
;
1374 bool NonPerspectiveBarycentricEnable
;
1378 uint32_t TriangleStripListProvokingVertexSelect
;
1381 uint32_t LineStripListProvokingVertexSelect
;
1385 uint32_t TriangleFanProvokingVertexSelect
;
1386 float MinimumPointWidth
;
1387 float MaximumPointWidth
;
1388 bool ForceZeroRTAIndexEnable
;
1389 uint32_t MaximumVPIndex
;
1393 GEN75_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1394 const struct GEN75_3DSTATE_CLIP
* restrict values
)
1396 uint32_t *dw
= (uint32_t * restrict
) dst
;
1399 __gen_field(values
->CommandType
, 29, 31) |
1400 __gen_field(values
->CommandSubType
, 27, 28) |
1401 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1402 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1403 __gen_field(values
->DwordLength
, 0, 7) |
1407 __gen_field(values
->FrontWinding
, 20, 20) |
1408 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1409 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1410 __gen_field(values
->CullMode
, 16, 17) |
1411 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1412 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1416 __gen_field(values
->ClipEnable
, 31, 31) |
1417 __gen_field(values
->APIMode
, 30, 30) |
1418 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1419 __gen_field(values
->ViewportZClipTestEnable
, 27, 27) |
1420 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1421 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1422 __gen_field(values
->ClipMode
, 13, 15) |
1423 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1424 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1425 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1426 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1427 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1431 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
1432 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
1433 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1434 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1439 #define GEN75_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1440 #define GEN75_3DSTATE_CONSTANT_DS_header \
1442 .CommandSubType = 3, \
1443 ._3DCommandOpcode = 0, \
1444 ._3DCommandSubOpcode = 26, \
1447 #define GEN75_3DSTATE_CONSTANT_DS_length 0x00000007
1449 #define GEN75_3DSTATE_CONSTANT_BODY_length 0x00000006
1451 struct GEN75_3DSTATE_CONSTANT_BODY
{
1452 uint32_t ConstantBuffer1ReadLength
;
1453 uint32_t ConstantBuffer0ReadLength
;
1454 uint32_t ConstantBuffer3ReadLength
;
1455 uint32_t ConstantBuffer2ReadLength
;
1456 __gen_address_type PointerToConstantBuffer0
;
1457 struct GEN75_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1458 __gen_address_type PointerToConstantBuffer1
;
1459 __gen_address_type PointerToConstantBuffer2
;
1460 __gen_address_type PointerToConstantBuffer3
;
1464 GEN75_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1465 const struct GEN75_3DSTATE_CONSTANT_BODY
* restrict values
)
1467 uint32_t *dw
= (uint32_t * restrict
) dst
;
1470 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1471 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1475 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1476 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1479 uint32_t dw_ConstantBufferObjectControlState
;
1480 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1482 __gen_field(dw_ConstantBufferObjectControlState
, 0, 4) |
1486 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1492 __gen_combine_address(data
, &dw
[3], values
->PointerToConstantBuffer1
, dw3
);
1498 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer2
, dw4
);
1504 __gen_combine_address(data
, &dw
[5], values
->PointerToConstantBuffer3
, dw5
);
1508 struct GEN75_3DSTATE_CONSTANT_DS
{
1509 uint32_t CommandType
;
1510 uint32_t CommandSubType
;
1511 uint32_t _3DCommandOpcode
;
1512 uint32_t _3DCommandSubOpcode
;
1513 uint32_t DwordLength
;
1514 struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody
;
1518 GEN75_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1519 const struct GEN75_3DSTATE_CONSTANT_DS
* restrict values
)
1521 uint32_t *dw
= (uint32_t * restrict
) dst
;
1524 __gen_field(values
->CommandType
, 29, 31) |
1525 __gen_field(values
->CommandSubType
, 27, 28) |
1526 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1527 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1528 __gen_field(values
->DwordLength
, 0, 7) |
1531 GEN75_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1534 #define GEN75_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1535 #define GEN75_3DSTATE_CONSTANT_GS_header \
1537 .CommandSubType = 3, \
1538 ._3DCommandOpcode = 0, \
1539 ._3DCommandSubOpcode = 22, \
1542 #define GEN75_3DSTATE_CONSTANT_GS_length 0x00000007
1544 struct GEN75_3DSTATE_CONSTANT_GS
{
1545 uint32_t CommandType
;
1546 uint32_t CommandSubType
;
1547 uint32_t _3DCommandOpcode
;
1548 uint32_t _3DCommandSubOpcode
;
1549 uint32_t DwordLength
;
1550 struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody
;
1554 GEN75_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1555 const struct GEN75_3DSTATE_CONSTANT_GS
* restrict values
)
1557 uint32_t *dw
= (uint32_t * restrict
) dst
;
1560 __gen_field(values
->CommandType
, 29, 31) |
1561 __gen_field(values
->CommandSubType
, 27, 28) |
1562 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1563 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1564 __gen_field(values
->DwordLength
, 0, 7) |
1567 GEN75_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1570 #define GEN75_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1571 #define GEN75_3DSTATE_CONSTANT_HS_header \
1573 .CommandSubType = 3, \
1574 ._3DCommandOpcode = 0, \
1575 ._3DCommandSubOpcode = 25, \
1578 #define GEN75_3DSTATE_CONSTANT_HS_length 0x00000007
1580 struct GEN75_3DSTATE_CONSTANT_HS
{
1581 uint32_t CommandType
;
1582 uint32_t CommandSubType
;
1583 uint32_t _3DCommandOpcode
;
1584 uint32_t _3DCommandSubOpcode
;
1585 uint32_t DwordLength
;
1586 struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody
;
1590 GEN75_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1591 const struct GEN75_3DSTATE_CONSTANT_HS
* restrict values
)
1593 uint32_t *dw
= (uint32_t * restrict
) dst
;
1596 __gen_field(values
->CommandType
, 29, 31) |
1597 __gen_field(values
->CommandSubType
, 27, 28) |
1598 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1599 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1600 __gen_field(values
->DwordLength
, 0, 7) |
1603 GEN75_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1606 #define GEN75_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1607 #define GEN75_3DSTATE_CONSTANT_PS_header \
1609 .CommandSubType = 3, \
1610 ._3DCommandOpcode = 0, \
1611 ._3DCommandSubOpcode = 23, \
1614 #define GEN75_3DSTATE_CONSTANT_PS_length 0x00000007
1616 struct GEN75_3DSTATE_CONSTANT_PS
{
1617 uint32_t CommandType
;
1618 uint32_t CommandSubType
;
1619 uint32_t _3DCommandOpcode
;
1620 uint32_t _3DCommandSubOpcode
;
1621 uint32_t DwordLength
;
1622 struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody
;
1626 GEN75_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1627 const struct GEN75_3DSTATE_CONSTANT_PS
* 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) |
1639 GEN75_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1642 #define GEN75_3DSTATE_CONSTANT_VS_length_bias 0x00000002
1643 #define GEN75_3DSTATE_CONSTANT_VS_header \
1645 .CommandSubType = 3, \
1646 ._3DCommandOpcode = 0, \
1647 ._3DCommandSubOpcode = 21, \
1650 #define GEN75_3DSTATE_CONSTANT_VS_length 0x00000007
1652 struct GEN75_3DSTATE_CONSTANT_VS
{
1653 uint32_t CommandType
;
1654 uint32_t CommandSubType
;
1655 uint32_t _3DCommandOpcode
;
1656 uint32_t _3DCommandSubOpcode
;
1657 uint32_t DwordLength
;
1658 struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody
;
1662 GEN75_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1663 const struct GEN75_3DSTATE_CONSTANT_VS
* restrict values
)
1665 uint32_t *dw
= (uint32_t * restrict
) dst
;
1668 __gen_field(values
->CommandType
, 29, 31) |
1669 __gen_field(values
->CommandSubType
, 27, 28) |
1670 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1671 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1672 __gen_field(values
->DwordLength
, 0, 7) |
1675 GEN75_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1678 #define GEN75_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
1679 #define GEN75_3DSTATE_DEPTH_BUFFER_header \
1681 .CommandSubType = 3, \
1682 ._3DCommandOpcode = 0, \
1683 ._3DCommandSubOpcode = 5, \
1686 #define GEN75_3DSTATE_DEPTH_BUFFER_length 0x00000007
1688 struct GEN75_3DSTATE_DEPTH_BUFFER
{
1689 uint32_t CommandType
;
1690 uint32_t CommandSubType
;
1691 uint32_t _3DCommandOpcode
;
1692 uint32_t _3DCommandSubOpcode
;
1693 uint32_t DwordLength
;
1694 #define SURFTYPE_1D 0
1695 #define SURFTYPE_2D 1
1696 #define SURFTYPE_3D 2
1697 #define SURFTYPE_CUBE 3
1698 #define SURFTYPE_NULL 7
1699 uint32_t SurfaceType
;
1700 bool DepthWriteEnable
;
1701 bool StencilWriteEnable
;
1702 bool HierarchicalDepthBufferEnable
;
1704 #define D24_UNORM_X8_UINT 3
1706 uint32_t SurfaceFormat
;
1707 uint32_t SurfacePitch
;
1708 __gen_address_type SurfaceBaseAddress
;
1712 #define SURFTYPE_CUBEmustbezero 0
1714 uint32_t MinimumArrayElement
;
1715 struct GEN75_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
1716 uint32_t DepthCoordinateOffsetY
;
1717 uint32_t DepthCoordinateOffsetX
;
1718 uint32_t RenderTargetViewExtent
;
1722 GEN75_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1723 const struct GEN75_3DSTATE_DEPTH_BUFFER
* restrict values
)
1725 uint32_t *dw
= (uint32_t * restrict
) dst
;
1728 __gen_field(values
->CommandType
, 29, 31) |
1729 __gen_field(values
->CommandSubType
, 27, 28) |
1730 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1731 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1732 __gen_field(values
->DwordLength
, 0, 7) |
1736 __gen_field(values
->SurfaceType
, 29, 31) |
1737 __gen_field(values
->DepthWriteEnable
, 28, 28) |
1738 __gen_field(values
->StencilWriteEnable
, 27, 27) |
1739 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
1740 __gen_field(values
->SurfaceFormat
, 18, 20) |
1741 __gen_field(values
->SurfacePitch
, 0, 17) |
1748 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1751 __gen_field(values
->Height
, 18, 31) |
1752 __gen_field(values
->Width
, 4, 17) |
1753 __gen_field(values
->LOD
, 0, 3) |
1756 uint32_t dw_DepthBufferObjectControlState
;
1757 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
1759 __gen_field(values
->Depth
, 21, 31) |
1760 __gen_field(values
->MinimumArrayElement
, 10, 20) |
1761 __gen_field(dw_DepthBufferObjectControlState
, 0, 3) |
1765 __gen_field(values
->DepthCoordinateOffsetY
, 16, 31) |
1766 __gen_field(values
->DepthCoordinateOffsetX
, 0, 15) |
1770 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
1775 #define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002
1776 #define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\
1778 .CommandSubType = 3, \
1779 ._3DCommandOpcode = 0, \
1780 ._3DCommandSubOpcode = 37, \
1783 #define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
1785 struct GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
{
1786 uint32_t CommandType
;
1787 uint32_t CommandSubType
;
1788 uint32_t _3DCommandOpcode
;
1789 uint32_t _3DCommandSubOpcode
;
1790 uint32_t DwordLength
;
1791 uint32_t PointertoDEPTH_STENCIL_STATE
;
1795 GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1796 const struct GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
* restrict values
)
1798 uint32_t *dw
= (uint32_t * restrict
) dst
;
1801 __gen_field(values
->CommandType
, 29, 31) |
1802 __gen_field(values
->CommandSubType
, 27, 28) |
1803 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1804 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1805 __gen_field(values
->DwordLength
, 0, 7) |
1809 __gen_offset(values
->PointertoDEPTH_STENCIL_STATE
, 6, 31) |
1815 #define GEN75_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
1816 #define GEN75_3DSTATE_DRAWING_RECTANGLE_header \
1818 .CommandSubType = 3, \
1819 ._3DCommandOpcode = 1, \
1820 ._3DCommandSubOpcode = 0, \
1823 #define GEN75_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
1825 struct GEN75_3DSTATE_DRAWING_RECTANGLE
{
1826 uint32_t CommandType
;
1827 uint32_t CommandSubType
;
1828 uint32_t _3DCommandOpcode
;
1829 uint32_t _3DCommandSubOpcode
;
1831 #define Core0Enabled 1
1832 #define Core1Enabled 2
1833 uint32_t CoreModeSelect
;
1834 uint32_t DwordLength
;
1835 uint32_t ClippedDrawingRectangleYMin
;
1836 uint32_t ClippedDrawingRectangleXMin
;
1837 uint32_t ClippedDrawingRectangleYMax
;
1838 uint32_t ClippedDrawingRectangleXMax
;
1839 uint32_t DrawingRectangleOriginY
;
1840 uint32_t DrawingRectangleOriginX
;
1844 GEN75_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
1845 const struct GEN75_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
1847 uint32_t *dw
= (uint32_t * restrict
) dst
;
1850 __gen_field(values
->CommandType
, 29, 31) |
1851 __gen_field(values
->CommandSubType
, 27, 28) |
1852 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1853 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1854 __gen_field(values
->CoreModeSelect
, 14, 15) |
1855 __gen_field(values
->DwordLength
, 0, 7) |
1859 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
1860 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
1864 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
1865 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
1869 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
1870 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
1875 #define GEN75_3DSTATE_DS_length_bias 0x00000002
1876 #define GEN75_3DSTATE_DS_header \
1878 .CommandSubType = 3, \
1879 ._3DCommandOpcode = 0, \
1880 ._3DCommandSubOpcode = 29, \
1883 #define GEN75_3DSTATE_DS_length 0x00000006
1885 struct GEN75_3DSTATE_DS
{
1886 uint32_t CommandType
;
1887 uint32_t CommandSubType
;
1888 uint32_t _3DCommandOpcode
;
1889 uint32_t _3DCommandSubOpcode
;
1890 uint32_t DwordLength
;
1891 uint32_t KernelStartPointer
;
1894 uint32_t SingleDomainPointDispatch
;
1897 uint32_t VectorMaskEnable
;
1898 #define NoSamplers 0
1899 #define _14Samplers 1
1900 #define _58Samplers 2
1901 #define _912Samplers 3
1902 #define _1316Samplers 4
1903 uint32_t SamplerCount
;
1904 uint32_t BindingTableEntryCount
;
1907 uint32_t ThreadDispatchPriority
;
1910 uint32_t FloatingPointMode
;
1912 bool IllegalOpcodeExceptionEnable
;
1913 bool SoftwareExceptionEnable
;
1914 uint32_t ScratchSpaceBasePointer
;
1915 uint32_t PerThreadScratchSpace
;
1916 uint32_t DispatchGRFStartRegisterForURBData
;
1917 uint32_t PatchURBEntryReadLength
;
1918 uint32_t PatchURBEntryReadOffset
;
1919 uint32_t MaximumNumberofThreads
;
1920 bool StatisticsEnable
;
1921 bool ComputeWCoordinateEnable
;
1922 bool DSCacheDisable
;
1923 bool DSFunctionEnable
;
1927 GEN75_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1928 const struct GEN75_3DSTATE_DS
* restrict values
)
1930 uint32_t *dw
= (uint32_t * restrict
) dst
;
1933 __gen_field(values
->CommandType
, 29, 31) |
1934 __gen_field(values
->CommandSubType
, 27, 28) |
1935 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1936 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1937 __gen_field(values
->DwordLength
, 0, 7) |
1941 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1945 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
1946 __gen_field(values
->VectorMaskEnable
, 30, 30) |
1947 __gen_field(values
->SamplerCount
, 27, 29) |
1948 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1949 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
1950 __gen_field(values
->FloatingPointMode
, 16, 16) |
1951 __gen_field(values
->AccessesUAV
, 14, 14) |
1952 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1953 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1957 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1958 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1962 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
1963 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
1964 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
1968 __gen_field(values
->MaximumNumberofThreads
, 21, 29) |
1969 __gen_field(values
->StatisticsEnable
, 10, 10) |
1970 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
1971 __gen_field(values
->DSCacheDisable
, 1, 1) |
1972 __gen_field(values
->DSFunctionEnable
, 0, 0) |
1977 #define GEN75_3DSTATE_GATHER_CONSTANT_DS_length_bias 0x00000002
1978 #define GEN75_3DSTATE_GATHER_CONSTANT_DS_header \
1980 .CommandSubType = 3, \
1981 ._3DCommandOpcode = 0, \
1982 ._3DCommandSubOpcode = 55
1984 #define GEN75_3DSTATE_GATHER_CONSTANT_DS_length 0x00000000
1986 #define GEN75_GATHER_CONSTANT_ENTRY_length 0x00000001
1988 struct GEN75_GATHER_CONSTANT_ENTRY
{
1989 uint32_t ConstantBufferOffset
;
1990 uint32_t ChannelMask
;
1991 uint32_t BindingTableIndexOffset
;
1995 GEN75_GATHER_CONSTANT_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
1996 const struct GEN75_GATHER_CONSTANT_ENTRY
* restrict values
)
1998 uint32_t *dw
= (uint32_t * restrict
) dst
;
2001 __gen_offset(values
->ConstantBufferOffset
, 8, 15) |
2002 __gen_field(values
->ChannelMask
, 4, 7) |
2003 __gen_field(values
->BindingTableIndexOffset
, 0, 3) |
2008 struct GEN75_3DSTATE_GATHER_CONSTANT_DS
{
2009 uint32_t CommandType
;
2010 uint32_t CommandSubType
;
2011 uint32_t _3DCommandOpcode
;
2012 uint32_t _3DCommandSubOpcode
;
2013 uint32_t DwordLength
;
2014 uint32_t ConstantBufferValid
;
2015 uint32_t ConstantBufferBindingTableBlock
;
2016 uint32_t GatherBufferOffset
;
2017 /* variable length fields follow */
2021 GEN75_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2022 const struct GEN75_3DSTATE_GATHER_CONSTANT_DS
* restrict values
)
2024 uint32_t *dw
= (uint32_t * restrict
) dst
;
2027 __gen_field(values
->CommandType
, 29, 31) |
2028 __gen_field(values
->CommandSubType
, 27, 28) |
2029 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2030 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2031 __gen_field(values
->DwordLength
, 0, 7) |
2035 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2036 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2040 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2043 /* variable length fields follow */
2046 #define GEN75_3DSTATE_GATHER_CONSTANT_GS_length_bias 0x00000002
2047 #define GEN75_3DSTATE_GATHER_CONSTANT_GS_header \
2049 .CommandSubType = 3, \
2050 ._3DCommandOpcode = 0, \
2051 ._3DCommandSubOpcode = 53
2053 #define GEN75_3DSTATE_GATHER_CONSTANT_GS_length 0x00000000
2055 struct GEN75_3DSTATE_GATHER_CONSTANT_GS
{
2056 uint32_t CommandType
;
2057 uint32_t CommandSubType
;
2058 uint32_t _3DCommandOpcode
;
2059 uint32_t _3DCommandSubOpcode
;
2060 uint32_t DwordLength
;
2061 uint32_t ConstantBufferValid
;
2062 uint32_t ConstantBufferBindingTableBlock
;
2063 uint32_t GatherBufferOffset
;
2064 /* variable length fields follow */
2068 GEN75_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2069 const struct GEN75_3DSTATE_GATHER_CONSTANT_GS
* restrict values
)
2071 uint32_t *dw
= (uint32_t * restrict
) dst
;
2074 __gen_field(values
->CommandType
, 29, 31) |
2075 __gen_field(values
->CommandSubType
, 27, 28) |
2076 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2077 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2078 __gen_field(values
->DwordLength
, 0, 7) |
2082 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2083 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2087 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2090 /* variable length fields follow */
2093 #define GEN75_3DSTATE_GATHER_CONSTANT_HS_length_bias 0x00000002
2094 #define GEN75_3DSTATE_GATHER_CONSTANT_HS_header \
2096 .CommandSubType = 3, \
2097 ._3DCommandOpcode = 0, \
2098 ._3DCommandSubOpcode = 54
2100 #define GEN75_3DSTATE_GATHER_CONSTANT_HS_length 0x00000000
2102 struct GEN75_3DSTATE_GATHER_CONSTANT_HS
{
2103 uint32_t CommandType
;
2104 uint32_t CommandSubType
;
2105 uint32_t _3DCommandOpcode
;
2106 uint32_t _3DCommandSubOpcode
;
2107 uint32_t DwordLength
;
2108 uint32_t ConstantBufferValid
;
2109 uint32_t ConstantBufferBindingTableBlock
;
2110 uint32_t GatherBufferOffset
;
2111 /* variable length fields follow */
2115 GEN75_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2116 const struct GEN75_3DSTATE_GATHER_CONSTANT_HS
* restrict values
)
2118 uint32_t *dw
= (uint32_t * restrict
) dst
;
2121 __gen_field(values
->CommandType
, 29, 31) |
2122 __gen_field(values
->CommandSubType
, 27, 28) |
2123 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2124 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2125 __gen_field(values
->DwordLength
, 0, 7) |
2129 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2130 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2134 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2137 /* variable length fields follow */
2140 #define GEN75_3DSTATE_GATHER_CONSTANT_PS_length_bias 0x00000002
2141 #define GEN75_3DSTATE_GATHER_CONSTANT_PS_header \
2143 .CommandSubType = 3, \
2144 ._3DCommandOpcode = 0, \
2145 ._3DCommandSubOpcode = 56
2147 #define GEN75_3DSTATE_GATHER_CONSTANT_PS_length 0x00000000
2149 struct GEN75_3DSTATE_GATHER_CONSTANT_PS
{
2150 uint32_t CommandType
;
2151 uint32_t CommandSubType
;
2152 uint32_t _3DCommandOpcode
;
2153 uint32_t _3DCommandSubOpcode
;
2154 uint32_t DwordLength
;
2155 uint32_t ConstantBufferValid
;
2156 uint32_t ConstantBufferBindingTableBlock
;
2157 uint32_t GatherBufferOffset
;
2158 bool ConstantBufferDx9Enable
;
2159 /* variable length fields follow */
2163 GEN75_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2164 const struct GEN75_3DSTATE_GATHER_CONSTANT_PS
* restrict values
)
2166 uint32_t *dw
= (uint32_t * restrict
) dst
;
2169 __gen_field(values
->CommandType
, 29, 31) |
2170 __gen_field(values
->CommandSubType
, 27, 28) |
2171 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2172 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2173 __gen_field(values
->DwordLength
, 0, 7) |
2177 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2178 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2182 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2183 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2186 /* variable length fields follow */
2189 #define GEN75_3DSTATE_GATHER_CONSTANT_VS_length_bias 0x00000002
2190 #define GEN75_3DSTATE_GATHER_CONSTANT_VS_header \
2192 .CommandSubType = 3, \
2193 ._3DCommandOpcode = 0, \
2194 ._3DCommandSubOpcode = 52
2196 #define GEN75_3DSTATE_GATHER_CONSTANT_VS_length 0x00000000
2198 struct GEN75_3DSTATE_GATHER_CONSTANT_VS
{
2199 uint32_t CommandType
;
2200 uint32_t CommandSubType
;
2201 uint32_t _3DCommandOpcode
;
2202 uint32_t _3DCommandSubOpcode
;
2203 uint32_t DwordLength
;
2204 uint32_t ConstantBufferValid
;
2205 uint32_t ConstantBufferBindingTableBlock
;
2206 uint32_t GatherBufferOffset
;
2207 bool ConstantBufferDx9Enable
;
2208 /* variable length fields follow */
2212 GEN75_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2213 const struct GEN75_3DSTATE_GATHER_CONSTANT_VS
* restrict values
)
2215 uint32_t *dw
= (uint32_t * restrict
) dst
;
2218 __gen_field(values
->CommandType
, 29, 31) |
2219 __gen_field(values
->CommandSubType
, 27, 28) |
2220 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2221 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2222 __gen_field(values
->DwordLength
, 0, 7) |
2226 __gen_field(values
->ConstantBufferValid
, 16, 31) |
2227 __gen_field(values
->ConstantBufferBindingTableBlock
, 12, 15) |
2231 __gen_offset(values
->GatherBufferOffset
, 6, 22) |
2232 __gen_field(values
->ConstantBufferDx9Enable
, 4, 4) |
2235 /* variable length fields follow */
2238 #define GEN75_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002
2239 #define GEN75_3DSTATE_GATHER_POOL_ALLOC_header \
2241 .CommandSubType = 3, \
2242 ._3DCommandOpcode = 1, \
2243 ._3DCommandSubOpcode = 26, \
2246 #define GEN75_3DSTATE_GATHER_POOL_ALLOC_length 0x00000003
2248 struct GEN75_3DSTATE_GATHER_POOL_ALLOC
{
2249 uint32_t CommandType
;
2250 uint32_t CommandSubType
;
2251 uint32_t _3DCommandOpcode
;
2252 uint32_t _3DCommandSubOpcode
;
2253 uint32_t DwordLength
;
2254 __gen_address_type GatherPoolBaseAddress
;
2255 bool GatherPoolEnable
;
2256 struct GEN75_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2257 __gen_address_type GatherPoolUpperBound
;
2261 GEN75_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
2262 const struct GEN75_3DSTATE_GATHER_POOL_ALLOC
* restrict values
)
2264 uint32_t *dw
= (uint32_t * restrict
) dst
;
2267 __gen_field(values
->CommandType
, 29, 31) |
2268 __gen_field(values
->CommandSubType
, 27, 28) |
2269 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2270 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2271 __gen_field(values
->DwordLength
, 0, 7) |
2274 uint32_t dw_MemoryObjectControlState
;
2275 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2277 __gen_field(values
->GatherPoolEnable
, 11, 11) |
2279 __gen_field(dw_MemoryObjectControlState
, 0, 3) |
2283 __gen_combine_address(data
, &dw
[1], values
->GatherPoolBaseAddress
, dw1
);
2289 __gen_combine_address(data
, &dw
[2], values
->GatherPoolUpperBound
, dw2
);
2293 #define GEN75_3DSTATE_GS_length_bias 0x00000002
2294 #define GEN75_3DSTATE_GS_header \
2296 .CommandSubType = 3, \
2297 ._3DCommandOpcode = 0, \
2298 ._3DCommandSubOpcode = 17, \
2301 #define GEN75_3DSTATE_GS_length 0x00000007
2303 struct GEN75_3DSTATE_GS
{
2304 uint32_t CommandType
;
2305 uint32_t CommandSubType
;
2306 uint32_t _3DCommandOpcode
;
2307 uint32_t _3DCommandSubOpcode
;
2308 uint32_t DwordLength
;
2309 uint32_t KernelStartPointer
;
2310 uint32_t SingleProgramFlowSPF
;
2313 uint32_t VectorMaskEnableVME
;
2314 #define NoSamplers 0
2315 #define _14Samplers 1
2316 #define _58Samplers 2
2317 #define _912Samplers 3
2318 #define _1316Samplers 4
2319 uint32_t SamplerCount
;
2320 uint32_t BindingTableEntryCount
;
2321 #define NormalPriority 0
2322 #define HighPriority 1
2323 uint32_t ThreadPriority
;
2326 uint32_t FloatingPointMode
;
2327 bool IllegalOpcodeExceptionEnable
;
2328 uint32_t GSaccessesUAV
;
2329 bool MaskStackExceptionEnable
;
2330 bool SoftwareExceptionEnable
;
2331 uint32_t ScratchSpaceBasePointer
;
2332 uint32_t PerThreadScratchSpace
;
2333 uint32_t OutputVertexSize
;
2334 uint32_t OutputTopology
;
2335 uint32_t VertexURBEntryReadLength
;
2336 bool IncludeVertexHandles
;
2337 uint32_t VertexURBEntryReadOffset
;
2338 uint32_t DispatchGRFStartRegisterforURBData
;
2339 uint32_t MaximumNumberofThreads
;
2340 uint32_t ControlDataHeaderSize
;
2341 uint32_t InstanceControl
;
2342 uint32_t DefaultStreamID
;
2344 #define DUAL_INSTANCE 1
2345 #define DUAL_OBJECT 2
2346 uint32_t DispatchMode
;
2347 uint32_t GSStatisticsEnable
;
2348 uint32_t GSInvocationsIncrementValue
;
2349 bool IncludePrimitiveID
;
2351 #define REORDER_LEADING 0
2352 #define REORDER_TRAILING 1
2353 uint32_t ReorderMode
;
2354 bool DiscardAdjacency
;
2358 uint32_t ControlDataFormat
;
2359 uint32_t SemaphoreHandle
;
2363 GEN75_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2364 const struct GEN75_3DSTATE_GS
* restrict values
)
2366 uint32_t *dw
= (uint32_t * restrict
) dst
;
2369 __gen_field(values
->CommandType
, 29, 31) |
2370 __gen_field(values
->CommandSubType
, 27, 28) |
2371 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2372 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2373 __gen_field(values
->DwordLength
, 0, 7) |
2377 __gen_offset(values
->KernelStartPointer
, 6, 31) |
2381 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
2382 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
2383 __gen_field(values
->SamplerCount
, 27, 29) |
2384 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2385 __gen_field(values
->ThreadPriority
, 17, 17) |
2386 __gen_field(values
->FloatingPointMode
, 16, 16) |
2387 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2388 __gen_field(values
->GSaccessesUAV
, 12, 12) |
2389 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2390 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2394 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
2395 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2399 __gen_field(values
->OutputVertexSize
, 23, 28) |
2400 __gen_field(values
->OutputTopology
, 17, 22) |
2401 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2402 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
2403 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2404 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 0, 3) |
2408 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2409 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
2410 __gen_field(values
->InstanceControl
, 15, 19) |
2411 __gen_field(values
->DefaultStreamID
, 13, 14) |
2412 __gen_field(values
->DispatchMode
, 11, 12) |
2413 __gen_field(values
->GSStatisticsEnable
, 10, 10) |
2414 __gen_field(values
->GSInvocationsIncrementValue
, 5, 9) |
2415 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
2416 __gen_field(values
->Hint
, 3, 3) |
2417 __gen_field(values
->ReorderMode
, 2, 2) |
2418 __gen_field(values
->DiscardAdjacency
, 1, 1) |
2419 __gen_field(values
->GSEnable
, 0, 0) |
2423 __gen_field(values
->ControlDataFormat
, 31, 31) |
2424 __gen_offset(values
->SemaphoreHandle
, 0, 12) |
2429 #define GEN75_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
2430 #define GEN75_3DSTATE_HIER_DEPTH_BUFFER_header \
2432 .CommandSubType = 3, \
2433 ._3DCommandOpcode = 0, \
2434 ._3DCommandSubOpcode = 7, \
2437 #define GEN75_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
2439 struct GEN75_3DSTATE_HIER_DEPTH_BUFFER
{
2440 uint32_t CommandType
;
2441 uint32_t CommandSubType
;
2442 uint32_t _3DCommandOpcode
;
2443 uint32_t _3DCommandSubOpcode
;
2444 uint32_t DwordLength
;
2445 struct GEN75_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
2446 uint32_t SurfacePitch
;
2447 __gen_address_type SurfaceBaseAddress
;
2451 GEN75_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2452 const struct GEN75_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
2454 uint32_t *dw
= (uint32_t * restrict
) dst
;
2457 __gen_field(values
->CommandType
, 29, 31) |
2458 __gen_field(values
->CommandSubType
, 27, 28) |
2459 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2460 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2461 __gen_field(values
->DwordLength
, 0, 7) |
2464 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
2465 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
2467 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 28) |
2468 __gen_field(values
->SurfacePitch
, 0, 16) |
2475 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
2479 #define GEN75_3DSTATE_HS_length_bias 0x00000002
2480 #define GEN75_3DSTATE_HS_header \
2482 .CommandSubType = 3, \
2483 ._3DCommandOpcode = 0, \
2484 ._3DCommandSubOpcode = 27, \
2487 #define GEN75_3DSTATE_HS_length 0x00000007
2489 struct GEN75_3DSTATE_HS
{
2490 uint32_t CommandType
;
2491 uint32_t CommandSubType
;
2492 uint32_t _3DCommandOpcode
;
2493 uint32_t _3DCommandSubOpcode
;
2494 uint32_t DwordLength
;
2495 #define NoSamplers 0
2496 #define _14Samplers 1
2497 #define _58Samplers 2
2498 #define _912Samplers 3
2499 #define _1316Samplers 4
2500 uint32_t SamplerCount
;
2501 uint32_t BindingTableEntryCount
;
2504 uint32_t ThreadDispatchPriority
;
2507 uint32_t FloatingPointMode
;
2508 bool IllegalOpcodeExceptionEnable
;
2509 bool SoftwareExceptionEnable
;
2510 uint32_t MaximumNumberofThreads
;
2512 bool StatisticsEnable
;
2513 uint32_t InstanceCount
;
2514 uint32_t KernelStartPointer
;
2515 uint32_t ScratchSpaceBasePointer
;
2516 uint32_t PerThreadScratchSpace
;
2517 uint32_t SingleProgramFlow
;
2520 uint32_t VectorMaskEnable
;
2522 bool IncludeVertexHandles
;
2523 uint32_t DispatchGRFStartRegisterForURBData
;
2524 uint32_t VertexURBEntryReadLength
;
2525 uint32_t VertexURBEntryReadOffset
;
2526 uint32_t SemaphoreHandle
;
2530 GEN75_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2531 const struct GEN75_3DSTATE_HS
* restrict values
)
2533 uint32_t *dw
= (uint32_t * restrict
) dst
;
2536 __gen_field(values
->CommandType
, 29, 31) |
2537 __gen_field(values
->CommandSubType
, 27, 28) |
2538 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2539 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2540 __gen_field(values
->DwordLength
, 0, 7) |
2544 __gen_field(values
->SamplerCount
, 27, 29) |
2545 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2546 __gen_field(values
->ThreadDispatchPriority
, 17, 17) |
2547 __gen_field(values
->FloatingPointMode
, 16, 16) |
2548 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2549 __gen_field(values
->SoftwareExceptionEnable
, 12, 12) |
2550 __gen_field(values
->MaximumNumberofThreads
, 0, 7) |
2554 __gen_field(values
->Enable
, 31, 31) |
2555 __gen_field(values
->StatisticsEnable
, 29, 29) |
2556 __gen_field(values
->InstanceCount
, 0, 3) |
2560 __gen_offset(values
->KernelStartPointer
, 6, 31) |
2564 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
2565 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2569 __gen_field(values
->SingleProgramFlow
, 27, 27) |
2570 __gen_field(values
->VectorMaskEnable
, 26, 26) |
2571 __gen_field(values
->HSaccessesUAV
, 25, 25) |
2572 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
2573 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
2574 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
2575 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2579 __gen_offset(values
->SemaphoreHandle
, 0, 12) |
2584 #define GEN75_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
2585 #define GEN75_3DSTATE_INDEX_BUFFER_header \
2587 .CommandSubType = 3, \
2588 ._3DCommandOpcode = 0, \
2589 ._3DCommandSubOpcode = 10, \
2592 #define GEN75_3DSTATE_INDEX_BUFFER_length 0x00000003
2594 struct GEN75_3DSTATE_INDEX_BUFFER
{
2595 uint32_t CommandType
;
2596 uint32_t CommandSubType
;
2597 uint32_t _3DCommandOpcode
;
2598 uint32_t _3DCommandSubOpcode
;
2599 struct GEN75_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
2600 #define INDEX_BYTE 0
2601 #define INDEX_WORD 1
2602 #define INDEX_DWORD 2
2603 uint32_t IndexFormat
;
2604 uint32_t DwordLength
;
2605 __gen_address_type BufferStartingAddress
;
2606 __gen_address_type BufferEndingAddress
;
2610 GEN75_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
2611 const struct GEN75_3DSTATE_INDEX_BUFFER
* restrict values
)
2613 uint32_t *dw
= (uint32_t * restrict
) dst
;
2615 uint32_t dw_MemoryObjectControlState
;
2616 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
2618 __gen_field(values
->CommandType
, 29, 31) |
2619 __gen_field(values
->CommandSubType
, 27, 28) |
2620 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2621 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2622 __gen_field(dw_MemoryObjectControlState
, 12, 15) |
2623 __gen_field(values
->IndexFormat
, 8, 9) |
2624 __gen_field(values
->DwordLength
, 0, 7) |
2631 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
2637 __gen_combine_address(data
, &dw
[2], values
->BufferEndingAddress
, dw2
);
2641 #define GEN75_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
2642 #define GEN75_3DSTATE_LINE_STIPPLE_header \
2644 .CommandSubType = 3, \
2645 ._3DCommandOpcode = 1, \
2646 ._3DCommandSubOpcode = 8, \
2649 #define GEN75_3DSTATE_LINE_STIPPLE_length 0x00000003
2651 struct GEN75_3DSTATE_LINE_STIPPLE
{
2652 uint32_t CommandType
;
2653 uint32_t CommandSubType
;
2654 uint32_t _3DCommandOpcode
;
2655 uint32_t _3DCommandSubOpcode
;
2656 uint32_t DwordLength
;
2657 bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
2658 uint32_t CurrentRepeatCounter
;
2659 uint32_t CurrentStippleIndex
;
2660 uint32_t LineStipplePattern
;
2661 float LineStippleInverseRepeatCount
;
2662 uint32_t LineStippleRepeatCount
;
2666 GEN75_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2667 const struct GEN75_3DSTATE_LINE_STIPPLE
* restrict values
)
2669 uint32_t *dw
= (uint32_t * restrict
) dst
;
2672 __gen_field(values
->CommandType
, 29, 31) |
2673 __gen_field(values
->CommandSubType
, 27, 28) |
2674 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2675 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2676 __gen_field(values
->DwordLength
, 0, 7) |
2680 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
2681 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
2682 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
2683 __gen_field(values
->LineStipplePattern
, 0, 15) |
2687 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
2688 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
2693 #define GEN75_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
2694 #define GEN75_3DSTATE_MONOFILTER_SIZE_header \
2696 .CommandSubType = 3, \
2697 ._3DCommandOpcode = 1, \
2698 ._3DCommandSubOpcode = 17, \
2701 #define GEN75_3DSTATE_MONOFILTER_SIZE_length 0x00000002
2703 struct GEN75_3DSTATE_MONOFILTER_SIZE
{
2704 uint32_t CommandType
;
2705 uint32_t CommandSubType
;
2706 uint32_t _3DCommandOpcode
;
2707 uint32_t _3DCommandSubOpcode
;
2708 uint32_t DwordLength
;
2709 uint32_t MonochromeFilterWidth
;
2710 uint32_t MonochromeFilterHeight
;
2714 GEN75_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
2715 const struct GEN75_3DSTATE_MONOFILTER_SIZE
* restrict values
)
2717 uint32_t *dw
= (uint32_t * restrict
) dst
;
2720 __gen_field(values
->CommandType
, 29, 31) |
2721 __gen_field(values
->CommandSubType
, 27, 28) |
2722 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2723 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2724 __gen_field(values
->DwordLength
, 0, 7) |
2728 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
2729 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
2734 #define GEN75_3DSTATE_MULTISAMPLE_length_bias 0x00000002
2735 #define GEN75_3DSTATE_MULTISAMPLE_header \
2737 .CommandSubType = 3, \
2738 ._3DCommandOpcode = 1, \
2739 ._3DCommandSubOpcode = 13, \
2742 #define GEN75_3DSTATE_MULTISAMPLE_length 0x00000004
2744 struct GEN75_3DSTATE_MULTISAMPLE
{
2745 uint32_t CommandType
;
2746 uint32_t CommandSubType
;
2747 uint32_t _3DCommandOpcode
;
2748 uint32_t _3DCommandSubOpcode
;
2749 uint32_t DwordLength
;
2750 bool MultiSampleEnable
;
2751 #define PIXLOC_CENTER 0
2752 #define PIXLOC_UL_CORNER 1
2753 uint32_t PixelLocation
;
2754 #define NUMSAMPLES_1 0
2755 #define NUMSAMPLES_4 2
2756 #define NUMSAMPLES_8 3
2757 uint32_t NumberofMultisamples
;
2758 float Sample3XOffset
;
2759 float Sample3YOffset
;
2760 float Sample2XOffset
;
2761 float Sample2YOffset
;
2762 float Sample1XOffset
;
2763 float Sample1YOffset
;
2764 float Sample0XOffset
;
2765 float Sample0YOffset
;
2766 float Sample7XOffset
;
2767 float Sample7YOffset
;
2768 float Sample6XOffset
;
2769 float Sample6YOffset
;
2770 float Sample5XOffset
;
2771 float Sample5YOffset
;
2772 float Sample4XOffset
;
2773 float Sample4YOffset
;
2777 GEN75_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2778 const struct GEN75_3DSTATE_MULTISAMPLE
* restrict values
)
2780 uint32_t *dw
= (uint32_t * restrict
) dst
;
2783 __gen_field(values
->CommandType
, 29, 31) |
2784 __gen_field(values
->CommandSubType
, 27, 28) |
2785 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2786 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2787 __gen_field(values
->DwordLength
, 0, 7) |
2791 __gen_field(values
->MultiSampleEnable
, 5, 5) |
2792 __gen_field(values
->PixelLocation
, 4, 4) |
2793 __gen_field(values
->NumberofMultisamples
, 1, 3) |
2797 __gen_field(values
->Sample3XOffset
* (1 << 4), 28, 31) |
2798 __gen_field(values
->Sample3YOffset
* (1 << 4), 24, 27) |
2799 __gen_field(values
->Sample2XOffset
* (1 << 4), 20, 23) |
2800 __gen_field(values
->Sample2YOffset
* (1 << 4), 16, 19) |
2801 __gen_field(values
->Sample1XOffset
* (1 << 4), 12, 15) |
2802 __gen_field(values
->Sample1YOffset
* (1 << 4), 8, 11) |
2803 __gen_field(values
->Sample0XOffset
* (1 << 4), 4, 7) |
2804 __gen_field(values
->Sample0YOffset
* (1 << 4), 0, 3) |
2808 __gen_field(values
->Sample7XOffset
* (1 << 4), 28, 31) |
2809 __gen_field(values
->Sample7YOffset
* (1 << 4), 24, 27) |
2810 __gen_field(values
->Sample6XOffset
* (1 << 4), 20, 23) |
2811 __gen_field(values
->Sample6YOffset
* (1 << 4), 16, 19) |
2812 __gen_field(values
->Sample5XOffset
* (1 << 4), 12, 15) |
2813 __gen_field(values
->Sample5YOffset
* (1 << 4), 8, 11) |
2814 __gen_field(values
->Sample4XOffset
* (1 << 4), 4, 7) |
2815 __gen_field(values
->Sample4YOffset
* (1 << 4), 0, 3) |
2820 #define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
2821 #define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_header\
2823 .CommandSubType = 3, \
2824 ._3DCommandOpcode = 1, \
2825 ._3DCommandSubOpcode = 6, \
2828 #define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
2830 struct GEN75_3DSTATE_POLY_STIPPLE_OFFSET
{
2831 uint32_t CommandType
;
2832 uint32_t CommandSubType
;
2833 uint32_t _3DCommandOpcode
;
2834 uint32_t _3DCommandSubOpcode
;
2835 uint32_t DwordLength
;
2836 uint32_t PolygonStippleXOffset
;
2837 uint32_t PolygonStippleYOffset
;
2841 GEN75_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
2842 const struct GEN75_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
2844 uint32_t *dw
= (uint32_t * restrict
) dst
;
2847 __gen_field(values
->CommandType
, 29, 31) |
2848 __gen_field(values
->CommandSubType
, 27, 28) |
2849 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2850 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2851 __gen_field(values
->DwordLength
, 0, 7) |
2855 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
2856 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
2861 #define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
2862 #define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_header\
2864 .CommandSubType = 3, \
2865 ._3DCommandOpcode = 1, \
2866 ._3DCommandSubOpcode = 7, \
2869 #define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
2871 struct GEN75_3DSTATE_POLY_STIPPLE_PATTERN
{
2872 uint32_t CommandType
;
2873 uint32_t CommandSubType
;
2874 uint32_t _3DCommandOpcode
;
2875 uint32_t _3DCommandSubOpcode
;
2876 uint32_t DwordLength
;
2877 uint32_t PatternRow
[32];
2881 GEN75_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
2882 const struct GEN75_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
2884 uint32_t *dw
= (uint32_t * restrict
) dst
;
2887 __gen_field(values
->CommandType
, 29, 31) |
2888 __gen_field(values
->CommandSubType
, 27, 28) |
2889 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2890 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2891 __gen_field(values
->DwordLength
, 0, 7) |
2894 for (uint32_t i
= 0, j
= 1; i
< 32; i
+= 1, j
++) {
2896 __gen_field(values
->PatternRow
[i
+ 0], 0, 31) |
2902 #define GEN75_3DSTATE_PS_length_bias 0x00000002
2903 #define GEN75_3DSTATE_PS_header \
2905 .CommandSubType = 3, \
2906 ._3DCommandOpcode = 0, \
2907 ._3DCommandSubOpcode = 32, \
2910 #define GEN75_3DSTATE_PS_length 0x00000008
2912 struct GEN75_3DSTATE_PS
{
2913 uint32_t CommandType
;
2914 uint32_t CommandSubType
;
2915 uint32_t _3DCommandOpcode
;
2916 uint32_t _3DCommandSubOpcode
;
2917 uint32_t DwordLength
;
2918 uint32_t KernelStartPointer0
;
2921 uint32_t SingleProgramFlowSPF
;
2924 uint32_t VectorMaskEnableVME
;
2925 uint32_t SamplerCount
;
2928 uint32_t DenormalMode
;
2929 uint32_t BindingTableEntryCount
;
2932 uint32_t ThreadPriority
;
2935 uint32_t FloatingPointMode
;
2940 uint32_t RoundingMode
;
2941 bool IllegalOpcodeExceptionEnable
;
2942 bool MaskStackExceptionEnable
;
2943 bool SoftwareExceptionEnable
;
2944 uint32_t ScratchSpaceBasePointer
;
2945 uint32_t PerThreadScratchSpace
;
2946 uint32_t MaximumNumberofThreads
;
2947 uint32_t SampleMask
;
2948 bool PushConstantEnable
;
2949 bool AttributeEnable
;
2950 bool oMaskPresenttoRenderTarget
;
2951 bool RenderTargetFastClearEnable
;
2952 bool DualSourceBlendEnable
;
2953 bool RenderTargetResolveEnable
;
2955 #define POSOFFSET_NONE 0
2956 #define POSOFFSET_CENTROID 2
2957 #define POSOFFSET_SAMPLE 3
2958 uint32_t PositionXYOffsetSelect
;
2959 bool _32PixelDispatchEnable
;
2960 bool _16PixelDispatchEnable
;
2961 bool _8PixelDispatchEnable
;
2962 uint32_t DispatchGRFStartRegisterforConstantSetupData0
;
2963 uint32_t DispatchGRFStartRegisterforConstantSetupData1
;
2964 uint32_t DispatchGRFStartRegisterforConstantSetupData2
;
2965 uint32_t KernelStartPointer1
;
2966 uint32_t KernelStartPointer2
;
2970 GEN75_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2971 const struct GEN75_3DSTATE_PS
* restrict values
)
2973 uint32_t *dw
= (uint32_t * restrict
) dst
;
2976 __gen_field(values
->CommandType
, 29, 31) |
2977 __gen_field(values
->CommandSubType
, 27, 28) |
2978 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2979 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2980 __gen_field(values
->DwordLength
, 0, 7) |
2984 __gen_offset(values
->KernelStartPointer0
, 6, 31) |
2988 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
2989 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
2990 __gen_field(values
->SamplerCount
, 27, 29) |
2991 __gen_field(values
->DenormalMode
, 26, 26) |
2992 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2993 __gen_field(values
->ThreadPriority
, 17, 17) |
2994 __gen_field(values
->FloatingPointMode
, 16, 16) |
2995 __gen_field(values
->RoundingMode
, 14, 15) |
2996 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2997 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2998 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3002 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
3003 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3007 __gen_field(values
->MaximumNumberofThreads
, 23, 31) |
3008 __gen_field(values
->SampleMask
, 12, 19) |
3009 __gen_field(values
->PushConstantEnable
, 11, 11) |
3010 __gen_field(values
->AttributeEnable
, 10, 10) |
3011 __gen_field(values
->oMaskPresenttoRenderTarget
, 9, 9) |
3012 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
3013 __gen_field(values
->DualSourceBlendEnable
, 7, 7) |
3014 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
3015 __gen_field(values
->PSAccessesUAV
, 5, 5) |
3016 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
3017 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
3018 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
3019 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
3023 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData0
, 16, 22) |
3024 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData1
, 8, 14) |
3025 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData2
, 0, 6) |
3029 __gen_offset(values
->KernelStartPointer1
, 6, 31) |
3033 __gen_offset(values
->KernelStartPointer2
, 6, 31) |
3038 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
3039 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
3041 .CommandSubType = 3, \
3042 ._3DCommandOpcode = 1, \
3043 ._3DCommandSubOpcode = 20, \
3046 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
3048 struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
3049 uint32_t CommandType
;
3050 uint32_t CommandSubType
;
3051 uint32_t _3DCommandOpcode
;
3052 uint32_t _3DCommandSubOpcode
;
3053 uint32_t DwordLength
;
3054 uint32_t ConstantBufferOffset
;
3055 uint32_t ConstantBufferSize
;
3059 GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3060 const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
3062 uint32_t *dw
= (uint32_t * restrict
) dst
;
3065 __gen_field(values
->CommandType
, 29, 31) |
3066 __gen_field(values
->CommandSubType
, 27, 28) |
3067 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3068 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3069 __gen_field(values
->DwordLength
, 0, 7) |
3073 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3074 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3079 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
3080 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
3082 .CommandSubType = 3, \
3083 ._3DCommandOpcode = 1, \
3084 ._3DCommandSubOpcode = 21, \
3087 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
3089 struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
3090 uint32_t CommandType
;
3091 uint32_t CommandSubType
;
3092 uint32_t _3DCommandOpcode
;
3093 uint32_t _3DCommandSubOpcode
;
3094 uint32_t DwordLength
;
3095 uint32_t ConstantBufferOffset
;
3096 uint32_t ConstantBufferSize
;
3100 GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3101 const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
3103 uint32_t *dw
= (uint32_t * restrict
) dst
;
3106 __gen_field(values
->CommandType
, 29, 31) |
3107 __gen_field(values
->CommandSubType
, 27, 28) |
3108 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3109 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3110 __gen_field(values
->DwordLength
, 0, 7) |
3114 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3115 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3120 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
3121 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
3123 .CommandSubType = 3, \
3124 ._3DCommandOpcode = 1, \
3125 ._3DCommandSubOpcode = 19, \
3128 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
3130 struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
3131 uint32_t CommandType
;
3132 uint32_t CommandSubType
;
3133 uint32_t _3DCommandOpcode
;
3134 uint32_t _3DCommandSubOpcode
;
3135 uint32_t DwordLength
;
3136 uint32_t ConstantBufferOffset
;
3137 uint32_t ConstantBufferSize
;
3141 GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3142 const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
3144 uint32_t *dw
= (uint32_t * restrict
) dst
;
3147 __gen_field(values
->CommandType
, 29, 31) |
3148 __gen_field(values
->CommandSubType
, 27, 28) |
3149 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3150 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3151 __gen_field(values
->DwordLength
, 0, 7) |
3155 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3156 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3161 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
3162 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
3164 .CommandSubType = 3, \
3165 ._3DCommandOpcode = 1, \
3166 ._3DCommandSubOpcode = 22, \
3169 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
3171 struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
3172 uint32_t CommandType
;
3173 uint32_t CommandSubType
;
3174 uint32_t _3DCommandOpcode
;
3175 uint32_t _3DCommandSubOpcode
;
3176 uint32_t DwordLength
;
3177 uint32_t ConstantBufferOffset
;
3178 uint32_t ConstantBufferSize
;
3182 GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3183 const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
3185 uint32_t *dw
= (uint32_t * restrict
) dst
;
3188 __gen_field(values
->CommandType
, 29, 31) |
3189 __gen_field(values
->CommandSubType
, 27, 28) |
3190 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3191 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3192 __gen_field(values
->DwordLength
, 0, 7) |
3196 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3197 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3202 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
3203 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
3205 .CommandSubType = 3, \
3206 ._3DCommandOpcode = 1, \
3207 ._3DCommandSubOpcode = 18, \
3210 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
3212 struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
3213 uint32_t CommandType
;
3214 uint32_t CommandSubType
;
3215 uint32_t _3DCommandOpcode
;
3216 uint32_t _3DCommandSubOpcode
;
3217 uint32_t DwordLength
;
3218 uint32_t ConstantBufferOffset
;
3219 uint32_t ConstantBufferSize
;
3223 GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3224 const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
3226 uint32_t *dw
= (uint32_t * restrict
) dst
;
3229 __gen_field(values
->CommandType
, 29, 31) |
3230 __gen_field(values
->CommandSubType
, 27, 28) |
3231 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3232 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3233 __gen_field(values
->DwordLength
, 0, 7) |
3237 __gen_field(values
->ConstantBufferOffset
, 16, 20) |
3238 __gen_field(values
->ConstantBufferSize
, 0, 5) |
3243 #define GEN75_3DSTATE_RAST_MULTISAMPLE_length_bias 0x00000002
3244 #define GEN75_3DSTATE_RAST_MULTISAMPLE_header \
3246 .CommandSubType = 3, \
3247 ._3DCommandOpcode = 1, \
3248 ._3DCommandSubOpcode = 14, \
3251 #define GEN75_3DSTATE_RAST_MULTISAMPLE_length 0x00000006
3253 struct GEN75_3DSTATE_RAST_MULTISAMPLE
{
3254 uint32_t CommandType
;
3255 uint32_t CommandSubType
;
3256 uint32_t _3DCommandOpcode
;
3257 uint32_t _3DCommandSubOpcode
;
3258 uint32_t DwordLength
;
3259 #define NRM_NUMRASTSAMPLES_1 0
3260 #define NRM_NUMRASTSAMPLES_2 1
3261 #define NRM_NUMRASTSAMPLES_4 2
3262 #define NRM_NUMRASTSAMPLES_8 3
3263 #define NRM_NUMRASTSAMPLES_16 4
3264 uint32_t NumberofRasterizationMultisamples
;
3265 float Sample3XOffset
;
3266 float Sample3YOffset
;
3267 float Sample2XOffset
;
3268 float Sample2YOffset
;
3269 float Sample1XOffset
;
3270 float Sample1YOffset
;
3271 float Sample0XOffset
;
3272 float Sample0YOffset
;
3273 float Sample7XOffset
;
3274 float Sample7YOffset
;
3275 float Sample6XOffset
;
3276 float Sample6YOffset
;
3277 float Sample5XOffset
;
3278 float Sample5YOffset
;
3279 float Sample4XOffset
;
3280 float Sample4YOffset
;
3281 float Sample11XOffset
;
3282 float Sample11YOffset
;
3283 float Sample10XOffset
;
3284 float Sample10YOffset
;
3285 float Sample9XOffset
;
3286 float Sample9YOffset
;
3287 float Sample8XOffset
;
3288 float Sample8YOffset
;
3289 float Sample15XOffset
;
3290 float Sample15YOffset
;
3291 float Sample14XOffset
;
3292 float Sample14YOffset
;
3293 float Sample13XOffset
;
3294 float Sample13YOffset
;
3295 float Sample12XOffset
;
3296 float Sample12YOffset
;
3300 GEN75_3DSTATE_RAST_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
3301 const struct GEN75_3DSTATE_RAST_MULTISAMPLE
* restrict values
)
3303 uint32_t *dw
= (uint32_t * restrict
) dst
;
3306 __gen_field(values
->CommandType
, 29, 31) |
3307 __gen_field(values
->CommandSubType
, 27, 28) |
3308 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3309 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3310 __gen_field(values
->DwordLength
, 0, 7) |
3314 __gen_field(values
->NumberofRasterizationMultisamples
, 1, 3) |
3318 __gen_field(values
->Sample3XOffset
* (1 << 4), 28, 31) |
3319 __gen_field(values
->Sample3YOffset
* (1 << 4), 24, 27) |
3320 __gen_field(values
->Sample2XOffset
* (1 << 4), 20, 23) |
3321 __gen_field(values
->Sample2YOffset
* (1 << 4), 16, 19) |
3322 __gen_field(values
->Sample1XOffset
* (1 << 4), 12, 15) |
3323 __gen_field(values
->Sample1YOffset
* (1 << 4), 8, 11) |
3324 __gen_field(values
->Sample0XOffset
* (1 << 4), 4, 7) |
3325 __gen_field(values
->Sample0YOffset
* (1 << 4), 0, 3) |
3329 __gen_field(values
->Sample7XOffset
* (1 << 4), 28, 31) |
3330 __gen_field(values
->Sample7YOffset
* (1 << 4), 24, 27) |
3331 __gen_field(values
->Sample6XOffset
* (1 << 4), 20, 23) |
3332 __gen_field(values
->Sample6YOffset
* (1 << 4), 16, 19) |
3333 __gen_field(values
->Sample5XOffset
* (1 << 4), 12, 15) |
3334 __gen_field(values
->Sample5YOffset
* (1 << 4), 8, 11) |
3335 __gen_field(values
->Sample4XOffset
* (1 << 4), 4, 7) |
3336 __gen_field(values
->Sample4YOffset
* (1 << 4), 0, 3) |
3340 __gen_field(values
->Sample11XOffset
* (1 << 4), 28, 31) |
3341 __gen_field(values
->Sample11YOffset
* (1 << 4), 24, 27) |
3342 __gen_field(values
->Sample10XOffset
* (1 << 4), 20, 23) |
3343 __gen_field(values
->Sample10YOffset
* (1 << 4), 16, 19) |
3344 __gen_field(values
->Sample9XOffset
* (1 << 4), 12, 15) |
3345 __gen_field(values
->Sample9YOffset
* (1 << 4), 8, 11) |
3346 __gen_field(values
->Sample8XOffset
* (1 << 4), 4, 7) |
3347 __gen_field(values
->Sample8YOffset
* (1 << 4), 0, 3) |
3351 __gen_field(values
->Sample15XOffset
* (1 << 4), 28, 31) |
3352 __gen_field(values
->Sample15YOffset
* (1 << 4), 24, 27) |
3353 __gen_field(values
->Sample14XOffset
* (1 << 4), 20, 23) |
3354 __gen_field(values
->Sample14YOffset
* (1 << 4), 16, 19) |
3355 __gen_field(values
->Sample13XOffset
* (1 << 4), 12, 15) |
3356 __gen_field(values
->Sample13YOffset
* (1 << 4), 8, 11) |
3357 __gen_field(values
->Sample12XOffset
* (1 << 4), 4, 7) |
3358 __gen_field(values
->Sample12YOffset
* (1 << 4), 0, 3) |
3363 #define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
3364 #define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
3366 .CommandSubType = 3, \
3367 ._3DCommandOpcode = 1, \
3368 ._3DCommandSubOpcode = 2
3370 #define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000
3372 #define GEN75_PALETTE_ENTRY_length 0x00000001
3374 struct GEN75_PALETTE_ENTRY
{
3382 GEN75_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3383 const struct GEN75_PALETTE_ENTRY
* restrict values
)
3385 uint32_t *dw
= (uint32_t * restrict
) dst
;
3388 __gen_field(values
->Alpha
, 24, 31) |
3389 __gen_field(values
->Red
, 16, 23) |
3390 __gen_field(values
->Green
, 8, 15) |
3391 __gen_field(values
->Blue
, 0, 7) |
3396 struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0
{
3397 uint32_t CommandType
;
3398 uint32_t CommandSubType
;
3399 uint32_t _3DCommandOpcode
;
3400 uint32_t _3DCommandSubOpcode
;
3401 uint32_t DwordLength
;
3402 /* variable length fields follow */
3406 GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
3407 const struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0
* 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) |
3419 /* variable length fields follow */
3422 #define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
3423 #define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
3425 .CommandSubType = 3, \
3426 ._3DCommandOpcode = 1, \
3427 ._3DCommandSubOpcode = 12
3429 #define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000
3431 struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1
{
3432 uint32_t CommandType
;
3433 uint32_t CommandSubType
;
3434 uint32_t _3DCommandOpcode
;
3435 uint32_t _3DCommandSubOpcode
;
3436 uint32_t DwordLength
;
3437 /* variable length fields follow */
3441 GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
3442 const struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
3444 uint32_t *dw
= (uint32_t * restrict
) dst
;
3447 __gen_field(values
->CommandType
, 29, 31) |
3448 __gen_field(values
->CommandSubType
, 27, 28) |
3449 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3450 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3451 __gen_field(values
->DwordLength
, 0, 7) |
3454 /* variable length fields follow */
3457 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
3458 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
3460 .CommandSubType = 3, \
3461 ._3DCommandOpcode = 0, \
3462 ._3DCommandSubOpcode = 45, \
3465 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
3467 struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
3468 uint32_t CommandType
;
3469 uint32_t CommandSubType
;
3470 uint32_t _3DCommandOpcode
;
3471 uint32_t _3DCommandSubOpcode
;
3472 uint32_t DwordLength
;
3473 uint32_t PointertoDSSamplerState
;
3477 GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3478 const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
3480 uint32_t *dw
= (uint32_t * restrict
) dst
;
3483 __gen_field(values
->CommandType
, 29, 31) |
3484 __gen_field(values
->CommandSubType
, 27, 28) |
3485 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3486 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3487 __gen_field(values
->DwordLength
, 0, 7) |
3491 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
3496 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
3497 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
3499 .CommandSubType = 3, \
3500 ._3DCommandOpcode = 0, \
3501 ._3DCommandSubOpcode = 46, \
3504 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
3506 struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
3507 uint32_t CommandType
;
3508 uint32_t CommandSubType
;
3509 uint32_t _3DCommandOpcode
;
3510 uint32_t _3DCommandSubOpcode
;
3511 uint32_t DwordLength
;
3512 uint32_t PointertoGSSamplerState
;
3516 GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3517 const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
3519 uint32_t *dw
= (uint32_t * restrict
) dst
;
3522 __gen_field(values
->CommandType
, 29, 31) |
3523 __gen_field(values
->CommandSubType
, 27, 28) |
3524 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3525 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3526 __gen_field(values
->DwordLength
, 0, 7) |
3530 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
3535 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
3536 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
3538 .CommandSubType = 3, \
3539 ._3DCommandOpcode = 0, \
3540 ._3DCommandSubOpcode = 44, \
3543 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
3545 struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
3546 uint32_t CommandType
;
3547 uint32_t CommandSubType
;
3548 uint32_t _3DCommandOpcode
;
3549 uint32_t _3DCommandSubOpcode
;
3550 uint32_t DwordLength
;
3551 uint32_t PointertoHSSamplerState
;
3555 GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3556 const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
3558 uint32_t *dw
= (uint32_t * restrict
) dst
;
3561 __gen_field(values
->CommandType
, 29, 31) |
3562 __gen_field(values
->CommandSubType
, 27, 28) |
3563 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3564 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3565 __gen_field(values
->DwordLength
, 0, 7) |
3569 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
3574 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
3575 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
3577 .CommandSubType = 3, \
3578 ._3DCommandOpcode = 0, \
3579 ._3DCommandSubOpcode = 47, \
3582 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
3584 struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
3585 uint32_t CommandType
;
3586 uint32_t CommandSubType
;
3587 uint32_t _3DCommandOpcode
;
3588 uint32_t _3DCommandSubOpcode
;
3589 uint32_t DwordLength
;
3590 uint32_t PointertoPSSamplerState
;
3594 GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
3595 const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
3597 uint32_t *dw
= (uint32_t * restrict
) dst
;
3600 __gen_field(values
->CommandType
, 29, 31) |
3601 __gen_field(values
->CommandSubType
, 27, 28) |
3602 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3603 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3604 __gen_field(values
->DwordLength
, 0, 7) |
3608 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
3613 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
3614 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
3616 .CommandSubType = 3, \
3617 ._3DCommandOpcode = 0, \
3618 ._3DCommandSubOpcode = 43, \
3621 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
3623 struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
3624 uint32_t CommandType
;
3625 uint32_t CommandSubType
;
3626 uint32_t _3DCommandOpcode
;
3627 uint32_t _3DCommandSubOpcode
;
3628 uint32_t DwordLength
;
3629 uint32_t PointertoVSSamplerState
;
3633 GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3634 const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
3636 uint32_t *dw
= (uint32_t * restrict
) dst
;
3639 __gen_field(values
->CommandType
, 29, 31) |
3640 __gen_field(values
->CommandSubType
, 27, 28) |
3641 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3642 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3643 __gen_field(values
->DwordLength
, 0, 7) |
3647 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
3652 #define GEN75_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
3653 #define GEN75_3DSTATE_SAMPLE_MASK_header \
3655 .CommandSubType = 3, \
3656 ._3DCommandOpcode = 0, \
3657 ._3DCommandSubOpcode = 24, \
3660 #define GEN75_3DSTATE_SAMPLE_MASK_length 0x00000002
3662 struct GEN75_3DSTATE_SAMPLE_MASK
{
3663 uint32_t CommandType
;
3664 uint32_t CommandSubType
;
3665 uint32_t _3DCommandOpcode
;
3666 uint32_t _3DCommandSubOpcode
;
3667 uint32_t DwordLength
;
3668 uint32_t SampleMask
;
3672 GEN75_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
3673 const struct GEN75_3DSTATE_SAMPLE_MASK
* restrict values
)
3675 uint32_t *dw
= (uint32_t * restrict
) dst
;
3678 __gen_field(values
->CommandType
, 29, 31) |
3679 __gen_field(values
->CommandSubType
, 27, 28) |
3680 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3681 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3682 __gen_field(values
->DwordLength
, 0, 7) |
3686 __gen_field(values
->SampleMask
, 0, 7) |
3691 #define GEN75_3DSTATE_SBE_length_bias 0x00000002
3692 #define GEN75_3DSTATE_SBE_header \
3694 .CommandSubType = 3, \
3695 ._3DCommandOpcode = 0, \
3696 ._3DCommandSubOpcode = 31, \
3699 #define GEN75_3DSTATE_SBE_length 0x0000000e
3701 struct GEN75_3DSTATE_SBE
{
3702 uint32_t CommandType
;
3703 uint32_t CommandSubType
;
3704 uint32_t _3DCommandOpcode
;
3705 uint32_t _3DCommandSubOpcode
;
3706 uint32_t DwordLength
;
3707 uint32_t AttributeSwizzleControlMode
;
3708 uint32_t NumberofSFOutputAttributes
;
3709 bool AttributeSwizzleEnable
;
3712 uint32_t PointSpriteTextureCoordinateOrigin
;
3713 uint32_t VertexURBEntryReadLength
;
3714 uint32_t VertexURBEntryReadOffset
;
3715 bool Attribute2n1ComponentOverrideW
;
3716 bool Attribute2n1ComponentOverrideZ
;
3717 bool Attribute2n1ComponentOverrideY
;
3718 bool Attribute2n1ComponentOverrideX
;
3719 #define CONST_0000 0
3720 #define CONST_0001_FLOAT 1
3721 #define CONST_1111_FLOAT 2
3723 uint32_t Attribute2n1ConstantSource
;
3725 #define INPUTATTR_FACING 1
3726 #define INPUTATTR_W 2
3727 #define INPUTATTR_FACING_W 3
3728 uint32_t Attribute2n1SwizzleSelect
;
3729 uint32_t Attribute2n1SourceAttribute
;
3730 bool Attribute2nComponentOverrideW
;
3731 bool Attribute2nComponentOverrideZ
;
3732 bool Attribute2nComponentOverrideY
;
3733 bool Attribute2nComponentOverrideX
;
3734 #define CONST_0000 0
3735 #define CONST_0001_FLOAT 1
3736 #define CONST_1111_FLOAT 2
3738 uint32_t Attribute2nConstantSource
;
3740 #define INPUTATTR_FACING 1
3741 #define INPUTATTR_W 2
3742 #define INPUTATTR_FACING_W 3
3743 uint32_t Attribute2nSwizzleSelect
;
3744 uint32_t Attribute2nSourceAttribute
;
3745 uint32_t PointSpriteTextureCoordinateEnable
;
3746 uint32_t ConstantInterpolationEnable310
;
3747 uint32_t Attribute7WrapShortestEnables
;
3748 uint32_t Attribute6WrapShortestEnables
;
3749 uint32_t Attribute5WrapShortestEnables
;
3750 uint32_t Attribute4WrapShortestEnables
;
3751 uint32_t Attribute3WrapShortestEnables
;
3752 uint32_t Attribute2WrapShortestEnables
;
3753 uint32_t Attribute1WrapShortestEnables
;
3754 uint32_t Attribute0WrapShortestEnables
;
3755 uint32_t Attribute15WrapShortestEnables
;
3756 uint32_t Attribute14WrapShortestEnables
;
3757 uint32_t Attribute13WrapShortestEnables
;
3758 uint32_t Attribute12WrapShortestEnables
;
3759 uint32_t Attribute11WrapShortestEnables
;
3760 uint32_t Attribute10WrapShortestEnables
;
3761 uint32_t Attribute9WrapShortestEnables
;
3762 uint32_t Attribute8WrapShortestEnables
;
3766 GEN75_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
3767 const struct GEN75_3DSTATE_SBE
* restrict values
)
3769 uint32_t *dw
= (uint32_t * restrict
) dst
;
3772 __gen_field(values
->CommandType
, 29, 31) |
3773 __gen_field(values
->CommandSubType
, 27, 28) |
3774 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3775 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3776 __gen_field(values
->DwordLength
, 0, 7) |
3780 __gen_field(values
->AttributeSwizzleControlMode
, 28, 28) |
3781 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
3782 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
3783 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
3784 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
3785 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
3789 __gen_field(values
->Attribute2n1ComponentOverrideW
, 31, 31) |
3790 __gen_field(values
->Attribute2n1ComponentOverrideZ
, 30, 30) |
3791 __gen_field(values
->Attribute2n1ComponentOverrideY
, 29, 29) |
3792 __gen_field(values
->Attribute2n1ComponentOverrideX
, 28, 28) |
3793 __gen_field(values
->Attribute2n1ConstantSource
, 25, 26) |
3794 __gen_field(values
->Attribute2n1SwizzleSelect
, 22, 23) |
3795 __gen_field(values
->Attribute2n1SourceAttribute
, 16, 20) |
3796 __gen_field(values
->Attribute2nComponentOverrideW
, 15, 15) |
3797 __gen_field(values
->Attribute2nComponentOverrideZ
, 14, 14) |
3798 __gen_field(values
->Attribute2nComponentOverrideY
, 13, 13) |
3799 __gen_field(values
->Attribute2nComponentOverrideX
, 12, 12) |
3800 __gen_field(values
->Attribute2nConstantSource
, 9, 10) |
3801 __gen_field(values
->Attribute2nSwizzleSelect
, 6, 7) |
3802 __gen_field(values
->Attribute2nSourceAttribute
, 0, 4) |
3806 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
3810 __gen_field(values
->ConstantInterpolationEnable310
, 0, 31) |
3814 __gen_field(values
->Attribute7WrapShortestEnables
, 28, 31) |
3815 __gen_field(values
->Attribute6WrapShortestEnables
, 24, 27) |
3816 __gen_field(values
->Attribute5WrapShortestEnables
, 20, 23) |
3817 __gen_field(values
->Attribute4WrapShortestEnables
, 16, 19) |
3818 __gen_field(values
->Attribute3WrapShortestEnables
, 12, 15) |
3819 __gen_field(values
->Attribute2WrapShortestEnables
, 8, 11) |
3820 __gen_field(values
->Attribute1WrapShortestEnables
, 4, 7) |
3821 __gen_field(values
->Attribute0WrapShortestEnables
, 0, 3) |
3825 __gen_field(values
->Attribute15WrapShortestEnables
, 28, 31) |
3826 __gen_field(values
->Attribute14WrapShortestEnables
, 24, 27) |
3827 __gen_field(values
->Attribute13WrapShortestEnables
, 20, 23) |
3828 __gen_field(values
->Attribute12WrapShortestEnables
, 16, 19) |
3829 __gen_field(values
->Attribute11WrapShortestEnables
, 12, 15) |
3830 __gen_field(values
->Attribute10WrapShortestEnables
, 8, 11) |
3831 __gen_field(values
->Attribute9WrapShortestEnables
, 4, 7) |
3832 __gen_field(values
->Attribute8WrapShortestEnables
, 0, 3) |
3837 #define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
3838 #define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_header\
3840 .CommandSubType = 3, \
3841 ._3DCommandOpcode = 0, \
3842 ._3DCommandSubOpcode = 15, \
3845 #define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
3847 struct GEN75_3DSTATE_SCISSOR_STATE_POINTERS
{
3848 uint32_t CommandType
;
3849 uint32_t CommandSubType
;
3850 uint32_t _3DCommandOpcode
;
3851 uint32_t _3DCommandSubOpcode
;
3852 uint32_t DwordLength
;
3853 uint32_t ScissorRectPointer
;
3857 GEN75_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
3858 const struct GEN75_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
3860 uint32_t *dw
= (uint32_t * restrict
) dst
;
3863 __gen_field(values
->CommandType
, 29, 31) |
3864 __gen_field(values
->CommandSubType
, 27, 28) |
3865 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3866 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3867 __gen_field(values
->DwordLength
, 0, 7) |
3871 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
3876 #define GEN75_3DSTATE_SF_length_bias 0x00000002
3877 #define GEN75_3DSTATE_SF_header \
3879 .CommandSubType = 3, \
3880 ._3DCommandOpcode = 0, \
3881 ._3DCommandSubOpcode = 19, \
3884 #define GEN75_3DSTATE_SF_length 0x00000007
3886 struct GEN75_3DSTATE_SF
{
3887 uint32_t CommandType
;
3888 uint32_t CommandSubType
;
3889 uint32_t _3DCommandOpcode
;
3890 uint32_t _3DCommandSubOpcode
;
3891 uint32_t DwordLength
;
3892 #define D32_FLOAT_S8X24_UINT 0
3894 #define D24_UNORM_S8_UINT 2
3895 #define D24_UNORM_X8_UINT 3
3897 uint32_t DepthBufferSurfaceFormat
;
3898 bool LegacyGlobalDepthBiasEnable
;
3899 bool StatisticsEnable
;
3900 bool GlobalDepthOffsetEnableSolid
;
3901 bool GlobalDepthOffsetEnableWireframe
;
3902 bool GlobalDepthOffsetEnablePoint
;
3903 #define RASTER_SOLID 0
3904 #define RASTER_WIREFRAME 1
3905 #define RASTER_POINT 2
3906 uint32_t FrontFaceFillMode
;
3907 #define RASTER_SOLID 0
3908 #define RASTER_WIREFRAME 1
3909 #define RASTER_POINT 2
3910 uint32_t BackFaceFillMode
;
3911 bool ViewTransformEnable
;
3912 uint32_t FrontWinding
;
3913 bool AntiAliasingEnable
;
3914 #define CULLMODE_BOTH 0
3915 #define CULLMODE_NONE 1
3916 #define CULLMODE_FRONT 2
3917 #define CULLMODE_BACK 3
3920 uint32_t LineEndCapAntialiasingRegionWidth
;
3921 bool LineStippleEnable
;
3922 bool ScissorRectangleEnable
;
3923 bool RTIndependentRasterizationEnable
;
3924 uint32_t MultisampleRasterizationMode
;
3925 bool LastPixelEnable
;
3929 uint32_t TriangleStripListProvokingVertexSelect
;
3930 uint32_t LineStripListProvokingVertexSelect
;
3934 uint32_t TriangleFanProvokingVertexSelect
;
3935 #define AALINEDISTANCE_TRUE 1
3936 uint32_t AALineDistanceMode
;
3937 uint32_t VertexSubPixelPrecisionSelect
;
3938 uint32_t UsePointWidthState
;
3940 float GlobalDepthOffsetConstant
;
3941 float GlobalDepthOffsetScale
;
3942 float GlobalDepthOffsetClamp
;
3946 GEN75_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
3947 const struct GEN75_3DSTATE_SF
* restrict values
)
3949 uint32_t *dw
= (uint32_t * restrict
) dst
;
3952 __gen_field(values
->CommandType
, 29, 31) |
3953 __gen_field(values
->CommandSubType
, 27, 28) |
3954 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3955 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3956 __gen_field(values
->DwordLength
, 0, 7) |
3960 __gen_field(values
->DepthBufferSurfaceFormat
, 12, 14) |
3961 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
3962 __gen_field(values
->StatisticsEnable
, 10, 10) |
3963 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3964 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3965 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3966 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3967 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3968 __gen_field(values
->ViewTransformEnable
, 1, 1) |
3969 __gen_field(values
->FrontWinding
, 0, 0) |
3973 __gen_field(values
->AntiAliasingEnable
, 31, 31) |
3974 __gen_field(values
->CullMode
, 29, 30) |
3975 __gen_field(values
->LineWidth
* (1 << 7), 18, 27) |
3976 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
3977 __gen_field(values
->LineStippleEnable
, 14, 14) |
3978 __gen_field(values
->ScissorRectangleEnable
, 11, 11) |
3979 __gen_field(values
->RTIndependentRasterizationEnable
, 10, 10) |
3980 __gen_field(values
->MultisampleRasterizationMode
, 8, 9) |
3984 __gen_field(values
->LastPixelEnable
, 31, 31) |
3985 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
3986 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
3987 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
3988 __gen_field(values
->AALineDistanceMode
, 14, 14) |
3989 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
3990 __gen_field(values
->UsePointWidthState
, 11, 11) |
3991 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
3995 __gen_float(values
->GlobalDepthOffsetConstant
) |
3999 __gen_float(values
->GlobalDepthOffsetScale
) |
4003 __gen_float(values
->GlobalDepthOffsetClamp
) |
4008 #define GEN75_3DSTATE_SO_BUFFER_length_bias 0x00000002
4009 #define GEN75_3DSTATE_SO_BUFFER_header \
4011 .CommandSubType = 3, \
4012 ._3DCommandOpcode = 1, \
4013 ._3DCommandSubOpcode = 24, \
4016 #define GEN75_3DSTATE_SO_BUFFER_length 0x00000004
4018 struct GEN75_3DSTATE_SO_BUFFER
{
4019 uint32_t CommandType
;
4020 uint32_t CommandSubType
;
4021 uint32_t _3DCommandOpcode
;
4022 uint32_t _3DCommandSubOpcode
;
4023 uint32_t DwordLength
;
4024 uint32_t SOBufferIndex
;
4025 struct GEN75_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
4026 uint32_t SurfacePitch
;
4027 __gen_address_type SurfaceBaseAddress
;
4028 __gen_address_type SurfaceEndAddress
;
4032 GEN75_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4033 const struct GEN75_3DSTATE_SO_BUFFER
* 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) |
4045 uint32_t dw_SOBufferObjectControlState
;
4046 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
4048 __gen_field(values
->SOBufferIndex
, 29, 30) |
4049 __gen_field(dw_SOBufferObjectControlState
, 25, 28) |
4050 __gen_field(values
->SurfacePitch
, 0, 11) |
4057 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4063 __gen_combine_address(data
, &dw
[3], values
->SurfaceEndAddress
, dw3
);
4067 #define GEN75_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
4068 #define GEN75_3DSTATE_SO_DECL_LIST_header \
4070 .CommandSubType = 3, \
4071 ._3DCommandOpcode = 1, \
4072 ._3DCommandSubOpcode = 23
4074 #define GEN75_3DSTATE_SO_DECL_LIST_length 0x00000000
4076 #define GEN75_SO_DECL_ENTRY_length 0x00000002
4078 #define GEN75_SO_DECL_length 0x00000001
4080 struct GEN75_SO_DECL
{
4081 uint32_t OutputBufferSlot
;
4083 uint32_t RegisterIndex
;
4084 uint32_t ComponentMask
;
4088 GEN75_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
4089 const struct GEN75_SO_DECL
* restrict values
)
4091 uint32_t *dw
= (uint32_t * restrict
) dst
;
4094 __gen_field(values
->OutputBufferSlot
, 12, 13) |
4095 __gen_field(values
->HoleFlag
, 11, 11) |
4096 __gen_field(values
->RegisterIndex
, 4, 9) |
4097 __gen_field(values
->ComponentMask
, 0, 3) |
4102 struct GEN75_SO_DECL_ENTRY
{
4103 struct GEN75_SO_DECL Stream3Decl
;
4104 struct GEN75_SO_DECL Stream2Decl
;
4105 struct GEN75_SO_DECL Stream1Decl
;
4106 struct GEN75_SO_DECL Stream0Decl
;
4110 GEN75_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
4111 const struct GEN75_SO_DECL_ENTRY
* restrict values
)
4113 uint32_t *dw
= (uint32_t * restrict
) dst
;
4115 uint32_t dw_Stream3Decl
;
4116 GEN75_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
4117 uint32_t dw_Stream2Decl
;
4118 GEN75_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
4119 uint32_t dw_Stream1Decl
;
4120 GEN75_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
4121 uint32_t dw_Stream0Decl
;
4122 GEN75_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
4124 __gen_field(dw_Stream3Decl
, 48, 63) |
4125 __gen_field(dw_Stream2Decl
, 32, 47) |
4126 __gen_field(dw_Stream1Decl
, 16, 31) |
4127 __gen_field(dw_Stream0Decl
, 0, 15) |
4135 struct GEN75_3DSTATE_SO_DECL_LIST
{
4136 uint32_t CommandType
;
4137 uint32_t CommandSubType
;
4138 uint32_t _3DCommandOpcode
;
4139 uint32_t _3DCommandSubOpcode
;
4140 uint32_t DwordLength
;
4141 uint32_t StreamtoBufferSelects3
;
4142 uint32_t StreamtoBufferSelects2
;
4143 uint32_t StreamtoBufferSelects1
;
4144 uint32_t StreamtoBufferSelects0
;
4145 uint32_t NumEntries3
;
4146 uint32_t NumEntries2
;
4147 uint32_t NumEntries1
;
4148 uint32_t NumEntries0
;
4149 /* variable length fields follow */
4153 GEN75_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
4154 const struct GEN75_3DSTATE_SO_DECL_LIST
* restrict values
)
4156 uint32_t *dw
= (uint32_t * restrict
) dst
;
4159 __gen_field(values
->CommandType
, 29, 31) |
4160 __gen_field(values
->CommandSubType
, 27, 28) |
4161 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4162 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4163 __gen_field(values
->DwordLength
, 0, 8) |
4167 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
4168 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
4169 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
4170 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
4174 __gen_field(values
->NumEntries3
, 24, 31) |
4175 __gen_field(values
->NumEntries2
, 16, 23) |
4176 __gen_field(values
->NumEntries1
, 8, 15) |
4177 __gen_field(values
->NumEntries0
, 0, 7) |
4180 /* variable length fields follow */
4183 #define GEN75_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
4184 #define GEN75_3DSTATE_STENCIL_BUFFER_header \
4186 .CommandSubType = 3, \
4187 ._3DCommandOpcode = 0, \
4188 ._3DCommandSubOpcode = 6, \
4191 #define GEN75_3DSTATE_STENCIL_BUFFER_length 0x00000003
4193 struct GEN75_3DSTATE_STENCIL_BUFFER
{
4194 uint32_t CommandType
;
4195 uint32_t CommandSubType
;
4196 uint32_t _3DCommandOpcode
;
4197 uint32_t _3DCommandSubOpcode
;
4198 uint32_t DwordLength
;
4199 uint32_t StencilBufferEnable
;
4200 struct GEN75_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
4201 uint32_t SurfacePitch
;
4202 __gen_address_type SurfaceBaseAddress
;
4206 GEN75_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
4207 const struct GEN75_3DSTATE_STENCIL_BUFFER
* restrict values
)
4209 uint32_t *dw
= (uint32_t * restrict
) dst
;
4212 __gen_field(values
->CommandType
, 29, 31) |
4213 __gen_field(values
->CommandSubType
, 27, 28) |
4214 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4215 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4216 __gen_field(values
->DwordLength
, 0, 7) |
4219 uint32_t dw_StencilBufferObjectControlState
;
4220 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
4222 __gen_field(values
->StencilBufferEnable
, 31, 31) |
4223 __gen_field(dw_StencilBufferObjectControlState
, 25, 28) |
4224 __gen_field(values
->SurfacePitch
, 0, 16) |
4231 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
4235 #define GEN75_3DSTATE_STREAMOUT_length_bias 0x00000002
4236 #define GEN75_3DSTATE_STREAMOUT_header \
4238 .CommandSubType = 3, \
4239 ._3DCommandOpcode = 0, \
4240 ._3DCommandSubOpcode = 30, \
4243 #define GEN75_3DSTATE_STREAMOUT_length 0x00000003
4245 struct GEN75_3DSTATE_STREAMOUT
{
4246 uint32_t CommandType
;
4247 uint32_t CommandSubType
;
4248 uint32_t _3DCommandOpcode
;
4249 uint32_t _3DCommandSubOpcode
;
4250 uint32_t DwordLength
;
4251 uint32_t SOFunctionEnable
;
4252 uint32_t RenderingDisable
;
4253 uint32_t RenderStreamSelect
;
4256 uint32_t ReorderMode
;
4257 bool SOStatisticsEnable
;
4258 uint32_t SOBufferEnable3
;
4259 uint32_t SOBufferEnable2
;
4260 uint32_t SOBufferEnable1
;
4261 uint32_t SOBufferEnable0
;
4262 uint32_t Stream3VertexReadOffset
;
4263 uint32_t Stream3VertexReadLength
;
4264 uint32_t Stream2VertexReadOffset
;
4265 uint32_t Stream2VertexReadLength
;
4266 uint32_t Stream1VertexReadOffset
;
4267 uint32_t Stream1VertexReadLength
;
4268 uint32_t Stream0VertexReadOffset
;
4269 uint32_t Stream0VertexReadLength
;
4273 GEN75_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
4274 const struct GEN75_3DSTATE_STREAMOUT
* restrict values
)
4276 uint32_t *dw
= (uint32_t * restrict
) dst
;
4279 __gen_field(values
->CommandType
, 29, 31) |
4280 __gen_field(values
->CommandSubType
, 27, 28) |
4281 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4282 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4283 __gen_field(values
->DwordLength
, 0, 7) |
4287 __gen_field(values
->SOFunctionEnable
, 31, 31) |
4288 __gen_field(values
->RenderingDisable
, 30, 30) |
4289 __gen_field(values
->RenderStreamSelect
, 27, 28) |
4290 __gen_field(values
->ReorderMode
, 26, 26) |
4291 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
4292 __gen_field(values
->SOBufferEnable3
, 11, 11) |
4293 __gen_field(values
->SOBufferEnable2
, 10, 10) |
4294 __gen_field(values
->SOBufferEnable1
, 9, 9) |
4295 __gen_field(values
->SOBufferEnable0
, 8, 8) |
4299 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
4300 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
4301 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
4302 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
4303 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
4304 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
4305 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
4306 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
4311 #define GEN75_3DSTATE_TE_length_bias 0x00000002
4312 #define GEN75_3DSTATE_TE_header \
4314 .CommandSubType = 3, \
4315 ._3DCommandOpcode = 0, \
4316 ._3DCommandSubOpcode = 28, \
4319 #define GEN75_3DSTATE_TE_length 0x00000004
4321 struct GEN75_3DSTATE_TE
{
4322 uint32_t CommandType
;
4323 uint32_t CommandSubType
;
4324 uint32_t _3DCommandOpcode
;
4325 uint32_t _3DCommandSubOpcode
;
4326 uint32_t DwordLength
;
4328 #define ODD_FRACTIONAL 1
4329 #define EVEN_FRACTIONAL 2
4330 uint32_t Partitioning
;
4332 #define OUTPUT_LINE 1
4333 #define OUTPUT_TRI_CW 2
4334 #define OUTPUT_TRI_CCW 3
4335 uint32_t OutputTopology
;
4344 float MaximumTessellationFactorOdd
;
4345 float MaximumTessellationFactorNotOdd
;
4349 GEN75_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
4350 const struct GEN75_3DSTATE_TE
* restrict values
)
4352 uint32_t *dw
= (uint32_t * restrict
) dst
;
4355 __gen_field(values
->CommandType
, 29, 31) |
4356 __gen_field(values
->CommandSubType
, 27, 28) |
4357 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4358 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4359 __gen_field(values
->DwordLength
, 0, 7) |
4363 __gen_field(values
->Partitioning
, 12, 13) |
4364 __gen_field(values
->OutputTopology
, 8, 9) |
4365 __gen_field(values
->TEDomain
, 4, 5) |
4366 __gen_field(values
->TEMode
, 1, 2) |
4367 __gen_field(values
->TEEnable
, 0, 0) |
4371 __gen_float(values
->MaximumTessellationFactorOdd
) |
4375 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
4380 #define GEN75_3DSTATE_URB_DS_length_bias 0x00000002
4381 #define GEN75_3DSTATE_URB_DS_header \
4383 .CommandSubType = 3, \
4384 ._3DCommandOpcode = 0, \
4385 ._3DCommandSubOpcode = 50, \
4388 #define GEN75_3DSTATE_URB_DS_length 0x00000002
4390 struct GEN75_3DSTATE_URB_DS
{
4391 uint32_t CommandType
;
4392 uint32_t CommandSubType
;
4393 uint32_t _3DCommandOpcode
;
4394 uint32_t _3DCommandSubOpcode
;
4395 uint32_t DwordLength
;
4396 uint32_t DSURBStartingAddress
;
4397 uint32_t DSURBEntryAllocationSize
;
4398 uint32_t DSNumberofURBEntries
;
4402 GEN75_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
4403 const struct GEN75_3DSTATE_URB_DS
* restrict values
)
4405 uint32_t *dw
= (uint32_t * restrict
) dst
;
4408 __gen_field(values
->CommandType
, 29, 31) |
4409 __gen_field(values
->CommandSubType
, 27, 28) |
4410 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4411 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4412 __gen_field(values
->DwordLength
, 0, 7) |
4416 __gen_field(values
->DSURBStartingAddress
, 25, 30) |
4417 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
4418 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
4423 #define GEN75_3DSTATE_URB_GS_length_bias 0x00000002
4424 #define GEN75_3DSTATE_URB_GS_header \
4426 .CommandSubType = 3, \
4427 ._3DCommandOpcode = 0, \
4428 ._3DCommandSubOpcode = 51, \
4431 #define GEN75_3DSTATE_URB_GS_length 0x00000002
4433 struct GEN75_3DSTATE_URB_GS
{
4434 uint32_t CommandType
;
4435 uint32_t CommandSubType
;
4436 uint32_t _3DCommandOpcode
;
4437 uint32_t _3DCommandSubOpcode
;
4438 uint32_t DwordLength
;
4439 uint32_t GSURBStartingAddress
;
4440 uint32_t GSURBEntryAllocationSize
;
4441 uint32_t GSNumberofURBEntries
;
4445 GEN75_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
4446 const struct GEN75_3DSTATE_URB_GS
* restrict values
)
4448 uint32_t *dw
= (uint32_t * restrict
) dst
;
4451 __gen_field(values
->CommandType
, 29, 31) |
4452 __gen_field(values
->CommandSubType
, 27, 28) |
4453 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4454 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4455 __gen_field(values
->DwordLength
, 0, 7) |
4459 __gen_field(values
->GSURBStartingAddress
, 25, 30) |
4460 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
4461 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
4466 #define GEN75_3DSTATE_URB_HS_length_bias 0x00000002
4467 #define GEN75_3DSTATE_URB_HS_header \
4469 .CommandSubType = 3, \
4470 ._3DCommandOpcode = 0, \
4471 ._3DCommandSubOpcode = 49, \
4474 #define GEN75_3DSTATE_URB_HS_length 0x00000002
4476 struct GEN75_3DSTATE_URB_HS
{
4477 uint32_t CommandType
;
4478 uint32_t CommandSubType
;
4479 uint32_t _3DCommandOpcode
;
4480 uint32_t _3DCommandSubOpcode
;
4481 uint32_t DwordLength
;
4482 uint32_t HSURBStartingAddress
;
4483 uint32_t HSURBEntryAllocationSize
;
4484 uint32_t HSNumberofURBEntries
;
4488 GEN75_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
4489 const struct GEN75_3DSTATE_URB_HS
* restrict values
)
4491 uint32_t *dw
= (uint32_t * restrict
) dst
;
4494 __gen_field(values
->CommandType
, 29, 31) |
4495 __gen_field(values
->CommandSubType
, 27, 28) |
4496 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4497 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4498 __gen_field(values
->DwordLength
, 0, 7) |
4502 __gen_field(values
->HSURBStartingAddress
, 25, 30) |
4503 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
4504 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
4509 #define GEN75_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
4510 #define GEN75_3DSTATE_VERTEX_BUFFERS_header \
4512 .CommandSubType = 3, \
4513 ._3DCommandOpcode = 0, \
4514 ._3DCommandSubOpcode = 8
4516 #define GEN75_3DSTATE_VERTEX_BUFFERS_length 0x00000000
4518 #define GEN75_VERTEX_BUFFER_STATE_length 0x00000004
4520 struct GEN75_VERTEX_BUFFER_STATE
{
4521 uint32_t VertexBufferIndex
;
4522 #define VERTEXDATA 0
4523 #define INSTANCEDATA 1
4524 uint32_t BufferAccessType
;
4525 struct GEN75_MEMORY_OBJECT_CONTROL_STATE VertexBufferMemoryObjectControlState
;
4526 uint32_t AddressModifyEnable
;
4527 bool NullVertexBuffer
;
4528 uint32_t VertexFetchInvalidate
;
4529 uint32_t BufferPitch
;
4530 __gen_address_type BufferStartingAddress
;
4531 __gen_address_type EndAddress
;
4532 uint32_t InstanceDataStepRate
;
4536 GEN75_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4537 const struct GEN75_VERTEX_BUFFER_STATE
* restrict values
)
4539 uint32_t *dw
= (uint32_t * restrict
) dst
;
4541 uint32_t dw_VertexBufferMemoryObjectControlState
;
4542 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_VertexBufferMemoryObjectControlState
, &values
->VertexBufferMemoryObjectControlState
);
4544 __gen_field(values
->VertexBufferIndex
, 26, 31) |
4545 __gen_field(values
->BufferAccessType
, 20, 20) |
4546 __gen_field(dw_VertexBufferMemoryObjectControlState
, 16, 19) |
4547 __gen_field(values
->AddressModifyEnable
, 14, 14) |
4548 __gen_field(values
->NullVertexBuffer
, 13, 13) |
4549 __gen_field(values
->VertexFetchInvalidate
, 12, 12) |
4550 __gen_field(values
->BufferPitch
, 0, 11) |
4557 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
4563 __gen_combine_address(data
, &dw
[2], values
->EndAddress
, dw2
);
4566 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
4571 struct GEN75_3DSTATE_VERTEX_BUFFERS
{
4572 uint32_t CommandType
;
4573 uint32_t CommandSubType
;
4574 uint32_t _3DCommandOpcode
;
4575 uint32_t _3DCommandSubOpcode
;
4576 uint32_t DwordLength
;
4577 /* variable length fields follow */
4581 GEN75_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
4582 const struct GEN75_3DSTATE_VERTEX_BUFFERS
* restrict values
)
4584 uint32_t *dw
= (uint32_t * restrict
) dst
;
4587 __gen_field(values
->CommandType
, 29, 31) |
4588 __gen_field(values
->CommandSubType
, 27, 28) |
4589 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4590 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4591 __gen_field(values
->DwordLength
, 0, 7) |
4594 /* variable length fields follow */
4597 #define GEN75_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
4598 #define GEN75_3DSTATE_VERTEX_ELEMENTS_header \
4600 .CommandSubType = 3, \
4601 ._3DCommandOpcode = 0, \
4602 ._3DCommandSubOpcode = 9
4604 #define GEN75_3DSTATE_VERTEX_ELEMENTS_length 0x00000000
4606 #define GEN75_VERTEX_ELEMENT_STATE_length 0x00000002
4608 struct GEN75_VERTEX_ELEMENT_STATE
{
4609 uint32_t VertexBufferIndex
;
4611 uint32_t SourceElementFormat
;
4612 bool EdgeFlagEnable
;
4613 uint32_t SourceElementOffset
;
4614 uint32_t Component0Control
;
4615 uint32_t Component1Control
;
4616 uint32_t Component2Control
;
4617 uint32_t Component3Control
;
4621 GEN75_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4622 const struct GEN75_VERTEX_ELEMENT_STATE
* restrict values
)
4624 uint32_t *dw
= (uint32_t * restrict
) dst
;
4627 __gen_field(values
->VertexBufferIndex
, 26, 31) |
4628 __gen_field(values
->Valid
, 25, 25) |
4629 __gen_field(values
->SourceElementFormat
, 16, 24) |
4630 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
4631 __gen_field(values
->SourceElementOffset
, 0, 11) |
4635 __gen_field(values
->Component0Control
, 28, 30) |
4636 __gen_field(values
->Component1Control
, 24, 26) |
4637 __gen_field(values
->Component2Control
, 20, 22) |
4638 __gen_field(values
->Component3Control
, 16, 18) |
4643 struct GEN75_3DSTATE_VERTEX_ELEMENTS
{
4644 uint32_t CommandType
;
4645 uint32_t CommandSubType
;
4646 uint32_t _3DCommandOpcode
;
4647 uint32_t _3DCommandSubOpcode
;
4648 uint32_t DwordLength
;
4649 /* variable length fields follow */
4653 GEN75_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
4654 const struct GEN75_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
4656 uint32_t *dw
= (uint32_t * restrict
) dst
;
4659 __gen_field(values
->CommandType
, 29, 31) |
4660 __gen_field(values
->CommandSubType
, 27, 28) |
4661 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4662 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4663 __gen_field(values
->DwordLength
, 0, 7) |
4666 /* variable length fields follow */
4669 #define GEN75_3DSTATE_VF_length_bias 0x00000002
4670 #define GEN75_3DSTATE_VF_header \
4672 .CommandSubType = 3, \
4673 ._3DCommandOpcode = 0, \
4674 ._3DCommandSubOpcode = 12, \
4677 #define GEN75_3DSTATE_VF_length 0x00000002
4679 struct GEN75_3DSTATE_VF
{
4680 uint32_t CommandType
;
4681 uint32_t CommandSubType
;
4682 uint32_t _3DCommandOpcode
;
4683 uint32_t _3DCommandSubOpcode
;
4684 bool IndexedDrawCutIndexEnable
;
4685 uint32_t DwordLength
;
4690 GEN75_3DSTATE_VF_pack(__gen_user_data
*data
, void * restrict dst
,
4691 const struct GEN75_3DSTATE_VF
* restrict values
)
4693 uint32_t *dw
= (uint32_t * restrict
) dst
;
4696 __gen_field(values
->CommandType
, 29, 31) |
4697 __gen_field(values
->CommandSubType
, 27, 28) |
4698 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4699 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4700 __gen_field(values
->IndexedDrawCutIndexEnable
, 8, 8) |
4701 __gen_field(values
->DwordLength
, 0, 7) |
4705 __gen_field(values
->CutIndex
, 0, 31) |
4710 #define GEN75_3DSTATE_VF_STATISTICS_length_bias 0x00000001
4711 #define GEN75_3DSTATE_VF_STATISTICS_header \
4713 .CommandSubType = 1, \
4714 ._3DCommandOpcode = 0, \
4715 ._3DCommandSubOpcode = 11
4717 #define GEN75_3DSTATE_VF_STATISTICS_length 0x00000001
4719 struct GEN75_3DSTATE_VF_STATISTICS
{
4720 uint32_t CommandType
;
4721 uint32_t CommandSubType
;
4722 uint32_t _3DCommandOpcode
;
4723 uint32_t _3DCommandSubOpcode
;
4724 bool StatisticsEnable
;
4728 GEN75_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
4729 const struct GEN75_3DSTATE_VF_STATISTICS
* restrict values
)
4731 uint32_t *dw
= (uint32_t * restrict
) dst
;
4734 __gen_field(values
->CommandType
, 29, 31) |
4735 __gen_field(values
->CommandSubType
, 27, 28) |
4736 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4737 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4738 __gen_field(values
->StatisticsEnable
, 0, 0) |
4743 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
4744 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
4746 .CommandSubType = 3, \
4747 ._3DCommandOpcode = 0, \
4748 ._3DCommandSubOpcode = 35, \
4751 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
4753 struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
4754 uint32_t CommandType
;
4755 uint32_t CommandSubType
;
4756 uint32_t _3DCommandOpcode
;
4757 uint32_t _3DCommandSubOpcode
;
4758 uint32_t DwordLength
;
4759 uint32_t CCViewportPointer
;
4763 GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
4764 const struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
4766 uint32_t *dw
= (uint32_t * restrict
) dst
;
4769 __gen_field(values
->CommandType
, 29, 31) |
4770 __gen_field(values
->CommandSubType
, 27, 28) |
4771 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4772 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4773 __gen_field(values
->DwordLength
, 0, 7) |
4777 __gen_offset(values
->CCViewportPointer
, 5, 31) |
4782 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
4783 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
4785 .CommandSubType = 3, \
4786 ._3DCommandOpcode = 0, \
4787 ._3DCommandSubOpcode = 33, \
4790 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
4792 struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
4793 uint32_t CommandType
;
4794 uint32_t CommandSubType
;
4795 uint32_t _3DCommandOpcode
;
4796 uint32_t _3DCommandSubOpcode
;
4797 uint32_t DwordLength
;
4798 uint32_t SFClipViewportPointer
;
4802 GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
4803 const struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
4805 uint32_t *dw
= (uint32_t * restrict
) dst
;
4808 __gen_field(values
->CommandType
, 29, 31) |
4809 __gen_field(values
->CommandSubType
, 27, 28) |
4810 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4811 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4812 __gen_field(values
->DwordLength
, 0, 7) |
4816 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
4821 #define GEN75_3DSTATE_VS_length_bias 0x00000002
4822 #define GEN75_3DSTATE_VS_header \
4824 .CommandSubType = 3, \
4825 ._3DCommandOpcode = 0, \
4826 ._3DCommandSubOpcode = 16, \
4829 #define GEN75_3DSTATE_VS_length 0x00000006
4831 struct GEN75_3DSTATE_VS
{
4832 uint32_t CommandType
;
4833 uint32_t CommandSubType
;
4834 uint32_t _3DCommandOpcode
;
4835 uint32_t _3DCommandSubOpcode
;
4836 uint32_t DwordLength
;
4837 uint32_t KernelStartPointer
;
4840 uint32_t SingleVertexDispatch
;
4843 uint32_t VectorMaskEnableVME
;
4844 #define NoSamplers 0
4845 #define _14Samplers 1
4846 #define _58Samplers 2
4847 #define _912Samplers 3
4848 #define _1316Samplers 4
4849 uint32_t SamplerCount
;
4850 uint32_t BindingTableEntryCount
;
4851 #define NormalPriority 0
4852 #define HighPriority 1
4853 uint32_t ThreadPriority
;
4856 uint32_t FloatingPointMode
;
4857 bool IllegalOpcodeExceptionEnable
;
4859 bool SoftwareExceptionEnable
;
4860 uint32_t ScratchSpaceBaseOffset
;
4861 uint32_t PerThreadScratchSpace
;
4862 uint32_t DispatchGRFStartRegisterforURBData
;
4863 uint32_t VertexURBEntryReadLength
;
4864 uint32_t VertexURBEntryReadOffset
;
4865 uint32_t MaximumNumberofThreads
;
4866 bool StatisticsEnable
;
4867 bool VertexCacheDisable
;
4868 bool VSFunctionEnable
;
4872 GEN75_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4873 const struct GEN75_3DSTATE_VS
* restrict values
)
4875 uint32_t *dw
= (uint32_t * restrict
) dst
;
4878 __gen_field(values
->CommandType
, 29, 31) |
4879 __gen_field(values
->CommandSubType
, 27, 28) |
4880 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4881 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4882 __gen_field(values
->DwordLength
, 0, 7) |
4886 __gen_offset(values
->KernelStartPointer
, 6, 31) |
4890 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
4891 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
4892 __gen_field(values
->SamplerCount
, 27, 29) |
4893 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
4894 __gen_field(values
->ThreadPriority
, 17, 17) |
4895 __gen_field(values
->FloatingPointMode
, 16, 16) |
4896 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
4897 __gen_field(values
->VSaccessesUAV
, 12, 12) |
4898 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
4902 __gen_offset(values
->ScratchSpaceBaseOffset
, 10, 31) |
4903 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4907 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 20, 24) |
4908 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
4909 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
4913 __gen_field(values
->MaximumNumberofThreads
, 23, 31) |
4914 __gen_field(values
->StatisticsEnable
, 10, 10) |
4915 __gen_field(values
->VertexCacheDisable
, 1, 1) |
4916 __gen_field(values
->VSFunctionEnable
, 0, 0) |
4921 #define GEN75_3DSTATE_WM_length_bias 0x00000002
4922 #define GEN75_3DSTATE_WM_header \
4924 .CommandSubType = 3, \
4925 ._3DCommandOpcode = 0, \
4926 ._3DCommandSubOpcode = 20, \
4929 #define GEN75_3DSTATE_WM_length 0x00000003
4931 struct GEN75_3DSTATE_WM
{
4932 uint32_t CommandType
;
4933 uint32_t CommandSubType
;
4934 uint32_t _3DCommandOpcode
;
4935 uint32_t _3DCommandSubOpcode
;
4936 uint32_t DwordLength
;
4937 bool StatisticsEnable
;
4938 bool DepthBufferClear
;
4939 bool ThreadDispatchEnable
;
4940 bool DepthBufferResolveEnable
;
4941 bool HierarchicalDepthBufferResolveEnable
;
4942 bool LegacyDiamondLineRasterization
;
4943 bool PixelShaderKillPixel
;
4944 #define PSCDEPTH_OFF 0
4945 #define PSCDEPTH_ON 1
4946 #define PSCDEPTH_ON_GE 2
4947 #define PSCDEPTH_ON_LE 3
4948 uint32_t PixelShaderComputedDepthMode
;
4949 #define EDSC_NORMAL 0
4950 #define EDSC_PSEXEC 1
4951 #define EDSC_PREPS 2
4952 uint32_t EarlyDepthStencilControl
;
4953 bool PixelShaderUsesSourceDepth
;
4954 bool PixelShaderUsesSourceW
;
4955 #define INTERP_PIXEL 0
4956 #define INTERP_CENTROID 2
4957 #define INTERP_SAMPLE 3
4958 uint32_t PositionZWInterpolationMode
;
4959 uint32_t BarycentricInterpolationMode
;
4960 bool PixelShaderUsesInputCoverageMask
;
4961 uint32_t LineEndCapAntialiasingRegionWidth
;
4962 uint32_t LineAntialiasingRegionWidth
;
4963 bool RTIndependentRasterizationEnable
;
4964 bool PolygonStippleEnable
;
4965 bool LineStippleEnable
;
4966 #define RASTRULE_UPPER_LEFT 0
4967 #define RASTRULE_UPPER_RIGHT 1
4968 uint32_t PointRasterizationRule
;
4969 #define MSRASTMODE_OFF_PIXEL 0
4970 #define MSRASTMODE_OFF_PATTERN 1
4971 #define MSRASTMODE_ON_PIXEL 2
4972 #define MSRASTMODE_ON_PATTERN 3
4973 uint32_t MultisampleRasterizationMode
;
4974 #define MSDISPMODE_PERSAMPLE 0
4975 #define MSDISPMODE_PERPIXEL 1
4976 uint32_t MultisampleDispatchMode
;
4983 GEN75_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
4984 const struct GEN75_3DSTATE_WM
* restrict values
)
4986 uint32_t *dw
= (uint32_t * restrict
) dst
;
4989 __gen_field(values
->CommandType
, 29, 31) |
4990 __gen_field(values
->CommandSubType
, 27, 28) |
4991 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4992 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4993 __gen_field(values
->DwordLength
, 0, 7) |
4997 __gen_field(values
->StatisticsEnable
, 31, 31) |
4998 __gen_field(values
->DepthBufferClear
, 30, 30) |
4999 __gen_field(values
->ThreadDispatchEnable
, 29, 29) |
5000 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
5001 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
5002 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
5003 __gen_field(values
->PixelShaderKillPixel
, 25, 25) |
5004 __gen_field(values
->PixelShaderComputedDepthMode
, 23, 24) |
5005 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
5006 __gen_field(values
->PixelShaderUsesSourceDepth
, 20, 20) |
5007 __gen_field(values
->PixelShaderUsesSourceW
, 19, 19) |
5008 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
5009 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
5010 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 10, 10) |
5011 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
5012 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
5013 __gen_field(values
->RTIndependentRasterizationEnable
, 5, 5) |
5014 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
5015 __gen_field(values
->LineStippleEnable
, 3, 3) |
5016 __gen_field(values
->PointRasterizationRule
, 2, 2) |
5017 __gen_field(values
->MultisampleRasterizationMode
, 0, 1) |
5021 __gen_field(values
->MultisampleDispatchMode
, 31, 31) |
5022 __gen_field(values
->PSUAVonly
, 30, 30) |
5027 #define GEN75_GPGPU_OBJECT_length_bias 0x00000002
5028 #define GEN75_GPGPU_OBJECT_header \
5031 .MediaCommandOpcode = 1, \
5035 #define GEN75_GPGPU_OBJECT_length 0x00000008
5037 struct GEN75_GPGPU_OBJECT
{
5038 uint32_t CommandType
;
5040 uint32_t MediaCommandOpcode
;
5042 bool PredicateEnable
;
5043 uint32_t DwordLength
;
5044 uint32_t SharedLocalMemoryFixedOffset
;
5045 uint32_t InterfaceDescriptorOffset
;
5046 uint32_t SharedLocalMemoryOffset
;
5047 uint32_t EndofThreadGroup
;
5050 uint32_t SliceDestinationSelect
;
5051 #define HalfSlice1 2
5052 #define HalfSlice0 1
5053 #define EitherHalfSlice 0
5054 uint32_t HalfSliceDestinationSelect
;
5055 uint32_t IndirectDataLength
;
5056 uint32_t IndirectDataStartAddress
;
5057 uint32_t ThreadGroupIDX
;
5058 uint32_t ThreadGroupIDY
;
5059 uint32_t ThreadGroupIDZ
;
5060 uint32_t ExecutionMask
;
5064 GEN75_GPGPU_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
5065 const struct GEN75_GPGPU_OBJECT
* restrict values
)
5067 uint32_t *dw
= (uint32_t * restrict
) dst
;
5070 __gen_field(values
->CommandType
, 29, 31) |
5071 __gen_field(values
->Pipeline
, 27, 28) |
5072 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5073 __gen_field(values
->SubOpcode
, 16, 23) |
5074 __gen_field(values
->PredicateEnable
, 8, 8) |
5075 __gen_field(values
->DwordLength
, 0, 7) |
5079 __gen_field(values
->SharedLocalMemoryFixedOffset
, 7, 7) |
5080 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5084 __gen_field(values
->SharedLocalMemoryOffset
, 28, 31) |
5085 __gen_field(values
->EndofThreadGroup
, 24, 24) |
5086 __gen_field(values
->SliceDestinationSelect
, 19, 19) |
5087 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
5088 __gen_field(values
->IndirectDataLength
, 0, 16) |
5092 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
5096 __gen_field(values
->ThreadGroupIDX
, 0, 31) |
5100 __gen_field(values
->ThreadGroupIDY
, 0, 31) |
5104 __gen_field(values
->ThreadGroupIDZ
, 0, 31) |
5108 __gen_field(values
->ExecutionMask
, 0, 31) |
5113 #define GEN75_GPGPU_WALKER_length_bias 0x00000002
5114 #define GEN75_GPGPU_WALKER_header \
5117 .MediaCommandOpcode = 1, \
5121 #define GEN75_GPGPU_WALKER_length 0x0000000b
5123 struct GEN75_GPGPU_WALKER
{
5124 uint32_t CommandType
;
5126 uint32_t MediaCommandOpcode
;
5127 uint32_t SubOpcodeA
;
5128 bool IndirectParameterEnable
;
5129 bool PredicateEnable
;
5130 uint32_t DwordLength
;
5131 uint32_t InterfaceDescriptorOffset
;
5136 uint32_t ThreadDepthCounterMaximum
;
5137 uint32_t ThreadHeightCounterMaximum
;
5138 uint32_t ThreadWidthCounterMaximum
;
5139 uint32_t ThreadGroupIDStartingX
;
5140 uint32_t ThreadGroupIDXDimension
;
5141 uint32_t ThreadGroupIDStartingY
;
5142 uint32_t ThreadGroupIDYDimension
;
5143 uint32_t ThreadGroupIDStartingZ
;
5144 uint32_t ThreadGroupIDZDimension
;
5145 uint32_t RightExecutionMask
;
5146 uint32_t BottomExecutionMask
;
5150 GEN75_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
5151 const struct GEN75_GPGPU_WALKER
* restrict values
)
5153 uint32_t *dw
= (uint32_t * restrict
) dst
;
5156 __gen_field(values
->CommandType
, 29, 31) |
5157 __gen_field(values
->Pipeline
, 27, 28) |
5158 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5159 __gen_field(values
->SubOpcodeA
, 16, 23) |
5160 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
5161 __gen_field(values
->PredicateEnable
, 8, 8) |
5162 __gen_field(values
->DwordLength
, 0, 7) |
5166 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5170 __gen_field(values
->SIMDSize
, 30, 31) |
5171 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
5172 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
5173 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
5177 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
5181 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
5185 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
5189 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
5193 __gen_field(values
->ThreadGroupIDStartingZ
, 0, 31) |
5197 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
5201 __gen_field(values
->RightExecutionMask
, 0, 31) |
5205 __gen_field(values
->BottomExecutionMask
, 0, 31) |
5210 #define GEN75_MEDIA_CURBE_LOAD_length_bias 0x00000002
5211 #define GEN75_MEDIA_CURBE_LOAD_header \
5214 .MediaCommandOpcode = 0, \
5218 #define GEN75_MEDIA_CURBE_LOAD_length 0x00000004
5220 struct GEN75_MEDIA_CURBE_LOAD
{
5221 uint32_t CommandType
;
5223 uint32_t MediaCommandOpcode
;
5225 uint32_t DwordLength
;
5226 uint32_t CURBETotalDataLength
;
5227 uint32_t CURBEDataStartAddress
;
5231 GEN75_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5232 const struct GEN75_MEDIA_CURBE_LOAD
* restrict values
)
5234 uint32_t *dw
= (uint32_t * restrict
) dst
;
5237 __gen_field(values
->CommandType
, 29, 31) |
5238 __gen_field(values
->Pipeline
, 27, 28) |
5239 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5240 __gen_field(values
->SubOpcode
, 16, 23) |
5241 __gen_field(values
->DwordLength
, 0, 15) |
5248 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
5252 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
5257 #define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
5258 #define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
5261 .MediaCommandOpcode = 0, \
5265 #define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
5267 struct GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
5268 uint32_t CommandType
;
5270 uint32_t MediaCommandOpcode
;
5272 uint32_t DwordLength
;
5273 uint32_t InterfaceDescriptorTotalLength
;
5274 uint32_t InterfaceDescriptorDataStartAddress
;
5278 GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
5279 const struct GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
5281 uint32_t *dw
= (uint32_t * restrict
) dst
;
5284 __gen_field(values
->CommandType
, 29, 31) |
5285 __gen_field(values
->Pipeline
, 27, 28) |
5286 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5287 __gen_field(values
->SubOpcode
, 16, 23) |
5288 __gen_field(values
->DwordLength
, 0, 15) |
5295 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
5299 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
5304 #define GEN75_MEDIA_OBJECT_length_bias 0x00000002
5305 #define GEN75_MEDIA_OBJECT_header \
5307 .MediaCommandPipeline = 2, \
5308 .MediaCommandOpcode = 1, \
5309 .MediaCommandSubOpcode = 0
5311 #define GEN75_MEDIA_OBJECT_length 0x00000000
5313 struct GEN75_MEDIA_OBJECT
{
5314 uint32_t CommandType
;
5315 uint32_t MediaCommandPipeline
;
5316 uint32_t MediaCommandOpcode
;
5317 uint32_t MediaCommandSubOpcode
;
5318 uint32_t DwordLength
;
5319 uint32_t InterfaceDescriptorOffset
;
5320 bool ChildrenPresent
;
5321 #define Nothreadsynchronization 0
5322 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
5323 uint32_t ThreadSynchronization
;
5324 #define Notusingscoreboard 0
5325 #define Usingscoreboard 1
5326 uint32_t UseScoreboard
;
5329 #define EitherSlice 0
5330 uint32_t SliceDestinationSelect
;
5331 #define HalfSlice1 2
5332 #define HalfSlice0 1
5333 #define Eitherhalfslice 0
5334 uint32_t HalfSliceDestinationSelect
;
5335 uint32_t IndirectDataLength
;
5336 __gen_address_type IndirectDataStartAddress
;
5337 uint32_t ScoredboardY
;
5338 uint32_t ScoreboardX
;
5339 uint32_t ScoreboardColor
;
5340 bool ScoreboardMask
;
5341 /* variable length fields follow */
5345 GEN75_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
5346 const struct GEN75_MEDIA_OBJECT
* restrict values
)
5348 uint32_t *dw
= (uint32_t * restrict
) dst
;
5351 __gen_field(values
->CommandType
, 29, 31) |
5352 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
5353 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5354 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
5355 __gen_field(values
->DwordLength
, 0, 15) |
5359 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5363 __gen_field(values
->ChildrenPresent
, 31, 31) |
5364 __gen_field(values
->ThreadSynchronization
, 24, 24) |
5365 __gen_field(values
->UseScoreboard
, 21, 21) |
5366 __gen_field(values
->SliceDestinationSelect
, 19, 19) |
5367 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
5368 __gen_field(values
->IndirectDataLength
, 0, 16) |
5375 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
5378 __gen_field(values
->ScoredboardY
, 16, 24) |
5379 __gen_field(values
->ScoreboardX
, 0, 8) |
5383 __gen_field(values
->ScoreboardColor
, 16, 19) |
5384 __gen_field(values
->ScoreboardMask
, 0, 7) |
5387 /* variable length fields follow */
5390 #define GEN75_MEDIA_OBJECT_PRT_length_bias 0x00000002
5391 #define GEN75_MEDIA_OBJECT_PRT_header \
5394 .MediaCommandOpcode = 1, \
5398 #define GEN75_MEDIA_OBJECT_PRT_length 0x00000010
5400 struct GEN75_MEDIA_OBJECT_PRT
{
5401 uint32_t CommandType
;
5403 uint32_t MediaCommandOpcode
;
5405 uint32_t DwordLength
;
5406 uint32_t InterfaceDescriptorOffset
;
5407 bool ChildrenPresent
;
5408 bool PRT_FenceNeeded
;
5409 #define Rootthreadqueue 0
5410 #define VFEstateflush 1
5411 uint32_t PRT_FenceType
;
5412 uint32_t InlineData
[12];
5416 GEN75_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
5417 const struct GEN75_MEDIA_OBJECT_PRT
* restrict values
)
5419 uint32_t *dw
= (uint32_t * restrict
) dst
;
5422 __gen_field(values
->CommandType
, 29, 31) |
5423 __gen_field(values
->Pipeline
, 27, 28) |
5424 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5425 __gen_field(values
->SubOpcode
, 16, 23) |
5426 __gen_field(values
->DwordLength
, 0, 15) |
5430 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5434 __gen_field(values
->ChildrenPresent
, 31, 31) |
5435 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
5436 __gen_field(values
->PRT_FenceType
, 22, 22) |
5442 for (uint32_t i
= 0, j
= 4; i
< 12; i
+= 1, j
++) {
5444 __gen_field(values
->InlineData
[i
+ 0], 0, 31) |
5450 #define GEN75_MEDIA_OBJECT_WALKER_length_bias 0x00000002
5451 #define GEN75_MEDIA_OBJECT_WALKER_header \
5454 .MediaCommandOpcode = 1, \
5457 #define GEN75_MEDIA_OBJECT_WALKER_length 0x00000000
5459 struct GEN75_MEDIA_OBJECT_WALKER
{
5460 uint32_t CommandType
;
5462 uint32_t MediaCommandOpcode
;
5464 uint32_t DwordLength
;
5465 uint32_t InterfaceDescriptorOffset
;
5466 bool ChildrenPresent
;
5467 #define Nothreadsynchronization 0
5468 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
5469 uint32_t ThreadSynchronization
;
5470 #define Notusingscoreboard 0
5471 #define Usingscoreboard 1
5472 uint32_t UseScoreboard
;
5473 uint32_t IndirectDataLength
;
5474 uint32_t IndirectDataStartAddress
;
5475 bool ScoreboardMask
;
5479 uint32_t ColorCountMinusOne
;
5480 uint32_t MiddleLoopExtraSteps
;
5481 uint32_t LocalMidLoopUnitY
;
5482 uint32_t MidLoopUnitX
;
5483 uint32_t GlobalLoopExecCount
;
5484 uint32_t LocalLoopExecCount
;
5485 uint32_t BlockResolutionY
;
5486 uint32_t BlockResolutionX
;
5487 uint32_t LocalStartY
;
5488 uint32_t LocalStartX
;
5489 uint32_t LocalOuterLoopStrideY
;
5490 uint32_t LocalOuterLoopStrideX
;
5491 uint32_t LocalInnerLoopUnitY
;
5492 uint32_t LocalInnerLoopUnitX
;
5493 uint32_t GlobalResolutionY
;
5494 uint32_t GlobalResolutionX
;
5495 uint32_t GlobalStartY
;
5496 uint32_t GlobalStartX
;
5497 uint32_t GlobalOuterLoopStrideY
;
5498 uint32_t GlobalOuterLoopStrideX
;
5499 uint32_t GlobalInnerLoopUnitY
;
5500 uint32_t GlobalInnerLoopUnitX
;
5501 /* variable length fields follow */
5505 GEN75_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
5506 const struct GEN75_MEDIA_OBJECT_WALKER
* restrict values
)
5508 uint32_t *dw
= (uint32_t * restrict
) dst
;
5511 __gen_field(values
->CommandType
, 29, 31) |
5512 __gen_field(values
->Pipeline
, 27, 28) |
5513 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5514 __gen_field(values
->SubOpcode
, 16, 23) |
5515 __gen_field(values
->DwordLength
, 0, 15) |
5519 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5523 __gen_field(values
->ChildrenPresent
, 31, 31) |
5524 __gen_field(values
->ThreadSynchronization
, 24, 24) |
5525 __gen_field(values
->UseScoreboard
, 21, 21) |
5526 __gen_field(values
->IndirectDataLength
, 0, 16) |
5530 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
5537 __gen_field(values
->ScoreboardMask
, 0, 7) |
5541 __gen_field(values
->DualMode
, 31, 31) |
5542 __gen_field(values
->Repel
, 30, 30) |
5543 __gen_field(values
->QuadMode
, 29, 29) |
5544 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
5545 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
5546 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
5547 __gen_field(values
->MidLoopUnitX
, 8, 9) |
5551 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
5552 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
5556 __gen_field(values
->BlockResolutionY
, 16, 24) |
5557 __gen_field(values
->BlockResolutionX
, 0, 8) |
5561 __gen_field(values
->LocalStartY
, 16, 24) |
5562 __gen_field(values
->LocalStartX
, 0, 8) |
5569 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
5570 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
5574 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
5575 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
5579 __gen_field(values
->GlobalResolutionY
, 16, 24) |
5580 __gen_field(values
->GlobalResolutionX
, 0, 8) |
5584 __gen_field(values
->GlobalStartY
, 16, 25) |
5585 __gen_field(values
->GlobalStartX
, 0, 9) |
5589 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
5590 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
5594 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
5595 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
5598 /* variable length fields follow */
5601 #define GEN75_MEDIA_STATE_FLUSH_length_bias 0x00000002
5602 #define GEN75_MEDIA_STATE_FLUSH_header \
5605 .MediaCommandOpcode = 0, \
5609 #define GEN75_MEDIA_STATE_FLUSH_length 0x00000002
5611 struct GEN75_MEDIA_STATE_FLUSH
{
5612 uint32_t CommandType
;
5614 uint32_t MediaCommandOpcode
;
5616 uint32_t DwordLength
;
5617 bool DisablePreemption
;
5619 uint32_t WatermarkRequired
;
5620 uint32_t InterfaceDescriptorOffset
;
5624 GEN75_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5625 const struct GEN75_MEDIA_STATE_FLUSH
* restrict values
)
5627 uint32_t *dw
= (uint32_t * restrict
) dst
;
5630 __gen_field(values
->CommandType
, 29, 31) |
5631 __gen_field(values
->Pipeline
, 27, 28) |
5632 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5633 __gen_field(values
->SubOpcode
, 16, 23) |
5634 __gen_field(values
->DwordLength
, 0, 15) |
5638 __gen_field(values
->DisablePreemption
, 8, 8) |
5639 __gen_field(values
->FlushtoGO
, 7, 7) |
5640 __gen_field(values
->WatermarkRequired
, 6, 6) |
5641 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
5646 #define GEN75_MEDIA_VFE_STATE_length_bias 0x00000002
5647 #define GEN75_MEDIA_VFE_STATE_header \
5650 .MediaCommandOpcode = 0, \
5654 #define GEN75_MEDIA_VFE_STATE_length 0x00000008
5656 struct GEN75_MEDIA_VFE_STATE
{
5657 uint32_t CommandType
;
5659 uint32_t MediaCommandOpcode
;
5661 uint32_t DwordLength
;
5662 uint32_t ScratchSpaceBasePointer
;
5664 uint32_t PerThreadScratchSpace
;
5665 uint32_t MaximumNumberofThreads
;
5666 uint32_t NumberofURBEntries
;
5667 #define Maintainingtheexistingtimestampstate 0
5668 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
5669 uint32_t ResetGatewayTimer
;
5670 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
5671 #define BypassingOpenGatewayCloseGatewayprotocol 1
5672 uint32_t BypassGatewayControl
;
5674 uint32_t HalfSliceDisable
;
5675 uint32_t URBEntryAllocationSize
;
5676 uint32_t CURBEAllocationSize
;
5677 #define Scoreboarddisabled 0
5678 #define Scoreboardenabled 1
5679 uint32_t ScoreboardEnable
;
5680 #define StallingScoreboard 0
5681 #define NonStallingScoreboard 1
5682 uint32_t ScoreboardType
;
5683 uint32_t ScoreboardMask
;
5684 uint32_t Scoreboard3DeltaY
;
5685 uint32_t Scoreboard3DeltaX
;
5686 uint32_t Scoreboard2DeltaY
;
5687 uint32_t Scoreboard2DeltaX
;
5688 uint32_t Scoreboard1DeltaY
;
5689 uint32_t Scoreboard1DeltaX
;
5690 uint32_t Scoreboard0DeltaY
;
5691 uint32_t Scoreboard0DeltaX
;
5692 uint32_t Scoreboard7DeltaY
;
5693 uint32_t Scoreboard7DeltaX
;
5694 uint32_t Scoreboard6DeltaY
;
5695 uint32_t Scoreboard6DeltaX
;
5696 uint32_t Scoreboard5DeltaY
;
5697 uint32_t Scoreboard5DeltaX
;
5698 uint32_t Scoreboard4DeltaY
;
5699 uint32_t Scoreboard4DeltaX
;
5703 GEN75_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5704 const struct GEN75_MEDIA_VFE_STATE
* restrict values
)
5706 uint32_t *dw
= (uint32_t * restrict
) dst
;
5709 __gen_field(values
->CommandType
, 29, 31) |
5710 __gen_field(values
->Pipeline
, 27, 28) |
5711 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
5712 __gen_field(values
->SubOpcode
, 16, 23) |
5713 __gen_field(values
->DwordLength
, 0, 15) |
5717 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
5718 __gen_field(values
->StackSize
, 4, 7) |
5719 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
5723 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
5724 __gen_field(values
->NumberofURBEntries
, 8, 15) |
5725 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
5726 __gen_field(values
->BypassGatewayControl
, 6, 6) |
5727 __gen_field(values
->GPGPUMode
, 2, 2) |
5731 __gen_field(values
->HalfSliceDisable
, 0, 1) |
5735 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
5736 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
5740 __gen_field(values
->ScoreboardEnable
, 31, 31) |
5741 __gen_field(values
->ScoreboardType
, 30, 30) |
5742 __gen_field(values
->ScoreboardMask
, 0, 7) |
5746 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
5747 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
5748 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
5749 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
5750 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
5751 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
5752 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
5753 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
5757 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
5758 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
5759 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
5760 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
5761 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
5762 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
5763 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
5764 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
5769 #define GEN75_MI_ARB_CHECK_length_bias 0x00000001
5770 #define GEN75_MI_ARB_CHECK_header \
5772 .MICommandOpcode = 5
5774 #define GEN75_MI_ARB_CHECK_length 0x00000001
5776 struct GEN75_MI_ARB_CHECK
{
5777 uint32_t CommandType
;
5778 uint32_t MICommandOpcode
;
5782 GEN75_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
5783 const struct GEN75_MI_ARB_CHECK
* restrict values
)
5785 uint32_t *dw
= (uint32_t * restrict
) dst
;
5788 __gen_field(values
->CommandType
, 29, 31) |
5789 __gen_field(values
->MICommandOpcode
, 23, 28) |
5794 #define GEN75_MI_ARB_ON_OFF_length_bias 0x00000001
5795 #define GEN75_MI_ARB_ON_OFF_header \
5797 .MICommandOpcode = 8
5799 #define GEN75_MI_ARB_ON_OFF_length 0x00000001
5801 struct GEN75_MI_ARB_ON_OFF
{
5802 uint32_t CommandType
;
5803 uint32_t MICommandOpcode
;
5804 bool ArbitrationEnable
;
5808 GEN75_MI_ARB_ON_OFF_pack(__gen_user_data
*data
, void * restrict dst
,
5809 const struct GEN75_MI_ARB_ON_OFF
* restrict values
)
5811 uint32_t *dw
= (uint32_t * restrict
) dst
;
5814 __gen_field(values
->CommandType
, 29, 31) |
5815 __gen_field(values
->MICommandOpcode
, 23, 28) |
5816 __gen_field(values
->ArbitrationEnable
, 0, 0) |
5821 #define GEN75_MI_BATCH_BUFFER_END_length_bias 0x00000001
5822 #define GEN75_MI_BATCH_BUFFER_END_header \
5824 .MICommandOpcode = 10
5826 #define GEN75_MI_BATCH_BUFFER_END_length 0x00000001
5828 struct GEN75_MI_BATCH_BUFFER_END
{
5829 uint32_t CommandType
;
5830 uint32_t MICommandOpcode
;
5834 GEN75_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
5835 const struct GEN75_MI_BATCH_BUFFER_END
* restrict values
)
5837 uint32_t *dw
= (uint32_t * restrict
) dst
;
5840 __gen_field(values
->CommandType
, 29, 31) |
5841 __gen_field(values
->MICommandOpcode
, 23, 28) |
5846 #define GEN75_MI_BATCH_BUFFER_START_length_bias 0x00000002
5847 #define GEN75_MI_BATCH_BUFFER_START_header \
5849 .MICommandOpcode = 49, \
5852 #define GEN75_MI_BATCH_BUFFER_START_length 0x00000002
5854 struct GEN75_MI_BATCH_BUFFER_START
{
5855 uint32_t CommandType
;
5856 uint32_t MICommandOpcode
;
5857 #define _1stlevelbatch 0
5858 #define _2ndlevelbatch 1
5859 uint32_t _2ndLevelBatchBuffer
;
5860 bool AddOffsetEnable
;
5861 bool PredicationEnable
;
5862 uint32_t NonPrivileged
;
5863 bool ClearCommandBufferEnable
;
5864 bool ResourceStreamerEnable
;
5867 uint32_t AddressSpaceIndicator
;
5868 uint32_t DwordLength
;
5869 __gen_address_type BatchBufferStartAddress
;
5873 GEN75_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
5874 const struct GEN75_MI_BATCH_BUFFER_START
* restrict values
)
5876 uint32_t *dw
= (uint32_t * restrict
) dst
;
5879 __gen_field(values
->CommandType
, 29, 31) |
5880 __gen_field(values
->MICommandOpcode
, 23, 28) |
5881 __gen_field(values
->_2ndLevelBatchBuffer
, 22, 22) |
5882 __gen_field(values
->AddOffsetEnable
, 16, 16) |
5883 __gen_field(values
->PredicationEnable
, 15, 15) |
5884 __gen_field(values
->NonPrivileged
, 13, 13) |
5885 __gen_field(values
->ClearCommandBufferEnable
, 11, 11) |
5886 __gen_field(values
->ResourceStreamerEnable
, 10, 10) |
5887 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
5888 __gen_field(values
->DwordLength
, 0, 7) |
5895 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
5899 #define GEN75_MI_CLFLUSH_length_bias 0x00000002
5900 #define GEN75_MI_CLFLUSH_header \
5902 .MICommandOpcode = 39
5904 #define GEN75_MI_CLFLUSH_length 0x00000000
5906 struct GEN75_MI_CLFLUSH
{
5907 uint32_t CommandType
;
5908 uint32_t MICommandOpcode
;
5909 #define PerProcessGraphicsAddress 0
5910 #define GlobalGraphicsAddress 1
5911 uint32_t UseGlobalGTT
;
5912 uint32_t DwordLength
;
5913 __gen_address_type PageBaseAddress
;
5914 uint32_t StartingCachelineOffset
;
5915 __gen_address_type PageBaseAddressHigh
;
5916 /* variable length fields follow */
5920 GEN75_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5921 const struct GEN75_MI_CLFLUSH
* restrict values
)
5923 uint32_t *dw
= (uint32_t * restrict
) dst
;
5926 __gen_field(values
->CommandType
, 29, 31) |
5927 __gen_field(values
->MICommandOpcode
, 23, 28) |
5928 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5929 __gen_field(values
->DwordLength
, 0, 9) |
5933 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
5937 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
5943 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
5945 /* variable length fields follow */
5948 #define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
5949 #define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_header\
5951 .MICommandOpcode = 54, \
5952 .UseGlobalGTT = 0, \
5953 .CompareSemaphore = 0, \
5956 #define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
5958 struct GEN75_MI_CONDITIONAL_BATCH_BUFFER_END
{
5959 uint32_t CommandType
;
5960 uint32_t MICommandOpcode
;
5961 uint32_t UseGlobalGTT
;
5962 uint32_t CompareSemaphore
;
5963 uint32_t DwordLength
;
5964 uint32_t CompareDataDword
;
5965 __gen_address_type CompareAddress
;
5969 GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
5970 const struct GEN75_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
5972 uint32_t *dw
= (uint32_t * restrict
) dst
;
5975 __gen_field(values
->CommandType
, 29, 31) |
5976 __gen_field(values
->MICommandOpcode
, 23, 28) |
5977 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5978 __gen_field(values
->CompareSemaphore
, 21, 21) |
5979 __gen_field(values
->DwordLength
, 0, 7) |
5983 __gen_field(values
->CompareDataDword
, 0, 31) |
5990 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
5994 #define GEN75_MI_FLUSH_length_bias 0x00000001
5995 #define GEN75_MI_FLUSH_header \
5997 .MICommandOpcode = 4
5999 #define GEN75_MI_FLUSH_length 0x00000001
6001 struct GEN75_MI_FLUSH
{
6002 uint32_t CommandType
;
6003 uint32_t MICommandOpcode
;
6004 bool IndirectStatePointersDisable
;
6005 bool GenericMediaStateClear
;
6008 bool GlobalSnapshotCountReset
;
6011 bool RenderCacheFlushInhibit
;
6012 #define DontInvalidate 0
6013 #define Invalidate 1
6014 bool StateInstructionCacheInvalidate
;
6018 GEN75_MI_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6019 const struct GEN75_MI_FLUSH
* restrict values
)
6021 uint32_t *dw
= (uint32_t * restrict
) dst
;
6024 __gen_field(values
->CommandType
, 29, 31) |
6025 __gen_field(values
->MICommandOpcode
, 23, 28) |
6026 __gen_field(values
->IndirectStatePointersDisable
, 5, 5) |
6027 __gen_field(values
->GenericMediaStateClear
, 4, 4) |
6028 __gen_field(values
->GlobalSnapshotCountReset
, 3, 3) |
6029 __gen_field(values
->RenderCacheFlushInhibit
, 2, 2) |
6030 __gen_field(values
->StateInstructionCacheInvalidate
, 1, 1) |
6035 #define GEN75_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
6036 #define GEN75_MI_LOAD_REGISTER_IMM_header \
6038 .MICommandOpcode = 34, \
6041 #define GEN75_MI_LOAD_REGISTER_IMM_length 0x00000003
6043 struct GEN75_MI_LOAD_REGISTER_IMM
{
6044 uint32_t CommandType
;
6045 uint32_t MICommandOpcode
;
6046 uint32_t ByteWriteDisables
;
6047 uint32_t DwordLength
;
6048 uint32_t RegisterOffset
;
6053 GEN75_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6054 const struct GEN75_MI_LOAD_REGISTER_IMM
* restrict values
)
6056 uint32_t *dw
= (uint32_t * restrict
) dst
;
6059 __gen_field(values
->CommandType
, 29, 31) |
6060 __gen_field(values
->MICommandOpcode
, 23, 28) |
6061 __gen_field(values
->ByteWriteDisables
, 8, 11) |
6062 __gen_field(values
->DwordLength
, 0, 7) |
6066 __gen_offset(values
->RegisterOffset
, 2, 22) |
6070 __gen_field(values
->DataDWord
, 0, 31) |
6075 #define GEN75_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
6076 #define GEN75_MI_LOAD_REGISTER_MEM_header \
6078 .MICommandOpcode = 41, \
6081 #define GEN75_MI_LOAD_REGISTER_MEM_length 0x00000003
6083 struct GEN75_MI_LOAD_REGISTER_MEM
{
6084 uint32_t CommandType
;
6085 uint32_t MICommandOpcode
;
6087 uint32_t AsyncModeEnable
;
6088 uint32_t DwordLength
;
6089 uint32_t RegisterAddress
;
6090 __gen_address_type MemoryAddress
;
6094 GEN75_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6095 const struct GEN75_MI_LOAD_REGISTER_MEM
* restrict values
)
6097 uint32_t *dw
= (uint32_t * restrict
) dst
;
6100 __gen_field(values
->CommandType
, 29, 31) |
6101 __gen_field(values
->MICommandOpcode
, 23, 28) |
6102 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6103 __gen_field(values
->AsyncModeEnable
, 21, 21) |
6104 __gen_field(values
->DwordLength
, 0, 7) |
6108 __gen_offset(values
->RegisterAddress
, 2, 22) |
6115 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6119 #define GEN75_MI_LOAD_REGISTER_REG_length_bias 0x00000002
6120 #define GEN75_MI_LOAD_REGISTER_REG_header \
6122 .MICommandOpcode = 42, \
6125 #define GEN75_MI_LOAD_REGISTER_REG_length 0x00000003
6127 struct GEN75_MI_LOAD_REGISTER_REG
{
6128 uint32_t CommandType
;
6129 uint32_t MICommandOpcode
;
6130 uint32_t DwordLength
;
6131 uint32_t SourceRegisterAddress
;
6132 uint32_t DestinationRegisterAddress
;
6136 GEN75_MI_LOAD_REGISTER_REG_pack(__gen_user_data
*data
, void * restrict dst
,
6137 const struct GEN75_MI_LOAD_REGISTER_REG
* restrict values
)
6139 uint32_t *dw
= (uint32_t * restrict
) dst
;
6142 __gen_field(values
->CommandType
, 29, 31) |
6143 __gen_field(values
->MICommandOpcode
, 23, 28) |
6144 __gen_field(values
->DwordLength
, 0, 7) |
6148 __gen_offset(values
->SourceRegisterAddress
, 2, 22) |
6152 __gen_offset(values
->DestinationRegisterAddress
, 2, 22) |
6157 #define GEN75_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
6158 #define GEN75_MI_LOAD_SCAN_LINES_EXCL_header \
6160 .MICommandOpcode = 19, \
6163 #define GEN75_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
6165 struct GEN75_MI_LOAD_SCAN_LINES_EXCL
{
6166 uint32_t CommandType
;
6167 uint32_t MICommandOpcode
;
6168 #define DisplayPlaneA 0
6169 #define DisplayPlaneB 1
6170 #define DisplayPlaneC 4
6171 uint32_t DisplayPlaneSelect
;
6172 uint32_t DwordLength
;
6173 uint32_t StartScanLineNumber
;
6174 uint32_t EndScanLineNumber
;
6178 GEN75_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data
*data
, void * restrict dst
,
6179 const struct GEN75_MI_LOAD_SCAN_LINES_EXCL
* restrict values
)
6181 uint32_t *dw
= (uint32_t * restrict
) dst
;
6184 __gen_field(values
->CommandType
, 29, 31) |
6185 __gen_field(values
->MICommandOpcode
, 23, 28) |
6186 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6187 __gen_field(values
->DwordLength
, 0, 5) |
6191 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6192 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6197 #define GEN75_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
6198 #define GEN75_MI_LOAD_SCAN_LINES_INCL_header \
6200 .MICommandOpcode = 18, \
6203 #define GEN75_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
6205 struct GEN75_MI_LOAD_SCAN_LINES_INCL
{
6206 uint32_t CommandType
;
6207 uint32_t MICommandOpcode
;
6208 #define DisplayPlaneA 0
6209 #define DisplayPlaneB 1
6210 #define DisplayPlaneC 4
6211 uint32_t DisplayPlaneSelect
;
6212 uint32_t DwordLength
;
6213 uint32_t StartScanLineNumber
;
6214 uint32_t EndScanLineNumber
;
6218 GEN75_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data
*data
, void * restrict dst
,
6219 const struct GEN75_MI_LOAD_SCAN_LINES_INCL
* restrict values
)
6221 uint32_t *dw
= (uint32_t * restrict
) dst
;
6224 __gen_field(values
->CommandType
, 29, 31) |
6225 __gen_field(values
->MICommandOpcode
, 23, 28) |
6226 __gen_field(values
->DisplayPlaneSelect
, 19, 21) |
6227 __gen_field(values
->DwordLength
, 0, 5) |
6231 __gen_field(values
->StartScanLineNumber
, 16, 28) |
6232 __gen_field(values
->EndScanLineNumber
, 0, 12) |
6237 #define GEN75_MI_LOAD_URB_MEM_length_bias 0x00000002
6238 #define GEN75_MI_LOAD_URB_MEM_header \
6240 .MICommandOpcode = 44, \
6243 #define GEN75_MI_LOAD_URB_MEM_length 0x00000003
6245 struct GEN75_MI_LOAD_URB_MEM
{
6246 uint32_t CommandType
;
6247 uint32_t MICommandOpcode
;
6248 uint32_t DwordLength
;
6249 uint32_t URBAddress
;
6250 __gen_address_type MemoryAddress
;
6254 GEN75_MI_LOAD_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6255 const struct GEN75_MI_LOAD_URB_MEM
* restrict values
)
6257 uint32_t *dw
= (uint32_t * restrict
) dst
;
6260 __gen_field(values
->CommandType
, 29, 31) |
6261 __gen_field(values
->MICommandOpcode
, 23, 28) |
6262 __gen_field(values
->DwordLength
, 0, 7) |
6266 __gen_field(values
->URBAddress
, 2, 14) |
6273 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6277 #define GEN75_MI_MATH_length_bias 0x00000002
6278 #define GEN75_MI_MATH_header \
6280 .MICommandOpcode = 26
6282 #define GEN75_MI_MATH_length 0x00000000
6284 struct GEN75_MI_MATH
{
6285 uint32_t CommandType
;
6286 uint32_t MICommandOpcode
;
6287 uint32_t DwordLength
;
6288 uint32_t ALUINSTRUCTION1
;
6289 uint32_t ALUINSTRUCTION2
;
6290 /* variable length fields follow */
6294 GEN75_MI_MATH_pack(__gen_user_data
*data
, void * restrict dst
,
6295 const struct GEN75_MI_MATH
* restrict values
)
6297 uint32_t *dw
= (uint32_t * restrict
) dst
;
6300 __gen_field(values
->CommandType
, 29, 31) |
6301 __gen_field(values
->MICommandOpcode
, 23, 28) |
6302 __gen_field(values
->DwordLength
, 0, 5) |
6306 __gen_field(values
->ALUINSTRUCTION1
, 0, 31) |
6310 __gen_field(values
->ALUINSTRUCTION2
, 0, 31) |
6313 /* variable length fields follow */
6316 #define GEN75_MI_NOOP_length_bias 0x00000001
6317 #define GEN75_MI_NOOP_header \
6319 .MICommandOpcode = 0
6321 #define GEN75_MI_NOOP_length 0x00000001
6323 struct GEN75_MI_NOOP
{
6324 uint32_t CommandType
;
6325 uint32_t MICommandOpcode
;
6326 bool IdentificationNumberRegisterWriteEnable
;
6327 uint32_t IdentificationNumber
;
6331 GEN75_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
6332 const struct GEN75_MI_NOOP
* restrict values
)
6334 uint32_t *dw
= (uint32_t * restrict
) dst
;
6337 __gen_field(values
->CommandType
, 29, 31) |
6338 __gen_field(values
->MICommandOpcode
, 23, 28) |
6339 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
6340 __gen_field(values
->IdentificationNumber
, 0, 21) |
6345 #define GEN75_MI_PREDICATE_length_bias 0x00000001
6346 #define GEN75_MI_PREDICATE_header \
6348 .MICommandOpcode = 12
6350 #define GEN75_MI_PREDICATE_length 0x00000001
6352 struct GEN75_MI_PREDICATE
{
6353 uint32_t CommandType
;
6354 uint32_t MICommandOpcode
;
6357 #define LOAD_LOADINV 3
6358 uint32_t LoadOperation
;
6359 #define COMBINE_SET 0
6360 #define COMBINE_AND 1
6361 #define COMBINE_OR 2
6362 #define COMBINE_XOR 3
6363 uint32_t CombineOperation
;
6364 #define COMPARE_SRCS_EQUAL 2
6365 #define COMPARE_DELTAS_EQUAL 3
6366 uint32_t CompareOperation
;
6370 GEN75_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
6371 const struct GEN75_MI_PREDICATE
* restrict values
)
6373 uint32_t *dw
= (uint32_t * restrict
) dst
;
6376 __gen_field(values
->CommandType
, 29, 31) |
6377 __gen_field(values
->MICommandOpcode
, 23, 28) |
6378 __gen_field(values
->LoadOperation
, 6, 7) |
6379 __gen_field(values
->CombineOperation
, 3, 4) |
6380 __gen_field(values
->CompareOperation
, 0, 1) |
6385 #define GEN75_MI_REPORT_HEAD_length_bias 0x00000001
6386 #define GEN75_MI_REPORT_HEAD_header \
6388 .MICommandOpcode = 7
6390 #define GEN75_MI_REPORT_HEAD_length 0x00000001
6392 struct GEN75_MI_REPORT_HEAD
{
6393 uint32_t CommandType
;
6394 uint32_t MICommandOpcode
;
6398 GEN75_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
6399 const struct GEN75_MI_REPORT_HEAD
* restrict values
)
6401 uint32_t *dw
= (uint32_t * restrict
) dst
;
6404 __gen_field(values
->CommandType
, 29, 31) |
6405 __gen_field(values
->MICommandOpcode
, 23, 28) |
6410 #define GEN75_MI_RS_CONTEXT_length_bias 0x00000001
6411 #define GEN75_MI_RS_CONTEXT_header \
6413 .MICommandOpcode = 15
6415 #define GEN75_MI_RS_CONTEXT_length 0x00000001
6417 struct GEN75_MI_RS_CONTEXT
{
6418 uint32_t CommandType
;
6419 uint32_t MICommandOpcode
;
6420 #define RS_RESTORE 0
6422 uint32_t ResourceStreamerSave
;
6426 GEN75_MI_RS_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
6427 const struct GEN75_MI_RS_CONTEXT
* restrict values
)
6429 uint32_t *dw
= (uint32_t * restrict
) dst
;
6432 __gen_field(values
->CommandType
, 29, 31) |
6433 __gen_field(values
->MICommandOpcode
, 23, 28) |
6434 __gen_field(values
->ResourceStreamerSave
, 0, 0) |
6439 #define GEN75_MI_RS_CONTROL_length_bias 0x00000001
6440 #define GEN75_MI_RS_CONTROL_header \
6442 .MICommandOpcode = 6
6444 #define GEN75_MI_RS_CONTROL_length 0x00000001
6446 struct GEN75_MI_RS_CONTROL
{
6447 uint32_t CommandType
;
6448 uint32_t MICommandOpcode
;
6451 uint32_t ResourceStreamerControl
;
6455 GEN75_MI_RS_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
6456 const struct GEN75_MI_RS_CONTROL
* restrict values
)
6458 uint32_t *dw
= (uint32_t * restrict
) dst
;
6461 __gen_field(values
->CommandType
, 29, 31) |
6462 __gen_field(values
->MICommandOpcode
, 23, 28) |
6463 __gen_field(values
->ResourceStreamerControl
, 0, 0) |
6468 #define GEN75_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
6469 #define GEN75_MI_RS_STORE_DATA_IMM_header \
6471 .MICommandOpcode = 43, \
6474 #define GEN75_MI_RS_STORE_DATA_IMM_length 0x00000004
6476 struct GEN75_MI_RS_STORE_DATA_IMM
{
6477 uint32_t CommandType
;
6478 uint32_t MICommandOpcode
;
6479 uint32_t DwordLength
;
6480 __gen_address_type DestinationAddress
;
6481 uint32_t CoreModeEnable
;
6482 uint32_t DataDWord0
;
6486 GEN75_MI_RS_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6487 const struct GEN75_MI_RS_STORE_DATA_IMM
* restrict values
)
6489 uint32_t *dw
= (uint32_t * restrict
) dst
;
6492 __gen_field(values
->CommandType
, 29, 31) |
6493 __gen_field(values
->MICommandOpcode
, 23, 28) |
6494 __gen_field(values
->DwordLength
, 0, 7) |
6501 __gen_field(values
->CoreModeEnable
, 0, 0) |
6505 __gen_combine_address(data
, &dw
[2], values
->DestinationAddress
, dw2
);
6508 __gen_field(values
->DataDWord0
, 0, 31) |
6513 #define GEN75_MI_SEMAPHORE_MBOX_length_bias 0x00000002
6514 #define GEN75_MI_SEMAPHORE_MBOX_header \
6516 .MICommandOpcode = 22, \
6519 #define GEN75_MI_SEMAPHORE_MBOX_length 0x00000003
6521 struct GEN75_MI_SEMAPHORE_MBOX
{
6522 uint32_t CommandType
;
6523 uint32_t MICommandOpcode
;
6527 #define UseGeneralRegisterSelect 3
6528 uint32_t RegisterSelect
;
6529 uint32_t GeneralRegisterSelect
;
6530 uint32_t DwordLength
;
6531 uint32_t SemaphoreDataDword
;
6535 GEN75_MI_SEMAPHORE_MBOX_pack(__gen_user_data
*data
, void * restrict dst
,
6536 const struct GEN75_MI_SEMAPHORE_MBOX
* restrict values
)
6538 uint32_t *dw
= (uint32_t * restrict
) dst
;
6541 __gen_field(values
->CommandType
, 29, 31) |
6542 __gen_field(values
->MICommandOpcode
, 23, 28) |
6543 __gen_field(values
->RegisterSelect
, 16, 17) |
6544 __gen_field(values
->GeneralRegisterSelect
, 8, 13) |
6545 __gen_field(values
->DwordLength
, 0, 7) |
6549 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
6557 #define GEN75_MI_SET_CONTEXT_length_bias 0x00000002
6558 #define GEN75_MI_SET_CONTEXT_header \
6560 .MICommandOpcode = 24, \
6563 #define GEN75_MI_SET_CONTEXT_length 0x00000002
6565 struct GEN75_MI_SET_CONTEXT
{
6566 uint32_t CommandType
;
6567 uint32_t MICommandOpcode
;
6568 uint32_t DwordLength
;
6569 __gen_address_type LogicalContextAddress
;
6570 uint32_t ReservedMustbe1
;
6571 bool CoreModeEnable
;
6572 bool ResourceStreamerStateSaveEnable
;
6573 bool ResourceStreamerStateRestoreEnable
;
6574 uint32_t ForceRestore
;
6575 uint32_t RestoreInhibit
;
6579 GEN75_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
6580 const struct GEN75_MI_SET_CONTEXT
* restrict values
)
6582 uint32_t *dw
= (uint32_t * restrict
) dst
;
6585 __gen_field(values
->CommandType
, 29, 31) |
6586 __gen_field(values
->MICommandOpcode
, 23, 28) |
6587 __gen_field(values
->DwordLength
, 0, 7) |
6591 __gen_field(values
->ReservedMustbe1
, 8, 8) |
6592 __gen_field(values
->CoreModeEnable
, 4, 4) |
6593 __gen_field(values
->ResourceStreamerStateSaveEnable
, 3, 3) |
6594 __gen_field(values
->ResourceStreamerStateRestoreEnable
, 2, 2) |
6595 __gen_field(values
->ForceRestore
, 1, 1) |
6596 __gen_field(values
->RestoreInhibit
, 0, 0) |
6600 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
6604 #define GEN75_MI_SET_PREDICATE_length_bias 0x00000001
6605 #define GEN75_MI_SET_PREDICATE_header \
6607 .MICommandOpcode = 1, \
6608 .PREDICATEENABLE = 6
6610 #define GEN75_MI_SET_PREDICATE_length 0x00000001
6612 struct GEN75_MI_SET_PREDICATE
{
6613 uint32_t CommandType
;
6614 uint32_t MICommandOpcode
;
6615 #define PredicateAlways 0
6616 #define PredicateonClear 1
6617 #define PredicateonSet 2
6618 #define PredicateDisable 3
6619 bool PREDICATEENABLE
;
6623 GEN75_MI_SET_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
6624 const struct GEN75_MI_SET_PREDICATE
* restrict values
)
6626 uint32_t *dw
= (uint32_t * restrict
) dst
;
6629 __gen_field(values
->CommandType
, 29, 31) |
6630 __gen_field(values
->MICommandOpcode
, 23, 28) |
6631 __gen_field(values
->PREDICATEENABLE
, 0, 1) |
6636 #define GEN75_MI_STORE_DATA_IMM_length_bias 0x00000002
6637 #define GEN75_MI_STORE_DATA_IMM_header \
6639 .MICommandOpcode = 32, \
6642 #define GEN75_MI_STORE_DATA_IMM_length 0x00000004
6644 struct GEN75_MI_STORE_DATA_IMM
{
6645 uint32_t CommandType
;
6646 uint32_t MICommandOpcode
;
6648 uint32_t DwordLength
;
6650 uint32_t CoreModeEnable
;
6651 uint32_t DataDWord0
;
6652 uint32_t DataDWord1
;
6656 GEN75_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
6657 const struct GEN75_MI_STORE_DATA_IMM
* restrict values
)
6659 uint32_t *dw
= (uint32_t * restrict
) dst
;
6662 __gen_field(values
->CommandType
, 29, 31) |
6663 __gen_field(values
->MICommandOpcode
, 23, 28) |
6664 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6665 __gen_field(values
->DwordLength
, 0, 5) |
6672 __gen_field(values
->Address
, 2, 31) |
6673 __gen_field(values
->CoreModeEnable
, 0, 0) |
6677 __gen_field(values
->DataDWord0
, 0, 31) |
6681 __gen_field(values
->DataDWord1
, 0, 31) |
6686 #define GEN75_MI_STORE_DATA_INDEX_length_bias 0x00000002
6687 #define GEN75_MI_STORE_DATA_INDEX_header \
6689 .MICommandOpcode = 33, \
6692 #define GEN75_MI_STORE_DATA_INDEX_length 0x00000003
6694 struct GEN75_MI_STORE_DATA_INDEX
{
6695 uint32_t CommandType
;
6696 uint32_t MICommandOpcode
;
6697 uint32_t DwordLength
;
6699 uint32_t DataDWord0
;
6700 uint32_t DataDWord1
;
6704 GEN75_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
6705 const struct GEN75_MI_STORE_DATA_INDEX
* restrict values
)
6707 uint32_t *dw
= (uint32_t * restrict
) dst
;
6710 __gen_field(values
->CommandType
, 29, 31) |
6711 __gen_field(values
->MICommandOpcode
, 23, 28) |
6712 __gen_field(values
->DwordLength
, 0, 7) |
6716 __gen_field(values
->Offset
, 2, 11) |
6720 __gen_field(values
->DataDWord0
, 0, 31) |
6724 __gen_field(values
->DataDWord1
, 0, 31) |
6729 #define GEN75_MI_STORE_URB_MEM_length_bias 0x00000002
6730 #define GEN75_MI_STORE_URB_MEM_header \
6732 .MICommandOpcode = 45, \
6735 #define GEN75_MI_STORE_URB_MEM_length 0x00000003
6737 struct GEN75_MI_STORE_URB_MEM
{
6738 uint32_t CommandType
;
6739 uint32_t MICommandOpcode
;
6740 uint32_t DwordLength
;
6741 uint32_t URBAddress
;
6742 __gen_address_type MemoryAddress
;
6746 GEN75_MI_STORE_URB_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
6747 const struct GEN75_MI_STORE_URB_MEM
* restrict values
)
6749 uint32_t *dw
= (uint32_t * restrict
) dst
;
6752 __gen_field(values
->CommandType
, 29, 31) |
6753 __gen_field(values
->MICommandOpcode
, 23, 28) |
6754 __gen_field(values
->DwordLength
, 0, 7) |
6758 __gen_field(values
->URBAddress
, 2, 14) |
6765 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
6769 #define GEN75_MI_SUSPEND_FLUSH_length_bias 0x00000001
6770 #define GEN75_MI_SUSPEND_FLUSH_header \
6772 .MICommandOpcode = 11
6774 #define GEN75_MI_SUSPEND_FLUSH_length 0x00000001
6776 struct GEN75_MI_SUSPEND_FLUSH
{
6777 uint32_t CommandType
;
6778 uint32_t MICommandOpcode
;
6783 GEN75_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
6784 const struct GEN75_MI_SUSPEND_FLUSH
* restrict values
)
6786 uint32_t *dw
= (uint32_t * restrict
) dst
;
6789 __gen_field(values
->CommandType
, 29, 31) |
6790 __gen_field(values
->MICommandOpcode
, 23, 28) |
6791 __gen_field(values
->SuspendFlush
, 0, 0) |
6796 #define GEN75_MI_TOPOLOGY_FILTER_length_bias 0x00000001
6797 #define GEN75_MI_TOPOLOGY_FILTER_header \
6799 .MICommandOpcode = 13
6801 #define GEN75_MI_TOPOLOGY_FILTER_length 0x00000001
6803 struct GEN75_MI_TOPOLOGY_FILTER
{
6804 uint32_t CommandType
;
6805 uint32_t MICommandOpcode
;
6806 uint32_t TopologyFilterValue
;
6810 GEN75_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
6811 const struct GEN75_MI_TOPOLOGY_FILTER
* restrict values
)
6813 uint32_t *dw
= (uint32_t * restrict
) dst
;
6816 __gen_field(values
->CommandType
, 29, 31) |
6817 __gen_field(values
->MICommandOpcode
, 23, 28) |
6818 __gen_field(values
->TopologyFilterValue
, 0, 5) |
6823 #define GEN75_MI_UPDATE_GTT_length_bias 0x00000002
6824 #define GEN75_MI_UPDATE_GTT_header \
6826 .MICommandOpcode = 35
6828 #define GEN75_MI_UPDATE_GTT_length 0x00000000
6830 struct GEN75_MI_UPDATE_GTT
{
6831 uint32_t CommandType
;
6832 uint32_t MICommandOpcode
;
6833 #define PerProcessGraphicsAddress 0
6834 #define GlobalGraphicsAddress 1
6835 uint32_t UseGlobalGTT
;
6836 uint32_t DwordLength
;
6837 __gen_address_type EntryAddress
;
6838 /* variable length fields follow */
6842 GEN75_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
6843 const struct GEN75_MI_UPDATE_GTT
* restrict values
)
6845 uint32_t *dw
= (uint32_t * restrict
) dst
;
6848 __gen_field(values
->CommandType
, 29, 31) |
6849 __gen_field(values
->MICommandOpcode
, 23, 28) |
6850 __gen_field(values
->UseGlobalGTT
, 22, 22) |
6851 __gen_field(values
->DwordLength
, 0, 7) |
6858 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
6860 /* variable length fields follow */
6863 #define GEN75_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
6864 #define GEN75_MI_URB_ATOMIC_ALLOC_header \
6866 .MICommandOpcode = 9
6868 #define GEN75_MI_URB_ATOMIC_ALLOC_length 0x00000001
6870 struct GEN75_MI_URB_ATOMIC_ALLOC
{
6871 uint32_t CommandType
;
6872 uint32_t MICommandOpcode
;
6873 uint32_t URBAtomicStorageOffset
;
6874 uint32_t URBAtomicStorageSize
;
6878 GEN75_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data
*data
, void * restrict dst
,
6879 const struct GEN75_MI_URB_ATOMIC_ALLOC
* restrict values
)
6881 uint32_t *dw
= (uint32_t * restrict
) dst
;
6884 __gen_field(values
->CommandType
, 29, 31) |
6885 __gen_field(values
->MICommandOpcode
, 23, 28) |
6886 __gen_field(values
->URBAtomicStorageOffset
, 12, 19) |
6887 __gen_field(values
->URBAtomicStorageSize
, 0, 8) |
6892 #define GEN75_MI_URB_CLEAR_length_bias 0x00000002
6893 #define GEN75_MI_URB_CLEAR_header \
6895 .MICommandOpcode = 25, \
6898 #define GEN75_MI_URB_CLEAR_length 0x00000002
6900 struct GEN75_MI_URB_CLEAR
{
6901 uint32_t CommandType
;
6902 uint32_t MICommandOpcode
;
6903 uint32_t DwordLength
;
6904 uint32_t URBClearLength
;
6905 uint32_t URBAddress
;
6909 GEN75_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
6910 const struct GEN75_MI_URB_CLEAR
* restrict values
)
6912 uint32_t *dw
= (uint32_t * restrict
) dst
;
6915 __gen_field(values
->CommandType
, 29, 31) |
6916 __gen_field(values
->MICommandOpcode
, 23, 28) |
6917 __gen_field(values
->DwordLength
, 0, 7) |
6921 __gen_field(values
->URBClearLength
, 16, 29) |
6922 __gen_offset(values
->URBAddress
, 0, 14) |
6927 #define GEN75_MI_USER_INTERRUPT_length_bias 0x00000001
6928 #define GEN75_MI_USER_INTERRUPT_header \
6930 .MICommandOpcode = 2
6932 #define GEN75_MI_USER_INTERRUPT_length 0x00000001
6934 struct GEN75_MI_USER_INTERRUPT
{
6935 uint32_t CommandType
;
6936 uint32_t MICommandOpcode
;
6940 GEN75_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
6941 const struct GEN75_MI_USER_INTERRUPT
* restrict values
)
6943 uint32_t *dw
= (uint32_t * restrict
) dst
;
6946 __gen_field(values
->CommandType
, 29, 31) |
6947 __gen_field(values
->MICommandOpcode
, 23, 28) |
6952 #define GEN75_MI_WAIT_FOR_EVENT_length_bias 0x00000001
6953 #define GEN75_MI_WAIT_FOR_EVENT_header \
6955 .MICommandOpcode = 3
6957 #define GEN75_MI_WAIT_FOR_EVENT_length 0x00000001
6959 struct GEN75_MI_WAIT_FOR_EVENT
{
6960 uint32_t CommandType
;
6961 uint32_t MICommandOpcode
;
6962 bool DisplayPipeCHorizontalBlankWaitEnable
;
6963 bool DisplayPipeCVerticalBlankWaitEnable
;
6964 bool DisplaySpriteCFlipPendingWaitEnable
;
6965 #define Notenabled 0
6966 uint32_t ConditionCodeWaitSelect
;
6967 bool DisplayPlaneCFlipPendingWaitEnable
;
6968 bool DisplayPipeCScanLineWaitEnable
;
6969 bool DisplayPipeBHorizontalBlankWaitEnable
;
6970 bool DisplayPipeBVerticalBlankWaitEnable
;
6971 bool DisplaySpriteBFlipPendingWaitEnable
;
6972 bool DisplayPlaneBFlipPendingWaitEnable
;
6973 bool DisplayPipeBScanLineWaitEnable
;
6974 bool DisplayPipeAHorizontalBlankWaitEnable
;
6975 bool DisplayPipeAVerticalBlankWaitEnable
;
6976 bool DisplaySpriteAFlipPendingWaitEnable
;
6977 bool DisplayPlaneAFlipPendingWaitEnable
;
6978 bool DisplayPipeAScanLineWaitEnable
;
6982 GEN75_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
6983 const struct GEN75_MI_WAIT_FOR_EVENT
* restrict values
)
6985 uint32_t *dw
= (uint32_t * restrict
) dst
;
6988 __gen_field(values
->CommandType
, 29, 31) |
6989 __gen_field(values
->MICommandOpcode
, 23, 28) |
6990 __gen_field(values
->DisplayPipeCHorizontalBlankWaitEnable
, 22, 22) |
6991 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
6992 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
6993 __gen_field(values
->ConditionCodeWaitSelect
, 16, 19) |
6994 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
6995 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
6996 __gen_field(values
->DisplayPipeBHorizontalBlankWaitEnable
, 13, 13) |
6997 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
6998 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
6999 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
7000 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
7001 __gen_field(values
->DisplayPipeAHorizontalBlankWaitEnable
, 5, 5) |
7002 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
7003 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
7004 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
7005 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
7010 #define GEN75_PIPE_CONTROL_length_bias 0x00000002
7011 #define GEN75_PIPE_CONTROL_header \
7013 .CommandSubType = 3, \
7014 ._3DCommandOpcode = 2, \
7015 ._3DCommandSubOpcode = 0, \
7018 #define GEN75_PIPE_CONTROL_length 0x00000005
7020 struct GEN75_PIPE_CONTROL
{
7021 uint32_t CommandType
;
7022 uint32_t CommandSubType
;
7023 uint32_t _3DCommandOpcode
;
7024 uint32_t _3DCommandSubOpcode
;
7025 uint32_t DwordLength
;
7028 uint32_t DestinationAddressType
;
7029 #define NoLRIOperation 0
7030 #define MMIOWriteImmediateData 1
7031 uint32_t LRIPostSyncOperation
;
7032 uint32_t StoreDataIndex
;
7033 uint32_t CommandStreamerStallEnable
;
7036 uint32_t GlobalSnapshotCountReset
;
7037 uint32_t TLBInvalidate
;
7038 bool GenericMediaStateClear
;
7040 #define WriteImmediateData 1
7041 #define WritePSDepthCount 2
7042 #define WriteTimestamp 3
7043 uint32_t PostSyncOperation
;
7044 bool DepthStallEnable
;
7045 #define DisableFlush 0
7046 #define EnableFlush 1
7047 bool RenderTargetCacheFlushEnable
;
7048 bool InstructionCacheInvalidateEnable
;
7049 bool TextureCacheInvalidationEnable
;
7050 bool IndirectStatePointersDisable
;
7052 bool PipeControlFlushEnable
;
7054 bool VFCacheInvalidationEnable
;
7055 bool ConstantCacheInvalidationEnable
;
7056 bool StateCacheInvalidationEnable
;
7057 bool StallAtPixelScoreboard
;
7058 #define FlushDisabled 0
7059 #define FlushEnabled 1
7060 bool DepthCacheFlushEnable
;
7061 __gen_address_type Address
;
7062 uint32_t ImmediateData
;
7063 uint32_t ImmediateData0
;
7067 GEN75_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
7068 const struct GEN75_PIPE_CONTROL
* restrict values
)
7070 uint32_t *dw
= (uint32_t * restrict
) dst
;
7073 __gen_field(values
->CommandType
, 29, 31) |
7074 __gen_field(values
->CommandSubType
, 27, 28) |
7075 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
7076 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
7077 __gen_field(values
->DwordLength
, 0, 7) |
7081 __gen_field(values
->DestinationAddressType
, 24, 24) |
7082 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
7083 __gen_field(values
->StoreDataIndex
, 21, 21) |
7084 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
7085 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
7086 __gen_field(values
->TLBInvalidate
, 18, 18) |
7087 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
7088 __gen_field(values
->PostSyncOperation
, 14, 15) |
7089 __gen_field(values
->DepthStallEnable
, 13, 13) |
7090 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
7091 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
7092 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
7093 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
7094 __gen_field(values
->NotifyEnable
, 8, 8) |
7095 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
7096 __gen_field(values
->DCFlushEnable
, 5, 5) |
7097 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
7098 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
7099 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
7100 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
7101 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
7108 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
7111 __gen_field(values
->ImmediateData
, 0, 31) |
7115 __gen_field(values
->ImmediateData
, 0, 31) |
7120 #define GEN75_SCISSOR_RECT_length 0x00000002
7122 struct GEN75_SCISSOR_RECT
{
7123 uint32_t ScissorRectangleYMin
;
7124 uint32_t ScissorRectangleXMin
;
7125 uint32_t ScissorRectangleYMax
;
7126 uint32_t ScissorRectangleXMax
;
7130 GEN75_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
7131 const struct GEN75_SCISSOR_RECT
* restrict values
)
7133 uint32_t *dw
= (uint32_t * restrict
) dst
;
7136 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
7137 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
7141 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
7142 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
7147 #define GEN75_SF_CLIP_VIEWPORT_length 0x00000010
7149 struct GEN75_SF_CLIP_VIEWPORT
{
7150 float ViewportMatrixElementm00
;
7151 float ViewportMatrixElementm11
;
7152 float ViewportMatrixElementm22
;
7153 float ViewportMatrixElementm30
;
7154 float ViewportMatrixElementm31
;
7155 float ViewportMatrixElementm32
;
7156 float XMinClipGuardband
;
7157 float XMaxClipGuardband
;
7158 float YMinClipGuardband
;
7159 float YMaxClipGuardband
;
7163 GEN75_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7164 const struct GEN75_SF_CLIP_VIEWPORT
* restrict values
)
7166 uint32_t *dw
= (uint32_t * restrict
) dst
;
7169 __gen_float(values
->ViewportMatrixElementm00
) |
7173 __gen_float(values
->ViewportMatrixElementm11
) |
7177 __gen_float(values
->ViewportMatrixElementm22
) |
7181 __gen_float(values
->ViewportMatrixElementm30
) |
7185 __gen_float(values
->ViewportMatrixElementm31
) |
7189 __gen_float(values
->ViewportMatrixElementm32
) |
7199 __gen_float(values
->XMinClipGuardband
) |
7203 __gen_float(values
->XMaxClipGuardband
) |
7207 __gen_float(values
->YMinClipGuardband
) |
7211 __gen_float(values
->YMaxClipGuardband
) |
7214 for (uint32_t i
= 0, j
= 12; i
< 4; i
+= 1, j
++) {
7221 #define GEN75_BLEND_STATE_length 0x00000002
7223 struct GEN75_BLEND_STATE
{
7224 bool ColorBufferBlendEnable
;
7225 bool IndependentAlphaBlendEnable
;
7226 #define BLENDFUNCTION_ADD 0
7227 #define BLENDFUNCTION_SUBTRACT 1
7228 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
7229 #define BLENDFUNCTION_MIN 3
7230 #define BLENDFUNCTION_MAX 4
7231 uint32_t AlphaBlendFunction
;
7232 #define BLENDFACTOR_ONE 1
7233 #define BLENDFACTOR_SRC_COLOR 2
7234 #define BLENDFACTOR_SRC_ALPHA 3
7235 #define BLENDFACTOR_DST_ALPHA 4
7236 #define BLENDFACTOR_DST_COLOR 5
7237 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
7238 #define BLENDFACTOR_CONST_COLOR 7
7239 #define BLENDFACTOR_CONST_ALPHA 8
7240 #define BLENDFACTOR_SRC1_COLOR 9
7241 #define BLENDFACTOR_SRC1_ALPHA 10
7242 #define BLENDFACTOR_ZERO 17
7243 #define BLENDFACTOR_INV_SRC_COLOR 18
7244 #define BLENDFACTOR_INV_SRC_ALPHA 19
7245 #define BLENDFACTOR_INV_DST_ALPHA 20
7246 #define BLENDFACTOR_INV_DST_COLOR 21
7247 #define BLENDFACTOR_INV_CONST_COLOR 23
7248 #define BLENDFACTOR_INV_CONST_ALPHA 24
7249 #define BLENDFACTOR_INV_SRC1_COLOR 25
7250 #define BLENDFACTOR_INV_SRC1_ALPHA 26
7251 uint32_t SourceAlphaBlendFactor
;
7252 uint32_t DestinationAlphaBlendFactor
;
7253 #define BLENDFUNCTION_ADD 0
7254 #define BLENDFUNCTION_SUBTRACT 1
7255 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
7256 #define BLENDFUNCTION_MIN 3
7257 #define BLENDFUNCTION_MAX 4
7258 uint32_t ColorBlendFunction
;
7259 uint32_t SourceBlendFactor
;
7260 uint32_t DestinationBlendFactor
;
7261 bool AlphaToCoverageEnable
;
7262 bool AlphaToOneEnable
;
7263 bool AlphaToCoverageDitherEnable
;
7264 bool WriteDisableAlpha
;
7265 bool WriteDisableRed
;
7266 bool WriteDisableGreen
;
7267 bool WriteDisableBlue
;
7269 #define LOGICOP_CLEAR 0
7270 #define LOGICOP_NOR 1
7271 #define LOGICOP_AND_INVERTED 2
7272 #define LOGICOP_COPY_INVERTED 3
7273 #define LOGICOP_AND_REVERSE 4
7274 #define LOGICOP_INVERT 5
7275 #define LOGICOP_XOR 6
7276 #define LOGICOP_NAND 7
7277 #define LOGICOP_AND 8
7278 #define LOGICOP_EQUIV 9
7279 #define LOGICOP_NOOP 10
7280 #define LOGICOP_OR_INVERTED 11
7281 #define LOGICOP_COPY 12
7282 #define LOGICOP_OR_REVERSE 13
7283 #define LOGICOP_OR 14
7284 #define LOGICOP_SET 15
7285 uint32_t LogicOpFunction
;
7286 bool AlphaTestEnable
;
7287 #define COMPAREFUNCTION_ALWAYS 0
7288 #define COMPAREFUNCTION_NEVER 1
7289 #define COMPAREFUNCTION_LESS 2
7290 #define COMPAREFUNCTION_EQUAL 3
7291 #define COMPAREFUNCTION_LEQUAL 4
7292 #define COMPAREFUNCTION_GREATER 5
7293 #define COMPAREFUNCTION_NOTEQUAL 6
7294 #define COMPAREFUNCTION_GEQUAL 7
7295 uint32_t AlphaTestFunction
;
7296 bool ColorDitherEnable
;
7297 uint32_t XDitherOffset
;
7298 uint32_t YDitherOffset
;
7299 #define COLORCLAMP_UNORM 0
7300 #define COLORCLAMP_SNORM 1
7301 #define COLORCLAMP_RTFORMAT 2
7302 uint32_t ColorClampRange
;
7303 bool PreBlendColorClampEnable
;
7304 bool PostBlendColorClampEnable
;
7308 GEN75_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7309 const struct GEN75_BLEND_STATE
* restrict values
)
7311 uint32_t *dw
= (uint32_t * restrict
) dst
;
7314 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
7315 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
7316 __gen_field(values
->AlphaBlendFunction
, 26, 28) |
7317 __gen_field(values
->SourceAlphaBlendFactor
, 20, 24) |
7318 __gen_field(values
->DestinationAlphaBlendFactor
, 15, 19) |
7319 __gen_field(values
->ColorBlendFunction
, 11, 13) |
7320 __gen_field(values
->SourceBlendFactor
, 5, 9) |
7321 __gen_field(values
->DestinationBlendFactor
, 0, 4) |
7325 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
7326 __gen_field(values
->AlphaToOneEnable
, 30, 30) |
7327 __gen_field(values
->AlphaToCoverageDitherEnable
, 29, 29) |
7328 __gen_field(values
->WriteDisableAlpha
, 27, 27) |
7329 __gen_field(values
->WriteDisableRed
, 26, 26) |
7330 __gen_field(values
->WriteDisableGreen
, 25, 25) |
7331 __gen_field(values
->WriteDisableBlue
, 24, 24) |
7332 __gen_field(values
->LogicOpEnable
, 22, 22) |
7333 __gen_field(values
->LogicOpFunction
, 18, 21) |
7334 __gen_field(values
->AlphaTestEnable
, 16, 16) |
7335 __gen_field(values
->AlphaTestFunction
, 13, 15) |
7336 __gen_field(values
->ColorDitherEnable
, 12, 12) |
7337 __gen_field(values
->XDitherOffset
, 10, 11) |
7338 __gen_field(values
->YDitherOffset
, 8, 9) |
7339 __gen_field(values
->ColorClampRange
, 2, 3) |
7340 __gen_field(values
->PreBlendColorClampEnable
, 1, 1) |
7341 __gen_field(values
->PostBlendColorClampEnable
, 0, 0) |
7346 #define GEN75_CC_VIEWPORT_length 0x00000002
7348 struct GEN75_CC_VIEWPORT
{
7354 GEN75_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
7355 const struct GEN75_CC_VIEWPORT
* restrict values
)
7357 uint32_t *dw
= (uint32_t * restrict
) dst
;
7360 __gen_float(values
->MinimumDepth
) |
7364 __gen_float(values
->MaximumDepth
) |
7369 #define GEN75_COLOR_CALC_STATE_length 0x00000006
7371 struct GEN75_COLOR_CALC_STATE
{
7372 uint32_t StencilReferenceValue
;
7373 uint32_t BackFaceStencilReferenceValue
;
7375 #define NotCancelled 1
7376 uint32_t RoundDisableFunctionDisable
;
7377 #define ALPHATEST_UNORM8 0
7378 #define ALPHATEST_FLOAT32 1
7379 uint32_t AlphaTestFormat
;
7380 uint32_t AlphaReferenceValueAsUNORM8
;
7381 float AlphaReferenceValueAsFLOAT32
;
7382 float BlendConstantColorRed
;
7383 float BlendConstantColorGreen
;
7384 float BlendConstantColorBlue
;
7385 float BlendConstantColorAlpha
;
7389 GEN75_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7390 const struct GEN75_COLOR_CALC_STATE
* restrict values
)
7392 uint32_t *dw
= (uint32_t * restrict
) dst
;
7395 __gen_field(values
->StencilReferenceValue
, 24, 31) |
7396 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
7397 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
7398 __gen_field(values
->AlphaTestFormat
, 0, 0) |
7402 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
7403 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
7407 __gen_float(values
->BlendConstantColorRed
) |
7411 __gen_float(values
->BlendConstantColorGreen
) |
7415 __gen_float(values
->BlendConstantColorBlue
) |
7419 __gen_float(values
->BlendConstantColorAlpha
) |
7424 #define GEN75_DEPTH_STENCIL_STATE_length 0x00000003
7426 struct GEN75_DEPTH_STENCIL_STATE
{
7427 bool StencilTestEnable
;
7428 #define COMPAREFUNCTION_ALWAYS 0
7429 #define COMPAREFUNCTION_NEVER 1
7430 #define COMPAREFUNCTION_LESS 2
7431 #define COMPAREFUNCTION_EQUAL 3
7432 #define COMPAREFUNCTION_LEQUAL 4
7433 #define COMPAREFUNCTION_GREATER 5
7434 #define COMPAREFUNCTION_NOTEQUAL 6
7435 #define COMPAREFUNCTION_GEQUAL 7
7436 uint32_t StencilTestFunction
;
7437 #define STENCILOP_KEEP 0
7438 #define STENCILOP_ZERO 1
7439 #define STENCILOP_REPLACE 2
7440 #define STENCILOP_INCRSAT 3
7441 #define STENCILOP_DECRSAT 4
7442 #define STENCILOP_INCR 5
7443 #define STENCILOP_DECR 6
7444 #define STENCILOP_INVERT 7
7445 uint32_t StencilFailOp
;
7446 uint32_t StencilPassDepthFailOp
;
7447 uint32_t StencilPassDepthPassOp
;
7448 bool StencilBufferWriteEnable
;
7449 bool DoubleSidedStencilEnable
;
7450 #define COMPAREFUNCTION_ALWAYS 0
7451 #define COMPAREFUNCTION_NEVER 1
7452 #define COMPAREFUNCTION_LESS 2
7453 #define COMPAREFUNCTION_EQUAL 3
7454 #define COMPAREFUNCTION_LEQUAL 4
7455 #define COMPAREFUNCTION_GREATER 5
7456 #define COMPAREFUNCTION_NOTEQUAL 6
7457 #define COMPAREFUNCTION_GEQUAL 7
7458 uint32_t BackFaceStencilTestFunction
;
7459 #define STENCILOP_KEEP 0
7460 #define STENCILOP_ZERO 1
7461 #define STENCILOP_REPLACE 2
7462 #define STENCILOP_INCRSAT 3
7463 #define STENCILOP_DECRSAT 4
7464 #define STENCILOP_INCR 5
7465 #define STENCILOP_DECR 6
7466 #define STENCILOP_INVERT 7
7467 uint32_t BackfaceStencilFailOp
;
7468 uint32_t BackfaceStencilPassDepthFailOp
;
7469 uint32_t BackfaceStencilPassDepthPassOp
;
7470 uint32_t StencilTestMask
;
7471 uint32_t StencilWriteMask
;
7472 uint32_t BackfaceStencilTestMask
;
7473 uint32_t BackfaceStencilWriteMask
;
7474 bool DepthTestEnable
;
7475 #define COMPAREFUNCTION_ALWAYS 0
7476 #define COMPAREFUNCTION_NEVER 1
7477 #define COMPAREFUNCTION_LESS 2
7478 #define COMPAREFUNCTION_EQUAL 3
7479 #define COMPAREFUNCTION_LEQUAL 4
7480 #define COMPAREFUNCTION_GREATER 5
7481 #define COMPAREFUNCTION_NOTEQUAL 6
7482 #define COMPAREFUNCTION_GEQUAL 7
7483 uint32_t DepthTestFunction
;
7484 bool DepthBufferWriteEnable
;
7488 GEN75_DEPTH_STENCIL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7489 const struct GEN75_DEPTH_STENCIL_STATE
* restrict values
)
7491 uint32_t *dw
= (uint32_t * restrict
) dst
;
7494 __gen_field(values
->StencilTestEnable
, 31, 31) |
7495 __gen_field(values
->StencilTestFunction
, 28, 30) |
7496 __gen_field(values
->StencilFailOp
, 25, 27) |
7497 __gen_field(values
->StencilPassDepthFailOp
, 22, 24) |
7498 __gen_field(values
->StencilPassDepthPassOp
, 19, 21) |
7499 __gen_field(values
->StencilBufferWriteEnable
, 18, 18) |
7500 __gen_field(values
->DoubleSidedStencilEnable
, 15, 15) |
7501 __gen_field(values
->BackFaceStencilTestFunction
, 12, 14) |
7502 __gen_field(values
->BackfaceStencilFailOp
, 9, 11) |
7503 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 6, 8) |
7504 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 3, 5) |
7508 __gen_field(values
->StencilTestMask
, 24, 31) |
7509 __gen_field(values
->StencilWriteMask
, 16, 23) |
7510 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
7511 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
7515 __gen_field(values
->DepthTestEnable
, 31, 31) |
7516 __gen_field(values
->DepthTestFunction
, 27, 29) |
7517 __gen_field(values
->DepthBufferWriteEnable
, 26, 26) |
7522 #define GEN75_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
7524 struct GEN75_INTERFACE_DESCRIPTOR_DATA
{
7525 uint32_t KernelStartPointer
;
7528 uint32_t SingleProgramFlow
;
7529 #define NormalPriority 0
7530 #define HighPriority 1
7531 uint32_t ThreadPriority
;
7534 uint32_t FloatingPointMode
;
7535 bool IllegalOpcodeExceptionEnable
;
7536 bool MaskStackExceptionEnable
;
7537 bool SoftwareExceptionEnable
;
7538 uint32_t SamplerStatePointer
;
7539 #define Nosamplersused 0
7540 #define Between1and4samplersused 1
7541 #define Between5and8samplersused 2
7542 #define Between9and12samplersused 3
7543 #define Between13and16samplersused 4
7544 uint32_t SamplerCount
;
7545 uint32_t BindingTablePointer
;
7546 uint32_t BindingTableEntryCount
;
7547 uint32_t ConstantURBEntryReadLength
;
7552 uint32_t RoundingMode
;
7554 uint32_t SharedLocalMemorySize
;
7555 uint32_t NumberofThreadsinGPGPUThreadGroup
;
7556 uint32_t CrossThreadConstantDataReadLength
;
7560 GEN75_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
7561 const struct GEN75_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
7563 uint32_t *dw
= (uint32_t * restrict
) dst
;
7566 __gen_offset(values
->KernelStartPointer
, 6, 31) |
7570 __gen_field(values
->SingleProgramFlow
, 18, 18) |
7571 __gen_field(values
->ThreadPriority
, 17, 17) |
7572 __gen_field(values
->FloatingPointMode
, 16, 16) |
7573 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
7574 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
7575 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
7579 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
7580 __gen_field(values
->SamplerCount
, 2, 4) |
7584 __gen_offset(values
->BindingTablePointer
, 5, 15) |
7585 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
7589 __gen_field(values
->ConstantURBEntryReadLength
, 16, 31) |
7593 __gen_field(values
->RoundingMode
, 22, 23) |
7594 __gen_field(values
->BarrierEnable
, 21, 21) |
7595 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
7596 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 7) |
7600 __gen_field(values
->CrossThreadConstantDataReadLength
, 0, 7) |
7608 #define GEN75_BINDING_TABLE_STATE_length 0x00000001
7610 struct GEN75_BINDING_TABLE_STATE
{
7611 uint32_t SurfaceStatePointer
;
7615 GEN75_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7616 const struct GEN75_BINDING_TABLE_STATE
* restrict values
)
7618 uint32_t *dw
= (uint32_t * restrict
) dst
;
7621 __gen_offset(values
->SurfaceStatePointer
, 5, 31) |
7626 #define GEN75_RENDER_SURFACE_STATE_length 0x00000008
7628 struct GEN75_RENDER_SURFACE_STATE
{
7629 #define SURFTYPE_1D 0
7630 #define SURFTYPE_2D 1
7631 #define SURFTYPE_3D 2
7632 #define SURFTYPE_CUBE 3
7633 #define SURFTYPE_BUFFER 4
7634 #define SURFTYPE_STRBUF 5
7635 #define SURFTYPE_NULL 7
7636 uint32_t SurfaceType
;
7638 uint32_t SurfaceFormat
;
7641 uint32_t SurfaceVerticalAlignment
;
7644 uint32_t SurfaceHorizontalAlignment
;
7645 uint32_t TiledSurface
;
7646 #define TILEWALK_XMAJOR 0
7647 #define TILEWALK_YMAJOR 1
7649 uint32_t VerticalLineStride
;
7650 uint32_t VerticalLineStrideOffset
;
7651 #define ARYSPC_FULL 0
7652 #define ARYSPC_LOD0 1
7653 uint32_t SurfaceArraySpacing
;
7654 uint32_t RenderCacheReadWriteMode
;
7655 #define NORMAL_MODE 0
7656 #define PROGRESSIVE_FRAME 2
7657 #define INTERLACED_FRAME 3
7658 uint32_t MediaBoundaryPixelMode
;
7659 uint32_t CubeFaceEnables
;
7660 __gen_address_type SurfaceBaseAddress
;
7664 uint32_t IntegerSurfaceFormat
;
7665 uint32_t SurfacePitch
;
7666 #define RTROTATE_0DEG 0
7667 #define RTROTATE_90DEG 1
7668 #define RTROTATE_270DEG 3
7669 uint32_t RenderTargetRotation
;
7670 uint32_t MinimumArrayElement
;
7671 uint32_t RenderTargetViewExtent
;
7673 #define MSFMT_DEPTH_STENCIL 1
7674 uint32_t MultisampledSurfaceStorageFormat
;
7675 #define MULTISAMPLECOUNT_1 0
7676 #define MULTISAMPLECOUNT_4 2
7677 #define MULTISAMPLECOUNT_8 3
7678 uint32_t NumberofMultisamples
;
7679 uint32_t MultisamplePositionPaletteIndex
;
7680 uint32_t MinimumArrayElement0
;
7683 struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
7684 uint32_t SurfaceMinLOD
;
7685 uint32_t MIPCountLOD
;
7686 __gen_address_type MCSBaseAddress
;
7687 uint32_t MCSSurfacePitch
;
7688 __gen_address_type AppendCounterAddress
;
7689 bool AppendCounterEnable
;
7691 uint32_t XOffsetforUVPlane
;
7692 uint32_t YOffsetforUVPlane
;
7699 uint32_t ShaderChannelSelectR
;
7700 uint32_t ShaderChannelSelectG
;
7701 uint32_t ShaderChannelSelectB
;
7702 uint32_t ShaderChannelSelectA
;
7703 float ResourceMinLOD
;
7707 GEN75_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7708 const struct GEN75_RENDER_SURFACE_STATE
* restrict values
)
7710 uint32_t *dw
= (uint32_t * restrict
) dst
;
7713 __gen_field(values
->SurfaceType
, 29, 31) |
7714 __gen_field(values
->SurfaceArray
, 28, 28) |
7715 __gen_field(values
->SurfaceFormat
, 18, 26) |
7716 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
7717 __gen_field(values
->SurfaceHorizontalAlignment
, 15, 15) |
7718 __gen_field(values
->TiledSurface
, 14, 14) |
7719 __gen_field(values
->TileWalk
, 13, 13) |
7720 __gen_field(values
->VerticalLineStride
, 12, 12) |
7721 __gen_field(values
->VerticalLineStrideOffset
, 11, 11) |
7722 __gen_field(values
->SurfaceArraySpacing
, 10, 10) |
7723 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
7724 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
7725 __gen_field(values
->CubeFaceEnables
, 0, 5) |
7732 __gen_combine_address(data
, &dw
[1], values
->SurfaceBaseAddress
, dw1
);
7735 __gen_field(values
->Height
, 16, 29) |
7736 __gen_field(values
->Width
, 0, 13) |
7740 __gen_field(values
->Depth
, 21, 31) |
7741 __gen_field(values
->IntegerSurfaceFormat
, 18, 20) |
7742 __gen_field(values
->SurfacePitch
, 0, 17) |
7746 __gen_field(values
->RenderTargetRotation
, 29, 30) |
7747 __gen_field(values
->MinimumArrayElement
, 18, 28) |
7748 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
7749 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
7750 __gen_field(values
->NumberofMultisamples
, 3, 5) |
7751 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
7752 __gen_field(values
->MinimumArrayElement
, 0, 26) |
7755 uint32_t dw_SurfaceObjectControlState
;
7756 GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
7758 __gen_offset(values
->XOffset
, 25, 31) |
7759 __gen_offset(values
->YOffset
, 20, 23) |
7760 __gen_field(dw_SurfaceObjectControlState
, 16, 19) |
7761 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
7762 __gen_field(values
->MIPCountLOD
, 0, 3) |
7766 __gen_field(values
->MCSSurfacePitch
, 3, 11) |
7767 __gen_field(values
->AppendCounterEnable
, 1, 1) |
7768 __gen_field(values
->MCSEnable
, 0, 0) |
7769 __gen_field(values
->XOffsetforUVPlane
, 16, 29) |
7770 __gen_field(values
->YOffsetforUVPlane
, 0, 13) |
7774 __gen_combine_address(data
, &dw
[6], values
->AppendCounterAddress
, dw6
);
7777 __gen_field(values
->ShaderChannelSelectR
, 25, 27) |
7778 __gen_field(values
->ShaderChannelSelectG
, 22, 24) |
7779 __gen_field(values
->ShaderChannelSelectB
, 19, 21) |
7780 __gen_field(values
->ShaderChannelSelectA
, 16, 18) |
7781 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
7786 #define GEN75_SAMPLER_BORDER_COLOR_STATE_length 0x00000014
7788 #define GEN75_BORDER_COLOR_UINT32_SINT32_length 0x00000004
7790 struct GEN75_BORDER_COLOR_UINT32_SINT32
{
7791 uint32_t BorderColorRedui32integerunclamp
;
7792 uint32_t BorderColorRedsi32integerunclamp
;
7793 uint32_t BorderColorGreenui32integerunclamp
;
7794 uint32_t BorderColorGreensi32integerunclamp
;
7795 uint32_t BorderColorBlueui32integerunclamp
;
7796 uint32_t BorderColorBluesi32integerunclamp
;
7797 uint32_t BorderColorGreenui32integerunclamp0
;
7798 uint32_t BorderColorGreensi32integerunclamp0
;
7799 uint32_t BorderColorAlphaui32integerunclamp
;
7800 uint32_t BorderColorAlphasi32integerunclamp
;
7804 GEN75_BORDER_COLOR_UINT32_SINT32_pack(__gen_user_data
*data
, void * restrict dst
,
7805 const struct GEN75_BORDER_COLOR_UINT32_SINT32
* restrict values
)
7807 uint32_t *dw
= (uint32_t * restrict
) dst
;
7810 __gen_field(values
->BorderColorRedui32integerunclamp
, 0, 31) |
7811 __gen_field(values
->BorderColorRedsi32integerunclamp
, 0, 31) |
7815 __gen_field(values
->BorderColorGreenui32integerunclamp
, 0, 31) |
7816 __gen_field(values
->BorderColorGreensi32integerunclamp
, 0, 31) |
7820 __gen_field(values
->BorderColorBlueui32integerunclamp
, 0, 31) |
7821 __gen_field(values
->BorderColorBluesi32integerunclamp
, 0, 31) |
7822 __gen_field(values
->BorderColorGreenui32integerunclamp
, 0, 31) |
7823 __gen_field(values
->BorderColorGreensi32integerunclamp
, 0, 31) |
7827 __gen_field(values
->BorderColorAlphaui32integerunclamp
, 0, 31) |
7828 __gen_field(values
->BorderColorAlphasi32integerunclamp
, 0, 31) |
7833 #define GEN75_BORDER_COLOR_UINT16_SINT16_length 0x00000004
7835 struct GEN75_BORDER_COLOR_UINT16_SINT16
{
7836 uint32_t BorderColorGreenclamptouint16
;
7837 uint32_t BorderColorGreenclamptosint16
;
7838 uint32_t BorderColorRedclamptouint16
;
7839 uint32_t BorderColorRedclamptosint16
;
7840 uint32_t BorderColorAlphaclamptouint16
;
7841 uint32_t BorderColorAlphaclamptosint16
;
7842 uint32_t BorderColorBlueclamptouint16
;
7843 uint32_t BorderColorBlueclamptosint16
;
7847 GEN75_BORDER_COLOR_UINT16_SINT16_pack(__gen_user_data
*data
, void * restrict dst
,
7848 const struct GEN75_BORDER_COLOR_UINT16_SINT16
* restrict values
)
7850 uint32_t *dw
= (uint32_t * restrict
) dst
;
7853 __gen_field(values
->BorderColorGreenclamptouint16
, 16, 31) |
7854 __gen_field(values
->BorderColorGreenclamptosint16
, 16, 31) |
7855 __gen_field(values
->BorderColorRedclamptouint16
, 0, 15) |
7856 __gen_field(values
->BorderColorRedclamptosint16
, 0, 15) |
7863 __gen_field(values
->BorderColorAlphaclamptouint16
, 16, 31) |
7864 __gen_field(values
->BorderColorAlphaclamptosint16
, 16, 31) |
7865 __gen_field(values
->BorderColorBlueclamptouint16
, 0, 15) |
7866 __gen_field(values
->BorderColorBlueclamptosint16
, 0, 15) |
7874 #define GEN75_BORDER_COLOR_UINT8_SINT8_length 0x00000004
7876 struct GEN75_BORDER_COLOR_UINT8_SINT8
{
7877 uint32_t BorderColorAlphaclamptouint8
;
7878 uint32_t BorderColorAlphaclamptosint8
;
7879 uint32_t BorderColorBlueclamptouint8
;
7880 uint32_t BorderColorBlueclamptosint8
;
7881 uint32_t BorderColorGreenclamptouint8
;
7882 uint32_t BorderColorGreenclamptosint8
;
7883 uint32_t BorderRedAlphaclamptouint8
;
7884 uint32_t BorderRedAlphaclamptosint8
;
7888 GEN75_BORDER_COLOR_UINT8_SINT8_pack(__gen_user_data
*data
, void * restrict dst
,
7889 const struct GEN75_BORDER_COLOR_UINT8_SINT8
* restrict values
)
7891 uint32_t *dw
= (uint32_t * restrict
) dst
;
7894 __gen_field(values
->BorderColorAlphaclamptouint8
, 24, 31) |
7895 __gen_field(values
->BorderColorAlphaclamptosint8
, 24, 31) |
7896 __gen_field(values
->BorderColorBlueclamptouint8
, 16, 23) |
7897 __gen_field(values
->BorderColorBlueclamptosint8
, 16, 23) |
7898 __gen_field(values
->BorderColorGreenclamptouint8
, 8, 15) |
7899 __gen_field(values
->BorderColorGreenclamptosint8
, 8, 15) |
7900 __gen_field(values
->BorderRedAlphaclamptouint8
, 0, 7) |
7901 __gen_field(values
->BorderRedAlphaclamptosint8
, 0, 7) |
7915 struct GEN75_SAMPLER_BORDER_COLOR_STATE
{
7916 float BorderColorRedDX100GL
;
7917 uint32_t BorderColorAlpha
;
7918 uint32_t BorderColorBlue
;
7919 uint32_t BorderColorGreen
;
7920 uint32_t BorderColorRedDX9
;
7921 float BorderColorGreen0
;
7922 float BorderColorBlue0
;
7923 float BorderColorAlpha0
;
7924 struct GEN75_BORDER_COLOR_UINT32_SINT32 BorderColor
;
7925 struct GEN75_BORDER_COLOR_UINT16_SINT16 BorderColor0
;
7926 struct GEN75_BORDER_COLOR_UINT8_SINT8 BorderColor1
;
7930 GEN75_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
7931 const struct GEN75_SAMPLER_BORDER_COLOR_STATE
* restrict values
)
7933 uint32_t *dw
= (uint32_t * restrict
) dst
;
7936 __gen_float(values
->BorderColorRedDX100GL
) |
7937 __gen_field(values
->BorderColorAlpha
, 24, 31) |
7938 __gen_field(values
->BorderColorBlue
, 16, 23) |
7939 __gen_field(values
->BorderColorGreen
, 8, 15) |
7940 __gen_field(values
->BorderColorRedDX9
, 0, 7) |
7944 __gen_float(values
->BorderColorGreen
) |
7948 __gen_float(values
->BorderColorBlue
) |
7952 __gen_float(values
->BorderColorAlpha
) |
7955 for (uint32_t i
= 0, j
= 4; i
< 12; i
+= 1, j
++) {
7960 GEN75_BORDER_COLOR_UINT32_SINT32_pack(data
, &dw
[16], &values
->BorderColor
);
7963 #define GEN75_SAMPLER_STATE_length 0x00000004
7965 struct GEN75_SAMPLER_STATE
{
7966 bool SamplerDisable
;
7969 uint32_t TextureBorderColorMode
;
7971 uint32_t LODPreClampEnable
;
7973 #define MIPFILTER_NONE 0
7974 #define MIPFILTER_NEAREST 1
7975 #define MIPFILTER_LINEAR 3
7976 uint32_t MipModeFilter
;
7977 #define MAPFILTER_NEAREST 0
7978 #define MAPFILTER_LINEAR 1
7979 #define MAPFILTER_ANISOTROPIC 2
7980 #define MAPFILTER_MONO 6
7981 uint32_t MagModeFilter
;
7982 #define MAPFILTER_NEAREST 0
7983 #define MAPFILTER_LINEAR 1
7984 #define MAPFILTER_ANISOTROPIC 2
7985 #define MAPFILTER_MONO 6
7986 uint32_t MinModeFilter
;
7987 uint32_t TextureLODBias
;
7989 #define EWAApproximation 1
7990 uint32_t AnisotropicAlgorithm
;
7993 #define PREFILTEROPALWAYS 0
7994 #define PREFILTEROPNEVER 1
7995 #define PREFILTEROPLESS 2
7996 #define PREFILTEROPEQUAL 3
7997 #define PREFILTEROPLEQUAL 4
7998 #define PREFILTEROPGREATER 5
7999 #define PREFILTEROPNOTEQUAL 6
8000 #define PREFILTEROPGEQUAL 7
8001 uint32_t ShadowFunction
;
8002 #define PROGRAMMED 0
8004 uint32_t CubeSurfaceControlMode
;
8005 uint32_t BorderColorPointer
;
8006 bool ChromaKeyEnable
;
8007 uint32_t ChromaKeyIndex
;
8008 #define KEYFILTER_KILL_ON_ANY_MATCH 0
8009 #define KEYFILTER_REPLACE_BLACK 1
8010 uint32_t ChromaKeyMode
;
8019 uint32_t MaximumAnisotropy
;
8020 bool RAddressMinFilterRoundingEnable
;
8021 bool RAddressMagFilterRoundingEnable
;
8022 bool VAddressMinFilterRoundingEnable
;
8023 bool VAddressMagFilterRoundingEnable
;
8024 bool UAddressMinFilterRoundingEnable
;
8025 bool UAddressMagFilterRoundingEnable
;
8027 #define TRIQUAL_HIGHMAG_CLAMP_MIPFILTER 1
8030 uint32_t TrilinearFilterQuality
;
8031 bool NonnormalizedCoordinateEnable
;
8032 uint32_t TCXAddressControlMode
;
8033 uint32_t TCYAddressControlMode
;
8034 uint32_t TCZAddressControlMode
;
8038 GEN75_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
8039 const struct GEN75_SAMPLER_STATE
* restrict values
)
8041 uint32_t *dw
= (uint32_t * restrict
) dst
;
8044 __gen_field(values
->SamplerDisable
, 31, 31) |
8045 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
8046 __gen_field(values
->LODPreClampEnable
, 28, 28) |
8047 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
8048 __gen_field(values
->MipModeFilter
, 20, 21) |
8049 __gen_field(values
->MagModeFilter
, 17, 19) |
8050 __gen_field(values
->MinModeFilter
, 14, 16) |
8051 __gen_field(values
->TextureLODBias
, 1, 13) |
8052 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
8056 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
8057 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
8058 __gen_field(values
->ShadowFunction
, 1, 3) |
8059 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
8063 __gen_offset(values
->BorderColorPointer
, 5, 31) |
8067 __gen_field(values
->ChromaKeyEnable
, 25, 25) |
8068 __gen_field(values
->ChromaKeyIndex
, 23, 24) |
8069 __gen_field(values
->ChromaKeyMode
, 22, 22) |
8070 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
8071 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
8072 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
8073 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
8074 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
8075 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
8076 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
8077 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
8078 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
8079 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
8080 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
8081 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
8086 /* Enum 3D_Prim_Topo_Type */
8087 #define _3DPRIM_POINTLIST 1
8088 #define _3DPRIM_LINELIST 2
8089 #define _3DPRIM_LINESTRIP 3
8090 #define _3DPRIM_TRILIST 4
8091 #define _3DPRIM_TRISTRIP 5
8092 #define _3DPRIM_TRIFAN 6
8093 #define _3DPRIM_QUADLIST 7
8094 #define _3DPRIM_QUADSTRIP 8
8095 #define _3DPRIM_LINELIST_ADJ 9
8096 #define _3DPRIM_LINESTRIP_ADJ 10
8097 #define _3DPRIM_TRILIST_ADJ 11
8098 #define _3DPRIM_TRISTRIP_ADJ 12
8099 #define _3DPRIM_TRISTRIP_REVERSE 13
8100 #define _3DPRIM_POLYGON 14
8101 #define _3DPRIM_RECTLIST 15
8102 #define _3DPRIM_LINELOOP 16
8103 #define _3DPRIM_POINTLIST_BF 17
8104 #define _3DPRIM_LINESTRIP_CONT 18
8105 #define _3DPRIM_LINESTRIP_BF 19
8106 #define _3DPRIM_LINESTRIP_CONT_BF 20
8107 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
8108 #define _3DPRIM_PATCHLIST_1 32
8109 #define _3DPRIM_PATCHLIST_2 33
8110 #define _3DPRIM_PATCHLIST_3 34
8111 #define _3DPRIM_PATCHLIST_4 35
8112 #define _3DPRIM_PATCHLIST_5 36
8113 #define _3DPRIM_PATCHLIST_6 37
8114 #define _3DPRIM_PATCHLIST_7 38
8115 #define _3DPRIM_PATCHLIST_8 39
8116 #define _3DPRIM_PATCHLIST_9 40
8117 #define _3DPRIM_PATCHLIST_10 41
8118 #define _3DPRIM_PATCHLIST_11 42
8119 #define _3DPRIM_PATCHLIST_12 43
8120 #define _3DPRIM_PATCHLIST_13 44
8121 #define _3DPRIM_PATCHLIST_14 45
8122 #define _3DPRIM_PATCHLIST_15 46
8123 #define _3DPRIM_PATCHLIST_16 47
8124 #define _3DPRIM_PATCHLIST_17 48
8125 #define _3DPRIM_PATCHLIST_18 49
8126 #define _3DPRIM_PATCHLIST_19 50
8127 #define _3DPRIM_PATCHLIST_20 51
8128 #define _3DPRIM_PATCHLIST_21 52
8129 #define _3DPRIM_PATCHLIST_22 53
8130 #define _3DPRIM_PATCHLIST_23 54
8131 #define _3DPRIM_PATCHLIST_24 55
8132 #define _3DPRIM_PATCHLIST_25 56
8133 #define _3DPRIM_PATCHLIST_26 57
8134 #define _3DPRIM_PATCHLIST_27 58
8135 #define _3DPRIM_PATCHLIST_28 59
8136 #define _3DPRIM_PATCHLIST_29 60
8137 #define _3DPRIM_PATCHLIST_30 61
8138 #define _3DPRIM_PATCHLIST_31 62
8139 #define _3DPRIM_PATCHLIST_32 63
8141 /* Enum 3D_Vertex_Component_Control */
8142 #define VFCOMP_NOSTORE 0
8143 #define VFCOMP_STORE_SRC 1
8144 #define VFCOMP_STORE_0 2
8145 #define VFCOMP_STORE_1_FP 3
8146 #define VFCOMP_STORE_1_INT 4
8147 #define VFCOMP_STORE_VID 5
8148 #define VFCOMP_STORE_IID 6
8149 #define VFCOMP_STORE_PID 7
8151 /* Enum 3D_Compare_Function */
8152 #define COMPAREFUNCTION_ALWAYS 0
8153 #define COMPAREFUNCTION_NEVER 1
8154 #define COMPAREFUNCTION_LESS 2
8155 #define COMPAREFUNCTION_EQUAL 3
8156 #define COMPAREFUNCTION_LEQUAL 4
8157 #define COMPAREFUNCTION_GREATER 5
8158 #define COMPAREFUNCTION_NOTEQUAL 6
8159 #define COMPAREFUNCTION_GEQUAL 7
8161 /* Enum SURFACE_FORMAT */
8162 #define R32G32B32A32_FLOAT 0
8163 #define R32G32B32A32_SINT 1
8164 #define R32G32B32A32_UINT 2
8165 #define R32G32B32A32_UNORM 3
8166 #define R32G32B32A32_SNORM 4
8167 #define R64G64_FLOAT 5
8168 #define R32G32B32X32_FLOAT 6
8169 #define R32G32B32A32_SSCALED 7
8170 #define R32G32B32A32_USCALED 8
8171 #define R32G32B32A32_SFIXED 32
8172 #define R64G64_PASSTHRU 33
8173 #define R32G32B32_FLOAT 64
8174 #define R32G32B32_SINT 65
8175 #define R32G32B32_UINT 66
8176 #define R32G32B32_UNORM 67
8177 #define R32G32B32_SNORM 68
8178 #define R32G32B32_SSCALED 69
8179 #define R32G32B32_USCALED 70
8180 #define R32G32B32_SFIXED 80
8181 #define R16G16B16A16_UNORM 128
8182 #define R16G16B16A16_SNORM 129
8183 #define R16G16B16A16_SINT 130
8184 #define R16G16B16A16_UINT 131
8185 #define R16G16B16A16_FLOAT 132
8186 #define R32G32_FLOAT 133
8187 #define R32G32_SINT 134
8188 #define R32G32_UINT 135
8189 #define R32_FLOAT_X8X24_TYPELESS 136
8190 #define X32_TYPELESS_G8X24_UINT 137
8191 #define L32A32_FLOAT 138
8192 #define R32G32_UNORM 139
8193 #define R32G32_SNORM 140
8194 #define R64_FLOAT 141
8195 #define R16G16B16X16_UNORM 142
8196 #define R16G16B16X16_FLOAT 143
8197 #define A32X32_FLOAT 144
8198 #define L32X32_FLOAT 145
8199 #define I32X32_FLOAT 146
8200 #define R16G16B16A16_SSCALED 147
8201 #define R16G16B16A16_USCALED 148
8202 #define R32G32_SSCALED 149
8203 #define R32G32_USCALED 150
8204 #define R32G32_SFIXED 160
8205 #define R64_PASSTHRU 161
8206 #define B8G8R8A8_UNORM 192
8207 #define B8G8R8A8_UNORM_SRGB 193
8208 #define R10G10B10A2_UNORM 194
8209 #define R10G10B10A2_UNORM_SRGB 195
8210 #define R10G10B10A2_UINT 196
8211 #define R10G10B10_SNORM_A2_UNORM 197
8212 #define R8G8B8A8_UNORM 199
8213 #define R8G8B8A8_UNORM_SRGB 200
8214 #define R8G8B8A8_SNORM 201
8215 #define R8G8B8A8_SINT 202
8216 #define R8G8B8A8_UINT 203
8217 #define R16G16_UNORM 204
8218 #define R16G16_SNORM 205
8219 #define R16G16_SINT 206
8220 #define R16G16_UINT 207
8221 #define R16G16_FLOAT 208
8222 #define B10G10R10A2_UNORM 209
8223 #define B10G10R10A2_UNORM_SRGB 210
8224 #define R11G11B10_FLOAT 211
8225 #define R32_SINT 214
8226 #define R32_UINT 215
8227 #define R32_FLOAT 216
8228 #define R24_UNORM_X8_TYPELESS 217
8229 #define X24_TYPELESS_G8_UINT 218
8230 #define L32_UNORM 221
8231 #define A32_UNORM 222
8232 #define L16A16_UNORM 223
8233 #define I24X8_UNORM 224
8234 #define L24X8_UNORM 225
8235 #define A24X8_UNORM 226
8236 #define I32_FLOAT 227
8237 #define L32_FLOAT 228
8238 #define A32_FLOAT 229
8239 #define X8B8_UNORM_G8R8_SNORM 230
8240 #define A8X8_UNORM_G8R8_SNORM 231
8241 #define B8X8_UNORM_G8R8_SNORM 232
8242 #define B8G8R8X8_UNORM 233
8243 #define B8G8R8X8_UNORM_SRGB 234
8244 #define R8G8B8X8_UNORM 235
8245 #define R8G8B8X8_UNORM_SRGB 236
8246 #define R9G9B9E5_SHAREDEXP 237
8247 #define B10G10R10X2_UNORM 238
8248 #define L16A16_FLOAT 240
8249 #define R32_UNORM 241
8250 #define R32_SNORM 242
8251 #define R10G10B10X2_USCALED 243
8252 #define R8G8B8A8_SSCALED 244
8253 #define R8G8B8A8_USCALED 245
8254 #define R16G16_SSCALED 246
8255 #define R16G16_USCALED 247
8256 #define R32_SSCALED 248
8257 #define R32_USCALED 249
8258 #define B5G6R5_UNORM 256
8259 #define B5G6R5_UNORM_SRGB 257
8260 #define B5G5R5A1_UNORM 258
8261 #define B5G5R5A1_UNORM_SRGB 259
8262 #define B4G4R4A4_UNORM 260
8263 #define B4G4R4A4_UNORM_SRGB 261
8264 #define R8G8_UNORM 262
8265 #define R8G8_SNORM 263
8266 #define R8G8_SINT 264
8267 #define R8G8_UINT 265
8268 #define R16_UNORM 266
8269 #define R16_SNORM 267
8270 #define R16_SINT 268
8271 #define R16_UINT 269
8272 #define R16_FLOAT 270
8273 #define A8P8_UNORM_PALETTE0 271
8274 #define A8P8_UNORM_PALETTE1 272
8275 #define I16_UNORM 273
8276 #define L16_UNORM 274
8277 #define A16_UNORM 275
8278 #define L8A8_UNORM 276
8279 #define I16_FLOAT 277
8280 #define L16_FLOAT 278
8281 #define A16_FLOAT 279
8282 #define L8A8_UNORM_SRGB 280
8283 #define R5G5_SNORM_B6_UNORM 281
8284 #define B5G5R5X1_UNORM 282
8285 #define B5G5R5X1_UNORM_SRGB 283
8286 #define R8G8_SSCALED 284
8287 #define R8G8_USCALED 285
8288 #define R16_SSCALED 286
8289 #define R16_USCALED 287
8290 #define P8A8_UNORM_PALETTE0 290
8291 #define P8A8_UNORM_PALETTE1 291
8292 #define A1B5G5R5_UNORM 292
8293 #define A4B4G4R4_UNORM 293
8294 #define L8A8_UINT 294
8295 #define L8A8_SINT 295
8296 #define R8_UNORM 320
8297 #define R8_SNORM 321
8300 #define A8_UNORM 324
8301 #define I8_UNORM 325
8302 #define L8_UNORM 326
8303 #define P4A4_UNORM_PALETTE0 327
8304 #define A4P4_UNORM_PALETTE0 328
8305 #define R8_SSCALED 329
8306 #define R8_USCALED 330
8307 #define P8_UNORM_PALETTE0 331
8308 #define L8_UNORM_SRGB 332
8309 #define P8_UNORM_PALETTE1 333
8310 #define P4A4_UNORM_PALETTE1 334
8311 #define A4P4_UNORM_PALETTE1 335
8312 #define Y8_UNORM 336
8317 #define DXT1_RGB_SRGB 384
8318 #define R1_UNORM 385
8319 #define YCRCB_NORMAL 386
8320 #define YCRCB_SWAPUVY 387
8321 #define P2_UNORM_PALETTE0 388
8322 #define P2_UNORM_PALETTE1 389
8323 #define BC1_UNORM 390
8324 #define BC2_UNORM 391
8325 #define BC3_UNORM 392
8326 #define BC4_UNORM 393
8327 #define BC5_UNORM 394
8328 #define BC1_UNORM_SRGB 395
8329 #define BC2_UNORM_SRGB 396
8330 #define BC3_UNORM_SRGB 397
8332 #define YCRCB_SWAPUV 399
8333 #define YCRCB_SWAPY 400
8334 #define DXT1_RGB 401
8336 #define R8G8B8_UNORM 403
8337 #define R8G8B8_SNORM 404
8338 #define R8G8B8_SSCALED 405
8339 #define R8G8B8_USCALED 406
8340 #define R64G64B64A64_FLOAT 407
8341 #define R64G64B64_FLOAT 408
8342 #define BC4_SNORM 409
8343 #define BC5_SNORM 410
8344 #define R16G16B16_FLOAT 411
8345 #define R16G16B16_UNORM 412
8346 #define R16G16B16_SNORM 413
8347 #define R16G16B16_SSCALED 414
8348 #define R16G16B16_USCALED 415
8349 #define BC6H_SF16 417
8350 #define BC7_UNORM 418
8351 #define BC7_UNORM_SRGB 419
8352 #define BC6H_UF16 420
8353 #define PLANAR_420_8 421
8354 #define R8G8B8_UNORM_SRGB 424
8355 #define ETC1_RGB8 425
8356 #define ETC2_RGB8 426
8358 #define EAC_RG11 428
8359 #define EAC_SIGNED_R11 429
8360 #define EAC_SIGNED_RG11 430
8361 #define ETC2_SRGB8 431
8362 #define R16G16B16_UINT 432
8363 #define R16G16B16_SINT 433
8364 #define R32_SFIXED 434
8365 #define R10G10B10A2_SNORM 435
8366 #define R10G10B10A2_USCALED 436
8367 #define R10G10B10A2_SSCALED 437
8368 #define R10G10B10A2_SINT 438
8369 #define B10G10R10A2_SNORM 439
8370 #define B10G10R10A2_USCALED 440
8371 #define B10G10R10A2_SSCALED 441
8372 #define B10G10R10A2_UINT 442
8373 #define B10G10R10A2_SINT 443
8374 #define R64G64B64A64_PASSTHRU 444
8375 #define R64G64B64_PASSTHRU 445
8376 #define ETC2_RGB8_PTA 448
8377 #define ETC2_SRGB8_PTA 449
8378 #define ETC2_EAC_RGBA8 450
8379 #define ETC2_EAC_SRGB8_A8 451
8380 #define R8G8B8_UINT 456
8381 #define R8G8B8_SINT 457
8384 /* Enum Texture Coordinate Mode */
8386 #define TCM_MIRROR 1
8389 #define TCM_CLAMP_BORDER 4
8390 #define TCM_MIRROR_ONCE 5