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 IVB.
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 GEN7_3DSTATE_URB_VS_length_bias 0x00000002
96 #define GEN7_3DSTATE_URB_VS_header \
98 .CommandSubType = 3, \
99 ._3DCommandOpcode = 0, \
100 ._3DCommandSubOpcode = 48, \
103 #define GEN7_3DSTATE_URB_VS_length 0x00000002
105 struct GEN7_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 GEN7_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
118 const struct GEN7_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, 29) |
132 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
133 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
138 #define GEN7_MI_STORE_REGISTER_MEM_length_bias 0x00000002
139 #define GEN7_MI_STORE_REGISTER_MEM_header \
141 .MICommandOpcode = 36, \
144 #define GEN7_MI_STORE_REGISTER_MEM_length 0x00000003
146 struct GEN7_MI_STORE_REGISTER_MEM
{
147 uint32_t CommandType
;
148 uint32_t MICommandOpcode
;
150 uint32_t DwordLength
;
151 uint32_t RegisterAddress
;
152 __gen_address_type MemoryAddress
;
156 GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
157 const struct GEN7_MI_STORE_REGISTER_MEM
* restrict values
)
159 uint32_t *dw
= (uint32_t * restrict
) dst
;
162 __gen_field(values
->CommandType
, 29, 31) |
163 __gen_field(values
->MICommandOpcode
, 23, 28) |
164 __gen_field(values
->UseGlobalGTT
, 22, 22) |
165 __gen_field(values
->DwordLength
, 0, 7) |
169 __gen_offset(values
->RegisterAddress
, 2, 22) |
176 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
180 #define GEN7_PIPELINE_SELECT_length_bias 0x00000001
181 #define GEN7_PIPELINE_SELECT_header \
183 .CommandSubType = 1, \
184 ._3DCommandOpcode = 1, \
185 ._3DCommandSubOpcode = 4
187 #define GEN7_PIPELINE_SELECT_length 0x00000001
189 struct GEN7_PIPELINE_SELECT
{
190 uint32_t CommandType
;
191 uint32_t CommandSubType
;
192 uint32_t _3DCommandOpcode
;
193 uint32_t _3DCommandSubOpcode
;
197 uint32_t PipelineSelection
;
201 GEN7_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
202 const struct GEN7_PIPELINE_SELECT
* restrict values
)
204 uint32_t *dw
= (uint32_t * restrict
) dst
;
207 __gen_field(values
->CommandType
, 29, 31) |
208 __gen_field(values
->CommandSubType
, 27, 28) |
209 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
210 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
211 __gen_field(values
->PipelineSelection
, 0, 1) |
216 #define GEN7_STATE_BASE_ADDRESS_length_bias 0x00000002
217 #define GEN7_STATE_BASE_ADDRESS_header \
219 .CommandSubType = 0, \
220 ._3DCommandOpcode = 1, \
221 ._3DCommandSubOpcode = 1, \
224 #define GEN7_STATE_BASE_ADDRESS_length 0x0000000a
226 #define GEN7_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
228 struct GEN7_MEMORY_OBJECT_CONTROL_STATE
{
229 uint32_t GraphicsDataTypeGFDT
;
230 uint32_t LLCCacheabilityControlLLCCC
;
231 uint32_t L3CacheabilityControlL3CC
;
235 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
236 const struct GEN7_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
238 uint32_t *dw
= (uint32_t * restrict
) dst
;
241 __gen_field(values
->GraphicsDataTypeGFDT
, 2, 2) |
242 __gen_field(values
->LLCCacheabilityControlLLCCC
, 1, 1) |
243 __gen_field(values
->L3CacheabilityControlL3CC
, 0, 0) |
248 struct GEN7_STATE_BASE_ADDRESS
{
249 uint32_t CommandType
;
250 uint32_t CommandSubType
;
251 uint32_t _3DCommandOpcode
;
252 uint32_t _3DCommandSubOpcode
;
253 uint32_t DwordLength
;
254 __gen_address_type GeneralStateBaseAddress
;
255 struct GEN7_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
256 struct GEN7_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
257 uint32_t StatelessDataPortAccessForceWriteThru
;
258 bool GeneralStateBaseAddressModifyEnable
;
259 __gen_address_type SurfaceStateBaseAddress
;
260 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
261 bool SurfaceStateBaseAddressModifyEnable
;
262 __gen_address_type DynamicStateBaseAddress
;
263 struct GEN7_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
264 bool DynamicStateBaseAddressModifyEnable
;
265 __gen_address_type IndirectObjectBaseAddress
;
266 struct GEN7_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
267 bool IndirectObjectBaseAddressModifyEnable
;
268 __gen_address_type InstructionBaseAddress
;
269 struct GEN7_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
270 bool InstructionBaseAddressModifyEnable
;
271 __gen_address_type GeneralStateAccessUpperBound
;
272 bool GeneralStateAccessUpperBoundModifyEnable
;
273 __gen_address_type DynamicStateAccessUpperBound
;
274 bool DynamicStateAccessUpperBoundModifyEnable
;
275 __gen_address_type IndirectObjectAccessUpperBound
;
276 bool IndirectObjectAccessUpperBoundModifyEnable
;
277 __gen_address_type InstructionAccessUpperBound
;
278 bool InstructionAccessUpperBoundModifyEnable
;
282 GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
283 const struct GEN7_STATE_BASE_ADDRESS
* restrict values
)
285 uint32_t *dw
= (uint32_t * restrict
) dst
;
288 __gen_field(values
->CommandType
, 29, 31) |
289 __gen_field(values
->CommandSubType
, 27, 28) |
290 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
291 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
292 __gen_field(values
->DwordLength
, 0, 7) |
295 uint32_t dw_GeneralStateMemoryObjectControlState
;
296 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
297 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
298 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
300 __gen_field(dw_GeneralStateMemoryObjectControlState
, 8, 11) |
301 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 4, 7) |
302 __gen_field(values
->StatelessDataPortAccessForceWriteThru
, 3, 3) |
303 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
307 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
309 uint32_t dw_SurfaceStateMemoryObjectControlState
;
310 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
312 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 8, 11) |
313 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
317 __gen_combine_address(data
, &dw
[2], values
->SurfaceStateBaseAddress
, dw2
);
319 uint32_t dw_DynamicStateMemoryObjectControlState
;
320 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
322 __gen_field(dw_DynamicStateMemoryObjectControlState
, 8, 11) |
323 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
327 __gen_combine_address(data
, &dw
[3], values
->DynamicStateBaseAddress
, dw3
);
329 uint32_t dw_IndirectObjectMemoryObjectControlState
;
330 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
332 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 8, 11) |
333 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
337 __gen_combine_address(data
, &dw
[4], values
->IndirectObjectBaseAddress
, dw4
);
339 uint32_t dw_InstructionMemoryObjectControlState
;
340 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
342 __gen_field(dw_InstructionMemoryObjectControlState
, 8, 11) |
343 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
347 __gen_combine_address(data
, &dw
[5], values
->InstructionBaseAddress
, dw5
);
350 __gen_field(values
->GeneralStateAccessUpperBoundModifyEnable
, 0, 0) |
354 __gen_combine_address(data
, &dw
[6], values
->GeneralStateAccessUpperBound
, dw6
);
357 __gen_field(values
->DynamicStateAccessUpperBoundModifyEnable
, 0, 0) |
361 __gen_combine_address(data
, &dw
[7], values
->DynamicStateAccessUpperBound
, dw7
);
364 __gen_field(values
->IndirectObjectAccessUpperBoundModifyEnable
, 0, 0) |
368 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectAccessUpperBound
, dw8
);
371 __gen_field(values
->InstructionAccessUpperBoundModifyEnable
, 0, 0) |
375 __gen_combine_address(data
, &dw
[9], values
->InstructionAccessUpperBound
, dw9
);
379 #define GEN7_STATE_PREFETCH_length_bias 0x00000002
380 #define GEN7_STATE_PREFETCH_header \
382 .CommandSubType = 0, \
383 ._3DCommandOpcode = 0, \
384 ._3DCommandSubOpcode = 3, \
387 #define GEN7_STATE_PREFETCH_length 0x00000002
389 struct GEN7_STATE_PREFETCH
{
390 uint32_t CommandType
;
391 uint32_t CommandSubType
;
392 uint32_t _3DCommandOpcode
;
393 uint32_t _3DCommandSubOpcode
;
394 uint32_t DwordLength
;
395 __gen_address_type PrefetchPointer
;
396 uint32_t PrefetchCount
;
400 GEN7_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
401 const struct GEN7_STATE_PREFETCH
* restrict values
)
403 uint32_t *dw
= (uint32_t * restrict
) dst
;
406 __gen_field(values
->CommandType
, 29, 31) |
407 __gen_field(values
->CommandSubType
, 27, 28) |
408 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
409 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
410 __gen_field(values
->DwordLength
, 0, 7) |
414 __gen_field(values
->PrefetchCount
, 0, 2) |
418 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
422 #define GEN7_STATE_SIP_length_bias 0x00000002
423 #define GEN7_STATE_SIP_header \
425 .CommandSubType = 0, \
426 ._3DCommandOpcode = 1, \
427 ._3DCommandSubOpcode = 2, \
430 #define GEN7_STATE_SIP_length 0x00000002
432 struct GEN7_STATE_SIP
{
433 uint32_t CommandType
;
434 uint32_t CommandSubType
;
435 uint32_t _3DCommandOpcode
;
436 uint32_t _3DCommandSubOpcode
;
437 uint32_t DwordLength
;
438 uint32_t SystemInstructionPointer
;
442 GEN7_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
443 const struct GEN7_STATE_SIP
* restrict values
)
445 uint32_t *dw
= (uint32_t * restrict
) dst
;
448 __gen_field(values
->CommandType
, 29, 31) |
449 __gen_field(values
->CommandSubType
, 27, 28) |
450 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
451 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
452 __gen_field(values
->DwordLength
, 0, 7) |
456 __gen_offset(values
->SystemInstructionPointer
, 4, 31) |
461 #define GEN7_SWTESS_BASE_ADDRESS_length_bias 0x00000002
462 #define GEN7_SWTESS_BASE_ADDRESS_header \
464 .CommandSubType = 0, \
465 ._3DCommandOpcode = 1, \
466 ._3DCommandSubOpcode = 3, \
469 #define GEN7_SWTESS_BASE_ADDRESS_length 0x00000002
471 struct GEN7_SWTESS_BASE_ADDRESS
{
472 uint32_t CommandType
;
473 uint32_t CommandSubType
;
474 uint32_t _3DCommandOpcode
;
475 uint32_t _3DCommandSubOpcode
;
476 uint32_t DwordLength
;
477 __gen_address_type SWTessellationBaseAddress
;
478 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
482 GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
483 const struct GEN7_SWTESS_BASE_ADDRESS
* restrict values
)
485 uint32_t *dw
= (uint32_t * restrict
) dst
;
488 __gen_field(values
->CommandType
, 29, 31) |
489 __gen_field(values
->CommandSubType
, 27, 28) |
490 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
491 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
492 __gen_field(values
->DwordLength
, 0, 7) |
495 uint32_t dw_SWTessellationMemoryObjectControlState
;
496 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
498 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
502 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
506 #define GEN7_3DPRIMITIVE_length_bias 0x00000002
507 #define GEN7_3DPRIMITIVE_header \
509 .CommandSubType = 3, \
510 ._3DCommandOpcode = 3, \
511 ._3DCommandSubOpcode = 0, \
514 #define GEN7_3DPRIMITIVE_length 0x00000007
516 struct GEN7_3DPRIMITIVE
{
517 uint32_t CommandType
;
518 uint32_t CommandSubType
;
519 uint32_t _3DCommandOpcode
;
520 uint32_t _3DCommandSubOpcode
;
521 bool IndirectParameterEnable
;
522 bool PredicateEnable
;
523 uint32_t DwordLength
;
524 bool EndOffsetEnable
;
527 uint32_t VertexAccessType
;
528 uint32_t PrimitiveTopologyType
;
529 uint32_t VertexCountPerInstance
;
530 uint32_t StartVertexLocation
;
531 uint32_t InstanceCount
;
532 uint32_t StartInstanceLocation
;
533 uint32_t BaseVertexLocation
;
537 GEN7_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
538 const struct GEN7_3DPRIMITIVE
* restrict values
)
540 uint32_t *dw
= (uint32_t * restrict
) dst
;
543 __gen_field(values
->CommandType
, 29, 31) |
544 __gen_field(values
->CommandSubType
, 27, 28) |
545 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
546 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
547 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
548 __gen_field(values
->PredicateEnable
, 8, 8) |
549 __gen_field(values
->DwordLength
, 0, 7) |
553 __gen_field(values
->EndOffsetEnable
, 9, 9) |
554 __gen_field(values
->VertexAccessType
, 8, 8) |
555 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
559 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
563 __gen_field(values
->StartVertexLocation
, 0, 31) |
567 __gen_field(values
->InstanceCount
, 0, 31) |
571 __gen_field(values
->StartInstanceLocation
, 0, 31) |
575 __gen_field(values
->BaseVertexLocation
, 0, 31) |
580 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
581 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_header \
583 .CommandSubType = 3, \
584 ._3DCommandOpcode = 1, \
585 ._3DCommandSubOpcode = 10, \
588 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
590 struct GEN7_3DSTATE_AA_LINE_PARAMETERS
{
591 uint32_t CommandType
;
592 uint32_t CommandSubType
;
593 uint32_t _3DCommandOpcode
;
594 uint32_t _3DCommandSubOpcode
;
595 uint32_t DwordLength
;
596 float AACoverageBias
;
597 float AACoverageSlope
;
598 float AACoverageEndCapBias
;
599 float AACoverageEndCapSlope
;
603 GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
604 const struct GEN7_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
606 uint32_t *dw
= (uint32_t * restrict
) dst
;
609 __gen_field(values
->CommandType
, 29, 31) |
610 __gen_field(values
->CommandSubType
, 27, 28) |
611 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
612 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
613 __gen_field(values
->DwordLength
, 0, 7) |
617 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
618 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
622 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
623 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
628 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
629 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
631 .CommandSubType = 3, \
632 ._3DCommandOpcode = 0, \
633 ._3DCommandSubOpcode = 40, \
636 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
638 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
{
639 uint32_t CommandType
;
640 uint32_t CommandSubType
;
641 uint32_t _3DCommandOpcode
;
642 uint32_t _3DCommandSubOpcode
;
643 uint32_t DwordLength
;
644 uint32_t PointertoDSBindingTable
;
648 GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
649 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
651 uint32_t *dw
= (uint32_t * restrict
) dst
;
654 __gen_field(values
->CommandType
, 29, 31) |
655 __gen_field(values
->CommandSubType
, 27, 28) |
656 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
657 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
658 __gen_field(values
->DwordLength
, 0, 7) |
662 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
667 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
668 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
670 .CommandSubType = 3, \
671 ._3DCommandOpcode = 0, \
672 ._3DCommandSubOpcode = 41, \
675 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
677 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
{
678 uint32_t CommandType
;
679 uint32_t CommandSubType
;
680 uint32_t _3DCommandOpcode
;
681 uint32_t _3DCommandSubOpcode
;
682 uint32_t DwordLength
;
683 uint32_t PointertoGSBindingTable
;
687 GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
688 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
690 uint32_t *dw
= (uint32_t * restrict
) dst
;
693 __gen_field(values
->CommandType
, 29, 31) |
694 __gen_field(values
->CommandSubType
, 27, 28) |
695 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
696 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
697 __gen_field(values
->DwordLength
, 0, 7) |
701 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
706 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
707 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
709 .CommandSubType = 3, \
710 ._3DCommandOpcode = 0, \
711 ._3DCommandSubOpcode = 39, \
714 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
716 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
{
717 uint32_t CommandType
;
718 uint32_t CommandSubType
;
719 uint32_t _3DCommandOpcode
;
720 uint32_t _3DCommandSubOpcode
;
721 uint32_t DwordLength
;
722 uint32_t PointertoHSBindingTable
;
726 GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
727 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
729 uint32_t *dw
= (uint32_t * restrict
) dst
;
732 __gen_field(values
->CommandType
, 29, 31) |
733 __gen_field(values
->CommandSubType
, 27, 28) |
734 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
735 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
736 __gen_field(values
->DwordLength
, 0, 7) |
740 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
745 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
746 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
748 .CommandSubType = 3, \
749 ._3DCommandOpcode = 0, \
750 ._3DCommandSubOpcode = 42, \
753 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
755 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
{
756 uint32_t CommandType
;
757 uint32_t CommandSubType
;
758 uint32_t _3DCommandOpcode
;
759 uint32_t _3DCommandSubOpcode
;
760 uint32_t DwordLength
;
761 uint32_t PointertoPSBindingTable
;
765 GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
766 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
768 uint32_t *dw
= (uint32_t * restrict
) dst
;
771 __gen_field(values
->CommandType
, 29, 31) |
772 __gen_field(values
->CommandSubType
, 27, 28) |
773 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
774 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
775 __gen_field(values
->DwordLength
, 0, 7) |
779 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
784 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
785 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
787 .CommandSubType = 3, \
788 ._3DCommandOpcode = 0, \
789 ._3DCommandSubOpcode = 38, \
792 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
794 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
{
795 uint32_t CommandType
;
796 uint32_t CommandSubType
;
797 uint32_t _3DCommandOpcode
;
798 uint32_t _3DCommandSubOpcode
;
799 uint32_t DwordLength
;
800 uint32_t PointertoVSBindingTable
;
804 GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
805 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
807 uint32_t *dw
= (uint32_t * restrict
) dst
;
810 __gen_field(values
->CommandType
, 29, 31) |
811 __gen_field(values
->CommandSubType
, 27, 28) |
812 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
813 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
814 __gen_field(values
->DwordLength
, 0, 7) |
818 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
823 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
824 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_header\
826 .CommandSubType = 3, \
827 ._3DCommandOpcode = 0, \
828 ._3DCommandSubOpcode = 36, \
831 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
833 struct GEN7_3DSTATE_BLEND_STATE_POINTERS
{
834 uint32_t CommandType
;
835 uint32_t CommandSubType
;
836 uint32_t _3DCommandOpcode
;
837 uint32_t _3DCommandSubOpcode
;
838 uint32_t DwordLength
;
839 uint32_t BlendStatePointer
;
843 GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
844 const struct GEN7_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
846 uint32_t *dw
= (uint32_t * restrict
) dst
;
849 __gen_field(values
->CommandType
, 29, 31) |
850 __gen_field(values
->CommandSubType
, 27, 28) |
851 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
852 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
853 __gen_field(values
->DwordLength
, 0, 7) |
857 __gen_offset(values
->BlendStatePointer
, 6, 31) |
863 #define GEN7_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
864 #define GEN7_3DSTATE_CC_STATE_POINTERS_header \
866 .CommandSubType = 3, \
867 ._3DCommandOpcode = 0, \
868 ._3DCommandSubOpcode = 14, \
871 #define GEN7_3DSTATE_CC_STATE_POINTERS_length 0x00000002
873 struct GEN7_3DSTATE_CC_STATE_POINTERS
{
874 uint32_t CommandType
;
875 uint32_t CommandSubType
;
876 uint32_t _3DCommandOpcode
;
877 uint32_t _3DCommandSubOpcode
;
878 uint32_t DwordLength
;
879 uint32_t ColorCalcStatePointer
;
883 GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
884 const struct GEN7_3DSTATE_CC_STATE_POINTERS
* restrict values
)
886 uint32_t *dw
= (uint32_t * restrict
) dst
;
889 __gen_field(values
->CommandType
, 29, 31) |
890 __gen_field(values
->CommandSubType
, 27, 28) |
891 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
892 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
893 __gen_field(values
->DwordLength
, 0, 7) |
897 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
903 #define GEN7_3DSTATE_CHROMA_KEY_length_bias 0x00000002
904 #define GEN7_3DSTATE_CHROMA_KEY_header \
906 .CommandSubType = 3, \
907 ._3DCommandOpcode = 1, \
908 ._3DCommandSubOpcode = 4, \
911 #define GEN7_3DSTATE_CHROMA_KEY_length 0x00000004
913 struct GEN7_3DSTATE_CHROMA_KEY
{
914 uint32_t CommandType
;
915 uint32_t CommandSubType
;
916 uint32_t _3DCommandOpcode
;
917 uint32_t _3DCommandSubOpcode
;
918 uint32_t DwordLength
;
919 uint32_t ChromaKeyTableIndex
;
920 uint32_t ChromaKeyLowValue
;
921 uint32_t ChromaKeyHighValue
;
925 GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
926 const struct GEN7_3DSTATE_CHROMA_KEY
* restrict values
)
928 uint32_t *dw
= (uint32_t * restrict
) dst
;
931 __gen_field(values
->CommandType
, 29, 31) |
932 __gen_field(values
->CommandSubType
, 27, 28) |
933 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
934 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
935 __gen_field(values
->DwordLength
, 0, 7) |
939 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
943 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
947 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
952 #define GEN7_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
953 #define GEN7_3DSTATE_CLEAR_PARAMS_header \
955 .CommandSubType = 3, \
956 ._3DCommandOpcode = 0, \
957 ._3DCommandSubOpcode = 4, \
960 #define GEN7_3DSTATE_CLEAR_PARAMS_length 0x00000003
962 struct GEN7_3DSTATE_CLEAR_PARAMS
{
963 uint32_t CommandType
;
964 uint32_t CommandSubType
;
965 uint32_t _3DCommandOpcode
;
966 uint32_t _3DCommandSubOpcode
;
967 uint32_t DwordLength
;
968 uint32_t DepthClearValue
;
969 bool DepthClearValueValid
;
973 GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
974 const struct GEN7_3DSTATE_CLEAR_PARAMS
* 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_field(values
->DepthClearValue
, 0, 31) |
991 __gen_field(values
->DepthClearValueValid
, 0, 0) |
996 #define GEN7_3DSTATE_CLIP_length_bias 0x00000002
997 #define GEN7_3DSTATE_CLIP_header \
999 .CommandSubType = 3, \
1000 ._3DCommandOpcode = 0, \
1001 ._3DCommandSubOpcode = 18, \
1004 #define GEN7_3DSTATE_CLIP_length 0x00000004
1006 struct GEN7_3DSTATE_CLIP
{
1007 uint32_t CommandType
;
1008 uint32_t CommandSubType
;
1009 uint32_t _3DCommandOpcode
;
1010 uint32_t _3DCommandSubOpcode
;
1011 uint32_t DwordLength
;
1012 uint32_t FrontWinding
;
1013 uint32_t VertexSubPixelPrecisionSelect
;
1014 bool EarlyCullEnable
;
1015 #define CULLMODE_BOTH 0
1016 #define CULLMODE_NONE 1
1017 #define CULLMODE_FRONT 2
1018 #define CULLMODE_BACK 3
1020 bool ClipperStatisticsEnable
;
1021 uint32_t UserClipDistanceCullTestEnableBitmask
;
1023 #define APIMODE_OGL 0
1025 bool ViewportXYClipTestEnable
;
1026 bool ViewportZClipTestEnable
;
1027 bool GuardbandClipTestEnable
;
1028 uint32_t UserClipDistanceClipTestEnableBitmask
;
1029 #define CLIPMODE_NORMAL 0
1030 #define CLIPMODE_REJECT_ALL 3
1031 #define CLIPMODE_ACCEPT_ALL 4
1033 bool PerspectiveDivideDisable
;
1034 bool NonPerspectiveBarycentricEnable
;
1038 uint32_t TriangleStripListProvokingVertexSelect
;
1041 uint32_t LineStripListProvokingVertexSelect
;
1045 uint32_t TriangleFanProvokingVertexSelect
;
1046 float MinimumPointWidth
;
1047 float MaximumPointWidth
;
1048 bool ForceZeroRTAIndexEnable
;
1049 uint32_t MaximumVPIndex
;
1053 GEN7_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1054 const struct GEN7_3DSTATE_CLIP
* restrict values
)
1056 uint32_t *dw
= (uint32_t * restrict
) dst
;
1059 __gen_field(values
->CommandType
, 29, 31) |
1060 __gen_field(values
->CommandSubType
, 27, 28) |
1061 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1062 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1063 __gen_field(values
->DwordLength
, 0, 7) |
1067 __gen_field(values
->FrontWinding
, 20, 20) |
1068 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1069 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1070 __gen_field(values
->CullMode
, 16, 17) |
1071 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1072 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1076 __gen_field(values
->ClipEnable
, 31, 31) |
1077 __gen_field(values
->APIMode
, 30, 30) |
1078 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1079 __gen_field(values
->ViewportZClipTestEnable
, 27, 27) |
1080 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1081 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1082 __gen_field(values
->ClipMode
, 13, 15) |
1083 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1084 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1085 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1086 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1087 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1091 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
1092 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
1093 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1094 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1099 #define GEN7_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1100 #define GEN7_3DSTATE_CONSTANT_DS_header \
1102 .CommandSubType = 3, \
1103 ._3DCommandOpcode = 0, \
1104 ._3DCommandSubOpcode = 26, \
1107 #define GEN7_3DSTATE_CONSTANT_DS_length 0x00000007
1109 #define GEN7_3DSTATE_CONSTANT_BODY_length 0x00000006
1111 struct GEN7_3DSTATE_CONSTANT_BODY
{
1112 uint32_t ConstantBuffer1ReadLength
;
1113 uint32_t ConstantBuffer0ReadLength
;
1114 uint32_t ConstantBuffer3ReadLength
;
1115 uint32_t ConstantBuffer2ReadLength
;
1116 __gen_address_type PointerToConstantBuffer0
;
1117 struct GEN7_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1118 __gen_address_type PointerToConstantBuffer1
;
1119 __gen_address_type PointerToConstantBuffer2
;
1120 __gen_address_type PointerToConstantBuffer3
;
1124 GEN7_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1125 const struct GEN7_3DSTATE_CONSTANT_BODY
* restrict values
)
1127 uint32_t *dw
= (uint32_t * restrict
) dst
;
1130 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1131 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1135 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1136 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1139 uint32_t dw_ConstantBufferObjectControlState
;
1140 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1142 __gen_field(dw_ConstantBufferObjectControlState
, 0, 4) |
1146 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1152 __gen_combine_address(data
, &dw
[3], values
->PointerToConstantBuffer1
, dw3
);
1158 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer2
, dw4
);
1164 __gen_combine_address(data
, &dw
[5], values
->PointerToConstantBuffer3
, dw5
);
1168 struct GEN7_3DSTATE_CONSTANT_DS
{
1169 uint32_t CommandType
;
1170 uint32_t CommandSubType
;
1171 uint32_t _3DCommandOpcode
;
1172 uint32_t _3DCommandSubOpcode
;
1173 uint32_t DwordLength
;
1174 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1178 GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1179 const struct GEN7_3DSTATE_CONSTANT_DS
* restrict values
)
1181 uint32_t *dw
= (uint32_t * restrict
) dst
;
1184 __gen_field(values
->CommandType
, 29, 31) |
1185 __gen_field(values
->CommandSubType
, 27, 28) |
1186 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1187 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1188 __gen_field(values
->DwordLength
, 0, 7) |
1191 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1194 #define GEN7_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1195 #define GEN7_3DSTATE_CONSTANT_GS_header \
1197 .CommandSubType = 3, \
1198 ._3DCommandOpcode = 0, \
1199 ._3DCommandSubOpcode = 22, \
1202 #define GEN7_3DSTATE_CONSTANT_GS_length 0x00000007
1204 struct GEN7_3DSTATE_CONSTANT_GS
{
1205 uint32_t CommandType
;
1206 uint32_t CommandSubType
;
1207 uint32_t _3DCommandOpcode
;
1208 uint32_t _3DCommandSubOpcode
;
1209 uint32_t DwordLength
;
1210 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1214 GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1215 const struct GEN7_3DSTATE_CONSTANT_GS
* restrict values
)
1217 uint32_t *dw
= (uint32_t * restrict
) dst
;
1220 __gen_field(values
->CommandType
, 29, 31) |
1221 __gen_field(values
->CommandSubType
, 27, 28) |
1222 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1223 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1224 __gen_field(values
->DwordLength
, 0, 7) |
1227 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1230 #define GEN7_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1231 #define GEN7_3DSTATE_CONSTANT_HS_header \
1233 .CommandSubType = 3, \
1234 ._3DCommandOpcode = 0, \
1235 ._3DCommandSubOpcode = 25, \
1238 #define GEN7_3DSTATE_CONSTANT_HS_length 0x00000007
1240 struct GEN7_3DSTATE_CONSTANT_HS
{
1241 uint32_t CommandType
;
1242 uint32_t CommandSubType
;
1243 uint32_t _3DCommandOpcode
;
1244 uint32_t _3DCommandSubOpcode
;
1245 uint32_t DwordLength
;
1246 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1250 GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1251 const struct GEN7_3DSTATE_CONSTANT_HS
* restrict values
)
1253 uint32_t *dw
= (uint32_t * restrict
) dst
;
1256 __gen_field(values
->CommandType
, 29, 31) |
1257 __gen_field(values
->CommandSubType
, 27, 28) |
1258 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1259 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1260 __gen_field(values
->DwordLength
, 0, 7) |
1263 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1266 #define GEN7_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1267 #define GEN7_3DSTATE_CONSTANT_PS_header \
1269 .CommandSubType = 3, \
1270 ._3DCommandOpcode = 0, \
1271 ._3DCommandSubOpcode = 23, \
1274 #define GEN7_3DSTATE_CONSTANT_PS_length 0x00000007
1276 struct GEN7_3DSTATE_CONSTANT_PS
{
1277 uint32_t CommandType
;
1278 uint32_t CommandSubType
;
1279 uint32_t _3DCommandOpcode
;
1280 uint32_t _3DCommandSubOpcode
;
1281 uint32_t DwordLength
;
1282 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1286 GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1287 const struct GEN7_3DSTATE_CONSTANT_PS
* restrict values
)
1289 uint32_t *dw
= (uint32_t * restrict
) dst
;
1292 __gen_field(values
->CommandType
, 29, 31) |
1293 __gen_field(values
->CommandSubType
, 27, 28) |
1294 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1295 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1296 __gen_field(values
->DwordLength
, 0, 7) |
1299 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1302 #define GEN7_3DSTATE_CONSTANT_VS_length_bias 0x00000002
1303 #define GEN7_3DSTATE_CONSTANT_VS_header \
1305 .CommandSubType = 3, \
1306 ._3DCommandOpcode = 0, \
1307 ._3DCommandSubOpcode = 21, \
1310 #define GEN7_3DSTATE_CONSTANT_VS_length 0x00000007
1312 struct GEN7_3DSTATE_CONSTANT_VS
{
1313 uint32_t CommandType
;
1314 uint32_t CommandSubType
;
1315 uint32_t _3DCommandOpcode
;
1316 uint32_t _3DCommandSubOpcode
;
1317 uint32_t DwordLength
;
1318 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1322 GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1323 const struct GEN7_3DSTATE_CONSTANT_VS
* restrict values
)
1325 uint32_t *dw
= (uint32_t * restrict
) dst
;
1328 __gen_field(values
->CommandType
, 29, 31) |
1329 __gen_field(values
->CommandSubType
, 27, 28) |
1330 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1331 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1332 __gen_field(values
->DwordLength
, 0, 7) |
1335 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1338 #define GEN7_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
1339 #define GEN7_3DSTATE_DEPTH_BUFFER_header \
1341 .CommandSubType = 3, \
1342 ._3DCommandOpcode = 0, \
1343 ._3DCommandSubOpcode = 5, \
1346 #define GEN7_3DSTATE_DEPTH_BUFFER_length 0x00000007
1348 struct GEN7_3DSTATE_DEPTH_BUFFER
{
1349 uint32_t CommandType
;
1350 uint32_t CommandSubType
;
1351 uint32_t _3DCommandOpcode
;
1352 uint32_t _3DCommandSubOpcode
;
1353 uint32_t DwordLength
;
1354 #define SURFTYPE_1D 0
1355 #define SURFTYPE_2D 1
1356 #define SURFTYPE_3D 2
1357 #define SURFTYPE_CUBE 3
1358 #define SURFTYPE_NULL 7
1359 uint32_t SurfaceType
;
1360 bool DepthWriteEnable
;
1361 bool StencilWriteEnable
;
1362 bool HierarchicalDepthBufferEnable
;
1364 #define D24_UNORM_X8_UINT 3
1366 uint32_t SurfaceFormat
;
1367 uint32_t SurfacePitch
;
1368 __gen_address_type SurfaceBaseAddress
;
1372 #define SURFTYPE_CUBEmustbezero 0
1374 uint32_t MinimumArrayElement
;
1375 struct GEN7_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
1376 uint32_t DepthCoordinateOffsetY
;
1377 uint32_t DepthCoordinateOffsetX
;
1378 uint32_t RenderTargetViewExtent
;
1382 GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1383 const struct GEN7_3DSTATE_DEPTH_BUFFER
* restrict values
)
1385 uint32_t *dw
= (uint32_t * restrict
) dst
;
1388 __gen_field(values
->CommandType
, 29, 31) |
1389 __gen_field(values
->CommandSubType
, 27, 28) |
1390 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1391 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1392 __gen_field(values
->DwordLength
, 0, 7) |
1396 __gen_field(values
->SurfaceType
, 29, 31) |
1397 __gen_field(values
->DepthWriteEnable
, 28, 28) |
1398 __gen_field(values
->StencilWriteEnable
, 27, 27) |
1399 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
1400 __gen_field(values
->SurfaceFormat
, 18, 20) |
1401 __gen_field(values
->SurfacePitch
, 0, 17) |
1408 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1411 __gen_field(values
->Height
, 18, 31) |
1412 __gen_field(values
->Width
, 4, 17) |
1413 __gen_field(values
->LOD
, 0, 3) |
1416 uint32_t dw_DepthBufferObjectControlState
;
1417 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
1419 __gen_field(values
->Depth
, 21, 31) |
1420 __gen_field(values
->MinimumArrayElement
, 10, 20) |
1421 __gen_field(dw_DepthBufferObjectControlState
, 0, 3) |
1425 __gen_field(values
->DepthCoordinateOffsetY
, 16, 31) |
1426 __gen_field(values
->DepthCoordinateOffsetX
, 0, 15) |
1430 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
1435 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002
1436 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\
1438 .CommandSubType = 3, \
1439 ._3DCommandOpcode = 0, \
1440 ._3DCommandSubOpcode = 37, \
1443 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
1445 struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
{
1446 uint32_t CommandType
;
1447 uint32_t CommandSubType
;
1448 uint32_t _3DCommandOpcode
;
1449 uint32_t _3DCommandSubOpcode
;
1450 uint32_t DwordLength
;
1451 uint32_t PointertoDEPTH_STENCIL_STATE
;
1455 GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1456 const struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
* restrict values
)
1458 uint32_t *dw
= (uint32_t * restrict
) dst
;
1461 __gen_field(values
->CommandType
, 29, 31) |
1462 __gen_field(values
->CommandSubType
, 27, 28) |
1463 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1464 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1465 __gen_field(values
->DwordLength
, 0, 7) |
1469 __gen_offset(values
->PointertoDEPTH_STENCIL_STATE
, 6, 31) |
1475 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
1476 #define GEN7_3DSTATE_DRAWING_RECTANGLE_header \
1478 .CommandSubType = 3, \
1479 ._3DCommandOpcode = 1, \
1480 ._3DCommandSubOpcode = 0, \
1483 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
1485 struct GEN7_3DSTATE_DRAWING_RECTANGLE
{
1486 uint32_t CommandType
;
1487 uint32_t CommandSubType
;
1488 uint32_t _3DCommandOpcode
;
1489 uint32_t _3DCommandSubOpcode
;
1490 uint32_t DwordLength
;
1491 uint32_t ClippedDrawingRectangleYMin
;
1492 uint32_t ClippedDrawingRectangleXMin
;
1493 uint32_t ClippedDrawingRectangleYMax
;
1494 uint32_t ClippedDrawingRectangleXMax
;
1495 uint32_t DrawingRectangleOriginY
;
1496 uint32_t DrawingRectangleOriginX
;
1500 GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
1501 const struct GEN7_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
1503 uint32_t *dw
= (uint32_t * restrict
) dst
;
1506 __gen_field(values
->CommandType
, 29, 31) |
1507 __gen_field(values
->CommandSubType
, 27, 28) |
1508 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1509 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1510 __gen_field(values
->DwordLength
, 0, 7) |
1514 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
1515 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
1519 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
1520 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
1524 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
1525 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
1530 #define GEN7_3DSTATE_DS_length_bias 0x00000002
1531 #define GEN7_3DSTATE_DS_header \
1533 .CommandSubType = 3, \
1534 ._3DCommandOpcode = 0, \
1535 ._3DCommandSubOpcode = 29, \
1538 #define GEN7_3DSTATE_DS_length 0x00000006
1540 struct GEN7_3DSTATE_DS
{
1541 uint32_t CommandType
;
1542 uint32_t CommandSubType
;
1543 uint32_t _3DCommandOpcode
;
1544 uint32_t _3DCommandSubOpcode
;
1545 uint32_t DwordLength
;
1546 uint32_t KernelStartPointer
;
1549 uint32_t SingleDomainPointDispatch
;
1552 uint32_t VectorMaskEnable
;
1553 #define NoSamplers 0
1554 #define _14Samplers 1
1555 #define _58Samplers 2
1556 #define _912Samplers 3
1557 #define _1316Samplers 4
1558 uint32_t SamplerCount
;
1559 uint32_t BindingTableEntryCount
;
1562 uint32_t FloatingPointMode
;
1563 bool IllegalOpcodeExceptionEnable
;
1564 bool SoftwareExceptionEnable
;
1565 uint32_t ScratchSpaceBasePointer
;
1566 uint32_t PerThreadScratchSpace
;
1567 uint32_t DispatchGRFStartRegisterForURBData
;
1568 uint32_t PatchURBEntryReadLength
;
1569 uint32_t PatchURBEntryReadOffset
;
1570 uint32_t MaximumNumberofThreads
;
1571 bool StatisticsEnable
;
1572 bool ComputeWCoordinateEnable
;
1573 bool DSCacheDisable
;
1574 bool DSFunctionEnable
;
1578 GEN7_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1579 const struct GEN7_3DSTATE_DS
* restrict values
)
1581 uint32_t *dw
= (uint32_t * restrict
) dst
;
1584 __gen_field(values
->CommandType
, 29, 31) |
1585 __gen_field(values
->CommandSubType
, 27, 28) |
1586 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1587 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1588 __gen_field(values
->DwordLength
, 0, 7) |
1592 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1596 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
1597 __gen_field(values
->VectorMaskEnable
, 30, 30) |
1598 __gen_field(values
->SamplerCount
, 27, 29) |
1599 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1600 __gen_field(values
->FloatingPointMode
, 16, 16) |
1601 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1602 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1606 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1607 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1611 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
1612 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
1613 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
1617 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1618 __gen_field(values
->StatisticsEnable
, 10, 10) |
1619 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
1620 __gen_field(values
->DSCacheDisable
, 1, 1) |
1621 __gen_field(values
->DSFunctionEnable
, 0, 0) |
1626 #define GEN7_3DSTATE_GS_length_bias 0x00000002
1627 #define GEN7_3DSTATE_GS_header \
1629 .CommandSubType = 3, \
1630 ._3DCommandOpcode = 0, \
1631 ._3DCommandSubOpcode = 17, \
1634 #define GEN7_3DSTATE_GS_length 0x00000007
1636 struct GEN7_3DSTATE_GS
{
1637 uint32_t CommandType
;
1638 uint32_t CommandSubType
;
1639 uint32_t _3DCommandOpcode
;
1640 uint32_t _3DCommandSubOpcode
;
1641 uint32_t DwordLength
;
1642 uint32_t KernelStartPointer
;
1643 uint32_t SingleProgramFlowSPF
;
1646 uint32_t VectorMaskEnableVME
;
1647 #define NoSamplers 0
1648 #define _14Samplers 1
1649 #define _58Samplers 2
1650 #define _912Samplers 3
1651 #define _1316Samplers 4
1652 uint32_t SamplerCount
;
1653 uint32_t BindingTableEntryCount
;
1654 #define NormalPriority 0
1655 #define HighPriority 1
1656 uint32_t ThreadPriority
;
1659 uint32_t FloatingPointMode
;
1660 bool IllegalOpcodeExceptionEnable
;
1661 bool MaskStackExceptionEnable
;
1662 bool SoftwareExceptionEnable
;
1663 uint32_t ScratchSpaceBasePointer
;
1664 uint32_t PerThreadScratchSpace
;
1665 uint32_t OutputVertexSize
;
1666 uint32_t OutputTopology
;
1667 uint32_t VertexURBEntryReadLength
;
1668 bool IncludeVertexHandles
;
1669 uint32_t VertexURBEntryReadOffset
;
1670 uint32_t DispatchGRFStartRegisterforURBData
;
1671 uint32_t MaximumNumberofThreads
;
1674 uint32_t ControlDataFormat
;
1675 uint32_t ControlDataHeaderSize
;
1676 uint32_t InstanceControl
;
1677 uint32_t DefaultStreamID
;
1679 #define DUAL_INSTANCE 1
1680 #define DUAL_OBJECT 2
1681 uint32_t DispatchMode
;
1682 uint32_t GSStatisticsEnable
;
1683 uint32_t GSInvocationsIncrementValue
;
1684 bool IncludePrimitiveID
;
1687 bool DiscardAdjacency
;
1689 uint32_t SemaphoreHandle
;
1693 GEN7_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1694 const struct GEN7_3DSTATE_GS
* restrict values
)
1696 uint32_t *dw
= (uint32_t * restrict
) dst
;
1699 __gen_field(values
->CommandType
, 29, 31) |
1700 __gen_field(values
->CommandSubType
, 27, 28) |
1701 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1702 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1703 __gen_field(values
->DwordLength
, 0, 7) |
1707 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1711 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
1712 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
1713 __gen_field(values
->SamplerCount
, 27, 29) |
1714 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1715 __gen_field(values
->ThreadPriority
, 17, 17) |
1716 __gen_field(values
->FloatingPointMode
, 16, 16) |
1717 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1718 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
1719 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1723 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1724 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1728 __gen_field(values
->OutputVertexSize
, 23, 28) |
1729 __gen_field(values
->OutputTopology
, 17, 22) |
1730 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1731 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
1732 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1733 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 0, 3) |
1737 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1738 __gen_field(values
->ControlDataFormat
, 24, 24) |
1739 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
1740 __gen_field(values
->InstanceControl
, 15, 19) |
1741 __gen_field(values
->DefaultStreamID
, 13, 14) |
1742 __gen_field(values
->DispatchMode
, 11, 12) |
1743 __gen_field(values
->GSStatisticsEnable
, 10, 10) |
1744 __gen_field(values
->GSInvocationsIncrementValue
, 5, 9) |
1745 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
1746 __gen_field(values
->Hint
, 3, 3) |
1747 __gen_field(values
->ReorderEnable
, 2, 2) |
1748 __gen_field(values
->DiscardAdjacency
, 1, 1) |
1749 __gen_field(values
->GSEnable
, 0, 0) |
1753 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1758 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
1759 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_header \
1761 .CommandSubType = 3, \
1762 ._3DCommandOpcode = 0, \
1763 ._3DCommandSubOpcode = 7, \
1766 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
1768 struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
{
1769 uint32_t CommandType
;
1770 uint32_t CommandSubType
;
1771 uint32_t _3DCommandOpcode
;
1772 uint32_t _3DCommandSubOpcode
;
1773 uint32_t DwordLength
;
1774 struct GEN7_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
1775 uint32_t SurfacePitch
;
1776 __gen_address_type SurfaceBaseAddress
;
1780 GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1781 const struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
1783 uint32_t *dw
= (uint32_t * restrict
) dst
;
1786 __gen_field(values
->CommandType
, 29, 31) |
1787 __gen_field(values
->CommandSubType
, 27, 28) |
1788 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1789 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1790 __gen_field(values
->DwordLength
, 0, 7) |
1793 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
1794 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
1796 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 28) |
1797 __gen_field(values
->SurfacePitch
, 0, 16) |
1804 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1808 #define GEN7_3DSTATE_HS_length_bias 0x00000002
1809 #define GEN7_3DSTATE_HS_header \
1811 .CommandSubType = 3, \
1812 ._3DCommandOpcode = 0, \
1813 ._3DCommandSubOpcode = 27, \
1816 #define GEN7_3DSTATE_HS_length 0x00000007
1818 struct GEN7_3DSTATE_HS
{
1819 uint32_t CommandType
;
1820 uint32_t CommandSubType
;
1821 uint32_t _3DCommandOpcode
;
1822 uint32_t _3DCommandSubOpcode
;
1823 uint32_t DwordLength
;
1824 #define NoSamplers 0
1825 #define _14Samplers 1
1826 #define _58Samplers 2
1827 #define _912Samplers 3
1828 #define _1316Samplers 4
1829 uint32_t SamplerCount
;
1830 uint32_t BindingTableEntryCount
;
1833 uint32_t FloatingPointMode
;
1834 bool IllegalOpcodeExceptionEnable
;
1835 bool SoftwareExceptionEnable
;
1836 uint32_t MaximumNumberofThreads
;
1838 bool StatisticsEnable
;
1839 uint32_t InstanceCount
;
1840 uint32_t KernelStartPointer
;
1841 uint32_t ScratchSpaceBasePointer
;
1842 uint32_t PerThreadScratchSpace
;
1843 uint32_t SingleProgramFlow
;
1846 uint32_t VectorMaskEnable
;
1847 bool IncludeVertexHandles
;
1848 uint32_t DispatchGRFStartRegisterForURBData
;
1849 uint32_t VertexURBEntryReadLength
;
1850 uint32_t VertexURBEntryReadOffset
;
1851 uint32_t SemaphoreHandle
;
1855 GEN7_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1856 const struct GEN7_3DSTATE_HS
* restrict values
)
1858 uint32_t *dw
= (uint32_t * restrict
) dst
;
1861 __gen_field(values
->CommandType
, 29, 31) |
1862 __gen_field(values
->CommandSubType
, 27, 28) |
1863 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1864 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1865 __gen_field(values
->DwordLength
, 0, 7) |
1869 __gen_field(values
->SamplerCount
, 27, 29) |
1870 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1871 __gen_field(values
->FloatingPointMode
, 16, 16) |
1872 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1873 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1874 __gen_field(values
->MaximumNumberofThreads
, 0, 6) |
1878 __gen_field(values
->Enable
, 31, 31) |
1879 __gen_field(values
->StatisticsEnable
, 29, 29) |
1880 __gen_field(values
->InstanceCount
, 0, 3) |
1884 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1888 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1889 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1893 __gen_field(values
->SingleProgramFlow
, 27, 27) |
1894 __gen_field(values
->VectorMaskEnable
, 26, 26) |
1895 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
1896 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
1897 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1898 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1902 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1907 #define GEN7_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
1908 #define GEN7_3DSTATE_INDEX_BUFFER_header \
1910 .CommandSubType = 3, \
1911 ._3DCommandOpcode = 0, \
1912 ._3DCommandSubOpcode = 10, \
1915 #define GEN7_3DSTATE_INDEX_BUFFER_length 0x00000003
1917 struct GEN7_3DSTATE_INDEX_BUFFER
{
1918 uint32_t CommandType
;
1919 uint32_t CommandSubType
;
1920 uint32_t _3DCommandOpcode
;
1921 uint32_t _3DCommandSubOpcode
;
1922 struct GEN7_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
1923 bool CutIndexEnable
;
1924 #define INDEX_BYTE 0
1925 #define INDEX_WORD 1
1926 #define INDEX_DWORD 2
1927 uint32_t IndexFormat
;
1928 uint32_t DwordLength
;
1929 __gen_address_type BufferStartingAddress
;
1930 __gen_address_type BufferEndingAddress
;
1934 GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1935 const struct GEN7_3DSTATE_INDEX_BUFFER
* restrict values
)
1937 uint32_t *dw
= (uint32_t * restrict
) dst
;
1939 uint32_t dw_MemoryObjectControlState
;
1940 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
1942 __gen_field(values
->CommandType
, 29, 31) |
1943 __gen_field(values
->CommandSubType
, 27, 28) |
1944 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1945 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1946 __gen_field(dw_MemoryObjectControlState
, 12, 15) |
1947 __gen_field(values
->CutIndexEnable
, 10, 10) |
1948 __gen_field(values
->IndexFormat
, 8, 9) |
1949 __gen_field(values
->DwordLength
, 0, 7) |
1956 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
1962 __gen_combine_address(data
, &dw
[2], values
->BufferEndingAddress
, dw2
);
1966 #define GEN7_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
1967 #define GEN7_3DSTATE_LINE_STIPPLE_header \
1969 .CommandSubType = 3, \
1970 ._3DCommandOpcode = 1, \
1971 ._3DCommandSubOpcode = 8, \
1974 #define GEN7_3DSTATE_LINE_STIPPLE_length 0x00000003
1976 struct GEN7_3DSTATE_LINE_STIPPLE
{
1977 uint32_t CommandType
;
1978 uint32_t CommandSubType
;
1979 uint32_t _3DCommandOpcode
;
1980 uint32_t _3DCommandSubOpcode
;
1981 uint32_t DwordLength
;
1982 bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
1983 uint32_t CurrentRepeatCounter
;
1984 uint32_t CurrentStippleIndex
;
1985 uint32_t LineStipplePattern
;
1986 float LineStippleInverseRepeatCount
;
1987 uint32_t LineStippleRepeatCount
;
1991 GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
1992 const struct GEN7_3DSTATE_LINE_STIPPLE
* restrict values
)
1994 uint32_t *dw
= (uint32_t * restrict
) dst
;
1997 __gen_field(values
->CommandType
, 29, 31) |
1998 __gen_field(values
->CommandSubType
, 27, 28) |
1999 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2000 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2001 __gen_field(values
->DwordLength
, 0, 7) |
2005 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
2006 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
2007 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
2008 __gen_field(values
->LineStipplePattern
, 0, 15) |
2012 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
2013 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
2018 #define GEN7_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
2019 #define GEN7_3DSTATE_MONOFILTER_SIZE_header \
2021 .CommandSubType = 3, \
2022 ._3DCommandOpcode = 1, \
2023 ._3DCommandSubOpcode = 17, \
2026 #define GEN7_3DSTATE_MONOFILTER_SIZE_length 0x00000002
2028 struct GEN7_3DSTATE_MONOFILTER_SIZE
{
2029 uint32_t CommandType
;
2030 uint32_t CommandSubType
;
2031 uint32_t _3DCommandOpcode
;
2032 uint32_t _3DCommandSubOpcode
;
2033 uint32_t DwordLength
;
2034 uint32_t MonochromeFilterWidth
;
2035 uint32_t MonochromeFilterHeight
;
2039 GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
2040 const struct GEN7_3DSTATE_MONOFILTER_SIZE
* restrict values
)
2042 uint32_t *dw
= (uint32_t * restrict
) dst
;
2045 __gen_field(values
->CommandType
, 29, 31) |
2046 __gen_field(values
->CommandSubType
, 27, 28) |
2047 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2048 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2049 __gen_field(values
->DwordLength
, 0, 7) |
2053 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
2054 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
2059 #define GEN7_3DSTATE_MULTISAMPLE_length_bias 0x00000002
2060 #define GEN7_3DSTATE_MULTISAMPLE_header \
2062 .CommandSubType = 3, \
2063 ._3DCommandOpcode = 1, \
2064 ._3DCommandSubOpcode = 13, \
2067 #define GEN7_3DSTATE_MULTISAMPLE_length 0x00000004
2069 struct GEN7_3DSTATE_MULTISAMPLE
{
2070 uint32_t CommandType
;
2071 uint32_t CommandSubType
;
2072 uint32_t _3DCommandOpcode
;
2073 uint32_t _3DCommandSubOpcode
;
2074 uint32_t DwordLength
;
2075 #define PIXLOC_CENTER 0
2076 #define PIXLOC_UL_CORNER 1
2077 uint32_t PixelLocation
;
2078 #define NUMSAMPLES_1 0
2079 #define NUMSAMPLES_4 2
2080 #define NUMSAMPLES_8 3
2081 uint32_t NumberofMultisamples
;
2082 float Sample3XOffset
;
2083 float Sample3YOffset
;
2084 float Sample2XOffset
;
2085 float Sample2YOffset
;
2086 float Sample1XOffset
;
2087 float Sample1YOffset
;
2088 float Sample0XOffset
;
2089 float Sample0YOffset
;
2090 float Sample7XOffset
;
2091 float Sample7YOffset
;
2092 float Sample6XOffset
;
2093 float Sample6YOffset
;
2094 float Sample5XOffset
;
2095 float Sample5YOffset
;
2096 float Sample4XOffset
;
2097 float Sample4YOffset
;
2101 GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2102 const struct GEN7_3DSTATE_MULTISAMPLE
* restrict values
)
2104 uint32_t *dw
= (uint32_t * restrict
) dst
;
2107 __gen_field(values
->CommandType
, 29, 31) |
2108 __gen_field(values
->CommandSubType
, 27, 28) |
2109 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2110 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2111 __gen_field(values
->DwordLength
, 0, 7) |
2115 __gen_field(values
->PixelLocation
, 4, 4) |
2116 __gen_field(values
->NumberofMultisamples
, 1, 3) |
2120 __gen_field(values
->Sample3XOffset
* (1 << 4), 28, 31) |
2121 __gen_field(values
->Sample3YOffset
* (1 << 4), 24, 27) |
2122 __gen_field(values
->Sample2XOffset
* (1 << 4), 20, 23) |
2123 __gen_field(values
->Sample2YOffset
* (1 << 4), 16, 19) |
2124 __gen_field(values
->Sample1XOffset
* (1 << 4), 12, 15) |
2125 __gen_field(values
->Sample1YOffset
* (1 << 4), 8, 11) |
2126 __gen_field(values
->Sample0XOffset
* (1 << 4), 4, 7) |
2127 __gen_field(values
->Sample0YOffset
* (1 << 4), 0, 3) |
2131 __gen_field(values
->Sample7XOffset
* (1 << 4), 28, 31) |
2132 __gen_field(values
->Sample7YOffset
* (1 << 4), 24, 27) |
2133 __gen_field(values
->Sample6XOffset
* (1 << 4), 20, 23) |
2134 __gen_field(values
->Sample6YOffset
* (1 << 4), 16, 19) |
2135 __gen_field(values
->Sample5XOffset
* (1 << 4), 12, 15) |
2136 __gen_field(values
->Sample5YOffset
* (1 << 4), 8, 11) |
2137 __gen_field(values
->Sample4XOffset
* (1 << 4), 4, 7) |
2138 __gen_field(values
->Sample4YOffset
* (1 << 4), 0, 3) |
2143 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
2144 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_header \
2146 .CommandSubType = 3, \
2147 ._3DCommandOpcode = 1, \
2148 ._3DCommandSubOpcode = 6, \
2151 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
2153 struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
{
2154 uint32_t CommandType
;
2155 uint32_t CommandSubType
;
2156 uint32_t _3DCommandOpcode
;
2157 uint32_t _3DCommandSubOpcode
;
2158 uint32_t DwordLength
;
2159 uint32_t PolygonStippleXOffset
;
2160 uint32_t PolygonStippleYOffset
;
2164 GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
2165 const struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
2167 uint32_t *dw
= (uint32_t * restrict
) dst
;
2170 __gen_field(values
->CommandType
, 29, 31) |
2171 __gen_field(values
->CommandSubType
, 27, 28) |
2172 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2173 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2174 __gen_field(values
->DwordLength
, 0, 7) |
2178 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
2179 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
2184 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
2185 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_header\
2187 .CommandSubType = 3, \
2188 ._3DCommandOpcode = 1, \
2189 ._3DCommandSubOpcode = 7, \
2192 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
2194 struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
{
2195 uint32_t CommandType
;
2196 uint32_t CommandSubType
;
2197 uint32_t _3DCommandOpcode
;
2198 uint32_t _3DCommandSubOpcode
;
2199 uint32_t DwordLength
;
2200 uint32_t PatternRow
[32];
2204 GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
2205 const struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
2207 uint32_t *dw
= (uint32_t * restrict
) dst
;
2210 __gen_field(values
->CommandType
, 29, 31) |
2211 __gen_field(values
->CommandSubType
, 27, 28) |
2212 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2213 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2214 __gen_field(values
->DwordLength
, 0, 7) |
2217 for (uint32_t i
= 0, j
= 1; i
< 32; i
+= 1, j
++) {
2219 __gen_field(values
->PatternRow
[i
+ 0], 0, 31) |
2225 #define GEN7_3DSTATE_PS_length_bias 0x00000002
2226 #define GEN7_3DSTATE_PS_header \
2228 .CommandSubType = 3, \
2229 ._3DCommandOpcode = 0, \
2230 ._3DCommandSubOpcode = 32, \
2233 #define GEN7_3DSTATE_PS_length 0x00000008
2235 struct GEN7_3DSTATE_PS
{
2236 uint32_t CommandType
;
2237 uint32_t CommandSubType
;
2238 uint32_t _3DCommandOpcode
;
2239 uint32_t _3DCommandSubOpcode
;
2240 uint32_t DwordLength
;
2241 uint32_t KernelStartPointer0
;
2244 uint32_t SingleProgramFlowSPF
;
2247 uint32_t VectorMaskEnableVME
;
2248 uint32_t SamplerCount
;
2251 uint32_t DenormalMode
;
2252 uint32_t BindingTableEntryCount
;
2255 uint32_t FloatingPointMode
;
2260 uint32_t RoundingMode
;
2261 bool IllegalOpcodeExceptionEnable
;
2262 bool MaskStackExceptionEnable
;
2263 bool SoftwareExceptionEnable
;
2264 uint32_t ScratchSpaceBasePointer
;
2265 uint32_t PerThreadScratchSpace
;
2266 uint32_t MaximumNumberofThreads
;
2267 bool PushConstantEnable
;
2268 bool AttributeEnable
;
2269 bool oMaskPresenttoRenderTarget
;
2270 bool RenderTargetFastClearEnable
;
2271 bool DualSourceBlendEnable
;
2272 bool RenderTargetResolveEnable
;
2273 #define POSOFFSET_NONE 0
2274 #define POSOFFSET_CENTROID 2
2275 #define POSOFFSET_SAMPLE 3
2276 uint32_t PositionXYOffsetSelect
;
2277 bool _32PixelDispatchEnable
;
2278 bool _16PixelDispatchEnable
;
2279 bool _8PixelDispatchEnable
;
2280 uint32_t DispatchGRFStartRegisterforConstantSetupData0
;
2281 uint32_t DispatchGRFStartRegisterforConstantSetupData1
;
2282 uint32_t DispatchGRFStartRegisterforConstantSetupData2
;
2283 uint32_t KernelStartPointer1
;
2284 uint32_t KernelStartPointer2
;
2288 GEN7_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2289 const struct GEN7_3DSTATE_PS
* restrict values
)
2291 uint32_t *dw
= (uint32_t * restrict
) dst
;
2294 __gen_field(values
->CommandType
, 29, 31) |
2295 __gen_field(values
->CommandSubType
, 27, 28) |
2296 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2297 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2298 __gen_field(values
->DwordLength
, 0, 7) |
2302 __gen_offset(values
->KernelStartPointer0
, 6, 31) |
2306 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
2307 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
2308 __gen_field(values
->SamplerCount
, 27, 29) |
2309 __gen_field(values
->DenormalMode
, 26, 26) |
2310 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2311 __gen_field(values
->FloatingPointMode
, 16, 16) |
2312 __gen_field(values
->RoundingMode
, 14, 15) |
2313 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2314 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2315 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2319 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
2320 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2324 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2325 __gen_field(values
->PushConstantEnable
, 11, 11) |
2326 __gen_field(values
->AttributeEnable
, 10, 10) |
2327 __gen_field(values
->oMaskPresenttoRenderTarget
, 9, 9) |
2328 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
2329 __gen_field(values
->DualSourceBlendEnable
, 7, 7) |
2330 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
2331 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
2332 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
2333 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
2334 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
2338 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData0
, 16, 22) |
2339 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData1
, 8, 14) |
2340 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData2
, 0, 6) |
2344 __gen_offset(values
->KernelStartPointer1
, 6, 31) |
2348 __gen_offset(values
->KernelStartPointer2
, 6, 31) |
2353 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
2354 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
2356 .CommandSubType = 3, \
2357 ._3DCommandOpcode = 1, \
2358 ._3DCommandSubOpcode = 20, \
2361 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
2363 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
2364 uint32_t CommandType
;
2365 uint32_t CommandSubType
;
2366 uint32_t _3DCommandOpcode
;
2367 uint32_t _3DCommandSubOpcode
;
2368 uint32_t DwordLength
;
2370 uint32_t ConstantBufferOffset
;
2372 uint32_t ConstantBufferSize
;
2376 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2377 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
2379 uint32_t *dw
= (uint32_t * restrict
) dst
;
2382 __gen_field(values
->CommandType
, 29, 31) |
2383 __gen_field(values
->CommandSubType
, 27, 28) |
2384 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2385 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2386 __gen_field(values
->DwordLength
, 0, 7) |
2390 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2391 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2396 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
2397 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
2399 .CommandSubType = 3, \
2400 ._3DCommandOpcode = 1, \
2401 ._3DCommandSubOpcode = 21, \
2404 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
2406 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
2407 uint32_t CommandType
;
2408 uint32_t CommandSubType
;
2409 uint32_t _3DCommandOpcode
;
2410 uint32_t _3DCommandSubOpcode
;
2411 uint32_t DwordLength
;
2413 uint32_t ConstantBufferOffset
;
2415 uint32_t ConstantBufferSize
;
2419 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2420 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
2422 uint32_t *dw
= (uint32_t * restrict
) dst
;
2425 __gen_field(values
->CommandType
, 29, 31) |
2426 __gen_field(values
->CommandSubType
, 27, 28) |
2427 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2428 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2429 __gen_field(values
->DwordLength
, 0, 7) |
2433 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2434 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2439 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
2440 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
2442 .CommandSubType = 3, \
2443 ._3DCommandOpcode = 1, \
2444 ._3DCommandSubOpcode = 19, \
2447 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
2449 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
2450 uint32_t CommandType
;
2451 uint32_t CommandSubType
;
2452 uint32_t _3DCommandOpcode
;
2453 uint32_t _3DCommandSubOpcode
;
2454 uint32_t DwordLength
;
2456 uint32_t ConstantBufferOffset
;
2458 uint32_t ConstantBufferSize
;
2462 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2463 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
2465 uint32_t *dw
= (uint32_t * restrict
) dst
;
2468 __gen_field(values
->CommandType
, 29, 31) |
2469 __gen_field(values
->CommandSubType
, 27, 28) |
2470 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2471 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2472 __gen_field(values
->DwordLength
, 0, 7) |
2476 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2477 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2482 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
2483 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
2485 .CommandSubType = 3, \
2486 ._3DCommandOpcode = 1, \
2487 ._3DCommandSubOpcode = 22, \
2490 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
2492 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
2493 uint32_t CommandType
;
2494 uint32_t CommandSubType
;
2495 uint32_t _3DCommandOpcode
;
2496 uint32_t _3DCommandSubOpcode
;
2497 uint32_t DwordLength
;
2499 uint32_t ConstantBufferOffset
;
2501 uint32_t ConstantBufferSize
;
2505 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2506 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
2508 uint32_t *dw
= (uint32_t * restrict
) dst
;
2511 __gen_field(values
->CommandType
, 29, 31) |
2512 __gen_field(values
->CommandSubType
, 27, 28) |
2513 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2514 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2515 __gen_field(values
->DwordLength
, 0, 7) |
2519 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2520 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2525 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
2526 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
2528 .CommandSubType = 3, \
2529 ._3DCommandOpcode = 1, \
2530 ._3DCommandSubOpcode = 18, \
2533 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
2535 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
2536 uint32_t CommandType
;
2537 uint32_t CommandSubType
;
2538 uint32_t _3DCommandOpcode
;
2539 uint32_t _3DCommandSubOpcode
;
2540 uint32_t DwordLength
;
2542 uint32_t ConstantBufferOffset
;
2544 uint32_t ConstantBufferSize
;
2548 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2549 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
2551 uint32_t *dw
= (uint32_t * restrict
) dst
;
2554 __gen_field(values
->CommandType
, 29, 31) |
2555 __gen_field(values
->CommandSubType
, 27, 28) |
2556 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2557 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2558 __gen_field(values
->DwordLength
, 0, 7) |
2562 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2563 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2568 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
2569 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
2571 .CommandSubType = 3, \
2572 ._3DCommandOpcode = 1, \
2573 ._3DCommandSubOpcode = 2
2575 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000
2577 #define GEN7_PALETTE_ENTRY_length 0x00000001
2579 struct GEN7_PALETTE_ENTRY
{
2587 GEN7_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2588 const struct GEN7_PALETTE_ENTRY
* restrict values
)
2590 uint32_t *dw
= (uint32_t * restrict
) dst
;
2593 __gen_field(values
->Alpha
, 24, 31) |
2594 __gen_field(values
->Red
, 16, 23) |
2595 __gen_field(values
->Green
, 8, 15) |
2596 __gen_field(values
->Blue
, 0, 7) |
2601 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
{
2602 uint32_t CommandType
;
2603 uint32_t CommandSubType
;
2604 uint32_t _3DCommandOpcode
;
2605 uint32_t _3DCommandSubOpcode
;
2606 uint32_t DwordLength
;
2607 /* variable length fields follow */
2611 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
2612 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
2614 uint32_t *dw
= (uint32_t * restrict
) dst
;
2617 __gen_field(values
->CommandType
, 29, 31) |
2618 __gen_field(values
->CommandSubType
, 27, 28) |
2619 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2620 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2621 __gen_field(values
->DwordLength
, 0, 7) |
2624 /* variable length fields follow */
2627 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
2628 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
2630 .CommandSubType = 3, \
2631 ._3DCommandOpcode = 1, \
2632 ._3DCommandSubOpcode = 12
2634 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000
2636 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
{
2637 uint32_t CommandType
;
2638 uint32_t CommandSubType
;
2639 uint32_t _3DCommandOpcode
;
2640 uint32_t _3DCommandSubOpcode
;
2641 uint32_t DwordLength
;
2642 /* variable length fields follow */
2646 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
2647 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
2649 uint32_t *dw
= (uint32_t * restrict
) dst
;
2652 __gen_field(values
->CommandType
, 29, 31) |
2653 __gen_field(values
->CommandSubType
, 27, 28) |
2654 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2655 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2656 __gen_field(values
->DwordLength
, 0, 7) |
2659 /* variable length fields follow */
2662 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
2663 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
2665 .CommandSubType = 3, \
2666 ._3DCommandOpcode = 0, \
2667 ._3DCommandSubOpcode = 45, \
2670 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
2672 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
2673 uint32_t CommandType
;
2674 uint32_t CommandSubType
;
2675 uint32_t _3DCommandOpcode
;
2676 uint32_t _3DCommandSubOpcode
;
2677 uint32_t DwordLength
;
2678 uint32_t PointertoDSSamplerState
;
2682 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2683 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
2685 uint32_t *dw
= (uint32_t * restrict
) dst
;
2688 __gen_field(values
->CommandType
, 29, 31) |
2689 __gen_field(values
->CommandSubType
, 27, 28) |
2690 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2691 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2692 __gen_field(values
->DwordLength
, 0, 7) |
2696 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
2701 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
2702 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
2704 .CommandSubType = 3, \
2705 ._3DCommandOpcode = 0, \
2706 ._3DCommandSubOpcode = 46, \
2709 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
2711 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
2712 uint32_t CommandType
;
2713 uint32_t CommandSubType
;
2714 uint32_t _3DCommandOpcode
;
2715 uint32_t _3DCommandSubOpcode
;
2716 uint32_t DwordLength
;
2717 uint32_t PointertoGSSamplerState
;
2721 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2722 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
2724 uint32_t *dw
= (uint32_t * restrict
) dst
;
2727 __gen_field(values
->CommandType
, 29, 31) |
2728 __gen_field(values
->CommandSubType
, 27, 28) |
2729 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2730 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2731 __gen_field(values
->DwordLength
, 0, 7) |
2735 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
2740 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
2741 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
2743 .CommandSubType = 3, \
2744 ._3DCommandOpcode = 0, \
2745 ._3DCommandSubOpcode = 44, \
2748 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
2750 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
2751 uint32_t CommandType
;
2752 uint32_t CommandSubType
;
2753 uint32_t _3DCommandOpcode
;
2754 uint32_t _3DCommandSubOpcode
;
2755 uint32_t DwordLength
;
2756 uint32_t PointertoHSSamplerState
;
2760 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2761 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
2763 uint32_t *dw
= (uint32_t * restrict
) dst
;
2766 __gen_field(values
->CommandType
, 29, 31) |
2767 __gen_field(values
->CommandSubType
, 27, 28) |
2768 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2769 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2770 __gen_field(values
->DwordLength
, 0, 7) |
2774 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
2779 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
2780 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
2782 .CommandSubType = 3, \
2783 ._3DCommandOpcode = 0, \
2784 ._3DCommandSubOpcode = 47, \
2787 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
2789 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
2790 uint32_t CommandType
;
2791 uint32_t CommandSubType
;
2792 uint32_t _3DCommandOpcode
;
2793 uint32_t _3DCommandSubOpcode
;
2794 uint32_t DwordLength
;
2795 uint32_t PointertoPSSamplerState
;
2799 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2800 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
2802 uint32_t *dw
= (uint32_t * restrict
) dst
;
2805 __gen_field(values
->CommandType
, 29, 31) |
2806 __gen_field(values
->CommandSubType
, 27, 28) |
2807 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2808 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2809 __gen_field(values
->DwordLength
, 0, 7) |
2813 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
2818 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
2819 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
2821 .CommandSubType = 3, \
2822 ._3DCommandOpcode = 0, \
2823 ._3DCommandSubOpcode = 43, \
2826 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
2828 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
2829 uint32_t CommandType
;
2830 uint32_t CommandSubType
;
2831 uint32_t _3DCommandOpcode
;
2832 uint32_t _3DCommandSubOpcode
;
2833 uint32_t DwordLength
;
2834 uint32_t PointertoVSSamplerState
;
2838 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2839 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
2841 uint32_t *dw
= (uint32_t * restrict
) dst
;
2844 __gen_field(values
->CommandType
, 29, 31) |
2845 __gen_field(values
->CommandSubType
, 27, 28) |
2846 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2847 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2848 __gen_field(values
->DwordLength
, 0, 7) |
2852 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
2857 #define GEN7_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
2858 #define GEN7_3DSTATE_SAMPLE_MASK_header \
2860 .CommandSubType = 3, \
2861 ._3DCommandOpcode = 0, \
2862 ._3DCommandSubOpcode = 24, \
2865 #define GEN7_3DSTATE_SAMPLE_MASK_length 0x00000002
2867 struct GEN7_3DSTATE_SAMPLE_MASK
{
2868 uint32_t CommandType
;
2869 uint32_t CommandSubType
;
2870 uint32_t _3DCommandOpcode
;
2871 uint32_t _3DCommandSubOpcode
;
2872 uint32_t DwordLength
;
2873 uint32_t SampleMask
;
2877 GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
2878 const struct GEN7_3DSTATE_SAMPLE_MASK
* restrict values
)
2880 uint32_t *dw
= (uint32_t * restrict
) dst
;
2883 __gen_field(values
->CommandType
, 29, 31) |
2884 __gen_field(values
->CommandSubType
, 27, 28) |
2885 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2886 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2887 __gen_field(values
->DwordLength
, 0, 7) |
2891 __gen_field(values
->SampleMask
, 0, 7) |
2896 #define GEN7_3DSTATE_SBE_length_bias 0x00000002
2897 #define GEN7_3DSTATE_SBE_header \
2899 .CommandSubType = 3, \
2900 ._3DCommandOpcode = 0, \
2901 ._3DCommandSubOpcode = 31, \
2904 #define GEN7_3DSTATE_SBE_length 0x0000000e
2906 struct GEN7_3DSTATE_SBE
{
2907 uint32_t CommandType
;
2908 uint32_t CommandSubType
;
2909 uint32_t _3DCommandOpcode
;
2910 uint32_t _3DCommandSubOpcode
;
2911 uint32_t DwordLength
;
2913 #define SWIZ_16_31 1
2914 uint32_t AttributeSwizzleControlMode
;
2915 uint32_t NumberofSFOutputAttributes
;
2916 bool AttributeSwizzleEnable
;
2919 uint32_t PointSpriteTextureCoordinateOrigin
;
2920 uint32_t VertexURBEntryReadLength
;
2921 uint32_t VertexURBEntryReadOffset
;
2922 bool Attribute2n1ComponentOverrideW
;
2923 bool Attribute2n1ComponentOverrideZ
;
2924 bool Attribute2n1ComponentOverrideY
;
2925 bool Attribute2n1ComponentOverrideX
;
2926 #define CONST_0000 0
2927 #define CONST_0001_FLOAT 1
2928 #define CONST_1111_FLOAT 2
2930 uint32_t Attribute2n1ConstantSource
;
2932 #define INPUTATTR_FACING 1
2933 #define INPUTATTR_W 2
2934 #define INPUTATTR_FACING_W 3
2935 uint32_t Attribute2n1SwizzleSelect
;
2936 uint32_t Attribute2n1SourceAttribute
;
2937 bool Attribute2nComponentOverrideW
;
2938 bool Attribute2nComponentOverrideZ
;
2939 bool Attribute2nComponentOverrideY
;
2940 bool Attribute2nComponentOverrideX
;
2941 #define CONST_0000 0
2942 #define CONST_0001_FLOAT 1
2943 #define CONST_1111_FLOAT 2
2945 uint32_t Attribute2nConstantSource
;
2947 #define INPUTATTR_FACING 1
2948 #define INPUTATTR_W 2
2949 #define INPUTATTR_FACING_W 3
2950 uint32_t Attribute2nSwizzleSelect
;
2951 uint32_t Attribute2nSourceAttribute
;
2952 uint32_t PointSpriteTextureCoordinateEnable
;
2953 uint32_t ConstantInterpolationEnable310
;
2954 uint32_t Attribute7WrapShortestEnables
;
2955 uint32_t Attribute6WrapShortestEnables
;
2956 uint32_t Attribute5WrapShortestEnables
;
2957 uint32_t Attribute4WrapShortestEnables
;
2958 uint32_t Attribute3WrapShortestEnables
;
2959 uint32_t Attribute2WrapShortestEnables
;
2960 uint32_t Attribute1WrapShortestEnables
;
2961 uint32_t Attribute0WrapShortestEnables
;
2962 uint32_t Attribute15WrapShortestEnables
;
2963 uint32_t Attribute14WrapShortestEnables
;
2964 uint32_t Attribute13WrapShortestEnables
;
2965 uint32_t Attribute12WrapShortestEnables
;
2966 uint32_t Attribute11WrapShortestEnables
;
2967 uint32_t Attribute10WrapShortestEnables
;
2968 uint32_t Attribute9WrapShortestEnables
;
2969 uint32_t Attribute8WrapShortestEnables
;
2973 GEN7_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
2974 const struct GEN7_3DSTATE_SBE
* restrict values
)
2976 uint32_t *dw
= (uint32_t * restrict
) dst
;
2979 __gen_field(values
->CommandType
, 29, 31) |
2980 __gen_field(values
->CommandSubType
, 27, 28) |
2981 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2982 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2983 __gen_field(values
->DwordLength
, 0, 7) |
2987 __gen_field(values
->AttributeSwizzleControlMode
, 28, 28) |
2988 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
2989 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
2990 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
2991 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
2992 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2996 __gen_field(values
->Attribute2n1ComponentOverrideW
, 31, 31) |
2997 __gen_field(values
->Attribute2n1ComponentOverrideZ
, 30, 30) |
2998 __gen_field(values
->Attribute2n1ComponentOverrideY
, 29, 29) |
2999 __gen_field(values
->Attribute2n1ComponentOverrideX
, 28, 28) |
3000 __gen_field(values
->Attribute2n1ConstantSource
, 25, 26) |
3001 __gen_field(values
->Attribute2n1SwizzleSelect
, 22, 23) |
3002 __gen_field(values
->Attribute2n1SourceAttribute
, 16, 20) |
3003 __gen_field(values
->Attribute2nComponentOverrideW
, 15, 15) |
3004 __gen_field(values
->Attribute2nComponentOverrideZ
, 14, 14) |
3005 __gen_field(values
->Attribute2nComponentOverrideY
, 13, 13) |
3006 __gen_field(values
->Attribute2nComponentOverrideX
, 12, 12) |
3007 __gen_field(values
->Attribute2nConstantSource
, 9, 10) |
3008 __gen_field(values
->Attribute2nSwizzleSelect
, 6, 7) |
3009 __gen_field(values
->Attribute2nSourceAttribute
, 0, 4) |
3013 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
3017 __gen_field(values
->ConstantInterpolationEnable310
, 0, 31) |
3021 __gen_field(values
->Attribute7WrapShortestEnables
, 28, 31) |
3022 __gen_field(values
->Attribute6WrapShortestEnables
, 24, 27) |
3023 __gen_field(values
->Attribute5WrapShortestEnables
, 20, 23) |
3024 __gen_field(values
->Attribute4WrapShortestEnables
, 16, 19) |
3025 __gen_field(values
->Attribute3WrapShortestEnables
, 12, 15) |
3026 __gen_field(values
->Attribute2WrapShortestEnables
, 8, 11) |
3027 __gen_field(values
->Attribute1WrapShortestEnables
, 4, 7) |
3028 __gen_field(values
->Attribute0WrapShortestEnables
, 0, 3) |
3032 __gen_field(values
->Attribute15WrapShortestEnables
, 28, 31) |
3033 __gen_field(values
->Attribute14WrapShortestEnables
, 24, 27) |
3034 __gen_field(values
->Attribute13WrapShortestEnables
, 20, 23) |
3035 __gen_field(values
->Attribute12WrapShortestEnables
, 16, 19) |
3036 __gen_field(values
->Attribute11WrapShortestEnables
, 12, 15) |
3037 __gen_field(values
->Attribute10WrapShortestEnables
, 8, 11) |
3038 __gen_field(values
->Attribute9WrapShortestEnables
, 4, 7) |
3039 __gen_field(values
->Attribute8WrapShortestEnables
, 0, 3) |
3044 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
3045 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_header\
3047 .CommandSubType = 3, \
3048 ._3DCommandOpcode = 0, \
3049 ._3DCommandSubOpcode = 15, \
3052 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
3054 struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
{
3055 uint32_t CommandType
;
3056 uint32_t CommandSubType
;
3057 uint32_t _3DCommandOpcode
;
3058 uint32_t _3DCommandSubOpcode
;
3059 uint32_t DwordLength
;
3060 uint32_t ScissorRectPointer
;
3064 GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
3065 const struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
3067 uint32_t *dw
= (uint32_t * restrict
) dst
;
3070 __gen_field(values
->CommandType
, 29, 31) |
3071 __gen_field(values
->CommandSubType
, 27, 28) |
3072 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3073 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3074 __gen_field(values
->DwordLength
, 0, 7) |
3078 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
3083 #define GEN7_3DSTATE_SF_length_bias 0x00000002
3084 #define GEN7_3DSTATE_SF_header \
3086 .CommandSubType = 3, \
3087 ._3DCommandOpcode = 0, \
3088 ._3DCommandSubOpcode = 19, \
3091 #define GEN7_3DSTATE_SF_length 0x00000007
3093 struct GEN7_3DSTATE_SF
{
3094 uint32_t CommandType
;
3095 uint32_t CommandSubType
;
3096 uint32_t _3DCommandOpcode
;
3097 uint32_t _3DCommandSubOpcode
;
3098 uint32_t DwordLength
;
3099 #define D32_FLOAT_S8X24_UINT 0
3101 #define D24_UNORM_S8_UINT 2
3102 #define D24_UNORM_X8_UINT 3
3104 uint32_t DepthBufferSurfaceFormat
;
3105 bool LegacyGlobalDepthBiasEnable
;
3106 bool StatisticsEnable
;
3107 bool GlobalDepthOffsetEnableSolid
;
3108 bool GlobalDepthOffsetEnableWireframe
;
3109 bool GlobalDepthOffsetEnablePoint
;
3110 #define RASTER_SOLID 0
3111 #define RASTER_WIREFRAME 1
3112 #define RASTER_POINT 2
3113 uint32_t FrontFaceFillMode
;
3114 #define RASTER_SOLID 0
3115 #define RASTER_WIREFRAME 1
3116 #define RASTER_POINT 2
3117 uint32_t BackFaceFillMode
;
3118 bool ViewTransformEnable
;
3119 uint32_t FrontWinding
;
3120 bool AntiAliasingEnable
;
3121 #define CULLMODE_BOTH 0
3122 #define CULLMODE_NONE 1
3123 #define CULLMODE_FRONT 2
3124 #define CULLMODE_BACK 3
3127 uint32_t LineEndCapAntialiasingRegionWidth
;
3128 bool ScissorRectangleEnable
;
3129 uint32_t MultisampleRasterizationMode
;
3130 bool LastPixelEnable
;
3134 uint32_t TriangleStripListProvokingVertexSelect
;
3135 uint32_t LineStripListProvokingVertexSelect
;
3139 uint32_t TriangleFanProvokingVertexSelect
;
3140 #define AALINEDISTANCE_TRUE 1
3141 uint32_t AALineDistanceMode
;
3142 uint32_t VertexSubPixelPrecisionSelect
;
3143 uint32_t UsePointWidthState
;
3145 float GlobalDepthOffsetConstant
;
3146 float GlobalDepthOffsetScale
;
3147 float GlobalDepthOffsetClamp
;
3151 GEN7_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
3152 const struct GEN7_3DSTATE_SF
* restrict values
)
3154 uint32_t *dw
= (uint32_t * restrict
) dst
;
3157 __gen_field(values
->CommandType
, 29, 31) |
3158 __gen_field(values
->CommandSubType
, 27, 28) |
3159 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3160 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3161 __gen_field(values
->DwordLength
, 0, 7) |
3165 __gen_field(values
->DepthBufferSurfaceFormat
, 12, 14) |
3166 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
3167 __gen_field(values
->StatisticsEnable
, 10, 10) |
3168 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3169 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3170 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3171 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3172 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3173 __gen_field(values
->ViewTransformEnable
, 1, 1) |
3174 __gen_field(values
->FrontWinding
, 0, 0) |
3178 __gen_field(values
->AntiAliasingEnable
, 31, 31) |
3179 __gen_field(values
->CullMode
, 29, 30) |
3180 __gen_field(values
->LineWidth
* (1 << 7), 18, 27) |
3181 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
3182 __gen_field(values
->ScissorRectangleEnable
, 11, 11) |
3183 __gen_field(values
->MultisampleRasterizationMode
, 8, 9) |
3187 __gen_field(values
->LastPixelEnable
, 31, 31) |
3188 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
3189 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
3190 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
3191 __gen_field(values
->AALineDistanceMode
, 14, 14) |
3192 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
3193 __gen_field(values
->UsePointWidthState
, 11, 11) |
3194 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
3198 __gen_float(values
->GlobalDepthOffsetConstant
) |
3202 __gen_float(values
->GlobalDepthOffsetScale
) |
3206 __gen_float(values
->GlobalDepthOffsetClamp
) |
3211 #define GEN7_3DSTATE_SO_BUFFER_length_bias 0x00000002
3212 #define GEN7_3DSTATE_SO_BUFFER_header \
3214 .CommandSubType = 3, \
3215 ._3DCommandOpcode = 1, \
3216 ._3DCommandSubOpcode = 24, \
3219 #define GEN7_3DSTATE_SO_BUFFER_length 0x00000004
3221 struct GEN7_3DSTATE_SO_BUFFER
{
3222 uint32_t CommandType
;
3223 uint32_t CommandSubType
;
3224 uint32_t _3DCommandOpcode
;
3225 uint32_t _3DCommandSubOpcode
;
3226 uint32_t DwordLength
;
3227 uint32_t SOBufferIndex
;
3228 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
3229 uint32_t SurfacePitch
;
3230 __gen_address_type SurfaceBaseAddress
;
3231 __gen_address_type SurfaceEndAddress
;
3235 GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3236 const struct GEN7_3DSTATE_SO_BUFFER
* restrict values
)
3238 uint32_t *dw
= (uint32_t * restrict
) dst
;
3241 __gen_field(values
->CommandType
, 29, 31) |
3242 __gen_field(values
->CommandSubType
, 27, 28) |
3243 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3244 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3245 __gen_field(values
->DwordLength
, 0, 7) |
3248 uint32_t dw_SOBufferObjectControlState
;
3249 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
3251 __gen_field(values
->SOBufferIndex
, 29, 30) |
3252 __gen_field(dw_SOBufferObjectControlState
, 25, 28) |
3253 __gen_field(values
->SurfacePitch
, 0, 11) |
3260 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3266 __gen_combine_address(data
, &dw
[3], values
->SurfaceEndAddress
, dw3
);
3270 #define GEN7_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
3271 #define GEN7_3DSTATE_SO_DECL_LIST_header \
3273 .CommandSubType = 3, \
3274 ._3DCommandOpcode = 1, \
3275 ._3DCommandSubOpcode = 23
3277 #define GEN7_3DSTATE_SO_DECL_LIST_length 0x00000000
3279 #define GEN7_SO_DECL_ENTRY_length 0x00000002
3281 #define GEN7_SO_DECL_length 0x00000001
3283 struct GEN7_SO_DECL
{
3284 uint32_t OutputBufferSlot
;
3286 uint32_t RegisterIndex
;
3287 uint32_t ComponentMask
;
3291 GEN7_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
3292 const struct GEN7_SO_DECL
* restrict values
)
3294 uint32_t *dw
= (uint32_t * restrict
) dst
;
3297 __gen_field(values
->OutputBufferSlot
, 12, 13) |
3298 __gen_field(values
->HoleFlag
, 11, 11) |
3299 __gen_field(values
->RegisterIndex
, 4, 9) |
3300 __gen_field(values
->ComponentMask
, 0, 3) |
3305 struct GEN7_SO_DECL_ENTRY
{
3306 struct GEN7_SO_DECL Stream3Decl
;
3307 struct GEN7_SO_DECL Stream2Decl
;
3308 struct GEN7_SO_DECL Stream1Decl
;
3309 struct GEN7_SO_DECL Stream0Decl
;
3313 GEN7_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3314 const struct GEN7_SO_DECL_ENTRY
* restrict values
)
3316 uint32_t *dw
= (uint32_t * restrict
) dst
;
3318 uint32_t dw_Stream3Decl
;
3319 GEN7_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
3320 uint32_t dw_Stream2Decl
;
3321 GEN7_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
3322 uint32_t dw_Stream1Decl
;
3323 GEN7_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
3324 uint32_t dw_Stream0Decl
;
3325 GEN7_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
3327 __gen_field(dw_Stream3Decl
, 48, 63) |
3328 __gen_field(dw_Stream2Decl
, 32, 47) |
3329 __gen_field(dw_Stream1Decl
, 16, 31) |
3330 __gen_field(dw_Stream0Decl
, 0, 15) |
3338 struct GEN7_3DSTATE_SO_DECL_LIST
{
3339 uint32_t CommandType
;
3340 uint32_t CommandSubType
;
3341 uint32_t _3DCommandOpcode
;
3342 uint32_t _3DCommandSubOpcode
;
3343 uint32_t DwordLength
;
3344 uint32_t StreamtoBufferSelects3
;
3345 uint32_t StreamtoBufferSelects2
;
3346 uint32_t StreamtoBufferSelects1
;
3347 uint32_t StreamtoBufferSelects0
;
3348 uint32_t NumEntries3
;
3349 uint32_t NumEntries2
;
3350 uint32_t NumEntries1
;
3351 uint32_t NumEntries0
;
3352 /* variable length fields follow */
3356 GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
3357 const struct GEN7_3DSTATE_SO_DECL_LIST
* restrict values
)
3359 uint32_t *dw
= (uint32_t * restrict
) dst
;
3362 __gen_field(values
->CommandType
, 29, 31) |
3363 __gen_field(values
->CommandSubType
, 27, 28) |
3364 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3365 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3366 __gen_field(values
->DwordLength
, 0, 8) |
3370 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
3371 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
3372 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
3373 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
3377 __gen_field(values
->NumEntries3
, 24, 31) |
3378 __gen_field(values
->NumEntries2
, 16, 23) |
3379 __gen_field(values
->NumEntries1
, 8, 15) |
3380 __gen_field(values
->NumEntries0
, 0, 7) |
3383 /* variable length fields follow */
3386 #define GEN7_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
3387 #define GEN7_3DSTATE_STENCIL_BUFFER_header \
3389 .CommandSubType = 3, \
3390 ._3DCommandOpcode = 0, \
3391 ._3DCommandSubOpcode = 6, \
3394 #define GEN7_3DSTATE_STENCIL_BUFFER_length 0x00000003
3396 struct GEN7_3DSTATE_STENCIL_BUFFER
{
3397 uint32_t CommandType
;
3398 uint32_t CommandSubType
;
3399 uint32_t _3DCommandOpcode
;
3400 uint32_t _3DCommandSubOpcode
;
3401 uint32_t DwordLength
;
3402 struct GEN7_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
3403 uint32_t SurfacePitch
;
3404 __gen_address_type SurfaceBaseAddress
;
3408 GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3409 const struct GEN7_3DSTATE_STENCIL_BUFFER
* restrict values
)
3411 uint32_t *dw
= (uint32_t * restrict
) dst
;
3414 __gen_field(values
->CommandType
, 29, 31) |
3415 __gen_field(values
->CommandSubType
, 27, 28) |
3416 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3417 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3418 __gen_field(values
->DwordLength
, 0, 7) |
3421 uint32_t dw_StencilBufferObjectControlState
;
3422 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
3424 __gen_field(dw_StencilBufferObjectControlState
, 25, 28) |
3425 __gen_field(values
->SurfacePitch
, 0, 16) |
3432 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3436 #define GEN7_3DSTATE_STREAMOUT_length_bias 0x00000002
3437 #define GEN7_3DSTATE_STREAMOUT_header \
3439 .CommandSubType = 3, \
3440 ._3DCommandOpcode = 0, \
3441 ._3DCommandSubOpcode = 30, \
3444 #define GEN7_3DSTATE_STREAMOUT_length 0x00000003
3446 struct GEN7_3DSTATE_STREAMOUT
{
3447 uint32_t CommandType
;
3448 uint32_t CommandSubType
;
3449 uint32_t _3DCommandOpcode
;
3450 uint32_t _3DCommandSubOpcode
;
3451 uint32_t DwordLength
;
3452 uint32_t SOFunctionEnable
;
3453 uint32_t RenderingDisable
;
3454 uint32_t RenderStreamSelect
;
3457 uint32_t ReorderMode
;
3458 bool SOStatisticsEnable
;
3459 uint32_t SOBufferEnable3
;
3460 uint32_t SOBufferEnable2
;
3461 uint32_t SOBufferEnable1
;
3462 uint32_t SOBufferEnable0
;
3463 uint32_t Stream3VertexReadOffset
;
3464 uint32_t Stream3VertexReadLength
;
3465 uint32_t Stream2VertexReadOffset
;
3466 uint32_t Stream2VertexReadLength
;
3467 uint32_t Stream1VertexReadOffset
;
3468 uint32_t Stream1VertexReadLength
;
3469 uint32_t Stream0VertexReadOffset
;
3470 uint32_t Stream0VertexReadLength
;
3474 GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
3475 const struct GEN7_3DSTATE_STREAMOUT
* restrict values
)
3477 uint32_t *dw
= (uint32_t * restrict
) dst
;
3480 __gen_field(values
->CommandType
, 29, 31) |
3481 __gen_field(values
->CommandSubType
, 27, 28) |
3482 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3483 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3484 __gen_field(values
->DwordLength
, 0, 7) |
3488 __gen_field(values
->SOFunctionEnable
, 31, 31) |
3489 __gen_field(values
->RenderingDisable
, 30, 30) |
3490 __gen_field(values
->RenderStreamSelect
, 27, 28) |
3491 __gen_field(values
->ReorderMode
, 26, 26) |
3492 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
3493 __gen_field(values
->SOBufferEnable3
, 11, 11) |
3494 __gen_field(values
->SOBufferEnable2
, 10, 10) |
3495 __gen_field(values
->SOBufferEnable1
, 9, 9) |
3496 __gen_field(values
->SOBufferEnable0
, 8, 8) |
3500 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
3501 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
3502 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
3503 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
3504 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
3505 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
3506 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
3507 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
3512 #define GEN7_3DSTATE_TE_length_bias 0x00000002
3513 #define GEN7_3DSTATE_TE_header \
3515 .CommandSubType = 3, \
3516 ._3DCommandOpcode = 0, \
3517 ._3DCommandSubOpcode = 28, \
3520 #define GEN7_3DSTATE_TE_length 0x00000004
3522 struct GEN7_3DSTATE_TE
{
3523 uint32_t CommandType
;
3524 uint32_t CommandSubType
;
3525 uint32_t _3DCommandOpcode
;
3526 uint32_t _3DCommandSubOpcode
;
3527 uint32_t DwordLength
;
3529 #define ODD_FRACTIONAL 1
3530 #define EVEN_FRACTIONAL 2
3531 uint32_t Partitioning
;
3533 #define OUTPUT_LINE 1
3534 #define OUTPUT_TRI_CW 2
3535 #define OUTPUT_TRI_CCW 3
3536 uint32_t OutputTopology
;
3545 float MaximumTessellationFactorOdd
;
3546 float MaximumTessellationFactorNotOdd
;
3550 GEN7_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
3551 const struct GEN7_3DSTATE_TE
* restrict values
)
3553 uint32_t *dw
= (uint32_t * restrict
) dst
;
3556 __gen_field(values
->CommandType
, 29, 31) |
3557 __gen_field(values
->CommandSubType
, 27, 28) |
3558 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3559 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3560 __gen_field(values
->DwordLength
, 0, 7) |
3564 __gen_field(values
->Partitioning
, 12, 13) |
3565 __gen_field(values
->OutputTopology
, 8, 9) |
3566 __gen_field(values
->TEDomain
, 4, 5) |
3567 __gen_field(values
->TEMode
, 1, 2) |
3568 __gen_field(values
->TEEnable
, 0, 0) |
3572 __gen_float(values
->MaximumTessellationFactorOdd
) |
3576 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
3581 #define GEN7_3DSTATE_URB_DS_length_bias 0x00000002
3582 #define GEN7_3DSTATE_URB_DS_header \
3584 .CommandSubType = 3, \
3585 ._3DCommandOpcode = 0, \
3586 ._3DCommandSubOpcode = 50, \
3589 #define GEN7_3DSTATE_URB_DS_length 0x00000002
3591 struct GEN7_3DSTATE_URB_DS
{
3592 uint32_t CommandType
;
3593 uint32_t CommandSubType
;
3594 uint32_t _3DCommandOpcode
;
3595 uint32_t _3DCommandSubOpcode
;
3596 uint32_t DwordLength
;
3597 uint32_t DSURBStartingAddress
;
3598 uint32_t DSURBEntryAllocationSize
;
3599 uint32_t DSNumberofURBEntries
;
3603 GEN7_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3604 const struct GEN7_3DSTATE_URB_DS
* restrict values
)
3606 uint32_t *dw
= (uint32_t * restrict
) dst
;
3609 __gen_field(values
->CommandType
, 29, 31) |
3610 __gen_field(values
->CommandSubType
, 27, 28) |
3611 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3612 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3613 __gen_field(values
->DwordLength
, 0, 7) |
3617 __gen_field(values
->DSURBStartingAddress
, 25, 29) |
3618 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
3619 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
3624 #define GEN7_3DSTATE_URB_GS_length_bias 0x00000002
3625 #define GEN7_3DSTATE_URB_GS_header \
3627 .CommandSubType = 3, \
3628 ._3DCommandOpcode = 0, \
3629 ._3DCommandSubOpcode = 51, \
3632 #define GEN7_3DSTATE_URB_GS_length 0x00000002
3634 struct GEN7_3DSTATE_URB_GS
{
3635 uint32_t CommandType
;
3636 uint32_t CommandSubType
;
3637 uint32_t _3DCommandOpcode
;
3638 uint32_t _3DCommandSubOpcode
;
3639 uint32_t DwordLength
;
3640 uint32_t GSURBStartingAddress
;
3641 uint32_t GSURBEntryAllocationSize
;
3642 uint32_t GSNumberofURBEntries
;
3646 GEN7_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3647 const struct GEN7_3DSTATE_URB_GS
* restrict values
)
3649 uint32_t *dw
= (uint32_t * restrict
) dst
;
3652 __gen_field(values
->CommandType
, 29, 31) |
3653 __gen_field(values
->CommandSubType
, 27, 28) |
3654 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3655 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3656 __gen_field(values
->DwordLength
, 0, 7) |
3660 __gen_field(values
->GSURBStartingAddress
, 25, 29) |
3661 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
3662 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
3667 #define GEN7_3DSTATE_URB_HS_length_bias 0x00000002
3668 #define GEN7_3DSTATE_URB_HS_header \
3670 .CommandSubType = 3, \
3671 ._3DCommandOpcode = 0, \
3672 ._3DCommandSubOpcode = 49, \
3675 #define GEN7_3DSTATE_URB_HS_length 0x00000002
3677 struct GEN7_3DSTATE_URB_HS
{
3678 uint32_t CommandType
;
3679 uint32_t CommandSubType
;
3680 uint32_t _3DCommandOpcode
;
3681 uint32_t _3DCommandSubOpcode
;
3682 uint32_t DwordLength
;
3683 uint32_t HSURBStartingAddress
;
3684 uint32_t HSURBEntryAllocationSize
;
3685 uint32_t HSNumberofURBEntries
;
3689 GEN7_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3690 const struct GEN7_3DSTATE_URB_HS
* restrict values
)
3692 uint32_t *dw
= (uint32_t * restrict
) dst
;
3695 __gen_field(values
->CommandType
, 29, 31) |
3696 __gen_field(values
->CommandSubType
, 27, 28) |
3697 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3698 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3699 __gen_field(values
->DwordLength
, 0, 7) |
3703 __gen_field(values
->HSURBStartingAddress
, 25, 29) |
3704 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
3705 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
3710 #define GEN7_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
3711 #define GEN7_3DSTATE_VERTEX_BUFFERS_header \
3713 .CommandSubType = 3, \
3714 ._3DCommandOpcode = 0, \
3715 ._3DCommandSubOpcode = 8
3717 #define GEN7_3DSTATE_VERTEX_BUFFERS_length 0x00000000
3719 #define GEN7_VERTEX_BUFFER_STATE_length 0x00000004
3721 struct GEN7_VERTEX_BUFFER_STATE
{
3722 uint32_t VertexBufferIndex
;
3723 #define VERTEXDATA 0
3724 #define INSTANCEDATA 1
3725 uint32_t BufferAccessType
;
3726 struct GEN7_MEMORY_OBJECT_CONTROL_STATE VertexBufferMemoryObjectControlState
;
3727 uint32_t AddressModifyEnable
;
3728 bool NullVertexBuffer
;
3729 uint32_t VertexFetchInvalidate
;
3730 uint32_t BufferPitch
;
3731 __gen_address_type BufferStartingAddress
;
3732 __gen_address_type EndAddress
;
3733 uint32_t InstanceDataStepRate
;
3737 GEN7_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
3738 const struct GEN7_VERTEX_BUFFER_STATE
* restrict values
)
3740 uint32_t *dw
= (uint32_t * restrict
) dst
;
3742 uint32_t dw_VertexBufferMemoryObjectControlState
;
3743 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_VertexBufferMemoryObjectControlState
, &values
->VertexBufferMemoryObjectControlState
);
3745 __gen_field(values
->VertexBufferIndex
, 26, 31) |
3746 __gen_field(values
->BufferAccessType
, 20, 20) |
3747 __gen_field(dw_VertexBufferMemoryObjectControlState
, 16, 19) |
3748 __gen_field(values
->AddressModifyEnable
, 14, 14) |
3749 __gen_field(values
->NullVertexBuffer
, 13, 13) |
3750 __gen_field(values
->VertexFetchInvalidate
, 12, 12) |
3751 __gen_field(values
->BufferPitch
, 0, 11) |
3758 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
3764 __gen_combine_address(data
, &dw
[2], values
->EndAddress
, dw2
);
3767 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
3772 struct GEN7_3DSTATE_VERTEX_BUFFERS
{
3773 uint32_t CommandType
;
3774 uint32_t CommandSubType
;
3775 uint32_t _3DCommandOpcode
;
3776 uint32_t _3DCommandSubOpcode
;
3777 uint32_t DwordLength
;
3778 /* variable length fields follow */
3782 GEN7_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
3783 const struct GEN7_3DSTATE_VERTEX_BUFFERS
* restrict values
)
3785 uint32_t *dw
= (uint32_t * restrict
) dst
;
3788 __gen_field(values
->CommandType
, 29, 31) |
3789 __gen_field(values
->CommandSubType
, 27, 28) |
3790 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3791 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3792 __gen_field(values
->DwordLength
, 0, 7) |
3795 /* variable length fields follow */
3798 #define GEN7_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
3799 #define GEN7_3DSTATE_VERTEX_ELEMENTS_header \
3801 .CommandSubType = 3, \
3802 ._3DCommandOpcode = 0, \
3803 ._3DCommandSubOpcode = 9
3805 #define GEN7_3DSTATE_VERTEX_ELEMENTS_length 0x00000000
3807 #define GEN7_VERTEX_ELEMENT_STATE_length 0x00000002
3809 struct GEN7_VERTEX_ELEMENT_STATE
{
3810 uint32_t VertexBufferIndex
;
3812 uint32_t SourceElementFormat
;
3813 bool EdgeFlagEnable
;
3814 uint32_t SourceElementOffset
;
3815 uint32_t Component0Control
;
3816 uint32_t Component1Control
;
3817 uint32_t Component2Control
;
3818 uint32_t Component3Control
;
3822 GEN7_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
3823 const struct GEN7_VERTEX_ELEMENT_STATE
* restrict values
)
3825 uint32_t *dw
= (uint32_t * restrict
) dst
;
3828 __gen_field(values
->VertexBufferIndex
, 26, 31) |
3829 __gen_field(values
->Valid
, 25, 25) |
3830 __gen_field(values
->SourceElementFormat
, 16, 24) |
3831 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
3832 __gen_field(values
->SourceElementOffset
, 0, 11) |
3836 __gen_field(values
->Component0Control
, 28, 30) |
3837 __gen_field(values
->Component1Control
, 24, 26) |
3838 __gen_field(values
->Component2Control
, 20, 22) |
3839 __gen_field(values
->Component3Control
, 16, 18) |
3844 struct GEN7_3DSTATE_VERTEX_ELEMENTS
{
3845 uint32_t CommandType
;
3846 uint32_t CommandSubType
;
3847 uint32_t _3DCommandOpcode
;
3848 uint32_t _3DCommandSubOpcode
;
3849 uint32_t DwordLength
;
3850 /* variable length fields follow */
3854 GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
3855 const struct GEN7_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
3857 uint32_t *dw
= (uint32_t * restrict
) dst
;
3860 __gen_field(values
->CommandType
, 29, 31) |
3861 __gen_field(values
->CommandSubType
, 27, 28) |
3862 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3863 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3864 __gen_field(values
->DwordLength
, 0, 7) |
3867 /* variable length fields follow */
3870 #define GEN7_3DSTATE_VF_STATISTICS_length_bias 0x00000001
3871 #define GEN7_3DSTATE_VF_STATISTICS_header \
3873 .CommandSubType = 1, \
3874 ._3DCommandOpcode = 0, \
3875 ._3DCommandSubOpcode = 11
3877 #define GEN7_3DSTATE_VF_STATISTICS_length 0x00000001
3879 struct GEN7_3DSTATE_VF_STATISTICS
{
3880 uint32_t CommandType
;
3881 uint32_t CommandSubType
;
3882 uint32_t _3DCommandOpcode
;
3883 uint32_t _3DCommandSubOpcode
;
3884 bool StatisticsEnable
;
3888 GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
3889 const struct GEN7_3DSTATE_VF_STATISTICS
* restrict values
)
3891 uint32_t *dw
= (uint32_t * restrict
) dst
;
3894 __gen_field(values
->CommandType
, 29, 31) |
3895 __gen_field(values
->CommandSubType
, 27, 28) |
3896 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3897 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3898 __gen_field(values
->StatisticsEnable
, 0, 0) |
3903 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
3904 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
3906 .CommandSubType = 3, \
3907 ._3DCommandOpcode = 0, \
3908 ._3DCommandSubOpcode = 35, \
3911 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
3913 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
3914 uint32_t CommandType
;
3915 uint32_t CommandSubType
;
3916 uint32_t _3DCommandOpcode
;
3917 uint32_t _3DCommandSubOpcode
;
3918 uint32_t DwordLength
;
3919 uint32_t CCViewportPointer
;
3923 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
3924 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
3926 uint32_t *dw
= (uint32_t * restrict
) dst
;
3929 __gen_field(values
->CommandType
, 29, 31) |
3930 __gen_field(values
->CommandSubType
, 27, 28) |
3931 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3932 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3933 __gen_field(values
->DwordLength
, 0, 7) |
3937 __gen_offset(values
->CCViewportPointer
, 5, 31) |
3942 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
3943 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
3945 .CommandSubType = 3, \
3946 ._3DCommandOpcode = 0, \
3947 ._3DCommandSubOpcode = 33, \
3950 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
3952 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
3953 uint32_t CommandType
;
3954 uint32_t CommandSubType
;
3955 uint32_t _3DCommandOpcode
;
3956 uint32_t _3DCommandSubOpcode
;
3957 uint32_t DwordLength
;
3958 uint32_t SFClipViewportPointer
;
3962 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
3963 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
3965 uint32_t *dw
= (uint32_t * restrict
) dst
;
3968 __gen_field(values
->CommandType
, 29, 31) |
3969 __gen_field(values
->CommandSubType
, 27, 28) |
3970 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3971 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3972 __gen_field(values
->DwordLength
, 0, 7) |
3976 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
3981 #define GEN7_3DSTATE_VS_length_bias 0x00000002
3982 #define GEN7_3DSTATE_VS_header \
3984 .CommandSubType = 3, \
3985 ._3DCommandOpcode = 0, \
3986 ._3DCommandSubOpcode = 16, \
3989 #define GEN7_3DSTATE_VS_length 0x00000006
3991 struct GEN7_3DSTATE_VS
{
3992 uint32_t CommandType
;
3993 uint32_t CommandSubType
;
3994 uint32_t _3DCommandOpcode
;
3995 uint32_t _3DCommandSubOpcode
;
3996 uint32_t DwordLength
;
3997 uint32_t KernelStartPointer
;
4000 uint32_t SingleVertexDispatch
;
4003 uint32_t VectorMaskEnableVME
;
4004 #define NoSamplers 0
4005 #define _14Samplers 1
4006 #define _58Samplers 2
4007 #define _912Samplers 3
4008 #define _1316Samplers 4
4009 uint32_t SamplerCount
;
4010 uint32_t BindingTableEntryCount
;
4013 uint32_t FloatingPointMode
;
4014 bool IllegalOpcodeExceptionEnable
;
4015 bool SoftwareExceptionEnable
;
4016 uint32_t ScratchSpaceBaseOffset
;
4017 uint32_t PerThreadScratchSpace
;
4018 uint32_t DispatchGRFStartRegisterforURBData
;
4019 uint32_t VertexURBEntryReadLength
;
4020 uint32_t VertexURBEntryReadOffset
;
4021 uint32_t MaximumNumberofThreads
;
4022 bool StatisticsEnable
;
4023 bool VertexCacheDisable
;
4024 bool VSFunctionEnable
;
4028 GEN7_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
4029 const struct GEN7_3DSTATE_VS
* restrict values
)
4031 uint32_t *dw
= (uint32_t * restrict
) dst
;
4034 __gen_field(values
->CommandType
, 29, 31) |
4035 __gen_field(values
->CommandSubType
, 27, 28) |
4036 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4037 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4038 __gen_field(values
->DwordLength
, 0, 7) |
4042 __gen_offset(values
->KernelStartPointer
, 6, 31) |
4046 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
4047 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
4048 __gen_field(values
->SamplerCount
, 27, 29) |
4049 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
4050 __gen_field(values
->FloatingPointMode
, 16, 16) |
4051 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
4052 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
4056 __gen_offset(values
->ScratchSpaceBaseOffset
, 10, 31) |
4057 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4061 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 20, 24) |
4062 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
4063 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
4067 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
4068 __gen_field(values
->StatisticsEnable
, 10, 10) |
4069 __gen_field(values
->VertexCacheDisable
, 1, 1) |
4070 __gen_field(values
->VSFunctionEnable
, 0, 0) |
4075 #define GEN7_3DSTATE_WM_length_bias 0x00000002
4076 #define GEN7_3DSTATE_WM_header \
4078 .CommandSubType = 3, \
4079 ._3DCommandOpcode = 0, \
4080 ._3DCommandSubOpcode = 20, \
4083 #define GEN7_3DSTATE_WM_length 0x00000003
4085 struct GEN7_3DSTATE_WM
{
4086 uint32_t CommandType
;
4087 uint32_t CommandSubType
;
4088 uint32_t _3DCommandOpcode
;
4089 uint32_t _3DCommandSubOpcode
;
4090 uint32_t DwordLength
;
4091 bool StatisticsEnable
;
4092 bool DepthBufferClear
;
4093 bool ThreadDispatchEnable
;
4094 bool DepthBufferResolveEnable
;
4095 bool HierarchicalDepthBufferResolveEnable
;
4096 bool LegacyDiamondLineRasterization
;
4097 bool PixelShaderKillPixel
;
4098 #define PSCDEPTH_OFF 0
4099 #define PSCDEPTH_ON 1
4100 #define PSCDEPTH_ON_GE 2
4101 #define PSCDEPTH_ON_LE 3
4102 uint32_t PixelShaderComputedDepthMode
;
4103 #define EDSC_NORMAL 0
4104 #define EDSC_PSEXEC 1
4105 #define EDSC_PREPS 2
4106 uint32_t EarlyDepthStencilControl
;
4107 bool PixelShaderUsesSourceDepth
;
4108 bool PixelShaderUsesSourceW
;
4109 #define INTERP_PIXEL 0
4110 #define INTERP_CENTROID 2
4111 #define INTERP_SAMPLE 3
4112 uint32_t PositionZWInterpolationMode
;
4113 uint32_t BarycentricInterpolationMode
;
4114 bool PixelShaderUsesInputCoverageMask
;
4115 uint32_t LineEndCapAntialiasingRegionWidth
;
4116 uint32_t LineAntialiasingRegionWidth
;
4117 bool PolygonStippleEnable
;
4118 bool LineStippleEnable
;
4119 #define RASTRULE_UPPER_LEFT 0
4120 #define RASTRULE_UPPER_RIGHT 1
4121 uint32_t PointRasterizationRule
;
4122 #define MSRASTMODE_OFF_PIXEL 0
4123 #define MSRASTMODE_OFF_PATTERN 1
4124 #define MSRASTMODE_ON_PIXEL 2
4125 #define MSRASTMODE_ON_PATTERN 3
4126 uint32_t MultisampleRasterizationMode
;
4127 #define MSDISPMODE_PERSAMPLE 0
4128 #define MSDISPMODE_PERPIXEL 1
4129 uint32_t MultisampleDispatchMode
;
4133 GEN7_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
4134 const struct GEN7_3DSTATE_WM
* restrict values
)
4136 uint32_t *dw
= (uint32_t * restrict
) dst
;
4139 __gen_field(values
->CommandType
, 29, 31) |
4140 __gen_field(values
->CommandSubType
, 27, 28) |
4141 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4142 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4143 __gen_field(values
->DwordLength
, 0, 7) |
4147 __gen_field(values
->StatisticsEnable
, 31, 31) |
4148 __gen_field(values
->DepthBufferClear
, 30, 30) |
4149 __gen_field(values
->ThreadDispatchEnable
, 29, 29) |
4150 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
4151 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
4152 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
4153 __gen_field(values
->PixelShaderKillPixel
, 25, 25) |
4154 __gen_field(values
->PixelShaderComputedDepthMode
, 23, 24) |
4155 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
4156 __gen_field(values
->PixelShaderUsesSourceDepth
, 20, 20) |
4157 __gen_field(values
->PixelShaderUsesSourceW
, 19, 19) |
4158 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
4159 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
4160 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 10, 10) |
4161 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
4162 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
4163 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
4164 __gen_field(values
->LineStippleEnable
, 3, 3) |
4165 __gen_field(values
->PointRasterizationRule
, 2, 2) |
4166 __gen_field(values
->MultisampleRasterizationMode
, 0, 1) |
4170 __gen_field(values
->MultisampleDispatchMode
, 31, 31) |
4175 #define GEN7_GPGPU_OBJECT_length_bias 0x00000002
4176 #define GEN7_GPGPU_OBJECT_header \
4179 .MediaCommandOpcode = 1, \
4183 #define GEN7_GPGPU_OBJECT_length 0x00000008
4185 struct GEN7_GPGPU_OBJECT
{
4186 uint32_t CommandType
;
4188 uint32_t MediaCommandOpcode
;
4190 bool PredicateEnable
;
4191 uint32_t DwordLength
;
4192 uint32_t SharedLocalMemoryFixedOffset
;
4193 uint32_t InterfaceDescriptorOffset
;
4194 uint32_t SharedLocalMemoryOffset
;
4195 uint32_t EndofThreadGroup
;
4196 #define HalfSlice1 2
4197 #define HalfSlice0 1
4198 #define EitherHalfSlice 0
4199 uint32_t HalfSliceDestinationSelect
;
4200 uint32_t IndirectDataLength
;
4201 uint32_t IndirectDataStartAddress
;
4202 uint32_t ThreadGroupIDX
;
4203 uint32_t ThreadGroupIDY
;
4204 uint32_t ThreadGroupIDZ
;
4205 uint32_t ExecutionMask
;
4209 GEN7_GPGPU_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4210 const struct GEN7_GPGPU_OBJECT
* restrict values
)
4212 uint32_t *dw
= (uint32_t * restrict
) dst
;
4215 __gen_field(values
->CommandType
, 29, 31) |
4216 __gen_field(values
->Pipeline
, 27, 28) |
4217 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4218 __gen_field(values
->SubOpcode
, 16, 23) |
4219 __gen_field(values
->PredicateEnable
, 8, 8) |
4220 __gen_field(values
->DwordLength
, 0, 7) |
4224 __gen_field(values
->SharedLocalMemoryFixedOffset
, 7, 7) |
4225 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4229 __gen_field(values
->SharedLocalMemoryOffset
, 28, 31) |
4230 __gen_field(values
->EndofThreadGroup
, 24, 24) |
4231 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4232 __gen_field(values
->IndirectDataLength
, 0, 16) |
4236 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4240 __gen_field(values
->ThreadGroupIDX
, 0, 31) |
4244 __gen_field(values
->ThreadGroupIDY
, 0, 31) |
4248 __gen_field(values
->ThreadGroupIDZ
, 0, 31) |
4252 __gen_field(values
->ExecutionMask
, 0, 31) |
4257 #define GEN7_GPGPU_WALKER_length_bias 0x00000002
4258 #define GEN7_GPGPU_WALKER_header \
4261 .MediaCommandOpcode = 1, \
4265 #define GEN7_GPGPU_WALKER_length 0x0000000b
4267 struct GEN7_GPGPU_WALKER
{
4268 uint32_t CommandType
;
4270 uint32_t MediaCommandOpcode
;
4271 uint32_t SubOpcodeA
;
4272 bool IndirectParameterEnable
;
4273 bool PredicateEnable
;
4274 uint32_t DwordLength
;
4275 uint32_t InterfaceDescriptorOffset
;
4280 uint32_t ThreadDepthCounterMaximum
;
4281 uint32_t ThreadHeightCounterMaximum
;
4282 uint32_t ThreadWidthCounterMaximum
;
4283 uint32_t ThreadGroupIDStartingX
;
4284 uint32_t ThreadGroupIDXDimension
;
4285 uint32_t ThreadGroupIDStartingY
;
4286 uint32_t ThreadGroupIDYDimension
;
4287 uint32_t ThreadGroupIDStartingZ
;
4288 uint32_t ThreadGroupIDZDimension
;
4289 uint32_t RightExecutionMask
;
4290 uint32_t BottomExecutionMask
;
4294 GEN7_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4295 const struct GEN7_GPGPU_WALKER
* restrict values
)
4297 uint32_t *dw
= (uint32_t * restrict
) dst
;
4300 __gen_field(values
->CommandType
, 29, 31) |
4301 __gen_field(values
->Pipeline
, 27, 28) |
4302 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4303 __gen_field(values
->SubOpcodeA
, 16, 23) |
4304 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
4305 __gen_field(values
->PredicateEnable
, 8, 8) |
4306 __gen_field(values
->DwordLength
, 0, 7) |
4310 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4314 __gen_field(values
->SIMDSize
, 30, 31) |
4315 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
4316 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
4317 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
4321 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
4325 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
4329 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
4333 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
4337 __gen_field(values
->ThreadGroupIDStartingZ
, 0, 31) |
4341 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
4345 __gen_field(values
->RightExecutionMask
, 0, 31) |
4349 __gen_field(values
->BottomExecutionMask
, 0, 31) |
4354 #define GEN7_MEDIA_CURBE_LOAD_length_bias 0x00000002
4355 #define GEN7_MEDIA_CURBE_LOAD_header \
4358 .MediaCommandOpcode = 0, \
4362 #define GEN7_MEDIA_CURBE_LOAD_length 0x00000004
4364 struct GEN7_MEDIA_CURBE_LOAD
{
4365 uint32_t CommandType
;
4367 uint32_t MediaCommandOpcode
;
4369 uint32_t DwordLength
;
4370 uint32_t CURBETotalDataLength
;
4371 uint32_t CURBEDataStartAddress
;
4375 GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4376 const struct GEN7_MEDIA_CURBE_LOAD
* restrict values
)
4378 uint32_t *dw
= (uint32_t * restrict
) dst
;
4381 __gen_field(values
->CommandType
, 29, 31) |
4382 __gen_field(values
->Pipeline
, 27, 28) |
4383 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4384 __gen_field(values
->SubOpcode
, 16, 23) |
4385 __gen_field(values
->DwordLength
, 0, 15) |
4392 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
4396 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
4401 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
4402 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
4405 .MediaCommandOpcode = 0, \
4409 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
4411 struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
4412 uint32_t CommandType
;
4414 uint32_t MediaCommandOpcode
;
4416 uint32_t DwordLength
;
4417 uint32_t InterfaceDescriptorTotalLength
;
4418 uint32_t InterfaceDescriptorDataStartAddress
;
4422 GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4423 const struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
4425 uint32_t *dw
= (uint32_t * restrict
) dst
;
4428 __gen_field(values
->CommandType
, 29, 31) |
4429 __gen_field(values
->Pipeline
, 27, 28) |
4430 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4431 __gen_field(values
->SubOpcode
, 16, 23) |
4432 __gen_field(values
->DwordLength
, 0, 15) |
4439 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
4443 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
4448 #define GEN7_MEDIA_OBJECT_length_bias 0x00000002
4449 #define GEN7_MEDIA_OBJECT_header \
4451 .MediaCommandPipeline = 2, \
4452 .MediaCommandOpcode = 1, \
4453 .MediaCommandSubOpcode = 0
4455 #define GEN7_MEDIA_OBJECT_length 0x00000000
4457 struct GEN7_MEDIA_OBJECT
{
4458 uint32_t CommandType
;
4459 uint32_t MediaCommandPipeline
;
4460 uint32_t MediaCommandOpcode
;
4461 uint32_t MediaCommandSubOpcode
;
4462 uint32_t DwordLength
;
4463 uint32_t InterfaceDescriptorOffset
;
4464 bool ChildrenPresent
;
4465 #define Nothreadsynchronization 0
4466 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4467 uint32_t ThreadSynchronization
;
4468 #define Notusingscoreboard 0
4469 #define Usingscoreboard 1
4470 uint32_t UseScoreboard
;
4471 #define HalfSlice1 2
4472 #define HalfSlice0 1
4473 #define Eitherhalfslice 0
4474 uint32_t HalfSliceDestinationSelect
;
4475 uint32_t IndirectDataLength
;
4476 __gen_address_type IndirectDataStartAddress
;
4477 uint32_t ScoredboardY
;
4478 uint32_t ScoreboardX
;
4479 uint32_t ScoreboardColor
;
4480 bool ScoreboardMask
;
4481 /* variable length fields follow */
4485 GEN7_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4486 const struct GEN7_MEDIA_OBJECT
* restrict values
)
4488 uint32_t *dw
= (uint32_t * restrict
) dst
;
4491 __gen_field(values
->CommandType
, 29, 31) |
4492 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
4493 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4494 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
4495 __gen_field(values
->DwordLength
, 0, 15) |
4499 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4503 __gen_field(values
->ChildrenPresent
, 31, 31) |
4504 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4505 __gen_field(values
->UseScoreboard
, 21, 21) |
4506 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4507 __gen_field(values
->IndirectDataLength
, 0, 16) |
4514 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
4517 __gen_field(values
->ScoredboardY
, 16, 24) |
4518 __gen_field(values
->ScoreboardX
, 0, 8) |
4522 __gen_field(values
->ScoreboardColor
, 16, 19) |
4523 __gen_field(values
->ScoreboardMask
, 0, 7) |
4526 /* variable length fields follow */
4529 #define GEN7_MEDIA_OBJECT_PRT_length_bias 0x00000002
4530 #define GEN7_MEDIA_OBJECT_PRT_header \
4533 .MediaCommandOpcode = 1, \
4537 #define GEN7_MEDIA_OBJECT_PRT_length 0x00000010
4539 struct GEN7_MEDIA_OBJECT_PRT
{
4540 uint32_t CommandType
;
4542 uint32_t MediaCommandOpcode
;
4544 uint32_t DwordLength
;
4545 uint32_t InterfaceDescriptorOffset
;
4546 bool ChildrenPresent
;
4547 bool PRT_FenceNeeded
;
4548 #define Rootthreadqueue 0
4549 #define VFEstateflush 1
4550 uint32_t PRT_FenceType
;
4551 uint32_t InlineData
[12];
4555 GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
4556 const struct GEN7_MEDIA_OBJECT_PRT
* restrict values
)
4558 uint32_t *dw
= (uint32_t * restrict
) dst
;
4561 __gen_field(values
->CommandType
, 29, 31) |
4562 __gen_field(values
->Pipeline
, 27, 28) |
4563 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4564 __gen_field(values
->SubOpcode
, 16, 23) |
4565 __gen_field(values
->DwordLength
, 0, 15) |
4569 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4573 __gen_field(values
->ChildrenPresent
, 31, 31) |
4574 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
4575 __gen_field(values
->PRT_FenceType
, 22, 22) |
4581 for (uint32_t i
= 0, j
= 4; i
< 12; i
+= 1, j
++) {
4583 __gen_field(values
->InlineData
[i
+ 0], 0, 31) |
4589 #define GEN7_MEDIA_OBJECT_WALKER_length_bias 0x00000002
4590 #define GEN7_MEDIA_OBJECT_WALKER_header \
4593 .MediaCommandOpcode = 1, \
4596 #define GEN7_MEDIA_OBJECT_WALKER_length 0x00000000
4598 struct GEN7_MEDIA_OBJECT_WALKER
{
4599 uint32_t CommandType
;
4601 uint32_t MediaCommandOpcode
;
4603 uint32_t DwordLength
;
4604 uint32_t InterfaceDescriptorOffset
;
4605 bool ChildrenPresent
;
4606 #define Nothreadsynchronization 0
4607 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4608 uint32_t ThreadSynchronization
;
4609 #define Notusingscoreboard 0
4610 #define Usingscoreboard 1
4611 uint32_t UseScoreboard
;
4612 uint32_t IndirectDataLength
;
4613 uint32_t IndirectDataStartAddress
;
4614 bool ScoreboardMask
;
4617 uint32_t ColorCountMinusOne
;
4618 uint32_t MiddleLoopExtraSteps
;
4619 uint32_t LocalMidLoopUnitY
;
4620 uint32_t MidLoopUnitX
;
4621 uint32_t GlobalLoopExecCount
;
4622 uint32_t LocalLoopExecCount
;
4623 uint32_t BlockResolutionY
;
4624 uint32_t BlockResolutionX
;
4625 uint32_t LocalStartY
;
4626 uint32_t LocalStartX
;
4629 uint32_t LocalOuterLoopStrideY
;
4630 uint32_t LocalOuterLoopStrideX
;
4631 uint32_t LocalInnerLoopUnitY
;
4632 uint32_t LocalInnerLoopUnitX
;
4633 uint32_t GlobalResolutionY
;
4634 uint32_t GlobalResolutionX
;
4635 uint32_t GlobalStartY
;
4636 uint32_t GlobalStartX
;
4637 uint32_t GlobalOuterLoopStrideY
;
4638 uint32_t GlobalOuterLoopStrideX
;
4639 uint32_t GlobalInnerLoopUnitY
;
4640 uint32_t GlobalInnerLoopUnitX
;
4641 /* variable length fields follow */
4645 GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4646 const struct GEN7_MEDIA_OBJECT_WALKER
* restrict values
)
4648 uint32_t *dw
= (uint32_t * restrict
) dst
;
4651 __gen_field(values
->CommandType
, 29, 31) |
4652 __gen_field(values
->Pipeline
, 27, 28) |
4653 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4654 __gen_field(values
->SubOpcode
, 16, 23) |
4655 __gen_field(values
->DwordLength
, 0, 15) |
4659 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4663 __gen_field(values
->ChildrenPresent
, 31, 31) |
4664 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4665 __gen_field(values
->UseScoreboard
, 21, 21) |
4666 __gen_field(values
->IndirectDataLength
, 0, 16) |
4670 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4677 __gen_field(values
->ScoreboardMask
, 0, 7) |
4681 __gen_field(values
->DualMode
, 31, 31) |
4682 __gen_field(values
->Repel
, 30, 30) |
4683 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
4684 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
4685 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
4686 __gen_field(values
->MidLoopUnitX
, 8, 9) |
4690 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
4691 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
4695 __gen_field(values
->BlockResolutionY
, 16, 24) |
4696 __gen_field(values
->BlockResolutionX
, 0, 8) |
4700 __gen_field(values
->LocalStartY
, 16, 24) |
4701 __gen_field(values
->LocalStartX
, 0, 8) |
4705 __gen_field(values
->LocalEndY
, 16, 24) |
4706 __gen_field(values
->LocalEndX
, 0, 8) |
4710 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
4711 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
4715 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
4716 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
4720 __gen_field(values
->GlobalResolutionY
, 16, 24) |
4721 __gen_field(values
->GlobalResolutionX
, 0, 8) |
4725 __gen_field(values
->GlobalStartY
, 16, 25) |
4726 __gen_field(values
->GlobalStartX
, 0, 9) |
4730 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
4731 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
4735 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
4736 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
4739 /* variable length fields follow */
4742 #define GEN7_MEDIA_STATE_FLUSH_length_bias 0x00000002
4743 #define GEN7_MEDIA_STATE_FLUSH_header \
4746 .MediaCommandOpcode = 0, \
4750 #define GEN7_MEDIA_STATE_FLUSH_length 0x00000002
4752 struct GEN7_MEDIA_STATE_FLUSH
{
4753 uint32_t CommandType
;
4755 uint32_t MediaCommandOpcode
;
4757 uint32_t DwordLength
;
4758 uint32_t WatermarkRequired
;
4759 uint32_t InterfaceDescriptorOffset
;
4763 GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4764 const struct GEN7_MEDIA_STATE_FLUSH
* restrict values
)
4766 uint32_t *dw
= (uint32_t * restrict
) dst
;
4769 __gen_field(values
->CommandType
, 29, 31) |
4770 __gen_field(values
->Pipeline
, 27, 28) |
4771 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4772 __gen_field(values
->SubOpcode
, 16, 23) |
4773 __gen_field(values
->DwordLength
, 0, 15) |
4777 __gen_field(values
->WatermarkRequired
, 6, 6) |
4778 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
4783 #define GEN7_MEDIA_VFE_STATE_length_bias 0x00000002
4784 #define GEN7_MEDIA_VFE_STATE_header \
4787 .MediaCommandOpcode = 0, \
4791 #define GEN7_MEDIA_VFE_STATE_length 0x00000008
4793 struct GEN7_MEDIA_VFE_STATE
{
4794 uint32_t CommandType
;
4796 uint32_t MediaCommandOpcode
;
4798 uint32_t DwordLength
;
4799 uint32_t ScratchSpaceBasePointer
;
4800 uint32_t PerThreadScratchSpace
;
4801 uint32_t MaximumNumberofThreads
;
4802 uint32_t NumberofURBEntries
;
4803 #define Maintainingtheexistingtimestampstate 0
4804 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
4805 uint32_t ResetGatewayTimer
;
4806 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
4807 #define BypassingOpenGatewayCloseGatewayprotocol 1
4808 uint32_t BypassGatewayControl
;
4809 #define NoMMIOreadwriteallowed 0
4810 #define MMIOreadwritetoanyaddress 2
4811 uint32_t GatewayMMIOAccessControl
;
4813 uint32_t URBEntryAllocationSize
;
4814 uint32_t CURBEAllocationSize
;
4815 #define Scoreboarddisabled 0
4816 #define Scoreboardenabled 1
4817 uint32_t ScoreboardEnable
;
4818 #define StallingScoreboard 0
4819 #define NonStallingScoreboard 1
4820 uint32_t ScoreboardType
;
4821 uint32_t ScoreboardMask
;
4822 uint32_t Scoreboard3DeltaY
;
4823 uint32_t Scoreboard3DeltaX
;
4824 uint32_t Scoreboard2DeltaY
;
4825 uint32_t Scoreboard2DeltaX
;
4826 uint32_t Scoreboard1DeltaY
;
4827 uint32_t Scoreboard1DeltaX
;
4828 uint32_t Scoreboard0DeltaY
;
4829 uint32_t Scoreboard0DeltaX
;
4830 uint32_t Scoreboard7DeltaY
;
4831 uint32_t Scoreboard7DeltaX
;
4832 uint32_t Scoreboard6DeltaY
;
4833 uint32_t Scoreboard6DeltaX
;
4834 uint32_t Scoreboard5DeltaY
;
4835 uint32_t Scoreboard5DeltaX
;
4836 uint32_t Scoreboard4DeltaY
;
4837 uint32_t Scoreboard4DeltaX
;
4841 GEN7_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4842 const struct GEN7_MEDIA_VFE_STATE
* restrict values
)
4844 uint32_t *dw
= (uint32_t * restrict
) dst
;
4847 __gen_field(values
->CommandType
, 29, 31) |
4848 __gen_field(values
->Pipeline
, 27, 28) |
4849 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4850 __gen_field(values
->SubOpcode
, 16, 23) |
4851 __gen_field(values
->DwordLength
, 0, 15) |
4855 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
4856 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4860 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
4861 __gen_field(values
->NumberofURBEntries
, 8, 15) |
4862 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
4863 __gen_field(values
->BypassGatewayControl
, 6, 6) |
4864 __gen_field(values
->GatewayMMIOAccessControl
, 3, 4) |
4865 __gen_field(values
->GPGPUMode
, 2, 2) |
4872 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
4873 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
4877 __gen_field(values
->ScoreboardEnable
, 31, 31) |
4878 __gen_field(values
->ScoreboardType
, 30, 30) |
4879 __gen_field(values
->ScoreboardMask
, 0, 7) |
4883 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
4884 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
4885 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
4886 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
4887 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
4888 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
4889 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
4890 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
4894 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
4895 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
4896 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
4897 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
4898 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
4899 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
4900 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
4901 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
4906 #define GEN7_MI_ARB_CHECK_length_bias 0x00000001
4907 #define GEN7_MI_ARB_CHECK_header \
4909 .MICommandOpcode = 5
4911 #define GEN7_MI_ARB_CHECK_length 0x00000001
4913 struct GEN7_MI_ARB_CHECK
{
4914 uint32_t CommandType
;
4915 uint32_t MICommandOpcode
;
4919 GEN7_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
4920 const struct GEN7_MI_ARB_CHECK
* restrict values
)
4922 uint32_t *dw
= (uint32_t * restrict
) dst
;
4925 __gen_field(values
->CommandType
, 29, 31) |
4926 __gen_field(values
->MICommandOpcode
, 23, 28) |
4931 #define GEN7_MI_ARB_ON_OFF_length_bias 0x00000001
4932 #define GEN7_MI_ARB_ON_OFF_header \
4934 .MICommandOpcode = 8
4936 #define GEN7_MI_ARB_ON_OFF_length 0x00000001
4938 struct GEN7_MI_ARB_ON_OFF
{
4939 uint32_t CommandType
;
4940 uint32_t MICommandOpcode
;
4941 bool ArbitrationEnable
;
4945 GEN7_MI_ARB_ON_OFF_pack(__gen_user_data
*data
, void * restrict dst
,
4946 const struct GEN7_MI_ARB_ON_OFF
* restrict values
)
4948 uint32_t *dw
= (uint32_t * restrict
) dst
;
4951 __gen_field(values
->CommandType
, 29, 31) |
4952 __gen_field(values
->MICommandOpcode
, 23, 28) |
4953 __gen_field(values
->ArbitrationEnable
, 0, 0) |
4958 #define GEN7_MI_BATCH_BUFFER_END_length_bias 0x00000001
4959 #define GEN7_MI_BATCH_BUFFER_END_header \
4961 .MICommandOpcode = 10
4963 #define GEN7_MI_BATCH_BUFFER_END_length 0x00000001
4965 struct GEN7_MI_BATCH_BUFFER_END
{
4966 uint32_t CommandType
;
4967 uint32_t MICommandOpcode
;
4971 GEN7_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
4972 const struct GEN7_MI_BATCH_BUFFER_END
* restrict values
)
4974 uint32_t *dw
= (uint32_t * restrict
) dst
;
4977 __gen_field(values
->CommandType
, 29, 31) |
4978 __gen_field(values
->MICommandOpcode
, 23, 28) |
4983 #define GEN7_MI_BATCH_BUFFER_START_length_bias 0x00000002
4984 #define GEN7_MI_BATCH_BUFFER_START_header \
4986 .MICommandOpcode = 49, \
4989 #define GEN7_MI_BATCH_BUFFER_START_length 0x00000002
4991 struct GEN7_MI_BATCH_BUFFER_START
{
4992 uint32_t CommandType
;
4993 uint32_t MICommandOpcode
;
4994 bool ClearCommandBufferEnable
;
4997 uint32_t AddressSpaceIndicator
;
4998 uint32_t DwordLength
;
4999 __gen_address_type BatchBufferStartAddress
;
5003 GEN7_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
5004 const struct GEN7_MI_BATCH_BUFFER_START
* restrict values
)
5006 uint32_t *dw
= (uint32_t * restrict
) dst
;
5009 __gen_field(values
->CommandType
, 29, 31) |
5010 __gen_field(values
->MICommandOpcode
, 23, 28) |
5011 __gen_field(values
->ClearCommandBufferEnable
, 11, 11) |
5012 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
5013 __gen_field(values
->DwordLength
, 0, 7) |
5020 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
5024 #define GEN7_MI_CLFLUSH_length_bias 0x00000002
5025 #define GEN7_MI_CLFLUSH_header \
5027 .MICommandOpcode = 39
5029 #define GEN7_MI_CLFLUSH_length 0x00000000
5031 struct GEN7_MI_CLFLUSH
{
5032 uint32_t CommandType
;
5033 uint32_t MICommandOpcode
;
5034 #define PerProcessGraphicsAddress 0
5035 #define GlobalGraphicsAddress 1
5036 uint32_t UseGlobalGTT
;
5037 uint32_t DwordLength
;
5038 __gen_address_type PageBaseAddress
;
5039 uint32_t StartingCachelineOffset
;
5040 __gen_address_type PageBaseAddressHigh
;
5041 /* variable length fields follow */
5045 GEN7_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5046 const struct GEN7_MI_CLFLUSH
* restrict values
)
5048 uint32_t *dw
= (uint32_t * restrict
) dst
;
5051 __gen_field(values
->CommandType
, 29, 31) |
5052 __gen_field(values
->MICommandOpcode
, 23, 28) |
5053 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5054 __gen_field(values
->DwordLength
, 0, 9) |
5058 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
5062 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
5068 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
5070 /* variable length fields follow */
5073 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
5074 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_header\
5076 .MICommandOpcode = 54, \
5077 .UseGlobalGTT = 0, \
5078 .CompareSemaphore = 0, \
5081 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
5083 struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
{
5084 uint32_t CommandType
;
5085 uint32_t MICommandOpcode
;
5086 uint32_t UseGlobalGTT
;
5087 uint32_t CompareSemaphore
;
5088 uint32_t DwordLength
;
5089 uint32_t CompareDataDword
;
5090 __gen_address_type CompareAddress
;
5094 GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
5095 const struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
5097 uint32_t *dw
= (uint32_t * restrict
) dst
;
5100 __gen_field(values
->CommandType
, 29, 31) |
5101 __gen_field(values
->MICommandOpcode
, 23, 28) |
5102 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5103 __gen_field(values
->CompareSemaphore
, 21, 21) |
5104 __gen_field(values
->DwordLength
, 0, 7) |
5108 __gen_field(values
->CompareDataDword
, 0, 31) |
5115 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
5119 #define GEN7_MI_FLUSH_length_bias 0x00000001
5120 #define GEN7_MI_FLUSH_header \
5122 .MICommandOpcode = 4
5124 #define GEN7_MI_FLUSH_length 0x00000001
5126 struct GEN7_MI_FLUSH
{
5127 uint32_t CommandType
;
5128 uint32_t MICommandOpcode
;
5129 bool IndirectStatePointersDisable
;
5130 bool GenericMediaStateClear
;
5133 bool GlobalSnapshotCountReset
;
5136 bool RenderCacheFlushInhibit
;
5137 #define DontInvalidate 0
5138 #define Invalidate 1
5139 bool StateInstructionCacheInvalidate
;
5143 GEN7_MI_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5144 const struct GEN7_MI_FLUSH
* restrict values
)
5146 uint32_t *dw
= (uint32_t * restrict
) dst
;
5149 __gen_field(values
->CommandType
, 29, 31) |
5150 __gen_field(values
->MICommandOpcode
, 23, 28) |
5151 __gen_field(values
->IndirectStatePointersDisable
, 5, 5) |
5152 __gen_field(values
->GenericMediaStateClear
, 4, 4) |
5153 __gen_field(values
->GlobalSnapshotCountReset
, 3, 3) |
5154 __gen_field(values
->RenderCacheFlushInhibit
, 2, 2) |
5155 __gen_field(values
->StateInstructionCacheInvalidate
, 1, 1) |
5160 #define GEN7_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
5161 #define GEN7_MI_LOAD_REGISTER_IMM_header \
5163 .MICommandOpcode = 34, \
5166 #define GEN7_MI_LOAD_REGISTER_IMM_length 0x00000003
5168 struct GEN7_MI_LOAD_REGISTER_IMM
{
5169 uint32_t CommandType
;
5170 uint32_t MICommandOpcode
;
5171 uint32_t ByteWriteDisables
;
5172 uint32_t DwordLength
;
5173 uint32_t RegisterOffset
;
5178 GEN7_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5179 const struct GEN7_MI_LOAD_REGISTER_IMM
* restrict values
)
5181 uint32_t *dw
= (uint32_t * restrict
) dst
;
5184 __gen_field(values
->CommandType
, 29, 31) |
5185 __gen_field(values
->MICommandOpcode
, 23, 28) |
5186 __gen_field(values
->ByteWriteDisables
, 8, 11) |
5187 __gen_field(values
->DwordLength
, 0, 7) |
5191 __gen_offset(values
->RegisterOffset
, 2, 22) |
5195 __gen_field(values
->DataDWord
, 0, 31) |
5200 #define GEN7_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
5201 #define GEN7_MI_LOAD_REGISTER_MEM_header \
5203 .MICommandOpcode = 41, \
5206 #define GEN7_MI_LOAD_REGISTER_MEM_length 0x00000003
5208 struct GEN7_MI_LOAD_REGISTER_MEM
{
5209 uint32_t CommandType
;
5210 uint32_t MICommandOpcode
;
5212 uint32_t AsyncModeEnable
;
5213 uint32_t DwordLength
;
5214 uint32_t RegisterAddress
;
5215 __gen_address_type MemoryAddress
;
5219 GEN7_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
5220 const struct GEN7_MI_LOAD_REGISTER_MEM
* restrict values
)
5222 uint32_t *dw
= (uint32_t * restrict
) dst
;
5225 __gen_field(values
->CommandType
, 29, 31) |
5226 __gen_field(values
->MICommandOpcode
, 23, 28) |
5227 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5228 __gen_field(values
->AsyncModeEnable
, 21, 21) |
5229 __gen_field(values
->DwordLength
, 0, 7) |
5233 __gen_offset(values
->RegisterAddress
, 2, 22) |
5240 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
5244 #define GEN7_MI_NOOP_length_bias 0x00000001
5245 #define GEN7_MI_NOOP_header \
5247 .MICommandOpcode = 0
5249 #define GEN7_MI_NOOP_length 0x00000001
5251 struct GEN7_MI_NOOP
{
5252 uint32_t CommandType
;
5253 uint32_t MICommandOpcode
;
5254 bool IdentificationNumberRegisterWriteEnable
;
5255 uint32_t IdentificationNumber
;
5259 GEN7_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
5260 const struct GEN7_MI_NOOP
* restrict values
)
5262 uint32_t *dw
= (uint32_t * restrict
) dst
;
5265 __gen_field(values
->CommandType
, 29, 31) |
5266 __gen_field(values
->MICommandOpcode
, 23, 28) |
5267 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
5268 __gen_field(values
->IdentificationNumber
, 0, 21) |
5273 #define GEN7_MI_PREDICATE_length_bias 0x00000001
5274 #define GEN7_MI_PREDICATE_header \
5276 .MICommandOpcode = 12
5278 #define GEN7_MI_PREDICATE_length 0x00000001
5280 struct GEN7_MI_PREDICATE
{
5281 uint32_t CommandType
;
5282 uint32_t MICommandOpcode
;
5285 #define LOAD_LOADINV 3
5286 uint32_t LoadOperation
;
5287 #define COMBINE_SET 0
5288 #define COMBINE_AND 1
5289 #define COMBINE_OR 2
5290 #define COMBINE_XOR 3
5291 uint32_t CombineOperation
;
5292 #define COMPARE_SRCS_EQUAL 2
5293 #define COMPARE_DELTAS_EQUAL 3
5294 uint32_t CompareOperation
;
5298 GEN7_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
5299 const struct GEN7_MI_PREDICATE
* restrict values
)
5301 uint32_t *dw
= (uint32_t * restrict
) dst
;
5304 __gen_field(values
->CommandType
, 29, 31) |
5305 __gen_field(values
->MICommandOpcode
, 23, 28) |
5306 __gen_field(values
->LoadOperation
, 6, 7) |
5307 __gen_field(values
->CombineOperation
, 3, 4) |
5308 __gen_field(values
->CompareOperation
, 0, 1) |
5313 #define GEN7_MI_REPORT_HEAD_length_bias 0x00000001
5314 #define GEN7_MI_REPORT_HEAD_header \
5316 .MICommandOpcode = 7
5318 #define GEN7_MI_REPORT_HEAD_length 0x00000001
5320 struct GEN7_MI_REPORT_HEAD
{
5321 uint32_t CommandType
;
5322 uint32_t MICommandOpcode
;
5326 GEN7_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
5327 const struct GEN7_MI_REPORT_HEAD
* restrict values
)
5329 uint32_t *dw
= (uint32_t * restrict
) dst
;
5332 __gen_field(values
->CommandType
, 29, 31) |
5333 __gen_field(values
->MICommandOpcode
, 23, 28) |
5338 #define GEN7_MI_SEMAPHORE_MBOX_length_bias 0x00000002
5339 #define GEN7_MI_SEMAPHORE_MBOX_header \
5341 .MICommandOpcode = 22, \
5344 #define GEN7_MI_SEMAPHORE_MBOX_length 0x00000003
5346 struct GEN7_MI_SEMAPHORE_MBOX
{
5347 uint32_t CommandType
;
5348 uint32_t MICommandOpcode
;
5351 #define UseGeneralRegisterSelect 3
5352 uint32_t RegisterSelect
;
5353 uint32_t DwordLength
;
5354 uint32_t SemaphoreDataDword
;
5358 GEN7_MI_SEMAPHORE_MBOX_pack(__gen_user_data
*data
, void * restrict dst
,
5359 const struct GEN7_MI_SEMAPHORE_MBOX
* restrict values
)
5361 uint32_t *dw
= (uint32_t * restrict
) dst
;
5364 __gen_field(values
->CommandType
, 29, 31) |
5365 __gen_field(values
->MICommandOpcode
, 23, 28) |
5366 __gen_field(values
->RegisterSelect
, 16, 17) |
5367 __gen_field(values
->DwordLength
, 0, 7) |
5371 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
5379 #define GEN7_MI_SET_CONTEXT_length_bias 0x00000002
5380 #define GEN7_MI_SET_CONTEXT_header \
5382 .MICommandOpcode = 24, \
5385 #define GEN7_MI_SET_CONTEXT_length 0x00000002
5387 struct GEN7_MI_SET_CONTEXT
{
5388 uint32_t CommandType
;
5389 uint32_t MICommandOpcode
;
5390 uint32_t DwordLength
;
5391 __gen_address_type LogicalContextAddress
;
5392 uint32_t ReservedMustbe1
;
5393 bool ExtendedStateSaveEnable
;
5394 bool ExtendedStateRestoreEnable
;
5395 uint32_t ForceRestore
;
5396 uint32_t RestoreInhibit
;
5400 GEN7_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
5401 const struct GEN7_MI_SET_CONTEXT
* restrict values
)
5403 uint32_t *dw
= (uint32_t * restrict
) dst
;
5406 __gen_field(values
->CommandType
, 29, 31) |
5407 __gen_field(values
->MICommandOpcode
, 23, 28) |
5408 __gen_field(values
->DwordLength
, 0, 7) |
5412 __gen_field(values
->ReservedMustbe1
, 8, 8) |
5413 __gen_field(values
->ExtendedStateSaveEnable
, 3, 3) |
5414 __gen_field(values
->ExtendedStateRestoreEnable
, 2, 2) |
5415 __gen_field(values
->ForceRestore
, 1, 1) |
5416 __gen_field(values
->RestoreInhibit
, 0, 0) |
5420 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
5424 #define GEN7_MI_STORE_DATA_IMM_length_bias 0x00000002
5425 #define GEN7_MI_STORE_DATA_IMM_header \
5427 .MICommandOpcode = 32, \
5430 #define GEN7_MI_STORE_DATA_IMM_length 0x00000004
5432 struct GEN7_MI_STORE_DATA_IMM
{
5433 uint32_t CommandType
;
5434 uint32_t MICommandOpcode
;
5436 uint32_t DwordLength
;
5438 uint32_t CoreModeEnable
;
5439 uint32_t DataDWord0
;
5440 uint32_t DataDWord1
;
5444 GEN7_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5445 const struct GEN7_MI_STORE_DATA_IMM
* restrict values
)
5447 uint32_t *dw
= (uint32_t * restrict
) dst
;
5450 __gen_field(values
->CommandType
, 29, 31) |
5451 __gen_field(values
->MICommandOpcode
, 23, 28) |
5452 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5453 __gen_field(values
->DwordLength
, 0, 5) |
5460 __gen_field(values
->Address
, 2, 31) |
5461 __gen_field(values
->CoreModeEnable
, 0, 0) |
5465 __gen_field(values
->DataDWord0
, 0, 31) |
5469 __gen_field(values
->DataDWord1
, 0, 31) |
5474 #define GEN7_MI_STORE_DATA_INDEX_length_bias 0x00000002
5475 #define GEN7_MI_STORE_DATA_INDEX_header \
5477 .MICommandOpcode = 33, \
5480 #define GEN7_MI_STORE_DATA_INDEX_length 0x00000003
5482 struct GEN7_MI_STORE_DATA_INDEX
{
5483 uint32_t CommandType
;
5484 uint32_t MICommandOpcode
;
5485 uint32_t DwordLength
;
5487 uint32_t DataDWord0
;
5488 uint32_t DataDWord1
;
5492 GEN7_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
5493 const struct GEN7_MI_STORE_DATA_INDEX
* restrict values
)
5495 uint32_t *dw
= (uint32_t * restrict
) dst
;
5498 __gen_field(values
->CommandType
, 29, 31) |
5499 __gen_field(values
->MICommandOpcode
, 23, 28) |
5500 __gen_field(values
->DwordLength
, 0, 7) |
5504 __gen_field(values
->Offset
, 2, 11) |
5508 __gen_field(values
->DataDWord0
, 0, 31) |
5512 __gen_field(values
->DataDWord1
, 0, 31) |
5517 #define GEN7_MI_SUSPEND_FLUSH_length_bias 0x00000001
5518 #define GEN7_MI_SUSPEND_FLUSH_header \
5520 .MICommandOpcode = 11
5522 #define GEN7_MI_SUSPEND_FLUSH_length 0x00000001
5524 struct GEN7_MI_SUSPEND_FLUSH
{
5525 uint32_t CommandType
;
5526 uint32_t MICommandOpcode
;
5531 GEN7_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5532 const struct GEN7_MI_SUSPEND_FLUSH
* restrict values
)
5534 uint32_t *dw
= (uint32_t * restrict
) dst
;
5537 __gen_field(values
->CommandType
, 29, 31) |
5538 __gen_field(values
->MICommandOpcode
, 23, 28) |
5539 __gen_field(values
->SuspendFlush
, 0, 0) |
5544 #define GEN7_MI_TOPOLOGY_FILTER_length_bias 0x00000001
5545 #define GEN7_MI_TOPOLOGY_FILTER_header \
5547 .MICommandOpcode = 13
5549 #define GEN7_MI_TOPOLOGY_FILTER_length 0x00000001
5551 struct GEN7_MI_TOPOLOGY_FILTER
{
5552 uint32_t CommandType
;
5553 uint32_t MICommandOpcode
;
5554 uint32_t TopologyFilterValue
;
5558 GEN7_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
5559 const struct GEN7_MI_TOPOLOGY_FILTER
* restrict values
)
5561 uint32_t *dw
= (uint32_t * restrict
) dst
;
5564 __gen_field(values
->CommandType
, 29, 31) |
5565 __gen_field(values
->MICommandOpcode
, 23, 28) |
5566 __gen_field(values
->TopologyFilterValue
, 0, 5) |
5571 #define GEN7_MI_UPDATE_GTT_length_bias 0x00000002
5572 #define GEN7_MI_UPDATE_GTT_header \
5574 .MICommandOpcode = 35
5576 #define GEN7_MI_UPDATE_GTT_length 0x00000000
5578 struct GEN7_MI_UPDATE_GTT
{
5579 uint32_t CommandType
;
5580 uint32_t MICommandOpcode
;
5581 #define PerProcessGraphicsAddress 0
5582 #define GlobalGraphicsAddress 1
5583 uint32_t UseGlobalGTT
;
5584 uint32_t DwordLength
;
5585 __gen_address_type EntryAddress
;
5586 /* variable length fields follow */
5590 GEN7_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
5591 const struct GEN7_MI_UPDATE_GTT
* restrict values
)
5593 uint32_t *dw
= (uint32_t * restrict
) dst
;
5596 __gen_field(values
->CommandType
, 29, 31) |
5597 __gen_field(values
->MICommandOpcode
, 23, 28) |
5598 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5599 __gen_field(values
->DwordLength
, 0, 7) |
5606 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
5608 /* variable length fields follow */
5611 #define GEN7_MI_URB_CLEAR_length_bias 0x00000002
5612 #define GEN7_MI_URB_CLEAR_header \
5614 .MICommandOpcode = 25, \
5617 #define GEN7_MI_URB_CLEAR_length 0x00000002
5619 struct GEN7_MI_URB_CLEAR
{
5620 uint32_t CommandType
;
5621 uint32_t MICommandOpcode
;
5622 uint32_t DwordLength
;
5623 uint32_t URBClearLength
;
5624 uint32_t URBAddress
;
5628 GEN7_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
5629 const struct GEN7_MI_URB_CLEAR
* restrict values
)
5631 uint32_t *dw
= (uint32_t * restrict
) dst
;
5634 __gen_field(values
->CommandType
, 29, 31) |
5635 __gen_field(values
->MICommandOpcode
, 23, 28) |
5636 __gen_field(values
->DwordLength
, 0, 7) |
5640 __gen_field(values
->URBClearLength
, 16, 28) |
5641 __gen_offset(values
->URBAddress
, 0, 13) |
5646 #define GEN7_MI_USER_INTERRUPT_length_bias 0x00000001
5647 #define GEN7_MI_USER_INTERRUPT_header \
5649 .MICommandOpcode = 2
5651 #define GEN7_MI_USER_INTERRUPT_length 0x00000001
5653 struct GEN7_MI_USER_INTERRUPT
{
5654 uint32_t CommandType
;
5655 uint32_t MICommandOpcode
;
5659 GEN7_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
5660 const struct GEN7_MI_USER_INTERRUPT
* restrict values
)
5662 uint32_t *dw
= (uint32_t * restrict
) dst
;
5665 __gen_field(values
->CommandType
, 29, 31) |
5666 __gen_field(values
->MICommandOpcode
, 23, 28) |
5671 #define GEN7_MI_WAIT_FOR_EVENT_length_bias 0x00000001
5672 #define GEN7_MI_WAIT_FOR_EVENT_header \
5674 .MICommandOpcode = 3
5676 #define GEN7_MI_WAIT_FOR_EVENT_length 0x00000001
5678 struct GEN7_MI_WAIT_FOR_EVENT
{
5679 uint32_t CommandType
;
5680 uint32_t MICommandOpcode
;
5681 bool DisplayPipeCHorizontalBlankWaitEnable
;
5682 bool DisplayPipeCVerticalBlankWaitEnable
;
5683 bool DisplaySpriteCFlipPendingWaitEnable
;
5684 #define Notenabled 0
5685 uint32_t ConditionCodeWaitSelect
;
5686 bool DisplayPlaneCFlipPendingWaitEnable
;
5687 bool DisplayPipeCScanLineWaitEnable
;
5688 bool DisplayPipeBHorizontalBlankWaitEnable
;
5689 bool DisplayPipeBVerticalBlankWaitEnable
;
5690 bool DisplaySpriteBFlipPendingWaitEnable
;
5691 bool DisplayPlaneBFlipPendingWaitEnable
;
5692 bool DisplayPipeBScanLineWaitEnable
;
5693 bool DisplayPipeAHorizontalBlankWaitEnable
;
5694 bool DisplayPipeAVerticalBlankWaitEnable
;
5695 bool DisplaySpriteAFlipPendingWaitEnable
;
5696 bool DisplayPlaneAFlipPendingWaitEnable
;
5697 bool DisplayPipeAScanLineWaitEnable
;
5701 GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
5702 const struct GEN7_MI_WAIT_FOR_EVENT
* restrict values
)
5704 uint32_t *dw
= (uint32_t * restrict
) dst
;
5707 __gen_field(values
->CommandType
, 29, 31) |
5708 __gen_field(values
->MICommandOpcode
, 23, 28) |
5709 __gen_field(values
->DisplayPipeCHorizontalBlankWaitEnable
, 22, 22) |
5710 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
5711 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
5712 __gen_field(values
->ConditionCodeWaitSelect
, 16, 19) |
5713 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
5714 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
5715 __gen_field(values
->DisplayPipeBHorizontalBlankWaitEnable
, 13, 13) |
5716 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
5717 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
5718 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
5719 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
5720 __gen_field(values
->DisplayPipeAHorizontalBlankWaitEnable
, 5, 5) |
5721 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
5722 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
5723 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
5724 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
5729 #define GEN7_PIPE_CONTROL_length_bias 0x00000002
5730 #define GEN7_PIPE_CONTROL_header \
5732 .CommandSubType = 3, \
5733 ._3DCommandOpcode = 2, \
5734 ._3DCommandSubOpcode = 0, \
5737 #define GEN7_PIPE_CONTROL_length 0x00000005
5739 struct GEN7_PIPE_CONTROL
{
5740 uint32_t CommandType
;
5741 uint32_t CommandSubType
;
5742 uint32_t _3DCommandOpcode
;
5743 uint32_t _3DCommandSubOpcode
;
5744 uint32_t DwordLength
;
5747 uint32_t DestinationAddressType
;
5748 #define NoLRIOperation 0
5749 #define MMIOWriteImmediateData 1
5750 uint32_t LRIPostSyncOperation
;
5751 uint32_t StoreDataIndex
;
5752 uint32_t CommandStreamerStallEnable
;
5755 uint32_t GlobalSnapshotCountReset
;
5756 uint32_t TLBInvalidate
;
5757 bool GenericMediaStateClear
;
5759 #define WriteImmediateData 1
5760 #define WritePSDepthCount 2
5761 #define WriteTimestamp 3
5762 uint32_t PostSyncOperation
;
5763 bool DepthStallEnable
;
5764 #define DisableFlush 0
5765 #define EnableFlush 1
5766 bool RenderTargetCacheFlushEnable
;
5767 bool InstructionCacheInvalidateEnable
;
5768 bool TextureCacheInvalidationEnable
;
5769 bool IndirectStatePointersDisable
;
5771 bool PipeControlFlushEnable
;
5773 bool VFCacheInvalidationEnable
;
5774 bool ConstantCacheInvalidationEnable
;
5775 bool StateCacheInvalidationEnable
;
5776 bool StallAtPixelScoreboard
;
5777 #define FlushDisabled 0
5778 #define FlushEnabled 1
5779 bool DepthCacheFlushEnable
;
5780 __gen_address_type Address
;
5781 uint32_t ImmediateData
;
5782 uint32_t ImmediateData0
;
5786 GEN7_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
5787 const struct GEN7_PIPE_CONTROL
* restrict values
)
5789 uint32_t *dw
= (uint32_t * restrict
) dst
;
5792 __gen_field(values
->CommandType
, 29, 31) |
5793 __gen_field(values
->CommandSubType
, 27, 28) |
5794 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5795 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5796 __gen_field(values
->DwordLength
, 0, 7) |
5800 __gen_field(values
->DestinationAddressType
, 24, 24) |
5801 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
5802 __gen_field(values
->StoreDataIndex
, 21, 21) |
5803 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
5804 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
5805 __gen_field(values
->TLBInvalidate
, 18, 18) |
5806 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
5807 __gen_field(values
->PostSyncOperation
, 14, 15) |
5808 __gen_field(values
->DepthStallEnable
, 13, 13) |
5809 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
5810 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
5811 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
5812 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
5813 __gen_field(values
->NotifyEnable
, 8, 8) |
5814 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
5815 __gen_field(values
->DCFlushEnable
, 5, 5) |
5816 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
5817 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
5818 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
5819 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
5820 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
5827 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
5830 __gen_field(values
->ImmediateData
, 0, 31) |
5834 __gen_field(values
->ImmediateData
, 0, 31) |
5839 #define GEN7_SCISSOR_RECT_length 0x00000002
5841 struct GEN7_SCISSOR_RECT
{
5842 uint32_t ScissorRectangleYMin
;
5843 uint32_t ScissorRectangleXMin
;
5844 uint32_t ScissorRectangleYMax
;
5845 uint32_t ScissorRectangleXMax
;
5849 GEN7_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
5850 const struct GEN7_SCISSOR_RECT
* restrict values
)
5852 uint32_t *dw
= (uint32_t * restrict
) dst
;
5855 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
5856 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
5860 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
5861 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
5866 #define GEN7_SF_CLIP_VIEWPORT_length 0x00000010
5868 struct GEN7_SF_CLIP_VIEWPORT
{
5869 float ViewportMatrixElementm00
;
5870 float ViewportMatrixElementm11
;
5871 float ViewportMatrixElementm22
;
5872 float ViewportMatrixElementm30
;
5873 float ViewportMatrixElementm31
;
5874 float ViewportMatrixElementm32
;
5875 float XMinClipGuardband
;
5876 float XMaxClipGuardband
;
5877 float YMinClipGuardband
;
5878 float YMaxClipGuardband
;
5882 GEN7_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
5883 const struct GEN7_SF_CLIP_VIEWPORT
* restrict values
)
5885 uint32_t *dw
= (uint32_t * restrict
) dst
;
5888 __gen_float(values
->ViewportMatrixElementm00
) |
5892 __gen_float(values
->ViewportMatrixElementm11
) |
5896 __gen_float(values
->ViewportMatrixElementm22
) |
5900 __gen_float(values
->ViewportMatrixElementm30
) |
5904 __gen_float(values
->ViewportMatrixElementm31
) |
5908 __gen_float(values
->ViewportMatrixElementm32
) |
5918 __gen_float(values
->XMinClipGuardband
) |
5922 __gen_float(values
->XMaxClipGuardband
) |
5926 __gen_float(values
->YMinClipGuardband
) |
5930 __gen_float(values
->YMaxClipGuardband
) |
5933 for (uint32_t i
= 0, j
= 12; i
< 4; i
+= 1, j
++) {
5940 #define GEN7_BLEND_STATE_length 0x00000002
5942 struct GEN7_BLEND_STATE
{
5943 bool ColorBufferBlendEnable
;
5944 bool IndependentAlphaBlendEnable
;
5945 #define BLENDFUNCTION_ADD 0
5946 #define BLENDFUNCTION_SUBTRACT 1
5947 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5948 #define BLENDFUNCTION_MIN 3
5949 #define BLENDFUNCTION_MAX 4
5950 uint32_t AlphaBlendFunction
;
5951 #define BLENDFACTOR_ONE 1
5952 #define BLENDFACTOR_SRC_COLOR 2
5953 #define BLENDFACTOR_SRC_ALPHA 3
5954 #define BLENDFACTOR_DST_ALPHA 4
5955 #define BLENDFACTOR_DST_COLOR 5
5956 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
5957 #define BLENDFACTOR_CONST_COLOR 7
5958 #define BLENDFACTOR_CONST_ALPHA 8
5959 #define BLENDFACTOR_SRC1_COLOR 9
5960 #define BLENDFACTOR_SRC1_ALPHA 10
5961 #define BLENDFACTOR_ZERO 17
5962 #define BLENDFACTOR_INV_SRC_COLOR 18
5963 #define BLENDFACTOR_INV_SRC_ALPHA 19
5964 #define BLENDFACTOR_INV_DST_ALPHA 20
5965 #define BLENDFACTOR_INV_DST_COLOR 21
5966 #define BLENDFACTOR_INV_CONST_COLOR 23
5967 #define BLENDFACTOR_INV_CONST_ALPHA 24
5968 #define BLENDFACTOR_INV_SRC1_COLOR 25
5969 #define BLENDFACTOR_INV_SRC1_ALPHA 26
5970 uint32_t SourceAlphaBlendFactor
;
5971 uint32_t DestinationAlphaBlendFactor
;
5972 #define BLENDFUNCTION_ADD 0
5973 #define BLENDFUNCTION_SUBTRACT 1
5974 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5975 #define BLENDFUNCTION_MIN 3
5976 #define BLENDFUNCTION_MAX 4
5977 uint32_t ColorBlendFunction
;
5978 uint32_t SourceBlendFactor
;
5979 uint32_t DestinationBlendFactor
;
5980 bool AlphaToCoverageEnable
;
5981 bool AlphaToOneEnable
;
5982 bool AlphaToCoverageDitherEnable
;
5983 bool WriteDisableAlpha
;
5984 bool WriteDisableRed
;
5985 bool WriteDisableGreen
;
5986 bool WriteDisableBlue
;
5988 #define LOGICOP_CLEAR 0
5989 #define LOGICOP_NOR 1
5990 #define LOGICOP_AND_INVERTED 2
5991 #define LOGICOP_COPY_INVERTED 3
5992 #define LOGICOP_AND_REVERSE 4
5993 #define LOGICOP_INVERT 5
5994 #define LOGICOP_XOR 6
5995 #define LOGICOP_NAND 7
5996 #define LOGICOP_AND 8
5997 #define LOGICOP_EQUIV 9
5998 #define LOGICOP_NOOP 10
5999 #define LOGICOP_OR_INVERTED 11
6000 #define LOGICOP_COPY 12
6001 #define LOGICOP_OR_REVERSE 13
6002 #define LOGICOP_OR 14
6003 #define LOGICOP_SET 15
6004 uint32_t LogicOpFunction
;
6005 bool AlphaTestEnable
;
6006 #define COMPAREFUNCTION_ALWAYS 0
6007 #define COMPAREFUNCTION_NEVER 1
6008 #define COMPAREFUNCTION_LESS 2
6009 #define COMPAREFUNCTION_EQUAL 3
6010 #define COMPAREFUNCTION_LEQUAL 4
6011 #define COMPAREFUNCTION_GREATER 5
6012 #define COMPAREFUNCTION_NOTEQUAL 6
6013 #define COMPAREFUNCTION_GEQUAL 7
6014 uint32_t AlphaTestFunction
;
6015 bool ColorDitherEnable
;
6016 uint32_t XDitherOffset
;
6017 uint32_t YDitherOffset
;
6018 #define COLORCLAMP_UNORM 0
6019 #define COLORCLAMP_SNORM 1
6020 #define COLORCLAMP_RTFORMAT 2
6021 uint32_t ColorClampRange
;
6022 bool PreBlendColorClampEnable
;
6023 bool PostBlendColorClampEnable
;
6027 GEN7_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6028 const struct GEN7_BLEND_STATE
* restrict values
)
6030 uint32_t *dw
= (uint32_t * restrict
) dst
;
6033 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
6034 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
6035 __gen_field(values
->AlphaBlendFunction
, 26, 28) |
6036 __gen_field(values
->SourceAlphaBlendFactor
, 20, 24) |
6037 __gen_field(values
->DestinationAlphaBlendFactor
, 15, 19) |
6038 __gen_field(values
->ColorBlendFunction
, 11, 13) |
6039 __gen_field(values
->SourceBlendFactor
, 5, 9) |
6040 __gen_field(values
->DestinationBlendFactor
, 0, 4) |
6044 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
6045 __gen_field(values
->AlphaToOneEnable
, 30, 30) |
6046 __gen_field(values
->AlphaToCoverageDitherEnable
, 29, 29) |
6047 __gen_field(values
->WriteDisableAlpha
, 27, 27) |
6048 __gen_field(values
->WriteDisableRed
, 26, 26) |
6049 __gen_field(values
->WriteDisableGreen
, 25, 25) |
6050 __gen_field(values
->WriteDisableBlue
, 24, 24) |
6051 __gen_field(values
->LogicOpEnable
, 22, 22) |
6052 __gen_field(values
->LogicOpFunction
, 18, 21) |
6053 __gen_field(values
->AlphaTestEnable
, 16, 16) |
6054 __gen_field(values
->AlphaTestFunction
, 13, 15) |
6055 __gen_field(values
->ColorDitherEnable
, 12, 12) |
6056 __gen_field(values
->XDitherOffset
, 10, 11) |
6057 __gen_field(values
->YDitherOffset
, 8, 9) |
6058 __gen_field(values
->ColorClampRange
, 2, 3) |
6059 __gen_field(values
->PreBlendColorClampEnable
, 1, 1) |
6060 __gen_field(values
->PostBlendColorClampEnable
, 0, 0) |
6065 #define GEN7_CC_VIEWPORT_length 0x00000002
6067 struct GEN7_CC_VIEWPORT
{
6073 GEN7_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
6074 const struct GEN7_CC_VIEWPORT
* restrict values
)
6076 uint32_t *dw
= (uint32_t * restrict
) dst
;
6079 __gen_float(values
->MinimumDepth
) |
6083 __gen_float(values
->MaximumDepth
) |
6088 #define GEN7_COLOR_CALC_STATE_length 0x00000006
6090 struct GEN7_COLOR_CALC_STATE
{
6091 uint32_t StencilReferenceValue
;
6092 uint32_t BackFaceStencilReferenceValue
;
6094 #define NotCancelled 1
6095 uint32_t RoundDisableFunctionDisable
;
6096 #define ALPHATEST_UNORM8 0
6097 #define ALPHATEST_FLOAT32 1
6098 uint32_t AlphaTestFormat
;
6099 uint32_t AlphaReferenceValueAsUNORM8
;
6100 float AlphaReferenceValueAsFLOAT32
;
6101 float BlendConstantColorRed
;
6102 float BlendConstantColorGreen
;
6103 float BlendConstantColorBlue
;
6104 float BlendConstantColorAlpha
;
6108 GEN7_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6109 const struct GEN7_COLOR_CALC_STATE
* restrict values
)
6111 uint32_t *dw
= (uint32_t * restrict
) dst
;
6114 __gen_field(values
->StencilReferenceValue
, 24, 31) |
6115 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
6116 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
6117 __gen_field(values
->AlphaTestFormat
, 0, 0) |
6121 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
6122 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
6126 __gen_float(values
->BlendConstantColorRed
) |
6130 __gen_float(values
->BlendConstantColorGreen
) |
6134 __gen_float(values
->BlendConstantColorBlue
) |
6138 __gen_float(values
->BlendConstantColorAlpha
) |
6143 #define GEN7_DEPTH_STENCIL_STATE_length 0x00000003
6145 struct GEN7_DEPTH_STENCIL_STATE
{
6146 bool StencilTestEnable
;
6147 #define COMPAREFUNCTION_ALWAYS 0
6148 #define COMPAREFUNCTION_NEVER 1
6149 #define COMPAREFUNCTION_LESS 2
6150 #define COMPAREFUNCTION_EQUAL 3
6151 #define COMPAREFUNCTION_LEQUAL 4
6152 #define COMPAREFUNCTION_GREATER 5
6153 #define COMPAREFUNCTION_NOTEQUAL 6
6154 #define COMPAREFUNCTION_GEQUAL 7
6155 uint32_t StencilTestFunction
;
6156 #define STENCILOP_KEEP 0
6157 #define STENCILOP_ZERO 1
6158 #define STENCILOP_REPLACE 2
6159 #define STENCILOP_INCRSAT 3
6160 #define STENCILOP_DECRSAT 4
6161 #define STENCILOP_INCR 5
6162 #define STENCILOP_DECR 6
6163 #define STENCILOP_INVERT 7
6164 uint32_t StencilFailOp
;
6165 uint32_t StencilPassDepthFailOp
;
6166 uint32_t StencilPassDepthPassOp
;
6167 bool StencilBufferWriteEnable
;
6168 bool DoubleSidedStencilEnable
;
6169 #define COMPAREFUNCTION_ALWAYS 0
6170 #define COMPAREFUNCTION_NEVER 1
6171 #define COMPAREFUNCTION_LESS 2
6172 #define COMPAREFUNCTION_EQUAL 3
6173 #define COMPAREFUNCTION_LEQUAL 4
6174 #define COMPAREFUNCTION_GREATER 5
6175 #define COMPAREFUNCTION_NOTEQUAL 6
6176 #define COMPAREFUNCTION_GEQUAL 7
6177 uint32_t BackFaceStencilTestFunction
;
6178 #define STENCILOP_KEEP 0
6179 #define STENCILOP_ZERO 1
6180 #define STENCILOP_REPLACE 2
6181 #define STENCILOP_INCRSAT 3
6182 #define STENCILOP_DECRSAT 4
6183 #define STENCILOP_INCR 5
6184 #define STENCILOP_DECR 6
6185 #define STENCILOP_INVERT 7
6186 uint32_t BackfaceStencilFailOp
;
6187 uint32_t BackfaceStencilPassDepthFailOp
;
6188 uint32_t BackfaceStencilPassDepthPassOp
;
6189 uint32_t StencilTestMask
;
6190 uint32_t StencilWriteMask
;
6191 uint32_t BackfaceStencilTestMask
;
6192 uint32_t BackfaceStencilWriteMask
;
6193 bool DepthTestEnable
;
6194 #define COMPAREFUNCTION_ALWAYS 0
6195 #define COMPAREFUNCTION_NEVER 1
6196 #define COMPAREFUNCTION_LESS 2
6197 #define COMPAREFUNCTION_EQUAL 3
6198 #define COMPAREFUNCTION_LEQUAL 4
6199 #define COMPAREFUNCTION_GREATER 5
6200 #define COMPAREFUNCTION_NOTEQUAL 6
6201 #define COMPAREFUNCTION_GEQUAL 7
6202 uint32_t DepthTestFunction
;
6203 bool DepthBufferWriteEnable
;
6207 GEN7_DEPTH_STENCIL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6208 const struct GEN7_DEPTH_STENCIL_STATE
* restrict values
)
6210 uint32_t *dw
= (uint32_t * restrict
) dst
;
6213 __gen_field(values
->StencilTestEnable
, 31, 31) |
6214 __gen_field(values
->StencilTestFunction
, 28, 30) |
6215 __gen_field(values
->StencilFailOp
, 25, 27) |
6216 __gen_field(values
->StencilPassDepthFailOp
, 22, 24) |
6217 __gen_field(values
->StencilPassDepthPassOp
, 19, 21) |
6218 __gen_field(values
->StencilBufferWriteEnable
, 18, 18) |
6219 __gen_field(values
->DoubleSidedStencilEnable
, 15, 15) |
6220 __gen_field(values
->BackFaceStencilTestFunction
, 12, 14) |
6221 __gen_field(values
->BackfaceStencilFailOp
, 9, 11) |
6222 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 6, 8) |
6223 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 3, 5) |
6227 __gen_field(values
->StencilTestMask
, 24, 31) |
6228 __gen_field(values
->StencilWriteMask
, 16, 23) |
6229 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
6230 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
6234 __gen_field(values
->DepthTestEnable
, 31, 31) |
6235 __gen_field(values
->DepthTestFunction
, 27, 29) |
6236 __gen_field(values
->DepthBufferWriteEnable
, 26, 26) |
6241 #define GEN7_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
6243 struct GEN7_INTERFACE_DESCRIPTOR_DATA
{
6244 uint32_t KernelStartPointer
;
6247 uint32_t SingleProgramFlow
;
6248 #define NormalPriority 0
6249 #define HighPriority 1
6250 uint32_t ThreadPriority
;
6253 uint32_t FloatingPointMode
;
6254 bool IllegalOpcodeExceptionEnable
;
6255 bool MaskStackExceptionEnable
;
6256 bool SoftwareExceptionEnable
;
6257 uint32_t SamplerStatePointer
;
6258 #define Nosamplersused 0
6259 #define Between1and4samplersused 1
6260 #define Between5and8samplersused 2
6261 #define Between9and12samplersused 3
6262 #define Between13and16samplersused 4
6263 uint32_t SamplerCount
;
6264 uint32_t BindingTablePointer
;
6265 uint32_t BindingTableEntryCount
;
6266 uint32_t ConstantURBEntryReadLength
;
6267 uint32_t ConstantURBEntryReadOffset
;
6272 uint32_t RoundingMode
;
6274 uint32_t SharedLocalMemorySize
;
6275 uint32_t NumberofThreadsinGPGPUThreadGroup
;
6279 GEN7_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
6280 const struct GEN7_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
6282 uint32_t *dw
= (uint32_t * restrict
) dst
;
6285 __gen_offset(values
->KernelStartPointer
, 6, 31) |
6289 __gen_field(values
->SingleProgramFlow
, 18, 18) |
6290 __gen_field(values
->ThreadPriority
, 17, 17) |
6291 __gen_field(values
->FloatingPointMode
, 16, 16) |
6292 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
6293 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
6294 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
6298 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
6299 __gen_field(values
->SamplerCount
, 2, 4) |
6303 __gen_offset(values
->BindingTablePointer
, 5, 15) |
6304 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
6308 __gen_field(values
->ConstantURBEntryReadLength
, 16, 31) |
6309 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
6313 __gen_field(values
->RoundingMode
, 22, 23) |
6314 __gen_field(values
->BarrierEnable
, 21, 21) |
6315 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
6316 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 7) |
6327 #define GEN7_BINDING_TABLE_STATE_length 0x00000001
6329 struct GEN7_BINDING_TABLE_STATE
{
6330 uint32_t SurfaceStatePointer
;
6334 GEN7_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6335 const struct GEN7_BINDING_TABLE_STATE
* restrict values
)
6337 uint32_t *dw
= (uint32_t * restrict
) dst
;
6340 __gen_offset(values
->SurfaceStatePointer
, 5, 31) |
6345 #define GEN7_RENDER_SURFACE_STATE_length 0x00000008
6347 struct GEN7_RENDER_SURFACE_STATE
{
6348 #define SURFTYPE_1D 0
6349 #define SURFTYPE_2D 1
6350 #define SURFTYPE_3D 2
6351 #define SURFTYPE_CUBE 3
6352 #define SURFTYPE_BUFFER 4
6353 #define SURFTYPE_STRBUF 5
6354 #define SURFTYPE_NULL 7
6355 uint32_t SurfaceType
;
6357 uint32_t SurfaceFormat
;
6360 uint32_t SurfaceVerticalAlignment
;
6363 uint32_t SurfaceHorizontalAlignment
;
6364 uint32_t TiledSurface
;
6365 #define TILEWALK_XMAJOR 0
6366 #define TILEWALK_YMAJOR 1
6368 uint32_t VerticalLineStride
;
6369 uint32_t VerticalLineStrideOffset
;
6370 #define ARYSPC_FULL 0
6371 #define ARYSPC_LOD0 1
6372 uint32_t SurfaceArraySpacing
;
6373 uint32_t RenderCacheReadWriteMode
;
6374 #define NORMAL_MODE 0
6375 #define PROGRESSIVE_FRAME 2
6376 #define INTERLACED_FRAME 3
6377 uint32_t MediaBoundaryPixelMode
;
6378 uint32_t CubeFaceEnables
;
6379 __gen_address_type SurfaceBaseAddress
;
6383 uint32_t SurfacePitch
;
6384 #define RTROTATE_0DEG 0
6385 #define RTROTATE_90DEG 1
6386 #define RTROTATE_270DEG 3
6387 uint32_t RenderTargetRotation
;
6388 uint32_t MinimumArrayElement
;
6389 uint32_t RenderTargetViewExtent
;
6391 #define MSFMT_DEPTH_STENCIL 1
6392 uint32_t MultisampledSurfaceStorageFormat
;
6393 #define MULTISAMPLECOUNT_1 0
6394 #define MULTISAMPLECOUNT_4 2
6395 #define MULTISAMPLECOUNT_8 3
6396 uint32_t NumberofMultisamples
;
6397 uint32_t MultisamplePositionPaletteIndex
;
6398 uint32_t MinimumArrayElement0
;
6401 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState
;
6402 uint32_t SurfaceMinLOD
;
6403 uint32_t MIPCountLOD
;
6404 __gen_address_type MCSBaseAddress
;
6405 uint32_t MCSSurfacePitch
;
6406 __gen_address_type AppendCounterAddress
;
6407 bool AppendCounterEnable
;
6409 uint32_t XOffsetforUVPlane
;
6410 uint32_t YOffsetforUVPlane
;
6413 uint32_t RedClearColor
;
6416 uint32_t GreenClearColor
;
6419 uint32_t BlueClearColor
;
6422 uint32_t AlphaClearColor
;
6423 float ResourceMinLOD
;
6427 GEN7_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6428 const struct GEN7_RENDER_SURFACE_STATE
* restrict values
)
6430 uint32_t *dw
= (uint32_t * restrict
) dst
;
6433 __gen_field(values
->SurfaceType
, 29, 31) |
6434 __gen_field(values
->SurfaceArray
, 28, 28) |
6435 __gen_field(values
->SurfaceFormat
, 18, 26) |
6436 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
6437 __gen_field(values
->SurfaceHorizontalAlignment
, 15, 15) |
6438 __gen_field(values
->TiledSurface
, 14, 14) |
6439 __gen_field(values
->TileWalk
, 13, 13) |
6440 __gen_field(values
->VerticalLineStride
, 12, 12) |
6441 __gen_field(values
->VerticalLineStrideOffset
, 11, 11) |
6442 __gen_field(values
->SurfaceArraySpacing
, 10, 10) |
6443 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
6444 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
6445 __gen_field(values
->CubeFaceEnables
, 0, 5) |
6452 __gen_combine_address(data
, &dw
[1], values
->SurfaceBaseAddress
, dw1
);
6455 __gen_field(values
->Height
, 16, 29) |
6456 __gen_field(values
->Width
, 0, 13) |
6460 __gen_field(values
->Depth
, 21, 31) |
6461 __gen_field(values
->SurfacePitch
, 0, 17) |
6465 __gen_field(values
->RenderTargetRotation
, 29, 30) |
6466 __gen_field(values
->MinimumArrayElement
, 18, 28) |
6467 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
6468 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
6469 __gen_field(values
->NumberofMultisamples
, 3, 5) |
6470 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
6471 __gen_field(values
->MinimumArrayElement
, 0, 26) |
6474 uint32_t dw_SurfaceObjectControlState
;
6475 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceObjectControlState
, &values
->SurfaceObjectControlState
);
6477 __gen_offset(values
->XOffset
, 25, 31) |
6478 __gen_offset(values
->YOffset
, 20, 23) |
6479 __gen_field(dw_SurfaceObjectControlState
, 16, 19) |
6480 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
6481 __gen_field(values
->MIPCountLOD
, 0, 3) |
6485 __gen_field(values
->MCSSurfacePitch
, 3, 11) |
6486 __gen_field(values
->AppendCounterEnable
, 1, 1) |
6487 __gen_field(values
->MCSEnable
, 0, 0) |
6488 __gen_field(values
->XOffsetforUVPlane
, 16, 29) |
6489 __gen_field(values
->YOffsetforUVPlane
, 0, 13) |
6493 __gen_combine_address(data
, &dw
[6], values
->AppendCounterAddress
, dw6
);
6496 __gen_field(values
->RedClearColor
, 31, 31) |
6497 __gen_field(values
->GreenClearColor
, 30, 30) |
6498 __gen_field(values
->BlueClearColor
, 29, 29) |
6499 __gen_field(values
->AlphaClearColor
, 28, 28) |
6500 __gen_field(values
->ResourceMinLOD
* (1 << 8), 0, 11) |
6505 #define GEN7_SAMPLER_BORDER_COLOR_STATE_length 0x00000004
6507 struct GEN7_SAMPLER_BORDER_COLOR_STATE
{
6508 float BorderColorRedDX100GL
;
6509 uint32_t BorderColorAlpha
;
6510 uint32_t BorderColorBlue
;
6511 uint32_t BorderColorGreen
;
6512 uint32_t BorderColorRedDX9
;
6513 float BorderColorGreen0
;
6514 float BorderColorBlue0
;
6515 float BorderColorAlpha0
;
6519 GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6520 const struct GEN7_SAMPLER_BORDER_COLOR_STATE
* restrict values
)
6522 uint32_t *dw
= (uint32_t * restrict
) dst
;
6525 __gen_float(values
->BorderColorRedDX100GL
) |
6526 __gen_field(values
->BorderColorAlpha
, 24, 31) |
6527 __gen_field(values
->BorderColorBlue
, 16, 23) |
6528 __gen_field(values
->BorderColorGreen
, 8, 15) |
6529 __gen_field(values
->BorderColorRedDX9
, 0, 7) |
6533 __gen_float(values
->BorderColorGreen
) |
6537 __gen_float(values
->BorderColorBlue
) |
6541 __gen_float(values
->BorderColorAlpha
) |
6546 #define GEN7_SAMPLER_STATE_length 0x00000004
6548 struct GEN7_SAMPLER_STATE
{
6549 bool SamplerDisable
;
6552 uint32_t TextureBorderColorMode
;
6554 uint32_t LODPreClampEnable
;
6556 #define MIPFILTER_NONE 0
6557 #define MIPFILTER_NEAREST 1
6558 #define MIPFILTER_LINEAR 3
6559 uint32_t MipModeFilter
;
6560 #define MAPFILTER_NEAREST 0
6561 #define MAPFILTER_LINEAR 1
6562 #define MAPFILTER_ANISOTROPIC 2
6563 #define MAPFILTER_MONO 6
6564 uint32_t MagModeFilter
;
6565 #define MAPFILTER_NEAREST 0
6566 #define MAPFILTER_LINEAR 1
6567 #define MAPFILTER_ANISOTROPIC 2
6568 #define MAPFILTER_MONO 6
6569 uint32_t MinModeFilter
;
6570 uint32_t TextureLODBias
;
6572 #define EWAApproximation 1
6573 uint32_t AnisotropicAlgorithm
;
6576 #define PREFILTEROPALWAYS 0
6577 #define PREFILTEROPNEVER 1
6578 #define PREFILTEROPLESS 2
6579 #define PREFILTEROPEQUAL 3
6580 #define PREFILTEROPLEQUAL 4
6581 #define PREFILTEROPGREATER 5
6582 #define PREFILTEROPNOTEQUAL 6
6583 #define PREFILTEROPGEQUAL 7
6584 uint32_t ShadowFunction
;
6585 #define PROGRAMMED 0
6587 uint32_t CubeSurfaceControlMode
;
6588 uint32_t BorderColorPointer
;
6589 bool ChromaKeyEnable
;
6590 uint32_t ChromaKeyIndex
;
6591 #define KEYFILTER_KILL_ON_ANY_MATCH 0
6592 #define KEYFILTER_REPLACE_BLACK 1
6593 uint32_t ChromaKeyMode
;
6602 uint32_t MaximumAnisotropy
;
6603 bool RAddressMinFilterRoundingEnable
;
6604 bool RAddressMagFilterRoundingEnable
;
6605 bool VAddressMinFilterRoundingEnable
;
6606 bool VAddressMagFilterRoundingEnable
;
6607 bool UAddressMinFilterRoundingEnable
;
6608 bool UAddressMagFilterRoundingEnable
;
6612 uint32_t TrilinearFilterQuality
;
6613 bool NonnormalizedCoordinateEnable
;
6614 uint32_t TCXAddressControlMode
;
6615 uint32_t TCYAddressControlMode
;
6616 uint32_t TCZAddressControlMode
;
6620 GEN7_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6621 const struct GEN7_SAMPLER_STATE
* restrict values
)
6623 uint32_t *dw
= (uint32_t * restrict
) dst
;
6626 __gen_field(values
->SamplerDisable
, 31, 31) |
6627 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
6628 __gen_field(values
->LODPreClampEnable
, 28, 28) |
6629 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
6630 __gen_field(values
->MipModeFilter
, 20, 21) |
6631 __gen_field(values
->MagModeFilter
, 17, 19) |
6632 __gen_field(values
->MinModeFilter
, 14, 16) |
6633 __gen_field(values
->TextureLODBias
, 1, 13) |
6634 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
6638 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
6639 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
6640 __gen_field(values
->ShadowFunction
, 1, 3) |
6641 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
6645 __gen_offset(values
->BorderColorPointer
, 5, 31) |
6649 __gen_field(values
->ChromaKeyEnable
, 25, 25) |
6650 __gen_field(values
->ChromaKeyIndex
, 23, 24) |
6651 __gen_field(values
->ChromaKeyMode
, 22, 22) |
6652 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
6653 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
6654 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
6655 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
6656 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
6657 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
6658 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
6659 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
6660 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
6661 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
6662 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
6663 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
6668 /* Enum 3D_Prim_Topo_Type */
6669 #define _3DPRIM_POINTLIST 1
6670 #define _3DPRIM_LINELIST 2
6671 #define _3DPRIM_LINESTRIP 3
6672 #define _3DPRIM_TRILIST 4
6673 #define _3DPRIM_TRISTRIP 5
6674 #define _3DPRIM_TRIFAN 6
6675 #define _3DPRIM_QUADLIST 7
6676 #define _3DPRIM_QUADSTRIP 8
6677 #define _3DPRIM_LINELIST_ADJ 9
6678 #define _3DPRIM_LINESTRIP_ADJ 10
6679 #define _3DPRIM_TRILIST_ADJ 11
6680 #define _3DPRIM_TRISTRIP_ADJ 12
6681 #define _3DPRIM_TRISTRIP_REVERSE 13
6682 #define _3DPRIM_POLYGON 14
6683 #define _3DPRIM_RECTLIST 15
6684 #define _3DPRIM_LINELOOP 16
6685 #define _3DPRIM_POINTLIST_BF 17
6686 #define _3DPRIM_LINESTRIP_CONT 18
6687 #define _3DPRIM_LINESTRIP_BF 19
6688 #define _3DPRIM_LINESTRIP_CONT_BF 20
6689 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
6690 #define _3DPRIM_PATCHLIST_1 32
6691 #define _3DPRIM_PATCHLIST_2 33
6692 #define _3DPRIM_PATCHLIST_3 34
6693 #define _3DPRIM_PATCHLIST_4 35
6694 #define _3DPRIM_PATCHLIST_5 36
6695 #define _3DPRIM_PATCHLIST_6 37
6696 #define _3DPRIM_PATCHLIST_7 38
6697 #define _3DPRIM_PATCHLIST_8 39
6698 #define _3DPRIM_PATCHLIST_9 40
6699 #define _3DPRIM_PATCHLIST_10 41
6700 #define _3DPRIM_PATCHLIST_11 42
6701 #define _3DPRIM_PATCHLIST_12 43
6702 #define _3DPRIM_PATCHLIST_13 44
6703 #define _3DPRIM_PATCHLIST_14 45
6704 #define _3DPRIM_PATCHLIST_15 46
6705 #define _3DPRIM_PATCHLIST_16 47
6706 #define _3DPRIM_PATCHLIST_17 48
6707 #define _3DPRIM_PATCHLIST_18 49
6708 #define _3DPRIM_PATCHLIST_19 50
6709 #define _3DPRIM_PATCHLIST_20 51
6710 #define _3DPRIM_PATCHLIST_21 52
6711 #define _3DPRIM_PATCHLIST_22 53
6712 #define _3DPRIM_PATCHLIST_23 54
6713 #define _3DPRIM_PATCHLIST_24 55
6714 #define _3DPRIM_PATCHLIST_25 56
6715 #define _3DPRIM_PATCHLIST_26 57
6716 #define _3DPRIM_PATCHLIST_27 58
6717 #define _3DPRIM_PATCHLIST_28 59
6718 #define _3DPRIM_PATCHLIST_29 60
6719 #define _3DPRIM_PATCHLIST_30 61
6720 #define _3DPRIM_PATCHLIST_31 62
6721 #define _3DPRIM_PATCHLIST_32 63
6723 /* Enum 3D_Vertex_Component_Control */
6724 #define VFCOMP_NOSTORE 0
6725 #define VFCOMP_STORE_SRC 1
6726 #define VFCOMP_STORE_0 2
6727 #define VFCOMP_STORE_1_FP 3
6728 #define VFCOMP_STORE_1_INT 4
6729 #define VFCOMP_STORE_VID 5
6730 #define VFCOMP_STORE_IID 6
6731 #define VFCOMP_STORE_PID 7
6733 /* Enum 3D_Compare_Function */
6734 #define COMPAREFUNCTION_ALWAYS 0
6735 #define COMPAREFUNCTION_NEVER 1
6736 #define COMPAREFUNCTION_LESS 2
6737 #define COMPAREFUNCTION_EQUAL 3
6738 #define COMPAREFUNCTION_LEQUAL 4
6739 #define COMPAREFUNCTION_GREATER 5
6740 #define COMPAREFUNCTION_NOTEQUAL 6
6741 #define COMPAREFUNCTION_GEQUAL 7
6743 /* Enum SURFACE_FORMAT */
6744 #define R32G32B32A32_FLOAT 0
6745 #define R32G32B32A32_SINT 1
6746 #define R32G32B32A32_UINT 2
6747 #define R32G32B32A32_UNORM 3
6748 #define R32G32B32A32_SNORM 4
6749 #define R64G64_FLOAT 5
6750 #define R32G32B32X32_FLOAT 6
6751 #define R32G32B32A32_SSCALED 7
6752 #define R32G32B32A32_USCALED 8
6753 #define R32G32B32A32_SFIXED 32
6754 #define R64G64_PASSTHRU 33
6755 #define R32G32B32_FLOAT 64
6756 #define R32G32B32_SINT 65
6757 #define R32G32B32_UINT 66
6758 #define R32G32B32_UNORM 67
6759 #define R32G32B32_SNORM 68
6760 #define R32G32B32_SSCALED 69
6761 #define R32G32B32_USCALED 70
6762 #define R32G32B32_SFIXED 80
6763 #define R16G16B16A16_UNORM 128
6764 #define R16G16B16A16_SNORM 129
6765 #define R16G16B16A16_SINT 130
6766 #define R16G16B16A16_UINT 131
6767 #define R16G16B16A16_FLOAT 132
6768 #define R32G32_FLOAT 133
6769 #define R32G32_SINT 134
6770 #define R32G32_UINT 135
6771 #define R32_FLOAT_X8X24_TYPELESS 136
6772 #define X32_TYPELESS_G8X24_UINT 137
6773 #define L32A32_FLOAT 138
6774 #define R32G32_UNORM 139
6775 #define R32G32_SNORM 140
6776 #define R64_FLOAT 141
6777 #define R16G16B16X16_UNORM 142
6778 #define R16G16B16X16_FLOAT 143
6779 #define A32X32_FLOAT 144
6780 #define L32X32_FLOAT 145
6781 #define I32X32_FLOAT 146
6782 #define R16G16B16A16_SSCALED 147
6783 #define R16G16B16A16_USCALED 148
6784 #define R32G32_SSCALED 149
6785 #define R32G32_USCALED 150
6786 #define R32G32_SFIXED 160
6787 #define R64_PASSTHRU 161
6788 #define B8G8R8A8_UNORM 192
6789 #define B8G8R8A8_UNORM_SRGB 193
6790 #define R10G10B10A2_UNORM 194
6791 #define R10G10B10A2_UNORM_SRGB 195
6792 #define R10G10B10A2_UINT 196
6793 #define R10G10B10_SNORM_A2_UNORM 197
6794 #define R8G8B8A8_UNORM 199
6795 #define R8G8B8A8_UNORM_SRGB 200
6796 #define R8G8B8A8_SNORM 201
6797 #define R8G8B8A8_SINT 202
6798 #define R8G8B8A8_UINT 203
6799 #define R16G16_UNORM 204
6800 #define R16G16_SNORM 205
6801 #define R16G16_SINT 206
6802 #define R16G16_UINT 207
6803 #define R16G16_FLOAT 208
6804 #define B10G10R10A2_UNORM 209
6805 #define B10G10R10A2_UNORM_SRGB 210
6806 #define R11G11B10_FLOAT 211
6807 #define R32_SINT 214
6808 #define R32_UINT 215
6809 #define R32_FLOAT 216
6810 #define R24_UNORM_X8_TYPELESS 217
6811 #define X24_TYPELESS_G8_UINT 218
6812 #define L32_UNORM 221
6813 #define A32_UNORM 222
6814 #define L16A16_UNORM 223
6815 #define I24X8_UNORM 224
6816 #define L24X8_UNORM 225
6817 #define A24X8_UNORM 226
6818 #define I32_FLOAT 227
6819 #define L32_FLOAT 228
6820 #define A32_FLOAT 229
6821 #define X8B8_UNORM_G8R8_SNORM 230
6822 #define A8X8_UNORM_G8R8_SNORM 231
6823 #define B8X8_UNORM_G8R8_SNORM 232
6824 #define B8G8R8X8_UNORM 233
6825 #define B8G8R8X8_UNORM_SRGB 234
6826 #define R8G8B8X8_UNORM 235
6827 #define R8G8B8X8_UNORM_SRGB 236
6828 #define R9G9B9E5_SHAREDEXP 237
6829 #define B10G10R10X2_UNORM 238
6830 #define L16A16_FLOAT 240
6831 #define R32_UNORM 241
6832 #define R32_SNORM 242
6833 #define R10G10B10X2_USCALED 243
6834 #define R8G8B8A8_SSCALED 244
6835 #define R8G8B8A8_USCALED 245
6836 #define R16G16_SSCALED 246
6837 #define R16G16_USCALED 247
6838 #define R32_SSCALED 248
6839 #define R32_USCALED 249
6840 #define B5G6R5_UNORM 256
6841 #define B5G6R5_UNORM_SRGB 257
6842 #define B5G5R5A1_UNORM 258
6843 #define B5G5R5A1_UNORM_SRGB 259
6844 #define B4G4R4A4_UNORM 260
6845 #define B4G4R4A4_UNORM_SRGB 261
6846 #define R8G8_UNORM 262
6847 #define R8G8_SNORM 263
6848 #define R8G8_SINT 264
6849 #define R8G8_UINT 265
6850 #define R16_UNORM 266
6851 #define R16_SNORM 267
6852 #define R16_SINT 268
6853 #define R16_UINT 269
6854 #define R16_FLOAT 270
6855 #define A8P8_UNORM_PALETTE0 271
6856 #define A8P8_UNORM_PALETTE1 272
6857 #define I16_UNORM 273
6858 #define L16_UNORM 274
6859 #define A16_UNORM 275
6860 #define L8A8_UNORM 276
6861 #define I16_FLOAT 277
6862 #define L16_FLOAT 278
6863 #define A16_FLOAT 279
6864 #define L8A8_UNORM_SRGB 280
6865 #define R5G5_SNORM_B6_UNORM 281
6866 #define B5G5R5X1_UNORM 282
6867 #define B5G5R5X1_UNORM_SRGB 283
6868 #define R8G8_SSCALED 284
6869 #define R8G8_USCALED 285
6870 #define R16_SSCALED 286
6871 #define R16_USCALED 287
6872 #define P8A8_UNORM_PALETTE0 290
6873 #define P8A8_UNORM_PALETTE1 291
6874 #define A1B5G5R5_UNORM 292
6875 #define A4B4G4R4_UNORM 293
6876 #define L8A8_UINT 294
6877 #define L8A8_SINT 295
6878 #define R8_UNORM 320
6879 #define R8_SNORM 321
6882 #define A8_UNORM 324
6883 #define I8_UNORM 325
6884 #define L8_UNORM 326
6885 #define P4A4_UNORM_PALETTE0 327
6886 #define A4P4_UNORM_PALETTE0 328
6887 #define R8_SSCALED 329
6888 #define R8_USCALED 330
6889 #define P8_UNORM_PALETTE0 331
6890 #define L8_UNORM_SRGB 332
6891 #define P8_UNORM_PALETTE1 333
6892 #define P4A4_UNORM_PALETTE1 334
6893 #define A4P4_UNORM_PALETTE1 335
6894 #define Y8_UNORM 336
6899 #define DXT1_RGB_SRGB 384
6900 #define R1_UNORM 385
6901 #define YCRCB_NORMAL 386
6902 #define YCRCB_SWAPUVY 387
6903 #define P2_UNORM_PALETTE0 388
6904 #define P2_UNORM_PALETTE1 389
6905 #define BC1_UNORM 390
6906 #define BC2_UNORM 391
6907 #define BC3_UNORM 392
6908 #define BC4_UNORM 393
6909 #define BC5_UNORM 394
6910 #define BC1_UNORM_SRGB 395
6911 #define BC2_UNORM_SRGB 396
6912 #define BC3_UNORM_SRGB 397
6914 #define YCRCB_SWAPUV 399
6915 #define YCRCB_SWAPY 400
6916 #define DXT1_RGB 401
6918 #define R8G8B8_UNORM 403
6919 #define R8G8B8_SNORM 404
6920 #define R8G8B8_SSCALED 405
6921 #define R8G8B8_USCALED 406
6922 #define R64G64B64A64_FLOAT 407
6923 #define R64G64B64_FLOAT 408
6924 #define BC4_SNORM 409
6925 #define BC5_SNORM 410
6926 #define R16G16B16_FLOAT 411
6927 #define R16G16B16_UNORM 412
6928 #define R16G16B16_SNORM 413
6929 #define R16G16B16_SSCALED 414
6930 #define R16G16B16_USCALED 415
6931 #define BC6H_SF16 417
6932 #define BC7_UNORM 418
6933 #define BC7_UNORM_SRGB 419
6934 #define BC6H_UF16 420
6935 #define PLANAR_420_8 421
6936 #define R8G8B8_UNORM_SRGB 424
6937 #define ETC1_RGB8 425
6938 #define ETC2_RGB8 426
6940 #define EAC_RG11 428
6941 #define EAC_SIGNED_R11 429
6942 #define EAC_SIGNED_RG11 430
6943 #define ETC2_SRGB8 431
6944 #define R16G16B16_UINT 432
6945 #define R16G16B16_SINT 433
6946 #define R32_SFIXED 434
6947 #define R10G10B10A2_SNORM 435
6948 #define R10G10B10A2_USCALED 436
6949 #define R10G10B10A2_SSCALED 437
6950 #define R10G10B10A2_SINT 438
6951 #define B10G10R10A2_SNORM 439
6952 #define B10G10R10A2_USCALED 440
6953 #define B10G10R10A2_SSCALED 441
6954 #define B10G10R10A2_UINT 442
6955 #define B10G10R10A2_SINT 443
6956 #define R64G64B64A64_PASSTHRU 444
6957 #define R64G64B64_PASSTHRU 445
6958 #define ETC2_RGB8_PTA 448
6959 #define ETC2_SRGB8_PTA 449
6960 #define ETC2_EAC_RGBA8 450
6961 #define ETC2_EAC_SRGB8_A8 451
6962 #define R8G8B8_UINT 456
6963 #define R8G8B8_SINT 457
6966 /* Enum Texture Coordinate Mode */
6968 #define TCM_MIRROR 1
6971 #define TCM_CLAMP_BORDER 4
6972 #define TCM_MIRROR_ONCE 5