X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fvulkan%2Fgen75_pack.h;h=3ed685bed0c32684fe3646ff295317203c987817;hb=9098e0f074a55dfe00bf1412b035e501fb70ad1d;hp=1f041ab1a721d18cea9b65753ed7fd7b9f5cd8e8;hpb=5e637c5d5aedff139537d1a27766954a2c403302;p=mesa.git diff --git a/src/vulkan/gen75_pack.h b/src/vulkan/gen75_pack.h index 1f041ab1a72..3ed685bed0c 100644 --- a/src/vulkan/gen75_pack.h +++ b/src/vulkan/gen75_pack.h @@ -32,6 +32,10 @@ #include #include +#ifndef __gen_validate_value +#define __gen_validate_value(x) +#endif + #ifndef __gen_field_functions #define __gen_field_functions @@ -40,9 +44,16 @@ union __gen_value { uint32_t dw; }; +static inline uint64_t +__gen_mbo(uint32_t start, uint32_t end) +{ + return (~0ul >> (64 - (end - start + 1))) << start; +} + static inline uint64_t __gen_field(uint64_t v, uint32_t start, uint32_t end) { + __gen_validate_value(v); #if DEBUG if (end - start + 1 < 64) assert(v < 1ul << (end - start + 1)); @@ -54,6 +65,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end) static inline uint64_t __gen_offset(uint64_t v, uint32_t start, uint32_t end) { + __gen_validate_value(v); #if DEBUG uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start; @@ -66,6 +78,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end) static inline uint32_t __gen_float(float v) { + __gen_validate_value(v); return ((union __gen_value) { .f = (v) }).dw; } @@ -79,7 +92,6 @@ __gen_float(float v) #endif -#define GEN75_3DSTATE_URB_VS_length 0x00000002 #define GEN75_3DSTATE_URB_VS_length_bias 0x00000002 #define GEN75_3DSTATE_URB_VS_header \ .CommandType = 3, \ @@ -88,6 +100,8 @@ __gen_float(float v) ._3DCommandSubOpcode = 48, \ .DwordLength = 0 +#define GEN75_3DSTATE_URB_VS_length 0x00000002 + struct GEN75_3DSTATE_URB_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -101,7 +115,7 @@ struct GEN75_3DSTATE_URB_VS { static inline void GEN75_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_URB_VS * restrict values) + const struct GEN75_3DSTATE_URB_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -121,7 +135,6 @@ GEN75_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_GPGPU_CSR_BASE_ADDRESS_length 0x00000002 #define GEN75_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002 #define GEN75_GPGPU_CSR_BASE_ADDRESS_header \ .CommandType = 3, \ @@ -130,6 +143,8 @@ GEN75_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 4, \ .DwordLength = 0 +#define GEN75_GPGPU_CSR_BASE_ADDRESS_length 0x00000002 + struct GEN75_GPGPU_CSR_BASE_ADDRESS { uint32_t CommandType; uint32_t CommandSubType; @@ -141,7 +156,7 @@ struct GEN75_GPGPU_CSR_BASE_ADDRESS { static inline void GEN75_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_GPGPU_CSR_BASE_ADDRESS * restrict values) + const struct GEN75_GPGPU_CSR_BASE_ADDRESS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -161,17 +176,18 @@ GEN75_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_STORE_REGISTER_MEM_length 0x00000003 #define GEN75_MI_STORE_REGISTER_MEM_length_bias 0x00000002 #define GEN75_MI_STORE_REGISTER_MEM_header \ .CommandType = 0, \ .MICommandOpcode = 36, \ .DwordLength = 1 +#define GEN75_MI_STORE_REGISTER_MEM_length 0x00000003 + struct GEN75_MI_STORE_REGISTER_MEM { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t UseGlobalGTT; + bool UseGlobalGTT; uint32_t PredicateEnable; uint32_t DwordLength; uint32_t RegisterAddress; @@ -180,7 +196,7 @@ struct GEN75_MI_STORE_REGISTER_MEM { static inline void GEN75_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_STORE_REGISTER_MEM * restrict values) + const struct GEN75_MI_STORE_REGISTER_MEM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -204,7 +220,6 @@ GEN75_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_PIPELINE_SELECT_length 0x00000001 #define GEN75_PIPELINE_SELECT_length_bias 0x00000001 #define GEN75_PIPELINE_SELECT_header \ .CommandType = 3, \ @@ -212,6 +227,8 @@ GEN75_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 1, \ ._3DCommandSubOpcode = 4 +#define GEN75_PIPELINE_SELECT_length 0x00000001 + struct GEN75_PIPELINE_SELECT { uint32_t CommandType; uint32_t CommandSubType; @@ -225,7 +242,7 @@ struct GEN75_PIPELINE_SELECT { static inline void GEN75_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_PIPELINE_SELECT * restrict values) + const struct GEN75_PIPELINE_SELECT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -239,7 +256,6 @@ GEN75_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_STATE_BASE_ADDRESS_length 0x0000000a #define GEN75_STATE_BASE_ADDRESS_length_bias 0x00000002 #define GEN75_STATE_BASE_ADDRESS_header \ .CommandType = 3, \ @@ -248,6 +264,10 @@ GEN75_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 1, \ .DwordLength = 8 +#define GEN75_STATE_BASE_ADDRESS_length 0x0000000a + +#define GEN75_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001 + struct GEN75_MEMORY_OBJECT_CONTROL_STATE { uint32_t LLCeLLCCacheabilityControlLLCCC; uint32_t L3CacheabilityControlL3CC; @@ -255,7 +275,7 @@ struct GEN75_MEMORY_OBJECT_CONTROL_STATE { static inline void GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEMORY_OBJECT_CONTROL_STATE * restrict values) + const struct GEN75_MEMORY_OBJECT_CONTROL_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -275,32 +295,32 @@ struct GEN75_STATE_BASE_ADDRESS { __gen_address_type GeneralStateBaseAddress; struct GEN75_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState; struct GEN75_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState; - uint32_t GeneralStateBaseAddressModifyEnable; + bool GeneralStateBaseAddressModifyEnable; __gen_address_type SurfaceStateBaseAddress; struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState; - uint32_t SurfaceStateBaseAddressModifyEnable; + bool SurfaceStateBaseAddressModifyEnable; __gen_address_type DynamicStateBaseAddress; struct GEN75_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState; - uint32_t DynamicStateBaseAddressModifyEnable; + bool DynamicStateBaseAddressModifyEnable; __gen_address_type IndirectObjectBaseAddress; struct GEN75_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState; - uint32_t IndirectObjectBaseAddressModifyEnable; + bool IndirectObjectBaseAddressModifyEnable; __gen_address_type InstructionBaseAddress; struct GEN75_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState; - uint32_t InstructionBaseAddressModifyEnable; + bool InstructionBaseAddressModifyEnable; __gen_address_type GeneralStateAccessUpperBound; - uint32_t GeneralStateAccessUpperBoundModifyEnable; + bool GeneralStateAccessUpperBoundModifyEnable; __gen_address_type DynamicStateAccessUpperBound; - uint32_t DynamicStateAccessUpperBoundModifyEnable; + bool DynamicStateAccessUpperBoundModifyEnable; __gen_address_type IndirectObjectAccessUpperBound; - uint32_t IndirectObjectAccessUpperBoundModifyEnable; + bool IndirectObjectAccessUpperBoundModifyEnable; __gen_address_type InstructionAccessUpperBound; - uint32_t InstructionAccessUpperBoundModifyEnable; + bool InstructionAccessUpperBoundModifyEnable; }; static inline void GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_STATE_BASE_ADDRESS * restrict values) + const struct GEN75_STATE_BASE_ADDRESS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -317,9 +337,7 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_StatelessDataPortAccessMemoryObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_StatelessDataPortAccessMemoryObjectControlState, &values->StatelessDataPortAccessMemoryObjectControlState); uint32_t dw1 = - /* Struct GeneralStateMemoryObjectControlState (8..11): */ __gen_field(dw_GeneralStateMemoryObjectControlState, 8, 11) | - /* Struct StatelessDataPortAccessMemoryObjectControlState (4..7): */ __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState, 4, 7) | __gen_field(values->GeneralStateBaseAddressModifyEnable, 0, 0) | 0; @@ -330,7 +348,6 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_SurfaceStateMemoryObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceStateMemoryObjectControlState, &values->SurfaceStateMemoryObjectControlState); uint32_t dw2 = - /* Struct SurfaceStateMemoryObjectControlState (8..11): */ __gen_field(dw_SurfaceStateMemoryObjectControlState, 8, 11) | __gen_field(values->SurfaceStateBaseAddressModifyEnable, 0, 0) | 0; @@ -341,7 +358,6 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_DynamicStateMemoryObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_DynamicStateMemoryObjectControlState, &values->DynamicStateMemoryObjectControlState); uint32_t dw3 = - /* Struct DynamicStateMemoryObjectControlState (8..11): */ __gen_field(dw_DynamicStateMemoryObjectControlState, 8, 11) | __gen_field(values->DynamicStateBaseAddressModifyEnable, 0, 0) | 0; @@ -352,7 +368,6 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_IndirectObjectMemoryObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_IndirectObjectMemoryObjectControlState, &values->IndirectObjectMemoryObjectControlState); uint32_t dw4 = - /* Struct IndirectObjectMemoryObjectControlState (8..11): */ __gen_field(dw_IndirectObjectMemoryObjectControlState, 8, 11) | __gen_field(values->IndirectObjectBaseAddressModifyEnable, 0, 0) | 0; @@ -363,7 +378,6 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_InstructionMemoryObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_InstructionMemoryObjectControlState, &values->InstructionMemoryObjectControlState); uint32_t dw5 = - /* Struct InstructionMemoryObjectControlState (8..11): */ __gen_field(dw_InstructionMemoryObjectControlState, 8, 11) | __gen_field(values->InstructionBaseAddressModifyEnable, 0, 0) | 0; @@ -401,7 +415,6 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_STATE_PREFETCH_length 0x00000002 #define GEN75_STATE_PREFETCH_length_bias 0x00000002 #define GEN75_STATE_PREFETCH_header \ .CommandType = 3, \ @@ -410,6 +423,8 @@ GEN75_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 3, \ .DwordLength = 0 +#define GEN75_STATE_PREFETCH_length 0x00000002 + struct GEN75_STATE_PREFETCH { uint32_t CommandType; uint32_t CommandSubType; @@ -422,7 +437,7 @@ struct GEN75_STATE_PREFETCH { static inline void GEN75_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_STATE_PREFETCH * restrict values) + const struct GEN75_STATE_PREFETCH * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -443,7 +458,6 @@ GEN75_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_STATE_SIP_length 0x00000002 #define GEN75_STATE_SIP_length_bias 0x00000002 #define GEN75_STATE_SIP_header \ .CommandType = 3, \ @@ -452,6 +466,8 @@ GEN75_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 2, \ .DwordLength = 0 +#define GEN75_STATE_SIP_length 0x00000002 + struct GEN75_STATE_SIP { uint32_t CommandType; uint32_t CommandSubType; @@ -463,7 +479,7 @@ struct GEN75_STATE_SIP { static inline void GEN75_STATE_SIP_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_STATE_SIP * restrict values) + const struct GEN75_STATE_SIP * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -481,7 +497,6 @@ GEN75_STATE_SIP_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_SWTESS_BASE_ADDRESS_length 0x00000002 #define GEN75_SWTESS_BASE_ADDRESS_length_bias 0x00000002 #define GEN75_SWTESS_BASE_ADDRESS_header \ .CommandType = 3, \ @@ -490,6 +505,8 @@ GEN75_STATE_SIP_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 3, \ .DwordLength = 0 +#define GEN75_SWTESS_BASE_ADDRESS_length 0x00000002 + struct GEN75_SWTESS_BASE_ADDRESS { uint32_t CommandType; uint32_t CommandSubType; @@ -502,7 +519,7 @@ struct GEN75_SWTESS_BASE_ADDRESS { static inline void GEN75_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SWTESS_BASE_ADDRESS * restrict values) + const struct GEN75_SWTESS_BASE_ADDRESS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -517,7 +534,6 @@ GEN75_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_SWTessellationMemoryObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SWTessellationMemoryObjectControlState, &values->SWTessellationMemoryObjectControlState); uint32_t dw1 = - /* Struct SWTessellationMemoryObjectControlState (8..11): */ __gen_field(dw_SWTessellationMemoryObjectControlState, 8, 11) | 0; @@ -526,7 +542,6 @@ GEN75_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DPRIMITIVE_length 0x00000007 #define GEN75_3DPRIMITIVE_length_bias 0x00000002 #define GEN75_3DPRIMITIVE_header \ .CommandType = 3, \ @@ -535,16 +550,18 @@ GEN75_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 0, \ .DwordLength = 5 +#define GEN75_3DPRIMITIVE_length 0x00000007 + struct GEN75_3DPRIMITIVE { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; - uint32_t IndirectParameterEnable; + bool IndirectParameterEnable; uint32_t UAVCoherencyRequired; - uint32_t PredicateEnable; + bool PredicateEnable; uint32_t DwordLength; - uint32_t EndOffsetEnable; + bool EndOffsetEnable; #define SEQUENTIAL 0 #define RANDOM 1 uint32_t VertexAccessType; @@ -558,7 +575,7 @@ struct GEN75_3DPRIMITIVE { static inline void GEN75_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DPRIMITIVE * restrict values) + const struct GEN75_3DPRIMITIVE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -601,7 +618,6 @@ GEN75_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003 #define GEN75_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002 #define GEN75_3DSTATE_AA_LINE_PARAMETERS_header \ .CommandType = 3, \ @@ -610,21 +626,23 @@ GEN75_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 10, \ .DwordLength = 1 +#define GEN75_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003 + struct GEN75_3DSTATE_AA_LINE_PARAMETERS { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; uint32_t DwordLength; - uint32_t AACoverageBias; - uint32_t AACoverageSlope; - uint32_t AACoverageEndCapBias; - uint32_t AACoverageEndCapSlope; + float AACoverageBias; + float AACoverageSlope; + float AACoverageEndCapBias; + float AACoverageEndCapSlope; }; static inline void GEN75_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_AA_LINE_PARAMETERS * restrict values) + const struct GEN75_3DSTATE_AA_LINE_PARAMETERS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -637,13 +655,13 @@ GEN75_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst 0; dw[1] = - __gen_field(values->AACoverageBias, 16, 23) | - __gen_field(values->AACoverageSlope, 0, 7) | + __gen_field(values->AACoverageBias * (1 << 8), 16, 23) | + __gen_field(values->AACoverageSlope * (1 << 8), 0, 7) | 0; dw[2] = - __gen_field(values->AACoverageEndCapBias, 16, 23) | - __gen_field(values->AACoverageEndCapSlope, 0, 7) | + __gen_field(values->AACoverageEndCapBias * (1 << 8), 16, 23) | + __gen_field(values->AACoverageEndCapSlope * (1 << 8), 0, 7) | 0; } @@ -655,6 +673,10 @@ GEN75_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 70 +#define GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_length 0x00000000 + +#define GEN75_BINDING_TABLE_EDIT_ENTRY_length 0x00000001 + struct GEN75_BINDING_TABLE_EDIT_ENTRY { uint32_t BindingTableIndex; uint32_t SurfaceStatePointer; @@ -662,7 +684,7 @@ struct GEN75_BINDING_TABLE_EDIT_ENTRY { static inline void GEN75_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_BINDING_TABLE_EDIT_ENTRY * restrict values) + const struct GEN75_BINDING_TABLE_EDIT_ENTRY * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -689,7 +711,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_EDIT_DS { static inline void GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_DS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -716,6 +738,8 @@ GEN75_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data *data, void * restrict ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 68 +#define GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_length 0x00000000 + struct GEN75_3DSTATE_BINDING_TABLE_EDIT_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -732,7 +756,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_EDIT_GS { static inline void GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_GS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -759,6 +783,8 @@ GEN75_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data *data, void * restrict ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 69 +#define GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_length 0x00000000 + struct GEN75_3DSTATE_BINDING_TABLE_EDIT_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -775,7 +801,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_EDIT_HS { static inline void GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_HS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -802,6 +828,8 @@ GEN75_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data *data, void * restrict ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 71 +#define GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_length 0x00000000 + struct GEN75_3DSTATE_BINDING_TABLE_EDIT_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -818,7 +846,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_EDIT_PS { static inline void GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_PS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -845,6 +873,8 @@ GEN75_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data *data, void * restrict ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 67 +#define GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_length 0x00000000 + struct GEN75_3DSTATE_BINDING_TABLE_EDIT_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -861,7 +891,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_EDIT_VS { static inline void GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_VS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_EDIT_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -881,7 +911,6 @@ GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data *data, void * restrict /* variable length fields follow */ } -#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_header\ .CommandType = 3, \ @@ -890,6 +919,8 @@ GEN75_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 40, \ .DwordLength = 0 +#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002 + struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS { uint32_t CommandType; uint32_t CommandSubType; @@ -901,7 +932,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS { static inline void GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -919,7 +950,6 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_header\ .CommandType = 3, \ @@ -928,6 +958,8 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 41, \ .DwordLength = 0 +#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002 + struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -939,7 +971,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS { static inline void GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -957,7 +989,6 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_header\ .CommandType = 3, \ @@ -966,6 +997,8 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 39, \ .DwordLength = 0 +#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002 + struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -977,7 +1010,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS { static inline void GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -995,7 +1028,6 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_header\ .CommandType = 3, \ @@ -1004,6 +1036,8 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 42, \ .DwordLength = 0 +#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002 + struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -1015,7 +1049,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS { static inline void GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1033,7 +1067,6 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_header\ .CommandType = 3, \ @@ -1042,6 +1075,8 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 38, \ .DwordLength = 0 +#define GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002 + struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -1053,7 +1088,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS { static inline void GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1071,7 +1106,6 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000003 #define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002 #define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\ .CommandType = 3, \ @@ -1080,6 +1114,8 @@ GEN75_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 25, \ .DwordLength = 1 +#define GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000003 + struct GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC { uint32_t CommandType; uint32_t CommandSubType; @@ -1094,7 +1130,7 @@ struct GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC { static inline void GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC * restrict values) + const struct GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1110,7 +1146,6 @@ GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restri GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceObjectControlState, &values->SurfaceObjectControlState); uint32_t dw1 = __gen_field(values->BindingTablePoolEnable, 11, 11) | - /* Struct SurfaceObjectControlState (7..10): */ __gen_field(dw_SurfaceObjectControlState, 7, 10) | 0; @@ -1125,7 +1160,6 @@ GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restri } -#define GEN75_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002 #define GEN75_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002 #define GEN75_3DSTATE_BLEND_STATE_POINTERS_header\ .CommandType = 3, \ @@ -1134,6 +1168,8 @@ GEN75_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restri ._3DCommandSubOpcode = 36, \ .DwordLength = 0 +#define GEN75_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002 + struct GEN75_3DSTATE_BLEND_STATE_POINTERS { uint32_t CommandType; uint32_t CommandSubType; @@ -1145,7 +1181,7 @@ struct GEN75_3DSTATE_BLEND_STATE_POINTERS { static inline void GEN75_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_BLEND_STATE_POINTERS * restrict values) + const struct GEN75_3DSTATE_BLEND_STATE_POINTERS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1159,11 +1195,11 @@ GEN75_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict d dw[1] = __gen_offset(values->BlendStatePointer, 6, 31) | + __gen_mbo(0, 0) | 0; } -#define GEN75_3DSTATE_CC_STATE_POINTERS_length 0x00000002 #define GEN75_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002 #define GEN75_3DSTATE_CC_STATE_POINTERS_header \ .CommandType = 3, \ @@ -1172,6 +1208,8 @@ GEN75_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict d ._3DCommandSubOpcode = 14, \ .DwordLength = 0 +#define GEN75_3DSTATE_CC_STATE_POINTERS_length 0x00000002 + struct GEN75_3DSTATE_CC_STATE_POINTERS { uint32_t CommandType; uint32_t CommandSubType; @@ -1183,7 +1221,7 @@ struct GEN75_3DSTATE_CC_STATE_POINTERS { static inline void GEN75_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CC_STATE_POINTERS * restrict values) + const struct GEN75_3DSTATE_CC_STATE_POINTERS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1197,11 +1235,11 @@ GEN75_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst, dw[1] = __gen_offset(values->ColorCalcStatePointer, 6, 31) | + __gen_mbo(0, 0) | 0; } -#define GEN75_3DSTATE_CHROMA_KEY_length 0x00000004 #define GEN75_3DSTATE_CHROMA_KEY_length_bias 0x00000002 #define GEN75_3DSTATE_CHROMA_KEY_header \ .CommandType = 3, \ @@ -1210,6 +1248,8 @@ GEN75_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 4, \ .DwordLength = 2 +#define GEN75_3DSTATE_CHROMA_KEY_length 0x00000004 + struct GEN75_3DSTATE_CHROMA_KEY { uint32_t CommandType; uint32_t CommandSubType; @@ -1223,7 +1263,7 @@ struct GEN75_3DSTATE_CHROMA_KEY { static inline void GEN75_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CHROMA_KEY * restrict values) + const struct GEN75_3DSTATE_CHROMA_KEY * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1249,7 +1289,6 @@ GEN75_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_CLEAR_PARAMS_length 0x00000003 #define GEN75_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002 #define GEN75_3DSTATE_CLEAR_PARAMS_header \ .CommandType = 3, \ @@ -1258,6 +1297,8 @@ GEN75_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 4, \ .DwordLength = 1 +#define GEN75_3DSTATE_CLEAR_PARAMS_length 0x00000003 + struct GEN75_3DSTATE_CLEAR_PARAMS { uint32_t CommandType; uint32_t CommandSubType; @@ -1265,12 +1306,12 @@ struct GEN75_3DSTATE_CLEAR_PARAMS { uint32_t _3DCommandSubOpcode; uint32_t DwordLength; uint32_t DepthClearValue; - uint32_t DepthClearValueValid; + bool DepthClearValueValid; }; static inline void GEN75_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CLEAR_PARAMS * restrict values) + const struct GEN75_3DSTATE_CLEAR_PARAMS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1292,7 +1333,6 @@ GEN75_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_CLIP_length 0x00000004 #define GEN75_3DSTATE_CLIP_length_bias 0x00000002 #define GEN75_3DSTATE_CLIP_header \ .CommandType = 3, \ @@ -1301,6 +1341,8 @@ GEN75_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 18, \ .DwordLength = 2 +#define GEN75_3DSTATE_CLIP_length 0x00000004 + struct GEN75_3DSTATE_CLIP { uint32_t CommandType; uint32_t CommandSubType; @@ -1309,27 +1351,27 @@ struct GEN75_3DSTATE_CLIP { uint32_t DwordLength; uint32_t FrontWinding; uint32_t VertexSubPixelPrecisionSelect; - uint32_t EarlyCullEnable; + bool EarlyCullEnable; #define CULLMODE_BOTH 0 #define CULLMODE_NONE 1 #define CULLMODE_FRONT 2 #define CULLMODE_BACK 3 uint32_t CullMode; - uint32_t ClipperStatisticsEnable; + bool ClipperStatisticsEnable; uint32_t UserClipDistanceCullTestEnableBitmask; - uint32_t ClipEnable; + bool ClipEnable; #define APIMODE_OGL 0 uint32_t APIMode; - uint32_t ViewportXYClipTestEnable; - uint32_t ViewportZClipTestEnable; - uint32_t GuardbandClipTestEnable; + bool ViewportXYClipTestEnable; + bool ViewportZClipTestEnable; + bool GuardbandClipTestEnable; uint32_t UserClipDistanceClipTestEnableBitmask; #define CLIPMODE_NORMAL 0 #define CLIPMODE_REJECT_ALL 3 #define CLIPMODE_ACCEPT_ALL 4 uint32_t ClipMode; - uint32_t PerspectiveDivideDisable; - uint32_t NonPerspectiveBarycentricEnable; + bool PerspectiveDivideDisable; + bool NonPerspectiveBarycentricEnable; #define Vertex0 0 #define Vertex1 1 #define Vertex2 2 @@ -1341,15 +1383,15 @@ struct GEN75_3DSTATE_CLIP { #define Vertex1 1 #define Vertex2 2 uint32_t TriangleFanProvokingVertexSelect; - uint32_t MinimumPointWidth; - uint32_t MaximumPointWidth; - uint32_t ForceZeroRTAIndexEnable; + float MinimumPointWidth; + float MaximumPointWidth; + bool ForceZeroRTAIndexEnable; uint32_t MaximumVPIndex; }; static inline void GEN75_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CLIP * restrict values) + const struct GEN75_3DSTATE_CLIP * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1386,15 +1428,14 @@ GEN75_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst, 0; dw[3] = - __gen_field(values->MinimumPointWidth, 17, 27) | - __gen_field(values->MaximumPointWidth, 6, 16) | + __gen_field(values->MinimumPointWidth * (1 << 3), 17, 27) | + __gen_field(values->MaximumPointWidth * (1 << 3), 6, 16) | __gen_field(values->ForceZeroRTAIndexEnable, 5, 5) | __gen_field(values->MaximumVPIndex, 0, 3) | 0; } -#define GEN75_3DSTATE_CONSTANT_DS_length 0x00000007 #define GEN75_3DSTATE_CONSTANT_DS_length_bias 0x00000002 #define GEN75_3DSTATE_CONSTANT_DS_header \ .CommandType = 3, \ @@ -1403,6 +1444,10 @@ GEN75_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 26, \ .DwordLength = 5 +#define GEN75_3DSTATE_CONSTANT_DS_length 0x00000007 + +#define GEN75_3DSTATE_CONSTANT_BODY_length 0x00000006 + struct GEN75_3DSTATE_CONSTANT_BODY { uint32_t ConstantBuffer1ReadLength; uint32_t ConstantBuffer0ReadLength; @@ -1417,7 +1462,7 @@ struct GEN75_3DSTATE_CONSTANT_BODY { static inline void GEN75_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CONSTANT_BODY * restrict values) + const struct GEN75_3DSTATE_CONSTANT_BODY * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1434,7 +1479,6 @@ GEN75_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_ConstantBufferObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_ConstantBufferObjectControlState, &values->ConstantBufferObjectControlState); uint32_t dw2 = - /* Struct ConstantBufferObjectControlState (0..4): */ __gen_field(dw_ConstantBufferObjectControlState, 0, 4) | 0; @@ -1472,7 +1516,7 @@ struct GEN75_3DSTATE_CONSTANT_DS { static inline void GEN75_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CONSTANT_DS * restrict values) + const struct GEN75_3DSTATE_CONSTANT_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1487,7 +1531,6 @@ GEN75_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst, GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody); } -#define GEN75_3DSTATE_CONSTANT_GS_length 0x00000007 #define GEN75_3DSTATE_CONSTANT_GS_length_bias 0x00000002 #define GEN75_3DSTATE_CONSTANT_GS_header \ .CommandType = 3, \ @@ -1496,6 +1539,8 @@ GEN75_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 22, \ .DwordLength = 5 +#define GEN75_3DSTATE_CONSTANT_GS_length 0x00000007 + struct GEN75_3DSTATE_CONSTANT_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -1507,7 +1552,7 @@ struct GEN75_3DSTATE_CONSTANT_GS { static inline void GEN75_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CONSTANT_GS * restrict values) + const struct GEN75_3DSTATE_CONSTANT_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1522,7 +1567,6 @@ GEN75_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst, GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody); } -#define GEN75_3DSTATE_CONSTANT_HS_length 0x00000007 #define GEN75_3DSTATE_CONSTANT_HS_length_bias 0x00000002 #define GEN75_3DSTATE_CONSTANT_HS_header \ .CommandType = 3, \ @@ -1531,6 +1575,8 @@ GEN75_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 25, \ .DwordLength = 5 +#define GEN75_3DSTATE_CONSTANT_HS_length 0x00000007 + struct GEN75_3DSTATE_CONSTANT_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -1542,7 +1588,7 @@ struct GEN75_3DSTATE_CONSTANT_HS { static inline void GEN75_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CONSTANT_HS * restrict values) + const struct GEN75_3DSTATE_CONSTANT_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1557,7 +1603,6 @@ GEN75_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst, GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody); } -#define GEN75_3DSTATE_CONSTANT_PS_length 0x00000007 #define GEN75_3DSTATE_CONSTANT_PS_length_bias 0x00000002 #define GEN75_3DSTATE_CONSTANT_PS_header \ .CommandType = 3, \ @@ -1566,6 +1611,8 @@ GEN75_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 23, \ .DwordLength = 5 +#define GEN75_3DSTATE_CONSTANT_PS_length 0x00000007 + struct GEN75_3DSTATE_CONSTANT_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -1577,7 +1624,7 @@ struct GEN75_3DSTATE_CONSTANT_PS { static inline void GEN75_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CONSTANT_PS * restrict values) + const struct GEN75_3DSTATE_CONSTANT_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1592,7 +1639,6 @@ GEN75_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst, GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody); } -#define GEN75_3DSTATE_CONSTANT_VS_length 0x00000007 #define GEN75_3DSTATE_CONSTANT_VS_length_bias 0x00000002 #define GEN75_3DSTATE_CONSTANT_VS_header \ .CommandType = 3, \ @@ -1601,6 +1647,8 @@ GEN75_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 21, \ .DwordLength = 5 +#define GEN75_3DSTATE_CONSTANT_VS_length 0x00000007 + struct GEN75_3DSTATE_CONSTANT_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -1612,7 +1660,7 @@ struct GEN75_3DSTATE_CONSTANT_VS { static inline void GEN75_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_CONSTANT_VS * restrict values) + const struct GEN75_3DSTATE_CONSTANT_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1627,7 +1675,6 @@ GEN75_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst, GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody); } -#define GEN75_3DSTATE_DEPTH_BUFFER_length 0x00000007 #define GEN75_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002 #define GEN75_3DSTATE_DEPTH_BUFFER_header \ .CommandType = 3, \ @@ -1636,6 +1683,8 @@ GEN75_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 5, \ .DwordLength = 5 +#define GEN75_3DSTATE_DEPTH_BUFFER_length 0x00000007 + struct GEN75_3DSTATE_DEPTH_BUFFER { uint32_t CommandType; uint32_t CommandSubType; @@ -1648,9 +1697,9 @@ struct GEN75_3DSTATE_DEPTH_BUFFER { #define SURFTYPE_CUBE 3 #define SURFTYPE_NULL 7 uint32_t SurfaceType; - uint32_t DepthWriteEnable; - uint32_t StencilWriteEnable; - uint32_t HierarchicalDepthBufferEnable; + bool DepthWriteEnable; + bool StencilWriteEnable; + bool HierarchicalDepthBufferEnable; #define D32_FLOAT 1 #define D24_UNORM_X8_UINT 3 #define D16_UNORM 5 @@ -1671,7 +1720,7 @@ struct GEN75_3DSTATE_DEPTH_BUFFER { static inline void GEN75_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_DEPTH_BUFFER * restrict values) + const struct GEN75_3DSTATE_DEPTH_BUFFER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1709,7 +1758,6 @@ GEN75_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, dw[4] = __gen_field(values->Depth, 21, 31) | __gen_field(values->MinimumArrayElement, 10, 20) | - /* Struct DepthBufferObjectControlState (0..3): */ __gen_field(dw_DepthBufferObjectControlState, 0, 3) | 0; @@ -1724,7 +1772,6 @@ GEN75_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002 #define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002 #define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\ .CommandType = 3, \ @@ -1733,6 +1780,8 @@ GEN75_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 37, \ .DwordLength = 0 +#define GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002 + struct GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS { uint32_t CommandType; uint32_t CommandSubType; @@ -1744,7 +1793,7 @@ struct GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS { static inline void GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS * restrict values) + const struct GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1758,11 +1807,11 @@ GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data *data, void * re dw[1] = __gen_offset(values->PointertoDEPTH_STENCIL_STATE, 6, 31) | + __gen_mbo(0, 0) | 0; } -#define GEN75_3DSTATE_DRAWING_RECTANGLE_length 0x00000004 #define GEN75_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002 #define GEN75_3DSTATE_DRAWING_RECTANGLE_header \ .CommandType = 3, \ @@ -1771,6 +1820,8 @@ GEN75_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data *data, void * re ._3DCommandSubOpcode = 0, \ .DwordLength = 2 +#define GEN75_3DSTATE_DRAWING_RECTANGLE_length 0x00000004 + struct GEN75_3DSTATE_DRAWING_RECTANGLE { uint32_t CommandType; uint32_t CommandSubType; @@ -1791,7 +1842,7 @@ struct GEN75_3DSTATE_DRAWING_RECTANGLE { static inline void GEN75_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_DRAWING_RECTANGLE * restrict values) + const struct GEN75_3DSTATE_DRAWING_RECTANGLE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1821,7 +1872,6 @@ GEN75_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_DS_length 0x00000006 #define GEN75_3DSTATE_DS_length_bias 0x00000002 #define GEN75_3DSTATE_DS_header \ .CommandType = 3, \ @@ -1830,6 +1880,8 @@ GEN75_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 29, \ .DwordLength = 4 +#define GEN75_3DSTATE_DS_length 0x00000006 + struct GEN75_3DSTATE_DS { uint32_t CommandType; uint32_t CommandSubType; @@ -1856,24 +1908,24 @@ struct GEN75_3DSTATE_DS { #define IEEE754 0 #define Alternate 1 uint32_t FloatingPointMode; - uint32_t AccessesUAV; - uint32_t IllegalOpcodeExceptionEnable; - uint32_t SoftwareExceptionEnable; + bool AccessesUAV; + bool IllegalOpcodeExceptionEnable; + bool SoftwareExceptionEnable; uint32_t ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterForURBData; uint32_t PatchURBEntryReadLength; uint32_t PatchURBEntryReadOffset; uint32_t MaximumNumberofThreads; - uint32_t StatisticsEnable; - uint32_t ComputeWCoordinateEnable; - uint32_t DSCacheDisable; - uint32_t DSFunctionEnable; + bool StatisticsEnable; + bool ComputeWCoordinateEnable; + bool DSCacheDisable; + bool DSFunctionEnable; }; static inline void GEN75_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_DS * restrict values) + const struct GEN75_3DSTATE_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1929,6 +1981,10 @@ GEN75_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 55 +#define GEN75_3DSTATE_GATHER_CONSTANT_DS_length 0x00000000 + +#define GEN75_GATHER_CONSTANT_ENTRY_length 0x00000001 + struct GEN75_GATHER_CONSTANT_ENTRY { uint32_t ConstantBufferOffset; uint32_t ChannelMask; @@ -1937,7 +1993,7 @@ struct GEN75_GATHER_CONSTANT_ENTRY { static inline void GEN75_GATHER_CONSTANT_ENTRY_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_GATHER_CONSTANT_ENTRY * restrict values) + const struct GEN75_GATHER_CONSTANT_ENTRY * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1963,7 +2019,7 @@ struct GEN75_3DSTATE_GATHER_CONSTANT_DS { static inline void GEN75_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GATHER_CONSTANT_DS * restrict values) + const struct GEN75_3DSTATE_GATHER_CONSTANT_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -1994,6 +2050,8 @@ GEN75_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 53 +#define GEN75_3DSTATE_GATHER_CONSTANT_GS_length 0x00000000 + struct GEN75_3DSTATE_GATHER_CONSTANT_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -2008,7 +2066,7 @@ struct GEN75_3DSTATE_GATHER_CONSTANT_GS { static inline void GEN75_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GATHER_CONSTANT_GS * restrict values) + const struct GEN75_3DSTATE_GATHER_CONSTANT_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2039,6 +2097,8 @@ GEN75_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 54 +#define GEN75_3DSTATE_GATHER_CONSTANT_HS_length 0x00000000 + struct GEN75_3DSTATE_GATHER_CONSTANT_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -2053,7 +2113,7 @@ struct GEN75_3DSTATE_GATHER_CONSTANT_HS { static inline void GEN75_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GATHER_CONSTANT_HS * restrict values) + const struct GEN75_3DSTATE_GATHER_CONSTANT_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2084,6 +2144,8 @@ GEN75_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 56 +#define GEN75_3DSTATE_GATHER_CONSTANT_PS_length 0x00000000 + struct GEN75_3DSTATE_GATHER_CONSTANT_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -2093,13 +2155,13 @@ struct GEN75_3DSTATE_GATHER_CONSTANT_PS { uint32_t ConstantBufferValid; uint32_t ConstantBufferBindingTableBlock; uint32_t GatherBufferOffset; - uint32_t ConstantBufferDx9Enable; + bool ConstantBufferDx9Enable; /* variable length fields follow */ }; static inline void GEN75_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GATHER_CONSTANT_PS * restrict values) + const struct GEN75_3DSTATE_GATHER_CONSTANT_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2131,6 +2193,8 @@ GEN75_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 52 +#define GEN75_3DSTATE_GATHER_CONSTANT_VS_length 0x00000000 + struct GEN75_3DSTATE_GATHER_CONSTANT_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -2140,13 +2204,13 @@ struct GEN75_3DSTATE_GATHER_CONSTANT_VS { uint32_t ConstantBufferValid; uint32_t ConstantBufferBindingTableBlock; uint32_t GatherBufferOffset; - uint32_t ConstantBufferDx9Enable; + bool ConstantBufferDx9Enable; /* variable length fields follow */ }; static inline void GEN75_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GATHER_CONSTANT_VS * restrict values) + const struct GEN75_3DSTATE_GATHER_CONSTANT_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2171,7 +2235,6 @@ GEN75_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst /* variable length fields follow */ } -#define GEN75_3DSTATE_GATHER_POOL_ALLOC_length 0x00000003 #define GEN75_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002 #define GEN75_3DSTATE_GATHER_POOL_ALLOC_header \ .CommandType = 3, \ @@ -2180,6 +2243,8 @@ GEN75_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst ._3DCommandSubOpcode = 26, \ .DwordLength = 1 +#define GEN75_3DSTATE_GATHER_POOL_ALLOC_length 0x00000003 + struct GEN75_3DSTATE_GATHER_POOL_ALLOC { uint32_t CommandType; uint32_t CommandSubType; @@ -2187,14 +2252,14 @@ struct GEN75_3DSTATE_GATHER_POOL_ALLOC { uint32_t _3DCommandSubOpcode; uint32_t DwordLength; __gen_address_type GatherPoolBaseAddress; - uint32_t GatherPoolEnable; + bool GatherPoolEnable; struct GEN75_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState; __gen_address_type GatherPoolUpperBound; }; static inline void GEN75_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GATHER_POOL_ALLOC * restrict values) + const struct GEN75_3DSTATE_GATHER_POOL_ALLOC * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2210,7 +2275,7 @@ GEN75_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst, GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_MemoryObjectControlState, &values->MemoryObjectControlState); uint32_t dw1 = __gen_field(values->GatherPoolEnable, 11, 11) | - /* Struct MemoryObjectControlState (0..3): */ + __gen_mbo(4, 5) | __gen_field(dw_MemoryObjectControlState, 0, 3) | 0; @@ -2225,7 +2290,6 @@ GEN75_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_GS_length 0x00000007 #define GEN75_3DSTATE_GS_length_bias 0x00000002 #define GEN75_3DSTATE_GS_header \ .CommandType = 3, \ @@ -2234,6 +2298,8 @@ GEN75_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 17, \ .DwordLength = 5 +#define GEN75_3DSTATE_GS_length 0x00000007 + struct GEN75_3DSTATE_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -2258,16 +2324,16 @@ struct GEN75_3DSTATE_GS { #define IEEE754 0 #define alternate 1 uint32_t FloatingPointMode; - uint32_t IllegalOpcodeExceptionEnable; + bool IllegalOpcodeExceptionEnable; uint32_t GSaccessesUAV; - uint32_t MaskStackExceptionEnable; - uint32_t SoftwareExceptionEnable; + bool MaskStackExceptionEnable; + bool SoftwareExceptionEnable; uint32_t ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t OutputVertexSize; uint32_t OutputTopology; uint32_t VertexURBEntryReadLength; - uint32_t IncludeVertexHandles; + bool IncludeVertexHandles; uint32_t VertexURBEntryReadOffset; uint32_t DispatchGRFStartRegisterforURBData; uint32_t MaximumNumberofThreads; @@ -2280,13 +2346,13 @@ struct GEN75_3DSTATE_GS { uint32_t DispatchMode; uint32_t GSStatisticsEnable; uint32_t GSInvocationsIncrementValue; - uint32_t IncludePrimitiveID; + bool IncludePrimitiveID; uint32_t Hint; #define REORDER_LEADING 0 #define REORDER_TRAILING 1 uint32_t ReorderMode; - uint32_t DiscardAdjacency; - uint32_t GSEnable; + bool DiscardAdjacency; + bool GSEnable; #define GSCTL_CUT 0 #define GSCTL_SID 1 uint32_t ControlDataFormat; @@ -2295,7 +2361,7 @@ struct GEN75_3DSTATE_GS { static inline void GEN75_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_GS * restrict values) + const struct GEN75_3DSTATE_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2360,7 +2426,6 @@ GEN75_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003 #define GEN75_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002 #define GEN75_3DSTATE_HIER_DEPTH_BUFFER_header \ .CommandType = 3, \ @@ -2369,6 +2434,8 @@ GEN75_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 7, \ .DwordLength = 1 +#define GEN75_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003 + struct GEN75_3DSTATE_HIER_DEPTH_BUFFER { uint32_t CommandType; uint32_t CommandSubType; @@ -2382,7 +2449,7 @@ struct GEN75_3DSTATE_HIER_DEPTH_BUFFER { static inline void GEN75_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_HIER_DEPTH_BUFFER * restrict values) + const struct GEN75_3DSTATE_HIER_DEPTH_BUFFER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2397,7 +2464,6 @@ GEN75_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, uint32_t dw_HierarchicalDepthBufferObjectControlState; GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_HierarchicalDepthBufferObjectControlState, &values->HierarchicalDepthBufferObjectControlState); dw[1] = - /* Struct HierarchicalDepthBufferObjectControlState (25..28): */ __gen_field(dw_HierarchicalDepthBufferObjectControlState, 25, 28) | __gen_field(values->SurfacePitch, 0, 16) | 0; @@ -2410,7 +2476,6 @@ GEN75_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_HS_length 0x00000007 #define GEN75_3DSTATE_HS_length_bias 0x00000002 #define GEN75_3DSTATE_HS_header \ .CommandType = 3, \ @@ -2419,6 +2484,8 @@ GEN75_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 27, \ .DwordLength = 5 +#define GEN75_3DSTATE_HS_length 0x00000007 + struct GEN75_3DSTATE_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -2438,11 +2505,11 @@ struct GEN75_3DSTATE_HS { #define IEEE754 0 #define alternate 1 uint32_t FloatingPointMode; - uint32_t IllegalOpcodeExceptionEnable; - uint32_t SoftwareExceptionEnable; + bool IllegalOpcodeExceptionEnable; + bool SoftwareExceptionEnable; uint32_t MaximumNumberofThreads; - uint32_t Enable; - uint32_t StatisticsEnable; + bool Enable; + bool StatisticsEnable; uint32_t InstanceCount; uint32_t KernelStartPointer; uint32_t ScratchSpaceBasePointer; @@ -2451,8 +2518,8 @@ struct GEN75_3DSTATE_HS { #define Dmask 0 #define Vmask 1 uint32_t VectorMaskEnable; - uint32_t HSaccessesUAV; - uint32_t IncludeVertexHandles; + bool HSaccessesUAV; + bool IncludeVertexHandles; uint32_t DispatchGRFStartRegisterForURBData; uint32_t VertexURBEntryReadLength; uint32_t VertexURBEntryReadOffset; @@ -2461,7 +2528,7 @@ struct GEN75_3DSTATE_HS { static inline void GEN75_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_HS * restrict values) + const struct GEN75_3DSTATE_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2514,7 +2581,6 @@ GEN75_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_INDEX_BUFFER_length 0x00000003 #define GEN75_3DSTATE_INDEX_BUFFER_length_bias 0x00000002 #define GEN75_3DSTATE_INDEX_BUFFER_header \ .CommandType = 3, \ @@ -2523,6 +2589,8 @@ GEN75_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 10, \ .DwordLength = 1 +#define GEN75_3DSTATE_INDEX_BUFFER_length 0x00000003 + struct GEN75_3DSTATE_INDEX_BUFFER { uint32_t CommandType; uint32_t CommandSubType; @@ -2540,7 +2608,7 @@ struct GEN75_3DSTATE_INDEX_BUFFER { static inline void GEN75_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_INDEX_BUFFER * restrict values) + const struct GEN75_3DSTATE_INDEX_BUFFER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2551,7 +2619,6 @@ GEN75_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->CommandSubType, 27, 28) | __gen_field(values->_3DCommandOpcode, 24, 26) | __gen_field(values->_3DCommandSubOpcode, 16, 23) | - /* Struct MemoryObjectControlState (12..15): */ __gen_field(dw_MemoryObjectControlState, 12, 15) | __gen_field(values->IndexFormat, 8, 9) | __gen_field(values->DwordLength, 0, 7) | @@ -2571,7 +2638,6 @@ GEN75_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_LINE_STIPPLE_length 0x00000003 #define GEN75_3DSTATE_LINE_STIPPLE_length_bias 0x00000002 #define GEN75_3DSTATE_LINE_STIPPLE_header \ .CommandType = 3, \ @@ -2580,23 +2646,25 @@ GEN75_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 8, \ .DwordLength = 1 +#define GEN75_3DSTATE_LINE_STIPPLE_length 0x00000003 + struct GEN75_3DSTATE_LINE_STIPPLE { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; uint32_t DwordLength; - uint32_t ModifyEnableCurrentRepeatCounterCurrentStippleIndex; + bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex; uint32_t CurrentRepeatCounter; uint32_t CurrentStippleIndex; uint32_t LineStipplePattern; - uint32_t LineStippleInverseRepeatCount; + float LineStippleInverseRepeatCount; uint32_t LineStippleRepeatCount; }; static inline void GEN75_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_LINE_STIPPLE * restrict values) + const struct GEN75_3DSTATE_LINE_STIPPLE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2616,13 +2684,12 @@ GEN75_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst, 0; dw[2] = - __gen_field(values->LineStippleInverseRepeatCount, 15, 31) | + __gen_field(values->LineStippleInverseRepeatCount * (1 << 16), 15, 31) | __gen_field(values->LineStippleRepeatCount, 0, 8) | 0; } -#define GEN75_3DSTATE_MONOFILTER_SIZE_length 0x00000002 #define GEN75_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002 #define GEN75_3DSTATE_MONOFILTER_SIZE_header \ .CommandType = 3, \ @@ -2631,6 +2698,8 @@ GEN75_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 17, \ .DwordLength = 0 +#define GEN75_3DSTATE_MONOFILTER_SIZE_length 0x00000002 + struct GEN75_3DSTATE_MONOFILTER_SIZE { uint32_t CommandType; uint32_t CommandSubType; @@ -2643,7 +2712,7 @@ struct GEN75_3DSTATE_MONOFILTER_SIZE { static inline void GEN75_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_MONOFILTER_SIZE * restrict values) + const struct GEN75_3DSTATE_MONOFILTER_SIZE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2662,7 +2731,6 @@ GEN75_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_MULTISAMPLE_length 0x00000004 #define GEN75_3DSTATE_MULTISAMPLE_length_bias 0x00000002 #define GEN75_3DSTATE_MULTISAMPLE_header \ .CommandType = 3, \ @@ -2671,13 +2739,15 @@ GEN75_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 13, \ .DwordLength = 2 +#define GEN75_3DSTATE_MULTISAMPLE_length 0x00000004 + struct GEN75_3DSTATE_MULTISAMPLE { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; uint32_t DwordLength; - uint32_t MultiSampleEnable; + bool MultiSampleEnable; #define PIXLOC_CENTER 0 #define PIXLOC_UL_CORNER 1 uint32_t PixelLocation; @@ -2685,27 +2755,27 @@ struct GEN75_3DSTATE_MULTISAMPLE { #define NUMSAMPLES_4 2 #define NUMSAMPLES_8 3 uint32_t NumberofMultisamples; - uint32_t Sample3XOffset; - uint32_t Sample3YOffset; - uint32_t Sample2XOffset; - uint32_t Sample2YOffset; - uint32_t Sample1XOffset; - uint32_t Sample1YOffset; - uint32_t Sample0XOffset; - uint32_t Sample0YOffset; - uint32_t Sample7XOffset; - uint32_t Sample7YOffset; - uint32_t Sample6XOffset; - uint32_t Sample6YOffset; - uint32_t Sample5XOffset; - uint32_t Sample5YOffset; - uint32_t Sample4XOffset; - uint32_t Sample4YOffset; + float Sample3XOffset; + float Sample3YOffset; + float Sample2XOffset; + float Sample2YOffset; + float Sample1XOffset; + float Sample1YOffset; + float Sample0XOffset; + float Sample0YOffset; + float Sample7XOffset; + float Sample7YOffset; + float Sample6XOffset; + float Sample6YOffset; + float Sample5XOffset; + float Sample5YOffset; + float Sample4XOffset; + float Sample4YOffset; }; static inline void GEN75_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_MULTISAMPLE * restrict values) + const struct GEN75_3DSTATE_MULTISAMPLE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2724,30 +2794,29 @@ GEN75_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst, 0; dw[2] = - __gen_field(values->Sample3XOffset, 28, 31) | - __gen_field(values->Sample3YOffset, 24, 27) | - __gen_field(values->Sample2XOffset, 20, 23) | - __gen_field(values->Sample2YOffset, 16, 19) | - __gen_field(values->Sample1XOffset, 12, 15) | - __gen_field(values->Sample1YOffset, 8, 11) | - __gen_field(values->Sample0XOffset, 4, 7) | - __gen_field(values->Sample0YOffset, 0, 3) | + __gen_field(values->Sample3XOffset * (1 << 4), 28, 31) | + __gen_field(values->Sample3YOffset * (1 << 4), 24, 27) | + __gen_field(values->Sample2XOffset * (1 << 4), 20, 23) | + __gen_field(values->Sample2YOffset * (1 << 4), 16, 19) | + __gen_field(values->Sample1XOffset * (1 << 4), 12, 15) | + __gen_field(values->Sample1YOffset * (1 << 4), 8, 11) | + __gen_field(values->Sample0XOffset * (1 << 4), 4, 7) | + __gen_field(values->Sample0YOffset * (1 << 4), 0, 3) | 0; dw[3] = - __gen_field(values->Sample7XOffset, 28, 31) | - __gen_field(values->Sample7YOffset, 24, 27) | - __gen_field(values->Sample6XOffset, 20, 23) | - __gen_field(values->Sample6YOffset, 16, 19) | - __gen_field(values->Sample5XOffset, 12, 15) | - __gen_field(values->Sample5YOffset, 8, 11) | - __gen_field(values->Sample4XOffset, 4, 7) | - __gen_field(values->Sample4YOffset, 0, 3) | + __gen_field(values->Sample7XOffset * (1 << 4), 28, 31) | + __gen_field(values->Sample7YOffset * (1 << 4), 24, 27) | + __gen_field(values->Sample6XOffset * (1 << 4), 20, 23) | + __gen_field(values->Sample6YOffset * (1 << 4), 16, 19) | + __gen_field(values->Sample5XOffset * (1 << 4), 12, 15) | + __gen_field(values->Sample5YOffset * (1 << 4), 8, 11) | + __gen_field(values->Sample4XOffset * (1 << 4), 4, 7) | + __gen_field(values->Sample4YOffset * (1 << 4), 0, 3) | 0; } -#define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002 #define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002 #define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_header\ .CommandType = 3, \ @@ -2756,6 +2825,8 @@ GEN75_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 6, \ .DwordLength = 0 +#define GEN75_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002 + struct GEN75_3DSTATE_POLY_STIPPLE_OFFSET { uint32_t CommandType; uint32_t CommandSubType; @@ -2768,7 +2839,7 @@ struct GEN75_3DSTATE_POLY_STIPPLE_OFFSET { static inline void GEN75_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_POLY_STIPPLE_OFFSET * restrict values) + const struct GEN75_3DSTATE_POLY_STIPPLE_OFFSET * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2787,7 +2858,6 @@ GEN75_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict ds } -#define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021 #define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002 #define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_header\ .CommandType = 3, \ @@ -2796,18 +2866,20 @@ GEN75_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict ds ._3DCommandSubOpcode = 7, \ .DwordLength = 31 +#define GEN75_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021 + struct GEN75_3DSTATE_POLY_STIPPLE_PATTERN { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; uint32_t DwordLength; - uint32_t PatternRow; + uint32_t PatternRow[32]; }; static inline void GEN75_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_POLY_STIPPLE_PATTERN * restrict values) + const struct GEN75_3DSTATE_POLY_STIPPLE_PATTERN * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2819,13 +2891,14 @@ GEN75_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict d __gen_field(values->DwordLength, 0, 7) | 0; - dw[1] = - __gen_field(values->PatternRow, 0, 31) | - 0; + for (uint32_t i = 0, j = 1; i < 32; i += 1, j++) { + dw[j] = + __gen_field(values->PatternRow[i + 0], 0, 31) | + 0; + } } -#define GEN75_3DSTATE_PS_length 0x00000008 #define GEN75_3DSTATE_PS_length_bias 0x00000002 #define GEN75_3DSTATE_PS_header \ .CommandType = 3, \ @@ -2834,6 +2907,8 @@ GEN75_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict d ._3DCommandSubOpcode = 32, \ .DwordLength = 6 +#define GEN75_3DSTATE_PS_length 0x00000008 + struct GEN75_3DSTATE_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -2863,27 +2938,27 @@ struct GEN75_3DSTATE_PS { #define RD 2 #define RTZ 3 uint32_t RoundingMode; - uint32_t IllegalOpcodeExceptionEnable; - uint32_t MaskStackExceptionEnable; - uint32_t SoftwareExceptionEnable; + bool IllegalOpcodeExceptionEnable; + bool MaskStackExceptionEnable; + bool SoftwareExceptionEnable; uint32_t ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t MaximumNumberofThreads; uint32_t SampleMask; - uint32_t PushConstantEnable; - uint32_t AttributeEnable; - uint32_t oMaskPresenttoRenderTarget; - uint32_t RenderTargetFastClearEnable; - uint32_t DualSourceBlendEnable; - uint32_t RenderTargetResolveEnable; - uint32_t PSAccessesUAV; + bool PushConstantEnable; + bool AttributeEnable; + bool oMaskPresenttoRenderTarget; + bool RenderTargetFastClearEnable; + bool DualSourceBlendEnable; + bool RenderTargetResolveEnable; + bool PSAccessesUAV; #define POSOFFSET_NONE 0 #define POSOFFSET_CENTROID 2 #define POSOFFSET_SAMPLE 3 uint32_t PositionXYOffsetSelect; - uint32_t _32PixelDispatchEnable; - uint32_t _16PixelDispatchEnable; - uint32_t _8PixelDispatchEnable; + bool _32PixelDispatchEnable; + bool _16PixelDispatchEnable; + bool _8PixelDispatchEnable; uint32_t DispatchGRFStartRegisterforConstantSetupData0; uint32_t DispatchGRFStartRegisterforConstantSetupData1; uint32_t DispatchGRFStartRegisterforConstantSetupData2; @@ -2893,7 +2968,7 @@ struct GEN75_3DSTATE_PS { static inline void GEN75_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_PS * restrict values) + const struct GEN75_3DSTATE_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -2960,7 +3035,6 @@ GEN75_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\ .CommandType = 3, \ @@ -2969,6 +3043,8 @@ GEN75_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 20, \ .DwordLength = 0 +#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002 + struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS { uint32_t CommandType; uint32_t CommandSubType; @@ -2981,7 +3057,7 @@ struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS { static inline void GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS * restrict values) + const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3000,7 +3076,6 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict } -#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\ .CommandType = 3, \ @@ -3009,6 +3084,8 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 21, \ .DwordLength = 0 +#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002 + struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -3021,7 +3098,7 @@ struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS { static inline void GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS * restrict values) + const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3040,7 +3117,6 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict } -#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\ .CommandType = 3, \ @@ -3049,6 +3125,8 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 19, \ .DwordLength = 0 +#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002 + struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -3061,7 +3139,7 @@ struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS { static inline void GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS * restrict values) + const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3080,7 +3158,6 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict } -#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\ .CommandType = 3, \ @@ -3089,6 +3166,8 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 22, \ .DwordLength = 0 +#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002 + struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -3101,7 +3180,7 @@ struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS { static inline void GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS * restrict values) + const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3120,7 +3199,6 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict } -#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002 #define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\ .CommandType = 3, \ @@ -3129,6 +3207,8 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 18, \ .DwordLength = 0 +#define GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002 + struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -3141,7 +3221,7 @@ struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS { static inline void GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS * restrict values) + const struct GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3160,7 +3240,6 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict } -#define GEN75_3DSTATE_RAST_MULTISAMPLE_length 0x00000006 #define GEN75_3DSTATE_RAST_MULTISAMPLE_length_bias 0x00000002 #define GEN75_3DSTATE_RAST_MULTISAMPLE_header \ .CommandType = 3, \ @@ -3169,6 +3248,8 @@ GEN75_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 14, \ .DwordLength = 4 +#define GEN75_3DSTATE_RAST_MULTISAMPLE_length 0x00000006 + struct GEN75_3DSTATE_RAST_MULTISAMPLE { uint32_t CommandType; uint32_t CommandSubType; @@ -3181,43 +3262,43 @@ struct GEN75_3DSTATE_RAST_MULTISAMPLE { #define NRM_NUMRASTSAMPLES_8 3 #define NRM_NUMRASTSAMPLES_16 4 uint32_t NumberofRasterizationMultisamples; - uint32_t Sample3XOffset; - uint32_t Sample3YOffset; - uint32_t Sample2XOffset; - uint32_t Sample2YOffset; - uint32_t Sample1XOffset; - uint32_t Sample1YOffset; - uint32_t Sample0XOffset; - uint32_t Sample0YOffset; - uint32_t Sample7XOffset; - uint32_t Sample7YOffset; - uint32_t Sample6XOffset; - uint32_t Sample6YOffset; - uint32_t Sample5XOffset; - uint32_t Sample5YOffset; - uint32_t Sample4XOffset; - uint32_t Sample4YOffset; - uint32_t Sample11XOffset; - uint32_t Sample11YOffset; - uint32_t Sample10XOffset; - uint32_t Sample10YOffset; - uint32_t Sample9XOffset; - uint32_t Sample9YOffset; - uint32_t Sample8XOffset; - uint32_t Sample8YOffset; - uint32_t Sample15XOffset; - uint32_t Sample15YOffset; - uint32_t Sample14XOffset; - uint32_t Sample14YOffset; - uint32_t Sample13XOffset; - uint32_t Sample13YOffset; - uint32_t Sample12XOffset; - uint32_t Sample12YOffset; + float Sample3XOffset; + float Sample3YOffset; + float Sample2XOffset; + float Sample2YOffset; + float Sample1XOffset; + float Sample1YOffset; + float Sample0XOffset; + float Sample0YOffset; + float Sample7XOffset; + float Sample7YOffset; + float Sample6XOffset; + float Sample6YOffset; + float Sample5XOffset; + float Sample5YOffset; + float Sample4XOffset; + float Sample4YOffset; + float Sample11XOffset; + float Sample11YOffset; + float Sample10XOffset; + float Sample10YOffset; + float Sample9XOffset; + float Sample9YOffset; + float Sample8XOffset; + float Sample8YOffset; + float Sample15XOffset; + float Sample15YOffset; + float Sample14XOffset; + float Sample14YOffset; + float Sample13XOffset; + float Sample13YOffset; + float Sample12XOffset; + float Sample12YOffset; }; static inline void GEN75_3DSTATE_RAST_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_RAST_MULTISAMPLE * restrict values) + const struct GEN75_3DSTATE_RAST_MULTISAMPLE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3234,47 +3315,47 @@ GEN75_3DSTATE_RAST_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst, 0; dw[2] = - __gen_field(values->Sample3XOffset, 28, 31) | - __gen_field(values->Sample3YOffset, 24, 27) | - __gen_field(values->Sample2XOffset, 20, 23) | - __gen_field(values->Sample2YOffset, 16, 19) | - __gen_field(values->Sample1XOffset, 12, 15) | - __gen_field(values->Sample1YOffset, 8, 11) | - __gen_field(values->Sample0XOffset, 4, 7) | - __gen_field(values->Sample0YOffset, 0, 3) | + __gen_field(values->Sample3XOffset * (1 << 4), 28, 31) | + __gen_field(values->Sample3YOffset * (1 << 4), 24, 27) | + __gen_field(values->Sample2XOffset * (1 << 4), 20, 23) | + __gen_field(values->Sample2YOffset * (1 << 4), 16, 19) | + __gen_field(values->Sample1XOffset * (1 << 4), 12, 15) | + __gen_field(values->Sample1YOffset * (1 << 4), 8, 11) | + __gen_field(values->Sample0XOffset * (1 << 4), 4, 7) | + __gen_field(values->Sample0YOffset * (1 << 4), 0, 3) | 0; dw[3] = - __gen_field(values->Sample7XOffset, 28, 31) | - __gen_field(values->Sample7YOffset, 24, 27) | - __gen_field(values->Sample6XOffset, 20, 23) | - __gen_field(values->Sample6YOffset, 16, 19) | - __gen_field(values->Sample5XOffset, 12, 15) | - __gen_field(values->Sample5YOffset, 8, 11) | - __gen_field(values->Sample4XOffset, 4, 7) | - __gen_field(values->Sample4YOffset, 0, 3) | + __gen_field(values->Sample7XOffset * (1 << 4), 28, 31) | + __gen_field(values->Sample7YOffset * (1 << 4), 24, 27) | + __gen_field(values->Sample6XOffset * (1 << 4), 20, 23) | + __gen_field(values->Sample6YOffset * (1 << 4), 16, 19) | + __gen_field(values->Sample5XOffset * (1 << 4), 12, 15) | + __gen_field(values->Sample5YOffset * (1 << 4), 8, 11) | + __gen_field(values->Sample4XOffset * (1 << 4), 4, 7) | + __gen_field(values->Sample4YOffset * (1 << 4), 0, 3) | 0; dw[4] = - __gen_field(values->Sample11XOffset, 28, 31) | - __gen_field(values->Sample11YOffset, 24, 27) | - __gen_field(values->Sample10XOffset, 20, 23) | - __gen_field(values->Sample10YOffset, 16, 19) | - __gen_field(values->Sample9XOffset, 12, 15) | - __gen_field(values->Sample9YOffset, 8, 11) | - __gen_field(values->Sample8XOffset, 4, 7) | - __gen_field(values->Sample8YOffset, 0, 3) | + __gen_field(values->Sample11XOffset * (1 << 4), 28, 31) | + __gen_field(values->Sample11YOffset * (1 << 4), 24, 27) | + __gen_field(values->Sample10XOffset * (1 << 4), 20, 23) | + __gen_field(values->Sample10YOffset * (1 << 4), 16, 19) | + __gen_field(values->Sample9XOffset * (1 << 4), 12, 15) | + __gen_field(values->Sample9YOffset * (1 << 4), 8, 11) | + __gen_field(values->Sample8XOffset * (1 << 4), 4, 7) | + __gen_field(values->Sample8YOffset * (1 << 4), 0, 3) | 0; dw[5] = - __gen_field(values->Sample15XOffset, 28, 31) | - __gen_field(values->Sample15YOffset, 24, 27) | - __gen_field(values->Sample14XOffset, 20, 23) | - __gen_field(values->Sample14YOffset, 16, 19) | - __gen_field(values->Sample13XOffset, 12, 15) | - __gen_field(values->Sample13YOffset, 8, 11) | - __gen_field(values->Sample12XOffset, 4, 7) | - __gen_field(values->Sample12YOffset, 0, 3) | + __gen_field(values->Sample15XOffset * (1 << 4), 28, 31) | + __gen_field(values->Sample15YOffset * (1 << 4), 24, 27) | + __gen_field(values->Sample14XOffset * (1 << 4), 20, 23) | + __gen_field(values->Sample14YOffset * (1 << 4), 16, 19) | + __gen_field(values->Sample13XOffset * (1 << 4), 12, 15) | + __gen_field(values->Sample13YOffset * (1 << 4), 8, 11) | + __gen_field(values->Sample12XOffset * (1 << 4), 4, 7) | + __gen_field(values->Sample12YOffset * (1 << 4), 0, 3) | 0; } @@ -3286,6 +3367,10 @@ GEN75_3DSTATE_RAST_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 1, \ ._3DCommandSubOpcode = 2 +#define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000 + +#define GEN75_PALETTE_ENTRY_length 0x00000001 + struct GEN75_PALETTE_ENTRY { uint32_t Alpha; uint32_t Red; @@ -3295,7 +3380,7 @@ struct GEN75_PALETTE_ENTRY { static inline void GEN75_PALETTE_ENTRY_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_PALETTE_ENTRY * restrict values) + const struct GEN75_PALETTE_ENTRY * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3319,7 +3404,7 @@ struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0 { static inline void GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0 * restrict values) + const struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0 * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3341,6 +3426,8 @@ GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data *data, void * restrict ._3DCommandOpcode = 1, \ ._3DCommandSubOpcode = 12 +#define GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000 + struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1 { uint32_t CommandType; uint32_t CommandSubType; @@ -3352,7 +3439,7 @@ struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1 { static inline void GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1 * restrict values) + const struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1 * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3367,7 +3454,6 @@ GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict /* variable length fields follow */ } -#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\ .CommandType = 3, \ @@ -3376,6 +3462,8 @@ GEN75_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 45, \ .DwordLength = 0 +#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002 + struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS { uint32_t CommandType; uint32_t CommandSubType; @@ -3387,7 +3475,7 @@ struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS { static inline void GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS * restrict values) + const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3405,7 +3493,6 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\ .CommandType = 3, \ @@ -3414,6 +3501,8 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 46, \ .DwordLength = 0 +#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002 + struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -3425,7 +3514,7 @@ struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS { static inline void GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS * restrict values) + const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3443,7 +3532,6 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\ .CommandType = 3, \ @@ -3452,6 +3540,8 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 44, \ .DwordLength = 0 +#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002 + struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -3463,7 +3553,7 @@ struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS { static inline void GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS * restrict values) + const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3481,7 +3571,6 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\ .CommandType = 3, \ @@ -3490,6 +3579,8 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 47, \ .DwordLength = 0 +#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002 + struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS { uint32_t CommandType; uint32_t CommandSubType; @@ -3501,7 +3592,7 @@ struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS { static inline void GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS * restrict values) + const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3519,7 +3610,6 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002 #define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\ .CommandType = 3, \ @@ -3528,6 +3618,8 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 43, \ .DwordLength = 0 +#define GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002 + struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -3539,7 +3631,7 @@ struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS { static inline void GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS * restrict values) + const struct GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3557,7 +3649,6 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restr } -#define GEN75_3DSTATE_SAMPLE_MASK_length 0x00000002 #define GEN75_3DSTATE_SAMPLE_MASK_length_bias 0x00000002 #define GEN75_3DSTATE_SAMPLE_MASK_header \ .CommandType = 3, \ @@ -3566,6 +3657,8 @@ GEN75_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restr ._3DCommandSubOpcode = 24, \ .DwordLength = 0 +#define GEN75_3DSTATE_SAMPLE_MASK_length 0x00000002 + struct GEN75_3DSTATE_SAMPLE_MASK { uint32_t CommandType; uint32_t CommandSubType; @@ -3577,7 +3670,7 @@ struct GEN75_3DSTATE_SAMPLE_MASK { static inline void GEN75_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SAMPLE_MASK * restrict values) + const struct GEN75_3DSTATE_SAMPLE_MASK * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3595,7 +3688,6 @@ GEN75_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_SBE_length 0x0000000e #define GEN75_3DSTATE_SBE_length_bias 0x00000002 #define GEN75_3DSTATE_SBE_header \ .CommandType = 3, \ @@ -3604,6 +3696,8 @@ GEN75_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 31, \ .DwordLength = 12 +#define GEN75_3DSTATE_SBE_length 0x0000000e + struct GEN75_3DSTATE_SBE { uint32_t CommandType; uint32_t CommandSubType; @@ -3612,16 +3706,16 @@ struct GEN75_3DSTATE_SBE { uint32_t DwordLength; uint32_t AttributeSwizzleControlMode; uint32_t NumberofSFOutputAttributes; - uint32_t AttributeSwizzleEnable; + bool AttributeSwizzleEnable; #define UPPERLEFT 0 #define LOWERLEFT 1 uint32_t PointSpriteTextureCoordinateOrigin; uint32_t VertexURBEntryReadLength; uint32_t VertexURBEntryReadOffset; - uint32_t Attribute2n1ComponentOverrideW; - uint32_t Attribute2n1ComponentOverrideZ; - uint32_t Attribute2n1ComponentOverrideY; - uint32_t Attribute2n1ComponentOverrideX; + bool Attribute2n1ComponentOverrideW; + bool Attribute2n1ComponentOverrideZ; + bool Attribute2n1ComponentOverrideY; + bool Attribute2n1ComponentOverrideX; #define CONST_0000 0 #define CONST_0001_FLOAT 1 #define CONST_1111_FLOAT 2 @@ -3633,10 +3727,10 @@ struct GEN75_3DSTATE_SBE { #define INPUTATTR_FACING_W 3 uint32_t Attribute2n1SwizzleSelect; uint32_t Attribute2n1SourceAttribute; - uint32_t Attribute2nComponentOverrideW; - uint32_t Attribute2nComponentOverrideZ; - uint32_t Attribute2nComponentOverrideY; - uint32_t Attribute2nComponentOverrideX; + bool Attribute2nComponentOverrideW; + bool Attribute2nComponentOverrideZ; + bool Attribute2nComponentOverrideY; + bool Attribute2nComponentOverrideX; #define CONST_0000 0 #define CONST_0001_FLOAT 1 #define CONST_1111_FLOAT 2 @@ -3670,7 +3764,7 @@ struct GEN75_3DSTATE_SBE { static inline void GEN75_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SBE * restrict values) + const struct GEN75_3DSTATE_SBE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3740,7 +3834,6 @@ GEN75_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002 #define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002 #define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_header\ .CommandType = 3, \ @@ -3749,6 +3842,8 @@ GEN75_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 15, \ .DwordLength = 0 +#define GEN75_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002 + struct GEN75_3DSTATE_SCISSOR_STATE_POINTERS { uint32_t CommandType; uint32_t CommandSubType; @@ -3760,7 +3855,7 @@ struct GEN75_3DSTATE_SCISSOR_STATE_POINTERS { static inline void GEN75_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SCISSOR_STATE_POINTERS * restrict values) + const struct GEN75_3DSTATE_SCISSOR_STATE_POINTERS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3778,7 +3873,6 @@ GEN75_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict } -#define GEN75_3DSTATE_SF_length 0x00000007 #define GEN75_3DSTATE_SF_length_bias 0x00000002 #define GEN75_3DSTATE_SF_header \ .CommandType = 3, \ @@ -3787,6 +3881,8 @@ GEN75_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict ._3DCommandSubOpcode = 19, \ .DwordLength = 5 +#define GEN75_3DSTATE_SF_length 0x00000007 + struct GEN75_3DSTATE_SF { uint32_t CommandType; uint32_t CommandSubType; @@ -3799,11 +3895,11 @@ struct GEN75_3DSTATE_SF { #define D24_UNORM_X8_UINT 3 #define D16_UNORM 5 uint32_t DepthBufferSurfaceFormat; - uint32_t LegacyGlobalDepthBiasEnable; - uint32_t StatisticsEnable; - uint32_t GlobalDepthOffsetEnableSolid; - uint32_t GlobalDepthOffsetEnableWireframe; - uint32_t GlobalDepthOffsetEnablePoint; + bool LegacyGlobalDepthBiasEnable; + bool StatisticsEnable; + bool GlobalDepthOffsetEnableSolid; + bool GlobalDepthOffsetEnableWireframe; + bool GlobalDepthOffsetEnablePoint; #define RASTER_SOLID 0 #define RASTER_WIREFRAME 1 #define RASTER_POINT 2 @@ -3812,21 +3908,21 @@ struct GEN75_3DSTATE_SF { #define RASTER_WIREFRAME 1 #define RASTER_POINT 2 uint32_t BackFaceFillMode; - uint32_t ViewTransformEnable; + bool ViewTransformEnable; uint32_t FrontWinding; - uint32_t AntiAliasingEnable; + bool AntiAliasingEnable; #define CULLMODE_BOTH 0 #define CULLMODE_NONE 1 #define CULLMODE_FRONT 2 #define CULLMODE_BACK 3 uint32_t CullMode; - uint32_t LineWidth; + float LineWidth; uint32_t LineEndCapAntialiasingRegionWidth; - uint32_t LineStippleEnable; - uint32_t ScissorRectangleEnable; - uint32_t RTIndependentRasterizationEnable; + bool LineStippleEnable; + bool ScissorRectangleEnable; + bool RTIndependentRasterizationEnable; uint32_t MultisampleRasterizationMode; - uint32_t LastPixelEnable; + bool LastPixelEnable; #define Vertex0 0 #define Vertex1 1 #define Vertex2 2 @@ -3840,15 +3936,15 @@ struct GEN75_3DSTATE_SF { uint32_t AALineDistanceMode; uint32_t VertexSubPixelPrecisionSelect; uint32_t UsePointWidthState; - uint32_t PointWidth; - uint32_t GlobalDepthOffsetConstant; - uint32_t GlobalDepthOffsetScale; - uint32_t GlobalDepthOffsetClamp; + float PointWidth; + float GlobalDepthOffsetConstant; + float GlobalDepthOffsetScale; + float GlobalDepthOffsetClamp; }; static inline void GEN75_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SF * restrict values) + const struct GEN75_3DSTATE_SF * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3876,7 +3972,7 @@ GEN75_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst, dw[2] = __gen_field(values->AntiAliasingEnable, 31, 31) | __gen_field(values->CullMode, 29, 30) | - __gen_field(values->LineWidth, 18, 27) | + __gen_field(values->LineWidth * (1 << 7), 18, 27) | __gen_field(values->LineEndCapAntialiasingRegionWidth, 16, 17) | __gen_field(values->LineStippleEnable, 14, 14) | __gen_field(values->ScissorRectangleEnable, 11, 11) | @@ -3892,24 +3988,23 @@ GEN75_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->AALineDistanceMode, 14, 14) | __gen_field(values->VertexSubPixelPrecisionSelect, 12, 12) | __gen_field(values->UsePointWidthState, 11, 11) | - __gen_field(values->PointWidth, 0, 10) | + __gen_field(values->PointWidth * (1 << 3), 0, 10) | 0; dw[4] = - __gen_field(values->GlobalDepthOffsetConstant, 0, 31) | + __gen_float(values->GlobalDepthOffsetConstant) | 0; dw[5] = - __gen_field(values->GlobalDepthOffsetScale, 0, 31) | + __gen_float(values->GlobalDepthOffsetScale) | 0; dw[6] = - __gen_field(values->GlobalDepthOffsetClamp, 0, 31) | + __gen_float(values->GlobalDepthOffsetClamp) | 0; } -#define GEN75_3DSTATE_SO_BUFFER_length 0x00000004 #define GEN75_3DSTATE_SO_BUFFER_length_bias 0x00000002 #define GEN75_3DSTATE_SO_BUFFER_header \ .CommandType = 3, \ @@ -3918,6 +4013,8 @@ GEN75_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 24, \ .DwordLength = 2 +#define GEN75_3DSTATE_SO_BUFFER_length 0x00000004 + struct GEN75_3DSTATE_SO_BUFFER { uint32_t CommandType; uint32_t CommandSubType; @@ -3933,7 +4030,7 @@ struct GEN75_3DSTATE_SO_BUFFER { static inline void GEN75_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SO_BUFFER * restrict values) + const struct GEN75_3DSTATE_SO_BUFFER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -3949,7 +4046,6 @@ GEN75_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst, GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SOBufferObjectControlState, &values->SOBufferObjectControlState); dw[1] = __gen_field(values->SOBufferIndex, 29, 30) | - /* Struct SOBufferObjectControlState (25..28): */ __gen_field(dw_SOBufferObjectControlState, 25, 28) | __gen_field(values->SurfacePitch, 0, 11) | 0; @@ -3975,6 +4071,12 @@ GEN75_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 1, \ ._3DCommandSubOpcode = 23 +#define GEN75_3DSTATE_SO_DECL_LIST_length 0x00000000 + +#define GEN75_SO_DECL_ENTRY_length 0x00000002 + +#define GEN75_SO_DECL_length 0x00000001 + struct GEN75_SO_DECL { uint32_t OutputBufferSlot; uint32_t HoleFlag; @@ -3984,7 +4086,7 @@ struct GEN75_SO_DECL { static inline void GEN75_SO_DECL_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SO_DECL * restrict values) + const struct GEN75_SO_DECL * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4006,7 +4108,7 @@ struct GEN75_SO_DECL_ENTRY { static inline void GEN75_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SO_DECL_ENTRY * restrict values) + const struct GEN75_SO_DECL_ENTRY * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4018,18 +4120,16 @@ GEN75_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst, GEN75_SO_DECL_pack(data, &dw_Stream1Decl, &values->Stream1Decl); uint32_t dw_Stream0Decl; GEN75_SO_DECL_pack(data, &dw_Stream0Decl, &values->Stream0Decl); - dw[0] = - /* Struct Stream3Decl (48..63): */ + uint64_t qw0 = __gen_field(dw_Stream3Decl, 48, 63) | - /* Struct Stream2Decl (32..47): */ __gen_field(dw_Stream2Decl, 32, 47) | - /* Struct Stream1Decl (16..31): */ __gen_field(dw_Stream1Decl, 16, 31) | - /* Struct Stream0Decl (0..15): */ __gen_field(dw_Stream0Decl, 0, 15) | 0; - GEN75_SO_DECL_pack(data, &dw[0], &values->Stream0Decl); + dw[0] = qw0; + dw[1] = qw0 >> 32; + } struct GEN75_3DSTATE_SO_DECL_LIST { @@ -4051,7 +4151,7 @@ struct GEN75_3DSTATE_SO_DECL_LIST { static inline void GEN75_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_SO_DECL_LIST * restrict values) + const struct GEN75_3DSTATE_SO_DECL_LIST * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4080,7 +4180,6 @@ GEN75_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_3DSTATE_STENCIL_BUFFER_length 0x00000003 #define GEN75_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002 #define GEN75_3DSTATE_STENCIL_BUFFER_header \ .CommandType = 3, \ @@ -4089,6 +4188,8 @@ GEN75_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 6, \ .DwordLength = 1 +#define GEN75_3DSTATE_STENCIL_BUFFER_length 0x00000003 + struct GEN75_3DSTATE_STENCIL_BUFFER { uint32_t CommandType; uint32_t CommandSubType; @@ -4103,7 +4204,7 @@ struct GEN75_3DSTATE_STENCIL_BUFFER { static inline void GEN75_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_STENCIL_BUFFER * restrict values) + const struct GEN75_3DSTATE_STENCIL_BUFFER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4119,7 +4220,6 @@ GEN75_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst, GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_StencilBufferObjectControlState, &values->StencilBufferObjectControlState); dw[1] = __gen_field(values->StencilBufferEnable, 31, 31) | - /* Struct StencilBufferObjectControlState (25..28): */ __gen_field(dw_StencilBufferObjectControlState, 25, 28) | __gen_field(values->SurfacePitch, 0, 16) | 0; @@ -4132,7 +4232,6 @@ GEN75_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_STREAMOUT_length 0x00000003 #define GEN75_3DSTATE_STREAMOUT_length_bias 0x00000002 #define GEN75_3DSTATE_STREAMOUT_header \ .CommandType = 3, \ @@ -4141,6 +4240,8 @@ GEN75_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 30, \ .DwordLength = 1 +#define GEN75_3DSTATE_STREAMOUT_length 0x00000003 + struct GEN75_3DSTATE_STREAMOUT { uint32_t CommandType; uint32_t CommandSubType; @@ -4153,7 +4254,7 @@ struct GEN75_3DSTATE_STREAMOUT { #define LEADING 0 #define TRAILING 1 uint32_t ReorderMode; - uint32_t SOStatisticsEnable; + bool SOStatisticsEnable; uint32_t SOBufferEnable3; uint32_t SOBufferEnable2; uint32_t SOBufferEnable1; @@ -4170,7 +4271,7 @@ struct GEN75_3DSTATE_STREAMOUT { static inline void GEN75_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_STREAMOUT * restrict values) + const struct GEN75_3DSTATE_STREAMOUT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4207,7 +4308,6 @@ GEN75_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_TE_length 0x00000004 #define GEN75_3DSTATE_TE_length_bias 0x00000002 #define GEN75_3DSTATE_TE_header \ .CommandType = 3, \ @@ -4216,6 +4316,8 @@ GEN75_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 28, \ .DwordLength = 2 +#define GEN75_3DSTATE_TE_length 0x00000004 + struct GEN75_3DSTATE_TE { uint32_t CommandType; uint32_t CommandSubType; @@ -4227,9 +4329,9 @@ struct GEN75_3DSTATE_TE { #define EVEN_FRACTIONAL 2 uint32_t Partitioning; #define POINT 0 -#define LINE 1 -#define TRI_CW 2 -#define TRI_CCW 3 +#define OUTPUT_LINE 1 +#define OUTPUT_TRI_CW 2 +#define OUTPUT_TRI_CCW 3 uint32_t OutputTopology; #define QUAD 0 #define TRI 1 @@ -4238,14 +4340,14 @@ struct GEN75_3DSTATE_TE { #define HW_TESS 0 #define SW_TESS 1 uint32_t TEMode; - uint32_t TEEnable; + bool TEEnable; float MaximumTessellationFactorOdd; float MaximumTessellationFactorNotOdd; }; static inline void GEN75_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_TE * restrict values) + const struct GEN75_3DSTATE_TE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4275,7 +4377,6 @@ GEN75_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_URB_DS_length 0x00000002 #define GEN75_3DSTATE_URB_DS_length_bias 0x00000002 #define GEN75_3DSTATE_URB_DS_header \ .CommandType = 3, \ @@ -4284,6 +4385,8 @@ GEN75_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 50, \ .DwordLength = 0 +#define GEN75_3DSTATE_URB_DS_length 0x00000002 + struct GEN75_3DSTATE_URB_DS { uint32_t CommandType; uint32_t CommandSubType; @@ -4297,7 +4400,7 @@ struct GEN75_3DSTATE_URB_DS { static inline void GEN75_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_URB_DS * restrict values) + const struct GEN75_3DSTATE_URB_DS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4317,7 +4420,6 @@ GEN75_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_URB_GS_length 0x00000002 #define GEN75_3DSTATE_URB_GS_length_bias 0x00000002 #define GEN75_3DSTATE_URB_GS_header \ .CommandType = 3, \ @@ -4326,6 +4428,8 @@ GEN75_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 51, \ .DwordLength = 0 +#define GEN75_3DSTATE_URB_GS_length 0x00000002 + struct GEN75_3DSTATE_URB_GS { uint32_t CommandType; uint32_t CommandSubType; @@ -4339,7 +4443,7 @@ struct GEN75_3DSTATE_URB_GS { static inline void GEN75_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_URB_GS * restrict values) + const struct GEN75_3DSTATE_URB_GS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4359,7 +4463,6 @@ GEN75_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_URB_HS_length 0x00000002 #define GEN75_3DSTATE_URB_HS_length_bias 0x00000002 #define GEN75_3DSTATE_URB_HS_header \ .CommandType = 3, \ @@ -4368,6 +4471,8 @@ GEN75_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 49, \ .DwordLength = 0 +#define GEN75_3DSTATE_URB_HS_length 0x00000002 + struct GEN75_3DSTATE_URB_HS { uint32_t CommandType; uint32_t CommandSubType; @@ -4381,7 +4486,7 @@ struct GEN75_3DSTATE_URB_HS { static inline void GEN75_3DSTATE_URB_HS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_URB_HS * restrict values) + const struct GEN75_3DSTATE_URB_HS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4408,6 +4513,10 @@ GEN75_3DSTATE_URB_HS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 8 +#define GEN75_3DSTATE_VERTEX_BUFFERS_length 0x00000000 + +#define GEN75_VERTEX_BUFFER_STATE_length 0x00000004 + struct GEN75_VERTEX_BUFFER_STATE { uint32_t VertexBufferIndex; #define VERTEXDATA 0 @@ -4415,7 +4524,7 @@ struct GEN75_VERTEX_BUFFER_STATE { uint32_t BufferAccessType; struct GEN75_MEMORY_OBJECT_CONTROL_STATE VertexBufferMemoryObjectControlState; uint32_t AddressModifyEnable; - uint32_t NullVertexBuffer; + bool NullVertexBuffer; uint32_t VertexFetchInvalidate; uint32_t BufferPitch; __gen_address_type BufferStartingAddress; @@ -4425,7 +4534,7 @@ struct GEN75_VERTEX_BUFFER_STATE { static inline void GEN75_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_VERTEX_BUFFER_STATE * restrict values) + const struct GEN75_VERTEX_BUFFER_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4434,7 +4543,6 @@ GEN75_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst, dw[0] = __gen_field(values->VertexBufferIndex, 26, 31) | __gen_field(values->BufferAccessType, 20, 20) | - /* Struct VertexBufferMemoryObjectControlState (16..19): */ __gen_field(dw_VertexBufferMemoryObjectControlState, 16, 19) | __gen_field(values->AddressModifyEnable, 14, 14) | __gen_field(values->NullVertexBuffer, 13, 13) | @@ -4471,7 +4579,7 @@ struct GEN75_3DSTATE_VERTEX_BUFFERS { static inline void GEN75_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VERTEX_BUFFERS * restrict values) + const struct GEN75_3DSTATE_VERTEX_BUFFERS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4493,11 +4601,15 @@ GEN75_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 9 +#define GEN75_3DSTATE_VERTEX_ELEMENTS_length 0x00000000 + +#define GEN75_VERTEX_ELEMENT_STATE_length 0x00000002 + struct GEN75_VERTEX_ELEMENT_STATE { uint32_t VertexBufferIndex; - uint32_t Valid; + bool Valid; uint32_t SourceElementFormat; - uint32_t EdgeFlagEnable; + bool EdgeFlagEnable; uint32_t SourceElementOffset; uint32_t Component0Control; uint32_t Component1Control; @@ -4507,7 +4619,7 @@ struct GEN75_VERTEX_ELEMENT_STATE { static inline void GEN75_VERTEX_ELEMENT_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_VERTEX_ELEMENT_STATE * restrict values) + const struct GEN75_VERTEX_ELEMENT_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4539,7 +4651,7 @@ struct GEN75_3DSTATE_VERTEX_ELEMENTS { static inline void GEN75_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VERTEX_ELEMENTS * restrict values) + const struct GEN75_3DSTATE_VERTEX_ELEMENTS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4554,7 +4666,6 @@ GEN75_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_3DSTATE_VF_length 0x00000002 #define GEN75_3DSTATE_VF_length_bias 0x00000002 #define GEN75_3DSTATE_VF_header \ .CommandType = 3, \ @@ -4563,19 +4674,21 @@ GEN75_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 12, \ .DwordLength = 0 +#define GEN75_3DSTATE_VF_length 0x00000002 + struct GEN75_3DSTATE_VF { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; - uint32_t IndexedDrawCutIndexEnable; + bool IndexedDrawCutIndexEnable; uint32_t DwordLength; uint32_t CutIndex; }; static inline void GEN75_3DSTATE_VF_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VF * restrict values) + const struct GEN75_3DSTATE_VF * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4594,7 +4707,6 @@ GEN75_3DSTATE_VF_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_VF_STATISTICS_length 0x00000001 #define GEN75_3DSTATE_VF_STATISTICS_length_bias 0x00000001 #define GEN75_3DSTATE_VF_STATISTICS_header \ .CommandType = 3, \ @@ -4602,17 +4714,19 @@ GEN75_3DSTATE_VF_pack(__gen_user_data *data, void * restrict dst, ._3DCommandOpcode = 0, \ ._3DCommandSubOpcode = 11 +#define GEN75_3DSTATE_VF_STATISTICS_length 0x00000001 + struct GEN75_3DSTATE_VF_STATISTICS { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; - uint32_t StatisticsEnable; + bool StatisticsEnable; }; static inline void GEN75_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VF_STATISTICS * restrict values) + const struct GEN75_3DSTATE_VF_STATISTICS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4626,7 +4740,6 @@ GEN75_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\ .CommandType = 3, \ @@ -4635,6 +4748,8 @@ GEN75_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 35, \ .DwordLength = 0 +#define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002 + struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC { uint32_t CommandType; uint32_t CommandSubType; @@ -4646,7 +4761,7 @@ struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC { static inline void GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC * restrict values) + const struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4664,7 +4779,6 @@ GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * rest } -#define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002 #define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\ .CommandType = 3, \ @@ -4673,6 +4787,8 @@ GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * rest ._3DCommandSubOpcode = 33, \ .DwordLength = 0 +#define GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002 + struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP { uint32_t CommandType; uint32_t CommandSubType; @@ -4684,7 +4800,7 @@ struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP { static inline void GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP * restrict values) + const struct GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4702,7 +4818,6 @@ GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void * } -#define GEN75_3DSTATE_VS_length 0x00000006 #define GEN75_3DSTATE_VS_length_bias 0x00000002 #define GEN75_3DSTATE_VS_header \ .CommandType = 3, \ @@ -4711,6 +4826,8 @@ GEN75_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void * ._3DCommandSubOpcode = 16, \ .DwordLength = 4 +#define GEN75_3DSTATE_VS_length 0x00000006 + struct GEN75_3DSTATE_VS { uint32_t CommandType; uint32_t CommandSubType; @@ -4737,23 +4854,23 @@ struct GEN75_3DSTATE_VS { #define IEEE754 0 #define Alternate 1 uint32_t FloatingPointMode; - uint32_t IllegalOpcodeExceptionEnable; - uint32_t VSaccessesUAV; - uint32_t SoftwareExceptionEnable; + bool IllegalOpcodeExceptionEnable; + bool VSaccessesUAV; + bool SoftwareExceptionEnable; uint32_t ScratchSpaceBaseOffset; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterforURBData; uint32_t VertexURBEntryReadLength; uint32_t VertexURBEntryReadOffset; uint32_t MaximumNumberofThreads; - uint32_t StatisticsEnable; - uint32_t VertexCacheDisable; - uint32_t VSFunctionEnable; + bool StatisticsEnable; + bool VertexCacheDisable; + bool VSFunctionEnable; }; static inline void GEN75_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_VS * restrict values) + const struct GEN75_3DSTATE_VS * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4801,7 +4918,6 @@ GEN75_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_WM_length 0x00000003 #define GEN75_3DSTATE_WM_length_bias 0x00000002 #define GEN75_3DSTATE_WM_header \ .CommandType = 3, \ @@ -4810,19 +4926,21 @@ GEN75_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 20, \ .DwordLength = 1 +#define GEN75_3DSTATE_WM_length 0x00000003 + struct GEN75_3DSTATE_WM { uint32_t CommandType; uint32_t CommandSubType; uint32_t _3DCommandOpcode; uint32_t _3DCommandSubOpcode; uint32_t DwordLength; - uint32_t StatisticsEnable; - uint32_t DepthBufferClear; - uint32_t ThreadDispatchEnable; - uint32_t DepthBufferResolveEnable; - uint32_t HierarchicalDepthBufferResolveEnable; - uint32_t LegacyDiamondLineRasterization; - uint32_t PixelShaderKillPixel; + bool StatisticsEnable; + bool DepthBufferClear; + bool ThreadDispatchEnable; + bool DepthBufferResolveEnable; + bool HierarchicalDepthBufferResolveEnable; + bool LegacyDiamondLineRasterization; + bool PixelShaderKillPixel; #define PSCDEPTH_OFF 0 #define PSCDEPTH_ON 1 #define PSCDEPTH_ON_GE 2 @@ -4832,19 +4950,19 @@ struct GEN75_3DSTATE_WM { #define EDSC_PSEXEC 1 #define EDSC_PREPS 2 uint32_t EarlyDepthStencilControl; - uint32_t PixelShaderUsesSourceDepth; - uint32_t PixelShaderUsesSourceW; + bool PixelShaderUsesSourceDepth; + bool PixelShaderUsesSourceW; #define INTERP_PIXEL 0 #define INTERP_CENTROID 2 #define INTERP_SAMPLE 3 uint32_t PositionZWInterpolationMode; uint32_t BarycentricInterpolationMode; - uint32_t PixelShaderUsesInputCoverageMask; + bool PixelShaderUsesInputCoverageMask; uint32_t LineEndCapAntialiasingRegionWidth; uint32_t LineAntialiasingRegionWidth; - uint32_t RTIndependentRasterizationEnable; - uint32_t PolygonStippleEnable; - uint32_t LineStippleEnable; + bool RTIndependentRasterizationEnable; + bool PolygonStippleEnable; + bool LineStippleEnable; #define RASTRULE_UPPER_LEFT 0 #define RASTRULE_UPPER_RIGHT 1 uint32_t PointRasterizationRule; @@ -4863,7 +4981,7 @@ struct GEN75_3DSTATE_WM { static inline void GEN75_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_3DSTATE_WM * restrict values) + const struct GEN75_3DSTATE_WM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4906,7 +5024,6 @@ GEN75_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_GPGPU_OBJECT_length 0x00000008 #define GEN75_GPGPU_OBJECT_length_bias 0x00000002 #define GEN75_GPGPU_OBJECT_header \ .CommandType = 3, \ @@ -4915,12 +5032,14 @@ GEN75_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst, .SubOpcode = 4, \ .DwordLength = 6 +#define GEN75_GPGPU_OBJECT_length 0x00000008 + struct GEN75_GPGPU_OBJECT { uint32_t CommandType; uint32_t Pipeline; uint32_t MediaCommandOpcode; uint32_t SubOpcode; - uint32_t PredicateEnable; + bool PredicateEnable; uint32_t DwordLength; uint32_t SharedLocalMemoryFixedOffset; uint32_t InterfaceDescriptorOffset; @@ -4943,7 +5062,7 @@ struct GEN75_GPGPU_OBJECT { static inline void GEN75_GPGPU_OBJECT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_GPGPU_OBJECT * restrict values) + const struct GEN75_GPGPU_OBJECT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -4991,7 +5110,6 @@ GEN75_GPGPU_OBJECT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_GPGPU_WALKER_length 0x0000000b #define GEN75_GPGPU_WALKER_length_bias 0x00000002 #define GEN75_GPGPU_WALKER_header \ .CommandType = 3, \ @@ -5000,13 +5118,15 @@ GEN75_GPGPU_OBJECT_pack(__gen_user_data *data, void * restrict dst, .SubOpcodeA = 5, \ .DwordLength = 9 +#define GEN75_GPGPU_WALKER_length 0x0000000b + struct GEN75_GPGPU_WALKER { uint32_t CommandType; uint32_t Pipeline; uint32_t MediaCommandOpcode; uint32_t SubOpcodeA; - uint32_t IndirectParameterEnable; - uint32_t PredicateEnable; + bool IndirectParameterEnable; + bool PredicateEnable; uint32_t DwordLength; uint32_t InterfaceDescriptorOffset; #define SIMD8 0 @@ -5028,7 +5148,7 @@ struct GEN75_GPGPU_WALKER { static inline void GEN75_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_GPGPU_WALKER * restrict values) + const struct GEN75_GPGPU_WALKER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5087,7 +5207,6 @@ GEN75_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MEDIA_CURBE_LOAD_length 0x00000004 #define GEN75_MEDIA_CURBE_LOAD_length_bias 0x00000002 #define GEN75_MEDIA_CURBE_LOAD_header \ .CommandType = 3, \ @@ -5096,6 +5215,8 @@ GEN75_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst, .SubOpcode = 1, \ .DwordLength = 2 +#define GEN75_MEDIA_CURBE_LOAD_length 0x00000004 + struct GEN75_MEDIA_CURBE_LOAD { uint32_t CommandType; uint32_t Pipeline; @@ -5108,7 +5229,7 @@ struct GEN75_MEDIA_CURBE_LOAD { static inline void GEN75_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_CURBE_LOAD * restrict values) + const struct GEN75_MEDIA_CURBE_LOAD * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5133,7 +5254,6 @@ GEN75_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004 #define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002 #define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\ .CommandType = 3, \ @@ -5142,6 +5262,8 @@ GEN75_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst, .SubOpcode = 2, \ .DwordLength = 2 +#define GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004 + struct GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD { uint32_t CommandType; uint32_t Pipeline; @@ -5154,7 +5276,7 @@ struct GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD { static inline void GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD * restrict values) + const struct GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5186,6 +5308,8 @@ GEN75_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data *data, void * restric .MediaCommandOpcode = 1, \ .MediaCommandSubOpcode = 0 +#define GEN75_MEDIA_OBJECT_length 0x00000000 + struct GEN75_MEDIA_OBJECT { uint32_t CommandType; uint32_t MediaCommandPipeline; @@ -5193,7 +5317,7 @@ struct GEN75_MEDIA_OBJECT { uint32_t MediaCommandSubOpcode; uint32_t DwordLength; uint32_t InterfaceDescriptorOffset; - uint32_t ChildrenPresent; + bool ChildrenPresent; #define Nothreadsynchronization 0 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1 uint32_t ThreadSynchronization; @@ -5213,13 +5337,13 @@ struct GEN75_MEDIA_OBJECT { uint32_t ScoredboardY; uint32_t ScoreboardX; uint32_t ScoreboardColor; - uint32_t ScoreboardMask; + bool ScoreboardMask; /* variable length fields follow */ }; static inline void GEN75_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_OBJECT * restrict values) + const struct GEN75_MEDIA_OBJECT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5263,7 +5387,6 @@ GEN75_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_MEDIA_OBJECT_PRT_length 0x00000010 #define GEN75_MEDIA_OBJECT_PRT_length_bias 0x00000002 #define GEN75_MEDIA_OBJECT_PRT_header \ .CommandType = 3, \ @@ -5272,6 +5395,8 @@ GEN75_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst, .SubOpcode = 2, \ .DwordLength = 14 +#define GEN75_MEDIA_OBJECT_PRT_length 0x00000010 + struct GEN75_MEDIA_OBJECT_PRT { uint32_t CommandType; uint32_t Pipeline; @@ -5279,17 +5404,17 @@ struct GEN75_MEDIA_OBJECT_PRT { uint32_t SubOpcode; uint32_t DwordLength; uint32_t InterfaceDescriptorOffset; - uint32_t ChildrenPresent; - uint32_t PRT_FenceNeeded; + bool ChildrenPresent; + bool PRT_FenceNeeded; #define Rootthreadqueue 0 #define VFEstateflush 1 uint32_t PRT_FenceType; - uint32_t InlineData; + uint32_t InlineData[12]; }; static inline void GEN75_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_OBJECT_PRT * restrict values) + const struct GEN75_MEDIA_OBJECT_PRT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5314,9 +5439,11 @@ GEN75_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst, dw[3] = 0; - dw[4] = - __gen_field(values->InlineData, 0, 31) | - 0; + for (uint32_t i = 0, j = 4; i < 12; i += 1, j++) { + dw[j] = + __gen_field(values->InlineData[i + 0], 0, 31) | + 0; + } } @@ -5327,6 +5454,8 @@ GEN75_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst, .MediaCommandOpcode = 1, \ .SubOpcode = 3 +#define GEN75_MEDIA_OBJECT_WALKER_length 0x00000000 + struct GEN75_MEDIA_OBJECT_WALKER { uint32_t CommandType; uint32_t Pipeline; @@ -5334,7 +5463,7 @@ struct GEN75_MEDIA_OBJECT_WALKER { uint32_t SubOpcode; uint32_t DwordLength; uint32_t InterfaceDescriptorOffset; - uint32_t ChildrenPresent; + bool ChildrenPresent; #define Nothreadsynchronization 0 #define Threaddispatchissynchronizedbythespawnrootthreadmessage 1 uint32_t ThreadSynchronization; @@ -5343,10 +5472,10 @@ struct GEN75_MEDIA_OBJECT_WALKER { uint32_t UseScoreboard; uint32_t IndirectDataLength; uint32_t IndirectDataStartAddress; - uint32_t ScoreboardMask; - uint32_t DualMode; - uint32_t Repel; - uint32_t QuadMode; + bool ScoreboardMask; + bool DualMode; + bool Repel; + bool QuadMode; uint32_t ColorCountMinusOne; uint32_t MiddleLoopExtraSteps; uint32_t LocalMidLoopUnitY; @@ -5374,7 +5503,7 @@ struct GEN75_MEDIA_OBJECT_WALKER { static inline void GEN75_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_OBJECT_WALKER * restrict values) + const struct GEN75_MEDIA_OBJECT_WALKER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5469,7 +5598,6 @@ GEN75_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_MEDIA_STATE_FLUSH_length 0x00000002 #define GEN75_MEDIA_STATE_FLUSH_length_bias 0x00000002 #define GEN75_MEDIA_STATE_FLUSH_header \ .CommandType = 3, \ @@ -5478,21 +5606,23 @@ GEN75_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst, .SubOpcode = 4, \ .DwordLength = 0 +#define GEN75_MEDIA_STATE_FLUSH_length 0x00000002 + struct GEN75_MEDIA_STATE_FLUSH { uint32_t CommandType; uint32_t Pipeline; uint32_t MediaCommandOpcode; uint32_t SubOpcode; uint32_t DwordLength; - uint32_t DisablePreemption; - uint32_t FlushtoGO; + bool DisablePreemption; + bool FlushtoGO; uint32_t WatermarkRequired; uint32_t InterfaceDescriptorOffset; }; static inline void GEN75_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_STATE_FLUSH * restrict values) + const struct GEN75_MEDIA_STATE_FLUSH * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5513,7 +5643,6 @@ GEN75_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MEDIA_VFE_STATE_length 0x00000008 #define GEN75_MEDIA_VFE_STATE_length_bias 0x00000002 #define GEN75_MEDIA_VFE_STATE_header \ .CommandType = 3, \ @@ -5522,6 +5651,8 @@ GEN75_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst, .SubOpcode = 0, \ .DwordLength = 6 +#define GEN75_MEDIA_VFE_STATE_length 0x00000008 + struct GEN75_MEDIA_VFE_STATE { uint32_t CommandType; uint32_t Pipeline; @@ -5570,7 +5701,7 @@ struct GEN75_MEDIA_VFE_STATE { static inline void GEN75_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MEDIA_VFE_STATE * restrict values) + const struct GEN75_MEDIA_VFE_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5635,12 +5766,13 @@ GEN75_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_ARB_CHECK_length 0x00000001 #define GEN75_MI_ARB_CHECK_length_bias 0x00000001 #define GEN75_MI_ARB_CHECK_header \ .CommandType = 0, \ .MICommandOpcode = 5 +#define GEN75_MI_ARB_CHECK_length 0x00000001 + struct GEN75_MI_ARB_CHECK { uint32_t CommandType; uint32_t MICommandOpcode; @@ -5648,7 +5780,7 @@ struct GEN75_MI_ARB_CHECK { static inline void GEN75_MI_ARB_CHECK_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_ARB_CHECK * restrict values) + const struct GEN75_MI_ARB_CHECK * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5659,21 +5791,22 @@ GEN75_MI_ARB_CHECK_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_ARB_ON_OFF_length 0x00000001 #define GEN75_MI_ARB_ON_OFF_length_bias 0x00000001 #define GEN75_MI_ARB_ON_OFF_header \ .CommandType = 0, \ .MICommandOpcode = 8 +#define GEN75_MI_ARB_ON_OFF_length 0x00000001 + struct GEN75_MI_ARB_ON_OFF { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t ArbitrationEnable; + bool ArbitrationEnable; }; static inline void GEN75_MI_ARB_ON_OFF_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_ARB_ON_OFF * restrict values) + const struct GEN75_MI_ARB_ON_OFF * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5685,12 +5818,13 @@ GEN75_MI_ARB_ON_OFF_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_BATCH_BUFFER_END_length 0x00000001 #define GEN75_MI_BATCH_BUFFER_END_length_bias 0x00000001 #define GEN75_MI_BATCH_BUFFER_END_header \ .CommandType = 0, \ .MICommandOpcode = 10 +#define GEN75_MI_BATCH_BUFFER_END_length 0x00000001 + struct GEN75_MI_BATCH_BUFFER_END { uint32_t CommandType; uint32_t MICommandOpcode; @@ -5698,7 +5832,7 @@ struct GEN75_MI_BATCH_BUFFER_END { static inline void GEN75_MI_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_BATCH_BUFFER_END * restrict values) + const struct GEN75_MI_BATCH_BUFFER_END * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5709,24 +5843,25 @@ GEN75_MI_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_BATCH_BUFFER_START_length 0x00000002 #define GEN75_MI_BATCH_BUFFER_START_length_bias 0x00000002 #define GEN75_MI_BATCH_BUFFER_START_header \ .CommandType = 0, \ .MICommandOpcode = 49, \ .DwordLength = 0 +#define GEN75_MI_BATCH_BUFFER_START_length 0x00000002 + struct GEN75_MI_BATCH_BUFFER_START { uint32_t CommandType; uint32_t MICommandOpcode; #define _1stlevelbatch 0 #define _2ndlevelbatch 1 uint32_t _2ndLevelBatchBuffer; - uint32_t AddOffsetEnable; - uint32_t PredicationEnable; + bool AddOffsetEnable; + bool PredicationEnable; uint32_t NonPrivileged; - uint32_t ClearCommandBufferEnable; - uint32_t ResourceStreamerEnable; + bool ClearCommandBufferEnable; + bool ResourceStreamerEnable; #define ASI_GGTT 0 #define ASI_PPGTT 1 uint32_t AddressSpaceIndicator; @@ -5736,7 +5871,7 @@ struct GEN75_MI_BATCH_BUFFER_START { static inline void GEN75_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_BATCH_BUFFER_START * restrict values) + const struct GEN75_MI_BATCH_BUFFER_START * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5766,6 +5901,8 @@ GEN75_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst, .CommandType = 0, \ .MICommandOpcode = 39 +#define GEN75_MI_CLFLUSH_length 0x00000000 + struct GEN75_MI_CLFLUSH { uint32_t CommandType; uint32_t MICommandOpcode; @@ -5781,7 +5918,7 @@ struct GEN75_MI_CLFLUSH { static inline void GEN75_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_CLFLUSH * restrict values) + const struct GEN75_MI_CLFLUSH * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5808,7 +5945,6 @@ GEN75_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002 #define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002 #define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_header\ .CommandType = 0, \ @@ -5817,6 +5953,8 @@ GEN75_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst, .CompareSemaphore = 0, \ .DwordLength = 0 +#define GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002 + struct GEN75_MI_CONDITIONAL_BATCH_BUFFER_END { uint32_t CommandType; uint32_t MICommandOpcode; @@ -5829,7 +5967,7 @@ struct GEN75_MI_CONDITIONAL_BATCH_BUFFER_END { static inline void GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_CONDITIONAL_BATCH_BUFFER_END * restrict values) + const struct GEN75_MI_CONDITIONAL_BATCH_BUFFER_END * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5853,31 +5991,32 @@ GEN75_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restric } -#define GEN75_MI_FLUSH_length 0x00000001 #define GEN75_MI_FLUSH_length_bias 0x00000001 #define GEN75_MI_FLUSH_header \ .CommandType = 0, \ .MICommandOpcode = 4 +#define GEN75_MI_FLUSH_length 0x00000001 + struct GEN75_MI_FLUSH { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t IndirectStatePointersDisable; - uint32_t GenericMediaStateClear; + bool IndirectStatePointersDisable; + bool GenericMediaStateClear; #define DontReset 0 #define Reset 1 - uint32_t GlobalSnapshotCountReset; + bool GlobalSnapshotCountReset; #define Flush 0 #define DontFlush 1 - uint32_t RenderCacheFlushInhibit; + bool RenderCacheFlushInhibit; #define DontInvalidate 0 #define Invalidate 1 - uint32_t StateInstructionCacheInvalidate; + bool StateInstructionCacheInvalidate; }; static inline void GEN75_MI_FLUSH_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_FLUSH * restrict values) + const struct GEN75_MI_FLUSH * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5893,13 +6032,14 @@ GEN75_MI_FLUSH_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_LOAD_REGISTER_IMM_length 0x00000003 #define GEN75_MI_LOAD_REGISTER_IMM_length_bias 0x00000002 #define GEN75_MI_LOAD_REGISTER_IMM_header \ .CommandType = 0, \ .MICommandOpcode = 34, \ .DwordLength = 1 +#define GEN75_MI_LOAD_REGISTER_IMM_length 0x00000003 + struct GEN75_MI_LOAD_REGISTER_IMM { uint32_t CommandType; uint32_t MICommandOpcode; @@ -5911,7 +6051,7 @@ struct GEN75_MI_LOAD_REGISTER_IMM { static inline void GEN75_MI_LOAD_REGISTER_IMM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_LOAD_REGISTER_IMM * restrict values) + const struct GEN75_MI_LOAD_REGISTER_IMM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5932,17 +6072,18 @@ GEN75_MI_LOAD_REGISTER_IMM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_LOAD_REGISTER_MEM_length 0x00000003 #define GEN75_MI_LOAD_REGISTER_MEM_length_bias 0x00000002 #define GEN75_MI_LOAD_REGISTER_MEM_header \ .CommandType = 0, \ .MICommandOpcode = 41, \ .DwordLength = 1 +#define GEN75_MI_LOAD_REGISTER_MEM_length 0x00000003 + struct GEN75_MI_LOAD_REGISTER_MEM { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t UseGlobalGTT; + bool UseGlobalGTT; uint32_t AsyncModeEnable; uint32_t DwordLength; uint32_t RegisterAddress; @@ -5951,7 +6092,7 @@ struct GEN75_MI_LOAD_REGISTER_MEM { static inline void GEN75_MI_LOAD_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_LOAD_REGISTER_MEM * restrict values) + const struct GEN75_MI_LOAD_REGISTER_MEM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -5975,13 +6116,14 @@ GEN75_MI_LOAD_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_LOAD_REGISTER_REG_length 0x00000003 #define GEN75_MI_LOAD_REGISTER_REG_length_bias 0x00000002 #define GEN75_MI_LOAD_REGISTER_REG_header \ .CommandType = 0, \ .MICommandOpcode = 42, \ .DwordLength = 1 +#define GEN75_MI_LOAD_REGISTER_REG_length 0x00000003 + struct GEN75_MI_LOAD_REGISTER_REG { uint32_t CommandType; uint32_t MICommandOpcode; @@ -5992,7 +6134,7 @@ struct GEN75_MI_LOAD_REGISTER_REG { static inline void GEN75_MI_LOAD_REGISTER_REG_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_LOAD_REGISTER_REG * restrict values) + const struct GEN75_MI_LOAD_REGISTER_REG * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6012,13 +6154,14 @@ GEN75_MI_LOAD_REGISTER_REG_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002 #define GEN75_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002 #define GEN75_MI_LOAD_SCAN_LINES_EXCL_header \ .CommandType = 0, \ .MICommandOpcode = 19, \ .DwordLength = 0 +#define GEN75_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002 + struct GEN75_MI_LOAD_SCAN_LINES_EXCL { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6033,7 +6176,7 @@ struct GEN75_MI_LOAD_SCAN_LINES_EXCL { static inline void GEN75_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_LOAD_SCAN_LINES_EXCL * restrict values) + const struct GEN75_MI_LOAD_SCAN_LINES_EXCL * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6051,13 +6194,14 @@ GEN75_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_LOAD_SCAN_LINES_INCL_length 0x00000002 #define GEN75_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002 #define GEN75_MI_LOAD_SCAN_LINES_INCL_header \ .CommandType = 0, \ .MICommandOpcode = 18, \ .DwordLength = 0 +#define GEN75_MI_LOAD_SCAN_LINES_INCL_length 0x00000002 + struct GEN75_MI_LOAD_SCAN_LINES_INCL { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6072,7 +6216,7 @@ struct GEN75_MI_LOAD_SCAN_LINES_INCL { static inline void GEN75_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_LOAD_SCAN_LINES_INCL * restrict values) + const struct GEN75_MI_LOAD_SCAN_LINES_INCL * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6090,13 +6234,14 @@ GEN75_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_LOAD_URB_MEM_length 0x00000003 #define GEN75_MI_LOAD_URB_MEM_length_bias 0x00000002 #define GEN75_MI_LOAD_URB_MEM_header \ .CommandType = 0, \ .MICommandOpcode = 44, \ .DwordLength = 1 +#define GEN75_MI_LOAD_URB_MEM_length 0x00000003 + struct GEN75_MI_LOAD_URB_MEM { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6107,7 +6252,7 @@ struct GEN75_MI_LOAD_URB_MEM { static inline void GEN75_MI_LOAD_URB_MEM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_LOAD_URB_MEM * restrict values) + const struct GEN75_MI_LOAD_URB_MEM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6134,6 +6279,8 @@ GEN75_MI_LOAD_URB_MEM_pack(__gen_user_data *data, void * restrict dst, .CommandType = 0, \ .MICommandOpcode = 26 +#define GEN75_MI_MATH_length 0x00000000 + struct GEN75_MI_MATH { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6145,7 +6292,7 @@ struct GEN75_MI_MATH { static inline void GEN75_MI_MATH_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_MATH * restrict values) + const struct GEN75_MI_MATH * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6166,22 +6313,23 @@ GEN75_MI_MATH_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_MI_NOOP_length 0x00000001 #define GEN75_MI_NOOP_length_bias 0x00000001 #define GEN75_MI_NOOP_header \ .CommandType = 0, \ .MICommandOpcode = 0 +#define GEN75_MI_NOOP_length 0x00000001 + struct GEN75_MI_NOOP { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t IdentificationNumberRegisterWriteEnable; + bool IdentificationNumberRegisterWriteEnable; uint32_t IdentificationNumber; }; static inline void GEN75_MI_NOOP_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_NOOP * restrict values) + const struct GEN75_MI_NOOP * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6194,18 +6342,19 @@ GEN75_MI_NOOP_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_PREDICATE_length 0x00000001 #define GEN75_MI_PREDICATE_length_bias 0x00000001 #define GEN75_MI_PREDICATE_header \ .CommandType = 0, \ .MICommandOpcode = 12 +#define GEN75_MI_PREDICATE_length 0x00000001 + struct GEN75_MI_PREDICATE { uint32_t CommandType; uint32_t MICommandOpcode; -#define KEEP 0 -#define LOAD 2 -#define LOADINV 3 +#define LOAD_KEEP 0 +#define LOAD_LOAD 2 +#define LOAD_LOADINV 3 uint32_t LoadOperation; #define COMBINE_SET 0 #define COMBINE_AND 1 @@ -6219,7 +6368,7 @@ struct GEN75_MI_PREDICATE { static inline void GEN75_MI_PREDICATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_PREDICATE * restrict values) + const struct GEN75_MI_PREDICATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6233,12 +6382,13 @@ GEN75_MI_PREDICATE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_REPORT_HEAD_length 0x00000001 #define GEN75_MI_REPORT_HEAD_length_bias 0x00000001 #define GEN75_MI_REPORT_HEAD_header \ .CommandType = 0, \ .MICommandOpcode = 7 +#define GEN75_MI_REPORT_HEAD_length 0x00000001 + struct GEN75_MI_REPORT_HEAD { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6246,7 +6396,7 @@ struct GEN75_MI_REPORT_HEAD { static inline void GEN75_MI_REPORT_HEAD_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_REPORT_HEAD * restrict values) + const struct GEN75_MI_REPORT_HEAD * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6257,23 +6407,24 @@ GEN75_MI_REPORT_HEAD_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_RS_CONTEXT_length 0x00000001 #define GEN75_MI_RS_CONTEXT_length_bias 0x00000001 #define GEN75_MI_RS_CONTEXT_header \ .CommandType = 0, \ .MICommandOpcode = 15 +#define GEN75_MI_RS_CONTEXT_length 0x00000001 + struct GEN75_MI_RS_CONTEXT { uint32_t CommandType; uint32_t MICommandOpcode; -#define Restore 0 -#define Save 1 +#define RS_RESTORE 0 +#define RS_SAVE 1 uint32_t ResourceStreamerSave; }; static inline void GEN75_MI_RS_CONTEXT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_RS_CONTEXT * restrict values) + const struct GEN75_MI_RS_CONTEXT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6285,23 +6436,24 @@ GEN75_MI_RS_CONTEXT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_RS_CONTROL_length 0x00000001 #define GEN75_MI_RS_CONTROL_length_bias 0x00000001 #define GEN75_MI_RS_CONTROL_header \ .CommandType = 0, \ .MICommandOpcode = 6 +#define GEN75_MI_RS_CONTROL_length 0x00000001 + struct GEN75_MI_RS_CONTROL { uint32_t CommandType; uint32_t MICommandOpcode; -#define Stop 0 -#define Start 1 +#define RS_STOP 0 +#define RS_START 1 uint32_t ResourceStreamerControl; }; static inline void GEN75_MI_RS_CONTROL_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_RS_CONTROL * restrict values) + const struct GEN75_MI_RS_CONTROL * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6313,13 +6465,14 @@ GEN75_MI_RS_CONTROL_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_RS_STORE_DATA_IMM_length 0x00000004 #define GEN75_MI_RS_STORE_DATA_IMM_length_bias 0x00000002 #define GEN75_MI_RS_STORE_DATA_IMM_header \ .CommandType = 0, \ .MICommandOpcode = 43, \ .DwordLength = 2 +#define GEN75_MI_RS_STORE_DATA_IMM_length 0x00000004 + struct GEN75_MI_RS_STORE_DATA_IMM { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6331,7 +6484,7 @@ struct GEN75_MI_RS_STORE_DATA_IMM { static inline void GEN75_MI_RS_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_RS_STORE_DATA_IMM * restrict values) + const struct GEN75_MI_RS_STORE_DATA_IMM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6357,13 +6510,14 @@ GEN75_MI_RS_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_SEMAPHORE_MBOX_length 0x00000003 #define GEN75_MI_SEMAPHORE_MBOX_length_bias 0x00000002 #define GEN75_MI_SEMAPHORE_MBOX_header \ .CommandType = 0, \ .MICommandOpcode = 22, \ .DwordLength = 1 +#define GEN75_MI_SEMAPHORE_MBOX_length 0x00000003 + struct GEN75_MI_SEMAPHORE_MBOX { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6379,7 +6533,7 @@ struct GEN75_MI_SEMAPHORE_MBOX { static inline void GEN75_MI_SEMAPHORE_MBOX_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_SEMAPHORE_MBOX * restrict values) + const struct GEN75_MI_SEMAPHORE_MBOX * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6400,29 +6554,30 @@ GEN75_MI_SEMAPHORE_MBOX_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_SET_CONTEXT_length 0x00000002 #define GEN75_MI_SET_CONTEXT_length_bias 0x00000002 #define GEN75_MI_SET_CONTEXT_header \ .CommandType = 0, \ .MICommandOpcode = 24, \ .DwordLength = 0 +#define GEN75_MI_SET_CONTEXT_length 0x00000002 + struct GEN75_MI_SET_CONTEXT { uint32_t CommandType; uint32_t MICommandOpcode; uint32_t DwordLength; __gen_address_type LogicalContextAddress; uint32_t ReservedMustbe1; - uint32_t CoreModeEnable; - uint32_t ResourceStreamerStateSaveEnable; - uint32_t ResourceStreamerStateRestoreEnable; + bool CoreModeEnable; + bool ResourceStreamerStateSaveEnable; + bool ResourceStreamerStateRestoreEnable; uint32_t ForceRestore; uint32_t RestoreInhibit; }; static inline void GEN75_MI_SET_CONTEXT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_SET_CONTEXT * restrict values) + const struct GEN75_MI_SET_CONTEXT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6446,13 +6601,14 @@ GEN75_MI_SET_CONTEXT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_SET_PREDICATE_length 0x00000001 #define GEN75_MI_SET_PREDICATE_length_bias 0x00000001 #define GEN75_MI_SET_PREDICATE_header \ .CommandType = 0, \ .MICommandOpcode = 1, \ .PREDICATEENABLE = 6 +#define GEN75_MI_SET_PREDICATE_length 0x00000001 + struct GEN75_MI_SET_PREDICATE { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6460,12 +6616,12 @@ struct GEN75_MI_SET_PREDICATE { #define PredicateonClear 1 #define PredicateonSet 2 #define PredicateDisable 3 - uint32_t PREDICATEENABLE; + bool PREDICATEENABLE; }; static inline void GEN75_MI_SET_PREDICATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_SET_PREDICATE * restrict values) + const struct GEN75_MI_SET_PREDICATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6477,17 +6633,18 @@ GEN75_MI_SET_PREDICATE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_STORE_DATA_IMM_length 0x00000004 #define GEN75_MI_STORE_DATA_IMM_length_bias 0x00000002 #define GEN75_MI_STORE_DATA_IMM_header \ .CommandType = 0, \ .MICommandOpcode = 32, \ .DwordLength = 2 +#define GEN75_MI_STORE_DATA_IMM_length 0x00000004 + struct GEN75_MI_STORE_DATA_IMM { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t UseGlobalGTT; + bool UseGlobalGTT; uint32_t DwordLength; uint32_t Address; uint32_t CoreModeEnable; @@ -6497,7 +6654,7 @@ struct GEN75_MI_STORE_DATA_IMM { static inline void GEN75_MI_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_STORE_DATA_IMM * restrict values) + const struct GEN75_MI_STORE_DATA_IMM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6526,13 +6683,14 @@ GEN75_MI_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_STORE_DATA_INDEX_length 0x00000003 #define GEN75_MI_STORE_DATA_INDEX_length_bias 0x00000002 #define GEN75_MI_STORE_DATA_INDEX_header \ .CommandType = 0, \ .MICommandOpcode = 33, \ .DwordLength = 1 +#define GEN75_MI_STORE_DATA_INDEX_length 0x00000003 + struct GEN75_MI_STORE_DATA_INDEX { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6544,7 +6702,7 @@ struct GEN75_MI_STORE_DATA_INDEX { static inline void GEN75_MI_STORE_DATA_INDEX_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_STORE_DATA_INDEX * restrict values) + const struct GEN75_MI_STORE_DATA_INDEX * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6568,13 +6726,14 @@ GEN75_MI_STORE_DATA_INDEX_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_STORE_URB_MEM_length 0x00000003 #define GEN75_MI_STORE_URB_MEM_length_bias 0x00000002 #define GEN75_MI_STORE_URB_MEM_header \ .CommandType = 0, \ .MICommandOpcode = 45, \ .DwordLength = 1 +#define GEN75_MI_STORE_URB_MEM_length 0x00000003 + struct GEN75_MI_STORE_URB_MEM { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6585,7 +6744,7 @@ struct GEN75_MI_STORE_URB_MEM { static inline void GEN75_MI_STORE_URB_MEM_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_STORE_URB_MEM * restrict values) + const struct GEN75_MI_STORE_URB_MEM * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6607,21 +6766,22 @@ GEN75_MI_STORE_URB_MEM_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_SUSPEND_FLUSH_length 0x00000001 #define GEN75_MI_SUSPEND_FLUSH_length_bias 0x00000001 #define GEN75_MI_SUSPEND_FLUSH_header \ .CommandType = 0, \ .MICommandOpcode = 11 +#define GEN75_MI_SUSPEND_FLUSH_length 0x00000001 + struct GEN75_MI_SUSPEND_FLUSH { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t SuspendFlush; + bool SuspendFlush; }; static inline void GEN75_MI_SUSPEND_FLUSH_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_SUSPEND_FLUSH * restrict values) + const struct GEN75_MI_SUSPEND_FLUSH * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6633,12 +6793,13 @@ GEN75_MI_SUSPEND_FLUSH_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_TOPOLOGY_FILTER_length 0x00000001 #define GEN75_MI_TOPOLOGY_FILTER_length_bias 0x00000001 #define GEN75_MI_TOPOLOGY_FILTER_header \ .CommandType = 0, \ .MICommandOpcode = 13 +#define GEN75_MI_TOPOLOGY_FILTER_length 0x00000001 + struct GEN75_MI_TOPOLOGY_FILTER { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6647,7 +6808,7 @@ struct GEN75_MI_TOPOLOGY_FILTER { static inline void GEN75_MI_TOPOLOGY_FILTER_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_TOPOLOGY_FILTER * restrict values) + const struct GEN75_MI_TOPOLOGY_FILTER * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6664,6 +6825,8 @@ GEN75_MI_TOPOLOGY_FILTER_pack(__gen_user_data *data, void * restrict dst, .CommandType = 0, \ .MICommandOpcode = 35 +#define GEN75_MI_UPDATE_GTT_length 0x00000000 + struct GEN75_MI_UPDATE_GTT { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6677,7 +6840,7 @@ struct GEN75_MI_UPDATE_GTT { static inline void GEN75_MI_UPDATE_GTT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_UPDATE_GTT * restrict values) + const struct GEN75_MI_UPDATE_GTT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6697,12 +6860,13 @@ GEN75_MI_UPDATE_GTT_pack(__gen_user_data *data, void * restrict dst, /* variable length fields follow */ } -#define GEN75_MI_URB_ATOMIC_ALLOC_length 0x00000001 #define GEN75_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001 #define GEN75_MI_URB_ATOMIC_ALLOC_header \ .CommandType = 0, \ .MICommandOpcode = 9 +#define GEN75_MI_URB_ATOMIC_ALLOC_length 0x00000001 + struct GEN75_MI_URB_ATOMIC_ALLOC { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6712,7 +6876,7 @@ struct GEN75_MI_URB_ATOMIC_ALLOC { static inline void GEN75_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_URB_ATOMIC_ALLOC * restrict values) + const struct GEN75_MI_URB_ATOMIC_ALLOC * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6725,13 +6889,14 @@ GEN75_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_URB_CLEAR_length 0x00000002 #define GEN75_MI_URB_CLEAR_length_bias 0x00000002 #define GEN75_MI_URB_CLEAR_header \ .CommandType = 0, \ .MICommandOpcode = 25, \ .DwordLength = 0 +#define GEN75_MI_URB_CLEAR_length 0x00000002 + struct GEN75_MI_URB_CLEAR { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6742,7 +6907,7 @@ struct GEN75_MI_URB_CLEAR { static inline void GEN75_MI_URB_CLEAR_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_URB_CLEAR * restrict values) + const struct GEN75_MI_URB_CLEAR * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6759,12 +6924,13 @@ GEN75_MI_URB_CLEAR_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_USER_INTERRUPT_length 0x00000001 #define GEN75_MI_USER_INTERRUPT_length_bias 0x00000001 #define GEN75_MI_USER_INTERRUPT_header \ .CommandType = 0, \ .MICommandOpcode = 2 +#define GEN75_MI_USER_INTERRUPT_length 0x00000001 + struct GEN75_MI_USER_INTERRUPT { uint32_t CommandType; uint32_t MICommandOpcode; @@ -6772,7 +6938,7 @@ struct GEN75_MI_USER_INTERRUPT { static inline void GEN75_MI_USER_INTERRUPT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_USER_INTERRUPT * restrict values) + const struct GEN75_MI_USER_INTERRUPT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6783,37 +6949,38 @@ GEN75_MI_USER_INTERRUPT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MI_WAIT_FOR_EVENT_length 0x00000001 #define GEN75_MI_WAIT_FOR_EVENT_length_bias 0x00000001 #define GEN75_MI_WAIT_FOR_EVENT_header \ .CommandType = 0, \ .MICommandOpcode = 3 +#define GEN75_MI_WAIT_FOR_EVENT_length 0x00000001 + struct GEN75_MI_WAIT_FOR_EVENT { uint32_t CommandType; uint32_t MICommandOpcode; - uint32_t DisplayPipeCHorizontalBlankWaitEnable; - uint32_t DisplayPipeCVerticalBlankWaitEnable; - uint32_t DisplaySpriteCFlipPendingWaitEnable; + bool DisplayPipeCHorizontalBlankWaitEnable; + bool DisplayPipeCVerticalBlankWaitEnable; + bool DisplaySpriteCFlipPendingWaitEnable; #define Notenabled 0 uint32_t ConditionCodeWaitSelect; - uint32_t DisplayPlaneCFlipPendingWaitEnable; - uint32_t DisplayPipeCScanLineWaitEnable; - uint32_t DisplayPipeBHorizontalBlankWaitEnable; - uint32_t DisplayPipeBVerticalBlankWaitEnable; - uint32_t DisplaySpriteBFlipPendingWaitEnable; - uint32_t DisplayPlaneBFlipPendingWaitEnable; - uint32_t DisplayPipeBScanLineWaitEnable; - uint32_t DisplayPipeAHorizontalBlankWaitEnable; - uint32_t DisplayPipeAVerticalBlankWaitEnable; - uint32_t DisplaySpriteAFlipPendingWaitEnable; - uint32_t DisplayPlaneAFlipPendingWaitEnable; - uint32_t DisplayPipeAScanLineWaitEnable; + bool DisplayPlaneCFlipPendingWaitEnable; + bool DisplayPipeCScanLineWaitEnable; + bool DisplayPipeBHorizontalBlankWaitEnable; + bool DisplayPipeBVerticalBlankWaitEnable; + bool DisplaySpriteBFlipPendingWaitEnable; + bool DisplayPlaneBFlipPendingWaitEnable; + bool DisplayPipeBScanLineWaitEnable; + bool DisplayPipeAHorizontalBlankWaitEnable; + bool DisplayPipeAVerticalBlankWaitEnable; + bool DisplaySpriteAFlipPendingWaitEnable; + bool DisplayPlaneAFlipPendingWaitEnable; + bool DisplayPipeAScanLineWaitEnable; }; static inline void GEN75_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_MI_WAIT_FOR_EVENT * restrict values) + const struct GEN75_MI_WAIT_FOR_EVENT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6840,7 +7007,6 @@ GEN75_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_PIPE_CONTROL_length 0x00000005 #define GEN75_PIPE_CONTROL_length_bias 0x00000002 #define GEN75_PIPE_CONTROL_header \ .CommandType = 3, \ @@ -6849,6 +7015,8 @@ GEN75_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst, ._3DCommandSubOpcode = 0, \ .DwordLength = 3 +#define GEN75_PIPE_CONTROL_length 0x00000005 + struct GEN75_PIPE_CONTROL { uint32_t CommandType; uint32_t CommandSubType; @@ -6867,29 +7035,29 @@ struct GEN75_PIPE_CONTROL { #define Reset 1 uint32_t GlobalSnapshotCountReset; uint32_t TLBInvalidate; - uint32_t GenericMediaStateClear; + bool GenericMediaStateClear; #define NoWrite 0 #define WriteImmediateData 1 #define WritePSDepthCount 2 #define WriteTimestamp 3 uint32_t PostSyncOperation; - uint32_t DepthStallEnable; + bool DepthStallEnable; #define DisableFlush 0 #define EnableFlush 1 - uint32_t RenderTargetCacheFlushEnable; - uint32_t InstructionCacheInvalidateEnable; - uint32_t TextureCacheInvalidationEnable; - uint32_t IndirectStatePointersDisable; - uint32_t NotifyEnable; - uint32_t PipeControlFlushEnable; - uint32_t DCFlushEnable; - uint32_t VFCacheInvalidationEnable; - uint32_t ConstantCacheInvalidationEnable; - uint32_t StateCacheInvalidationEnable; - uint32_t StallAtPixelScoreboard; + bool RenderTargetCacheFlushEnable; + bool InstructionCacheInvalidateEnable; + bool TextureCacheInvalidationEnable; + bool IndirectStatePointersDisable; + bool NotifyEnable; + bool PipeControlFlushEnable; + bool DCFlushEnable; + bool VFCacheInvalidationEnable; + bool ConstantCacheInvalidationEnable; + bool StateCacheInvalidationEnable; + bool StallAtPixelScoreboard; #define FlushDisabled 0 #define FlushEnabled 1 - uint32_t DepthCacheFlushEnable; + bool DepthCacheFlushEnable; __gen_address_type Address; uint32_t ImmediateData; uint32_t ImmediateData0; @@ -6897,7 +7065,7 @@ struct GEN75_PIPE_CONTROL { static inline void GEN75_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_PIPE_CONTROL * restrict values) + const struct GEN75_PIPE_CONTROL * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -6949,20 +7117,6 @@ GEN75_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_3DSTATE_CONSTANT_BODY_length 0x00000006 - -#define GEN75_BINDING_TABLE_EDIT_ENTRY_length 0x00000001 - -#define GEN75_GATHER_CONSTANT_ENTRY_length 0x00000001 - -#define GEN75_VERTEX_BUFFER_STATE_length 0x00000004 - -#define GEN75_VERTEX_ELEMENT_STATE_length 0x00000002 - -#define GEN75_SO_DECL_ENTRY_length 0x00000002 - -#define GEN75_SO_DECL_length 0x00000001 - #define GEN75_SCISSOR_RECT_length 0x00000002 struct GEN75_SCISSOR_RECT { @@ -6974,7 +7128,7 @@ struct GEN75_SCISSOR_RECT { static inline void GEN75_SCISSOR_RECT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SCISSOR_RECT * restrict values) + const struct GEN75_SCISSOR_RECT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7007,7 +7161,7 @@ struct GEN75_SF_CLIP_VIEWPORT { static inline void GEN75_SF_CLIP_VIEWPORT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SF_CLIP_VIEWPORT * restrict values) + const struct GEN75_SF_CLIP_VIEWPORT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7057,16 +7211,18 @@ GEN75_SF_CLIP_VIEWPORT_pack(__gen_user_data *data, void * restrict dst, __gen_float(values->YMaxClipGuardband) | 0; - dw[12] = - 0; + for (uint32_t i = 0, j = 12; i < 4; i += 1, j++) { + dw[j] = + 0; + } } #define GEN75_BLEND_STATE_length 0x00000002 struct GEN75_BLEND_STATE { - uint32_t ColorBufferBlendEnable; - uint32_t IndependentAlphaBlendEnable; + bool ColorBufferBlendEnable; + bool IndependentAlphaBlendEnable; #define BLENDFUNCTION_ADD 0 #define BLENDFUNCTION_SUBTRACT 1 #define BLENDFUNCTION_REVERSE_SUBTRACT 2 @@ -7102,14 +7258,14 @@ struct GEN75_BLEND_STATE { uint32_t ColorBlendFunction; uint32_t SourceBlendFactor; uint32_t DestinationBlendFactor; - uint32_t AlphaToCoverageEnable; - uint32_t AlphaToOneEnable; - uint32_t AlphaToCoverageDitherEnable; - uint32_t WriteDisableAlpha; - uint32_t WriteDisableRed; - uint32_t WriteDisableGreen; - uint32_t WriteDisableBlue; - uint32_t LogicOpEnable; + bool AlphaToCoverageEnable; + bool AlphaToOneEnable; + bool AlphaToCoverageDitherEnable; + bool WriteDisableAlpha; + bool WriteDisableRed; + bool WriteDisableGreen; + bool WriteDisableBlue; + bool LogicOpEnable; #define LOGICOP_CLEAR 0 #define LOGICOP_NOR 1 #define LOGICOP_AND_INVERTED 2 @@ -7127,7 +7283,7 @@ struct GEN75_BLEND_STATE { #define LOGICOP_OR 14 #define LOGICOP_SET 15 uint32_t LogicOpFunction; - uint32_t AlphaTestEnable; + bool AlphaTestEnable; #define COMPAREFUNCTION_ALWAYS 0 #define COMPAREFUNCTION_NEVER 1 #define COMPAREFUNCTION_LESS 2 @@ -7137,20 +7293,20 @@ struct GEN75_BLEND_STATE { #define COMPAREFUNCTION_NOTEQUAL 6 #define COMPAREFUNCTION_GEQUAL 7 uint32_t AlphaTestFunction; - uint32_t ColorDitherEnable; + bool ColorDitherEnable; uint32_t XDitherOffset; uint32_t YDitherOffset; #define COLORCLAMP_UNORM 0 #define COLORCLAMP_SNORM 1 #define COLORCLAMP_RTFORMAT 2 uint32_t ColorClampRange; - uint32_t PreBlendColorClampEnable; - uint32_t PostBlendColorClampEnable; + bool PreBlendColorClampEnable; + bool PostBlendColorClampEnable; }; static inline void GEN75_BLEND_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_BLEND_STATE * restrict values) + const struct GEN75_BLEND_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7196,7 +7352,7 @@ struct GEN75_CC_VIEWPORT { static inline void GEN75_CC_VIEWPORT_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_CC_VIEWPORT * restrict values) + const struct GEN75_CC_VIEWPORT * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7231,7 +7387,7 @@ struct GEN75_COLOR_CALC_STATE { static inline void GEN75_COLOR_CALC_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_COLOR_CALC_STATE * restrict values) + const struct GEN75_COLOR_CALC_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7268,7 +7424,7 @@ GEN75_COLOR_CALC_STATE_pack(__gen_user_data *data, void * restrict dst, #define GEN75_DEPTH_STENCIL_STATE_length 0x00000003 struct GEN75_DEPTH_STENCIL_STATE { - uint32_t StencilTestEnable; + bool StencilTestEnable; #define COMPAREFUNCTION_ALWAYS 0 #define COMPAREFUNCTION_NEVER 1 #define COMPAREFUNCTION_LESS 2 @@ -7289,8 +7445,8 @@ struct GEN75_DEPTH_STENCIL_STATE { uint32_t StencilFailOp; uint32_t StencilPassDepthFailOp; uint32_t StencilPassDepthPassOp; - uint32_t StencilBufferWriteEnable; - uint32_t DoubleSidedStencilEnable; + bool StencilBufferWriteEnable; + bool DoubleSidedStencilEnable; #define COMPAREFUNCTION_ALWAYS 0 #define COMPAREFUNCTION_NEVER 1 #define COMPAREFUNCTION_LESS 2 @@ -7315,7 +7471,7 @@ struct GEN75_DEPTH_STENCIL_STATE { uint32_t StencilWriteMask; uint32_t BackfaceStencilTestMask; uint32_t BackfaceStencilWriteMask; - uint32_t DepthTestEnable; + bool DepthTestEnable; #define COMPAREFUNCTION_ALWAYS 0 #define COMPAREFUNCTION_NEVER 1 #define COMPAREFUNCTION_LESS 2 @@ -7325,12 +7481,12 @@ struct GEN75_DEPTH_STENCIL_STATE { #define COMPAREFUNCTION_NOTEQUAL 6 #define COMPAREFUNCTION_GEQUAL 7 uint32_t DepthTestFunction; - uint32_t DepthBufferWriteEnable; + bool DepthBufferWriteEnable; }; static inline void GEN75_DEPTH_STENCIL_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_DEPTH_STENCIL_STATE * restrict values) + const struct GEN75_DEPTH_STENCIL_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7363,38 +7519,6 @@ GEN75_DEPTH_STENCIL_STATE_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001 - -#define GEN75_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001 - -struct GEN75_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS { -#define Highestpriority 0 -#define Secondhighestpriority 1 -#define Thirdhighestpriority 2 -#define Lowestpriority 3 - uint32_t ArbitrationPriorityControl; -#define PTE 0 -#define UC 1 -#define LLCeLLCWBcacheable 2 -#define eLLCWBcacheable 3 - uint32_t LLCeLLCCacheabilityControlLLCCC; - uint32_t L3CacheabilityControlL3CC; -}; - -static inline void -GEN75_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS * restrict values) -{ - uint32_t *dw = (uint32_t * restrict) dst; - - dw[0] = - __gen_field(values->ArbitrationPriorityControl, 4, 5) | - __gen_field(values->LLCeLLCCacheabilityControlLLCCC, 1, 2) | - __gen_field(values->L3CacheabilityControlL3CC, 0, 0) | - 0; - -} - #define GEN75_INTERFACE_DESCRIPTOR_DATA_length 0x00000008 struct GEN75_INTERFACE_DESCRIPTOR_DATA { @@ -7408,9 +7532,9 @@ struct GEN75_INTERFACE_DESCRIPTOR_DATA { #define IEEE754 0 #define Alternate 1 uint32_t FloatingPointMode; - uint32_t IllegalOpcodeExceptionEnable; - uint32_t MaskStackExceptionEnable; - uint32_t SoftwareExceptionEnable; + bool IllegalOpcodeExceptionEnable; + bool MaskStackExceptionEnable; + bool SoftwareExceptionEnable; uint32_t SamplerStatePointer; #define Nosamplersused 0 #define Between1and4samplersused 1 @@ -7426,7 +7550,7 @@ struct GEN75_INTERFACE_DESCRIPTOR_DATA { #define RD 2 #define RTZ 3 uint32_t RoundingMode; - uint32_t BarrierEnable; + bool BarrierEnable; uint32_t SharedLocalMemorySize; uint32_t NumberofThreadsinGPGPUThreadGroup; uint32_t CrossThreadConstantDataReadLength; @@ -7434,7 +7558,7 @@ struct GEN75_INTERFACE_DESCRIPTOR_DATA { static inline void GEN75_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_INTERFACE_DESCRIPTOR_DATA * restrict values) + const struct GEN75_INTERFACE_DESCRIPTOR_DATA * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7481,7 +7605,23 @@ GEN75_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data *data, void * restrict dst, } -#define GEN75_PALETTE_ENTRY_length 0x00000001 +#define GEN75_BINDING_TABLE_STATE_length 0x00000001 + +struct GEN75_BINDING_TABLE_STATE { + uint32_t SurfaceStatePointer; +}; + +static inline void +GEN75_BINDING_TABLE_STATE_pack(__gen_user_data *data, void * restrict dst, + const struct GEN75_BINDING_TABLE_STATE * restrict values) +{ + uint32_t *dw = (uint32_t * restrict) dst; + + dw[0] = + __gen_offset(values->SurfaceStatePointer, 5, 31) | + 0; + +} #define GEN75_RENDER_SURFACE_STATE_length 0x00000008 @@ -7494,8 +7634,10 @@ struct GEN75_RENDER_SURFACE_STATE { #define SURFTYPE_STRBUF 5 #define SURFTYPE_NULL 7 uint32_t SurfaceType; - uint32_t SurfaceArray; + bool SurfaceArray; uint32_t SurfaceFormat; +#define VALIGN_2 0 +#define VALIGN_4 1 uint32_t SurfaceVerticalAlignment; #define HALIGN_4 0 #define HALIGN_8 1 @@ -7544,9 +7686,8 @@ struct GEN75_RENDER_SURFACE_STATE { __gen_address_type MCSBaseAddress; uint32_t MCSSurfacePitch; __gen_address_type AppendCounterAddress; - uint32_t AppendCounterEnable; - uint32_t MCSEnable; - uint32_t ReservedMBZ; + bool AppendCounterEnable; + bool MCSEnable; uint32_t XOffsetforUVPlane; uint32_t YOffsetforUVPlane; #define SCS_ZERO 0 @@ -7559,12 +7700,12 @@ struct GEN75_RENDER_SURFACE_STATE { uint32_t ShaderChannelSelectG; uint32_t ShaderChannelSelectB; uint32_t ShaderChannelSelectA; - uint32_t ResourceMinLOD; + float ResourceMinLOD; }; static inline void GEN75_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_RENDER_SURFACE_STATE * restrict values) + const struct GEN75_RENDER_SURFACE_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7616,7 +7757,6 @@ GEN75_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst, dw[5] = __gen_offset(values->XOffset, 25, 31) | __gen_offset(values->YOffset, 20, 23) | - /* Struct SurfaceObjectControlState (16..19): */ __gen_field(dw_SurfaceObjectControlState, 16, 19) | __gen_field(values->SurfaceMinLOD, 4, 7) | __gen_field(values->MIPCountLOD, 0, 3) | @@ -7626,7 +7766,6 @@ GEN75_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->MCSSurfacePitch, 3, 11) | __gen_field(values->AppendCounterEnable, 1, 1) | __gen_field(values->MCSEnable, 0, 0) | - __gen_field(values->ReservedMBZ, 30, 31) | __gen_field(values->XOffsetforUVPlane, 16, 29) | __gen_field(values->YOffsetforUVPlane, 0, 13) | 0; @@ -7639,35 +7778,162 @@ GEN75_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->ShaderChannelSelectG, 22, 24) | __gen_field(values->ShaderChannelSelectB, 19, 21) | __gen_field(values->ShaderChannelSelectA, 16, 18) | - __gen_field(values->ResourceMinLOD, 0, 11) | + __gen_field(values->ResourceMinLOD * (1 << 8), 0, 11) | 0; } #define GEN75_SAMPLER_BORDER_COLOR_STATE_length 0x00000014 +#define GEN75_BORDER_COLOR_UINT32_SINT32_length 0x00000004 + +struct GEN75_BORDER_COLOR_UINT32_SINT32 { + uint32_t BorderColorRedui32integerunclamp; + uint32_t BorderColorRedsi32integerunclamp; + uint32_t BorderColorGreenui32integerunclamp; + uint32_t BorderColorGreensi32integerunclamp; + uint32_t BorderColorBlueui32integerunclamp; + uint32_t BorderColorBluesi32integerunclamp; + uint32_t BorderColorGreenui32integerunclamp0; + uint32_t BorderColorGreensi32integerunclamp0; + uint32_t BorderColorAlphaui32integerunclamp; + uint32_t BorderColorAlphasi32integerunclamp; +}; + +static inline void +GEN75_BORDER_COLOR_UINT32_SINT32_pack(__gen_user_data *data, void * restrict dst, + const struct GEN75_BORDER_COLOR_UINT32_SINT32 * restrict values) +{ + uint32_t *dw = (uint32_t * restrict) dst; + + dw[0] = + __gen_field(values->BorderColorRedui32integerunclamp, 0, 31) | + __gen_field(values->BorderColorRedsi32integerunclamp, 0, 31) | + 0; + + dw[1] = + __gen_field(values->BorderColorGreenui32integerunclamp, 0, 31) | + __gen_field(values->BorderColorGreensi32integerunclamp, 0, 31) | + 0; + + dw[2] = + __gen_field(values->BorderColorBlueui32integerunclamp, 0, 31) | + __gen_field(values->BorderColorBluesi32integerunclamp, 0, 31) | + __gen_field(values->BorderColorGreenui32integerunclamp, 0, 31) | + __gen_field(values->BorderColorGreensi32integerunclamp, 0, 31) | + 0; + + dw[3] = + __gen_field(values->BorderColorAlphaui32integerunclamp, 0, 31) | + __gen_field(values->BorderColorAlphasi32integerunclamp, 0, 31) | + 0; + +} + +#define GEN75_BORDER_COLOR_UINT16_SINT16_length 0x00000004 + +struct GEN75_BORDER_COLOR_UINT16_SINT16 { + uint32_t BorderColorGreenclamptouint16; + uint32_t BorderColorGreenclamptosint16; + uint32_t BorderColorRedclamptouint16; + uint32_t BorderColorRedclamptosint16; + uint32_t BorderColorAlphaclamptouint16; + uint32_t BorderColorAlphaclamptosint16; + uint32_t BorderColorBlueclamptouint16; + uint32_t BorderColorBlueclamptosint16; +}; + +static inline void +GEN75_BORDER_COLOR_UINT16_SINT16_pack(__gen_user_data *data, void * restrict dst, + const struct GEN75_BORDER_COLOR_UINT16_SINT16 * restrict values) +{ + uint32_t *dw = (uint32_t * restrict) dst; + + dw[0] = + __gen_field(values->BorderColorGreenclamptouint16, 16, 31) | + __gen_field(values->BorderColorGreenclamptosint16, 16, 31) | + __gen_field(values->BorderColorRedclamptouint16, 0, 15) | + __gen_field(values->BorderColorRedclamptosint16, 0, 15) | + 0; + + dw[1] = + 0; + + dw[2] = + __gen_field(values->BorderColorAlphaclamptouint16, 16, 31) | + __gen_field(values->BorderColorAlphaclamptosint16, 16, 31) | + __gen_field(values->BorderColorBlueclamptouint16, 0, 15) | + __gen_field(values->BorderColorBlueclamptosint16, 0, 15) | + 0; + + dw[3] = + 0; + +} + +#define GEN75_BORDER_COLOR_UINT8_SINT8_length 0x00000004 + +struct GEN75_BORDER_COLOR_UINT8_SINT8 { + uint32_t BorderColorAlphaclamptouint8; + uint32_t BorderColorAlphaclamptosint8; + uint32_t BorderColorBlueclamptouint8; + uint32_t BorderColorBlueclamptosint8; + uint32_t BorderColorGreenclamptouint8; + uint32_t BorderColorGreenclamptosint8; + uint32_t BorderRedAlphaclamptouint8; + uint32_t BorderRedAlphaclamptosint8; +}; + +static inline void +GEN75_BORDER_COLOR_UINT8_SINT8_pack(__gen_user_data *data, void * restrict dst, + const struct GEN75_BORDER_COLOR_UINT8_SINT8 * restrict values) +{ + uint32_t *dw = (uint32_t * restrict) dst; + + dw[0] = + __gen_field(values->BorderColorAlphaclamptouint8, 24, 31) | + __gen_field(values->BorderColorAlphaclamptosint8, 24, 31) | + __gen_field(values->BorderColorBlueclamptouint8, 16, 23) | + __gen_field(values->BorderColorBlueclamptosint8, 16, 23) | + __gen_field(values->BorderColorGreenclamptouint8, 8, 15) | + __gen_field(values->BorderColorGreenclamptosint8, 8, 15) | + __gen_field(values->BorderRedAlphaclamptouint8, 0, 7) | + __gen_field(values->BorderRedAlphaclamptosint8, 0, 7) | + 0; + + dw[1] = + 0; + + dw[2] = + 0; + + dw[3] = + 0; + +} + struct GEN75_SAMPLER_BORDER_COLOR_STATE { - uint32_t BorderColorRedDX100GL; + float BorderColorRedDX100GL; uint32_t BorderColorAlpha; uint32_t BorderColorBlue; uint32_t BorderColorGreen; uint32_t BorderColorRedDX9; - uint32_t BorderColorGreen0; - uint32_t BorderColorBlue0; - uint32_t BorderColorAlpha0; - uint32_t BorderColor; - uint32_t BorderColor0; - uint32_t BorderColor1; + float BorderColorGreen0; + float BorderColorBlue0; + float BorderColorAlpha0; + struct GEN75_BORDER_COLOR_UINT32_SINT32 BorderColor; + struct GEN75_BORDER_COLOR_UINT16_SINT16 BorderColor0; + struct GEN75_BORDER_COLOR_UINT8_SINT8 BorderColor1; }; static inline void GEN75_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SAMPLER_BORDER_COLOR_STATE * restrict values) + const struct GEN75_SAMPLER_BORDER_COLOR_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; dw[0] = - __gen_field(values->BorderColorRedDX100GL, 0, 31) | + __gen_float(values->BorderColorRedDX100GL) | __gen_field(values->BorderColorAlpha, 24, 31) | __gen_field(values->BorderColorBlue, 16, 23) | __gen_field(values->BorderColorGreen, 8, 15) | @@ -7675,38 +7941,35 @@ GEN75_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data *data, void * restrict dst 0; dw[1] = - __gen_field(values->BorderColorGreen, 0, 31) | + __gen_float(values->BorderColorGreen) | 0; dw[2] = - __gen_field(values->BorderColorBlue, 0, 31) | + __gen_float(values->BorderColorBlue) | 0; dw[3] = - __gen_field(values->BorderColorAlpha, 0, 31) | + __gen_float(values->BorderColorAlpha) | 0; - dw[4] = - 0; - - dw[16] = - __gen_field(values->BorderColor, 0, 127) | - __gen_field(values->BorderColor, 0, 127) | - __gen_field(values->BorderColor, 0, 127) | - 0; + for (uint32_t i = 0, j = 4; i < 12; i += 1, j++) { + dw[j] = + 0; + } + GEN75_BORDER_COLOR_UINT32_SINT32_pack(data, &dw[16], &values->BorderColor); } #define GEN75_SAMPLER_STATE_length 0x00000004 struct GEN75_SAMPLER_STATE { - uint32_t SamplerDisable; + bool SamplerDisable; #define DX10OGL 0 #define DX9 1 uint32_t TextureBorderColorMode; #define OGL 1 uint32_t LODPreClampEnable; - uint32_t BaseMipLevel; + float BaseMipLevel; #define MIPFILTER_NONE 0 #define MIPFILTER_NEAREST 1 #define MIPFILTER_LINEAR 3 @@ -7725,8 +7988,8 @@ struct GEN75_SAMPLER_STATE { #define LEGACY 0 #define EWAApproximation 1 uint32_t AnisotropicAlgorithm; - uint32_t MinLOD; - uint32_t MaxLOD; + float MinLOD; + float MaxLOD; #define PREFILTEROPALWAYS 0 #define PREFILTEROPNEVER 1 #define PREFILTEROPLESS 2 @@ -7740,7 +8003,7 @@ struct GEN75_SAMPLER_STATE { #define OVERRIDE 1 uint32_t CubeSurfaceControlMode; uint32_t BorderColorPointer; - uint32_t ChromaKeyEnable; + bool ChromaKeyEnable; uint32_t ChromaKeyIndex; #define KEYFILTER_KILL_ON_ANY_MATCH 0 #define KEYFILTER_REPLACE_BLACK 1 @@ -7754,18 +8017,18 @@ struct GEN75_SAMPLER_STATE { #define RATIO141 6 #define RATIO161 7 uint32_t MaximumAnisotropy; - uint32_t RAddressMinFilterRoundingEnable; - uint32_t RAddressMagFilterRoundingEnable; - uint32_t VAddressMinFilterRoundingEnable; - uint32_t VAddressMagFilterRoundingEnable; - uint32_t UAddressMinFilterRoundingEnable; - uint32_t UAddressMagFilterRoundingEnable; + bool RAddressMinFilterRoundingEnable; + bool RAddressMagFilterRoundingEnable; + bool VAddressMinFilterRoundingEnable; + bool VAddressMagFilterRoundingEnable; + bool UAddressMinFilterRoundingEnable; + bool UAddressMagFilterRoundingEnable; #define FULL 0 #define TRIQUAL_HIGHMAG_CLAMP_MIPFILTER 1 #define MED 2 #define LOW 3 uint32_t TrilinearFilterQuality; - uint32_t NonnormalizedCoordinateEnable; + bool NonnormalizedCoordinateEnable; uint32_t TCXAddressControlMode; uint32_t TCYAddressControlMode; uint32_t TCZAddressControlMode; @@ -7773,7 +8036,7 @@ struct GEN75_SAMPLER_STATE { static inline void GEN75_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst, - const struct GEN75_SAMPLER_STATE * restrict values) + const struct GEN75_SAMPLER_STATE * restrict values) { uint32_t *dw = (uint32_t * restrict) dst; @@ -7781,7 +8044,7 @@ GEN75_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SamplerDisable, 31, 31) | __gen_field(values->TextureBorderColorMode, 29, 29) | __gen_field(values->LODPreClampEnable, 28, 28) | - __gen_field(values->BaseMipLevel, 22, 26) | + __gen_field(values->BaseMipLevel * (1 << 1), 22, 26) | __gen_field(values->MipModeFilter, 20, 21) | __gen_field(values->MagModeFilter, 17, 19) | __gen_field(values->MinModeFilter, 14, 16) | @@ -7790,8 +8053,8 @@ GEN75_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst, 0; dw[1] = - __gen_field(values->MinLOD, 20, 31) | - __gen_field(values->MaxLOD, 8, 19) | + __gen_field(values->MinLOD * (1 << 8), 20, 31) | + __gen_field(values->MaxLOD * (1 << 8), 8, 19) | __gen_field(values->ShadowFunction, 1, 3) | __gen_field(values->CubeSurfaceControlMode, 0, 0) | 0; @@ -7830,7 +8093,7 @@ GEN75_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst, #define _3DPRIM_QUADLIST 7 #define _3DPRIM_QUADSTRIP 8 #define _3DPRIM_LINELIST_ADJ 9 -#define _3DPRIM_LISTSTRIP_ADJ 10 +#define _3DPRIM_LINESTRIP_ADJ 10 #define _3DPRIM_TRILIST_ADJ 11 #define _3DPRIM_TRISTRIP_ADJ 12 #define _3DPRIM_TRISTRIP_REVERSE 13