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 0x00000002
96 #define GEN7_3DSTATE_URB_VS_length_bias 0x00000002
97 #define GEN7_3DSTATE_URB_VS_header \
99 .CommandSubType = 3, \
100 ._3DCommandOpcode = 0, \
101 ._3DCommandSubOpcode = 48, \
104 struct GEN7_3DSTATE_URB_VS
{
105 uint32_t CommandType
;
106 uint32_t CommandSubType
;
107 uint32_t _3DCommandOpcode
;
108 uint32_t _3DCommandSubOpcode
;
109 uint32_t DwordLength
;
110 uint32_t VSURBStartingAddress
;
111 uint32_t VSURBEntryAllocationSize
;
112 uint32_t VSNumberofURBEntries
;
116 GEN7_3DSTATE_URB_VS_pack(__gen_user_data
*data
, void * restrict dst
,
117 const struct GEN7_3DSTATE_URB_VS
* restrict values
)
119 uint32_t *dw
= (uint32_t * restrict
) dst
;
122 __gen_field(values
->CommandType
, 29, 31) |
123 __gen_field(values
->CommandSubType
, 27, 28) |
124 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
125 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
126 __gen_field(values
->DwordLength
, 0, 7) |
130 __gen_field(values
->VSURBStartingAddress
, 25, 29) |
131 __gen_field(values
->VSURBEntryAllocationSize
, 16, 24) |
132 __gen_field(values
->VSNumberofURBEntries
, 0, 15) |
137 #define GEN7_MI_STORE_REGISTER_MEM_length 0x00000003
138 #define GEN7_MI_STORE_REGISTER_MEM_length_bias 0x00000002
139 #define GEN7_MI_STORE_REGISTER_MEM_header \
141 .MICommandOpcode = 36, \
144 struct GEN7_MI_STORE_REGISTER_MEM
{
145 uint32_t CommandType
;
146 uint32_t MICommandOpcode
;
147 uint32_t UseGlobalGTT
;
148 uint32_t DwordLength
;
149 uint32_t RegisterAddress
;
150 __gen_address_type MemoryAddress
;
154 GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
155 const struct GEN7_MI_STORE_REGISTER_MEM
* restrict values
)
157 uint32_t *dw
= (uint32_t * restrict
) dst
;
160 __gen_field(values
->CommandType
, 29, 31) |
161 __gen_field(values
->MICommandOpcode
, 23, 28) |
162 __gen_field(values
->UseGlobalGTT
, 22, 22) |
163 __gen_field(values
->DwordLength
, 0, 7) |
167 __gen_offset(values
->RegisterAddress
, 2, 22) |
174 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
178 #define GEN7_PIPELINE_SELECT_length 0x00000001
179 #define GEN7_PIPELINE_SELECT_length_bias 0x00000001
180 #define GEN7_PIPELINE_SELECT_header \
182 .CommandSubType = 1, \
183 ._3DCommandOpcode = 1, \
184 ._3DCommandSubOpcode = 4
186 struct GEN7_PIPELINE_SELECT
{
187 uint32_t CommandType
;
188 uint32_t CommandSubType
;
189 uint32_t _3DCommandOpcode
;
190 uint32_t _3DCommandSubOpcode
;
194 uint32_t PipelineSelection
;
198 GEN7_PIPELINE_SELECT_pack(__gen_user_data
*data
, void * restrict dst
,
199 const struct GEN7_PIPELINE_SELECT
* restrict values
)
201 uint32_t *dw
= (uint32_t * restrict
) dst
;
204 __gen_field(values
->CommandType
, 29, 31) |
205 __gen_field(values
->CommandSubType
, 27, 28) |
206 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
207 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
208 __gen_field(values
->PipelineSelection
, 0, 1) |
213 #define GEN7_STATE_BASE_ADDRESS_length 0x0000000a
214 #define GEN7_STATE_BASE_ADDRESS_length_bias 0x00000002
215 #define GEN7_STATE_BASE_ADDRESS_header \
217 .CommandSubType = 0, \
218 ._3DCommandOpcode = 1, \
219 ._3DCommandSubOpcode = 1, \
222 struct GEN7_MEMORY_OBJECT_CONTROL_STATE
{
223 uint32_t GraphicsDataTypeGFDT
;
224 uint32_t LLCCacheabilityControlLLCCC
;
225 uint32_t L3CacheabilityControlL3CC
;
229 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
230 const struct GEN7_MEMORY_OBJECT_CONTROL_STATE
* restrict values
)
232 uint32_t *dw
= (uint32_t * restrict
) dst
;
235 __gen_field(values
->GraphicsDataTypeGFDT
, 2, 2) |
236 __gen_field(values
->LLCCacheabilityControlLLCCC
, 1, 1) |
237 __gen_field(values
->L3CacheabilityControlL3CC
, 0, 0) |
242 struct GEN7_STATE_BASE_ADDRESS
{
243 uint32_t CommandType
;
244 uint32_t CommandSubType
;
245 uint32_t _3DCommandOpcode
;
246 uint32_t _3DCommandSubOpcode
;
247 uint32_t DwordLength
;
248 __gen_address_type GeneralStateBaseAddress
;
249 struct GEN7_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState
;
250 struct GEN7_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState
;
251 uint32_t StatelessDataPortAccessForceWriteThru
;
252 uint32_t GeneralStateBaseAddressModifyEnable
;
253 __gen_address_type SurfaceStateBaseAddress
;
254 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState
;
255 uint32_t SurfaceStateBaseAddressModifyEnable
;
256 __gen_address_type DynamicStateBaseAddress
;
257 struct GEN7_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState
;
258 uint32_t DynamicStateBaseAddressModifyEnable
;
259 __gen_address_type IndirectObjectBaseAddress
;
260 struct GEN7_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState
;
261 uint32_t IndirectObjectBaseAddressModifyEnable
;
262 __gen_address_type InstructionBaseAddress
;
263 struct GEN7_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState
;
264 uint32_t InstructionBaseAddressModifyEnable
;
265 __gen_address_type GeneralStateAccessUpperBound
;
266 uint32_t GeneralStateAccessUpperBoundModifyEnable
;
267 __gen_address_type DynamicStateAccessUpperBound
;
268 uint32_t DynamicStateAccessUpperBoundModifyEnable
;
269 __gen_address_type IndirectObjectAccessUpperBound
;
270 uint32_t IndirectObjectAccessUpperBoundModifyEnable
;
271 __gen_address_type InstructionAccessUpperBound
;
272 uint32_t InstructionAccessUpperBoundModifyEnable
;
276 GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
277 const struct GEN7_STATE_BASE_ADDRESS
* restrict values
)
279 uint32_t *dw
= (uint32_t * restrict
) dst
;
282 __gen_field(values
->CommandType
, 29, 31) |
283 __gen_field(values
->CommandSubType
, 27, 28) |
284 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
285 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
286 __gen_field(values
->DwordLength
, 0, 7) |
289 uint32_t dw_GeneralStateMemoryObjectControlState
;
290 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_GeneralStateMemoryObjectControlState
, &values
->GeneralStateMemoryObjectControlState
);
291 uint32_t dw_StatelessDataPortAccessMemoryObjectControlState
;
292 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StatelessDataPortAccessMemoryObjectControlState
, &values
->StatelessDataPortAccessMemoryObjectControlState
);
294 __gen_field(dw_GeneralStateMemoryObjectControlState
, 8, 11) |
295 __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState
, 4, 7) |
296 __gen_field(values
->StatelessDataPortAccessForceWriteThru
, 3, 3) |
297 __gen_field(values
->GeneralStateBaseAddressModifyEnable
, 0, 0) |
301 __gen_combine_address(data
, &dw
[1], values
->GeneralStateBaseAddress
, dw1
);
303 uint32_t dw_SurfaceStateMemoryObjectControlState
;
304 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SurfaceStateMemoryObjectControlState
, &values
->SurfaceStateMemoryObjectControlState
);
306 __gen_field(dw_SurfaceStateMemoryObjectControlState
, 8, 11) |
307 __gen_field(values
->SurfaceStateBaseAddressModifyEnable
, 0, 0) |
311 __gen_combine_address(data
, &dw
[2], values
->SurfaceStateBaseAddress
, dw2
);
313 uint32_t dw_DynamicStateMemoryObjectControlState
;
314 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DynamicStateMemoryObjectControlState
, &values
->DynamicStateMemoryObjectControlState
);
316 __gen_field(dw_DynamicStateMemoryObjectControlState
, 8, 11) |
317 __gen_field(values
->DynamicStateBaseAddressModifyEnable
, 0, 0) |
321 __gen_combine_address(data
, &dw
[3], values
->DynamicStateBaseAddress
, dw3
);
323 uint32_t dw_IndirectObjectMemoryObjectControlState
;
324 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_IndirectObjectMemoryObjectControlState
, &values
->IndirectObjectMemoryObjectControlState
);
326 __gen_field(dw_IndirectObjectMemoryObjectControlState
, 8, 11) |
327 __gen_field(values
->IndirectObjectBaseAddressModifyEnable
, 0, 0) |
331 __gen_combine_address(data
, &dw
[4], values
->IndirectObjectBaseAddress
, dw4
);
333 uint32_t dw_InstructionMemoryObjectControlState
;
334 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_InstructionMemoryObjectControlState
, &values
->InstructionMemoryObjectControlState
);
336 __gen_field(dw_InstructionMemoryObjectControlState
, 8, 11) |
337 __gen_field(values
->InstructionBaseAddressModifyEnable
, 0, 0) |
341 __gen_combine_address(data
, &dw
[5], values
->InstructionBaseAddress
, dw5
);
344 __gen_field(values
->GeneralStateAccessUpperBoundModifyEnable
, 0, 0) |
348 __gen_combine_address(data
, &dw
[6], values
->GeneralStateAccessUpperBound
, dw6
);
351 __gen_field(values
->DynamicStateAccessUpperBoundModifyEnable
, 0, 0) |
355 __gen_combine_address(data
, &dw
[7], values
->DynamicStateAccessUpperBound
, dw7
);
358 __gen_field(values
->IndirectObjectAccessUpperBoundModifyEnable
, 0, 0) |
362 __gen_combine_address(data
, &dw
[8], values
->IndirectObjectAccessUpperBound
, dw8
);
365 __gen_field(values
->InstructionAccessUpperBoundModifyEnable
, 0, 0) |
369 __gen_combine_address(data
, &dw
[9], values
->InstructionAccessUpperBound
, dw9
);
373 #define GEN7_STATE_PREFETCH_length 0x00000002
374 #define GEN7_STATE_PREFETCH_length_bias 0x00000002
375 #define GEN7_STATE_PREFETCH_header \
377 .CommandSubType = 0, \
378 ._3DCommandOpcode = 0, \
379 ._3DCommandSubOpcode = 3, \
382 struct GEN7_STATE_PREFETCH
{
383 uint32_t CommandType
;
384 uint32_t CommandSubType
;
385 uint32_t _3DCommandOpcode
;
386 uint32_t _3DCommandSubOpcode
;
387 uint32_t DwordLength
;
388 __gen_address_type PrefetchPointer
;
389 uint32_t PrefetchCount
;
393 GEN7_STATE_PREFETCH_pack(__gen_user_data
*data
, void * restrict dst
,
394 const struct GEN7_STATE_PREFETCH
* restrict values
)
396 uint32_t *dw
= (uint32_t * restrict
) dst
;
399 __gen_field(values
->CommandType
, 29, 31) |
400 __gen_field(values
->CommandSubType
, 27, 28) |
401 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
402 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
403 __gen_field(values
->DwordLength
, 0, 7) |
407 __gen_field(values
->PrefetchCount
, 0, 2) |
411 __gen_combine_address(data
, &dw
[1], values
->PrefetchPointer
, dw1
);
415 #define GEN7_STATE_SIP_length 0x00000002
416 #define GEN7_STATE_SIP_length_bias 0x00000002
417 #define GEN7_STATE_SIP_header \
419 .CommandSubType = 0, \
420 ._3DCommandOpcode = 1, \
421 ._3DCommandSubOpcode = 2, \
424 struct GEN7_STATE_SIP
{
425 uint32_t CommandType
;
426 uint32_t CommandSubType
;
427 uint32_t _3DCommandOpcode
;
428 uint32_t _3DCommandSubOpcode
;
429 uint32_t DwordLength
;
430 uint32_t SystemInstructionPointer
;
434 GEN7_STATE_SIP_pack(__gen_user_data
*data
, void * restrict dst
,
435 const struct GEN7_STATE_SIP
* restrict values
)
437 uint32_t *dw
= (uint32_t * restrict
) dst
;
440 __gen_field(values
->CommandType
, 29, 31) |
441 __gen_field(values
->CommandSubType
, 27, 28) |
442 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
443 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
444 __gen_field(values
->DwordLength
, 0, 7) |
448 __gen_offset(values
->SystemInstructionPointer
, 4, 31) |
453 #define GEN7_SWTESS_BASE_ADDRESS_length 0x00000002
454 #define GEN7_SWTESS_BASE_ADDRESS_length_bias 0x00000002
455 #define GEN7_SWTESS_BASE_ADDRESS_header \
457 .CommandSubType = 0, \
458 ._3DCommandOpcode = 1, \
459 ._3DCommandSubOpcode = 3, \
462 struct GEN7_SWTESS_BASE_ADDRESS
{
463 uint32_t CommandType
;
464 uint32_t CommandSubType
;
465 uint32_t _3DCommandOpcode
;
466 uint32_t _3DCommandSubOpcode
;
467 uint32_t DwordLength
;
468 __gen_address_type SWTessellationBaseAddress
;
469 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState
;
473 GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data
*data
, void * restrict dst
,
474 const struct GEN7_SWTESS_BASE_ADDRESS
* restrict values
)
476 uint32_t *dw
= (uint32_t * restrict
) dst
;
479 __gen_field(values
->CommandType
, 29, 31) |
480 __gen_field(values
->CommandSubType
, 27, 28) |
481 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
482 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
483 __gen_field(values
->DwordLength
, 0, 7) |
486 uint32_t dw_SWTessellationMemoryObjectControlState
;
487 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SWTessellationMemoryObjectControlState
, &values
->SWTessellationMemoryObjectControlState
);
489 __gen_field(dw_SWTessellationMemoryObjectControlState
, 8, 11) |
493 __gen_combine_address(data
, &dw
[1], values
->SWTessellationBaseAddress
, dw1
);
497 #define GEN7_3DPRIMITIVE_length 0x00000007
498 #define GEN7_3DPRIMITIVE_length_bias 0x00000002
499 #define GEN7_3DPRIMITIVE_header \
501 .CommandSubType = 3, \
502 ._3DCommandOpcode = 3, \
503 ._3DCommandSubOpcode = 0, \
506 struct GEN7_3DPRIMITIVE
{
507 uint32_t CommandType
;
508 uint32_t CommandSubType
;
509 uint32_t _3DCommandOpcode
;
510 uint32_t _3DCommandSubOpcode
;
511 uint32_t IndirectParameterEnable
;
512 uint32_t PredicateEnable
;
513 uint32_t DwordLength
;
514 uint32_t EndOffsetEnable
;
517 uint32_t VertexAccessType
;
518 uint32_t PrimitiveTopologyType
;
519 uint32_t VertexCountPerInstance
;
520 uint32_t StartVertexLocation
;
521 uint32_t InstanceCount
;
522 uint32_t StartInstanceLocation
;
523 uint32_t BaseVertexLocation
;
527 GEN7_3DPRIMITIVE_pack(__gen_user_data
*data
, void * restrict dst
,
528 const struct GEN7_3DPRIMITIVE
* restrict values
)
530 uint32_t *dw
= (uint32_t * restrict
) dst
;
533 __gen_field(values
->CommandType
, 29, 31) |
534 __gen_field(values
->CommandSubType
, 27, 28) |
535 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
536 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
537 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
538 __gen_field(values
->PredicateEnable
, 8, 8) |
539 __gen_field(values
->DwordLength
, 0, 7) |
543 __gen_field(values
->EndOffsetEnable
, 9, 9) |
544 __gen_field(values
->VertexAccessType
, 8, 8) |
545 __gen_field(values
->PrimitiveTopologyType
, 0, 5) |
549 __gen_field(values
->VertexCountPerInstance
, 0, 31) |
553 __gen_field(values
->StartVertexLocation
, 0, 31) |
557 __gen_field(values
->InstanceCount
, 0, 31) |
561 __gen_field(values
->StartInstanceLocation
, 0, 31) |
565 __gen_field(values
->BaseVertexLocation
, 0, 31) |
570 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
571 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
572 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_header \
574 .CommandSubType = 3, \
575 ._3DCommandOpcode = 1, \
576 ._3DCommandSubOpcode = 10, \
579 struct GEN7_3DSTATE_AA_LINE_PARAMETERS
{
580 uint32_t CommandType
;
581 uint32_t CommandSubType
;
582 uint32_t _3DCommandOpcode
;
583 uint32_t _3DCommandSubOpcode
;
584 uint32_t DwordLength
;
585 float AACoverageBias
;
586 float AACoverageSlope
;
587 float AACoverageEndCapBias
;
588 float AACoverageEndCapSlope
;
592 GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data
*data
, void * restrict dst
,
593 const struct GEN7_3DSTATE_AA_LINE_PARAMETERS
* restrict values
)
595 uint32_t *dw
= (uint32_t * restrict
) dst
;
598 __gen_field(values
->CommandType
, 29, 31) |
599 __gen_field(values
->CommandSubType
, 27, 28) |
600 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
601 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
602 __gen_field(values
->DwordLength
, 0, 7) |
606 __gen_field(values
->AACoverageBias
* (1 << 8), 16, 23) |
607 __gen_field(values
->AACoverageSlope
* (1 << 8), 0, 7) |
611 __gen_field(values
->AACoverageEndCapBias
* (1 << 8), 16, 23) |
612 __gen_field(values
->AACoverageEndCapSlope
* (1 << 8), 0, 7) |
617 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
618 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
619 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
621 .CommandSubType = 3, \
622 ._3DCommandOpcode = 0, \
623 ._3DCommandSubOpcode = 40, \
626 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
{
627 uint32_t CommandType
;
628 uint32_t CommandSubType
;
629 uint32_t _3DCommandOpcode
;
630 uint32_t _3DCommandSubOpcode
;
631 uint32_t DwordLength
;
632 uint32_t PointertoDSBindingTable
;
636 GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
637 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
* restrict values
)
639 uint32_t *dw
= (uint32_t * restrict
) dst
;
642 __gen_field(values
->CommandType
, 29, 31) |
643 __gen_field(values
->CommandSubType
, 27, 28) |
644 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
645 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
646 __gen_field(values
->DwordLength
, 0, 7) |
650 __gen_offset(values
->PointertoDSBindingTable
, 5, 15) |
655 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
656 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
657 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
659 .CommandSubType = 3, \
660 ._3DCommandOpcode = 0, \
661 ._3DCommandSubOpcode = 41, \
664 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
{
665 uint32_t CommandType
;
666 uint32_t CommandSubType
;
667 uint32_t _3DCommandOpcode
;
668 uint32_t _3DCommandSubOpcode
;
669 uint32_t DwordLength
;
670 uint32_t PointertoGSBindingTable
;
674 GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
675 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
* restrict values
)
677 uint32_t *dw
= (uint32_t * restrict
) dst
;
680 __gen_field(values
->CommandType
, 29, 31) |
681 __gen_field(values
->CommandSubType
, 27, 28) |
682 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
683 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
684 __gen_field(values
->DwordLength
, 0, 7) |
688 __gen_offset(values
->PointertoGSBindingTable
, 5, 15) |
693 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
694 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
695 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
697 .CommandSubType = 3, \
698 ._3DCommandOpcode = 0, \
699 ._3DCommandSubOpcode = 39, \
702 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
{
703 uint32_t CommandType
;
704 uint32_t CommandSubType
;
705 uint32_t _3DCommandOpcode
;
706 uint32_t _3DCommandSubOpcode
;
707 uint32_t DwordLength
;
708 uint32_t PointertoHSBindingTable
;
712 GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
713 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
* restrict values
)
715 uint32_t *dw
= (uint32_t * restrict
) dst
;
718 __gen_field(values
->CommandType
, 29, 31) |
719 __gen_field(values
->CommandSubType
, 27, 28) |
720 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
721 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
722 __gen_field(values
->DwordLength
, 0, 7) |
726 __gen_offset(values
->PointertoHSBindingTable
, 5, 15) |
731 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
732 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
733 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
735 .CommandSubType = 3, \
736 ._3DCommandOpcode = 0, \
737 ._3DCommandSubOpcode = 42, \
740 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
{
741 uint32_t CommandType
;
742 uint32_t CommandSubType
;
743 uint32_t _3DCommandOpcode
;
744 uint32_t _3DCommandSubOpcode
;
745 uint32_t DwordLength
;
746 uint32_t PointertoPSBindingTable
;
750 GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
751 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
* restrict values
)
753 uint32_t *dw
= (uint32_t * restrict
) dst
;
756 __gen_field(values
->CommandType
, 29, 31) |
757 __gen_field(values
->CommandSubType
, 27, 28) |
758 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
759 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
760 __gen_field(values
->DwordLength
, 0, 7) |
764 __gen_offset(values
->PointertoPSBindingTable
, 5, 15) |
769 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
770 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
771 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
773 .CommandSubType = 3, \
774 ._3DCommandOpcode = 0, \
775 ._3DCommandSubOpcode = 38, \
778 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
{
779 uint32_t CommandType
;
780 uint32_t CommandSubType
;
781 uint32_t _3DCommandOpcode
;
782 uint32_t _3DCommandSubOpcode
;
783 uint32_t DwordLength
;
784 uint32_t PointertoVSBindingTable
;
788 GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
789 const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
* restrict values
)
791 uint32_t *dw
= (uint32_t * restrict
) dst
;
794 __gen_field(values
->CommandType
, 29, 31) |
795 __gen_field(values
->CommandSubType
, 27, 28) |
796 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
797 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
798 __gen_field(values
->DwordLength
, 0, 7) |
802 __gen_offset(values
->PointertoVSBindingTable
, 5, 15) |
807 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
808 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
809 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_header\
811 .CommandSubType = 3, \
812 ._3DCommandOpcode = 0, \
813 ._3DCommandSubOpcode = 36, \
816 struct GEN7_3DSTATE_BLEND_STATE_POINTERS
{
817 uint32_t CommandType
;
818 uint32_t CommandSubType
;
819 uint32_t _3DCommandOpcode
;
820 uint32_t _3DCommandSubOpcode
;
821 uint32_t DwordLength
;
822 uint32_t BlendStatePointer
;
826 GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
827 const struct GEN7_3DSTATE_BLEND_STATE_POINTERS
* restrict values
)
829 uint32_t *dw
= (uint32_t * restrict
) dst
;
832 __gen_field(values
->CommandType
, 29, 31) |
833 __gen_field(values
->CommandSubType
, 27, 28) |
834 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
835 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
836 __gen_field(values
->DwordLength
, 0, 7) |
840 __gen_offset(values
->BlendStatePointer
, 6, 31) |
846 #define GEN7_3DSTATE_CC_STATE_POINTERS_length 0x00000002
847 #define GEN7_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
848 #define GEN7_3DSTATE_CC_STATE_POINTERS_header \
850 .CommandSubType = 3, \
851 ._3DCommandOpcode = 0, \
852 ._3DCommandSubOpcode = 14, \
855 struct GEN7_3DSTATE_CC_STATE_POINTERS
{
856 uint32_t CommandType
;
857 uint32_t CommandSubType
;
858 uint32_t _3DCommandOpcode
;
859 uint32_t _3DCommandSubOpcode
;
860 uint32_t DwordLength
;
861 uint32_t ColorCalcStatePointer
;
865 GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
866 const struct GEN7_3DSTATE_CC_STATE_POINTERS
* restrict values
)
868 uint32_t *dw
= (uint32_t * restrict
) dst
;
871 __gen_field(values
->CommandType
, 29, 31) |
872 __gen_field(values
->CommandSubType
, 27, 28) |
873 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
874 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
875 __gen_field(values
->DwordLength
, 0, 7) |
879 __gen_offset(values
->ColorCalcStatePointer
, 6, 31) |
885 #define GEN7_3DSTATE_CHROMA_KEY_length 0x00000004
886 #define GEN7_3DSTATE_CHROMA_KEY_length_bias 0x00000002
887 #define GEN7_3DSTATE_CHROMA_KEY_header \
889 .CommandSubType = 3, \
890 ._3DCommandOpcode = 1, \
891 ._3DCommandSubOpcode = 4, \
894 struct GEN7_3DSTATE_CHROMA_KEY
{
895 uint32_t CommandType
;
896 uint32_t CommandSubType
;
897 uint32_t _3DCommandOpcode
;
898 uint32_t _3DCommandSubOpcode
;
899 uint32_t DwordLength
;
900 uint32_t ChromaKeyTableIndex
;
901 uint32_t ChromaKeyLowValue
;
902 uint32_t ChromaKeyHighValue
;
906 GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data
*data
, void * restrict dst
,
907 const struct GEN7_3DSTATE_CHROMA_KEY
* restrict values
)
909 uint32_t *dw
= (uint32_t * restrict
) dst
;
912 __gen_field(values
->CommandType
, 29, 31) |
913 __gen_field(values
->CommandSubType
, 27, 28) |
914 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
915 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
916 __gen_field(values
->DwordLength
, 0, 7) |
920 __gen_field(values
->ChromaKeyTableIndex
, 30, 31) |
924 __gen_field(values
->ChromaKeyLowValue
, 0, 31) |
928 __gen_field(values
->ChromaKeyHighValue
, 0, 31) |
933 #define GEN7_3DSTATE_CLEAR_PARAMS_length 0x00000003
934 #define GEN7_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
935 #define GEN7_3DSTATE_CLEAR_PARAMS_header \
937 .CommandSubType = 3, \
938 ._3DCommandOpcode = 0, \
939 ._3DCommandSubOpcode = 4, \
942 struct GEN7_3DSTATE_CLEAR_PARAMS
{
943 uint32_t CommandType
;
944 uint32_t CommandSubType
;
945 uint32_t _3DCommandOpcode
;
946 uint32_t _3DCommandSubOpcode
;
947 uint32_t DwordLength
;
948 uint32_t DepthClearValue
;
949 uint32_t DepthClearValueValid
;
953 GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data
*data
, void * restrict dst
,
954 const struct GEN7_3DSTATE_CLEAR_PARAMS
* restrict values
)
956 uint32_t *dw
= (uint32_t * restrict
) dst
;
959 __gen_field(values
->CommandType
, 29, 31) |
960 __gen_field(values
->CommandSubType
, 27, 28) |
961 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
962 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
963 __gen_field(values
->DwordLength
, 0, 7) |
967 __gen_field(values
->DepthClearValue
, 0, 31) |
971 __gen_field(values
->DepthClearValueValid
, 0, 0) |
976 #define GEN7_3DSTATE_CLIP_length 0x00000004
977 #define GEN7_3DSTATE_CLIP_length_bias 0x00000002
978 #define GEN7_3DSTATE_CLIP_header \
980 .CommandSubType = 3, \
981 ._3DCommandOpcode = 0, \
982 ._3DCommandSubOpcode = 18, \
985 struct GEN7_3DSTATE_CLIP
{
986 uint32_t CommandType
;
987 uint32_t CommandSubType
;
988 uint32_t _3DCommandOpcode
;
989 uint32_t _3DCommandSubOpcode
;
990 uint32_t DwordLength
;
991 uint32_t FrontWinding
;
992 uint32_t VertexSubPixelPrecisionSelect
;
993 uint32_t EarlyCullEnable
;
994 #define CULLMODE_BOTH 0
995 #define CULLMODE_NONE 1
996 #define CULLMODE_FRONT 2
997 #define CULLMODE_BACK 3
999 uint32_t ClipperStatisticsEnable
;
1000 uint32_t UserClipDistanceCullTestEnableBitmask
;
1001 uint32_t ClipEnable
;
1002 #define APIMODE_OGL 0
1004 uint32_t ViewportXYClipTestEnable
;
1005 uint32_t ViewportZClipTestEnable
;
1006 uint32_t GuardbandClipTestEnable
;
1007 uint32_t UserClipDistanceClipTestEnableBitmask
;
1008 #define CLIPMODE_NORMAL 0
1009 #define CLIPMODE_REJECT_ALL 3
1010 #define CLIPMODE_ACCEPT_ALL 4
1012 uint32_t PerspectiveDivideDisable
;
1013 uint32_t NonPerspectiveBarycentricEnable
;
1017 uint32_t TriangleStripListProvokingVertexSelect
;
1020 uint32_t LineStripListProvokingVertexSelect
;
1024 uint32_t TriangleFanProvokingVertexSelect
;
1025 float MinimumPointWidth
;
1026 float MaximumPointWidth
;
1027 uint32_t ForceZeroRTAIndexEnable
;
1028 uint32_t MaximumVPIndex
;
1032 GEN7_3DSTATE_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
1033 const struct GEN7_3DSTATE_CLIP
* restrict values
)
1035 uint32_t *dw
= (uint32_t * restrict
) dst
;
1038 __gen_field(values
->CommandType
, 29, 31) |
1039 __gen_field(values
->CommandSubType
, 27, 28) |
1040 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1041 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1042 __gen_field(values
->DwordLength
, 0, 7) |
1046 __gen_field(values
->FrontWinding
, 20, 20) |
1047 __gen_field(values
->VertexSubPixelPrecisionSelect
, 19, 19) |
1048 __gen_field(values
->EarlyCullEnable
, 18, 18) |
1049 __gen_field(values
->CullMode
, 16, 17) |
1050 __gen_field(values
->ClipperStatisticsEnable
, 10, 10) |
1051 __gen_field(values
->UserClipDistanceCullTestEnableBitmask
, 0, 7) |
1055 __gen_field(values
->ClipEnable
, 31, 31) |
1056 __gen_field(values
->APIMode
, 30, 30) |
1057 __gen_field(values
->ViewportXYClipTestEnable
, 28, 28) |
1058 __gen_field(values
->ViewportZClipTestEnable
, 27, 27) |
1059 __gen_field(values
->GuardbandClipTestEnable
, 26, 26) |
1060 __gen_field(values
->UserClipDistanceClipTestEnableBitmask
, 16, 23) |
1061 __gen_field(values
->ClipMode
, 13, 15) |
1062 __gen_field(values
->PerspectiveDivideDisable
, 9, 9) |
1063 __gen_field(values
->NonPerspectiveBarycentricEnable
, 8, 8) |
1064 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 4, 5) |
1065 __gen_field(values
->LineStripListProvokingVertexSelect
, 2, 3) |
1066 __gen_field(values
->TriangleFanProvokingVertexSelect
, 0, 1) |
1070 __gen_field(values
->MinimumPointWidth
* (1 << 3), 17, 27) |
1071 __gen_field(values
->MaximumPointWidth
* (1 << 3), 6, 16) |
1072 __gen_field(values
->ForceZeroRTAIndexEnable
, 5, 5) |
1073 __gen_field(values
->MaximumVPIndex
, 0, 3) |
1078 #define GEN7_3DSTATE_CONSTANT_DS_length 0x00000007
1079 #define GEN7_3DSTATE_CONSTANT_DS_length_bias 0x00000002
1080 #define GEN7_3DSTATE_CONSTANT_DS_header \
1082 .CommandSubType = 3, \
1083 ._3DCommandOpcode = 0, \
1084 ._3DCommandSubOpcode = 26, \
1087 struct GEN7_3DSTATE_CONSTANT_BODY
{
1088 uint32_t ConstantBuffer1ReadLength
;
1089 uint32_t ConstantBuffer0ReadLength
;
1090 uint32_t ConstantBuffer3ReadLength
;
1091 uint32_t ConstantBuffer2ReadLength
;
1092 __gen_address_type PointerToConstantBuffer0
;
1093 struct GEN7_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState
;
1094 __gen_address_type PointerToConstantBuffer1
;
1095 __gen_address_type PointerToConstantBuffer2
;
1096 __gen_address_type PointerToConstantBuffer3
;
1100 GEN7_3DSTATE_CONSTANT_BODY_pack(__gen_user_data
*data
, void * restrict dst
,
1101 const struct GEN7_3DSTATE_CONSTANT_BODY
* restrict values
)
1103 uint32_t *dw
= (uint32_t * restrict
) dst
;
1106 __gen_field(values
->ConstantBuffer1ReadLength
, 16, 31) |
1107 __gen_field(values
->ConstantBuffer0ReadLength
, 0, 15) |
1111 __gen_field(values
->ConstantBuffer3ReadLength
, 16, 31) |
1112 __gen_field(values
->ConstantBuffer2ReadLength
, 0, 15) |
1115 uint32_t dw_ConstantBufferObjectControlState
;
1116 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_ConstantBufferObjectControlState
, &values
->ConstantBufferObjectControlState
);
1118 __gen_field(dw_ConstantBufferObjectControlState
, 0, 4) |
1122 __gen_combine_address(data
, &dw
[2], values
->PointerToConstantBuffer0
, dw2
);
1128 __gen_combine_address(data
, &dw
[3], values
->PointerToConstantBuffer1
, dw3
);
1134 __gen_combine_address(data
, &dw
[4], values
->PointerToConstantBuffer2
, dw4
);
1140 __gen_combine_address(data
, &dw
[5], values
->PointerToConstantBuffer3
, dw5
);
1144 struct GEN7_3DSTATE_CONSTANT_DS
{
1145 uint32_t CommandType
;
1146 uint32_t CommandSubType
;
1147 uint32_t _3DCommandOpcode
;
1148 uint32_t _3DCommandSubOpcode
;
1149 uint32_t DwordLength
;
1150 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1154 GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1155 const struct GEN7_3DSTATE_CONSTANT_DS
* restrict values
)
1157 uint32_t *dw
= (uint32_t * restrict
) dst
;
1160 __gen_field(values
->CommandType
, 29, 31) |
1161 __gen_field(values
->CommandSubType
, 27, 28) |
1162 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1163 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1164 __gen_field(values
->DwordLength
, 0, 7) |
1167 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1170 #define GEN7_3DSTATE_CONSTANT_GS_length 0x00000007
1171 #define GEN7_3DSTATE_CONSTANT_GS_length_bias 0x00000002
1172 #define GEN7_3DSTATE_CONSTANT_GS_header \
1174 .CommandSubType = 3, \
1175 ._3DCommandOpcode = 0, \
1176 ._3DCommandSubOpcode = 22, \
1179 struct GEN7_3DSTATE_CONSTANT_GS
{
1180 uint32_t CommandType
;
1181 uint32_t CommandSubType
;
1182 uint32_t _3DCommandOpcode
;
1183 uint32_t _3DCommandSubOpcode
;
1184 uint32_t DwordLength
;
1185 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1189 GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1190 const struct GEN7_3DSTATE_CONSTANT_GS
* restrict values
)
1192 uint32_t *dw
= (uint32_t * restrict
) dst
;
1195 __gen_field(values
->CommandType
, 29, 31) |
1196 __gen_field(values
->CommandSubType
, 27, 28) |
1197 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1198 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1199 __gen_field(values
->DwordLength
, 0, 7) |
1202 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1205 #define GEN7_3DSTATE_CONSTANT_HS_length 0x00000007
1206 #define GEN7_3DSTATE_CONSTANT_HS_length_bias 0x00000002
1207 #define GEN7_3DSTATE_CONSTANT_HS_header \
1209 .CommandSubType = 3, \
1210 ._3DCommandOpcode = 0, \
1211 ._3DCommandSubOpcode = 25, \
1214 struct GEN7_3DSTATE_CONSTANT_HS
{
1215 uint32_t CommandType
;
1216 uint32_t CommandSubType
;
1217 uint32_t _3DCommandOpcode
;
1218 uint32_t _3DCommandSubOpcode
;
1219 uint32_t DwordLength
;
1220 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1224 GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1225 const struct GEN7_3DSTATE_CONSTANT_HS
* restrict values
)
1227 uint32_t *dw
= (uint32_t * restrict
) dst
;
1230 __gen_field(values
->CommandType
, 29, 31) |
1231 __gen_field(values
->CommandSubType
, 27, 28) |
1232 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1233 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1234 __gen_field(values
->DwordLength
, 0, 7) |
1237 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1240 #define GEN7_3DSTATE_CONSTANT_PS_length 0x00000007
1241 #define GEN7_3DSTATE_CONSTANT_PS_length_bias 0x00000002
1242 #define GEN7_3DSTATE_CONSTANT_PS_header \
1244 .CommandSubType = 3, \
1245 ._3DCommandOpcode = 0, \
1246 ._3DCommandSubOpcode = 23, \
1249 struct GEN7_3DSTATE_CONSTANT_PS
{
1250 uint32_t CommandType
;
1251 uint32_t CommandSubType
;
1252 uint32_t _3DCommandOpcode
;
1253 uint32_t _3DCommandSubOpcode
;
1254 uint32_t DwordLength
;
1255 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1259 GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data
*data
, void * restrict dst
,
1260 const struct GEN7_3DSTATE_CONSTANT_PS
* restrict values
)
1262 uint32_t *dw
= (uint32_t * restrict
) dst
;
1265 __gen_field(values
->CommandType
, 29, 31) |
1266 __gen_field(values
->CommandSubType
, 27, 28) |
1267 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1268 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1269 __gen_field(values
->DwordLength
, 0, 7) |
1272 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1275 #define GEN7_3DSTATE_CONSTANT_VS_length 0x00000007
1276 #define GEN7_3DSTATE_CONSTANT_VS_length_bias 0x00000002
1277 #define GEN7_3DSTATE_CONSTANT_VS_header \
1279 .CommandSubType = 3, \
1280 ._3DCommandOpcode = 0, \
1281 ._3DCommandSubOpcode = 21, \
1284 struct GEN7_3DSTATE_CONSTANT_VS
{
1285 uint32_t CommandType
;
1286 uint32_t CommandSubType
;
1287 uint32_t _3DCommandOpcode
;
1288 uint32_t _3DCommandSubOpcode
;
1289 uint32_t DwordLength
;
1290 struct GEN7_3DSTATE_CONSTANT_BODY ConstantBody
;
1294 GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data
*data
, void * restrict dst
,
1295 const struct GEN7_3DSTATE_CONSTANT_VS
* restrict values
)
1297 uint32_t *dw
= (uint32_t * restrict
) dst
;
1300 __gen_field(values
->CommandType
, 29, 31) |
1301 __gen_field(values
->CommandSubType
, 27, 28) |
1302 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1303 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1304 __gen_field(values
->DwordLength
, 0, 7) |
1307 GEN7_3DSTATE_CONSTANT_BODY_pack(data
, &dw
[1], &values
->ConstantBody
);
1310 #define GEN7_3DSTATE_DEPTH_BUFFER_length 0x00000007
1311 #define GEN7_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
1312 #define GEN7_3DSTATE_DEPTH_BUFFER_header \
1314 .CommandSubType = 3, \
1315 ._3DCommandOpcode = 0, \
1316 ._3DCommandSubOpcode = 5, \
1319 struct GEN7_3DSTATE_DEPTH_BUFFER
{
1320 uint32_t CommandType
;
1321 uint32_t CommandSubType
;
1322 uint32_t _3DCommandOpcode
;
1323 uint32_t _3DCommandSubOpcode
;
1324 uint32_t DwordLength
;
1325 #define SURFTYPE_1D 0
1326 #define SURFTYPE_2D 1
1327 #define SURFTYPE_3D 2
1328 #define SURFTYPE_CUBE 3
1329 #define SURFTYPE_NULL 7
1330 uint32_t SurfaceType
;
1331 uint32_t DepthWriteEnable
;
1332 uint32_t StencilWriteEnable
;
1333 uint32_t HierarchicalDepthBufferEnable
;
1335 #define D24_UNORM_X8_UINT 3
1337 uint32_t SurfaceFormat
;
1338 uint32_t SurfacePitch
;
1339 __gen_address_type SurfaceBaseAddress
;
1343 #define SURFTYPE_CUBEmustbezero 0
1345 uint32_t MinimumArrayElement
;
1346 struct GEN7_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState
;
1347 uint32_t DepthCoordinateOffsetY
;
1348 uint32_t DepthCoordinateOffsetX
;
1349 uint32_t RenderTargetViewExtent
;
1353 GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1354 const struct GEN7_3DSTATE_DEPTH_BUFFER
* restrict values
)
1356 uint32_t *dw
= (uint32_t * restrict
) dst
;
1359 __gen_field(values
->CommandType
, 29, 31) |
1360 __gen_field(values
->CommandSubType
, 27, 28) |
1361 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1362 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1363 __gen_field(values
->DwordLength
, 0, 7) |
1367 __gen_field(values
->SurfaceType
, 29, 31) |
1368 __gen_field(values
->DepthWriteEnable
, 28, 28) |
1369 __gen_field(values
->StencilWriteEnable
, 27, 27) |
1370 __gen_field(values
->HierarchicalDepthBufferEnable
, 22, 22) |
1371 __gen_field(values
->SurfaceFormat
, 18, 20) |
1372 __gen_field(values
->SurfacePitch
, 0, 17) |
1379 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1382 __gen_field(values
->Height
, 18, 31) |
1383 __gen_field(values
->Width
, 4, 17) |
1384 __gen_field(values
->LOD
, 0, 3) |
1387 uint32_t dw_DepthBufferObjectControlState
;
1388 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_DepthBufferObjectControlState
, &values
->DepthBufferObjectControlState
);
1390 __gen_field(values
->Depth
, 21, 31) |
1391 __gen_field(values
->MinimumArrayElement
, 10, 20) |
1392 __gen_field(dw_DepthBufferObjectControlState
, 0, 3) |
1396 __gen_field(values
->DepthCoordinateOffsetY
, 16, 31) |
1397 __gen_field(values
->DepthCoordinateOffsetX
, 0, 15) |
1401 __gen_field(values
->RenderTargetViewExtent
, 21, 31) |
1406 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
1407 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002
1408 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\
1410 .CommandSubType = 3, \
1411 ._3DCommandOpcode = 0, \
1412 ._3DCommandSubOpcode = 37, \
1415 struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
{
1416 uint32_t CommandType
;
1417 uint32_t CommandSubType
;
1418 uint32_t _3DCommandOpcode
;
1419 uint32_t _3DCommandSubOpcode
;
1420 uint32_t DwordLength
;
1421 uint32_t PointertoDEPTH_STENCIL_STATE
;
1425 GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
1426 const struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
* restrict values
)
1428 uint32_t *dw
= (uint32_t * restrict
) dst
;
1431 __gen_field(values
->CommandType
, 29, 31) |
1432 __gen_field(values
->CommandSubType
, 27, 28) |
1433 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1434 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1435 __gen_field(values
->DwordLength
, 0, 7) |
1439 __gen_offset(values
->PointertoDEPTH_STENCIL_STATE
, 6, 31) |
1445 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
1446 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
1447 #define GEN7_3DSTATE_DRAWING_RECTANGLE_header \
1449 .CommandSubType = 3, \
1450 ._3DCommandOpcode = 1, \
1451 ._3DCommandSubOpcode = 0, \
1454 struct GEN7_3DSTATE_DRAWING_RECTANGLE
{
1455 uint32_t CommandType
;
1456 uint32_t CommandSubType
;
1457 uint32_t _3DCommandOpcode
;
1458 uint32_t _3DCommandSubOpcode
;
1459 uint32_t DwordLength
;
1460 uint32_t ClippedDrawingRectangleYMin
;
1461 uint32_t ClippedDrawingRectangleXMin
;
1462 uint32_t ClippedDrawingRectangleYMax
;
1463 uint32_t ClippedDrawingRectangleXMax
;
1464 uint32_t DrawingRectangleOriginY
;
1465 uint32_t DrawingRectangleOriginX
;
1469 GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data
*data
, void * restrict dst
,
1470 const struct GEN7_3DSTATE_DRAWING_RECTANGLE
* restrict values
)
1472 uint32_t *dw
= (uint32_t * restrict
) dst
;
1475 __gen_field(values
->CommandType
, 29, 31) |
1476 __gen_field(values
->CommandSubType
, 27, 28) |
1477 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1478 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1479 __gen_field(values
->DwordLength
, 0, 7) |
1483 __gen_field(values
->ClippedDrawingRectangleYMin
, 16, 31) |
1484 __gen_field(values
->ClippedDrawingRectangleXMin
, 0, 15) |
1488 __gen_field(values
->ClippedDrawingRectangleYMax
, 16, 31) |
1489 __gen_field(values
->ClippedDrawingRectangleXMax
, 0, 15) |
1493 __gen_field(values
->DrawingRectangleOriginY
, 16, 31) |
1494 __gen_field(values
->DrawingRectangleOriginX
, 0, 15) |
1499 #define GEN7_3DSTATE_DS_length 0x00000006
1500 #define GEN7_3DSTATE_DS_length_bias 0x00000002
1501 #define GEN7_3DSTATE_DS_header \
1503 .CommandSubType = 3, \
1504 ._3DCommandOpcode = 0, \
1505 ._3DCommandSubOpcode = 29, \
1508 struct GEN7_3DSTATE_DS
{
1509 uint32_t CommandType
;
1510 uint32_t CommandSubType
;
1511 uint32_t _3DCommandOpcode
;
1512 uint32_t _3DCommandSubOpcode
;
1513 uint32_t DwordLength
;
1514 uint32_t KernelStartPointer
;
1517 uint32_t SingleDomainPointDispatch
;
1520 uint32_t VectorMaskEnable
;
1521 #define NoSamplers 0
1522 #define _14Samplers 1
1523 #define _58Samplers 2
1524 #define _912Samplers 3
1525 #define _1316Samplers 4
1526 uint32_t SamplerCount
;
1527 uint32_t BindingTableEntryCount
;
1530 uint32_t FloatingPointMode
;
1531 uint32_t IllegalOpcodeExceptionEnable
;
1532 uint32_t SoftwareExceptionEnable
;
1533 uint32_t ScratchSpaceBasePointer
;
1534 uint32_t PerThreadScratchSpace
;
1535 uint32_t DispatchGRFStartRegisterForURBData
;
1536 uint32_t PatchURBEntryReadLength
;
1537 uint32_t PatchURBEntryReadOffset
;
1538 uint32_t MaximumNumberofThreads
;
1539 uint32_t StatisticsEnable
;
1540 uint32_t ComputeWCoordinateEnable
;
1541 uint32_t DSCacheDisable
;
1542 uint32_t DSFunctionEnable
;
1546 GEN7_3DSTATE_DS_pack(__gen_user_data
*data
, void * restrict dst
,
1547 const struct GEN7_3DSTATE_DS
* restrict values
)
1549 uint32_t *dw
= (uint32_t * restrict
) dst
;
1552 __gen_field(values
->CommandType
, 29, 31) |
1553 __gen_field(values
->CommandSubType
, 27, 28) |
1554 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1555 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1556 __gen_field(values
->DwordLength
, 0, 7) |
1560 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1564 __gen_field(values
->SingleDomainPointDispatch
, 31, 31) |
1565 __gen_field(values
->VectorMaskEnable
, 30, 30) |
1566 __gen_field(values
->SamplerCount
, 27, 29) |
1567 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1568 __gen_field(values
->FloatingPointMode
, 16, 16) |
1569 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1570 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1574 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1575 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1579 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 20, 24) |
1580 __gen_field(values
->PatchURBEntryReadLength
, 11, 17) |
1581 __gen_field(values
->PatchURBEntryReadOffset
, 4, 9) |
1585 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1586 __gen_field(values
->StatisticsEnable
, 10, 10) |
1587 __gen_field(values
->ComputeWCoordinateEnable
, 2, 2) |
1588 __gen_field(values
->DSCacheDisable
, 1, 1) |
1589 __gen_field(values
->DSFunctionEnable
, 0, 0) |
1594 #define GEN7_3DSTATE_GS_length 0x00000007
1595 #define GEN7_3DSTATE_GS_length_bias 0x00000002
1596 #define GEN7_3DSTATE_GS_header \
1598 .CommandSubType = 3, \
1599 ._3DCommandOpcode = 0, \
1600 ._3DCommandSubOpcode = 17, \
1603 struct GEN7_3DSTATE_GS
{
1604 uint32_t CommandType
;
1605 uint32_t CommandSubType
;
1606 uint32_t _3DCommandOpcode
;
1607 uint32_t _3DCommandSubOpcode
;
1608 uint32_t DwordLength
;
1609 uint32_t KernelStartPointer
;
1610 uint32_t SingleProgramFlowSPF
;
1613 uint32_t VectorMaskEnableVME
;
1614 #define NoSamplers 0
1615 #define _14Samplers 1
1616 #define _58Samplers 2
1617 #define _912Samplers 3
1618 #define _1316Samplers 4
1619 uint32_t SamplerCount
;
1620 uint32_t BindingTableEntryCount
;
1621 #define NormalPriority 0
1622 #define HighPriority 1
1623 uint32_t ThreadPriority
;
1626 uint32_t FloatingPointMode
;
1627 uint32_t IllegalOpcodeExceptionEnable
;
1628 uint32_t MaskStackExceptionEnable
;
1629 uint32_t SoftwareExceptionEnable
;
1630 uint32_t ScratchSpaceBasePointer
;
1631 uint32_t PerThreadScratchSpace
;
1632 uint32_t OutputVertexSize
;
1633 uint32_t OutputTopology
;
1634 uint32_t VertexURBEntryReadLength
;
1635 uint32_t IncludeVertexHandles
;
1636 uint32_t VertexURBEntryReadOffset
;
1637 uint32_t DispatchGRFStartRegisterforURBData
;
1638 uint32_t MaximumNumberofThreads
;
1641 uint32_t ControlDataFormat
;
1642 uint32_t ControlDataHeaderSize
;
1643 uint32_t InstanceControl
;
1644 uint32_t DefaultStreamID
;
1646 #define DUAL_INSTANCE 1
1647 #define DUAL_OBJECT 2
1648 uint32_t DispatchMode
;
1649 uint32_t GSStatisticsEnable
;
1650 uint32_t GSInvocationsIncrementValue
;
1651 uint32_t IncludePrimitiveID
;
1653 uint32_t ReorderEnable
;
1654 uint32_t DiscardAdjacency
;
1656 uint32_t SemaphoreHandle
;
1660 GEN7_3DSTATE_GS_pack(__gen_user_data
*data
, void * restrict dst
,
1661 const struct GEN7_3DSTATE_GS
* restrict values
)
1663 uint32_t *dw
= (uint32_t * restrict
) dst
;
1666 __gen_field(values
->CommandType
, 29, 31) |
1667 __gen_field(values
->CommandSubType
, 27, 28) |
1668 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1669 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1670 __gen_field(values
->DwordLength
, 0, 7) |
1674 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1678 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
1679 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
1680 __gen_field(values
->SamplerCount
, 27, 29) |
1681 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1682 __gen_field(values
->ThreadPriority
, 17, 17) |
1683 __gen_field(values
->FloatingPointMode
, 16, 16) |
1684 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1685 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
1686 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1690 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1691 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1695 __gen_field(values
->OutputVertexSize
, 23, 28) |
1696 __gen_field(values
->OutputTopology
, 17, 22) |
1697 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1698 __gen_field(values
->IncludeVertexHandles
, 10, 10) |
1699 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1700 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 0, 3) |
1704 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
1705 __gen_field(values
->ControlDataFormat
, 24, 24) |
1706 __gen_field(values
->ControlDataHeaderSize
, 20, 23) |
1707 __gen_field(values
->InstanceControl
, 15, 19) |
1708 __gen_field(values
->DefaultStreamID
, 13, 14) |
1709 __gen_field(values
->DispatchMode
, 11, 12) |
1710 __gen_field(values
->GSStatisticsEnable
, 10, 10) |
1711 __gen_field(values
->GSInvocationsIncrementValue
, 5, 9) |
1712 __gen_field(values
->IncludePrimitiveID
, 4, 4) |
1713 __gen_field(values
->Hint
, 3, 3) |
1714 __gen_field(values
->ReorderEnable
, 2, 2) |
1715 __gen_field(values
->DiscardAdjacency
, 1, 1) |
1716 __gen_field(values
->GSEnable
, 0, 0) |
1720 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1725 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
1726 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
1727 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_header \
1729 .CommandSubType = 3, \
1730 ._3DCommandOpcode = 0, \
1731 ._3DCommandSubOpcode = 7, \
1734 struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
{
1735 uint32_t CommandType
;
1736 uint32_t CommandSubType
;
1737 uint32_t _3DCommandOpcode
;
1738 uint32_t _3DCommandSubOpcode
;
1739 uint32_t DwordLength
;
1740 struct GEN7_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState
;
1741 uint32_t SurfacePitch
;
1742 __gen_address_type SurfaceBaseAddress
;
1746 GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1747 const struct GEN7_3DSTATE_HIER_DEPTH_BUFFER
* restrict values
)
1749 uint32_t *dw
= (uint32_t * restrict
) dst
;
1752 __gen_field(values
->CommandType
, 29, 31) |
1753 __gen_field(values
->CommandSubType
, 27, 28) |
1754 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1755 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1756 __gen_field(values
->DwordLength
, 0, 7) |
1759 uint32_t dw_HierarchicalDepthBufferObjectControlState
;
1760 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_HierarchicalDepthBufferObjectControlState
, &values
->HierarchicalDepthBufferObjectControlState
);
1762 __gen_field(dw_HierarchicalDepthBufferObjectControlState
, 25, 28) |
1763 __gen_field(values
->SurfacePitch
, 0, 16) |
1770 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
1774 #define GEN7_3DSTATE_HS_length 0x00000007
1775 #define GEN7_3DSTATE_HS_length_bias 0x00000002
1776 #define GEN7_3DSTATE_HS_header \
1778 .CommandSubType = 3, \
1779 ._3DCommandOpcode = 0, \
1780 ._3DCommandSubOpcode = 27, \
1783 struct GEN7_3DSTATE_HS
{
1784 uint32_t CommandType
;
1785 uint32_t CommandSubType
;
1786 uint32_t _3DCommandOpcode
;
1787 uint32_t _3DCommandSubOpcode
;
1788 uint32_t DwordLength
;
1789 #define NoSamplers 0
1790 #define _14Samplers 1
1791 #define _58Samplers 2
1792 #define _912Samplers 3
1793 #define _1316Samplers 4
1794 uint32_t SamplerCount
;
1795 uint32_t BindingTableEntryCount
;
1798 uint32_t FloatingPointMode
;
1799 uint32_t IllegalOpcodeExceptionEnable
;
1800 uint32_t SoftwareExceptionEnable
;
1801 uint32_t MaximumNumberofThreads
;
1803 uint32_t StatisticsEnable
;
1804 uint32_t InstanceCount
;
1805 uint32_t KernelStartPointer
;
1806 uint32_t ScratchSpaceBasePointer
;
1807 uint32_t PerThreadScratchSpace
;
1808 uint32_t SingleProgramFlow
;
1811 uint32_t VectorMaskEnable
;
1812 uint32_t IncludeVertexHandles
;
1813 uint32_t DispatchGRFStartRegisterForURBData
;
1814 uint32_t VertexURBEntryReadLength
;
1815 uint32_t VertexURBEntryReadOffset
;
1816 uint32_t SemaphoreHandle
;
1820 GEN7_3DSTATE_HS_pack(__gen_user_data
*data
, void * restrict dst
,
1821 const struct GEN7_3DSTATE_HS
* restrict values
)
1823 uint32_t *dw
= (uint32_t * restrict
) dst
;
1826 __gen_field(values
->CommandType
, 29, 31) |
1827 __gen_field(values
->CommandSubType
, 27, 28) |
1828 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1829 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1830 __gen_field(values
->DwordLength
, 0, 7) |
1834 __gen_field(values
->SamplerCount
, 27, 29) |
1835 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
1836 __gen_field(values
->FloatingPointMode
, 16, 16) |
1837 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
1838 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
1839 __gen_field(values
->MaximumNumberofThreads
, 0, 6) |
1843 __gen_field(values
->Enable
, 31, 31) |
1844 __gen_field(values
->StatisticsEnable
, 29, 29) |
1845 __gen_field(values
->InstanceCount
, 0, 3) |
1849 __gen_offset(values
->KernelStartPointer
, 6, 31) |
1853 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
1854 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
1858 __gen_field(values
->SingleProgramFlow
, 27, 27) |
1859 __gen_field(values
->VectorMaskEnable
, 26, 26) |
1860 __gen_field(values
->IncludeVertexHandles
, 24, 24) |
1861 __gen_field(values
->DispatchGRFStartRegisterForURBData
, 19, 23) |
1862 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
1863 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
1867 __gen_offset(values
->SemaphoreHandle
, 0, 11) |
1872 #define GEN7_3DSTATE_INDEX_BUFFER_length 0x00000003
1873 #define GEN7_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
1874 #define GEN7_3DSTATE_INDEX_BUFFER_header \
1876 .CommandSubType = 3, \
1877 ._3DCommandOpcode = 0, \
1878 ._3DCommandSubOpcode = 10, \
1881 struct GEN7_3DSTATE_INDEX_BUFFER
{
1882 uint32_t CommandType
;
1883 uint32_t CommandSubType
;
1884 uint32_t _3DCommandOpcode
;
1885 uint32_t _3DCommandSubOpcode
;
1886 struct GEN7_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState
;
1887 uint32_t CutIndexEnable
;
1888 #define INDEX_BYTE 0
1889 #define INDEX_WORD 1
1890 #define INDEX_DWORD 2
1891 uint32_t IndexFormat
;
1892 uint32_t DwordLength
;
1893 __gen_address_type BufferStartingAddress
;
1894 __gen_address_type BufferEndingAddress
;
1898 GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
1899 const struct GEN7_3DSTATE_INDEX_BUFFER
* restrict values
)
1901 uint32_t *dw
= (uint32_t * restrict
) dst
;
1903 uint32_t dw_MemoryObjectControlState
;
1904 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_MemoryObjectControlState
, &values
->MemoryObjectControlState
);
1906 __gen_field(values
->CommandType
, 29, 31) |
1907 __gen_field(values
->CommandSubType
, 27, 28) |
1908 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1909 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1910 __gen_field(dw_MemoryObjectControlState
, 12, 15) |
1911 __gen_field(values
->CutIndexEnable
, 10, 10) |
1912 __gen_field(values
->IndexFormat
, 8, 9) |
1913 __gen_field(values
->DwordLength
, 0, 7) |
1920 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
1926 __gen_combine_address(data
, &dw
[2], values
->BufferEndingAddress
, dw2
);
1930 #define GEN7_3DSTATE_LINE_STIPPLE_length 0x00000003
1931 #define GEN7_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
1932 #define GEN7_3DSTATE_LINE_STIPPLE_header \
1934 .CommandSubType = 3, \
1935 ._3DCommandOpcode = 1, \
1936 ._3DCommandSubOpcode = 8, \
1939 struct GEN7_3DSTATE_LINE_STIPPLE
{
1940 uint32_t CommandType
;
1941 uint32_t CommandSubType
;
1942 uint32_t _3DCommandOpcode
;
1943 uint32_t _3DCommandSubOpcode
;
1944 uint32_t DwordLength
;
1945 uint32_t ModifyEnableCurrentRepeatCounterCurrentStippleIndex
;
1946 uint32_t CurrentRepeatCounter
;
1947 uint32_t CurrentStippleIndex
;
1948 uint32_t LineStipplePattern
;
1949 float LineStippleInverseRepeatCount
;
1950 uint32_t LineStippleRepeatCount
;
1954 GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data
*data
, void * restrict dst
,
1955 const struct GEN7_3DSTATE_LINE_STIPPLE
* restrict values
)
1957 uint32_t *dw
= (uint32_t * restrict
) dst
;
1960 __gen_field(values
->CommandType
, 29, 31) |
1961 __gen_field(values
->CommandSubType
, 27, 28) |
1962 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
1963 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
1964 __gen_field(values
->DwordLength
, 0, 7) |
1968 __gen_field(values
->ModifyEnableCurrentRepeatCounterCurrentStippleIndex
, 31, 31) |
1969 __gen_field(values
->CurrentRepeatCounter
, 21, 29) |
1970 __gen_field(values
->CurrentStippleIndex
, 16, 19) |
1971 __gen_field(values
->LineStipplePattern
, 0, 15) |
1975 __gen_field(values
->LineStippleInverseRepeatCount
* (1 << 16), 15, 31) |
1976 __gen_field(values
->LineStippleRepeatCount
, 0, 8) |
1981 #define GEN7_3DSTATE_MONOFILTER_SIZE_length 0x00000002
1982 #define GEN7_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
1983 #define GEN7_3DSTATE_MONOFILTER_SIZE_header \
1985 .CommandSubType = 3, \
1986 ._3DCommandOpcode = 1, \
1987 ._3DCommandSubOpcode = 17, \
1990 struct GEN7_3DSTATE_MONOFILTER_SIZE
{
1991 uint32_t CommandType
;
1992 uint32_t CommandSubType
;
1993 uint32_t _3DCommandOpcode
;
1994 uint32_t _3DCommandSubOpcode
;
1995 uint32_t DwordLength
;
1996 uint32_t MonochromeFilterWidth
;
1997 uint32_t MonochromeFilterHeight
;
2001 GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data
*data
, void * restrict dst
,
2002 const struct GEN7_3DSTATE_MONOFILTER_SIZE
* restrict values
)
2004 uint32_t *dw
= (uint32_t * restrict
) dst
;
2007 __gen_field(values
->CommandType
, 29, 31) |
2008 __gen_field(values
->CommandSubType
, 27, 28) |
2009 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2010 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2011 __gen_field(values
->DwordLength
, 0, 7) |
2015 __gen_field(values
->MonochromeFilterWidth
, 3, 5) |
2016 __gen_field(values
->MonochromeFilterHeight
, 0, 2) |
2021 #define GEN7_3DSTATE_MULTISAMPLE_length 0x00000004
2022 #define GEN7_3DSTATE_MULTISAMPLE_length_bias 0x00000002
2023 #define GEN7_3DSTATE_MULTISAMPLE_header \
2025 .CommandSubType = 3, \
2026 ._3DCommandOpcode = 1, \
2027 ._3DCommandSubOpcode = 13, \
2030 struct GEN7_3DSTATE_MULTISAMPLE
{
2031 uint32_t CommandType
;
2032 uint32_t CommandSubType
;
2033 uint32_t _3DCommandOpcode
;
2034 uint32_t _3DCommandSubOpcode
;
2035 uint32_t DwordLength
;
2036 #define PIXLOC_CENTER 0
2037 #define PIXLOC_UL_CORNER 1
2038 uint32_t PixelLocation
;
2039 #define NUMSAMPLES_1 0
2040 #define NUMSAMPLES_4 2
2041 #define NUMSAMPLES_8 3
2042 uint32_t NumberofMultisamples
;
2043 float Sample3XOffset
;
2044 float Sample3YOffset
;
2045 float Sample2XOffset
;
2046 float Sample2YOffset
;
2047 float Sample1XOffset
;
2048 float Sample1YOffset
;
2049 float Sample0XOffset
;
2050 float Sample0YOffset
;
2051 float Sample7XOffset
;
2052 float Sample7YOffset
;
2053 float Sample6XOffset
;
2054 float Sample6YOffset
;
2055 float Sample5XOffset
;
2056 float Sample5YOffset
;
2057 float Sample4XOffset
;
2058 float Sample4YOffset
;
2062 GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data
*data
, void * restrict dst
,
2063 const struct GEN7_3DSTATE_MULTISAMPLE
* restrict values
)
2065 uint32_t *dw
= (uint32_t * restrict
) dst
;
2068 __gen_field(values
->CommandType
, 29, 31) |
2069 __gen_field(values
->CommandSubType
, 27, 28) |
2070 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2071 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2072 __gen_field(values
->DwordLength
, 0, 7) |
2076 __gen_field(values
->PixelLocation
, 4, 4) |
2077 __gen_field(values
->NumberofMultisamples
, 1, 3) |
2081 __gen_field(values
->Sample3XOffset
* (1 << 4), 28, 31) |
2082 __gen_field(values
->Sample3YOffset
* (1 << 4), 24, 27) |
2083 __gen_field(values
->Sample2XOffset
* (1 << 4), 20, 23) |
2084 __gen_field(values
->Sample2YOffset
* (1 << 4), 16, 19) |
2085 __gen_field(values
->Sample1XOffset
* (1 << 4), 12, 15) |
2086 __gen_field(values
->Sample1YOffset
* (1 << 4), 8, 11) |
2087 __gen_field(values
->Sample0XOffset
* (1 << 4), 4, 7) |
2088 __gen_field(values
->Sample0YOffset
* (1 << 4), 0, 3) |
2092 __gen_field(values
->Sample7XOffset
* (1 << 4), 28, 31) |
2093 __gen_field(values
->Sample7YOffset
* (1 << 4), 24, 27) |
2094 __gen_field(values
->Sample6XOffset
* (1 << 4), 20, 23) |
2095 __gen_field(values
->Sample6YOffset
* (1 << 4), 16, 19) |
2096 __gen_field(values
->Sample5XOffset
* (1 << 4), 12, 15) |
2097 __gen_field(values
->Sample5YOffset
* (1 << 4), 8, 11) |
2098 __gen_field(values
->Sample4XOffset
* (1 << 4), 4, 7) |
2099 __gen_field(values
->Sample4YOffset
* (1 << 4), 0, 3) |
2104 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
2105 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
2106 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_header \
2108 .CommandSubType = 3, \
2109 ._3DCommandOpcode = 1, \
2110 ._3DCommandSubOpcode = 6, \
2113 struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
{
2114 uint32_t CommandType
;
2115 uint32_t CommandSubType
;
2116 uint32_t _3DCommandOpcode
;
2117 uint32_t _3DCommandSubOpcode
;
2118 uint32_t DwordLength
;
2119 uint32_t PolygonStippleXOffset
;
2120 uint32_t PolygonStippleYOffset
;
2124 GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data
*data
, void * restrict dst
,
2125 const struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET
* restrict values
)
2127 uint32_t *dw
= (uint32_t * restrict
) dst
;
2130 __gen_field(values
->CommandType
, 29, 31) |
2131 __gen_field(values
->CommandSubType
, 27, 28) |
2132 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2133 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2134 __gen_field(values
->DwordLength
, 0, 7) |
2138 __gen_field(values
->PolygonStippleXOffset
, 8, 12) |
2139 __gen_field(values
->PolygonStippleYOffset
, 0, 4) |
2144 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
2145 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
2146 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_header\
2148 .CommandSubType = 3, \
2149 ._3DCommandOpcode = 1, \
2150 ._3DCommandSubOpcode = 7, \
2153 struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
{
2154 uint32_t CommandType
;
2155 uint32_t CommandSubType
;
2156 uint32_t _3DCommandOpcode
;
2157 uint32_t _3DCommandSubOpcode
;
2158 uint32_t DwordLength
;
2159 uint32_t PatternRow
;
2163 GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data
*data
, void * restrict dst
,
2164 const struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN
* restrict values
)
2166 uint32_t *dw
= (uint32_t * restrict
) dst
;
2169 __gen_field(values
->CommandType
, 29, 31) |
2170 __gen_field(values
->CommandSubType
, 27, 28) |
2171 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2172 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2173 __gen_field(values
->DwordLength
, 0, 7) |
2177 __gen_field(values
->PatternRow
, 0, 31) |
2182 #define GEN7_3DSTATE_PS_length 0x00000008
2183 #define GEN7_3DSTATE_PS_length_bias 0x00000002
2184 #define GEN7_3DSTATE_PS_header \
2186 .CommandSubType = 3, \
2187 ._3DCommandOpcode = 0, \
2188 ._3DCommandSubOpcode = 32, \
2191 struct GEN7_3DSTATE_PS
{
2192 uint32_t CommandType
;
2193 uint32_t CommandSubType
;
2194 uint32_t _3DCommandOpcode
;
2195 uint32_t _3DCommandSubOpcode
;
2196 uint32_t DwordLength
;
2197 uint32_t KernelStartPointer0
;
2200 uint32_t SingleProgramFlowSPF
;
2203 uint32_t VectorMaskEnableVME
;
2204 uint32_t SamplerCount
;
2207 uint32_t DenormalMode
;
2208 uint32_t BindingTableEntryCount
;
2211 uint32_t FloatingPointMode
;
2216 uint32_t RoundingMode
;
2217 uint32_t IllegalOpcodeExceptionEnable
;
2218 uint32_t MaskStackExceptionEnable
;
2219 uint32_t SoftwareExceptionEnable
;
2220 uint32_t ScratchSpaceBasePointer
;
2221 uint32_t PerThreadScratchSpace
;
2222 uint32_t MaximumNumberofThreads
;
2223 uint32_t PushConstantEnable
;
2224 uint32_t AttributeEnable
;
2225 uint32_t oMaskPresenttoRenderTarget
;
2226 uint32_t RenderTargetFastClearEnable
;
2227 uint32_t DualSourceBlendEnable
;
2228 uint32_t RenderTargetResolveEnable
;
2229 #define POSOFFSET_NONE 0
2230 #define POSOFFSET_CENTROID 2
2231 #define POSOFFSET_SAMPLE 3
2232 uint32_t PositionXYOffsetSelect
;
2233 uint32_t _32PixelDispatchEnable
;
2234 uint32_t _16PixelDispatchEnable
;
2235 uint32_t _8PixelDispatchEnable
;
2236 uint32_t DispatchGRFStartRegisterforConstantSetupData0
;
2237 uint32_t DispatchGRFStartRegisterforConstantSetupData1
;
2238 uint32_t DispatchGRFStartRegisterforConstantSetupData2
;
2239 uint32_t KernelStartPointer1
;
2240 uint32_t KernelStartPointer2
;
2244 GEN7_3DSTATE_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2245 const struct GEN7_3DSTATE_PS
* restrict values
)
2247 uint32_t *dw
= (uint32_t * restrict
) dst
;
2250 __gen_field(values
->CommandType
, 29, 31) |
2251 __gen_field(values
->CommandSubType
, 27, 28) |
2252 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2253 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2254 __gen_field(values
->DwordLength
, 0, 7) |
2258 __gen_offset(values
->KernelStartPointer0
, 6, 31) |
2262 __gen_field(values
->SingleProgramFlowSPF
, 31, 31) |
2263 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
2264 __gen_field(values
->SamplerCount
, 27, 29) |
2265 __gen_field(values
->DenormalMode
, 26, 26) |
2266 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
2267 __gen_field(values
->FloatingPointMode
, 16, 16) |
2268 __gen_field(values
->RoundingMode
, 14, 15) |
2269 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
2270 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
2271 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
2275 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
2276 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
2280 __gen_field(values
->MaximumNumberofThreads
, 24, 31) |
2281 __gen_field(values
->PushConstantEnable
, 11, 11) |
2282 __gen_field(values
->AttributeEnable
, 10, 10) |
2283 __gen_field(values
->oMaskPresenttoRenderTarget
, 9, 9) |
2284 __gen_field(values
->RenderTargetFastClearEnable
, 8, 8) |
2285 __gen_field(values
->DualSourceBlendEnable
, 7, 7) |
2286 __gen_field(values
->RenderTargetResolveEnable
, 6, 6) |
2287 __gen_field(values
->PositionXYOffsetSelect
, 3, 4) |
2288 __gen_field(values
->_32PixelDispatchEnable
, 2, 2) |
2289 __gen_field(values
->_16PixelDispatchEnable
, 1, 1) |
2290 __gen_field(values
->_8PixelDispatchEnable
, 0, 0) |
2294 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData0
, 16, 22) |
2295 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData1
, 8, 14) |
2296 __gen_field(values
->DispatchGRFStartRegisterforConstantSetupData2
, 0, 6) |
2300 __gen_offset(values
->KernelStartPointer1
, 6, 31) |
2304 __gen_offset(values
->KernelStartPointer2
, 6, 31) |
2309 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
2310 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
2311 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
2313 .CommandSubType = 3, \
2314 ._3DCommandOpcode = 1, \
2315 ._3DCommandSubOpcode = 20, \
2318 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
{
2319 uint32_t CommandType
;
2320 uint32_t CommandSubType
;
2321 uint32_t _3DCommandOpcode
;
2322 uint32_t _3DCommandSubOpcode
;
2323 uint32_t DwordLength
;
2325 uint32_t ConstantBufferOffset
;
2327 uint32_t ConstantBufferSize
;
2331 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2332 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
* restrict values
)
2334 uint32_t *dw
= (uint32_t * restrict
) dst
;
2337 __gen_field(values
->CommandType
, 29, 31) |
2338 __gen_field(values
->CommandSubType
, 27, 28) |
2339 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2340 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2341 __gen_field(values
->DwordLength
, 0, 7) |
2345 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2346 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2351 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
2352 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
2353 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
2355 .CommandSubType = 3, \
2356 ._3DCommandOpcode = 1, \
2357 ._3DCommandSubOpcode = 21, \
2360 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
{
2361 uint32_t CommandType
;
2362 uint32_t CommandSubType
;
2363 uint32_t _3DCommandOpcode
;
2364 uint32_t _3DCommandSubOpcode
;
2365 uint32_t DwordLength
;
2367 uint32_t ConstantBufferOffset
;
2369 uint32_t ConstantBufferSize
;
2373 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2374 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
* restrict values
)
2376 uint32_t *dw
= (uint32_t * restrict
) dst
;
2379 __gen_field(values
->CommandType
, 29, 31) |
2380 __gen_field(values
->CommandSubType
, 27, 28) |
2381 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2382 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2383 __gen_field(values
->DwordLength
, 0, 7) |
2387 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2388 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2393 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
2394 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
2395 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
2397 .CommandSubType = 3, \
2398 ._3DCommandOpcode = 1, \
2399 ._3DCommandSubOpcode = 19, \
2402 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
{
2403 uint32_t CommandType
;
2404 uint32_t CommandSubType
;
2405 uint32_t _3DCommandOpcode
;
2406 uint32_t _3DCommandSubOpcode
;
2407 uint32_t DwordLength
;
2409 uint32_t ConstantBufferOffset
;
2411 uint32_t ConstantBufferSize
;
2415 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2416 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
* restrict values
)
2418 uint32_t *dw
= (uint32_t * restrict
) dst
;
2421 __gen_field(values
->CommandType
, 29, 31) |
2422 __gen_field(values
->CommandSubType
, 27, 28) |
2423 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2424 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2425 __gen_field(values
->DwordLength
, 0, 7) |
2429 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2430 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2435 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
2436 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
2437 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
2439 .CommandSubType = 3, \
2440 ._3DCommandOpcode = 1, \
2441 ._3DCommandSubOpcode = 22, \
2444 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
{
2445 uint32_t CommandType
;
2446 uint32_t CommandSubType
;
2447 uint32_t _3DCommandOpcode
;
2448 uint32_t _3DCommandSubOpcode
;
2449 uint32_t DwordLength
;
2451 uint32_t ConstantBufferOffset
;
2453 uint32_t ConstantBufferSize
;
2457 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2458 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
* restrict values
)
2460 uint32_t *dw
= (uint32_t * restrict
) dst
;
2463 __gen_field(values
->CommandType
, 29, 31) |
2464 __gen_field(values
->CommandSubType
, 27, 28) |
2465 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2466 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2467 __gen_field(values
->DwordLength
, 0, 7) |
2471 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2472 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2477 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
2478 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
2479 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
2481 .CommandSubType = 3, \
2482 ._3DCommandOpcode = 1, \
2483 ._3DCommandSubOpcode = 18, \
2486 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
{
2487 uint32_t CommandType
;
2488 uint32_t CommandSubType
;
2489 uint32_t _3DCommandOpcode
;
2490 uint32_t _3DCommandSubOpcode
;
2491 uint32_t DwordLength
;
2493 uint32_t ConstantBufferOffset
;
2495 uint32_t ConstantBufferSize
;
2499 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2500 const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
* restrict values
)
2502 uint32_t *dw
= (uint32_t * restrict
) dst
;
2505 __gen_field(values
->CommandType
, 29, 31) |
2506 __gen_field(values
->CommandSubType
, 27, 28) |
2507 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2508 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2509 __gen_field(values
->DwordLength
, 0, 7) |
2513 __gen_field(values
->ConstantBufferOffset
, 16, 19) |
2514 __gen_field(values
->ConstantBufferSize
, 0, 4) |
2519 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length_bias 0x00000002
2520 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_header\
2522 .CommandSubType = 3, \
2523 ._3DCommandOpcode = 1, \
2524 ._3DCommandSubOpcode = 2
2526 struct GEN7_PALETTE_ENTRY
{
2534 GEN7_PALETTE_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
2535 const struct GEN7_PALETTE_ENTRY
* restrict values
)
2537 uint32_t *dw
= (uint32_t * restrict
) dst
;
2540 __gen_field(values
->Alpha
, 24, 31) |
2541 __gen_field(values
->Red
, 16, 23) |
2542 __gen_field(values
->Green
, 8, 15) |
2543 __gen_field(values
->Blue
, 0, 7) |
2548 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
{
2549 uint32_t CommandType
;
2550 uint32_t CommandSubType
;
2551 uint32_t _3DCommandOpcode
;
2552 uint32_t _3DCommandSubOpcode
;
2553 uint32_t DwordLength
;
2554 /* variable length fields follow */
2558 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data
*data
, void * restrict dst
,
2559 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0
* restrict values
)
2561 uint32_t *dw
= (uint32_t * restrict
) dst
;
2564 __gen_field(values
->CommandType
, 29, 31) |
2565 __gen_field(values
->CommandSubType
, 27, 28) |
2566 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2567 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2568 __gen_field(values
->DwordLength
, 0, 7) |
2571 /* variable length fields follow */
2574 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length_bias 0x00000002
2575 #define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_header\
2577 .CommandSubType = 3, \
2578 ._3DCommandOpcode = 1, \
2579 ._3DCommandSubOpcode = 12
2581 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
{
2582 uint32_t CommandType
;
2583 uint32_t CommandSubType
;
2584 uint32_t _3DCommandOpcode
;
2585 uint32_t _3DCommandSubOpcode
;
2586 uint32_t DwordLength
;
2587 /* variable length fields follow */
2591 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data
*data
, void * restrict dst
,
2592 const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1
* restrict values
)
2594 uint32_t *dw
= (uint32_t * restrict
) dst
;
2597 __gen_field(values
->CommandType
, 29, 31) |
2598 __gen_field(values
->CommandSubType
, 27, 28) |
2599 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2600 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2601 __gen_field(values
->DwordLength
, 0, 7) |
2604 /* variable length fields follow */
2607 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
2608 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
2609 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
2611 .CommandSubType = 3, \
2612 ._3DCommandOpcode = 0, \
2613 ._3DCommandSubOpcode = 45, \
2616 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
{
2617 uint32_t CommandType
;
2618 uint32_t CommandSubType
;
2619 uint32_t _3DCommandOpcode
;
2620 uint32_t _3DCommandSubOpcode
;
2621 uint32_t DwordLength
;
2622 uint32_t PointertoDSSamplerState
;
2626 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data
*data
, void * restrict dst
,
2627 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
* restrict values
)
2629 uint32_t *dw
= (uint32_t * restrict
) dst
;
2632 __gen_field(values
->CommandType
, 29, 31) |
2633 __gen_field(values
->CommandSubType
, 27, 28) |
2634 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2635 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2636 __gen_field(values
->DwordLength
, 0, 7) |
2640 __gen_offset(values
->PointertoDSSamplerState
, 5, 31) |
2645 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
2646 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
2647 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
2649 .CommandSubType = 3, \
2650 ._3DCommandOpcode = 0, \
2651 ._3DCommandSubOpcode = 46, \
2654 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
{
2655 uint32_t CommandType
;
2656 uint32_t CommandSubType
;
2657 uint32_t _3DCommandOpcode
;
2658 uint32_t _3DCommandSubOpcode
;
2659 uint32_t DwordLength
;
2660 uint32_t PointertoGSSamplerState
;
2664 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data
*data
, void * restrict dst
,
2665 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
* restrict values
)
2667 uint32_t *dw
= (uint32_t * restrict
) dst
;
2670 __gen_field(values
->CommandType
, 29, 31) |
2671 __gen_field(values
->CommandSubType
, 27, 28) |
2672 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2673 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2674 __gen_field(values
->DwordLength
, 0, 7) |
2678 __gen_offset(values
->PointertoGSSamplerState
, 5, 31) |
2683 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
2684 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
2685 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
2687 .CommandSubType = 3, \
2688 ._3DCommandOpcode = 0, \
2689 ._3DCommandSubOpcode = 44, \
2692 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
{
2693 uint32_t CommandType
;
2694 uint32_t CommandSubType
;
2695 uint32_t _3DCommandOpcode
;
2696 uint32_t _3DCommandSubOpcode
;
2697 uint32_t DwordLength
;
2698 uint32_t PointertoHSSamplerState
;
2702 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data
*data
, void * restrict dst
,
2703 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
* restrict values
)
2705 uint32_t *dw
= (uint32_t * restrict
) dst
;
2708 __gen_field(values
->CommandType
, 29, 31) |
2709 __gen_field(values
->CommandSubType
, 27, 28) |
2710 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2711 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2712 __gen_field(values
->DwordLength
, 0, 7) |
2716 __gen_offset(values
->PointertoHSSamplerState
, 5, 31) |
2721 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
2722 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
2723 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
2725 .CommandSubType = 3, \
2726 ._3DCommandOpcode = 0, \
2727 ._3DCommandSubOpcode = 47, \
2730 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
{
2731 uint32_t CommandType
;
2732 uint32_t CommandSubType
;
2733 uint32_t _3DCommandOpcode
;
2734 uint32_t _3DCommandSubOpcode
;
2735 uint32_t DwordLength
;
2736 uint32_t PointertoPSSamplerState
;
2740 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data
*data
, void * restrict dst
,
2741 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
* restrict values
)
2743 uint32_t *dw
= (uint32_t * restrict
) dst
;
2746 __gen_field(values
->CommandType
, 29, 31) |
2747 __gen_field(values
->CommandSubType
, 27, 28) |
2748 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2749 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2750 __gen_field(values
->DwordLength
, 0, 7) |
2754 __gen_offset(values
->PointertoPSSamplerState
, 5, 31) |
2759 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
2760 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
2761 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
2763 .CommandSubType = 3, \
2764 ._3DCommandOpcode = 0, \
2765 ._3DCommandSubOpcode = 43, \
2768 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
{
2769 uint32_t CommandType
;
2770 uint32_t CommandSubType
;
2771 uint32_t _3DCommandOpcode
;
2772 uint32_t _3DCommandSubOpcode
;
2773 uint32_t DwordLength
;
2774 uint32_t PointertoVSSamplerState
;
2778 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data
*data
, void * restrict dst
,
2779 const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
* restrict values
)
2781 uint32_t *dw
= (uint32_t * restrict
) dst
;
2784 __gen_field(values
->CommandType
, 29, 31) |
2785 __gen_field(values
->CommandSubType
, 27, 28) |
2786 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2787 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2788 __gen_field(values
->DwordLength
, 0, 7) |
2792 __gen_offset(values
->PointertoVSSamplerState
, 5, 31) |
2797 #define GEN7_3DSTATE_SAMPLE_MASK_length 0x00000002
2798 #define GEN7_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
2799 #define GEN7_3DSTATE_SAMPLE_MASK_header \
2801 .CommandSubType = 3, \
2802 ._3DCommandOpcode = 0, \
2803 ._3DCommandSubOpcode = 24, \
2806 struct GEN7_3DSTATE_SAMPLE_MASK
{
2807 uint32_t CommandType
;
2808 uint32_t CommandSubType
;
2809 uint32_t _3DCommandOpcode
;
2810 uint32_t _3DCommandSubOpcode
;
2811 uint32_t DwordLength
;
2812 uint32_t SampleMask
;
2816 GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data
*data
, void * restrict dst
,
2817 const struct GEN7_3DSTATE_SAMPLE_MASK
* restrict values
)
2819 uint32_t *dw
= (uint32_t * restrict
) dst
;
2822 __gen_field(values
->CommandType
, 29, 31) |
2823 __gen_field(values
->CommandSubType
, 27, 28) |
2824 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2825 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2826 __gen_field(values
->DwordLength
, 0, 7) |
2830 __gen_field(values
->SampleMask
, 0, 7) |
2835 #define GEN7_3DSTATE_SBE_length 0x0000000e
2836 #define GEN7_3DSTATE_SBE_length_bias 0x00000002
2837 #define GEN7_3DSTATE_SBE_header \
2839 .CommandSubType = 3, \
2840 ._3DCommandOpcode = 0, \
2841 ._3DCommandSubOpcode = 31, \
2844 struct GEN7_3DSTATE_SBE
{
2845 uint32_t CommandType
;
2846 uint32_t CommandSubType
;
2847 uint32_t _3DCommandOpcode
;
2848 uint32_t _3DCommandSubOpcode
;
2849 uint32_t DwordLength
;
2851 #define SWIZ_16_31 1
2852 uint32_t AttributeSwizzleControlMode
;
2853 uint32_t NumberofSFOutputAttributes
;
2854 uint32_t AttributeSwizzleEnable
;
2857 uint32_t PointSpriteTextureCoordinateOrigin
;
2858 uint32_t VertexURBEntryReadLength
;
2859 uint32_t VertexURBEntryReadOffset
;
2860 uint32_t Attribute2n1ComponentOverrideW
;
2861 uint32_t Attribute2n1ComponentOverrideZ
;
2862 uint32_t Attribute2n1ComponentOverrideY
;
2863 uint32_t Attribute2n1ComponentOverrideX
;
2864 #define CONST_0000 0
2865 #define CONST_0001_FLOAT 1
2866 #define CONST_1111_FLOAT 2
2868 uint32_t Attribute2n1ConstantSource
;
2870 #define INPUTATTR_FACING 1
2871 #define INPUTATTR_W 2
2872 #define INPUTATTR_FACING_W 3
2873 uint32_t Attribute2n1SwizzleSelect
;
2874 uint32_t Attribute2n1SourceAttribute
;
2875 uint32_t Attribute2nComponentOverrideW
;
2876 uint32_t Attribute2nComponentOverrideZ
;
2877 uint32_t Attribute2nComponentOverrideY
;
2878 uint32_t Attribute2nComponentOverrideX
;
2879 #define CONST_0000 0
2880 #define CONST_0001_FLOAT 1
2881 #define CONST_1111_FLOAT 2
2883 uint32_t Attribute2nConstantSource
;
2885 #define INPUTATTR_FACING 1
2886 #define INPUTATTR_W 2
2887 #define INPUTATTR_FACING_W 3
2888 uint32_t Attribute2nSwizzleSelect
;
2889 uint32_t Attribute2nSourceAttribute
;
2890 uint32_t PointSpriteTextureCoordinateEnable
;
2891 uint32_t ConstantInterpolationEnable310
;
2892 uint32_t Attribute7WrapShortestEnables
;
2893 uint32_t Attribute6WrapShortestEnables
;
2894 uint32_t Attribute5WrapShortestEnables
;
2895 uint32_t Attribute4WrapShortestEnables
;
2896 uint32_t Attribute3WrapShortestEnables
;
2897 uint32_t Attribute2WrapShortestEnables
;
2898 uint32_t Attribute1WrapShortestEnables
;
2899 uint32_t Attribute0WrapShortestEnables
;
2900 uint32_t Attribute15WrapShortestEnables
;
2901 uint32_t Attribute14WrapShortestEnables
;
2902 uint32_t Attribute13WrapShortestEnables
;
2903 uint32_t Attribute12WrapShortestEnables
;
2904 uint32_t Attribute11WrapShortestEnables
;
2905 uint32_t Attribute10WrapShortestEnables
;
2906 uint32_t Attribute9WrapShortestEnables
;
2907 uint32_t Attribute8WrapShortestEnables
;
2911 GEN7_3DSTATE_SBE_pack(__gen_user_data
*data
, void * restrict dst
,
2912 const struct GEN7_3DSTATE_SBE
* restrict values
)
2914 uint32_t *dw
= (uint32_t * restrict
) dst
;
2917 __gen_field(values
->CommandType
, 29, 31) |
2918 __gen_field(values
->CommandSubType
, 27, 28) |
2919 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
2920 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
2921 __gen_field(values
->DwordLength
, 0, 7) |
2925 __gen_field(values
->AttributeSwizzleControlMode
, 28, 28) |
2926 __gen_field(values
->NumberofSFOutputAttributes
, 22, 27) |
2927 __gen_field(values
->AttributeSwizzleEnable
, 21, 21) |
2928 __gen_field(values
->PointSpriteTextureCoordinateOrigin
, 20, 20) |
2929 __gen_field(values
->VertexURBEntryReadLength
, 11, 15) |
2930 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
2934 __gen_field(values
->Attribute2n1ComponentOverrideW
, 31, 31) |
2935 __gen_field(values
->Attribute2n1ComponentOverrideZ
, 30, 30) |
2936 __gen_field(values
->Attribute2n1ComponentOverrideY
, 29, 29) |
2937 __gen_field(values
->Attribute2n1ComponentOverrideX
, 28, 28) |
2938 __gen_field(values
->Attribute2n1ConstantSource
, 25, 26) |
2939 __gen_field(values
->Attribute2n1SwizzleSelect
, 22, 23) |
2940 __gen_field(values
->Attribute2n1SourceAttribute
, 16, 20) |
2941 __gen_field(values
->Attribute2nComponentOverrideW
, 15, 15) |
2942 __gen_field(values
->Attribute2nComponentOverrideZ
, 14, 14) |
2943 __gen_field(values
->Attribute2nComponentOverrideY
, 13, 13) |
2944 __gen_field(values
->Attribute2nComponentOverrideX
, 12, 12) |
2945 __gen_field(values
->Attribute2nConstantSource
, 9, 10) |
2946 __gen_field(values
->Attribute2nSwizzleSelect
, 6, 7) |
2947 __gen_field(values
->Attribute2nSourceAttribute
, 0, 4) |
2951 __gen_field(values
->PointSpriteTextureCoordinateEnable
, 0, 31) |
2955 __gen_field(values
->ConstantInterpolationEnable310
, 0, 31) |
2959 __gen_field(values
->Attribute7WrapShortestEnables
, 28, 31) |
2960 __gen_field(values
->Attribute6WrapShortestEnables
, 24, 27) |
2961 __gen_field(values
->Attribute5WrapShortestEnables
, 20, 23) |
2962 __gen_field(values
->Attribute4WrapShortestEnables
, 16, 19) |
2963 __gen_field(values
->Attribute3WrapShortestEnables
, 12, 15) |
2964 __gen_field(values
->Attribute2WrapShortestEnables
, 8, 11) |
2965 __gen_field(values
->Attribute1WrapShortestEnables
, 4, 7) |
2966 __gen_field(values
->Attribute0WrapShortestEnables
, 0, 3) |
2970 __gen_field(values
->Attribute15WrapShortestEnables
, 28, 31) |
2971 __gen_field(values
->Attribute14WrapShortestEnables
, 24, 27) |
2972 __gen_field(values
->Attribute13WrapShortestEnables
, 20, 23) |
2973 __gen_field(values
->Attribute12WrapShortestEnables
, 16, 19) |
2974 __gen_field(values
->Attribute11WrapShortestEnables
, 12, 15) |
2975 __gen_field(values
->Attribute10WrapShortestEnables
, 8, 11) |
2976 __gen_field(values
->Attribute9WrapShortestEnables
, 4, 7) |
2977 __gen_field(values
->Attribute8WrapShortestEnables
, 0, 3) |
2982 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
2983 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
2984 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_header\
2986 .CommandSubType = 3, \
2987 ._3DCommandOpcode = 0, \
2988 ._3DCommandSubOpcode = 15, \
2991 struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
{
2992 uint32_t CommandType
;
2993 uint32_t CommandSubType
;
2994 uint32_t _3DCommandOpcode
;
2995 uint32_t _3DCommandSubOpcode
;
2996 uint32_t DwordLength
;
2997 uint32_t ScissorRectPointer
;
3001 GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data
*data
, void * restrict dst
,
3002 const struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS
* restrict values
)
3004 uint32_t *dw
= (uint32_t * restrict
) dst
;
3007 __gen_field(values
->CommandType
, 29, 31) |
3008 __gen_field(values
->CommandSubType
, 27, 28) |
3009 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3010 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3011 __gen_field(values
->DwordLength
, 0, 7) |
3015 __gen_offset(values
->ScissorRectPointer
, 5, 31) |
3020 #define GEN7_3DSTATE_SF_length 0x00000007
3021 #define GEN7_3DSTATE_SF_length_bias 0x00000002
3022 #define GEN7_3DSTATE_SF_header \
3024 .CommandSubType = 3, \
3025 ._3DCommandOpcode = 0, \
3026 ._3DCommandSubOpcode = 19, \
3029 struct GEN7_3DSTATE_SF
{
3030 uint32_t CommandType
;
3031 uint32_t CommandSubType
;
3032 uint32_t _3DCommandOpcode
;
3033 uint32_t _3DCommandSubOpcode
;
3034 uint32_t DwordLength
;
3035 #define D32_FLOAT_S8X24_UINT 0
3037 #define D24_UNORM_S8_UINT 2
3038 #define D24_UNORM_X8_UINT 3
3040 uint32_t DepthBufferSurfaceFormat
;
3041 uint32_t LegacyGlobalDepthBiasEnable
;
3042 uint32_t StatisticsEnable
;
3043 uint32_t GlobalDepthOffsetEnableSolid
;
3044 uint32_t GlobalDepthOffsetEnableWireframe
;
3045 uint32_t GlobalDepthOffsetEnablePoint
;
3046 #define RASTER_SOLID 0
3047 #define RASTER_WIREFRAME 1
3048 #define RASTER_POINT 2
3049 uint32_t FrontFaceFillMode
;
3050 #define RASTER_SOLID 0
3051 #define RASTER_WIREFRAME 1
3052 #define RASTER_POINT 2
3053 uint32_t BackFaceFillMode
;
3054 uint32_t ViewTransformEnable
;
3055 uint32_t FrontWinding
;
3056 uint32_t AntiAliasingEnable
;
3057 #define CULLMODE_BOTH 0
3058 #define CULLMODE_NONE 1
3059 #define CULLMODE_FRONT 2
3060 #define CULLMODE_BACK 3
3063 uint32_t LineEndCapAntialiasingRegionWidth
;
3064 uint32_t ScissorRectangleEnable
;
3065 uint32_t MultisampleRasterizationMode
;
3066 uint32_t LastPixelEnable
;
3070 uint32_t TriangleStripListProvokingVertexSelect
;
3071 uint32_t LineStripListProvokingVertexSelect
;
3075 uint32_t TriangleFanProvokingVertexSelect
;
3076 #define AALINEDISTANCE_TRUE 1
3077 uint32_t AALineDistanceMode
;
3078 uint32_t VertexSubPixelPrecisionSelect
;
3079 uint32_t UsePointWidthState
;
3081 uint32_t GlobalDepthOffsetConstant
;
3082 uint32_t GlobalDepthOffsetScale
;
3083 uint32_t GlobalDepthOffsetClamp
;
3087 GEN7_3DSTATE_SF_pack(__gen_user_data
*data
, void * restrict dst
,
3088 const struct GEN7_3DSTATE_SF
* restrict values
)
3090 uint32_t *dw
= (uint32_t * restrict
) dst
;
3093 __gen_field(values
->CommandType
, 29, 31) |
3094 __gen_field(values
->CommandSubType
, 27, 28) |
3095 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3096 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3097 __gen_field(values
->DwordLength
, 0, 7) |
3101 __gen_field(values
->DepthBufferSurfaceFormat
, 12, 14) |
3102 __gen_field(values
->LegacyGlobalDepthBiasEnable
, 11, 11) |
3103 __gen_field(values
->StatisticsEnable
, 10, 10) |
3104 __gen_field(values
->GlobalDepthOffsetEnableSolid
, 9, 9) |
3105 __gen_field(values
->GlobalDepthOffsetEnableWireframe
, 8, 8) |
3106 __gen_field(values
->GlobalDepthOffsetEnablePoint
, 7, 7) |
3107 __gen_field(values
->FrontFaceFillMode
, 5, 6) |
3108 __gen_field(values
->BackFaceFillMode
, 3, 4) |
3109 __gen_field(values
->ViewTransformEnable
, 1, 1) |
3110 __gen_field(values
->FrontWinding
, 0, 0) |
3114 __gen_field(values
->AntiAliasingEnable
, 31, 31) |
3115 __gen_field(values
->CullMode
, 29, 30) |
3116 __gen_field(values
->LineWidth
* (1 << 7), 18, 27) |
3117 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 16, 17) |
3118 __gen_field(values
->ScissorRectangleEnable
, 11, 11) |
3119 __gen_field(values
->MultisampleRasterizationMode
, 8, 9) |
3123 __gen_field(values
->LastPixelEnable
, 31, 31) |
3124 __gen_field(values
->TriangleStripListProvokingVertexSelect
, 29, 30) |
3125 __gen_field(values
->LineStripListProvokingVertexSelect
, 27, 28) |
3126 __gen_field(values
->TriangleFanProvokingVertexSelect
, 25, 26) |
3127 __gen_field(values
->AALineDistanceMode
, 14, 14) |
3128 __gen_field(values
->VertexSubPixelPrecisionSelect
, 12, 12) |
3129 __gen_field(values
->UsePointWidthState
, 11, 11) |
3130 __gen_field(values
->PointWidth
* (1 << 3), 0, 10) |
3134 __gen_field(values
->GlobalDepthOffsetConstant
, 0, 31) |
3138 __gen_field(values
->GlobalDepthOffsetScale
, 0, 31) |
3142 __gen_field(values
->GlobalDepthOffsetClamp
, 0, 31) |
3147 #define GEN7_3DSTATE_SO_BUFFER_length 0x00000004
3148 #define GEN7_3DSTATE_SO_BUFFER_length_bias 0x00000002
3149 #define GEN7_3DSTATE_SO_BUFFER_header \
3151 .CommandSubType = 3, \
3152 ._3DCommandOpcode = 1, \
3153 ._3DCommandSubOpcode = 24, \
3156 struct GEN7_3DSTATE_SO_BUFFER
{
3157 uint32_t CommandType
;
3158 uint32_t CommandSubType
;
3159 uint32_t _3DCommandOpcode
;
3160 uint32_t _3DCommandSubOpcode
;
3161 uint32_t DwordLength
;
3162 uint32_t SOBufferIndex
;
3163 struct GEN7_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState
;
3164 uint32_t SurfacePitch
;
3165 __gen_address_type SurfaceBaseAddress
;
3166 __gen_address_type SurfaceEndAddress
;
3170 GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3171 const struct GEN7_3DSTATE_SO_BUFFER
* restrict values
)
3173 uint32_t *dw
= (uint32_t * restrict
) dst
;
3176 __gen_field(values
->CommandType
, 29, 31) |
3177 __gen_field(values
->CommandSubType
, 27, 28) |
3178 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3179 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3180 __gen_field(values
->DwordLength
, 0, 7) |
3183 uint32_t dw_SOBufferObjectControlState
;
3184 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_SOBufferObjectControlState
, &values
->SOBufferObjectControlState
);
3186 __gen_field(values
->SOBufferIndex
, 29, 30) |
3187 __gen_field(dw_SOBufferObjectControlState
, 25, 28) |
3188 __gen_field(values
->SurfacePitch
, 0, 11) |
3195 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3201 __gen_combine_address(data
, &dw
[3], values
->SurfaceEndAddress
, dw3
);
3205 #define GEN7_3DSTATE_SO_DECL_LIST_length_bias 0x00000002
3206 #define GEN7_3DSTATE_SO_DECL_LIST_header \
3208 .CommandSubType = 3, \
3209 ._3DCommandOpcode = 1, \
3210 ._3DCommandSubOpcode = 23
3212 struct GEN7_SO_DECL
{
3213 uint32_t OutputBufferSlot
;
3215 uint32_t RegisterIndex
;
3216 uint32_t ComponentMask
;
3220 GEN7_SO_DECL_pack(__gen_user_data
*data
, void * restrict dst
,
3221 const struct GEN7_SO_DECL
* restrict values
)
3223 uint32_t *dw
= (uint32_t * restrict
) dst
;
3226 __gen_field(values
->OutputBufferSlot
, 12, 13) |
3227 __gen_field(values
->HoleFlag
, 11, 11) |
3228 __gen_field(values
->RegisterIndex
, 4, 9) |
3229 __gen_field(values
->ComponentMask
, 0, 3) |
3234 struct GEN7_SO_DECL_ENTRY
{
3235 struct GEN7_SO_DECL Stream3Decl
;
3236 struct GEN7_SO_DECL Stream2Decl
;
3237 struct GEN7_SO_DECL Stream1Decl
;
3238 struct GEN7_SO_DECL Stream0Decl
;
3242 GEN7_SO_DECL_ENTRY_pack(__gen_user_data
*data
, void * restrict dst
,
3243 const struct GEN7_SO_DECL_ENTRY
* restrict values
)
3245 uint32_t *dw
= (uint32_t * restrict
) dst
;
3247 uint32_t dw_Stream3Decl
;
3248 GEN7_SO_DECL_pack(data
, &dw_Stream3Decl
, &values
->Stream3Decl
);
3249 uint32_t dw_Stream2Decl
;
3250 GEN7_SO_DECL_pack(data
, &dw_Stream2Decl
, &values
->Stream2Decl
);
3251 uint32_t dw_Stream1Decl
;
3252 GEN7_SO_DECL_pack(data
, &dw_Stream1Decl
, &values
->Stream1Decl
);
3253 uint32_t dw_Stream0Decl
;
3254 GEN7_SO_DECL_pack(data
, &dw_Stream0Decl
, &values
->Stream0Decl
);
3256 __gen_field(dw_Stream3Decl
, 48, 63) |
3257 __gen_field(dw_Stream2Decl
, 32, 47) |
3258 __gen_field(dw_Stream1Decl
, 16, 31) |
3259 __gen_field(dw_Stream0Decl
, 0, 15) |
3267 struct GEN7_3DSTATE_SO_DECL_LIST
{
3268 uint32_t CommandType
;
3269 uint32_t CommandSubType
;
3270 uint32_t _3DCommandOpcode
;
3271 uint32_t _3DCommandSubOpcode
;
3272 uint32_t DwordLength
;
3273 uint32_t StreamtoBufferSelects3
;
3274 uint32_t StreamtoBufferSelects2
;
3275 uint32_t StreamtoBufferSelects1
;
3276 uint32_t StreamtoBufferSelects0
;
3277 uint32_t NumEntries3
;
3278 uint32_t NumEntries2
;
3279 uint32_t NumEntries1
;
3280 uint32_t NumEntries0
;
3281 /* variable length fields follow */
3285 GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data
*data
, void * restrict dst
,
3286 const struct GEN7_3DSTATE_SO_DECL_LIST
* restrict values
)
3288 uint32_t *dw
= (uint32_t * restrict
) dst
;
3291 __gen_field(values
->CommandType
, 29, 31) |
3292 __gen_field(values
->CommandSubType
, 27, 28) |
3293 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3294 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3295 __gen_field(values
->DwordLength
, 0, 8) |
3299 __gen_field(values
->StreamtoBufferSelects3
, 12, 15) |
3300 __gen_field(values
->StreamtoBufferSelects2
, 8, 11) |
3301 __gen_field(values
->StreamtoBufferSelects1
, 4, 7) |
3302 __gen_field(values
->StreamtoBufferSelects0
, 0, 3) |
3306 __gen_field(values
->NumEntries3
, 24, 31) |
3307 __gen_field(values
->NumEntries2
, 16, 23) |
3308 __gen_field(values
->NumEntries1
, 8, 15) |
3309 __gen_field(values
->NumEntries0
, 0, 7) |
3312 /* variable length fields follow */
3315 #define GEN7_3DSTATE_STENCIL_BUFFER_length 0x00000003
3316 #define GEN7_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
3317 #define GEN7_3DSTATE_STENCIL_BUFFER_header \
3319 .CommandSubType = 3, \
3320 ._3DCommandOpcode = 0, \
3321 ._3DCommandSubOpcode = 6, \
3324 struct GEN7_3DSTATE_STENCIL_BUFFER
{
3325 uint32_t CommandType
;
3326 uint32_t CommandSubType
;
3327 uint32_t _3DCommandOpcode
;
3328 uint32_t _3DCommandSubOpcode
;
3329 uint32_t DwordLength
;
3330 struct GEN7_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState
;
3331 uint32_t SurfacePitch
;
3332 __gen_address_type SurfaceBaseAddress
;
3336 GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data
*data
, void * restrict dst
,
3337 const struct GEN7_3DSTATE_STENCIL_BUFFER
* restrict values
)
3339 uint32_t *dw
= (uint32_t * restrict
) dst
;
3342 __gen_field(values
->CommandType
, 29, 31) |
3343 __gen_field(values
->CommandSubType
, 27, 28) |
3344 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3345 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3346 __gen_field(values
->DwordLength
, 0, 7) |
3349 uint32_t dw_StencilBufferObjectControlState
;
3350 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_StencilBufferObjectControlState
, &values
->StencilBufferObjectControlState
);
3352 __gen_field(dw_StencilBufferObjectControlState
, 25, 28) |
3353 __gen_field(values
->SurfacePitch
, 0, 16) |
3360 __gen_combine_address(data
, &dw
[2], values
->SurfaceBaseAddress
, dw2
);
3364 #define GEN7_3DSTATE_STREAMOUT_length 0x00000003
3365 #define GEN7_3DSTATE_STREAMOUT_length_bias 0x00000002
3366 #define GEN7_3DSTATE_STREAMOUT_header \
3368 .CommandSubType = 3, \
3369 ._3DCommandOpcode = 0, \
3370 ._3DCommandSubOpcode = 30, \
3373 struct GEN7_3DSTATE_STREAMOUT
{
3374 uint32_t CommandType
;
3375 uint32_t CommandSubType
;
3376 uint32_t _3DCommandOpcode
;
3377 uint32_t _3DCommandSubOpcode
;
3378 uint32_t DwordLength
;
3379 uint32_t SOFunctionEnable
;
3380 uint32_t RenderingDisable
;
3381 uint32_t RenderStreamSelect
;
3384 uint32_t ReorderMode
;
3385 uint32_t SOStatisticsEnable
;
3386 uint32_t SOBufferEnable3
;
3387 uint32_t SOBufferEnable2
;
3388 uint32_t SOBufferEnable1
;
3389 uint32_t SOBufferEnable0
;
3390 uint32_t Stream3VertexReadOffset
;
3391 uint32_t Stream3VertexReadLength
;
3392 uint32_t Stream2VertexReadOffset
;
3393 uint32_t Stream2VertexReadLength
;
3394 uint32_t Stream1VertexReadOffset
;
3395 uint32_t Stream1VertexReadLength
;
3396 uint32_t Stream0VertexReadOffset
;
3397 uint32_t Stream0VertexReadLength
;
3401 GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data
*data
, void * restrict dst
,
3402 const struct GEN7_3DSTATE_STREAMOUT
* restrict values
)
3404 uint32_t *dw
= (uint32_t * restrict
) dst
;
3407 __gen_field(values
->CommandType
, 29, 31) |
3408 __gen_field(values
->CommandSubType
, 27, 28) |
3409 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3410 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3411 __gen_field(values
->DwordLength
, 0, 7) |
3415 __gen_field(values
->SOFunctionEnable
, 31, 31) |
3416 __gen_field(values
->RenderingDisable
, 30, 30) |
3417 __gen_field(values
->RenderStreamSelect
, 27, 28) |
3418 __gen_field(values
->ReorderMode
, 26, 26) |
3419 __gen_field(values
->SOStatisticsEnable
, 25, 25) |
3420 __gen_field(values
->SOBufferEnable3
, 11, 11) |
3421 __gen_field(values
->SOBufferEnable2
, 10, 10) |
3422 __gen_field(values
->SOBufferEnable1
, 9, 9) |
3423 __gen_field(values
->SOBufferEnable0
, 8, 8) |
3427 __gen_field(values
->Stream3VertexReadOffset
, 29, 29) |
3428 __gen_field(values
->Stream3VertexReadLength
, 24, 28) |
3429 __gen_field(values
->Stream2VertexReadOffset
, 21, 21) |
3430 __gen_field(values
->Stream2VertexReadLength
, 16, 20) |
3431 __gen_field(values
->Stream1VertexReadOffset
, 13, 13) |
3432 __gen_field(values
->Stream1VertexReadLength
, 8, 12) |
3433 __gen_field(values
->Stream0VertexReadOffset
, 5, 5) |
3434 __gen_field(values
->Stream0VertexReadLength
, 0, 4) |
3439 #define GEN7_3DSTATE_TE_length 0x00000004
3440 #define GEN7_3DSTATE_TE_length_bias 0x00000002
3441 #define GEN7_3DSTATE_TE_header \
3443 .CommandSubType = 3, \
3444 ._3DCommandOpcode = 0, \
3445 ._3DCommandSubOpcode = 28, \
3448 struct GEN7_3DSTATE_TE
{
3449 uint32_t CommandType
;
3450 uint32_t CommandSubType
;
3451 uint32_t _3DCommandOpcode
;
3452 uint32_t _3DCommandSubOpcode
;
3453 uint32_t DwordLength
;
3455 #define ODD_FRACTIONAL 1
3456 #define EVEN_FRACTIONAL 2
3457 uint32_t Partitioning
;
3462 uint32_t OutputTopology
;
3471 float MaximumTessellationFactorOdd
;
3472 float MaximumTessellationFactorNotOdd
;
3476 GEN7_3DSTATE_TE_pack(__gen_user_data
*data
, void * restrict dst
,
3477 const struct GEN7_3DSTATE_TE
* restrict values
)
3479 uint32_t *dw
= (uint32_t * restrict
) dst
;
3482 __gen_field(values
->CommandType
, 29, 31) |
3483 __gen_field(values
->CommandSubType
, 27, 28) |
3484 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3485 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3486 __gen_field(values
->DwordLength
, 0, 7) |
3490 __gen_field(values
->Partitioning
, 12, 13) |
3491 __gen_field(values
->OutputTopology
, 8, 9) |
3492 __gen_field(values
->TEDomain
, 4, 5) |
3493 __gen_field(values
->TEMode
, 1, 2) |
3494 __gen_field(values
->TEEnable
, 0, 0) |
3498 __gen_float(values
->MaximumTessellationFactorOdd
) |
3502 __gen_float(values
->MaximumTessellationFactorNotOdd
) |
3507 #define GEN7_3DSTATE_URB_DS_length 0x00000002
3508 #define GEN7_3DSTATE_URB_DS_length_bias 0x00000002
3509 #define GEN7_3DSTATE_URB_DS_header \
3511 .CommandSubType = 3, \
3512 ._3DCommandOpcode = 0, \
3513 ._3DCommandSubOpcode = 50, \
3516 struct GEN7_3DSTATE_URB_DS
{
3517 uint32_t CommandType
;
3518 uint32_t CommandSubType
;
3519 uint32_t _3DCommandOpcode
;
3520 uint32_t _3DCommandSubOpcode
;
3521 uint32_t DwordLength
;
3522 uint32_t DSURBStartingAddress
;
3523 uint32_t DSURBEntryAllocationSize
;
3524 uint32_t DSNumberofURBEntries
;
3528 GEN7_3DSTATE_URB_DS_pack(__gen_user_data
*data
, void * restrict dst
,
3529 const struct GEN7_3DSTATE_URB_DS
* restrict values
)
3531 uint32_t *dw
= (uint32_t * restrict
) dst
;
3534 __gen_field(values
->CommandType
, 29, 31) |
3535 __gen_field(values
->CommandSubType
, 27, 28) |
3536 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3537 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3538 __gen_field(values
->DwordLength
, 0, 7) |
3542 __gen_field(values
->DSURBStartingAddress
, 25, 29) |
3543 __gen_field(values
->DSURBEntryAllocationSize
, 16, 24) |
3544 __gen_field(values
->DSNumberofURBEntries
, 0, 15) |
3549 #define GEN7_3DSTATE_URB_GS_length 0x00000002
3550 #define GEN7_3DSTATE_URB_GS_length_bias 0x00000002
3551 #define GEN7_3DSTATE_URB_GS_header \
3553 .CommandSubType = 3, \
3554 ._3DCommandOpcode = 0, \
3555 ._3DCommandSubOpcode = 51, \
3558 struct GEN7_3DSTATE_URB_GS
{
3559 uint32_t CommandType
;
3560 uint32_t CommandSubType
;
3561 uint32_t _3DCommandOpcode
;
3562 uint32_t _3DCommandSubOpcode
;
3563 uint32_t DwordLength
;
3564 uint32_t GSURBStartingAddress
;
3565 uint32_t GSURBEntryAllocationSize
;
3566 uint32_t GSNumberofURBEntries
;
3570 GEN7_3DSTATE_URB_GS_pack(__gen_user_data
*data
, void * restrict dst
,
3571 const struct GEN7_3DSTATE_URB_GS
* restrict values
)
3573 uint32_t *dw
= (uint32_t * restrict
) dst
;
3576 __gen_field(values
->CommandType
, 29, 31) |
3577 __gen_field(values
->CommandSubType
, 27, 28) |
3578 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3579 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3580 __gen_field(values
->DwordLength
, 0, 7) |
3584 __gen_field(values
->GSURBStartingAddress
, 25, 29) |
3585 __gen_field(values
->GSURBEntryAllocationSize
, 16, 24) |
3586 __gen_field(values
->GSNumberofURBEntries
, 0, 15) |
3591 #define GEN7_3DSTATE_URB_HS_length 0x00000002
3592 #define GEN7_3DSTATE_URB_HS_length_bias 0x00000002
3593 #define GEN7_3DSTATE_URB_HS_header \
3595 .CommandSubType = 3, \
3596 ._3DCommandOpcode = 0, \
3597 ._3DCommandSubOpcode = 49, \
3600 struct GEN7_3DSTATE_URB_HS
{
3601 uint32_t CommandType
;
3602 uint32_t CommandSubType
;
3603 uint32_t _3DCommandOpcode
;
3604 uint32_t _3DCommandSubOpcode
;
3605 uint32_t DwordLength
;
3606 uint32_t HSURBStartingAddress
;
3607 uint32_t HSURBEntryAllocationSize
;
3608 uint32_t HSNumberofURBEntries
;
3612 GEN7_3DSTATE_URB_HS_pack(__gen_user_data
*data
, void * restrict dst
,
3613 const struct GEN7_3DSTATE_URB_HS
* restrict values
)
3615 uint32_t *dw
= (uint32_t * restrict
) dst
;
3618 __gen_field(values
->CommandType
, 29, 31) |
3619 __gen_field(values
->CommandSubType
, 27, 28) |
3620 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3621 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3622 __gen_field(values
->DwordLength
, 0, 7) |
3626 __gen_field(values
->HSURBStartingAddress
, 25, 29) |
3627 __gen_field(values
->HSURBEntryAllocationSize
, 16, 24) |
3628 __gen_field(values
->HSNumberofURBEntries
, 0, 15) |
3633 #define GEN7_3DSTATE_VERTEX_BUFFERS_length_bias 0x00000002
3634 #define GEN7_3DSTATE_VERTEX_BUFFERS_header \
3636 .CommandSubType = 3, \
3637 ._3DCommandOpcode = 0, \
3638 ._3DCommandSubOpcode = 8
3640 struct GEN7_VERTEX_BUFFER_STATE
{
3641 uint32_t VertexBufferIndex
;
3642 #define VERTEXDATA 0
3643 #define INSTANCEDATA 1
3644 uint32_t BufferAccessType
;
3645 struct GEN7_MEMORY_OBJECT_CONTROL_STATE VertexBufferMemoryObjectControlState
;
3646 uint32_t AddressModifyEnable
;
3647 uint32_t NullVertexBuffer
;
3648 uint32_t VertexFetchInvalidate
;
3649 uint32_t BufferPitch
;
3650 __gen_address_type BufferStartingAddress
;
3651 __gen_address_type EndAddress
;
3652 uint32_t InstanceDataStepRate
;
3656 GEN7_VERTEX_BUFFER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
3657 const struct GEN7_VERTEX_BUFFER_STATE
* restrict values
)
3659 uint32_t *dw
= (uint32_t * restrict
) dst
;
3661 uint32_t dw_VertexBufferMemoryObjectControlState
;
3662 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data
, &dw_VertexBufferMemoryObjectControlState
, &values
->VertexBufferMemoryObjectControlState
);
3664 __gen_field(values
->VertexBufferIndex
, 26, 31) |
3665 __gen_field(values
->BufferAccessType
, 20, 20) |
3666 __gen_field(dw_VertexBufferMemoryObjectControlState
, 16, 19) |
3667 __gen_field(values
->AddressModifyEnable
, 14, 14) |
3668 __gen_field(values
->NullVertexBuffer
, 13, 13) |
3669 __gen_field(values
->VertexFetchInvalidate
, 12, 12) |
3670 __gen_field(values
->BufferPitch
, 0, 11) |
3677 __gen_combine_address(data
, &dw
[1], values
->BufferStartingAddress
, dw1
);
3683 __gen_combine_address(data
, &dw
[2], values
->EndAddress
, dw2
);
3686 __gen_field(values
->InstanceDataStepRate
, 0, 31) |
3691 struct GEN7_3DSTATE_VERTEX_BUFFERS
{
3692 uint32_t CommandType
;
3693 uint32_t CommandSubType
;
3694 uint32_t _3DCommandOpcode
;
3695 uint32_t _3DCommandSubOpcode
;
3696 uint32_t DwordLength
;
3697 /* variable length fields follow */
3701 GEN7_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data
*data
, void * restrict dst
,
3702 const struct GEN7_3DSTATE_VERTEX_BUFFERS
* restrict values
)
3704 uint32_t *dw
= (uint32_t * restrict
) dst
;
3707 __gen_field(values
->CommandType
, 29, 31) |
3708 __gen_field(values
->CommandSubType
, 27, 28) |
3709 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3710 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3711 __gen_field(values
->DwordLength
, 0, 7) |
3714 /* variable length fields follow */
3717 #define GEN7_3DSTATE_VERTEX_ELEMENTS_length_bias 0x00000002
3718 #define GEN7_3DSTATE_VERTEX_ELEMENTS_header \
3720 .CommandSubType = 3, \
3721 ._3DCommandOpcode = 0, \
3722 ._3DCommandSubOpcode = 9
3724 struct GEN7_VERTEX_ELEMENT_STATE
{
3725 uint32_t VertexBufferIndex
;
3727 uint32_t SourceElementFormat
;
3728 uint32_t EdgeFlagEnable
;
3729 uint32_t SourceElementOffset
;
3730 uint32_t Component0Control
;
3731 uint32_t Component1Control
;
3732 uint32_t Component2Control
;
3733 uint32_t Component3Control
;
3737 GEN7_VERTEX_ELEMENT_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
3738 const struct GEN7_VERTEX_ELEMENT_STATE
* restrict values
)
3740 uint32_t *dw
= (uint32_t * restrict
) dst
;
3743 __gen_field(values
->VertexBufferIndex
, 26, 31) |
3744 __gen_field(values
->Valid
, 25, 25) |
3745 __gen_field(values
->SourceElementFormat
, 16, 24) |
3746 __gen_field(values
->EdgeFlagEnable
, 15, 15) |
3747 __gen_field(values
->SourceElementOffset
, 0, 11) |
3751 __gen_field(values
->Component0Control
, 28, 30) |
3752 __gen_field(values
->Component1Control
, 24, 26) |
3753 __gen_field(values
->Component2Control
, 20, 22) |
3754 __gen_field(values
->Component3Control
, 16, 18) |
3759 struct GEN7_3DSTATE_VERTEX_ELEMENTS
{
3760 uint32_t CommandType
;
3761 uint32_t CommandSubType
;
3762 uint32_t _3DCommandOpcode
;
3763 uint32_t _3DCommandSubOpcode
;
3764 uint32_t DwordLength
;
3765 /* variable length fields follow */
3769 GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data
*data
, void * restrict dst
,
3770 const struct GEN7_3DSTATE_VERTEX_ELEMENTS
* restrict values
)
3772 uint32_t *dw
= (uint32_t * restrict
) dst
;
3775 __gen_field(values
->CommandType
, 29, 31) |
3776 __gen_field(values
->CommandSubType
, 27, 28) |
3777 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3778 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3779 __gen_field(values
->DwordLength
, 0, 7) |
3782 /* variable length fields follow */
3785 #define GEN7_3DSTATE_VF_STATISTICS_length 0x00000001
3786 #define GEN7_3DSTATE_VF_STATISTICS_length_bias 0x00000001
3787 #define GEN7_3DSTATE_VF_STATISTICS_header \
3789 .CommandSubType = 1, \
3790 ._3DCommandOpcode = 0, \
3791 ._3DCommandSubOpcode = 11
3793 struct GEN7_3DSTATE_VF_STATISTICS
{
3794 uint32_t CommandType
;
3795 uint32_t CommandSubType
;
3796 uint32_t _3DCommandOpcode
;
3797 uint32_t _3DCommandSubOpcode
;
3798 uint32_t StatisticsEnable
;
3802 GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data
*data
, void * restrict dst
,
3803 const struct GEN7_3DSTATE_VF_STATISTICS
* restrict values
)
3805 uint32_t *dw
= (uint32_t * restrict
) dst
;
3808 __gen_field(values
->CommandType
, 29, 31) |
3809 __gen_field(values
->CommandSubType
, 27, 28) |
3810 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3811 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3812 __gen_field(values
->StatisticsEnable
, 0, 0) |
3817 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
3818 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
3819 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
3821 .CommandSubType = 3, \
3822 ._3DCommandOpcode = 0, \
3823 ._3DCommandSubOpcode = 35, \
3826 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
{
3827 uint32_t CommandType
;
3828 uint32_t CommandSubType
;
3829 uint32_t _3DCommandOpcode
;
3830 uint32_t _3DCommandSubOpcode
;
3831 uint32_t DwordLength
;
3832 uint32_t CCViewportPointer
;
3836 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data
*data
, void * restrict dst
,
3837 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
* restrict values
)
3839 uint32_t *dw
= (uint32_t * restrict
) dst
;
3842 __gen_field(values
->CommandType
, 29, 31) |
3843 __gen_field(values
->CommandSubType
, 27, 28) |
3844 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3845 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3846 __gen_field(values
->DwordLength
, 0, 7) |
3850 __gen_offset(values
->CCViewportPointer
, 5, 31) |
3855 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
3856 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
3857 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
3859 .CommandSubType = 3, \
3860 ._3DCommandOpcode = 0, \
3861 ._3DCommandSubOpcode = 33, \
3864 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
{
3865 uint32_t CommandType
;
3866 uint32_t CommandSubType
;
3867 uint32_t _3DCommandOpcode
;
3868 uint32_t _3DCommandSubOpcode
;
3869 uint32_t DwordLength
;
3870 uint32_t SFClipViewportPointer
;
3874 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data
*data
, void * restrict dst
,
3875 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
* restrict values
)
3877 uint32_t *dw
= (uint32_t * restrict
) dst
;
3880 __gen_field(values
->CommandType
, 29, 31) |
3881 __gen_field(values
->CommandSubType
, 27, 28) |
3882 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3883 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3884 __gen_field(values
->DwordLength
, 0, 7) |
3888 __gen_offset(values
->SFClipViewportPointer
, 6, 31) |
3893 #define GEN7_3DSTATE_VS_length 0x00000006
3894 #define GEN7_3DSTATE_VS_length_bias 0x00000002
3895 #define GEN7_3DSTATE_VS_header \
3897 .CommandSubType = 3, \
3898 ._3DCommandOpcode = 0, \
3899 ._3DCommandSubOpcode = 16, \
3902 struct GEN7_3DSTATE_VS
{
3903 uint32_t CommandType
;
3904 uint32_t CommandSubType
;
3905 uint32_t _3DCommandOpcode
;
3906 uint32_t _3DCommandSubOpcode
;
3907 uint32_t DwordLength
;
3908 uint32_t KernelStartPointer
;
3911 uint32_t SingleVertexDispatch
;
3914 uint32_t VectorMaskEnableVME
;
3915 #define NoSamplers 0
3916 #define _14Samplers 1
3917 #define _58Samplers 2
3918 #define _912Samplers 3
3919 #define _1316Samplers 4
3920 uint32_t SamplerCount
;
3921 uint32_t BindingTableEntryCount
;
3924 uint32_t FloatingPointMode
;
3925 uint32_t IllegalOpcodeExceptionEnable
;
3926 uint32_t SoftwareExceptionEnable
;
3927 uint32_t ScratchSpaceBaseOffset
;
3928 uint32_t PerThreadScratchSpace
;
3929 uint32_t DispatchGRFStartRegisterforURBData
;
3930 uint32_t VertexURBEntryReadLength
;
3931 uint32_t VertexURBEntryReadOffset
;
3932 uint32_t MaximumNumberofThreads
;
3933 uint32_t StatisticsEnable
;
3934 uint32_t VertexCacheDisable
;
3935 uint32_t VSFunctionEnable
;
3939 GEN7_3DSTATE_VS_pack(__gen_user_data
*data
, void * restrict dst
,
3940 const struct GEN7_3DSTATE_VS
* restrict values
)
3942 uint32_t *dw
= (uint32_t * restrict
) dst
;
3945 __gen_field(values
->CommandType
, 29, 31) |
3946 __gen_field(values
->CommandSubType
, 27, 28) |
3947 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
3948 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
3949 __gen_field(values
->DwordLength
, 0, 7) |
3953 __gen_offset(values
->KernelStartPointer
, 6, 31) |
3957 __gen_field(values
->SingleVertexDispatch
, 31, 31) |
3958 __gen_field(values
->VectorMaskEnableVME
, 30, 30) |
3959 __gen_field(values
->SamplerCount
, 27, 29) |
3960 __gen_field(values
->BindingTableEntryCount
, 18, 25) |
3961 __gen_field(values
->FloatingPointMode
, 16, 16) |
3962 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
3963 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
3967 __gen_offset(values
->ScratchSpaceBaseOffset
, 10, 31) |
3968 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
3972 __gen_field(values
->DispatchGRFStartRegisterforURBData
, 20, 24) |
3973 __gen_field(values
->VertexURBEntryReadLength
, 11, 16) |
3974 __gen_field(values
->VertexURBEntryReadOffset
, 4, 9) |
3978 __gen_field(values
->MaximumNumberofThreads
, 25, 31) |
3979 __gen_field(values
->StatisticsEnable
, 10, 10) |
3980 __gen_field(values
->VertexCacheDisable
, 1, 1) |
3981 __gen_field(values
->VSFunctionEnable
, 0, 0) |
3986 #define GEN7_3DSTATE_WM_length 0x00000003
3987 #define GEN7_3DSTATE_WM_length_bias 0x00000002
3988 #define GEN7_3DSTATE_WM_header \
3990 .CommandSubType = 3, \
3991 ._3DCommandOpcode = 0, \
3992 ._3DCommandSubOpcode = 20, \
3995 struct GEN7_3DSTATE_WM
{
3996 uint32_t CommandType
;
3997 uint32_t CommandSubType
;
3998 uint32_t _3DCommandOpcode
;
3999 uint32_t _3DCommandSubOpcode
;
4000 uint32_t DwordLength
;
4001 uint32_t StatisticsEnable
;
4002 uint32_t DepthBufferClear
;
4003 uint32_t ThreadDispatchEnable
;
4004 uint32_t DepthBufferResolveEnable
;
4005 uint32_t HierarchicalDepthBufferResolveEnable
;
4006 uint32_t LegacyDiamondLineRasterization
;
4007 uint32_t PixelShaderKillPixel
;
4008 #define PSCDEPTH_OFF 0
4009 #define PSCDEPTH_ON 1
4010 #define PSCDEPTH_ON_GE 2
4011 #define PSCDEPTH_ON_LE 3
4012 uint32_t PixelShaderComputedDepthMode
;
4013 #define EDSC_NORMAL 0
4014 #define EDSC_PSEXEC 1
4015 #define EDSC_PREPS 2
4016 uint32_t EarlyDepthStencilControl
;
4017 uint32_t PixelShaderUsesSourceDepth
;
4018 uint32_t PixelShaderUsesSourceW
;
4019 #define INTERP_PIXEL 0
4020 #define INTERP_CENTROID 2
4021 #define INTERP_SAMPLE 3
4022 uint32_t PositionZWInterpolationMode
;
4023 uint32_t BarycentricInterpolationMode
;
4024 uint32_t PixelShaderUsesInputCoverageMask
;
4025 uint32_t LineEndCapAntialiasingRegionWidth
;
4026 uint32_t LineAntialiasingRegionWidth
;
4027 uint32_t PolygonStippleEnable
;
4028 uint32_t LineStippleEnable
;
4029 #define RASTRULE_UPPER_LEFT 0
4030 #define RASTRULE_UPPER_RIGHT 1
4031 uint32_t PointRasterizationRule
;
4032 #define MSRASTMODE_OFF_PIXEL 0
4033 #define MSRASTMODE_OFF_PATTERN 1
4034 #define MSRASTMODE_ON_PIXEL 2
4035 #define MSRASTMODE_ON_PATTERN 3
4036 uint32_t MultisampleRasterizationMode
;
4037 #define MSDISPMODE_PERSAMPLE 0
4038 #define MSDISPMODE_PERPIXEL 1
4039 uint32_t MultisampleDispatchMode
;
4043 GEN7_3DSTATE_WM_pack(__gen_user_data
*data
, void * restrict dst
,
4044 const struct GEN7_3DSTATE_WM
* restrict values
)
4046 uint32_t *dw
= (uint32_t * restrict
) dst
;
4049 __gen_field(values
->CommandType
, 29, 31) |
4050 __gen_field(values
->CommandSubType
, 27, 28) |
4051 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
4052 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
4053 __gen_field(values
->DwordLength
, 0, 7) |
4057 __gen_field(values
->StatisticsEnable
, 31, 31) |
4058 __gen_field(values
->DepthBufferClear
, 30, 30) |
4059 __gen_field(values
->ThreadDispatchEnable
, 29, 29) |
4060 __gen_field(values
->DepthBufferResolveEnable
, 28, 28) |
4061 __gen_field(values
->HierarchicalDepthBufferResolveEnable
, 27, 27) |
4062 __gen_field(values
->LegacyDiamondLineRasterization
, 26, 26) |
4063 __gen_field(values
->PixelShaderKillPixel
, 25, 25) |
4064 __gen_field(values
->PixelShaderComputedDepthMode
, 23, 24) |
4065 __gen_field(values
->EarlyDepthStencilControl
, 21, 22) |
4066 __gen_field(values
->PixelShaderUsesSourceDepth
, 20, 20) |
4067 __gen_field(values
->PixelShaderUsesSourceW
, 19, 19) |
4068 __gen_field(values
->PositionZWInterpolationMode
, 17, 18) |
4069 __gen_field(values
->BarycentricInterpolationMode
, 11, 16) |
4070 __gen_field(values
->PixelShaderUsesInputCoverageMask
, 10, 10) |
4071 __gen_field(values
->LineEndCapAntialiasingRegionWidth
, 8, 9) |
4072 __gen_field(values
->LineAntialiasingRegionWidth
, 6, 7) |
4073 __gen_field(values
->PolygonStippleEnable
, 4, 4) |
4074 __gen_field(values
->LineStippleEnable
, 3, 3) |
4075 __gen_field(values
->PointRasterizationRule
, 2, 2) |
4076 __gen_field(values
->MultisampleRasterizationMode
, 0, 1) |
4080 __gen_field(values
->MultisampleDispatchMode
, 31, 31) |
4085 #define GEN7_GPGPU_OBJECT_length 0x00000008
4086 #define GEN7_GPGPU_OBJECT_length_bias 0x00000002
4087 #define GEN7_GPGPU_OBJECT_header \
4090 .MediaCommandOpcode = 1, \
4094 struct GEN7_GPGPU_OBJECT
{
4095 uint32_t CommandType
;
4097 uint32_t MediaCommandOpcode
;
4099 uint32_t PredicateEnable
;
4100 uint32_t DwordLength
;
4101 uint32_t SharedLocalMemoryFixedOffset
;
4102 uint32_t InterfaceDescriptorOffset
;
4103 uint32_t SharedLocalMemoryOffset
;
4104 uint32_t EndofThreadGroup
;
4105 #define HalfSlice1 2
4106 #define HalfSlice0 1
4107 #define EitherHalfSlice 0
4108 uint32_t HalfSliceDestinationSelect
;
4109 uint32_t IndirectDataLength
;
4110 uint32_t IndirectDataStartAddress
;
4111 uint32_t ThreadGroupIDX
;
4112 uint32_t ThreadGroupIDY
;
4113 uint32_t ThreadGroupIDZ
;
4114 uint32_t ExecutionMask
;
4118 GEN7_GPGPU_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4119 const struct GEN7_GPGPU_OBJECT
* restrict values
)
4121 uint32_t *dw
= (uint32_t * restrict
) dst
;
4124 __gen_field(values
->CommandType
, 29, 31) |
4125 __gen_field(values
->Pipeline
, 27, 28) |
4126 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4127 __gen_field(values
->SubOpcode
, 16, 23) |
4128 __gen_field(values
->PredicateEnable
, 8, 8) |
4129 __gen_field(values
->DwordLength
, 0, 7) |
4133 __gen_field(values
->SharedLocalMemoryFixedOffset
, 7, 7) |
4134 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4138 __gen_field(values
->SharedLocalMemoryOffset
, 28, 31) |
4139 __gen_field(values
->EndofThreadGroup
, 24, 24) |
4140 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4141 __gen_field(values
->IndirectDataLength
, 0, 16) |
4145 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4149 __gen_field(values
->ThreadGroupIDX
, 0, 31) |
4153 __gen_field(values
->ThreadGroupIDY
, 0, 31) |
4157 __gen_field(values
->ThreadGroupIDZ
, 0, 31) |
4161 __gen_field(values
->ExecutionMask
, 0, 31) |
4166 #define GEN7_GPGPU_WALKER_length 0x0000000b
4167 #define GEN7_GPGPU_WALKER_length_bias 0x00000002
4168 #define GEN7_GPGPU_WALKER_header \
4171 .MediaCommandOpcode = 1, \
4175 struct GEN7_GPGPU_WALKER
{
4176 uint32_t CommandType
;
4178 uint32_t MediaCommandOpcode
;
4179 uint32_t SubOpcodeA
;
4180 uint32_t IndirectParameterEnable
;
4181 uint32_t PredicateEnable
;
4182 uint32_t DwordLength
;
4183 uint32_t InterfaceDescriptorOffset
;
4188 uint32_t ThreadDepthCounterMaximum
;
4189 uint32_t ThreadHeightCounterMaximum
;
4190 uint32_t ThreadWidthCounterMaximum
;
4191 uint32_t ThreadGroupIDStartingX
;
4192 uint32_t ThreadGroupIDXDimension
;
4193 uint32_t ThreadGroupIDStartingY
;
4194 uint32_t ThreadGroupIDYDimension
;
4195 uint32_t ThreadGroupIDStartingZ
;
4196 uint32_t ThreadGroupIDZDimension
;
4197 uint32_t RightExecutionMask
;
4198 uint32_t BottomExecutionMask
;
4202 GEN7_GPGPU_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4203 const struct GEN7_GPGPU_WALKER
* restrict values
)
4205 uint32_t *dw
= (uint32_t * restrict
) dst
;
4208 __gen_field(values
->CommandType
, 29, 31) |
4209 __gen_field(values
->Pipeline
, 27, 28) |
4210 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4211 __gen_field(values
->SubOpcodeA
, 16, 23) |
4212 __gen_field(values
->IndirectParameterEnable
, 10, 10) |
4213 __gen_field(values
->PredicateEnable
, 8, 8) |
4214 __gen_field(values
->DwordLength
, 0, 7) |
4218 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4222 __gen_field(values
->SIMDSize
, 30, 31) |
4223 __gen_field(values
->ThreadDepthCounterMaximum
, 16, 21) |
4224 __gen_field(values
->ThreadHeightCounterMaximum
, 8, 13) |
4225 __gen_field(values
->ThreadWidthCounterMaximum
, 0, 5) |
4229 __gen_field(values
->ThreadGroupIDStartingX
, 0, 31) |
4233 __gen_field(values
->ThreadGroupIDXDimension
, 0, 31) |
4237 __gen_field(values
->ThreadGroupIDStartingY
, 0, 31) |
4241 __gen_field(values
->ThreadGroupIDYDimension
, 0, 31) |
4245 __gen_field(values
->ThreadGroupIDStartingZ
, 0, 31) |
4249 __gen_field(values
->ThreadGroupIDZDimension
, 0, 31) |
4253 __gen_field(values
->RightExecutionMask
, 0, 31) |
4257 __gen_field(values
->BottomExecutionMask
, 0, 31) |
4262 #define GEN7_MEDIA_CURBE_LOAD_length 0x00000004
4263 #define GEN7_MEDIA_CURBE_LOAD_length_bias 0x00000002
4264 #define GEN7_MEDIA_CURBE_LOAD_header \
4267 .MediaCommandOpcode = 0, \
4271 struct GEN7_MEDIA_CURBE_LOAD
{
4272 uint32_t CommandType
;
4274 uint32_t MediaCommandOpcode
;
4276 uint32_t DwordLength
;
4277 uint32_t CURBETotalDataLength
;
4278 uint32_t CURBEDataStartAddress
;
4282 GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4283 const struct GEN7_MEDIA_CURBE_LOAD
* restrict values
)
4285 uint32_t *dw
= (uint32_t * restrict
) dst
;
4288 __gen_field(values
->CommandType
, 29, 31) |
4289 __gen_field(values
->Pipeline
, 27, 28) |
4290 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4291 __gen_field(values
->SubOpcode
, 16, 23) |
4292 __gen_field(values
->DwordLength
, 0, 15) |
4299 __gen_field(values
->CURBETotalDataLength
, 0, 16) |
4303 __gen_field(values
->CURBEDataStartAddress
, 0, 31) |
4308 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
4309 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
4310 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
4313 .MediaCommandOpcode = 0, \
4317 struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
{
4318 uint32_t CommandType
;
4320 uint32_t MediaCommandOpcode
;
4322 uint32_t DwordLength
;
4323 uint32_t InterfaceDescriptorTotalLength
;
4324 uint32_t InterfaceDescriptorDataStartAddress
;
4328 GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data
*data
, void * restrict dst
,
4329 const struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
* restrict values
)
4331 uint32_t *dw
= (uint32_t * restrict
) dst
;
4334 __gen_field(values
->CommandType
, 29, 31) |
4335 __gen_field(values
->Pipeline
, 27, 28) |
4336 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4337 __gen_field(values
->SubOpcode
, 16, 23) |
4338 __gen_field(values
->DwordLength
, 0, 15) |
4345 __gen_field(values
->InterfaceDescriptorTotalLength
, 0, 16) |
4349 __gen_offset(values
->InterfaceDescriptorDataStartAddress
, 0, 31) |
4354 #define GEN7_MEDIA_OBJECT_length_bias 0x00000002
4355 #define GEN7_MEDIA_OBJECT_header \
4357 .MediaCommandPipeline = 2, \
4358 .MediaCommandOpcode = 1, \
4359 .MediaCommandSubOpcode = 0
4361 struct GEN7_MEDIA_OBJECT
{
4362 uint32_t CommandType
;
4363 uint32_t MediaCommandPipeline
;
4364 uint32_t MediaCommandOpcode
;
4365 uint32_t MediaCommandSubOpcode
;
4366 uint32_t DwordLength
;
4367 uint32_t InterfaceDescriptorOffset
;
4368 uint32_t ChildrenPresent
;
4369 #define Nothreadsynchronization 0
4370 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4371 uint32_t ThreadSynchronization
;
4372 #define Notusingscoreboard 0
4373 #define Usingscoreboard 1
4374 uint32_t UseScoreboard
;
4375 #define HalfSlice1 2
4376 #define HalfSlice0 1
4377 #define Eitherhalfslice 0
4378 uint32_t HalfSliceDestinationSelect
;
4379 uint32_t IndirectDataLength
;
4380 __gen_address_type IndirectDataStartAddress
;
4381 uint32_t ScoredboardY
;
4382 uint32_t ScoreboardX
;
4383 uint32_t ScoreboardColor
;
4384 uint32_t ScoreboardMask
;
4385 /* variable length fields follow */
4389 GEN7_MEDIA_OBJECT_pack(__gen_user_data
*data
, void * restrict dst
,
4390 const struct GEN7_MEDIA_OBJECT
* restrict values
)
4392 uint32_t *dw
= (uint32_t * restrict
) dst
;
4395 __gen_field(values
->CommandType
, 29, 31) |
4396 __gen_field(values
->MediaCommandPipeline
, 27, 28) |
4397 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4398 __gen_field(values
->MediaCommandSubOpcode
, 16, 23) |
4399 __gen_field(values
->DwordLength
, 0, 15) |
4403 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4407 __gen_field(values
->ChildrenPresent
, 31, 31) |
4408 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4409 __gen_field(values
->UseScoreboard
, 21, 21) |
4410 __gen_field(values
->HalfSliceDestinationSelect
, 17, 18) |
4411 __gen_field(values
->IndirectDataLength
, 0, 16) |
4418 __gen_combine_address(data
, &dw
[3], values
->IndirectDataStartAddress
, dw3
);
4421 __gen_field(values
->ScoredboardY
, 16, 24) |
4422 __gen_field(values
->ScoreboardX
, 0, 8) |
4426 __gen_field(values
->ScoreboardColor
, 16, 19) |
4427 __gen_field(values
->ScoreboardMask
, 0, 7) |
4430 /* variable length fields follow */
4433 #define GEN7_MEDIA_OBJECT_PRT_length 0x00000010
4434 #define GEN7_MEDIA_OBJECT_PRT_length_bias 0x00000002
4435 #define GEN7_MEDIA_OBJECT_PRT_header \
4438 .MediaCommandOpcode = 1, \
4442 struct GEN7_MEDIA_OBJECT_PRT
{
4443 uint32_t CommandType
;
4445 uint32_t MediaCommandOpcode
;
4447 uint32_t DwordLength
;
4448 uint32_t InterfaceDescriptorOffset
;
4449 uint32_t ChildrenPresent
;
4450 uint32_t PRT_FenceNeeded
;
4451 #define Rootthreadqueue 0
4452 #define VFEstateflush 1
4453 uint32_t PRT_FenceType
;
4454 uint32_t InlineData
;
4458 GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data
*data
, void * restrict dst
,
4459 const struct GEN7_MEDIA_OBJECT_PRT
* restrict values
)
4461 uint32_t *dw
= (uint32_t * restrict
) dst
;
4464 __gen_field(values
->CommandType
, 29, 31) |
4465 __gen_field(values
->Pipeline
, 27, 28) |
4466 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4467 __gen_field(values
->SubOpcode
, 16, 23) |
4468 __gen_field(values
->DwordLength
, 0, 15) |
4472 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4476 __gen_field(values
->ChildrenPresent
, 31, 31) |
4477 __gen_field(values
->PRT_FenceNeeded
, 23, 23) |
4478 __gen_field(values
->PRT_FenceType
, 22, 22) |
4485 __gen_field(values
->InlineData
, 0, 31) |
4490 #define GEN7_MEDIA_OBJECT_WALKER_length_bias 0x00000002
4491 #define GEN7_MEDIA_OBJECT_WALKER_header \
4494 .MediaCommandOpcode = 1, \
4497 struct GEN7_MEDIA_OBJECT_WALKER
{
4498 uint32_t CommandType
;
4500 uint32_t MediaCommandOpcode
;
4502 uint32_t DwordLength
;
4503 uint32_t InterfaceDescriptorOffset
;
4504 uint32_t ChildrenPresent
;
4505 #define Nothreadsynchronization 0
4506 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
4507 uint32_t ThreadSynchronization
;
4508 #define Notusingscoreboard 0
4509 #define Usingscoreboard 1
4510 uint32_t UseScoreboard
;
4511 uint32_t IndirectDataLength
;
4512 uint32_t IndirectDataStartAddress
;
4513 uint32_t ScoreboardMask
;
4516 uint32_t ColorCountMinusOne
;
4517 uint32_t MiddleLoopExtraSteps
;
4518 uint32_t LocalMidLoopUnitY
;
4519 uint32_t MidLoopUnitX
;
4520 uint32_t GlobalLoopExecCount
;
4521 uint32_t LocalLoopExecCount
;
4522 uint32_t BlockResolutionY
;
4523 uint32_t BlockResolutionX
;
4524 uint32_t LocalStartY
;
4525 uint32_t LocalStartX
;
4528 uint32_t LocalOuterLoopStrideY
;
4529 uint32_t LocalOuterLoopStrideX
;
4530 uint32_t LocalInnerLoopUnitY
;
4531 uint32_t LocalInnerLoopUnitX
;
4532 uint32_t GlobalResolutionY
;
4533 uint32_t GlobalResolutionX
;
4534 uint32_t GlobalStartY
;
4535 uint32_t GlobalStartX
;
4536 uint32_t GlobalOuterLoopStrideY
;
4537 uint32_t GlobalOuterLoopStrideX
;
4538 uint32_t GlobalInnerLoopUnitY
;
4539 uint32_t GlobalInnerLoopUnitX
;
4540 /* variable length fields follow */
4544 GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data
*data
, void * restrict dst
,
4545 const struct GEN7_MEDIA_OBJECT_WALKER
* restrict values
)
4547 uint32_t *dw
= (uint32_t * restrict
) dst
;
4550 __gen_field(values
->CommandType
, 29, 31) |
4551 __gen_field(values
->Pipeline
, 27, 28) |
4552 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4553 __gen_field(values
->SubOpcode
, 16, 23) |
4554 __gen_field(values
->DwordLength
, 0, 15) |
4558 __gen_field(values
->InterfaceDescriptorOffset
, 0, 4) |
4562 __gen_field(values
->ChildrenPresent
, 31, 31) |
4563 __gen_field(values
->ThreadSynchronization
, 24, 24) |
4564 __gen_field(values
->UseScoreboard
, 21, 21) |
4565 __gen_field(values
->IndirectDataLength
, 0, 16) |
4569 __gen_offset(values
->IndirectDataStartAddress
, 0, 31) |
4576 __gen_field(values
->ScoreboardMask
, 0, 7) |
4580 __gen_field(values
->DualMode
, 31, 31) |
4581 __gen_field(values
->Repel
, 30, 30) |
4582 __gen_field(values
->ColorCountMinusOne
, 24, 27) |
4583 __gen_field(values
->MiddleLoopExtraSteps
, 16, 20) |
4584 __gen_field(values
->LocalMidLoopUnitY
, 12, 13) |
4585 __gen_field(values
->MidLoopUnitX
, 8, 9) |
4589 __gen_field(values
->GlobalLoopExecCount
, 16, 25) |
4590 __gen_field(values
->LocalLoopExecCount
, 0, 9) |
4594 __gen_field(values
->BlockResolutionY
, 16, 24) |
4595 __gen_field(values
->BlockResolutionX
, 0, 8) |
4599 __gen_field(values
->LocalStartY
, 16, 24) |
4600 __gen_field(values
->LocalStartX
, 0, 8) |
4604 __gen_field(values
->LocalEndY
, 16, 24) |
4605 __gen_field(values
->LocalEndX
, 0, 8) |
4609 __gen_field(values
->LocalOuterLoopStrideY
, 16, 25) |
4610 __gen_field(values
->LocalOuterLoopStrideX
, 0, 9) |
4614 __gen_field(values
->LocalInnerLoopUnitY
, 16, 25) |
4615 __gen_field(values
->LocalInnerLoopUnitX
, 0, 9) |
4619 __gen_field(values
->GlobalResolutionY
, 16, 24) |
4620 __gen_field(values
->GlobalResolutionX
, 0, 8) |
4624 __gen_field(values
->GlobalStartY
, 16, 25) |
4625 __gen_field(values
->GlobalStartX
, 0, 9) |
4629 __gen_field(values
->GlobalOuterLoopStrideY
, 16, 25) |
4630 __gen_field(values
->GlobalOuterLoopStrideX
, 0, 9) |
4634 __gen_field(values
->GlobalInnerLoopUnitY
, 16, 25) |
4635 __gen_field(values
->GlobalInnerLoopUnitX
, 0, 9) |
4638 /* variable length fields follow */
4641 #define GEN7_MEDIA_STATE_FLUSH_length 0x00000002
4642 #define GEN7_MEDIA_STATE_FLUSH_length_bias 0x00000002
4643 #define GEN7_MEDIA_STATE_FLUSH_header \
4646 .MediaCommandOpcode = 0, \
4650 struct GEN7_MEDIA_STATE_FLUSH
{
4651 uint32_t CommandType
;
4653 uint32_t MediaCommandOpcode
;
4655 uint32_t DwordLength
;
4656 uint32_t WatermarkRequired
;
4657 uint32_t InterfaceDescriptorOffset
;
4661 GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4662 const struct GEN7_MEDIA_STATE_FLUSH
* restrict values
)
4664 uint32_t *dw
= (uint32_t * restrict
) dst
;
4667 __gen_field(values
->CommandType
, 29, 31) |
4668 __gen_field(values
->Pipeline
, 27, 28) |
4669 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4670 __gen_field(values
->SubOpcode
, 16, 23) |
4671 __gen_field(values
->DwordLength
, 0, 15) |
4675 __gen_field(values
->WatermarkRequired
, 6, 6) |
4676 __gen_field(values
->InterfaceDescriptorOffset
, 0, 5) |
4681 #define GEN7_MEDIA_VFE_STATE_length 0x00000008
4682 #define GEN7_MEDIA_VFE_STATE_length_bias 0x00000002
4683 #define GEN7_MEDIA_VFE_STATE_header \
4686 .MediaCommandOpcode = 0, \
4690 struct GEN7_MEDIA_VFE_STATE
{
4691 uint32_t CommandType
;
4693 uint32_t MediaCommandOpcode
;
4695 uint32_t DwordLength
;
4696 uint32_t ScratchSpaceBasePointer
;
4697 uint32_t PerThreadScratchSpace
;
4698 uint32_t MaximumNumberofThreads
;
4699 uint32_t NumberofURBEntries
;
4700 #define Maintainingtheexistingtimestampstate 0
4701 #define Resettingrelativetimerandlatchingtheglobaltimestamp 1
4702 uint32_t ResetGatewayTimer
;
4703 #define MaintainingOpenGatewayForwardMsgCloseGatewayprotocollegacymode 0
4704 #define BypassingOpenGatewayCloseGatewayprotocol 1
4705 uint32_t BypassGatewayControl
;
4706 #define NoMMIOreadwriteallowed 0
4707 #define MMIOreadwritetoanyaddress 2
4708 uint32_t GatewayMMIOAccessControl
;
4710 uint32_t URBEntryAllocationSize
;
4711 uint32_t CURBEAllocationSize
;
4712 #define Scoreboarddisabled 0
4713 #define Scoreboardenabled 1
4714 uint32_t ScoreboardEnable
;
4715 #define StallingScoreboard 0
4716 #define NonStallingScoreboard 1
4717 uint32_t ScoreboardType
;
4718 uint32_t ScoreboardMask
;
4719 uint32_t Scoreboard3DeltaY
;
4720 uint32_t Scoreboard3DeltaX
;
4721 uint32_t Scoreboard2DeltaY
;
4722 uint32_t Scoreboard2DeltaX
;
4723 uint32_t Scoreboard1DeltaY
;
4724 uint32_t Scoreboard1DeltaX
;
4725 uint32_t Scoreboard0DeltaY
;
4726 uint32_t Scoreboard0DeltaX
;
4727 uint32_t Scoreboard7DeltaY
;
4728 uint32_t Scoreboard7DeltaX
;
4729 uint32_t Scoreboard6DeltaY
;
4730 uint32_t Scoreboard6DeltaX
;
4731 uint32_t Scoreboard5DeltaY
;
4732 uint32_t Scoreboard5DeltaX
;
4733 uint32_t Scoreboard4DeltaY
;
4734 uint32_t Scoreboard4DeltaX
;
4738 GEN7_MEDIA_VFE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
4739 const struct GEN7_MEDIA_VFE_STATE
* restrict values
)
4741 uint32_t *dw
= (uint32_t * restrict
) dst
;
4744 __gen_field(values
->CommandType
, 29, 31) |
4745 __gen_field(values
->Pipeline
, 27, 28) |
4746 __gen_field(values
->MediaCommandOpcode
, 24, 26) |
4747 __gen_field(values
->SubOpcode
, 16, 23) |
4748 __gen_field(values
->DwordLength
, 0, 15) |
4752 __gen_offset(values
->ScratchSpaceBasePointer
, 10, 31) |
4753 __gen_field(values
->PerThreadScratchSpace
, 0, 3) |
4757 __gen_field(values
->MaximumNumberofThreads
, 16, 31) |
4758 __gen_field(values
->NumberofURBEntries
, 8, 15) |
4759 __gen_field(values
->ResetGatewayTimer
, 7, 7) |
4760 __gen_field(values
->BypassGatewayControl
, 6, 6) |
4761 __gen_field(values
->GatewayMMIOAccessControl
, 3, 4) |
4762 __gen_field(values
->GPGPUMode
, 2, 2) |
4769 __gen_field(values
->URBEntryAllocationSize
, 16, 31) |
4770 __gen_field(values
->CURBEAllocationSize
, 0, 15) |
4774 __gen_field(values
->ScoreboardEnable
, 31, 31) |
4775 __gen_field(values
->ScoreboardType
, 30, 30) |
4776 __gen_field(values
->ScoreboardMask
, 0, 7) |
4780 __gen_field(values
->Scoreboard3DeltaY
, 28, 31) |
4781 __gen_field(values
->Scoreboard3DeltaX
, 24, 27) |
4782 __gen_field(values
->Scoreboard2DeltaY
, 20, 23) |
4783 __gen_field(values
->Scoreboard2DeltaX
, 16, 19) |
4784 __gen_field(values
->Scoreboard1DeltaY
, 12, 15) |
4785 __gen_field(values
->Scoreboard1DeltaX
, 8, 11) |
4786 __gen_field(values
->Scoreboard0DeltaY
, 4, 7) |
4787 __gen_field(values
->Scoreboard0DeltaX
, 0, 3) |
4791 __gen_field(values
->Scoreboard7DeltaY
, 28, 31) |
4792 __gen_field(values
->Scoreboard7DeltaX
, 24, 27) |
4793 __gen_field(values
->Scoreboard6DeltaY
, 20, 23) |
4794 __gen_field(values
->Scoreboard6DeltaX
, 16, 19) |
4795 __gen_field(values
->Scoreboard5DeltaY
, 12, 15) |
4796 __gen_field(values
->Scoreboard5DeltaX
, 8, 11) |
4797 __gen_field(values
->Scoreboard4DeltaY
, 4, 7) |
4798 __gen_field(values
->Scoreboard4DeltaX
, 0, 3) |
4803 #define GEN7_MI_ARB_CHECK_length 0x00000001
4804 #define GEN7_MI_ARB_CHECK_length_bias 0x00000001
4805 #define GEN7_MI_ARB_CHECK_header \
4807 .MICommandOpcode = 5
4809 struct GEN7_MI_ARB_CHECK
{
4810 uint32_t CommandType
;
4811 uint32_t MICommandOpcode
;
4815 GEN7_MI_ARB_CHECK_pack(__gen_user_data
*data
, void * restrict dst
,
4816 const struct GEN7_MI_ARB_CHECK
* restrict values
)
4818 uint32_t *dw
= (uint32_t * restrict
) dst
;
4821 __gen_field(values
->CommandType
, 29, 31) |
4822 __gen_field(values
->MICommandOpcode
, 23, 28) |
4827 #define GEN7_MI_ARB_ON_OFF_length 0x00000001
4828 #define GEN7_MI_ARB_ON_OFF_length_bias 0x00000001
4829 #define GEN7_MI_ARB_ON_OFF_header \
4831 .MICommandOpcode = 8
4833 struct GEN7_MI_ARB_ON_OFF
{
4834 uint32_t CommandType
;
4835 uint32_t MICommandOpcode
;
4836 uint32_t ArbitrationEnable
;
4840 GEN7_MI_ARB_ON_OFF_pack(__gen_user_data
*data
, void * restrict dst
,
4841 const struct GEN7_MI_ARB_ON_OFF
* restrict values
)
4843 uint32_t *dw
= (uint32_t * restrict
) dst
;
4846 __gen_field(values
->CommandType
, 29, 31) |
4847 __gen_field(values
->MICommandOpcode
, 23, 28) |
4848 __gen_field(values
->ArbitrationEnable
, 0, 0) |
4853 #define GEN7_MI_BATCH_BUFFER_END_length 0x00000001
4854 #define GEN7_MI_BATCH_BUFFER_END_length_bias 0x00000001
4855 #define GEN7_MI_BATCH_BUFFER_END_header \
4857 .MICommandOpcode = 10
4859 struct GEN7_MI_BATCH_BUFFER_END
{
4860 uint32_t CommandType
;
4861 uint32_t MICommandOpcode
;
4865 GEN7_MI_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
4866 const struct GEN7_MI_BATCH_BUFFER_END
* restrict values
)
4868 uint32_t *dw
= (uint32_t * restrict
) dst
;
4871 __gen_field(values
->CommandType
, 29, 31) |
4872 __gen_field(values
->MICommandOpcode
, 23, 28) |
4877 #define GEN7_MI_BATCH_BUFFER_START_length 0x00000002
4878 #define GEN7_MI_BATCH_BUFFER_START_length_bias 0x00000002
4879 #define GEN7_MI_BATCH_BUFFER_START_header \
4881 .MICommandOpcode = 49, \
4884 struct GEN7_MI_BATCH_BUFFER_START
{
4885 uint32_t CommandType
;
4886 uint32_t MICommandOpcode
;
4887 uint32_t ClearCommandBufferEnable
;
4890 uint32_t AddressSpaceIndicator
;
4891 uint32_t DwordLength
;
4892 __gen_address_type BatchBufferStartAddress
;
4896 GEN7_MI_BATCH_BUFFER_START_pack(__gen_user_data
*data
, void * restrict dst
,
4897 const struct GEN7_MI_BATCH_BUFFER_START
* restrict values
)
4899 uint32_t *dw
= (uint32_t * restrict
) dst
;
4902 __gen_field(values
->CommandType
, 29, 31) |
4903 __gen_field(values
->MICommandOpcode
, 23, 28) |
4904 __gen_field(values
->ClearCommandBufferEnable
, 11, 11) |
4905 __gen_field(values
->AddressSpaceIndicator
, 8, 8) |
4906 __gen_field(values
->DwordLength
, 0, 7) |
4913 __gen_combine_address(data
, &dw
[1], values
->BatchBufferStartAddress
, dw1
);
4917 #define GEN7_MI_CLFLUSH_length_bias 0x00000002
4918 #define GEN7_MI_CLFLUSH_header \
4920 .MICommandOpcode = 39
4922 struct GEN7_MI_CLFLUSH
{
4923 uint32_t CommandType
;
4924 uint32_t MICommandOpcode
;
4925 #define PerProcessGraphicsAddress 0
4926 #define GlobalGraphicsAddress 1
4927 uint32_t UseGlobalGTT
;
4928 uint32_t DwordLength
;
4929 __gen_address_type PageBaseAddress
;
4930 uint32_t StartingCachelineOffset
;
4931 __gen_address_type PageBaseAddressHigh
;
4932 /* variable length fields follow */
4936 GEN7_MI_CLFLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
4937 const struct GEN7_MI_CLFLUSH
* restrict values
)
4939 uint32_t *dw
= (uint32_t * restrict
) dst
;
4942 __gen_field(values
->CommandType
, 29, 31) |
4943 __gen_field(values
->MICommandOpcode
, 23, 28) |
4944 __gen_field(values
->UseGlobalGTT
, 22, 22) |
4945 __gen_field(values
->DwordLength
, 0, 9) |
4949 __gen_field(values
->StartingCachelineOffset
, 6, 11) |
4953 __gen_combine_address(data
, &dw
[1], values
->PageBaseAddress
, dw1
);
4959 __gen_combine_address(data
, &dw
[2], values
->PageBaseAddressHigh
, dw2
);
4961 /* variable length fields follow */
4964 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
4965 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
4966 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_header\
4968 .MICommandOpcode = 54, \
4969 .UseGlobalGTT = 0, \
4970 .CompareSemaphore = 0, \
4973 struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
{
4974 uint32_t CommandType
;
4975 uint32_t MICommandOpcode
;
4976 uint32_t UseGlobalGTT
;
4977 uint32_t CompareSemaphore
;
4978 uint32_t DwordLength
;
4979 uint32_t CompareDataDword
;
4980 __gen_address_type CompareAddress
;
4984 GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data
*data
, void * restrict dst
,
4985 const struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END
* restrict values
)
4987 uint32_t *dw
= (uint32_t * restrict
) dst
;
4990 __gen_field(values
->CommandType
, 29, 31) |
4991 __gen_field(values
->MICommandOpcode
, 23, 28) |
4992 __gen_field(values
->UseGlobalGTT
, 22, 22) |
4993 __gen_field(values
->CompareSemaphore
, 21, 21) |
4994 __gen_field(values
->DwordLength
, 0, 7) |
4998 __gen_field(values
->CompareDataDword
, 0, 31) |
5005 __gen_combine_address(data
, &dw
[2], values
->CompareAddress
, dw2
);
5009 #define GEN7_MI_FLUSH_length 0x00000001
5010 #define GEN7_MI_FLUSH_length_bias 0x00000001
5011 #define GEN7_MI_FLUSH_header \
5013 .MICommandOpcode = 4
5015 struct GEN7_MI_FLUSH
{
5016 uint32_t CommandType
;
5017 uint32_t MICommandOpcode
;
5018 uint32_t IndirectStatePointersDisable
;
5019 uint32_t GenericMediaStateClear
;
5022 uint32_t GlobalSnapshotCountReset
;
5025 uint32_t RenderCacheFlushInhibit
;
5026 #define DontInvalidate 0
5027 #define Invalidate 1
5028 uint32_t StateInstructionCacheInvalidate
;
5032 GEN7_MI_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5033 const struct GEN7_MI_FLUSH
* restrict values
)
5035 uint32_t *dw
= (uint32_t * restrict
) dst
;
5038 __gen_field(values
->CommandType
, 29, 31) |
5039 __gen_field(values
->MICommandOpcode
, 23, 28) |
5040 __gen_field(values
->IndirectStatePointersDisable
, 5, 5) |
5041 __gen_field(values
->GenericMediaStateClear
, 4, 4) |
5042 __gen_field(values
->GlobalSnapshotCountReset
, 3, 3) |
5043 __gen_field(values
->RenderCacheFlushInhibit
, 2, 2) |
5044 __gen_field(values
->StateInstructionCacheInvalidate
, 1, 1) |
5049 #define GEN7_MI_LOAD_REGISTER_IMM_length 0x00000003
5050 #define GEN7_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
5051 #define GEN7_MI_LOAD_REGISTER_IMM_header \
5053 .MICommandOpcode = 34, \
5056 struct GEN7_MI_LOAD_REGISTER_IMM
{
5057 uint32_t CommandType
;
5058 uint32_t MICommandOpcode
;
5059 uint32_t ByteWriteDisables
;
5060 uint32_t DwordLength
;
5061 uint32_t RegisterOffset
;
5066 GEN7_MI_LOAD_REGISTER_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5067 const struct GEN7_MI_LOAD_REGISTER_IMM
* restrict values
)
5069 uint32_t *dw
= (uint32_t * restrict
) dst
;
5072 __gen_field(values
->CommandType
, 29, 31) |
5073 __gen_field(values
->MICommandOpcode
, 23, 28) |
5074 __gen_field(values
->ByteWriteDisables
, 8, 11) |
5075 __gen_field(values
->DwordLength
, 0, 7) |
5079 __gen_offset(values
->RegisterOffset
, 2, 22) |
5083 __gen_field(values
->DataDWord
, 0, 31) |
5088 #define GEN7_MI_LOAD_REGISTER_MEM_length 0x00000003
5089 #define GEN7_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
5090 #define GEN7_MI_LOAD_REGISTER_MEM_header \
5092 .MICommandOpcode = 41, \
5095 struct GEN7_MI_LOAD_REGISTER_MEM
{
5096 uint32_t CommandType
;
5097 uint32_t MICommandOpcode
;
5098 uint32_t UseGlobalGTT
;
5099 uint32_t AsyncModeEnable
;
5100 uint32_t DwordLength
;
5101 uint32_t RegisterAddress
;
5102 __gen_address_type MemoryAddress
;
5106 GEN7_MI_LOAD_REGISTER_MEM_pack(__gen_user_data
*data
, void * restrict dst
,
5107 const struct GEN7_MI_LOAD_REGISTER_MEM
* restrict values
)
5109 uint32_t *dw
= (uint32_t * restrict
) dst
;
5112 __gen_field(values
->CommandType
, 29, 31) |
5113 __gen_field(values
->MICommandOpcode
, 23, 28) |
5114 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5115 __gen_field(values
->AsyncModeEnable
, 21, 21) |
5116 __gen_field(values
->DwordLength
, 0, 7) |
5120 __gen_offset(values
->RegisterAddress
, 2, 22) |
5127 __gen_combine_address(data
, &dw
[2], values
->MemoryAddress
, dw2
);
5131 #define GEN7_MI_NOOP_length 0x00000001
5132 #define GEN7_MI_NOOP_length_bias 0x00000001
5133 #define GEN7_MI_NOOP_header \
5135 .MICommandOpcode = 0
5137 struct GEN7_MI_NOOP
{
5138 uint32_t CommandType
;
5139 uint32_t MICommandOpcode
;
5140 uint32_t IdentificationNumberRegisterWriteEnable
;
5141 uint32_t IdentificationNumber
;
5145 GEN7_MI_NOOP_pack(__gen_user_data
*data
, void * restrict dst
,
5146 const struct GEN7_MI_NOOP
* restrict values
)
5148 uint32_t *dw
= (uint32_t * restrict
) dst
;
5151 __gen_field(values
->CommandType
, 29, 31) |
5152 __gen_field(values
->MICommandOpcode
, 23, 28) |
5153 __gen_field(values
->IdentificationNumberRegisterWriteEnable
, 22, 22) |
5154 __gen_field(values
->IdentificationNumber
, 0, 21) |
5159 #define GEN7_MI_PREDICATE_length 0x00000001
5160 #define GEN7_MI_PREDICATE_length_bias 0x00000001
5161 #define GEN7_MI_PREDICATE_header \
5163 .MICommandOpcode = 12
5165 struct GEN7_MI_PREDICATE
{
5166 uint32_t CommandType
;
5167 uint32_t MICommandOpcode
;
5171 uint32_t LoadOperation
;
5172 #define COMBINE_SET 0
5173 #define COMBINE_AND 1
5174 #define COMBINE_OR 2
5175 #define COMBINE_XOR 3
5176 uint32_t CombineOperation
;
5177 #define COMPARE_SRCS_EQUAL 2
5178 #define COMPARE_DELTAS_EQUAL 3
5179 uint32_t CompareOperation
;
5183 GEN7_MI_PREDICATE_pack(__gen_user_data
*data
, void * restrict dst
,
5184 const struct GEN7_MI_PREDICATE
* restrict values
)
5186 uint32_t *dw
= (uint32_t * restrict
) dst
;
5189 __gen_field(values
->CommandType
, 29, 31) |
5190 __gen_field(values
->MICommandOpcode
, 23, 28) |
5191 __gen_field(values
->LoadOperation
, 6, 7) |
5192 __gen_field(values
->CombineOperation
, 3, 4) |
5193 __gen_field(values
->CompareOperation
, 0, 1) |
5198 #define GEN7_MI_REPORT_HEAD_length 0x00000001
5199 #define GEN7_MI_REPORT_HEAD_length_bias 0x00000001
5200 #define GEN7_MI_REPORT_HEAD_header \
5202 .MICommandOpcode = 7
5204 struct GEN7_MI_REPORT_HEAD
{
5205 uint32_t CommandType
;
5206 uint32_t MICommandOpcode
;
5210 GEN7_MI_REPORT_HEAD_pack(__gen_user_data
*data
, void * restrict dst
,
5211 const struct GEN7_MI_REPORT_HEAD
* restrict values
)
5213 uint32_t *dw
= (uint32_t * restrict
) dst
;
5216 __gen_field(values
->CommandType
, 29, 31) |
5217 __gen_field(values
->MICommandOpcode
, 23, 28) |
5222 #define GEN7_MI_SEMAPHORE_MBOX_length 0x00000003
5223 #define GEN7_MI_SEMAPHORE_MBOX_length_bias 0x00000002
5224 #define GEN7_MI_SEMAPHORE_MBOX_header \
5226 .MICommandOpcode = 22, \
5229 struct GEN7_MI_SEMAPHORE_MBOX
{
5230 uint32_t CommandType
;
5231 uint32_t MICommandOpcode
;
5234 #define UseGeneralRegisterSelect 3
5235 uint32_t RegisterSelect
;
5236 uint32_t DwordLength
;
5237 uint32_t SemaphoreDataDword
;
5241 GEN7_MI_SEMAPHORE_MBOX_pack(__gen_user_data
*data
, void * restrict dst
,
5242 const struct GEN7_MI_SEMAPHORE_MBOX
* restrict values
)
5244 uint32_t *dw
= (uint32_t * restrict
) dst
;
5247 __gen_field(values
->CommandType
, 29, 31) |
5248 __gen_field(values
->MICommandOpcode
, 23, 28) |
5249 __gen_field(values
->RegisterSelect
, 16, 17) |
5250 __gen_field(values
->DwordLength
, 0, 7) |
5254 __gen_field(values
->SemaphoreDataDword
, 0, 31) |
5262 #define GEN7_MI_SET_CONTEXT_length 0x00000002
5263 #define GEN7_MI_SET_CONTEXT_length_bias 0x00000002
5264 #define GEN7_MI_SET_CONTEXT_header \
5266 .MICommandOpcode = 24, \
5269 struct GEN7_MI_SET_CONTEXT
{
5270 uint32_t CommandType
;
5271 uint32_t MICommandOpcode
;
5272 uint32_t DwordLength
;
5273 __gen_address_type LogicalContextAddress
;
5274 uint32_t ReservedMustbe1
;
5275 uint32_t ExtendedStateSaveEnable
;
5276 uint32_t ExtendedStateRestoreEnable
;
5277 uint32_t ForceRestore
;
5278 uint32_t RestoreInhibit
;
5282 GEN7_MI_SET_CONTEXT_pack(__gen_user_data
*data
, void * restrict dst
,
5283 const struct GEN7_MI_SET_CONTEXT
* restrict values
)
5285 uint32_t *dw
= (uint32_t * restrict
) dst
;
5288 __gen_field(values
->CommandType
, 29, 31) |
5289 __gen_field(values
->MICommandOpcode
, 23, 28) |
5290 __gen_field(values
->DwordLength
, 0, 7) |
5294 __gen_field(values
->ReservedMustbe1
, 8, 8) |
5295 __gen_field(values
->ExtendedStateSaveEnable
, 3, 3) |
5296 __gen_field(values
->ExtendedStateRestoreEnable
, 2, 2) |
5297 __gen_field(values
->ForceRestore
, 1, 1) |
5298 __gen_field(values
->RestoreInhibit
, 0, 0) |
5302 __gen_combine_address(data
, &dw
[1], values
->LogicalContextAddress
, dw1
);
5306 #define GEN7_MI_STORE_DATA_IMM_length 0x00000004
5307 #define GEN7_MI_STORE_DATA_IMM_length_bias 0x00000002
5308 #define GEN7_MI_STORE_DATA_IMM_header \
5310 .MICommandOpcode = 32, \
5313 struct GEN7_MI_STORE_DATA_IMM
{
5314 uint32_t CommandType
;
5315 uint32_t MICommandOpcode
;
5316 uint32_t UseGlobalGTT
;
5317 uint32_t DwordLength
;
5319 uint32_t CoreModeEnable
;
5320 uint32_t DataDWord0
;
5321 uint32_t DataDWord1
;
5325 GEN7_MI_STORE_DATA_IMM_pack(__gen_user_data
*data
, void * restrict dst
,
5326 const struct GEN7_MI_STORE_DATA_IMM
* restrict values
)
5328 uint32_t *dw
= (uint32_t * restrict
) dst
;
5331 __gen_field(values
->CommandType
, 29, 31) |
5332 __gen_field(values
->MICommandOpcode
, 23, 28) |
5333 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5334 __gen_field(values
->DwordLength
, 0, 5) |
5341 __gen_field(values
->Address
, 2, 31) |
5342 __gen_field(values
->CoreModeEnable
, 0, 0) |
5346 __gen_field(values
->DataDWord0
, 0, 31) |
5350 __gen_field(values
->DataDWord1
, 0, 31) |
5355 #define GEN7_MI_STORE_DATA_INDEX_length 0x00000003
5356 #define GEN7_MI_STORE_DATA_INDEX_length_bias 0x00000002
5357 #define GEN7_MI_STORE_DATA_INDEX_header \
5359 .MICommandOpcode = 33, \
5362 struct GEN7_MI_STORE_DATA_INDEX
{
5363 uint32_t CommandType
;
5364 uint32_t MICommandOpcode
;
5365 uint32_t DwordLength
;
5367 uint32_t DataDWord0
;
5368 uint32_t DataDWord1
;
5372 GEN7_MI_STORE_DATA_INDEX_pack(__gen_user_data
*data
, void * restrict dst
,
5373 const struct GEN7_MI_STORE_DATA_INDEX
* restrict values
)
5375 uint32_t *dw
= (uint32_t * restrict
) dst
;
5378 __gen_field(values
->CommandType
, 29, 31) |
5379 __gen_field(values
->MICommandOpcode
, 23, 28) |
5380 __gen_field(values
->DwordLength
, 0, 7) |
5384 __gen_field(values
->Offset
, 2, 11) |
5388 __gen_field(values
->DataDWord0
, 0, 31) |
5392 __gen_field(values
->DataDWord1
, 0, 31) |
5397 #define GEN7_MI_SUSPEND_FLUSH_length 0x00000001
5398 #define GEN7_MI_SUSPEND_FLUSH_length_bias 0x00000001
5399 #define GEN7_MI_SUSPEND_FLUSH_header \
5401 .MICommandOpcode = 11
5403 struct GEN7_MI_SUSPEND_FLUSH
{
5404 uint32_t CommandType
;
5405 uint32_t MICommandOpcode
;
5406 uint32_t SuspendFlush
;
5410 GEN7_MI_SUSPEND_FLUSH_pack(__gen_user_data
*data
, void * restrict dst
,
5411 const struct GEN7_MI_SUSPEND_FLUSH
* restrict values
)
5413 uint32_t *dw
= (uint32_t * restrict
) dst
;
5416 __gen_field(values
->CommandType
, 29, 31) |
5417 __gen_field(values
->MICommandOpcode
, 23, 28) |
5418 __gen_field(values
->SuspendFlush
, 0, 0) |
5423 #define GEN7_MI_TOPOLOGY_FILTER_length 0x00000001
5424 #define GEN7_MI_TOPOLOGY_FILTER_length_bias 0x00000001
5425 #define GEN7_MI_TOPOLOGY_FILTER_header \
5427 .MICommandOpcode = 13
5429 struct GEN7_MI_TOPOLOGY_FILTER
{
5430 uint32_t CommandType
;
5431 uint32_t MICommandOpcode
;
5432 uint32_t TopologyFilterValue
;
5436 GEN7_MI_TOPOLOGY_FILTER_pack(__gen_user_data
*data
, void * restrict dst
,
5437 const struct GEN7_MI_TOPOLOGY_FILTER
* restrict values
)
5439 uint32_t *dw
= (uint32_t * restrict
) dst
;
5442 __gen_field(values
->CommandType
, 29, 31) |
5443 __gen_field(values
->MICommandOpcode
, 23, 28) |
5444 __gen_field(values
->TopologyFilterValue
, 0, 5) |
5449 #define GEN7_MI_UPDATE_GTT_length_bias 0x00000002
5450 #define GEN7_MI_UPDATE_GTT_header \
5452 .MICommandOpcode = 35
5454 struct GEN7_MI_UPDATE_GTT
{
5455 uint32_t CommandType
;
5456 uint32_t MICommandOpcode
;
5457 #define PerProcessGraphicsAddress 0
5458 #define GlobalGraphicsAddress 1
5459 uint32_t UseGlobalGTT
;
5460 uint32_t DwordLength
;
5461 __gen_address_type EntryAddress
;
5462 /* variable length fields follow */
5466 GEN7_MI_UPDATE_GTT_pack(__gen_user_data
*data
, void * restrict dst
,
5467 const struct GEN7_MI_UPDATE_GTT
* restrict values
)
5469 uint32_t *dw
= (uint32_t * restrict
) dst
;
5472 __gen_field(values
->CommandType
, 29, 31) |
5473 __gen_field(values
->MICommandOpcode
, 23, 28) |
5474 __gen_field(values
->UseGlobalGTT
, 22, 22) |
5475 __gen_field(values
->DwordLength
, 0, 7) |
5482 __gen_combine_address(data
, &dw
[1], values
->EntryAddress
, dw1
);
5484 /* variable length fields follow */
5487 #define GEN7_MI_URB_CLEAR_length 0x00000002
5488 #define GEN7_MI_URB_CLEAR_length_bias 0x00000002
5489 #define GEN7_MI_URB_CLEAR_header \
5491 .MICommandOpcode = 25, \
5494 struct GEN7_MI_URB_CLEAR
{
5495 uint32_t CommandType
;
5496 uint32_t MICommandOpcode
;
5497 uint32_t DwordLength
;
5498 uint32_t URBClearLength
;
5499 uint32_t URBAddress
;
5503 GEN7_MI_URB_CLEAR_pack(__gen_user_data
*data
, void * restrict dst
,
5504 const struct GEN7_MI_URB_CLEAR
* restrict values
)
5506 uint32_t *dw
= (uint32_t * restrict
) dst
;
5509 __gen_field(values
->CommandType
, 29, 31) |
5510 __gen_field(values
->MICommandOpcode
, 23, 28) |
5511 __gen_field(values
->DwordLength
, 0, 7) |
5515 __gen_field(values
->URBClearLength
, 16, 28) |
5516 __gen_offset(values
->URBAddress
, 0, 13) |
5521 #define GEN7_MI_USER_INTERRUPT_length 0x00000001
5522 #define GEN7_MI_USER_INTERRUPT_length_bias 0x00000001
5523 #define GEN7_MI_USER_INTERRUPT_header \
5525 .MICommandOpcode = 2
5527 struct GEN7_MI_USER_INTERRUPT
{
5528 uint32_t CommandType
;
5529 uint32_t MICommandOpcode
;
5533 GEN7_MI_USER_INTERRUPT_pack(__gen_user_data
*data
, void * restrict dst
,
5534 const struct GEN7_MI_USER_INTERRUPT
* restrict values
)
5536 uint32_t *dw
= (uint32_t * restrict
) dst
;
5539 __gen_field(values
->CommandType
, 29, 31) |
5540 __gen_field(values
->MICommandOpcode
, 23, 28) |
5545 #define GEN7_MI_WAIT_FOR_EVENT_length 0x00000001
5546 #define GEN7_MI_WAIT_FOR_EVENT_length_bias 0x00000001
5547 #define GEN7_MI_WAIT_FOR_EVENT_header \
5549 .MICommandOpcode = 3
5551 struct GEN7_MI_WAIT_FOR_EVENT
{
5552 uint32_t CommandType
;
5553 uint32_t MICommandOpcode
;
5554 uint32_t DisplayPipeCHorizontalBlankWaitEnable
;
5555 uint32_t DisplayPipeCVerticalBlankWaitEnable
;
5556 uint32_t DisplaySpriteCFlipPendingWaitEnable
;
5557 #define Notenabled 0
5558 uint32_t ConditionCodeWaitSelect
;
5559 uint32_t DisplayPlaneCFlipPendingWaitEnable
;
5560 uint32_t DisplayPipeCScanLineWaitEnable
;
5561 uint32_t DisplayPipeBHorizontalBlankWaitEnable
;
5562 uint32_t DisplayPipeBVerticalBlankWaitEnable
;
5563 uint32_t DisplaySpriteBFlipPendingWaitEnable
;
5564 uint32_t DisplayPlaneBFlipPendingWaitEnable
;
5565 uint32_t DisplayPipeBScanLineWaitEnable
;
5566 uint32_t DisplayPipeAHorizontalBlankWaitEnable
;
5567 uint32_t DisplayPipeAVerticalBlankWaitEnable
;
5568 uint32_t DisplaySpriteAFlipPendingWaitEnable
;
5569 uint32_t DisplayPlaneAFlipPendingWaitEnable
;
5570 uint32_t DisplayPipeAScanLineWaitEnable
;
5574 GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data
*data
, void * restrict dst
,
5575 const struct GEN7_MI_WAIT_FOR_EVENT
* restrict values
)
5577 uint32_t *dw
= (uint32_t * restrict
) dst
;
5580 __gen_field(values
->CommandType
, 29, 31) |
5581 __gen_field(values
->MICommandOpcode
, 23, 28) |
5582 __gen_field(values
->DisplayPipeCHorizontalBlankWaitEnable
, 22, 22) |
5583 __gen_field(values
->DisplayPipeCVerticalBlankWaitEnable
, 21, 21) |
5584 __gen_field(values
->DisplaySpriteCFlipPendingWaitEnable
, 20, 20) |
5585 __gen_field(values
->ConditionCodeWaitSelect
, 16, 19) |
5586 __gen_field(values
->DisplayPlaneCFlipPendingWaitEnable
, 15, 15) |
5587 __gen_field(values
->DisplayPipeCScanLineWaitEnable
, 14, 14) |
5588 __gen_field(values
->DisplayPipeBHorizontalBlankWaitEnable
, 13, 13) |
5589 __gen_field(values
->DisplayPipeBVerticalBlankWaitEnable
, 11, 11) |
5590 __gen_field(values
->DisplaySpriteBFlipPendingWaitEnable
, 10, 10) |
5591 __gen_field(values
->DisplayPlaneBFlipPendingWaitEnable
, 9, 9) |
5592 __gen_field(values
->DisplayPipeBScanLineWaitEnable
, 8, 8) |
5593 __gen_field(values
->DisplayPipeAHorizontalBlankWaitEnable
, 5, 5) |
5594 __gen_field(values
->DisplayPipeAVerticalBlankWaitEnable
, 3, 3) |
5595 __gen_field(values
->DisplaySpriteAFlipPendingWaitEnable
, 2, 2) |
5596 __gen_field(values
->DisplayPlaneAFlipPendingWaitEnable
, 1, 1) |
5597 __gen_field(values
->DisplayPipeAScanLineWaitEnable
, 0, 0) |
5602 #define GEN7_PIPE_CONTROL_length 0x00000005
5603 #define GEN7_PIPE_CONTROL_length_bias 0x00000002
5604 #define GEN7_PIPE_CONTROL_header \
5606 .CommandSubType = 3, \
5607 ._3DCommandOpcode = 2, \
5608 ._3DCommandSubOpcode = 0, \
5611 struct GEN7_PIPE_CONTROL
{
5612 uint32_t CommandType
;
5613 uint32_t CommandSubType
;
5614 uint32_t _3DCommandOpcode
;
5615 uint32_t _3DCommandSubOpcode
;
5616 uint32_t DwordLength
;
5619 uint32_t DestinationAddressType
;
5620 #define NoLRIOperation 0
5621 #define MMIOWriteImmediateData 1
5622 uint32_t LRIPostSyncOperation
;
5623 uint32_t StoreDataIndex
;
5624 uint32_t CommandStreamerStallEnable
;
5627 uint32_t GlobalSnapshotCountReset
;
5628 uint32_t TLBInvalidate
;
5629 uint32_t GenericMediaStateClear
;
5631 #define WriteImmediateData 1
5632 #define WritePSDepthCount 2
5633 #define WriteTimestamp 3
5634 uint32_t PostSyncOperation
;
5635 uint32_t DepthStallEnable
;
5636 #define DisableFlush 0
5637 #define EnableFlush 1
5638 uint32_t RenderTargetCacheFlushEnable
;
5639 uint32_t InstructionCacheInvalidateEnable
;
5640 uint32_t TextureCacheInvalidationEnable
;
5641 uint32_t IndirectStatePointersDisable
;
5642 uint32_t NotifyEnable
;
5643 uint32_t PipeControlFlushEnable
;
5644 uint32_t DCFlushEnable
;
5645 uint32_t VFCacheInvalidationEnable
;
5646 uint32_t ConstantCacheInvalidationEnable
;
5647 uint32_t StateCacheInvalidationEnable
;
5648 uint32_t StallAtPixelScoreboard
;
5649 #define FlushDisabled 0
5650 #define FlushEnabled 1
5651 uint32_t DepthCacheFlushEnable
;
5652 __gen_address_type Address
;
5653 uint32_t ImmediateData
;
5654 uint32_t ImmediateData0
;
5658 GEN7_PIPE_CONTROL_pack(__gen_user_data
*data
, void * restrict dst
,
5659 const struct GEN7_PIPE_CONTROL
* restrict values
)
5661 uint32_t *dw
= (uint32_t * restrict
) dst
;
5664 __gen_field(values
->CommandType
, 29, 31) |
5665 __gen_field(values
->CommandSubType
, 27, 28) |
5666 __gen_field(values
->_3DCommandOpcode
, 24, 26) |
5667 __gen_field(values
->_3DCommandSubOpcode
, 16, 23) |
5668 __gen_field(values
->DwordLength
, 0, 7) |
5672 __gen_field(values
->DestinationAddressType
, 24, 24) |
5673 __gen_field(values
->LRIPostSyncOperation
, 23, 23) |
5674 __gen_field(values
->StoreDataIndex
, 21, 21) |
5675 __gen_field(values
->CommandStreamerStallEnable
, 20, 20) |
5676 __gen_field(values
->GlobalSnapshotCountReset
, 19, 19) |
5677 __gen_field(values
->TLBInvalidate
, 18, 18) |
5678 __gen_field(values
->GenericMediaStateClear
, 16, 16) |
5679 __gen_field(values
->PostSyncOperation
, 14, 15) |
5680 __gen_field(values
->DepthStallEnable
, 13, 13) |
5681 __gen_field(values
->RenderTargetCacheFlushEnable
, 12, 12) |
5682 __gen_field(values
->InstructionCacheInvalidateEnable
, 11, 11) |
5683 __gen_field(values
->TextureCacheInvalidationEnable
, 10, 10) |
5684 __gen_field(values
->IndirectStatePointersDisable
, 9, 9) |
5685 __gen_field(values
->NotifyEnable
, 8, 8) |
5686 __gen_field(values
->PipeControlFlushEnable
, 7, 7) |
5687 __gen_field(values
->DCFlushEnable
, 5, 5) |
5688 __gen_field(values
->VFCacheInvalidationEnable
, 4, 4) |
5689 __gen_field(values
->ConstantCacheInvalidationEnable
, 3, 3) |
5690 __gen_field(values
->StateCacheInvalidationEnable
, 2, 2) |
5691 __gen_field(values
->StallAtPixelScoreboard
, 1, 1) |
5692 __gen_field(values
->DepthCacheFlushEnable
, 0, 0) |
5699 __gen_combine_address(data
, &dw
[2], values
->Address
, dw2
);
5702 __gen_field(values
->ImmediateData
, 0, 31) |
5706 __gen_field(values
->ImmediateData
, 0, 31) |
5711 #define GEN7_3DSTATE_CONSTANT_BODY_length 0x00000006
5713 #define GEN7_VERTEX_BUFFER_STATE_length 0x00000004
5715 #define GEN7_VERTEX_ELEMENT_STATE_length 0x00000002
5717 #define GEN7_SO_DECL_ENTRY_length 0x00000002
5719 #define GEN7_SO_DECL_length 0x00000001
5721 #define GEN7_SCISSOR_RECT_length 0x00000002
5723 struct GEN7_SCISSOR_RECT
{
5724 uint32_t ScissorRectangleYMin
;
5725 uint32_t ScissorRectangleXMin
;
5726 uint32_t ScissorRectangleYMax
;
5727 uint32_t ScissorRectangleXMax
;
5731 GEN7_SCISSOR_RECT_pack(__gen_user_data
*data
, void * restrict dst
,
5732 const struct GEN7_SCISSOR_RECT
* restrict values
)
5734 uint32_t *dw
= (uint32_t * restrict
) dst
;
5737 __gen_field(values
->ScissorRectangleYMin
, 16, 31) |
5738 __gen_field(values
->ScissorRectangleXMin
, 0, 15) |
5742 __gen_field(values
->ScissorRectangleYMax
, 16, 31) |
5743 __gen_field(values
->ScissorRectangleXMax
, 0, 15) |
5748 #define GEN7_SF_CLIP_VIEWPORT_length 0x00000010
5750 struct GEN7_SF_CLIP_VIEWPORT
{
5751 float ViewportMatrixElementm00
;
5752 float ViewportMatrixElementm11
;
5753 float ViewportMatrixElementm22
;
5754 float ViewportMatrixElementm30
;
5755 float ViewportMatrixElementm31
;
5756 float ViewportMatrixElementm32
;
5757 float XMinClipGuardband
;
5758 float XMaxClipGuardband
;
5759 float YMinClipGuardband
;
5760 float YMaxClipGuardband
;
5764 GEN7_SF_CLIP_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
5765 const struct GEN7_SF_CLIP_VIEWPORT
* restrict values
)
5767 uint32_t *dw
= (uint32_t * restrict
) dst
;
5770 __gen_float(values
->ViewportMatrixElementm00
) |
5774 __gen_float(values
->ViewportMatrixElementm11
) |
5778 __gen_float(values
->ViewportMatrixElementm22
) |
5782 __gen_float(values
->ViewportMatrixElementm30
) |
5786 __gen_float(values
->ViewportMatrixElementm31
) |
5790 __gen_float(values
->ViewportMatrixElementm32
) |
5800 __gen_float(values
->XMinClipGuardband
) |
5804 __gen_float(values
->XMaxClipGuardband
) |
5808 __gen_float(values
->YMinClipGuardband
) |
5812 __gen_float(values
->YMaxClipGuardband
) |
5820 #define GEN7_BLEND_STATE_length 0x00000002
5822 struct GEN7_BLEND_STATE
{
5823 uint32_t ColorBufferBlendEnable
;
5824 uint32_t IndependentAlphaBlendEnable
;
5825 #define BLENDFUNCTION_ADD 0
5826 #define BLENDFUNCTION_SUBTRACT 1
5827 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5828 #define BLENDFUNCTION_MIN 3
5829 #define BLENDFUNCTION_MAX 4
5830 uint32_t AlphaBlendFunction
;
5831 #define BLENDFACTOR_ONE 1
5832 #define BLENDFACTOR_SRC_COLOR 2
5833 #define BLENDFACTOR_SRC_ALPHA 3
5834 #define BLENDFACTOR_DST_ALPHA 4
5835 #define BLENDFACTOR_DST_COLOR 5
5836 #define BLENDFACTOR_SRC_ALPHA_SATURATE 6
5837 #define BLENDFACTOR_CONST_COLOR 7
5838 #define BLENDFACTOR_CONST_ALPHA 8
5839 #define BLENDFACTOR_SRC1_COLOR 9
5840 #define BLENDFACTOR_SRC1_ALPHA 10
5841 #define BLENDFACTOR_ZERO 17
5842 #define BLENDFACTOR_INV_SRC_COLOR 18
5843 #define BLENDFACTOR_INV_SRC_ALPHA 19
5844 #define BLENDFACTOR_INV_DST_ALPHA 20
5845 #define BLENDFACTOR_INV_DST_COLOR 21
5846 #define BLENDFACTOR_INV_CONST_COLOR 23
5847 #define BLENDFACTOR_INV_CONST_ALPHA 24
5848 #define BLENDFACTOR_INV_SRC1_COLOR 25
5849 #define BLENDFACTOR_INV_SRC1_ALPHA 26
5850 uint32_t SourceAlphaBlendFactor
;
5851 uint32_t DestinationAlphaBlendFactor
;
5852 #define BLENDFUNCTION_ADD 0
5853 #define BLENDFUNCTION_SUBTRACT 1
5854 #define BLENDFUNCTION_REVERSE_SUBTRACT 2
5855 #define BLENDFUNCTION_MIN 3
5856 #define BLENDFUNCTION_MAX 4
5857 uint32_t ColorBlendFunction
;
5858 uint32_t SourceBlendFactor
;
5859 uint32_t DestinationBlendFactor
;
5860 uint32_t AlphaToCoverageEnable
;
5861 uint32_t AlphaToOneEnable
;
5862 uint32_t AlphaToCoverageDitherEnable
;
5863 uint32_t WriteDisableAlpha
;
5864 uint32_t WriteDisableRed
;
5865 uint32_t WriteDisableGreen
;
5866 uint32_t WriteDisableBlue
;
5867 uint32_t LogicOpEnable
;
5868 #define LOGICOP_CLEAR 0
5869 #define LOGICOP_NOR 1
5870 #define LOGICOP_AND_INVERTED 2
5871 #define LOGICOP_COPY_INVERTED 3
5872 #define LOGICOP_AND_REVERSE 4
5873 #define LOGICOP_INVERT 5
5874 #define LOGICOP_XOR 6
5875 #define LOGICOP_NAND 7
5876 #define LOGICOP_AND 8
5877 #define LOGICOP_EQUIV 9
5878 #define LOGICOP_NOOP 10
5879 #define LOGICOP_OR_INVERTED 11
5880 #define LOGICOP_COPY 12
5881 #define LOGICOP_OR_REVERSE 13
5882 #define LOGICOP_OR 14
5883 #define LOGICOP_SET 15
5884 uint32_t LogicOpFunction
;
5885 uint32_t AlphaTestEnable
;
5886 #define COMPAREFUNCTION_ALWAYS 0
5887 #define COMPAREFUNCTION_NEVER 1
5888 #define COMPAREFUNCTION_LESS 2
5889 #define COMPAREFUNCTION_EQUAL 3
5890 #define COMPAREFUNCTION_LEQUAL 4
5891 #define COMPAREFUNCTION_GREATER 5
5892 #define COMPAREFUNCTION_NOTEQUAL 6
5893 #define COMPAREFUNCTION_GEQUAL 7
5894 uint32_t AlphaTestFunction
;
5895 uint32_t ColorDitherEnable
;
5896 uint32_t XDitherOffset
;
5897 uint32_t YDitherOffset
;
5898 #define COLORCLAMP_UNORM 0
5899 #define COLORCLAMP_SNORM 1
5900 #define COLORCLAMP_RTFORMAT 2
5901 uint32_t ColorClampRange
;
5902 uint32_t PreBlendColorClampEnable
;
5903 uint32_t PostBlendColorClampEnable
;
5907 GEN7_BLEND_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5908 const struct GEN7_BLEND_STATE
* restrict values
)
5910 uint32_t *dw
= (uint32_t * restrict
) dst
;
5913 __gen_field(values
->ColorBufferBlendEnable
, 31, 31) |
5914 __gen_field(values
->IndependentAlphaBlendEnable
, 30, 30) |
5915 __gen_field(values
->AlphaBlendFunction
, 26, 28) |
5916 __gen_field(values
->SourceAlphaBlendFactor
, 20, 24) |
5917 __gen_field(values
->DestinationAlphaBlendFactor
, 15, 19) |
5918 __gen_field(values
->ColorBlendFunction
, 11, 13) |
5919 __gen_field(values
->SourceBlendFactor
, 5, 9) |
5920 __gen_field(values
->DestinationBlendFactor
, 0, 4) |
5924 __gen_field(values
->AlphaToCoverageEnable
, 31, 31) |
5925 __gen_field(values
->AlphaToOneEnable
, 30, 30) |
5926 __gen_field(values
->AlphaToCoverageDitherEnable
, 29, 29) |
5927 __gen_field(values
->WriteDisableAlpha
, 27, 27) |
5928 __gen_field(values
->WriteDisableRed
, 26, 26) |
5929 __gen_field(values
->WriteDisableGreen
, 25, 25) |
5930 __gen_field(values
->WriteDisableBlue
, 24, 24) |
5931 __gen_field(values
->LogicOpEnable
, 22, 22) |
5932 __gen_field(values
->LogicOpFunction
, 18, 21) |
5933 __gen_field(values
->AlphaTestEnable
, 16, 16) |
5934 __gen_field(values
->AlphaTestFunction
, 13, 15) |
5935 __gen_field(values
->ColorDitherEnable
, 12, 12) |
5936 __gen_field(values
->XDitherOffset
, 10, 11) |
5937 __gen_field(values
->YDitherOffset
, 8, 9) |
5938 __gen_field(values
->ColorClampRange
, 2, 3) |
5939 __gen_field(values
->PreBlendColorClampEnable
, 1, 1) |
5940 __gen_field(values
->PostBlendColorClampEnable
, 0, 0) |
5945 #define GEN7_CC_VIEWPORT_length 0x00000002
5947 struct GEN7_CC_VIEWPORT
{
5953 GEN7_CC_VIEWPORT_pack(__gen_user_data
*data
, void * restrict dst
,
5954 const struct GEN7_CC_VIEWPORT
* restrict values
)
5956 uint32_t *dw
= (uint32_t * restrict
) dst
;
5959 __gen_float(values
->MinimumDepth
) |
5963 __gen_float(values
->MaximumDepth
) |
5968 #define GEN7_COLOR_CALC_STATE_length 0x00000006
5970 struct GEN7_COLOR_CALC_STATE
{
5971 uint32_t StencilReferenceValue
;
5972 uint32_t BackFaceStencilReferenceValue
;
5974 #define NotCancelled 1
5975 uint32_t RoundDisableFunctionDisable
;
5976 #define ALPHATEST_UNORM8 0
5977 #define ALPHATEST_FLOAT32 1
5978 uint32_t AlphaTestFormat
;
5979 uint32_t AlphaReferenceValueAsUNORM8
;
5980 float AlphaReferenceValueAsFLOAT32
;
5981 float BlendConstantColorRed
;
5982 float BlendConstantColorGreen
;
5983 float BlendConstantColorBlue
;
5984 float BlendConstantColorAlpha
;
5988 GEN7_COLOR_CALC_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
5989 const struct GEN7_COLOR_CALC_STATE
* restrict values
)
5991 uint32_t *dw
= (uint32_t * restrict
) dst
;
5994 __gen_field(values
->StencilReferenceValue
, 24, 31) |
5995 __gen_field(values
->BackFaceStencilReferenceValue
, 16, 23) |
5996 __gen_field(values
->RoundDisableFunctionDisable
, 15, 15) |
5997 __gen_field(values
->AlphaTestFormat
, 0, 0) |
6001 __gen_field(values
->AlphaReferenceValueAsUNORM8
, 0, 31) |
6002 __gen_float(values
->AlphaReferenceValueAsFLOAT32
) |
6006 __gen_float(values
->BlendConstantColorRed
) |
6010 __gen_float(values
->BlendConstantColorGreen
) |
6014 __gen_float(values
->BlendConstantColorBlue
) |
6018 __gen_float(values
->BlendConstantColorAlpha
) |
6023 #define GEN7_DEPTH_STENCIL_STATE_length 0x00000003
6025 struct GEN7_DEPTH_STENCIL_STATE
{
6026 uint32_t StencilTestEnable
;
6027 #define COMPAREFUNCTION_ALWAYS 0
6028 #define COMPAREFUNCTION_NEVER 1
6029 #define COMPAREFUNCTION_LESS 2
6030 #define COMPAREFUNCTION_EQUAL 3
6031 #define COMPAREFUNCTION_LEQUAL 4
6032 #define COMPAREFUNCTION_GREATER 5
6033 #define COMPAREFUNCTION_NOTEQUAL 6
6034 #define COMPAREFUNCTION_GEQUAL 7
6035 uint32_t StencilTestFunction
;
6036 #define STENCILOP_KEEP 0
6037 #define STENCILOP_ZERO 1
6038 #define STENCILOP_REPLACE 2
6039 #define STENCILOP_INCRSAT 3
6040 #define STENCILOP_DECRSAT 4
6041 #define STENCILOP_INCR 5
6042 #define STENCILOP_DECR 6
6043 #define STENCILOP_INVERT 7
6044 uint32_t StencilFailOp
;
6045 uint32_t StencilPassDepthFailOp
;
6046 uint32_t StencilPassDepthPassOp
;
6047 uint32_t StencilBufferWriteEnable
;
6048 uint32_t DoubleSidedStencilEnable
;
6049 #define COMPAREFUNCTION_ALWAYS 0
6050 #define COMPAREFUNCTION_NEVER 1
6051 #define COMPAREFUNCTION_LESS 2
6052 #define COMPAREFUNCTION_EQUAL 3
6053 #define COMPAREFUNCTION_LEQUAL 4
6054 #define COMPAREFUNCTION_GREATER 5
6055 #define COMPAREFUNCTION_NOTEQUAL 6
6056 #define COMPAREFUNCTION_GEQUAL 7
6057 uint32_t BackFaceStencilTestFunction
;
6058 #define STENCILOP_KEEP 0
6059 #define STENCILOP_ZERO 1
6060 #define STENCILOP_REPLACE 2
6061 #define STENCILOP_INCRSAT 3
6062 #define STENCILOP_DECRSAT 4
6063 #define STENCILOP_INCR 5
6064 #define STENCILOP_DECR 6
6065 #define STENCILOP_INVERT 7
6066 uint32_t BackfaceStencilFailOp
;
6067 uint32_t BackfaceStencilPassDepthFailOp
;
6068 uint32_t BackfaceStencilPassDepthPassOp
;
6069 uint32_t StencilTestMask
;
6070 uint32_t StencilWriteMask
;
6071 uint32_t BackfaceStencilTestMask
;
6072 uint32_t BackfaceStencilWriteMask
;
6073 uint32_t DepthTestEnable
;
6074 #define COMPAREFUNCTION_ALWAYS 0
6075 #define COMPAREFUNCTION_NEVER 1
6076 #define COMPAREFUNCTION_LESS 2
6077 #define COMPAREFUNCTION_EQUAL 3
6078 #define COMPAREFUNCTION_LEQUAL 4
6079 #define COMPAREFUNCTION_GREATER 5
6080 #define COMPAREFUNCTION_NOTEQUAL 6
6081 #define COMPAREFUNCTION_GEQUAL 7
6082 uint32_t DepthTestFunction
;
6083 uint32_t DepthBufferWriteEnable
;
6087 GEN7_DEPTH_STENCIL_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6088 const struct GEN7_DEPTH_STENCIL_STATE
* restrict values
)
6090 uint32_t *dw
= (uint32_t * restrict
) dst
;
6093 __gen_field(values
->StencilTestEnable
, 31, 31) |
6094 __gen_field(values
->StencilTestFunction
, 28, 30) |
6095 __gen_field(values
->StencilFailOp
, 25, 27) |
6096 __gen_field(values
->StencilPassDepthFailOp
, 22, 24) |
6097 __gen_field(values
->StencilPassDepthPassOp
, 19, 21) |
6098 __gen_field(values
->StencilBufferWriteEnable
, 18, 18) |
6099 __gen_field(values
->DoubleSidedStencilEnable
, 15, 15) |
6100 __gen_field(values
->BackFaceStencilTestFunction
, 12, 14) |
6101 __gen_field(values
->BackfaceStencilFailOp
, 9, 11) |
6102 __gen_field(values
->BackfaceStencilPassDepthFailOp
, 6, 8) |
6103 __gen_field(values
->BackfaceStencilPassDepthPassOp
, 3, 5) |
6107 __gen_field(values
->StencilTestMask
, 24, 31) |
6108 __gen_field(values
->StencilWriteMask
, 16, 23) |
6109 __gen_field(values
->BackfaceStencilTestMask
, 8, 15) |
6110 __gen_field(values
->BackfaceStencilWriteMask
, 0, 7) |
6114 __gen_field(values
->DepthTestEnable
, 31, 31) |
6115 __gen_field(values
->DepthTestFunction
, 27, 29) |
6116 __gen_field(values
->DepthBufferWriteEnable
, 26, 26) |
6121 #define GEN7_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
6123 #define GEN7_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
6125 struct GEN7_INTERFACE_DESCRIPTOR_DATA
{
6126 uint32_t KernelStartPointer
;
6129 uint32_t SingleProgramFlow
;
6130 #define NormalPriority 0
6131 #define HighPriority 1
6132 uint32_t ThreadPriority
;
6135 uint32_t FloatingPointMode
;
6136 uint32_t IllegalOpcodeExceptionEnable
;
6137 uint32_t MaskStackExceptionEnable
;
6138 uint32_t SoftwareExceptionEnable
;
6139 uint32_t SamplerStatePointer
;
6140 #define Nosamplersused 0
6141 #define Between1and4samplersused 1
6142 #define Between5and8samplersused 2
6143 #define Between9and12samplersused 3
6144 #define Between13and16samplersused 4
6145 uint32_t SamplerCount
;
6146 uint32_t BindingTablePointer
;
6147 uint32_t BindingTableEntryCount
;
6148 uint32_t ConstantURBEntryReadLength
;
6149 uint32_t ConstantURBEntryReadOffset
;
6154 uint32_t RoundingMode
;
6155 uint32_t BarrierEnable
;
6156 uint32_t SharedLocalMemorySize
;
6157 uint32_t NumberofThreadsinGPGPUThreadGroup
;
6161 GEN7_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data
*data
, void * restrict dst
,
6162 const struct GEN7_INTERFACE_DESCRIPTOR_DATA
* restrict values
)
6164 uint32_t *dw
= (uint32_t * restrict
) dst
;
6167 __gen_offset(values
->KernelStartPointer
, 6, 31) |
6171 __gen_field(values
->SingleProgramFlow
, 18, 18) |
6172 __gen_field(values
->ThreadPriority
, 17, 17) |
6173 __gen_field(values
->FloatingPointMode
, 16, 16) |
6174 __gen_field(values
->IllegalOpcodeExceptionEnable
, 13, 13) |
6175 __gen_field(values
->MaskStackExceptionEnable
, 11, 11) |
6176 __gen_field(values
->SoftwareExceptionEnable
, 7, 7) |
6180 __gen_offset(values
->SamplerStatePointer
, 5, 31) |
6181 __gen_field(values
->SamplerCount
, 2, 4) |
6185 __gen_offset(values
->BindingTablePointer
, 5, 15) |
6186 __gen_field(values
->BindingTableEntryCount
, 0, 4) |
6190 __gen_field(values
->ConstantURBEntryReadLength
, 16, 31) |
6191 __gen_field(values
->ConstantURBEntryReadOffset
, 0, 15) |
6195 __gen_field(values
->RoundingMode
, 22, 23) |
6196 __gen_field(values
->BarrierEnable
, 21, 21) |
6197 __gen_field(values
->SharedLocalMemorySize
, 16, 20) |
6198 __gen_field(values
->NumberofThreadsinGPGPUThreadGroup
, 0, 7) |
6209 #define GEN7_PALETTE_ENTRY_length 0x00000001
6211 #define GEN7_BINDING_TABLE_STATE_length 0x00000001
6213 struct GEN7_BINDING_TABLE_STATE
{
6214 uint32_t SurfaceStatePointer
;
6218 GEN7_BINDING_TABLE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6219 const struct GEN7_BINDING_TABLE_STATE
* restrict values
)
6221 uint32_t *dw
= (uint32_t * restrict
) dst
;
6224 __gen_offset(values
->SurfaceStatePointer
, 5, 31) |
6229 #define GEN7_RENDER_SURFACE_STATE_length 0x00000008
6231 struct GEN7_RENDER_SURFACE_STATE
{
6232 #define SURFTYPE_1D 0
6233 #define SURFTYPE_2D 1
6234 #define SURFTYPE_3D 2
6235 #define SURFTYPE_CUBE 3
6236 #define SURFTYPE_BUFFER 4
6237 #define SURFTYPE_STRBUF 5
6238 #define SURFTYPE_NULL 7
6239 uint32_t SurfaceType
;
6240 uint32_t SurfaceArray
;
6241 uint32_t SurfaceFormat
;
6242 uint32_t SurfaceVerticalAlignment
;
6245 uint32_t SurfaceHorizontalAlignment
;
6246 uint32_t TiledSurface
;
6247 #define TILEWALK_XMAJOR 0
6248 #define TILEWALK_YMAJOR 1
6250 uint32_t VerticalLineStride
;
6251 uint32_t VerticalLineStrideOffset
;
6252 #define ARYSPC_FULL 0
6253 #define ARYSPC_LOD0 1
6254 uint32_t SurfaceArraySpacing
;
6255 uint32_t RenderCacheReadWriteMode
;
6256 #define NORMAL_MODE 0
6257 #define PROGRESSIVE_FRAME 2
6258 #define INTERLACED_FRAME 3
6259 uint32_t MediaBoundaryPixelMode
;
6260 uint32_t CubeFaceEnables
;
6261 uint32_t SurfaceBaseAddress
;
6265 uint32_t SurfacePitch
;
6266 #define RTROTATE_0DEG 0
6267 #define RTROTATE_90DEG 1
6268 #define RTROTATE_270DEG 3
6269 uint32_t RenderTargetRotation
;
6270 uint32_t MinimumArrayElement
;
6271 uint32_t RenderTargetViewExtent
;
6273 #define MSFMT_DEPTH_STENCIL 1
6274 uint32_t MultisampledSurfaceStorageFormat
;
6275 #define MULTISAMPLECOUNT_1 0
6276 #define MULTISAMPLECOUNT_4 2
6277 #define MULTISAMPLECOUNT_8 3
6278 uint32_t NumberofMultisamples
;
6279 uint32_t MultisamplePositionPaletteIndex
;
6280 uint32_t MinimumArrayElement0
;
6283 uint32_t SurfaceObjectControlState
;
6284 uint32_t SurfaceMinLOD
;
6285 uint32_t MIPCountLOD
;
6286 uint32_t MCSBaseAddress
;
6287 uint32_t MCSSurfacePitch
;
6288 uint32_t AppendCounterAddress
;
6289 uint32_t AppendCounterEnable
;
6291 uint32_t ReservedMBZ
;
6292 uint32_t XOffsetforUVPlane
;
6293 uint32_t YOffsetforUVPlane
;
6296 uint32_t RedClearColor
;
6299 uint32_t GreenClearColor
;
6302 uint32_t BlueClearColor
;
6305 uint32_t AlphaClearColor
;
6306 uint32_t ResourceMinLOD
;
6310 GEN7_RENDER_SURFACE_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6311 const struct GEN7_RENDER_SURFACE_STATE
* restrict values
)
6313 uint32_t *dw
= (uint32_t * restrict
) dst
;
6316 __gen_field(values
->SurfaceType
, 29, 31) |
6317 __gen_field(values
->SurfaceArray
, 28, 28) |
6318 __gen_field(values
->SurfaceFormat
, 18, 26) |
6319 __gen_field(values
->SurfaceVerticalAlignment
, 16, 17) |
6320 __gen_field(values
->SurfaceHorizontalAlignment
, 15, 15) |
6321 __gen_field(values
->TiledSurface
, 14, 14) |
6322 __gen_field(values
->TileWalk
, 13, 13) |
6323 __gen_field(values
->VerticalLineStride
, 12, 12) |
6324 __gen_field(values
->VerticalLineStrideOffset
, 11, 11) |
6325 __gen_field(values
->SurfaceArraySpacing
, 10, 10) |
6326 __gen_field(values
->RenderCacheReadWriteMode
, 8, 8) |
6327 __gen_field(values
->MediaBoundaryPixelMode
, 6, 7) |
6328 __gen_field(values
->CubeFaceEnables
, 0, 5) |
6332 __gen_field(values
->SurfaceBaseAddress
, 0, 31) |
6336 __gen_field(values
->Height
, 16, 29) |
6337 __gen_field(values
->Width
, 0, 13) |
6341 __gen_field(values
->Depth
, 21, 31) |
6342 __gen_field(values
->SurfacePitch
, 0, 17) |
6346 __gen_field(values
->RenderTargetRotation
, 29, 30) |
6347 __gen_field(values
->MinimumArrayElement
, 18, 28) |
6348 __gen_field(values
->RenderTargetViewExtent
, 7, 17) |
6349 __gen_field(values
->MultisampledSurfaceStorageFormat
, 6, 6) |
6350 __gen_field(values
->NumberofMultisamples
, 3, 5) |
6351 __gen_field(values
->MultisamplePositionPaletteIndex
, 0, 2) |
6352 __gen_field(values
->MinimumArrayElement
, 0, 26) |
6356 __gen_field(values
->XOffset
, 25, 31) |
6357 __gen_field(values
->YOffset
, 20, 23) |
6358 __gen_field(values
->SurfaceObjectControlState
, 16, 19) |
6359 __gen_field(values
->SurfaceMinLOD
, 4, 7) |
6360 __gen_field(values
->MIPCountLOD
, 0, 3) |
6364 __gen_field(values
->MCSBaseAddress
, 12, 31) |
6365 __gen_field(values
->MCSSurfacePitch
, 3, 11) |
6366 __gen_field(values
->AppendCounterAddress
, 6, 31) |
6367 __gen_field(values
->AppendCounterEnable
, 1, 1) |
6368 __gen_field(values
->MCSEnable
, 0, 0) |
6369 __gen_field(values
->ReservedMBZ
, 30, 31) |
6370 __gen_field(values
->XOffsetforUVPlane
, 16, 29) |
6371 __gen_field(values
->YOffsetforUVPlane
, 0, 13) |
6375 __gen_field(values
->RedClearColor
, 31, 31) |
6376 __gen_field(values
->GreenClearColor
, 30, 30) |
6377 __gen_field(values
->BlueClearColor
, 29, 29) |
6378 __gen_field(values
->AlphaClearColor
, 28, 28) |
6379 __gen_field(values
->ResourceMinLOD
, 0, 11) |
6384 #define GEN7_SAMPLER_BORDER_COLOR_STATE_length 0x00000004
6386 struct GEN7_SAMPLER_BORDER_COLOR_STATE
{
6387 uint32_t BorderColorRedDX100GL
;
6388 uint32_t BorderColorAlpha
;
6389 uint32_t BorderColorBlue
;
6390 uint32_t BorderColorGreen
;
6391 uint32_t BorderColorRedDX9
;
6392 uint32_t BorderColorGreen0
;
6393 uint32_t BorderColorBlue0
;
6394 uint32_t BorderColorAlpha0
;
6398 GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6399 const struct GEN7_SAMPLER_BORDER_COLOR_STATE
* restrict values
)
6401 uint32_t *dw
= (uint32_t * restrict
) dst
;
6404 __gen_field(values
->BorderColorRedDX100GL
, 0, 31) |
6405 __gen_field(values
->BorderColorAlpha
, 24, 31) |
6406 __gen_field(values
->BorderColorBlue
, 16, 23) |
6407 __gen_field(values
->BorderColorGreen
, 8, 15) |
6408 __gen_field(values
->BorderColorRedDX9
, 0, 7) |
6412 __gen_field(values
->BorderColorGreen
, 0, 31) |
6416 __gen_field(values
->BorderColorBlue
, 0, 31) |
6420 __gen_field(values
->BorderColorAlpha
, 0, 31) |
6425 #define GEN7_SAMPLER_STATE_length 0x00000004
6427 struct GEN7_SAMPLER_STATE
{
6428 uint32_t SamplerDisable
;
6431 uint32_t TextureBorderColorMode
;
6433 uint32_t LODPreClampEnable
;
6435 #define MIPFILTER_NONE 0
6436 #define MIPFILTER_NEAREST 1
6437 #define MIPFILTER_LINEAR 3
6438 uint32_t MipModeFilter
;
6439 #define MAPFILTER_NEAREST 0
6440 #define MAPFILTER_LINEAR 1
6441 #define MAPFILTER_ANISOTROPIC 2
6442 #define MAPFILTER_MONO 6
6443 uint32_t MagModeFilter
;
6444 #define MAPFILTER_NEAREST 0
6445 #define MAPFILTER_LINEAR 1
6446 #define MAPFILTER_ANISOTROPIC 2
6447 #define MAPFILTER_MONO 6
6448 uint32_t MinModeFilter
;
6449 uint32_t TextureLODBias
;
6451 #define EWAApproximation 1
6452 uint32_t AnisotropicAlgorithm
;
6455 #define PREFILTEROPALWAYS 0
6456 #define PREFILTEROPNEVER 1
6457 #define PREFILTEROPLESS 2
6458 #define PREFILTEROPEQUAL 3
6459 #define PREFILTEROPLEQUAL 4
6460 #define PREFILTEROPGREATER 5
6461 #define PREFILTEROPNOTEQUAL 6
6462 #define PREFILTEROPGEQUAL 7
6463 uint32_t ShadowFunction
;
6464 #define PROGRAMMED 0
6466 uint32_t CubeSurfaceControlMode
;
6467 uint32_t BorderColorPointer
;
6468 uint32_t ChromaKeyEnable
;
6469 uint32_t ChromaKeyIndex
;
6470 #define KEYFILTER_KILL_ON_ANY_MATCH 0
6471 #define KEYFILTER_REPLACE_BLACK 1
6472 uint32_t ChromaKeyMode
;
6481 uint32_t MaximumAnisotropy
;
6482 uint32_t RAddressMinFilterRoundingEnable
;
6483 uint32_t RAddressMagFilterRoundingEnable
;
6484 uint32_t VAddressMinFilterRoundingEnable
;
6485 uint32_t VAddressMagFilterRoundingEnable
;
6486 uint32_t UAddressMinFilterRoundingEnable
;
6487 uint32_t UAddressMagFilterRoundingEnable
;
6491 uint32_t TrilinearFilterQuality
;
6492 uint32_t NonnormalizedCoordinateEnable
;
6493 uint32_t TCXAddressControlMode
;
6494 uint32_t TCYAddressControlMode
;
6495 uint32_t TCZAddressControlMode
;
6499 GEN7_SAMPLER_STATE_pack(__gen_user_data
*data
, void * restrict dst
,
6500 const struct GEN7_SAMPLER_STATE
* restrict values
)
6502 uint32_t *dw
= (uint32_t * restrict
) dst
;
6505 __gen_field(values
->SamplerDisable
, 31, 31) |
6506 __gen_field(values
->TextureBorderColorMode
, 29, 29) |
6507 __gen_field(values
->LODPreClampEnable
, 28, 28) |
6508 __gen_field(values
->BaseMipLevel
* (1 << 1), 22, 26) |
6509 __gen_field(values
->MipModeFilter
, 20, 21) |
6510 __gen_field(values
->MagModeFilter
, 17, 19) |
6511 __gen_field(values
->MinModeFilter
, 14, 16) |
6512 __gen_field(values
->TextureLODBias
, 1, 13) |
6513 __gen_field(values
->AnisotropicAlgorithm
, 0, 0) |
6517 __gen_field(values
->MinLOD
* (1 << 8), 20, 31) |
6518 __gen_field(values
->MaxLOD
* (1 << 8), 8, 19) |
6519 __gen_field(values
->ShadowFunction
, 1, 3) |
6520 __gen_field(values
->CubeSurfaceControlMode
, 0, 0) |
6524 __gen_offset(values
->BorderColorPointer
, 5, 31) |
6528 __gen_field(values
->ChromaKeyEnable
, 25, 25) |
6529 __gen_field(values
->ChromaKeyIndex
, 23, 24) |
6530 __gen_field(values
->ChromaKeyMode
, 22, 22) |
6531 __gen_field(values
->MaximumAnisotropy
, 19, 21) |
6532 __gen_field(values
->RAddressMinFilterRoundingEnable
, 13, 13) |
6533 __gen_field(values
->RAddressMagFilterRoundingEnable
, 14, 14) |
6534 __gen_field(values
->VAddressMinFilterRoundingEnable
, 15, 15) |
6535 __gen_field(values
->VAddressMagFilterRoundingEnable
, 16, 16) |
6536 __gen_field(values
->UAddressMinFilterRoundingEnable
, 17, 17) |
6537 __gen_field(values
->UAddressMagFilterRoundingEnable
, 18, 18) |
6538 __gen_field(values
->TrilinearFilterQuality
, 11, 12) |
6539 __gen_field(values
->NonnormalizedCoordinateEnable
, 10, 10) |
6540 __gen_field(values
->TCXAddressControlMode
, 6, 8) |
6541 __gen_field(values
->TCYAddressControlMode
, 3, 5) |
6542 __gen_field(values
->TCZAddressControlMode
, 0, 2) |
6547 /* Enum 3D_Prim_Topo_Type */
6548 #define _3DPRIM_POINTLIST 1
6549 #define _3DPRIM_LINELIST 2
6550 #define _3DPRIM_LINESTRIP 3
6551 #define _3DPRIM_TRILIST 4
6552 #define _3DPRIM_TRISTRIP 5
6553 #define _3DPRIM_TRIFAN 6
6554 #define _3DPRIM_QUADLIST 7
6555 #define _3DPRIM_QUADSTRIP 8
6556 #define _3DPRIM_LINELIST_ADJ 9
6557 #define _3DPRIM_LISTSTRIP_ADJ 10
6558 #define _3DPRIM_TRILIST_ADJ 11
6559 #define _3DPRIM_TRISTRIP_ADJ 12
6560 #define _3DPRIM_TRISTRIP_REVERSE 13
6561 #define _3DPRIM_POLYGON 14
6562 #define _3DPRIM_RECTLIST 15
6563 #define _3DPRIM_LINELOOP 16
6564 #define _3DPRIM_POINTLIST_BF 17
6565 #define _3DPRIM_LINESTRIP_CONT 18
6566 #define _3DPRIM_LINESTRIP_BF 19
6567 #define _3DPRIM_LINESTRIP_CONT_BF 20
6568 #define _3DPRIM_TRIFAN_NOSTIPPLE 22
6569 #define _3DPRIM_PATCHLIST_1 32
6570 #define _3DPRIM_PATCHLIST_2 33
6571 #define _3DPRIM_PATCHLIST_3 34
6572 #define _3DPRIM_PATCHLIST_4 35
6573 #define _3DPRIM_PATCHLIST_5 36
6574 #define _3DPRIM_PATCHLIST_6 37
6575 #define _3DPRIM_PATCHLIST_7 38
6576 #define _3DPRIM_PATCHLIST_8 39
6577 #define _3DPRIM_PATCHLIST_9 40
6578 #define _3DPRIM_PATCHLIST_10 41
6579 #define _3DPRIM_PATCHLIST_11 42
6580 #define _3DPRIM_PATCHLIST_12 43
6581 #define _3DPRIM_PATCHLIST_13 44
6582 #define _3DPRIM_PATCHLIST_14 45
6583 #define _3DPRIM_PATCHLIST_15 46
6584 #define _3DPRIM_PATCHLIST_16 47
6585 #define _3DPRIM_PATCHLIST_17 48
6586 #define _3DPRIM_PATCHLIST_18 49
6587 #define _3DPRIM_PATCHLIST_19 50
6588 #define _3DPRIM_PATCHLIST_20 51
6589 #define _3DPRIM_PATCHLIST_21 52
6590 #define _3DPRIM_PATCHLIST_22 53
6591 #define _3DPRIM_PATCHLIST_23 54
6592 #define _3DPRIM_PATCHLIST_24 55
6593 #define _3DPRIM_PATCHLIST_25 56
6594 #define _3DPRIM_PATCHLIST_26 57
6595 #define _3DPRIM_PATCHLIST_27 58
6596 #define _3DPRIM_PATCHLIST_28 59
6597 #define _3DPRIM_PATCHLIST_29 60
6598 #define _3DPRIM_PATCHLIST_30 61
6599 #define _3DPRIM_PATCHLIST_31 62
6600 #define _3DPRIM_PATCHLIST_32 63
6602 /* Enum 3D_Vertex_Component_Control */
6603 #define VFCOMP_NOSTORE 0
6604 #define VFCOMP_STORE_SRC 1
6605 #define VFCOMP_STORE_0 2
6606 #define VFCOMP_STORE_1_FP 3
6607 #define VFCOMP_STORE_1_INT 4
6608 #define VFCOMP_STORE_VID 5
6609 #define VFCOMP_STORE_IID 6
6610 #define VFCOMP_STORE_PID 7
6612 /* Enum 3D_Compare_Function */
6613 #define COMPAREFUNCTION_ALWAYS 0
6614 #define COMPAREFUNCTION_NEVER 1
6615 #define COMPAREFUNCTION_LESS 2
6616 #define COMPAREFUNCTION_EQUAL 3
6617 #define COMPAREFUNCTION_LEQUAL 4
6618 #define COMPAREFUNCTION_GREATER 5
6619 #define COMPAREFUNCTION_NOTEQUAL 6
6620 #define COMPAREFUNCTION_GEQUAL 7
6622 /* Enum SURFACE_FORMAT */
6623 #define R32G32B32A32_FLOAT 0
6624 #define R32G32B32A32_SINT 1
6625 #define R32G32B32A32_UINT 2
6626 #define R32G32B32A32_UNORM 3
6627 #define R32G32B32A32_SNORM 4
6628 #define R64G64_FLOAT 5
6629 #define R32G32B32X32_FLOAT 6
6630 #define R32G32B32A32_SSCALED 7
6631 #define R32G32B32A32_USCALED 8
6632 #define R32G32B32A32_SFIXED 32
6633 #define R64G64_PASSTHRU 33
6634 #define R32G32B32_FLOAT 64
6635 #define R32G32B32_SINT 65
6636 #define R32G32B32_UINT 66
6637 #define R32G32B32_UNORM 67
6638 #define R32G32B32_SNORM 68
6639 #define R32G32B32_SSCALED 69
6640 #define R32G32B32_USCALED 70
6641 #define R32G32B32_SFIXED 80
6642 #define R16G16B16A16_UNORM 128
6643 #define R16G16B16A16_SNORM 129
6644 #define R16G16B16A16_SINT 130
6645 #define R16G16B16A16_UINT 131
6646 #define R16G16B16A16_FLOAT 132
6647 #define R32G32_FLOAT 133
6648 #define R32G32_SINT 134
6649 #define R32G32_UINT 135
6650 #define R32_FLOAT_X8X24_TYPELESS 136
6651 #define X32_TYPELESS_G8X24_UINT 137
6652 #define L32A32_FLOAT 138
6653 #define R32G32_UNORM 139
6654 #define R32G32_SNORM 140
6655 #define R64_FLOAT 141
6656 #define R16G16B16X16_UNORM 142
6657 #define R16G16B16X16_FLOAT 143
6658 #define A32X32_FLOAT 144
6659 #define L32X32_FLOAT 145
6660 #define I32X32_FLOAT 146
6661 #define R16G16B16A16_SSCALED 147
6662 #define R16G16B16A16_USCALED 148
6663 #define R32G32_SSCALED 149
6664 #define R32G32_USCALED 150
6665 #define R32G32_SFIXED 160
6666 #define R64_PASSTHRU 161
6667 #define B8G8R8A8_UNORM 192
6668 #define B8G8R8A8_UNORM_SRGB 193
6669 #define R10G10B10A2_UNORM 194
6670 #define R10G10B10A2_UNORM_SRGB 195
6671 #define R10G10B10A2_UINT 196
6672 #define R10G10B10_SNORM_A2_UNORM 197
6673 #define R8G8B8A8_UNORM 199
6674 #define R8G8B8A8_UNORM_SRGB 200
6675 #define R8G8B8A8_SNORM 201
6676 #define R8G8B8A8_SINT 202
6677 #define R8G8B8A8_UINT 203
6678 #define R16G16_UNORM 204
6679 #define R16G16_SNORM 205
6680 #define R16G16_SINT 206
6681 #define R16G16_UINT 207
6682 #define R16G16_FLOAT 208
6683 #define B10G10R10A2_UNORM 209
6684 #define B10G10R10A2_UNORM_SRGB 210
6685 #define R11G11B10_FLOAT 211
6686 #define R32_SINT 214
6687 #define R32_UINT 215
6688 #define R32_FLOAT 216
6689 #define R24_UNORM_X8_TYPELESS 217
6690 #define X24_TYPELESS_G8_UINT 218
6691 #define L32_UNORM 221
6692 #define A32_UNORM 222
6693 #define L16A16_UNORM 223
6694 #define I24X8_UNORM 224
6695 #define L24X8_UNORM 225
6696 #define A24X8_UNORM 226
6697 #define I32_FLOAT 227
6698 #define L32_FLOAT 228
6699 #define A32_FLOAT 229
6700 #define X8B8_UNORM_G8R8_SNORM 230
6701 #define A8X8_UNORM_G8R8_SNORM 231
6702 #define B8X8_UNORM_G8R8_SNORM 232
6703 #define B8G8R8X8_UNORM 233
6704 #define B8G8R8X8_UNORM_SRGB 234
6705 #define R8G8B8X8_UNORM 235
6706 #define R8G8B8X8_UNORM_SRGB 236
6707 #define R9G9B9E5_SHAREDEXP 237
6708 #define B10G10R10X2_UNORM 238
6709 #define L16A16_FLOAT 240
6710 #define R32_UNORM 241
6711 #define R32_SNORM 242
6712 #define R10G10B10X2_USCALED 243
6713 #define R8G8B8A8_SSCALED 244
6714 #define R8G8B8A8_USCALED 245
6715 #define R16G16_SSCALED 246
6716 #define R16G16_USCALED 247
6717 #define R32_SSCALED 248
6718 #define R32_USCALED 249
6719 #define B5G6R5_UNORM 256
6720 #define B5G6R5_UNORM_SRGB 257
6721 #define B5G5R5A1_UNORM 258
6722 #define B5G5R5A1_UNORM_SRGB 259
6723 #define B4G4R4A4_UNORM 260
6724 #define B4G4R4A4_UNORM_SRGB 261
6725 #define R8G8_UNORM 262
6726 #define R8G8_SNORM 263
6727 #define R8G8_SINT 264
6728 #define R8G8_UINT 265
6729 #define R16_UNORM 266
6730 #define R16_SNORM 267
6731 #define R16_SINT 268
6732 #define R16_UINT 269
6733 #define R16_FLOAT 270
6734 #define A8P8_UNORM_PALETTE0 271
6735 #define A8P8_UNORM_PALETTE1 272
6736 #define I16_UNORM 273
6737 #define L16_UNORM 274
6738 #define A16_UNORM 275
6739 #define L8A8_UNORM 276
6740 #define I16_FLOAT 277
6741 #define L16_FLOAT 278
6742 #define A16_FLOAT 279
6743 #define L8A8_UNORM_SRGB 280
6744 #define R5G5_SNORM_B6_UNORM 281
6745 #define B5G5R5X1_UNORM 282
6746 #define B5G5R5X1_UNORM_SRGB 283
6747 #define R8G8_SSCALED 284
6748 #define R8G8_USCALED 285
6749 #define R16_SSCALED 286
6750 #define R16_USCALED 287
6751 #define P8A8_UNORM_PALETTE0 290
6752 #define P8A8_UNORM_PALETTE1 291
6753 #define A1B5G5R5_UNORM 292
6754 #define A4B4G4R4_UNORM 293
6755 #define L8A8_UINT 294
6756 #define L8A8_SINT 295
6757 #define R8_UNORM 320
6758 #define R8_SNORM 321
6761 #define A8_UNORM 324
6762 #define I8_UNORM 325
6763 #define L8_UNORM 326
6764 #define P4A4_UNORM_PALETTE0 327
6765 #define A4P4_UNORM_PALETTE0 328
6766 #define R8_SSCALED 329
6767 #define R8_USCALED 330
6768 #define P8_UNORM_PALETTE0 331
6769 #define L8_UNORM_SRGB 332
6770 #define P8_UNORM_PALETTE1 333
6771 #define P4A4_UNORM_PALETTE1 334
6772 #define A4P4_UNORM_PALETTE1 335
6773 #define Y8_UNORM 336
6778 #define DXT1_RGB_SRGB 384
6779 #define R1_UNORM 385
6780 #define YCRCB_NORMAL 386
6781 #define YCRCB_SWAPUVY 387
6782 #define P2_UNORM_PALETTE0 388
6783 #define P2_UNORM_PALETTE1 389
6784 #define BC1_UNORM 390
6785 #define BC2_UNORM 391
6786 #define BC3_UNORM 392
6787 #define BC4_UNORM 393
6788 #define BC5_UNORM 394
6789 #define BC1_UNORM_SRGB 395
6790 #define BC2_UNORM_SRGB 396
6791 #define BC3_UNORM_SRGB 397
6793 #define YCRCB_SWAPUV 399
6794 #define YCRCB_SWAPY 400
6795 #define DXT1_RGB 401
6797 #define R8G8B8_UNORM 403
6798 #define R8G8B8_SNORM 404
6799 #define R8G8B8_SSCALED 405
6800 #define R8G8B8_USCALED 406
6801 #define R64G64B64A64_FLOAT 407
6802 #define R64G64B64_FLOAT 408
6803 #define BC4_SNORM 409
6804 #define BC5_SNORM 410
6805 #define R16G16B16_FLOAT 411
6806 #define R16G16B16_UNORM 412
6807 #define R16G16B16_SNORM 413
6808 #define R16G16B16_SSCALED 414
6809 #define R16G16B16_USCALED 415
6810 #define BC6H_SF16 417
6811 #define BC7_UNORM 418
6812 #define BC7_UNORM_SRGB 419
6813 #define BC6H_UF16 420
6814 #define PLANAR_420_8 421
6815 #define R8G8B8_UNORM_SRGB 424
6816 #define ETC1_RGB8 425
6817 #define ETC2_RGB8 426
6819 #define EAC_RG11 428
6820 #define EAC_SIGNED_R11 429
6821 #define EAC_SIGNED_RG11 430
6822 #define ETC2_SRGB8 431
6823 #define R16G16B16_UINT 432
6824 #define R16G16B16_SINT 433
6825 #define R32_SFIXED 434
6826 #define R10G10B10A2_SNORM 435
6827 #define R10G10B10A2_USCALED 436
6828 #define R10G10B10A2_SSCALED 437
6829 #define R10G10B10A2_SINT 438
6830 #define B10G10R10A2_SNORM 439
6831 #define B10G10R10A2_USCALED 440
6832 #define B10G10R10A2_SSCALED 441
6833 #define B10G10R10A2_UINT 442
6834 #define B10G10R10A2_SINT 443
6835 #define R64G64B64A64_PASSTHRU 444
6836 #define R64G64B64_PASSTHRU 445
6837 #define ETC2_RGB8_PTA 448
6838 #define ETC2_SRGB8_PTA 449
6839 #define ETC2_EAC_RGBA8 450
6840 #define ETC2_EAC_SRGB8_A8 451
6841 #define R8G8B8_UINT 456
6842 #define R8G8B8_SINT 457
6845 /* Enum Texture Coordinate Mode */
6847 #define TCM_MIRROR 1
6850 #define TCM_CLAMP_BORDER 4
6851 #define TCM_MIRROR_ONCE 5