anv/device: Update features and limits
[mesa.git] / src / vulkan / gen8_pack.h
index 3b9e6235975b2ee3a10263ac6a8cc7056bbcf378..4d6b7c0a04dd96d513f2e46d4ccbd47dfada041d 100644 (file)
@@ -44,6 +44,12 @@ 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)
 {
@@ -86,7 +92,6 @@ __gen_float(float v)
 
 #endif
 
-#define GEN8_3DSTATE_URB_VS_length 0x00000002
 #define GEN8_3DSTATE_URB_VS_length_bias 0x00000002
 #define GEN8_3DSTATE_URB_VS_header              \
    .CommandType          =  3,                  \
@@ -95,6 +100,8 @@ __gen_float(float v)
    ._3DCommandSubOpcode  = 48,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_URB_VS_length 0x00000002
+
 struct GEN8_3DSTATE_URB_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -108,7 +115,7 @@ struct GEN8_3DSTATE_URB_VS {
 
 static inline void
 GEN8_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_3DSTATE_URB_VS * restrict values)
+                         const struct GEN8_3DSTATE_URB_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -128,7 +135,6 @@ GEN8_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_VS_length 0x00000009
 #define GEN8_3DSTATE_VS_length_bias 0x00000002
 #define GEN8_3DSTATE_VS_header                  \
    .CommandType          =  3,                  \
@@ -137,6 +143,8 @@ GEN8_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 16,                  \
    .DwordLength          =  7
 
+#define GEN8_3DSTATE_VS_length 0x00000009
+
 struct GEN8_3DSTATE_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -163,19 +171,19 @@ struct GEN8_3DSTATE_VS {
 #define     IEEE754                                            0
 #define     Alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     AccessesUAV;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         AccessesUAV;
+   bool                                         SoftwareExceptionEnable;
    uint64_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     DispatchGRFStartRegisterForURBData;
    uint32_t                                     VertexURBEntryReadLength;
    uint32_t                                     VertexURBEntryReadOffset;
    uint32_t                                     MaximumNumberofThreads;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     SIMD8DispatchEnable;
-   uint32_t                                     VertexCacheDisable;
-   uint32_t                                     FunctionEnable;
+   bool                                         StatisticsEnable;
+   bool                                         SIMD8DispatchEnable;
+   bool                                         VertexCacheDisable;
+   bool                                         FunctionEnable;
    uint32_t                                     VertexURBEntryOutputReadOffset;
    uint32_t                                     VertexURBEntryOutputLength;
    uint32_t                                     UserClipDistanceClipTestEnableBitmask;
@@ -184,7 +192,7 @@ struct GEN8_3DSTATE_VS {
 
 static inline void
 GEN8_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_VS * restrict values)
+                     const struct GEN8_3DSTATE_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -246,7 +254,6 @@ GEN8_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_GPGPU_CSR_BASE_ADDRESS_length 0x00000003
 #define GEN8_GPGPU_CSR_BASE_ADDRESS_length_bias 0x00000002
 #define GEN8_GPGPU_CSR_BASE_ADDRESS_header      \
    .CommandType          =  3,                  \
@@ -255,18 +262,20 @@ GEN8_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  4,                  \
    .DwordLength          =  1
 
+#define GEN8_GPGPU_CSR_BASE_ADDRESS_length 0x00000003
+
 struct GEN8_GPGPU_CSR_BASE_ADDRESS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   __gen_address_type                           GPGPUCSRBaseAddressHigh;
+   __gen_address_type                           GPGPUCSRBaseAddress;
 };
 
 static inline void
 GEN8_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
-                                const struct GEN8_GPGPU_CSR_BASE_ADDRESS * restrict values)
+                                 const struct GEN8_GPGPU_CSR_BASE_ADDRESS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -282,19 +291,20 @@ GEN8_GPGPU_CSR_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    uint64_t qw1 =
-      __gen_combine_address(data, &dw[1], values->GPGPUCSRBaseAddressHigh, dw1);
+      __gen_combine_address(data, &dw[1], values->GPGPUCSRBaseAddress, dw1);
 
    dw[1] = qw1;
    dw[2] = qw1 >> 32;
 
 }
 
-#define GEN8_MI_ATOMIC_length 0x00000003
 #define GEN8_MI_ATOMIC_length_bias 0x00000002
 #define GEN8_MI_ATOMIC_header                   \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 47
 
+#define GEN8_MI_ATOMIC_length 0x00000003
+
 struct GEN8_MI_ATOMIC {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -313,7 +323,6 @@ struct GEN8_MI_ATOMIC {
    uint32_t                                     ATOMICOPCODE;
    uint32_t                                     DwordLength;
    __gen_address_type                           MemoryAddress;
-   uint32_t                                     MemoryAddressHigh;
    uint32_t                                     Operand1DataDword0;
    uint32_t                                     Operand2DataDword0;
    uint32_t                                     Operand1DataDword1;
@@ -326,7 +335,7 @@ struct GEN8_MI_ATOMIC {
 
 static inline void
 GEN8_MI_ATOMIC_pack(__gen_user_data *data, void * restrict dst,
-                   const struct GEN8_MI_ATOMIC * restrict values)
+                    const struct GEN8_MI_ATOMIC * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -346,12 +355,11 @@ GEN8_MI_ATOMIC_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw1 =
       0;
 
-   dw[1] =
+   uint64_t qw1 =
       __gen_combine_address(data, &dw[1], values->MemoryAddress, dw1);
 
-   dw[2] =
-      __gen_field(values->MemoryAddressHigh, 0, 15) |
-      0;
+   dw[1] = qw1;
+   dw[2] = qw1 >> 32;
 
    dw[3] =
       __gen_field(values->Operand1DataDword0, 0, 31) |
@@ -387,13 +395,14 @@ GEN8_MI_ATOMIC_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_LOAD_REGISTER_REG_length 0x00000003
 #define GEN8_MI_LOAD_REGISTER_REG_length_bias 0x00000002
 #define GEN8_MI_LOAD_REGISTER_REG_header        \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 42,                  \
    .DwordLength          =  1
 
+#define GEN8_MI_LOAD_REGISTER_REG_length 0x00000003
+
 struct GEN8_MI_LOAD_REGISTER_REG {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -404,7 +413,7 @@ struct GEN8_MI_LOAD_REGISTER_REG {
 
 static inline void
 GEN8_MI_LOAD_REGISTER_REG_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_MI_LOAD_REGISTER_REG * restrict values)
+                               const struct GEN8_MI_LOAD_REGISTER_REG * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -424,13 +433,14 @@ GEN8_MI_LOAD_REGISTER_REG_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_SEMAPHORE_SIGNAL_length 0x00000002
 #define GEN8_MI_SEMAPHORE_SIGNAL_length_bias 0x00000002
 #define GEN8_MI_SEMAPHORE_SIGNAL_header         \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 27,                  \
    .DwordLength          =  0
 
+#define GEN8_MI_SEMAPHORE_SIGNAL_length 0x00000002
+
 struct GEN8_MI_SEMAPHORE_SIGNAL {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -447,7 +457,7 @@ struct GEN8_MI_SEMAPHORE_SIGNAL {
 
 static inline void
 GEN8_MI_SEMAPHORE_SIGNAL_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_MI_SEMAPHORE_SIGNAL * restrict values)
+                              const struct GEN8_MI_SEMAPHORE_SIGNAL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -465,13 +475,14 @@ GEN8_MI_SEMAPHORE_SIGNAL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_SEMAPHORE_WAIT_length 0x00000004
 #define GEN8_MI_SEMAPHORE_WAIT_length_bias 0x00000002
 #define GEN8_MI_SEMAPHORE_WAIT_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 28,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_SEMAPHORE_WAIT_length 0x00000004
+
 struct GEN8_MI_SEMAPHORE_WAIT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -495,7 +506,7 @@ struct GEN8_MI_SEMAPHORE_WAIT {
 
 static inline void
 GEN8_MI_SEMAPHORE_WAIT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_MI_SEMAPHORE_WAIT * restrict values)
+                            const struct GEN8_MI_SEMAPHORE_WAIT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -523,17 +534,18 @@ GEN8_MI_SEMAPHORE_WAIT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_STORE_REGISTER_MEM_length 0x00000004
 #define GEN8_MI_STORE_REGISTER_MEM_length_bias 0x00000002
 #define GEN8_MI_STORE_REGISTER_MEM_header       \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 36,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_STORE_REGISTER_MEM_length 0x00000004
+
 struct GEN8_MI_STORE_REGISTER_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     UseGlobalGTT;
+   bool                                         UseGlobalGTT;
    uint32_t                                     PredicateEnable;
    uint32_t                                     DwordLength;
    uint32_t                                     RegisterAddress;
@@ -542,7 +554,7 @@ struct GEN8_MI_STORE_REGISTER_MEM {
 
 static inline void
 GEN8_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN8_MI_STORE_REGISTER_MEM * restrict values)
+                                const struct GEN8_MI_STORE_REGISTER_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -569,7 +581,6 @@ GEN8_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_PIPELINE_SELECT_length 0x00000001
 #define GEN8_PIPELINE_SELECT_length_bias 0x00000001
 #define GEN8_PIPELINE_SELECT_header             \
    .CommandType          =  3,                  \
@@ -577,6 +588,8 @@ GEN8_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  =  4
 
+#define GEN8_PIPELINE_SELECT_length 0x00000001
+
 struct GEN8_PIPELINE_SELECT {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -590,7 +603,7 @@ struct GEN8_PIPELINE_SELECT {
 
 static inline void
 GEN8_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN8_PIPELINE_SELECT * restrict values)
+                          const struct GEN8_PIPELINE_SELECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -604,7 +617,6 @@ GEN8_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_STATE_BASE_ADDRESS_length 0x00000010
 #define GEN8_STATE_BASE_ADDRESS_length_bias 0x00000002
 #define GEN8_STATE_BASE_ADDRESS_header          \
    .CommandType          =  3,                  \
@@ -613,6 +625,10 @@ GEN8_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  1,                  \
    .DwordLength          = 14
 
+#define GEN8_STATE_BASE_ADDRESS_length 0x00000010
+
+#define GEN8_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
+
 struct GEN8_MEMORY_OBJECT_CONTROL_STATE {
 #define     UCwithFenceifcoherentcycle                         0
 #define     UCUncacheable                                      1
@@ -629,7 +645,7 @@ struct GEN8_MEMORY_OBJECT_CONTROL_STATE {
 
 static inline void
 GEN8_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data *data, void * restrict dst,
-                                     const struct GEN8_MEMORY_OBJECT_CONTROL_STATE * restrict values)
+                                      const struct GEN8_MEMORY_OBJECT_CONTROL_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -649,33 +665,33 @@ struct GEN8_STATE_BASE_ADDRESS {
    uint32_t                                     DwordLength;
    __gen_address_type                           GeneralStateBaseAddress;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      GeneralStateMemoryObjectControlState;
-   uint32_t                                     GeneralStateBaseAddressModifyEnable;
+   bool                                         GeneralStateBaseAddressModifyEnable;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      StatelessDataPortAccessMemoryObjectControlState;
    __gen_address_type                           SurfaceStateBaseAddress;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      SurfaceStateMemoryObjectControlState;
-   uint32_t                                     SurfaceStateBaseAddressModifyEnable;
+   bool                                         SurfaceStateBaseAddressModifyEnable;
    __gen_address_type                           DynamicStateBaseAddress;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      DynamicStateMemoryObjectControlState;
-   uint32_t                                     DynamicStateBaseAddressModifyEnable;
+   bool                                         DynamicStateBaseAddressModifyEnable;
    __gen_address_type                           IndirectObjectBaseAddress;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      IndirectObjectMemoryObjectControlState;
-   uint32_t                                     IndirectObjectBaseAddressModifyEnable;
+   bool                                         IndirectObjectBaseAddressModifyEnable;
    __gen_address_type                           InstructionBaseAddress;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      InstructionMemoryObjectControlState;
-   uint32_t                                     InstructionBaseAddressModifyEnable;
+   bool                                         InstructionBaseAddressModifyEnable;
    uint32_t                                     GeneralStateBufferSize;
-   uint32_t                                     GeneralStateBufferSizeModifyEnable;
+   bool                                         GeneralStateBufferSizeModifyEnable;
    uint32_t                                     DynamicStateBufferSize;
-   uint32_t                                     DynamicStateBufferSizeModifyEnable;
+   bool                                         DynamicStateBufferSizeModifyEnable;
    uint32_t                                     IndirectObjectBufferSize;
-   uint32_t                                     IndirectObjectBufferSizeModifyEnable;
+   bool                                         IndirectObjectBufferSizeModifyEnable;
    uint32_t                                     InstructionBufferSize;
-   uint32_t                                     InstructionBuffersizeModifyEnable;
+   bool                                         InstructionBuffersizeModifyEnable;
 };
 
 static inline void
 GEN8_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN8_STATE_BASE_ADDRESS * restrict values)
+                             const struct GEN8_STATE_BASE_ADDRESS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -780,7 +796,6 @@ GEN8_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_STATE_PREFETCH_length 0x00000002
 #define GEN8_STATE_PREFETCH_length_bias 0x00000002
 #define GEN8_STATE_PREFETCH_header              \
    .CommandType          =  3,                  \
@@ -789,6 +804,8 @@ GEN8_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  3,                  \
    .DwordLength          =  0
 
+#define GEN8_STATE_PREFETCH_length 0x00000002
+
 struct GEN8_STATE_PREFETCH {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -801,7 +818,7 @@ struct GEN8_STATE_PREFETCH {
 
 static inline void
 GEN8_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_STATE_PREFETCH * restrict values)
+                         const struct GEN8_STATE_PREFETCH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -822,7 +839,6 @@ GEN8_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_STATE_SIP_length 0x00000003
 #define GEN8_STATE_SIP_length_bias 0x00000002
 #define GEN8_STATE_SIP_header                   \
    .CommandType          =  3,                  \
@@ -831,6 +847,8 @@ GEN8_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  2,                  \
    .DwordLength          =  1
 
+#define GEN8_STATE_SIP_length 0x00000003
+
 struct GEN8_STATE_SIP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -842,7 +860,7 @@ struct GEN8_STATE_SIP {
 
 static inline void
 GEN8_STATE_SIP_pack(__gen_user_data *data, void * restrict dst,
-                   const struct GEN8_STATE_SIP * restrict values)
+                    const struct GEN8_STATE_SIP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -863,7 +881,6 @@ GEN8_STATE_SIP_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_SWTESS_BASE_ADDRESS_length 0x00000002
 #define GEN8_SWTESS_BASE_ADDRESS_length_bias 0x00000002
 #define GEN8_SWTESS_BASE_ADDRESS_header         \
    .CommandType          =  3,                  \
@@ -872,6 +889,8 @@ GEN8_STATE_SIP_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  3,                  \
    .DwordLength          =  0
 
+#define GEN8_SWTESS_BASE_ADDRESS_length 0x00000002
+
 struct GEN8_SWTESS_BASE_ADDRESS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -880,12 +899,11 @@ struct GEN8_SWTESS_BASE_ADDRESS {
    uint32_t                                     DwordLength;
    __gen_address_type                           SWTessellationBaseAddress;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      SWTessellationMemoryObjectControlState;
-   __gen_address_type                           SWTessellationBaseAddressHigh;
 };
 
 static inline void
 GEN8_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_SWTESS_BASE_ADDRESS * restrict values)
+                              const struct GEN8_SWTESS_BASE_ADDRESS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -903,18 +921,14 @@ GEN8_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(dw_SWTessellationMemoryObjectControlState, 8, 11) |
       0;
 
-   dw[1] =
+   uint64_t qw1 =
       __gen_combine_address(data, &dw[1], values->SWTessellationBaseAddress, dw1);
 
-   uint32_t dw2 =
-      0;
-
-   dw[2] =
-      __gen_combine_address(data, &dw[2], values->SWTessellationBaseAddressHigh, dw2);
+   dw[1] = qw1;
+   dw[2] = qw1 >> 32;
 
 }
 
-#define GEN8_3DPRIMITIVE_length 0x00000007
 #define GEN8_3DPRIMITIVE_length_bias 0x00000002
 #define GEN8_3DPRIMITIVE_header                 \
    .CommandType          =  3,                  \
@@ -923,16 +937,18 @@ GEN8_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  0,                  \
    .DwordLength          =  5
 
+#define GEN8_3DPRIMITIVE_length 0x00000007
+
 struct GEN8_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;
@@ -946,7 +962,7 @@ struct GEN8_3DPRIMITIVE {
 
 static inline void
 GEN8_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN8_3DPRIMITIVE * restrict values)
+                      const struct GEN8_3DPRIMITIVE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -989,7 +1005,6 @@ GEN8_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
 #define GEN8_3DSTATE_AA_LINE_PARAMETERS_header  \
    .CommandType          =  3,                  \
@@ -998,6 +1013,8 @@ GEN8_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 10,                  \
    .DwordLength          =  1
 
+#define GEN8_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
+
 struct GEN8_3DSTATE_AA_LINE_PARAMETERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1016,7 +1033,7 @@ struct GEN8_3DSTATE_AA_LINE_PARAMETERS {
 
 static inline void
 GEN8_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_3DSTATE_AA_LINE_PARAMETERS * restrict values)
+                                     const struct GEN8_3DSTATE_AA_LINE_PARAMETERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1051,6 +1068,10 @@ GEN8_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 70
 
+#define GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_length 0x00000000
+
+#define GEN8_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
+
 struct GEN8_BINDING_TABLE_EDIT_ENTRY {
    uint32_t                                     BindingTableIndex;
    uint32_t                                     SurfaceStatePointer;
@@ -1058,7 +1079,7 @@ struct GEN8_BINDING_TABLE_EDIT_ENTRY {
 
 static inline void
 GEN8_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                                  const struct GEN8_BINDING_TABLE_EDIT_ENTRY * restrict values)
+                                   const struct GEN8_BINDING_TABLE_EDIT_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1085,7 +1106,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS * restrict values)
+                                        const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1112,6 +1133,8 @@ GEN8_3DSTATE_BINDING_TABLE_EDIT_DS_pack(__gen_user_data *data, void * restrict d
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 68
 
+#define GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_length 0x00000000
+
 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1128,7 +1151,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS * restrict values)
+                                        const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1155,6 +1178,8 @@ GEN8_3DSTATE_BINDING_TABLE_EDIT_GS_pack(__gen_user_data *data, void * restrict d
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 69
 
+#define GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_length 0x00000000
+
 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1171,7 +1196,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS * restrict values)
+                                        const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1198,6 +1223,8 @@ GEN8_3DSTATE_BINDING_TABLE_EDIT_HS_pack(__gen_user_data *data, void * restrict d
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 71
 
+#define GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_length 0x00000000
+
 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1214,7 +1241,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS * restrict values)
+                                        const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1241,6 +1268,8 @@ GEN8_3DSTATE_BINDING_TABLE_EDIT_PS_pack(__gen_user_data *data, void * restrict d
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 67
 
+#define GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_length 0x00000000
+
 struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1257,7 +1286,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS * restrict values)
+                                        const struct GEN8_3DSTATE_BINDING_TABLE_EDIT_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1277,7 +1306,6 @@ GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data *data, void * restrict d
    /* variable length fields follow */
 }
 
-#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
    .CommandType          =  3,                  \
@@ -1286,6 +1314,8 @@ GEN8_3DSTATE_BINDING_TABLE_EDIT_VS_pack(__gen_user_data *data, void * restrict d
    ._3DCommandSubOpcode  = 40,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
+
 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1297,7 +1327,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS * restrict values)
+                                            const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1315,7 +1345,6 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
    .CommandType          =  3,                  \
@@ -1324,6 +1353,8 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 41,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
+
 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1335,7 +1366,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS * restrict values)
+                                            const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1353,7 +1384,6 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
    .CommandType          =  3,                  \
@@ -1362,6 +1392,8 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 39,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
+
 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1373,7 +1405,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS * restrict values)
+                                            const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1391,7 +1423,6 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
    .CommandType          =  3,                  \
@@ -1400,6 +1431,8 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 42,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
+
 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1411,7 +1444,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS * restrict values)
+                                            const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1429,7 +1462,6 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
    .CommandType          =  3,                  \
@@ -1438,6 +1470,8 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 38,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
+
 struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1449,7 +1483,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS * restrict values)
+                                            const struct GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1467,7 +1501,6 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000004
 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length_bias 0x00000002
 #define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_header\
    .CommandType          =  3,                  \
@@ -1476,6 +1509,8 @@ GEN8_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 25,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_length 0x00000004
+
 struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1491,7 +1526,7 @@ struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC {
 
 static inline void
 GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst,
-                                          const struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC * restrict values)
+                                           const struct GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1522,7 +1557,6 @@ GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restric
 
 }
 
-#define GEN8_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
 #define GEN8_3DSTATE_BLEND_STATE_POINTERS_header\
    .CommandType          =  3,                  \
@@ -1531,6 +1565,8 @@ GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC_pack(__gen_user_data *data, void * restric
    ._3DCommandSubOpcode  = 36,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
+
 struct GEN8_3DSTATE_BLEND_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1538,12 +1574,12 @@ struct GEN8_3DSTATE_BLEND_STATE_POINTERS {
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
    uint32_t                                     BlendStatePointer;
-   uint32_t                                     BlendStatePointerValid;
+   bool                                         BlendStatePointerValid;
 };
 
 static inline void
 GEN8_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                      const struct GEN8_3DSTATE_BLEND_STATE_POINTERS * restrict values)
+                                       const struct GEN8_3DSTATE_BLEND_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1562,7 +1598,6 @@ GEN8_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict ds
 
 }
 
-#define GEN8_3DSTATE_CC_STATE_POINTERS_length 0x00000002
 #define GEN8_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
 #define GEN8_3DSTATE_CC_STATE_POINTERS_header   \
    .CommandType          =  3,                  \
@@ -1571,6 +1606,8 @@ GEN8_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict ds
    ._3DCommandSubOpcode  = 14,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_CC_STATE_POINTERS_length 0x00000002
+
 struct GEN8_3DSTATE_CC_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1578,12 +1615,12 @@ struct GEN8_3DSTATE_CC_STATE_POINTERS {
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
    uint32_t                                     ColorCalcStatePointer;
-   uint32_t                                     ColorCalcStatePointerValid;
+   bool                                         ColorCalcStatePointerValid;
 };
 
 static inline void
 GEN8_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN8_3DSTATE_CC_STATE_POINTERS * restrict values)
+                                    const struct GEN8_3DSTATE_CC_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1602,7 +1639,6 @@ GEN8_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_CHROMA_KEY_length 0x00000004
 #define GEN8_3DSTATE_CHROMA_KEY_length_bias 0x00000002
 #define GEN8_3DSTATE_CHROMA_KEY_header          \
    .CommandType          =  3,                  \
@@ -1611,6 +1647,8 @@ GEN8_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  4,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_CHROMA_KEY_length 0x00000004
+
 struct GEN8_3DSTATE_CHROMA_KEY {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1624,7 +1662,7 @@ struct GEN8_3DSTATE_CHROMA_KEY {
 
 static inline void
 GEN8_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN8_3DSTATE_CHROMA_KEY * restrict values)
+                             const struct GEN8_3DSTATE_CHROMA_KEY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1650,7 +1688,6 @@ GEN8_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_CLEAR_PARAMS_length 0x00000003
 #define GEN8_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
 #define GEN8_3DSTATE_CLEAR_PARAMS_header        \
    .CommandType          =  3,                  \
@@ -1659,6 +1696,8 @@ GEN8_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  4,                  \
    .DwordLength          =  1
 
+#define GEN8_3DSTATE_CLEAR_PARAMS_length 0x00000003
+
 struct GEN8_3DSTATE_CLEAR_PARAMS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1666,12 +1705,12 @@ struct GEN8_3DSTATE_CLEAR_PARAMS {
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
    float                                        DepthClearValue;
-   uint32_t                                     DepthClearValueValid;
+   bool                                         DepthClearValueValid;
 };
 
 static inline void
 GEN8_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_3DSTATE_CLEAR_PARAMS * restrict values)
+                               const struct GEN8_3DSTATE_CLEAR_PARAMS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1693,7 +1732,6 @@ GEN8_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_CLIP_length 0x00000004
 #define GEN8_3DSTATE_CLIP_length_bias 0x00000002
 #define GEN8_3DSTATE_CLIP_header                \
    .CommandType          =  3,                  \
@@ -1702,6 +1740,8 @@ GEN8_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 18,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_CLIP_length 0x00000004
+
 struct GEN8_3DSTATE_CLIP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1710,43 +1750,43 @@ struct GEN8_3DSTATE_CLIP {
    uint32_t                                     DwordLength;
 #define     Normal                                             0
 #define     Force                                              1
-   uint32_t                                     ForceUserClipDistanceCullTestEnableBitmask;
+   bool                                         ForceUserClipDistanceCullTestEnableBitmask;
 #define     _8Bit                                              0
 #define     _4Bit                                              1
    uint32_t                                     VertexSubPixelPrecisionSelect;
-   uint32_t                                     EarlyCullEnable;
+   bool                                         EarlyCullEnable;
 #define     Normal                                             0
 #define     Force                                              1
-   uint32_t                                     ForceUserClipDistanceClipTestEnableBitmask;
+   bool                                         ForceUserClipDistanceClipTestEnableBitmask;
 #define     Normal                                             0
 #define     Force                                              1
-   uint32_t                                     ForceClipMode;
-   uint32_t                                     ClipperStatisticsEnable;
+   bool                                         ForceClipMode;
+   bool                                         ClipperStatisticsEnable;
    uint32_t                                     UserClipDistanceCullTestEnableBitmask;
-   uint32_t                                     ClipEnable;
+   bool                                         ClipEnable;
 #define     API_OGL                                            0
    uint32_t                                     APIMode;
-   uint32_t                                     ViewportXYClipTestEnable;
-   uint32_t                                     GuardbandClipTestEnable;
+   bool                                         ViewportXYClipTestEnable;
+   bool                                         GuardbandClipTestEnable;
    uint32_t                                     UserClipDistanceClipTestEnableBitmask;
 #define     NORMAL                                             0
 #define     REJECT_ALL                                         3
 #define     ACCEPT_ALL                                         4
    uint32_t                                     ClipMode;
-   uint32_t                                     PerspectiveDivideDisable;
-   uint32_t                                     NonPerspectiveBarycentricEnable;
+   bool                                         PerspectiveDivideDisable;
+   bool                                         NonPerspectiveBarycentricEnable;
    uint32_t                                     TriangleStripListProvokingVertexSelect;
    uint32_t                                     LineStripListProvokingVertexSelect;
    uint32_t                                     TriangleFanProvokingVertexSelect;
    float                                        MinimumPointWidth;
    float                                        MaximumPointWidth;
-   uint32_t                                     ForceZeroRTAIndexEnable;
+   bool                                         ForceZeroRTAIndexEnable;
    uint32_t                                     MaximumVPIndex;
 };
 
 static inline void
 GEN8_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_3DSTATE_CLIP * restrict values)
+                       const struct GEN8_3DSTATE_CLIP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1791,7 +1831,6 @@ GEN8_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_CONSTANT_DS_length 0x0000000b
 #define GEN8_3DSTATE_CONSTANT_DS_length_bias 0x00000002
 #define GEN8_3DSTATE_CONSTANT_DS_header         \
    .CommandType          =  3,                  \
@@ -1800,6 +1839,10 @@ GEN8_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 26,                  \
    .DwordLength          =  9
 
+#define GEN8_3DSTATE_CONSTANT_DS_length 0x0000000b
+
+#define GEN8_3DSTATE_CONSTANT_BODY_length 0x0000000a
+
 struct GEN8_3DSTATE_CONSTANT_BODY {
    uint32_t                                     ConstantBuffer1ReadLength;
    uint32_t                                     ConstantBuffer0ReadLength;
@@ -1813,7 +1856,7 @@ struct GEN8_3DSTATE_CONSTANT_BODY {
 
 static inline void
 GEN8_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN8_3DSTATE_CONSTANT_BODY * restrict values)
+                                const struct GEN8_3DSTATE_CONSTANT_BODY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1877,7 +1920,7 @@ struct GEN8_3DSTATE_CONSTANT_DS {
 
 static inline void
 GEN8_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_CONSTANT_DS * restrict values)
+                              const struct GEN8_3DSTATE_CONSTANT_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1895,7 +1938,6 @@ GEN8_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
    GEN8_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN8_3DSTATE_CONSTANT_GS_length 0x0000000b
 #define GEN8_3DSTATE_CONSTANT_GS_length_bias 0x00000002
 #define GEN8_3DSTATE_CONSTANT_GS_header         \
    .CommandType          =  3,                  \
@@ -1904,6 +1946,8 @@ GEN8_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 22,                  \
    .DwordLength          =  9
 
+#define GEN8_3DSTATE_CONSTANT_GS_length 0x0000000b
+
 struct GEN8_3DSTATE_CONSTANT_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1916,7 +1960,7 @@ struct GEN8_3DSTATE_CONSTANT_GS {
 
 static inline void
 GEN8_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_CONSTANT_GS * restrict values)
+                              const struct GEN8_3DSTATE_CONSTANT_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1934,7 +1978,6 @@ GEN8_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
    GEN8_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN8_3DSTATE_CONSTANT_HS_length 0x0000000b
 #define GEN8_3DSTATE_CONSTANT_HS_length_bias 0x00000002
 #define GEN8_3DSTATE_CONSTANT_HS_header         \
    .CommandType          =  3,                  \
@@ -1943,6 +1986,8 @@ GEN8_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 25,                  \
    .DwordLength          =  9
 
+#define GEN8_3DSTATE_CONSTANT_HS_length 0x0000000b
+
 struct GEN8_3DSTATE_CONSTANT_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1955,7 +2000,7 @@ struct GEN8_3DSTATE_CONSTANT_HS {
 
 static inline void
 GEN8_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_CONSTANT_HS * restrict values)
+                              const struct GEN8_3DSTATE_CONSTANT_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1973,7 +2018,6 @@ GEN8_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
    GEN8_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN8_3DSTATE_CONSTANT_PS_length 0x0000000b
 #define GEN8_3DSTATE_CONSTANT_PS_length_bias 0x00000002
 #define GEN8_3DSTATE_CONSTANT_PS_header         \
    .CommandType          =  3,                  \
@@ -1982,6 +2026,8 @@ GEN8_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 23,                  \
    .DwordLength          =  9
 
+#define GEN8_3DSTATE_CONSTANT_PS_length 0x0000000b
+
 struct GEN8_3DSTATE_CONSTANT_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1994,7 +2040,7 @@ struct GEN8_3DSTATE_CONSTANT_PS {
 
 static inline void
 GEN8_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_CONSTANT_PS * restrict values)
+                              const struct GEN8_3DSTATE_CONSTANT_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2012,7 +2058,6 @@ GEN8_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
    GEN8_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN8_3DSTATE_CONSTANT_VS_length 0x0000000b
 #define GEN8_3DSTATE_CONSTANT_VS_length_bias 0x00000002
 #define GEN8_3DSTATE_CONSTANT_VS_header         \
    .CommandType          =  3,                  \
@@ -2021,6 +2066,8 @@ GEN8_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 21,                  \
    .DwordLength          =  9
 
+#define GEN8_3DSTATE_CONSTANT_VS_length 0x0000000b
+
 struct GEN8_3DSTATE_CONSTANT_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2033,7 +2080,7 @@ struct GEN8_3DSTATE_CONSTANT_VS {
 
 static inline void
 GEN8_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_CONSTANT_VS * restrict values)
+                              const struct GEN8_3DSTATE_CONSTANT_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2051,7 +2098,6 @@ GEN8_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
    GEN8_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN8_3DSTATE_DEPTH_BUFFER_length 0x00000008
 #define GEN8_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
 #define GEN8_3DSTATE_DEPTH_BUFFER_header        \
    .CommandType          =  3,                  \
@@ -2060,6 +2106,8 @@ GEN8_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  5,                  \
    .DwordLength          =  6
 
+#define GEN8_3DSTATE_DEPTH_BUFFER_length 0x00000008
+
 struct GEN8_3DSTATE_DEPTH_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2072,9 +2120,9 @@ struct GEN8_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
@@ -2093,7 +2141,7 @@ struct GEN8_3DSTATE_DEPTH_BUFFER {
 
 static inline void
 GEN8_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_3DSTATE_DEPTH_BUFFER * restrict values)
+                               const struct GEN8_3DSTATE_DEPTH_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2147,7 +2195,6 @@ GEN8_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
 #define GEN8_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
 #define GEN8_3DSTATE_DRAWING_RECTANGLE_header   \
    .CommandType          =  3,                  \
@@ -2156,6 +2203,8 @@ GEN8_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  0,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
+
 struct GEN8_3DSTATE_DRAWING_RECTANGLE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2176,7 +2225,7 @@ struct GEN8_3DSTATE_DRAWING_RECTANGLE {
 
 static inline void
 GEN8_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN8_3DSTATE_DRAWING_RECTANGLE * restrict values)
+                                    const struct GEN8_3DSTATE_DRAWING_RECTANGLE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2206,7 +2255,6 @@ GEN8_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_DS_length 0x00000009
 #define GEN8_3DSTATE_DS_length_bias 0x00000002
 #define GEN8_3DSTATE_DS_header                  \
    .CommandType          =  3,                  \
@@ -2215,6 +2263,8 @@ GEN8_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 29,                  \
    .DwordLength          =  7
 
+#define GEN8_3DSTATE_DS_length 0x00000009
+
 struct GEN8_3DSTATE_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2241,20 +2291,20 @@ struct GEN8_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;
    uint64_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     DispatchGRFStartRegisterForURBData;
    uint32_t                                     PatchURBEntryReadLength;
    uint32_t                                     PatchURBEntryReadOffset;
    uint32_t                                     MaximumNumberofThreads;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     SIMD8DispatchEnable;
-   uint32_t                                     ComputeWCoordinateEnable;
-   uint32_t                                     CacheDisable;
-   uint32_t                                     FunctionEnable;
+   bool                                         StatisticsEnable;
+   bool                                         SIMD8DispatchEnable;
+   bool                                         ComputeWCoordinateEnable;
+   bool                                         CacheDisable;
+   bool                                         FunctionEnable;
    uint32_t                                     VertexURBEntryOutputReadOffset;
    uint32_t                                     VertexURBEntryOutputLength;
    uint32_t                                     UserClipDistanceClipTestEnableBitmask;
@@ -2263,7 +2313,7 @@ struct GEN8_3DSTATE_DS {
 
 static inline void
 GEN8_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_DS * restrict values)
+                     const struct GEN8_3DSTATE_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2333,6 +2383,10 @@ GEN8_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 55
 
+#define GEN8_3DSTATE_GATHER_CONSTANT_DS_length 0x00000000
+
+#define GEN8_GATHER_CONSTANT_ENTRY_length 0x00000001
+
 struct GEN8_GATHER_CONSTANT_ENTRY {
    uint32_t                                     ConstantBufferOffset;
    uint32_t                                     ChannelMask;
@@ -2341,7 +2395,7 @@ struct GEN8_GATHER_CONSTANT_ENTRY {
 
 static inline void
 GEN8_GATHER_CONSTANT_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN8_GATHER_CONSTANT_ENTRY * restrict values)
+                                const struct GEN8_GATHER_CONSTANT_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2362,13 +2416,13 @@ struct GEN8_3DSTATE_GATHER_CONSTANT_DS {
    uint32_t                                     ConstantBufferValid;
    uint32_t                                     ConstantBufferBindingTableBlock;
    uint32_t                                     GatherBufferOffset;
-   uint32_t                                     ConstantBufferDx9GenerateStall;
+   bool                                         ConstantBufferDx9GenerateStall;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_3DSTATE_GATHER_CONSTANT_DS * restrict values)
+                                     const struct GEN8_3DSTATE_GATHER_CONSTANT_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2400,6 +2454,8 @@ GEN8_3DSTATE_GATHER_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 53
 
+#define GEN8_3DSTATE_GATHER_CONSTANT_GS_length 0x00000000
+
 struct GEN8_3DSTATE_GATHER_CONSTANT_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2409,13 +2465,13 @@ struct GEN8_3DSTATE_GATHER_CONSTANT_GS {
    uint32_t                                     ConstantBufferValid;
    uint32_t                                     ConstantBufferBindingTableBlock;
    uint32_t                                     GatherBufferOffset;
-   uint32_t                                     ConstantBufferDx9GenerateStall;
+   bool                                         ConstantBufferDx9GenerateStall;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_3DSTATE_GATHER_CONSTANT_GS * restrict values)
+                                     const struct GEN8_3DSTATE_GATHER_CONSTANT_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2447,6 +2503,8 @@ GEN8_3DSTATE_GATHER_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 54
 
+#define GEN8_3DSTATE_GATHER_CONSTANT_HS_length 0x00000000
+
 struct GEN8_3DSTATE_GATHER_CONSTANT_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2456,13 +2514,13 @@ struct GEN8_3DSTATE_GATHER_CONSTANT_HS {
    uint32_t                                     ConstantBufferValid;
    uint32_t                                     ConstantBufferBindingTableBlock;
    uint32_t                                     GatherBufferOffset;
-   uint32_t                                     ConstantBufferDx9GenerateStall;
+   bool                                         ConstantBufferDx9GenerateStall;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_3DSTATE_GATHER_CONSTANT_HS * restrict values)
+                                     const struct GEN8_3DSTATE_GATHER_CONSTANT_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2494,6 +2552,8 @@ GEN8_3DSTATE_GATHER_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 56
 
+#define GEN8_3DSTATE_GATHER_CONSTANT_PS_length 0x00000000
+
 struct GEN8_3DSTATE_GATHER_CONSTANT_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2503,14 +2563,14 @@ struct GEN8_3DSTATE_GATHER_CONSTANT_PS {
    uint32_t                                     ConstantBufferValid;
    uint32_t                                     ConstantBufferBindingTableBlock;
    uint32_t                                     GatherBufferOffset;
-   uint32_t                                     ConstantBufferDx9GenerateStall;
-   uint32_t                                     ConstantBufferDx9Enable;
+   bool                                         ConstantBufferDx9GenerateStall;
+   bool                                         ConstantBufferDx9Enable;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_3DSTATE_GATHER_CONSTANT_PS * restrict values)
+                                     const struct GEN8_3DSTATE_GATHER_CONSTANT_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2543,6 +2603,8 @@ GEN8_3DSTATE_GATHER_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 52
 
+#define GEN8_3DSTATE_GATHER_CONSTANT_VS_length 0x00000000
+
 struct GEN8_3DSTATE_GATHER_CONSTANT_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2552,14 +2614,14 @@ struct GEN8_3DSTATE_GATHER_CONSTANT_VS {
    uint32_t                                     ConstantBufferValid;
    uint32_t                                     ConstantBufferBindingTableBlock;
    uint32_t                                     GatherBufferOffset;
-   uint32_t                                     ConstantBufferDx9GenerateStall;
-   uint32_t                                     ConstantBufferDx9Enable;
+   bool                                         ConstantBufferDx9GenerateStall;
+   bool                                         ConstantBufferDx9Enable;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_3DSTATE_GATHER_CONSTANT_VS * restrict values)
+                                     const struct GEN8_3DSTATE_GATHER_CONSTANT_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2585,7 +2647,6 @@ GEN8_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_3DSTATE_GATHER_POOL_ALLOC_length 0x00000004
 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_length_bias 0x00000002
 #define GEN8_3DSTATE_GATHER_POOL_ALLOC_header   \
    .CommandType          =  3,                  \
@@ -2594,6 +2655,8 @@ GEN8_3DSTATE_GATHER_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 26,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_GATHER_POOL_ALLOC_length 0x00000004
+
 struct GEN8_3DSTATE_GATHER_POOL_ALLOC {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2601,14 +2664,14 @@ struct GEN8_3DSTATE_GATHER_POOL_ALLOC {
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
    __gen_address_type                           GatherPoolBaseAddress;
-   uint32_t                                     GatherPoolEnable;
+   bool                                         GatherPoolEnable;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      MemoryObjectControlState;
    uint32_t                                     GatherPoolBufferSize;
 };
 
 static inline void
 GEN8_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN8_3DSTATE_GATHER_POOL_ALLOC * restrict values)
+                                    const struct GEN8_3DSTATE_GATHER_POOL_ALLOC * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2639,7 +2702,6 @@ GEN8_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_GS_length 0x0000000a
 #define GEN8_3DSTATE_GS_length_bias 0x00000002
 #define GEN8_3DSTATE_GS_header                  \
    .CommandType          =  3,                  \
@@ -2648,6 +2710,8 @@ GEN8_3DSTATE_GATHER_POOL_ALLOC_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 17,                  \
    .DwordLength          =  8
 
+#define GEN8_3DSTATE_GS_length 0x0000000a
+
 struct GEN8_3DSTATE_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2672,17 +2736,17 @@ struct GEN8_3DSTATE_GS {
 #define     IEEE754                                            0
 #define     Alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     AccessesUAV;
-   uint32_t                                     MaskStackExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         AccessesUAV;
+   bool                                         MaskStackExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     ExpectedVertexCount;
    uint64_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;
@@ -2694,19 +2758,19 @@ struct GEN8_3DSTATE_GS {
 #define     DispatchModeDualObject                             2
 #define     DispatchModeSIMD8                                  3
    uint32_t                                     DispatchMode;
-   uint32_t                                     StatisticsEnable;
+   bool                                         StatisticsEnable;
    uint32_t                                     InvocationsIncrementValue;
-   uint32_t                                     IncludePrimitiveID;
+   bool                                         IncludePrimitiveID;
    uint32_t                                     Hint;
 #define     LEADING                                            0
 #define     TRAILING                                           1
    uint32_t                                     ReorderMode;
-   uint32_t                                     DiscardAdjacency;
-   uint32_t                                     Enable;
+   bool                                         DiscardAdjacency;
+   bool                                         Enable;
 #define     CUT                                                0
 #define     SID                                                1
    uint32_t                                     ControlDataFormat;
-   uint32_t                                     StaticOutput;
+   bool                                         StaticOutput;
    uint32_t                                     StaticOutputVertexCount;
    uint32_t                                     VertexURBEntryOutputReadOffset;
    uint32_t                                     VertexURBEntryOutputLength;
@@ -2716,7 +2780,7 @@ struct GEN8_3DSTATE_GS {
 
 static inline void
 GEN8_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_GS * restrict values)
+                     const struct GEN8_3DSTATE_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2796,7 +2860,6 @@ GEN8_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000005
 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
 #define GEN8_3DSTATE_HIER_DEPTH_BUFFER_header   \
    .CommandType          =  3,                  \
@@ -2805,6 +2868,8 @@ GEN8_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  7,                  \
    .DwordLength          =  3
 
+#define GEN8_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000005
+
 struct GEN8_3DSTATE_HIER_DEPTH_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2819,7 +2884,7 @@ struct GEN8_3DSTATE_HIER_DEPTH_BUFFER {
 
 static inline void
 GEN8_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN8_3DSTATE_HIER_DEPTH_BUFFER * restrict values)
+                                    const struct GEN8_3DSTATE_HIER_DEPTH_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2853,7 +2918,6 @@ GEN8_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_HS_length 0x00000009
 #define GEN8_3DSTATE_HS_length_bias 0x00000002
 #define GEN8_3DSTATE_HS_header                  \
    .CommandType          =  3,                  \
@@ -2862,6 +2926,8 @@ GEN8_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 27,                  \
    .DwordLength          =  7
 
+#define GEN8_3DSTATE_HS_length 0x00000009
+
 struct GEN8_3DSTATE_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2881,21 +2947,21 @@ struct GEN8_3DSTATE_HS {
 #define     IEEE754                                            0
 #define     alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
-   uint32_t                                     Enable;
-   uint32_t                                     StatisticsEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
+   bool                                         Enable;
+   bool                                         StatisticsEnable;
    uint32_t                                     MaximumNumberofThreads;
    uint32_t                                     InstanceCount;
    uint64_t                                     KernelStartPointer;
    uint64_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
-   uint32_t                                     SingleProgramFlow;
+   bool                                         SingleProgramFlow;
 #define     Dmask                                              0
 #define     Vmask                                              1
    uint32_t                                     VectorMaskEnable;
-   uint32_t                                     AccessesUAV;
-   uint32_t                                     IncludeVertexHandles;
+   bool                                         AccessesUAV;
+   bool                                         IncludeVertexHandles;
    uint32_t                                     DispatchGRFStartRegisterForURBData;
    uint32_t                                     VertexURBEntryReadLength;
    uint32_t                                     VertexURBEntryReadOffset;
@@ -2903,7 +2969,7 @@ struct GEN8_3DSTATE_HS {
 
 static inline void
 GEN8_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_HS * restrict values)
+                     const struct GEN8_3DSTATE_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2961,7 +3027,6 @@ GEN8_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_INDEX_BUFFER_length 0x00000005
 #define GEN8_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
 #define GEN8_3DSTATE_INDEX_BUFFER_header        \
    .CommandType          =  3,                  \
@@ -2970,6 +3035,8 @@ GEN8_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 10,                  \
    .DwordLength          =  3
 
+#define GEN8_3DSTATE_INDEX_BUFFER_length 0x00000005
+
 struct GEN8_3DSTATE_INDEX_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2987,7 +3054,7 @@ struct GEN8_3DSTATE_INDEX_BUFFER {
 
 static inline void
 GEN8_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_3DSTATE_INDEX_BUFFER * restrict values)
+                               const struct GEN8_3DSTATE_INDEX_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3021,7 +3088,6 @@ GEN8_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_LINE_STIPPLE_length 0x00000003
 #define GEN8_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
 #define GEN8_3DSTATE_LINE_STIPPLE_header        \
    .CommandType          =  3,                  \
@@ -3030,13 +3096,15 @@ GEN8_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  8,                  \
    .DwordLength          =  1
 
+#define GEN8_3DSTATE_LINE_STIPPLE_length 0x00000003
+
 struct GEN8_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;
@@ -3046,7 +3114,7 @@ struct GEN8_3DSTATE_LINE_STIPPLE {
 
 static inline void
 GEN8_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_3DSTATE_LINE_STIPPLE * restrict values)
+                               const struct GEN8_3DSTATE_LINE_STIPPLE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3072,7 +3140,6 @@ GEN8_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_MONOFILTER_SIZE_length 0x00000002
 #define GEN8_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
 #define GEN8_3DSTATE_MONOFILTER_SIZE_header     \
    .CommandType          =  3,                  \
@@ -3081,6 +3148,8 @@ GEN8_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 17,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_MONOFILTER_SIZE_length 0x00000002
+
 struct GEN8_3DSTATE_MONOFILTER_SIZE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3093,7 +3162,7 @@ struct GEN8_3DSTATE_MONOFILTER_SIZE {
 
 static inline void
 GEN8_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst,
-                                 const struct GEN8_3DSTATE_MONOFILTER_SIZE * restrict values)
+                                  const struct GEN8_3DSTATE_MONOFILTER_SIZE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3112,7 +3181,6 @@ GEN8_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_MULTISAMPLE_length 0x00000002
 #define GEN8_3DSTATE_MULTISAMPLE_length_bias 0x00000002
 #define GEN8_3DSTATE_MULTISAMPLE_header         \
    .CommandType          =  3,                  \
@@ -3121,6 +3189,8 @@ GEN8_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 13,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_MULTISAMPLE_length 0x00000002
+
 struct GEN8_3DSTATE_MULTISAMPLE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3136,7 +3206,7 @@ struct GEN8_3DSTATE_MULTISAMPLE {
 
 static inline void
 GEN8_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_MULTISAMPLE * restrict values)
+                              const struct GEN8_3DSTATE_MULTISAMPLE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3156,7 +3226,6 @@ GEN8_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
 #define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_header \
    .CommandType          =  3,                  \
@@ -3165,6 +3234,8 @@ GEN8_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  6,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
+
 struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3177,7 +3248,7 @@ struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET {
 
 static inline void
 GEN8_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst,
-                                     const struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET * restrict values)
+                                      const struct GEN8_3DSTATE_POLY_STIPPLE_OFFSET * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3196,7 +3267,6 @@ GEN8_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst
 
 }
 
-#define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
 #define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_header\
    .CommandType          =  3,                  \
@@ -3205,18 +3275,20 @@ GEN8_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst
    ._3DCommandSubOpcode  =  7,                  \
    .DwordLength          = 31
 
+#define GEN8_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
+
 struct GEN8_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
 GEN8_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst,
-                                      const struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN * restrict values)
+                                       const struct GEN8_3DSTATE_POLY_STIPPLE_PATTERN * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3228,13 +3300,14 @@ GEN8_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict ds
       __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 GEN8_3DSTATE_PS_length 0x0000000c
 #define GEN8_3DSTATE_PS_length_bias 0x00000002
 #define GEN8_3DSTATE_PS_header                  \
    .CommandType          =  3,                  \
@@ -3243,6 +3316,8 @@ GEN8_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict ds
    ._3DCommandSubOpcode  = 32,                  \
    .DwordLength          = 10
 
+#define GEN8_3DSTATE_PS_length 0x0000000c
+
 struct GEN8_3DSTATE_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3277,22 +3352,22 @@ struct GEN8_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;
    uint64_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     MaximumNumberofThreadsPerPSD;
-   uint32_t                                     PushConstantEnable;
-   uint32_t                                     RenderTargetFastClearEnable;
-   uint32_t                                     RenderTargetResolveEnable;
+   bool                                         PushConstantEnable;
+   bool                                         RenderTargetFastClearEnable;
+   bool                                         RenderTargetResolveEnable;
 #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;
@@ -3302,7 +3377,7 @@ struct GEN8_3DSTATE_PS {
 
 static inline void
 GEN8_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_PS * restrict values)
+                     const struct GEN8_3DSTATE_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3376,7 +3451,6 @@ GEN8_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_PS_BLEND_length 0x00000002
 #define GEN8_3DSTATE_PS_BLEND_length_bias 0x00000002
 #define GEN8_3DSTATE_PS_BLEND_header            \
    .CommandType          =  3,                  \
@@ -3385,26 +3459,28 @@ GEN8_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 77,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PS_BLEND_length 0x00000002
+
 struct GEN8_3DSTATE_PS_BLEND {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     AlphaToCoverageEnable;
-   uint32_t                                     HasWriteableRT;
-   uint32_t                                     ColorBufferBlendEnable;
+   bool                                         AlphaToCoverageEnable;
+   bool                                         HasWriteableRT;
+   bool                                         ColorBufferBlendEnable;
    uint32_t                                     SourceAlphaBlendFactor;
    uint32_t                                     DestinationAlphaBlendFactor;
    uint32_t                                     SourceBlendFactor;
    uint32_t                                     DestinationBlendFactor;
-   uint32_t                                     AlphaTestEnable;
-   uint32_t                                     IndependentAlphaBlendEnable;
+   bool                                         AlphaTestEnable;
+   bool                                         IndependentAlphaBlendEnable;
 };
 
 static inline void
 GEN8_3DSTATE_PS_BLEND_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_3DSTATE_PS_BLEND * restrict values)
+                           const struct GEN8_3DSTATE_PS_BLEND * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3430,7 +3506,6 @@ GEN8_3DSTATE_PS_BLEND_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_PS_EXTRA_length 0x00000002
 #define GEN8_3DSTATE_PS_EXTRA_length_bias 0x00000002
 #define GEN8_3DSTATE_PS_EXTRA_header            \
    .CommandType          =  3,                  \
@@ -3439,35 +3514,37 @@ GEN8_3DSTATE_PS_BLEND_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 79,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PS_EXTRA_length 0x00000002
+
 struct GEN8_3DSTATE_PS_EXTRA {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     PixelShaderValid;
-   uint32_t                                     PixelShaderDoesnotwritetoRT;
-   uint32_t                                     oMaskPresenttoRenderTarget;
-   uint32_t                                     PixelShaderKillsPixel;
+   bool                                         PixelShaderValid;
+   bool                                         PixelShaderDoesnotwritetoRT;
+   bool                                         oMaskPresenttoRenderTarget;
+   bool                                         PixelShaderKillsPixel;
 #define     PSCDEPTH_OFF                                       0
 #define     PSCDEPTH_ON                                        1
 #define     PSCDEPTH_ON_GE                                     2
 #define     PSCDEPTH_ON_LE                                     3
    uint32_t                                     PixelShaderComputedDepthMode;
-   uint32_t                                     ForceComputedDepth;
-   uint32_t                                     PixelShaderUsesSourceDepth;
-   uint32_t                                     PixelShaderUsesSourceW;
+   bool                                         ForceComputedDepth;
+   bool                                         PixelShaderUsesSourceDepth;
+   bool                                         PixelShaderUsesSourceW;
    uint32_t                                     Removed;
-   uint32_t                                     AttributeEnable;
-   uint32_t                                     PixelShaderDisablesAlphaToCoverage;
-   uint32_t                                     PixelShaderIsPerSample;
-   uint32_t                                     PixelShaderHasUAV;
-   uint32_t                                     PixelShaderUsesInputCoverageMask;
+   bool                                         AttributeEnable;
+   bool                                         PixelShaderDisablesAlphaToCoverage;
+   bool                                         PixelShaderIsPerSample;
+   bool                                         PixelShaderHasUAV;
+   bool                                         PixelShaderUsesInputCoverageMask;
 };
 
 static inline void
 GEN8_3DSTATE_PS_EXTRA_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_3DSTATE_PS_EXTRA * restrict values)
+                           const struct GEN8_3DSTATE_PS_EXTRA * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3498,7 +3575,6 @@ GEN8_3DSTATE_PS_EXTRA_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
    .CommandType          =  3,                  \
@@ -3507,6 +3583,8 @@ GEN8_3DSTATE_PS_EXTRA_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 20,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
+
 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3519,7 +3597,7 @@ struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS {
 
 static inline void
 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS * restrict values)
+                                         const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3538,7 +3616,6 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
    .CommandType          =  3,                  \
@@ -3547,6 +3624,8 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 21,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
+
 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3559,7 +3638,7 @@ struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS {
 
 static inline void
 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS * restrict values)
+                                         const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3578,7 +3657,6 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
    .CommandType          =  3,                  \
@@ -3587,6 +3665,8 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 19,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
+
 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3599,7 +3679,7 @@ struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS {
 
 static inline void
 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS * restrict values)
+                                         const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3618,7 +3698,6 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
    .CommandType          =  3,                  \
@@ -3627,6 +3706,8 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 22,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
+
 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3639,7 +3720,7 @@ struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS {
 
 static inline void
 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS * restrict values)
+                                         const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3658,7 +3739,6 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
 #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
    .CommandType          =  3,                  \
@@ -3667,6 +3747,8 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 18,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
+
 struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3679,7 +3761,7 @@ struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS {
 
 static inline void
 GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS * restrict values)
+                                         const struct GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3698,7 +3780,6 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN8_3DSTATE_RASTER_length 0x00000005
 #define GEN8_3DSTATE_RASTER_length_bias 0x00000002
 #define GEN8_3DSTATE_RASTER_header              \
    .CommandType          =  3,                  \
@@ -3707,6 +3788,8 @@ GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 80,                  \
    .DwordLength          =  3
 
+#define GEN8_3DSTATE_RASTER_length 0x00000005
+
 struct GEN8_3DSTATE_RASTER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3735,16 +3818,16 @@ struct GEN8_3DSTATE_RASTER {
 #define     Normal                                             0
 #define     Force                                              1
    uint32_t                                     ForceMultisampling;
-   uint32_t                                     SmoothPointEnable;
-   uint32_t                                     DXMultisampleRasterizationEnable;
+   bool                                         SmoothPointEnable;
+   bool                                         DXMultisampleRasterizationEnable;
 #define     MSRASTMODE_OFF_PIXEL                               0
 #define     MSRASTMODE_OFF_PATTERN                             1
 #define     MSRASTMODE_ON_PIXEL                                2
 #define     MSRASTMODE_ON_PATTERN                              3
    uint32_t                                     DXMultisampleRasterizationMode;
-   uint32_t                                     GlobalDepthOffsetEnableSolid;
-   uint32_t                                     GlobalDepthOffsetEnableWireframe;
-   uint32_t                                     GlobalDepthOffsetEnablePoint;
+   bool                                         GlobalDepthOffsetEnableSolid;
+   bool                                         GlobalDepthOffsetEnableWireframe;
+   bool                                         GlobalDepthOffsetEnablePoint;
 #define     RASTER_SOLID                                       0
 #define     RASTER_WIREFRAME                                   1
 #define     RASTER_POINT                                       2
@@ -3753,9 +3836,9 @@ struct GEN8_3DSTATE_RASTER {
 #define     RASTER_WIREFRAME                                   1
 #define     RASTER_POINT                                       2
    uint32_t                                     BackFaceFillMode;
-   uint32_t                                     AntialiasingEnable;
-   uint32_t                                     ScissorRectangleEnable;
-   uint32_t                                     ViewportZClipTestEnable;
+   bool                                         AntialiasingEnable;
+   bool                                         ScissorRectangleEnable;
+   bool                                         ViewportZClipTestEnable;
    float                                        GlobalDepthOffsetConstant;
    float                                        GlobalDepthOffsetScale;
    float                                        GlobalDepthOffsetClamp;
@@ -3763,7 +3846,7 @@ struct GEN8_3DSTATE_RASTER {
 
 static inline void
 GEN8_3DSTATE_RASTER_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_3DSTATE_RASTER * restrict values)
+                         const struct GEN8_3DSTATE_RASTER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3815,6 +3898,10 @@ GEN8_3DSTATE_RASTER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  =  2
 
+#define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000
+
+#define GEN8_PALETTE_ENTRY_length 0x00000001
+
 struct GEN8_PALETTE_ENTRY {
    uint32_t                                     Alpha;
    uint32_t                                     Red;
@@ -3824,7 +3911,7 @@ struct GEN8_PALETTE_ENTRY {
 
 static inline void
 GEN8_PALETTE_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN8_PALETTE_ENTRY * restrict values)
+                        const struct GEN8_PALETTE_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3848,7 +3935,7 @@ struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0 {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0 * restrict values)
+                                        const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0 * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3870,6 +3957,8 @@ GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data *data, void * restrict d
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  = 12
 
+#define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000
+
 struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1 {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3881,7 +3970,7 @@ struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1 {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1 * restrict values)
+                                        const struct GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1 * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3896,7 +3985,6 @@ GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict d
    /* variable length fields follow */
 }
 
-#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
    .CommandType          =  3,                  \
@@ -3905,6 +3993,8 @@ GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict d
    ._3DCommandSubOpcode  = 45,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
+
 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3916,7 +4006,7 @@ struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS * restrict values)
+                                            const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3934,7 +4024,6 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
    .CommandType          =  3,                  \
@@ -3943,6 +4032,8 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 46,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
+
 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3954,7 +4045,7 @@ struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS * restrict values)
+                                            const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3972,7 +4063,6 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
    .CommandType          =  3,                  \
@@ -3981,6 +4071,8 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 44,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
+
 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3992,7 +4084,7 @@ struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS * restrict values)
+                                            const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4010,7 +4102,6 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
    .CommandType          =  3,                  \
@@ -4019,6 +4110,8 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 47,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
+
 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4030,7 +4123,7 @@ struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS * restrict values)
+                                            const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4048,7 +4141,6 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
    .CommandType          =  3,                  \
@@ -4057,6 +4149,8 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 43,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
+
 struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4068,7 +4162,7 @@ struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS {
 
 static inline void
 GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS * restrict values)
+                                            const struct GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4086,7 +4180,6 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN8_3DSTATE_SAMPLE_MASK_length 0x00000002
 #define GEN8_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLE_MASK_header         \
    .CommandType          =  3,                  \
@@ -4095,6 +4188,8 @@ GEN8_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 24,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SAMPLE_MASK_length 0x00000002
+
 struct GEN8_3DSTATE_SAMPLE_MASK {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4106,7 +4201,7 @@ struct GEN8_3DSTATE_SAMPLE_MASK {
 
 static inline void
 GEN8_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_SAMPLE_MASK * restrict values)
+                              const struct GEN8_3DSTATE_SAMPLE_MASK * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4124,7 +4219,6 @@ GEN8_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_SAMPLE_PATTERN_length 0x00000009
 #define GEN8_3DSTATE_SAMPLE_PATTERN_length_bias 0x00000002
 #define GEN8_3DSTATE_SAMPLE_PATTERN_header      \
    .CommandType          =  3,                  \
@@ -4133,6 +4227,8 @@ GEN8_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 28,                  \
    .DwordLength          =  7
 
+#define GEN8_3DSTATE_SAMPLE_PATTERN_length 0x00000009
+
 struct GEN8_3DSTATE_SAMPLE_PATTERN {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4173,7 +4269,7 @@ struct GEN8_3DSTATE_SAMPLE_PATTERN {
 
 static inline void
 GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst,
-                                const struct GEN8_3DSTATE_SAMPLE_PATTERN * restrict values)
+                                 const struct GEN8_3DSTATE_SAMPLE_PATTERN * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4185,8 +4281,10 @@ GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->DwordLength, 0, 7) |
       0;
 
-   dw[1] =
-      0;
+   for (uint32_t i = 0, j = 1; i < 4; i += 1, j++) {
+      dw[j] =
+         0;
+   }
 
    dw[5] =
       __gen_field(values->_8xSample7XOffset * (1 << 4), 28, 31) |
@@ -4232,7 +4330,6 @@ GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_SBE_length 0x00000004
 #define GEN8_3DSTATE_SBE_length_bias 0x00000002
 #define GEN8_3DSTATE_SBE_header                 \
    .CommandType          =  3,                  \
@@ -4241,23 +4338,25 @@ GEN8_3DSTATE_SAMPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 31,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_SBE_length 0x00000004
+
 struct GEN8_3DSTATE_SBE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     ForceVertexURBEntryReadLength;
-   uint32_t                                     ForceVertexURBEntryReadOffset;
+   bool                                         ForceVertexURBEntryReadLength;
+   bool                                         ForceVertexURBEntryReadOffset;
    uint32_t                                     NumberofSFOutputAttributes;
-   uint32_t                                     AttributeSwizzleEnable;
+   bool                                         AttributeSwizzleEnable;
 #define     UPPERLEFT                                          0
 #define     LOWERLEFT                                          1
    uint32_t                                     PointSpriteTextureCoordinateOrigin;
-   uint32_t                                     PrimitiveIDOverrideComponentW;
-   uint32_t                                     PrimitiveIDOverrideComponentZ;
-   uint32_t                                     PrimitiveIDOverrideComponentY;
-   uint32_t                                     PrimitiveIDOverrideComponentX;
+   bool                                         PrimitiveIDOverrideComponentW;
+   bool                                         PrimitiveIDOverrideComponentZ;
+   bool                                         PrimitiveIDOverrideComponentY;
+   bool                                         PrimitiveIDOverrideComponentX;
    uint32_t                                     VertexURBEntryReadLength;
    uint32_t                                     VertexURBEntryReadOffset;
    uint32_t                                     PrimitiveIDOverrideAttributeSelect;
@@ -4267,7 +4366,7 @@ struct GEN8_3DSTATE_SBE {
 
 static inline void
 GEN8_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN8_3DSTATE_SBE * restrict values)
+                      const struct GEN8_3DSTATE_SBE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4304,7 +4403,6 @@ GEN8_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_SBE_SWIZ_length 0x0000000b
 #define GEN8_3DSTATE_SBE_SWIZ_length_bias 0x00000002
 #define GEN8_3DSTATE_SBE_SWIZ_header            \
    .CommandType          =  3,                  \
@@ -4313,11 +4411,15 @@ GEN8_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 81,                  \
    .DwordLength          =  9
 
+#define GEN8_3DSTATE_SBE_SWIZ_length 0x0000000b
+
+#define GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
+
 struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL {
-   uint32_t                                     ComponentOverrideW;
-   uint32_t                                     ComponentOverrideZ;
-   uint32_t                                     ComponentOverrideY;
-   uint32_t                                     ComponentOverrideX;
+   bool                                         ComponentOverrideW;
+   bool                                         ComponentOverrideZ;
+   bool                                         ComponentOverrideY;
+   bool                                         ComponentOverrideX;
    uint32_t                                     SwizzleControlMode;
 #define     CONST_0000                                         0
 #define     CONST_0001_FLOAT                                   1
@@ -4334,7 +4436,7 @@ struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL {
 
 static inline void
 GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL * restrict values)
+                                     const struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4357,28 +4459,13 @@ struct GEN8_3DSTATE_SBE_SWIZ {
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL       Attribute;
-   uint32_t                                     Attribute15WrapShortestEnables;
-   uint32_t                                     Attribute14WrapShortestEnables;
-   uint32_t                                     Attribute13WrapShortestEnables;
-   uint32_t                                     Attribute12WrapShortestEnables;
-   uint32_t                                     Attribute11WrapShortestEnables;
-   uint32_t                                     Attribute10WrapShortestEnables;
-   uint32_t                                     Attribute09WrapShortestEnables;
-   uint32_t                                     Attribute08WrapShortestEnables;
-   uint32_t                                     Attribute07WrapShortestEnables;
-   uint32_t                                     Attribute06WrapShortestEnables;
-   uint32_t                                     Attribute05WrapShortestEnables;
-   uint32_t                                     Attribute04WrapShortestEnables;
-   uint32_t                                     Attribute03WrapShortestEnables;
-   uint32_t                                     Attribute02WrapShortestEnables;
-   uint32_t                                     Attribute01WrapShortestEnables;
-   uint32_t                                     Attribute00WrapShortestEnables;
+   struct GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL       Attribute[16];
+   uint32_t                                     AttributeWrapShortestEnables[16];
 };
 
 static inline void
 GEN8_3DSTATE_SBE_SWIZ_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_3DSTATE_SBE_SWIZ * restrict values)
+                           const struct GEN8_3DSTATE_SBE_SWIZ * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4390,37 +4477,32 @@ GEN8_3DSTATE_SBE_SWIZ_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->DwordLength, 0, 7) |
       0;
 
-   uint32_t dw_Attribute;
-   GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data, &dw_Attribute, &values->Attribute);
-   dw[1] =
-      __gen_field(dw_Attribute, 0, 15) |
-      0;
-
-   uint64_t qw9 =
-      __gen_field(values->Attribute15WrapShortestEnables, 60, 63) |
-      __gen_field(values->Attribute14WrapShortestEnables, 56, 59) |
-      __gen_field(values->Attribute13WrapShortestEnables, 52, 55) |
-      __gen_field(values->Attribute12WrapShortestEnables, 48, 51) |
-      __gen_field(values->Attribute11WrapShortestEnables, 44, 47) |
-      __gen_field(values->Attribute10WrapShortestEnables, 40, 43) |
-      __gen_field(values->Attribute09WrapShortestEnables, 36, 39) |
-      __gen_field(values->Attribute08WrapShortestEnables, 32, 35) |
-      __gen_field(values->Attribute07WrapShortestEnables, 28, 31) |
-      __gen_field(values->Attribute06WrapShortestEnables, 24, 27) |
-      __gen_field(values->Attribute05WrapShortestEnables, 20, 23) |
-      __gen_field(values->Attribute04WrapShortestEnables, 16, 19) |
-      __gen_field(values->Attribute03WrapShortestEnables, 12, 15) |
-      __gen_field(values->Attribute02WrapShortestEnables, 8, 11) |
-      __gen_field(values->Attribute01WrapShortestEnables, 4, 7) |
-      __gen_field(values->Attribute00WrapShortestEnables, 0, 3) |
-      0;
-
-   dw[9] = qw9;
-   dw[10] = qw9 >> 32;
+   for (uint32_t i = 0, j = 1; i < 16; i += 2, j++) {
+      uint32_t dw_Attribute0;
+      GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data, &dw_Attribute0, &values->Attribute[i + 0]);
+      uint32_t dw_Attribute1;
+      GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_pack(data, &dw_Attribute1, &values->Attribute[i + 1]);
+      dw[j] =
+         __gen_field(dw_Attribute0, 0, 15) |
+         __gen_field(dw_Attribute1, 16, 31) |
+         0;
+   }
+
+   for (uint32_t i = 0, j = 9; i < 16; i += 8, j++) {
+      dw[j] =
+         __gen_field(values->AttributeWrapShortestEnables[i + 0], 0, 3) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 1], 4, 7) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 2], 8, 11) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 3], 12, 15) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 4], 16, 19) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 5], 20, 23) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 6], 24, 27) |
+         __gen_field(values->AttributeWrapShortestEnables[i + 7], 28, 31) |
+         0;
+   }
 
 }
 
-#define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
 #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_header\
    .CommandType          =  3,                  \
@@ -4429,6 +4511,8 @@ GEN8_3DSTATE_SBE_SWIZ_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 15,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
+
 struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4440,7 +4524,7 @@ struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS {
 
 static inline void
 GEN8_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS * restrict values)
+                                         const struct GEN8_3DSTATE_SCISSOR_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4458,7 +4542,6 @@ GEN8_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN8_3DSTATE_SF_length 0x00000004
 #define GEN8_3DSTATE_SF_length_bias 0x00000002
 #define GEN8_3DSTATE_SF_header                  \
    .CommandType          =  3,                  \
@@ -4467,28 +4550,30 @@ GEN8_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 19,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_SF_length 0x00000004
+
 struct GEN8_3DSTATE_SF {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     LegacyGlobalDepthBiasEnable;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     ViewportTransformEnable;
+   bool                                         LegacyGlobalDepthBiasEnable;
+   bool                                         StatisticsEnable;
+   bool                                         ViewportTransformEnable;
    float                                        LineWidth;
 #define     _05pixels                                          0
 #define     _10pixels                                          1
 #define     _20pixels                                          2
 #define     _40pixels                                          3
    uint32_t                                     LineEndCapAntialiasingRegionWidth;
-   uint32_t                                     LastPixelEnable;
+   bool                                         LastPixelEnable;
    uint32_t                                     TriangleStripListProvokingVertexSelect;
    uint32_t                                     LineStripListProvokingVertexSelect;
    uint32_t                                     TriangleFanProvokingVertexSelect;
 #define     AALINEDISTANCE_TRUE                                1
    uint32_t                                     AALineDistanceMode;
-   uint32_t                                     SmoothPointEnable;
+   bool                                         SmoothPointEnable;
    uint32_t                                     VertexSubPixelPrecisionSelect;
 #define     Vertex                                             0
 #define     State                                              1
@@ -4498,7 +4583,7 @@ struct GEN8_3DSTATE_SF {
 
 static inline void
 GEN8_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_SF * restrict values)
+                     const struct GEN8_3DSTATE_SF * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4535,7 +4620,6 @@ GEN8_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_SO_BUFFER_length 0x00000008
 #define GEN8_3DSTATE_SO_BUFFER_length_bias 0x00000002
 #define GEN8_3DSTATE_SO_BUFFER_header           \
    .CommandType          =  3,                  \
@@ -4544,17 +4628,19 @@ GEN8_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 24,                  \
    .DwordLength          =  6
 
+#define GEN8_3DSTATE_SO_BUFFER_length 0x00000008
+
 struct GEN8_3DSTATE_SO_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     SOBufferEnable;
+   bool                                         SOBufferEnable;
    uint32_t                                     SOBufferIndex;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      SOBufferObjectControlState;
-   uint32_t                                     StreamOffsetWriteEnable;
-   uint32_t                                     StreamOutputBufferOffsetAddressEnable;
+   bool                                         StreamOffsetWriteEnable;
+   bool                                         StreamOutputBufferOffsetAddressEnable;
    __gen_address_type                           SurfaceBaseAddress;
    uint32_t                                     SurfaceSize;
    __gen_address_type                           StreamOutputBufferOffsetAddress;
@@ -4563,7 +4649,7 @@ struct GEN8_3DSTATE_SO_BUFFER {
 
 static inline void
 GEN8_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_3DSTATE_SO_BUFFER * restrict values)
+                            const struct GEN8_3DSTATE_SO_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4620,6 +4706,12 @@ GEN8_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  = 23
 
+#define GEN8_3DSTATE_SO_DECL_LIST_length 0x00000000
+
+#define GEN8_SO_DECL_ENTRY_length 0x00000002
+
+#define GEN8_SO_DECL_length 0x00000001
+
 struct GEN8_SO_DECL {
    uint32_t                                     OutputBufferSlot;
    uint32_t                                     HoleFlag;
@@ -4629,7 +4721,7 @@ struct GEN8_SO_DECL {
 
 static inline void
 GEN8_SO_DECL_pack(__gen_user_data *data, void * restrict dst,
-                 const struct GEN8_SO_DECL * restrict values)
+                  const struct GEN8_SO_DECL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4651,7 +4743,7 @@ struct GEN8_SO_DECL_ENTRY {
 
 static inline void
 GEN8_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN8_SO_DECL_ENTRY * restrict values)
+                        const struct GEN8_SO_DECL_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4694,7 +4786,7 @@ struct GEN8_3DSTATE_SO_DECL_LIST {
 
 static inline void
 GEN8_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_3DSTATE_SO_DECL_LIST * restrict values)
+                               const struct GEN8_3DSTATE_SO_DECL_LIST * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4723,7 +4815,6 @@ GEN8_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_3DSTATE_STENCIL_BUFFER_length 0x00000005
 #define GEN8_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
 #define GEN8_3DSTATE_STENCIL_BUFFER_header      \
    .CommandType          =  3,                  \
@@ -4732,7 +4823,9 @@ GEN8_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  6,                  \
    .DwordLength          =  3
 
-struct GEN8_3DSTATE_STENCIL_BUFFER {
+#define GEN8_3DSTATE_STENCIL_BUFFER_length 0x00000005
+
+struct GEN8_3DSTATE_STENCIL_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
@@ -4747,7 +4840,7 @@ struct GEN8_3DSTATE_STENCIL_BUFFER {
 
 static inline void
 GEN8_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                                const struct GEN8_3DSTATE_STENCIL_BUFFER * restrict values)
+                                 const struct GEN8_3DSTATE_STENCIL_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4782,7 +4875,6 @@ GEN8_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_STREAMOUT_length 0x00000005
 #define GEN8_3DSTATE_STREAMOUT_length_bias 0x00000002
 #define GEN8_3DSTATE_STREAMOUT_header           \
    .CommandType          =  3,                  \
@@ -4791,6 +4883,8 @@ GEN8_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 30,                  \
    .DwordLength          =  3
 
+#define GEN8_3DSTATE_STREAMOUT_length 0x00000005
+
 struct GEN8_3DSTATE_STREAMOUT {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4803,7 +4897,7 @@ struct GEN8_3DSTATE_STREAMOUT {
 #define     LEADING                                            0
 #define     TRAILING                                           1
    uint32_t                                     ReorderMode;
-   uint32_t                                     SOStatisticsEnable;
+   bool                                         SOStatisticsEnable;
 #define     Normal                                             0
 #define     Resreved                                           1
 #define     Force_Off                                          2
@@ -4825,7 +4919,7 @@ struct GEN8_3DSTATE_STREAMOUT {
 
 static inline void
 GEN8_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_3DSTATE_STREAMOUT * restrict values)
+                            const struct GEN8_3DSTATE_STREAMOUT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4869,7 +4963,6 @@ GEN8_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_TE_length 0x00000004
 #define GEN8_3DSTATE_TE_length_bias 0x00000002
 #define GEN8_3DSTATE_TE_header                  \
    .CommandType          =  3,                  \
@@ -4878,6 +4971,8 @@ GEN8_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 28,                  \
    .DwordLength          =  2
 
+#define GEN8_3DSTATE_TE_length 0x00000004
+
 struct GEN8_3DSTATE_TE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4889,9 +4984,9 @@ struct GEN8_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
@@ -4900,14 +4995,14 @@ struct GEN8_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
 GEN8_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_TE * restrict values)
+                     const struct GEN8_3DSTATE_TE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4937,7 +5032,6 @@ GEN8_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_URB_DS_length 0x00000002
 #define GEN8_3DSTATE_URB_DS_length_bias 0x00000002
 #define GEN8_3DSTATE_URB_DS_header              \
    .CommandType          =  3,                  \
@@ -4946,6 +5040,8 @@ GEN8_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 50,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_URB_DS_length 0x00000002
+
 struct GEN8_3DSTATE_URB_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -4959,7 +5055,7 @@ struct GEN8_3DSTATE_URB_DS {
 
 static inline void
 GEN8_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_3DSTATE_URB_DS * restrict values)
+                         const struct GEN8_3DSTATE_URB_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4979,7 +5075,6 @@ GEN8_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_URB_GS_length 0x00000002
 #define GEN8_3DSTATE_URB_GS_length_bias 0x00000002
 #define GEN8_3DSTATE_URB_GS_header              \
    .CommandType          =  3,                  \
@@ -4988,6 +5083,8 @@ GEN8_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 51,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_URB_GS_length 0x00000002
+
 struct GEN8_3DSTATE_URB_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5001,7 +5098,7 @@ struct GEN8_3DSTATE_URB_GS {
 
 static inline void
 GEN8_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_3DSTATE_URB_GS * restrict values)
+                         const struct GEN8_3DSTATE_URB_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5021,7 +5118,6 @@ GEN8_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_URB_HS_length 0x00000002
 #define GEN8_3DSTATE_URB_HS_length_bias 0x00000002
 #define GEN8_3DSTATE_URB_HS_header              \
    .CommandType          =  3,                  \
@@ -5030,6 +5126,8 @@ GEN8_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 49,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_URB_HS_length 0x00000002
+
 struct GEN8_3DSTATE_URB_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5043,7 +5141,7 @@ struct GEN8_3DSTATE_URB_HS {
 
 static inline void
 GEN8_3DSTATE_URB_HS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_3DSTATE_URB_HS * restrict values)
+                         const struct GEN8_3DSTATE_URB_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5070,11 +5168,15 @@ GEN8_3DSTATE_URB_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  =  8
 
+#define GEN8_3DSTATE_VERTEX_BUFFERS_length 0x00000000
+
+#define GEN8_VERTEX_BUFFER_STATE_length 0x00000004
+
 struct GEN8_VERTEX_BUFFER_STATE {
    uint32_t                                     VertexBufferIndex;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      MemoryObjectControlState;
    uint32_t                                     AddressModifyEnable;
-   uint32_t                                     NullVertexBuffer;
+   bool                                         NullVertexBuffer;
    uint32_t                                     BufferPitch;
    __gen_address_type                           BufferStartingAddress;
    uint32_t                                     BufferSize;
@@ -5082,7 +5184,7 @@ struct GEN8_VERTEX_BUFFER_STATE {
 
 static inline void
 GEN8_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_VERTEX_BUFFER_STATE * restrict values)
+                              const struct GEN8_VERTEX_BUFFER_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5122,7 +5224,7 @@ struct GEN8_3DSTATE_VERTEX_BUFFERS {
 
 static inline void
 GEN8_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data *data, void * restrict dst,
-                                const struct GEN8_3DSTATE_VERTEX_BUFFERS * restrict values)
+                                 const struct GEN8_3DSTATE_VERTEX_BUFFERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5144,11 +5246,15 @@ GEN8_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  =  9
 
+#define GEN8_3DSTATE_VERTEX_ELEMENTS_length 0x00000000
+
+#define GEN8_VERTEX_ELEMENT_STATE_length 0x00000002
+
 struct GEN8_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;
@@ -5158,7 +5264,7 @@ struct GEN8_VERTEX_ELEMENT_STATE {
 
 static inline void
 GEN8_VERTEX_ELEMENT_STATE_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_VERTEX_ELEMENT_STATE * restrict values)
+                               const struct GEN8_VERTEX_ELEMENT_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5190,7 +5296,7 @@ struct GEN8_3DSTATE_VERTEX_ELEMENTS {
 
 static inline void
 GEN8_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst,
-                                 const struct GEN8_3DSTATE_VERTEX_ELEMENTS * restrict values)
+                                  const struct GEN8_3DSTATE_VERTEX_ELEMENTS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5205,7 +5311,6 @@ GEN8_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_3DSTATE_VF_length 0x00000002
 #define GEN8_3DSTATE_VF_length_bias 0x00000002
 #define GEN8_3DSTATE_VF_header                  \
    .CommandType          =  3,                  \
@@ -5214,19 +5319,21 @@ GEN8_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 12,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_VF_length 0x00000002
+
 struct GEN8_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
 GEN8_3DSTATE_VF_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_VF * restrict values)
+                     const struct GEN8_3DSTATE_VF * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5245,7 +5352,6 @@ GEN8_3DSTATE_VF_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_VF_INSTANCING_length 0x00000003
 #define GEN8_3DSTATE_VF_INSTANCING_length_bias 0x00000002
 #define GEN8_3DSTATE_VF_INSTANCING_header       \
    .CommandType          =  3,                  \
@@ -5254,20 +5360,22 @@ GEN8_3DSTATE_VF_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 73,                  \
    .DwordLength          =  1
 
+#define GEN8_3DSTATE_VF_INSTANCING_length 0x00000003
+
 struct GEN8_3DSTATE_VF_INSTANCING {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     InstancingEnable;
+   bool                                         InstancingEnable;
    uint32_t                                     VertexElementIndex;
    uint32_t                                     InstanceDataStepRate;
 };
 
 static inline void
 GEN8_3DSTATE_VF_INSTANCING_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN8_3DSTATE_VF_INSTANCING * restrict values)
+                                const struct GEN8_3DSTATE_VF_INSTANCING * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5290,7 +5398,6 @@ GEN8_3DSTATE_VF_INSTANCING_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_VF_SGVS_length 0x00000002
 #define GEN8_3DSTATE_VF_SGVS_length_bias 0x00000002
 #define GEN8_3DSTATE_VF_SGVS_header             \
    .CommandType          =  3,                  \
@@ -5299,20 +5406,22 @@ GEN8_3DSTATE_VF_INSTANCING_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 74,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_VF_SGVS_length 0x00000002
+
 struct GEN8_3DSTATE_VF_SGVS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     InstanceIDEnable;
+   bool                                         InstanceIDEnable;
 #define     COMP_0                                             0
 #define     COMP_1                                             1
 #define     COMP_2                                             2
 #define     COMP_3                                             3
    uint32_t                                     InstanceIDComponentNumber;
    uint32_t                                     InstanceIDElementOffset;
-   uint32_t                                     VertexIDEnable;
+   bool                                         VertexIDEnable;
 #define     COMP_0                                             0
 #define     COMP_1                                             1
 #define     COMP_2                                             2
@@ -5323,7 +5432,7 @@ struct GEN8_3DSTATE_VF_SGVS {
 
 static inline void
 GEN8_3DSTATE_VF_SGVS_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN8_3DSTATE_VF_SGVS * restrict values)
+                          const struct GEN8_3DSTATE_VF_SGVS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5346,7 +5455,6 @@ GEN8_3DSTATE_VF_SGVS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_VF_STATISTICS_length 0x00000001
 #define GEN8_3DSTATE_VF_STATISTICS_length_bias 0x00000001
 #define GEN8_3DSTATE_VF_STATISTICS_header       \
    .CommandType          =  3,                  \
@@ -5354,17 +5462,19 @@ GEN8_3DSTATE_VF_SGVS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 11
 
+#define GEN8_3DSTATE_VF_STATISTICS_length 0x00000001
+
 struct GEN8_3DSTATE_VF_STATISTICS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
-   uint32_t                                     StatisticsEnable;
+   bool                                         StatisticsEnable;
 };
 
 static inline void
 GEN8_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN8_3DSTATE_VF_STATISTICS * restrict values)
+                                const struct GEN8_3DSTATE_VF_STATISTICS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5378,7 +5488,6 @@ GEN8_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_VF_TOPOLOGY_length 0x00000002
 #define GEN8_3DSTATE_VF_TOPOLOGY_length_bias 0x00000002
 #define GEN8_3DSTATE_VF_TOPOLOGY_header         \
    .CommandType          =  3,                  \
@@ -5387,6 +5496,8 @@ GEN8_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 75,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_VF_TOPOLOGY_length 0x00000002
+
 struct GEN8_3DSTATE_VF_TOPOLOGY {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5398,7 +5509,7 @@ struct GEN8_3DSTATE_VF_TOPOLOGY {
 
 static inline void
 GEN8_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_3DSTATE_VF_TOPOLOGY * restrict values)
+                              const struct GEN8_3DSTATE_VF_TOPOLOGY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5416,7 +5527,6 @@ GEN8_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
    .CommandType          =  3,                  \
@@ -5425,6 +5535,8 @@ GEN8_3DSTATE_VF_TOPOLOGY_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 35,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
+
 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5436,7 +5548,7 @@ struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC {
 
 static inline void
 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restrict dst,
-                                            const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC * restrict values)
+                                             const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5454,7 +5566,6 @@ GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restr
 
 }
 
-#define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
 #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
    .CommandType          =  3,                  \
@@ -5463,6 +5574,8 @@ GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restr
    ._3DCommandSubOpcode  = 33,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
+
 struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5474,7 +5587,7 @@ struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP {
 
 static inline void
 GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void * restrict dst,
-                                                 const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP * restrict values)
+                                                  const struct GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5492,7 +5605,6 @@ GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void *
 
 }
 
-#define GEN8_3DSTATE_WM_length 0x00000002
 #define GEN8_3DSTATE_WM_length_bias 0x00000002
 #define GEN8_3DSTATE_WM_header                  \
    .CommandType          =  3,                  \
@@ -5501,17 +5613,19 @@ GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void *
    ._3DCommandSubOpcode  = 20,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_WM_length 0x00000002
+
 struct GEN8_3DSTATE_WM {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     LegacyDepthBufferClearEnable;
-   uint32_t                                     LegacyDepthBufferResolveEnable;
-   uint32_t                                     LegacyHierarchicalDepthBufferResolveEnable;
-   uint32_t                                     LegacyDiamondLineRasterization;
+   bool                                         StatisticsEnable;
+   bool                                         LegacyDepthBufferClearEnable;
+   bool                                         LegacyDepthBufferResolveEnable;
+   bool                                         LegacyHierarchicalDepthBufferResolveEnable;
+   bool                                         LegacyDiamondLineRasterization;
 #define     NORMAL                                             0
 #define     PSEXEC                                             1
 #define     PREPS                                              2
@@ -5535,8 +5649,8 @@ struct GEN8_3DSTATE_WM {
 #define     _20pixels                                          2
 #define     _40pixels                                          3
    uint32_t                                     LineAntialiasingRegionWidth;
-   uint32_t                                     PolygonStippleEnable;
-   uint32_t                                     LineStippleEnable;
+   bool                                         PolygonStippleEnable;
+   bool                                         LineStippleEnable;
 #define     RASTRULE_UPPER_LEFT                                0
 #define     RASTRULE_UPPER_RIGHT                               1
    uint32_t                                     PointRasterizationRule;
@@ -5548,7 +5662,7 @@ struct GEN8_3DSTATE_WM {
 
 static inline void
 GEN8_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_3DSTATE_WM * restrict values)
+                     const struct GEN8_3DSTATE_WM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5580,7 +5694,6 @@ GEN8_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_WM_CHROMAKEY_length 0x00000002
 #define GEN8_3DSTATE_WM_CHROMAKEY_length_bias 0x00000002
 #define GEN8_3DSTATE_WM_CHROMAKEY_header        \
    .CommandType          =  3,                  \
@@ -5589,18 +5702,20 @@ GEN8_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 76,                  \
    .DwordLength          =  0
 
+#define GEN8_3DSTATE_WM_CHROMAKEY_length 0x00000002
+
 struct GEN8_3DSTATE_WM_CHROMAKEY {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     ChromaKeyKillEnable;
+   bool                                         ChromaKeyKillEnable;
 };
 
 static inline void
 GEN8_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_3DSTATE_WM_CHROMAKEY * restrict values)
+                               const struct GEN8_3DSTATE_WM_CHROMAKEY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5618,7 +5733,6 @@ GEN8_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_WM_DEPTH_STENCIL_length 0x00000003
 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_length_bias 0x00000002
 #define GEN8_3DSTATE_WM_DEPTH_STENCIL_header    \
    .CommandType          =  3,                  \
@@ -5627,6 +5741,8 @@ GEN8_3DSTATE_WM_CHROMAKEY_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 78,                  \
    .DwordLength          =  1
 
+#define GEN8_3DSTATE_WM_DEPTH_STENCIL_length 0x00000003
+
 struct GEN8_3DSTATE_WM_DEPTH_STENCIL {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5642,13 +5758,11 @@ struct GEN8_3DSTATE_WM_DEPTH_STENCIL {
    uint32_t                                     BackfaceStencilPassDepthPassOp;
    uint32_t                                     StencilTestFunction;
    uint32_t                                     DepthTestFunction;
-#define     False                                              0
-#define     True                                               1
-   uint32_t                                     DoubleSidedStencilEnable;
-   uint32_t                                     StencilTestEnable;
-   uint32_t                                     StencilBufferWriteEnable;
-   uint32_t                                     DepthTestEnable;
-   uint32_t                                     DepthBufferWriteEnable;
+   bool                                         DoubleSidedStencilEnable;
+   bool                                         StencilTestEnable;
+   bool                                         StencilBufferWriteEnable;
+   bool                                         DepthTestEnable;
+   bool                                         DepthBufferWriteEnable;
    uint32_t                                     StencilTestMask;
    uint32_t                                     StencilWriteMask;
    uint32_t                                     BackfaceStencilTestMask;
@@ -5657,7 +5771,7 @@ struct GEN8_3DSTATE_WM_DEPTH_STENCIL {
 
 static inline void
 GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data *data, void * restrict dst,
-                                  const struct GEN8_3DSTATE_WM_DEPTH_STENCIL * restrict values)
+                                   const struct GEN8_3DSTATE_WM_DEPTH_STENCIL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5695,7 +5809,6 @@ GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_WM_HZ_OP_length 0x00000005
 #define GEN8_3DSTATE_WM_HZ_OP_length_bias 0x00000002
 #define GEN8_3DSTATE_WM_HZ_OP_header            \
    .CommandType          =  3,                  \
@@ -5704,19 +5817,21 @@ GEN8_3DSTATE_WM_DEPTH_STENCIL_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 82,                  \
    .DwordLength          =  3
 
+#define GEN8_3DSTATE_WM_HZ_OP_length 0x00000005
+
 struct GEN8_3DSTATE_WM_HZ_OP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     StencilBufferClearEnable;
-   uint32_t                                     DepthBufferClearEnable;
-   uint32_t                                     ScissorRectangleEnable;
-   uint32_t                                     DepthBufferResolveEnable;
-   uint32_t                                     HierarchicalDepthBufferResolveEnable;
+   bool                                         StencilBufferClearEnable;
+   bool                                         DepthBufferClearEnable;
+   bool                                         ScissorRectangleEnable;
+   bool                                         DepthBufferResolveEnable;
+   bool                                         HierarchicalDepthBufferResolveEnable;
    uint32_t                                     PixelPositionOffsetEnable;
-   uint32_t                                     FullSurfaceDepthClear;
+   bool                                         FullSurfaceDepthClear;
    uint32_t                                     StencilClearValue;
    uint32_t                                     NumberofMultisamples;
    uint32_t                                     ClearRectangleYMin;
@@ -5728,7 +5843,7 @@ struct GEN8_3DSTATE_WM_HZ_OP {
 
 static inline void
 GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_3DSTATE_WM_HZ_OP * restrict values)
+                           const struct GEN8_3DSTATE_WM_HZ_OP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5768,7 +5883,6 @@ GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_GPGPU_WALKER_length 0x0000000f
 #define GEN8_GPGPU_WALKER_length_bias 0x00000002
 #define GEN8_GPGPU_WALKER_header                \
    .CommandType          =  3,                  \
@@ -5777,13 +5891,15 @@ GEN8_3DSTATE_WM_HZ_OP_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  5,                  \
    .DwordLength          = 13
 
+#define GEN8_GPGPU_WALKER_length 0x0000000f
+
 struct GEN8_GPGPU_WALKER {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
    uint32_t                                     MediaCommandOpcode;
    uint32_t                                     SubOpcode;
-   uint32_t                                     IndirectParameterEnable;
-   uint32_t                                     PredicateEnable;
+   bool                                         IndirectParameterEnable;
+   bool                                         PredicateEnable;
    uint32_t                                     DwordLength;
    uint32_t                                     InterfaceDescriptorOffset;
    uint32_t                                     IndirectDataLength;
@@ -5807,7 +5923,7 @@ struct GEN8_GPGPU_WALKER {
 
 static inline void
 GEN8_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_GPGPU_WALKER * restrict values)
+                       const struct GEN8_GPGPU_WALKER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5880,7 +5996,6 @@ GEN8_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MEDIA_CURBE_LOAD_length 0x00000004
 #define GEN8_MEDIA_CURBE_LOAD_length_bias 0x00000002
 #define GEN8_MEDIA_CURBE_LOAD_header            \
    .CommandType          =  3,                  \
@@ -5889,6 +6004,8 @@ GEN8_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  1,                  \
    .DwordLength          =  2
 
+#define GEN8_MEDIA_CURBE_LOAD_length 0x00000004
+
 struct GEN8_MEDIA_CURBE_LOAD {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -5901,7 +6018,7 @@ struct GEN8_MEDIA_CURBE_LOAD {
 
 static inline void
 GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_MEDIA_CURBE_LOAD * restrict values)
+                           const struct GEN8_MEDIA_CURBE_LOAD * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5926,7 +6043,6 @@ GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
 #define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
    .CommandType          =  3,                  \
@@ -5935,6 +6051,8 @@ GEN8_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  2,                  \
    .DwordLength          =  2
 
+#define GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
+
 struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -5947,7 +6065,7 @@ struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD {
 
 static inline void
 GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data *data, void * restrict dst,
-                                         const struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD * restrict values)
+                                          const struct GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5979,6 +6097,8 @@ GEN8_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data *data, void * restrict
    .MediaCommandOpcode   =  1,                  \
    .MediaCommandSubOpcode =  0
 
+#define GEN8_MEDIA_OBJECT_length 0x00000000
+
 struct GEN8_MEDIA_OBJECT {
    uint32_t                                     CommandType;
    uint32_t                                     MediaCommandPipeline;
@@ -5986,7 +6106,7 @@ struct GEN8_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;
@@ -6007,13 +6127,13 @@ struct GEN8_MEDIA_OBJECT {
    uint32_t                                     ScoredboardY;
    uint32_t                                     ScoreboardX;
    uint32_t                                     ScoreboardColor;
-   uint32_t                                     ScoreboardMask;
+   bool                                         ScoreboardMask;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_MEDIA_OBJECT * restrict values)
+                       const struct GEN8_MEDIA_OBJECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6065,6 +6185,8 @@ GEN8_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst,
    .MediaCommandOpcode   =  1,                  \
    .MediaCommandSubOpcode =  6
 
+#define GEN8_MEDIA_OBJECT_GRPID_length 0x00000000
+
 struct GEN8_MEDIA_OBJECT_GRPID {
    uint32_t                                     CommandType;
    uint32_t                                     MediaCommandPipeline;
@@ -6087,17 +6209,17 @@ struct GEN8_MEDIA_OBJECT_GRPID {
    uint32_t                                     SubSliceDestinationSelect;
    uint32_t                                     IndirectDataLength;
    __gen_address_type                           IndirectDataStartAddress;
-   uint32_t                                     ScoredboardY;
+   uint32_t                                     ScoreboardY;
    uint32_t                                     ScoreboardX;
    uint32_t                                     ScoreboardColor;
-   uint32_t                                     ScoreboardMask;
+   bool                                         ScoreboardMask;
    uint32_t                                     GroupID;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN8_MEDIA_OBJECT_GRPID * restrict values)
+                             const struct GEN8_MEDIA_OBJECT_GRPID * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6129,7 +6251,7 @@ GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data *data, void * restrict dst,
       __gen_combine_address(data, &dw[3], values->IndirectDataStartAddress, dw3);
 
    dw[4] =
-      __gen_field(values->ScoredboardY, 16, 24) |
+      __gen_field(values->ScoreboardY, 16, 24) |
       __gen_field(values->ScoreboardX, 0, 8) |
       0;
 
@@ -6145,7 +6267,6 @@ GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_MEDIA_OBJECT_PRT_length 0x00000010
 #define GEN8_MEDIA_OBJECT_PRT_length_bias 0x00000002
 #define GEN8_MEDIA_OBJECT_PRT_header            \
    .CommandType          =  3,                  \
@@ -6154,6 +6275,8 @@ GEN8_MEDIA_OBJECT_GRPID_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  2,                  \
    .DwordLength          = 14
 
+#define GEN8_MEDIA_OBJECT_PRT_length 0x00000010
+
 struct GEN8_MEDIA_OBJECT_PRT {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -6161,17 +6284,17 @@ struct GEN8_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
 GEN8_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_MEDIA_OBJECT_PRT * restrict values)
+                           const struct GEN8_MEDIA_OBJECT_PRT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6196,9 +6319,11 @@ GEN8_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;
+   }
 
 }
 
@@ -6209,6 +6334,8 @@ GEN8_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst,
    .MediaCommandOpcode   =  1,                  \
    .SubOpcode            =  3
 
+#define GEN8_MEDIA_OBJECT_WALKER_length 0x00000000
+
 struct GEN8_MEDIA_OBJECT_WALKER {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -6216,7 +6343,7 @@ struct GEN8_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;
@@ -6226,7 +6353,7 @@ struct GEN8_MEDIA_OBJECT_WALKER {
    uint32_t                                     IndirectDataLength;
    uint32_t                                     IndirectDataStartAddress;
    uint32_t                                     GroupIDLoopSelect;
-   uint32_t                                     ScoreboardMask;
+   bool                                         ScoreboardMask;
    uint32_t                                     ColorCountMinusOne;
    uint32_t                                     MiddleLoopExtraSteps;
    uint32_t                                     LocalMidLoopUnitY;
@@ -6254,7 +6381,7 @@ struct GEN8_MEDIA_OBJECT_WALKER {
 
 static inline void
 GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_MEDIA_OBJECT_WALKER * restrict values)
+                              const struct GEN8_MEDIA_OBJECT_WALKER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6347,7 +6474,6 @@ GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_MEDIA_STATE_FLUSH_length 0x00000002
 #define GEN8_MEDIA_STATE_FLUSH_length_bias 0x00000002
 #define GEN8_MEDIA_STATE_FLUSH_header           \
    .CommandType          =  3,                  \
@@ -6356,20 +6482,22 @@ GEN8_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  4,                  \
    .DwordLength          =  0
 
+#define GEN8_MEDIA_STATE_FLUSH_length 0x00000002
+
 struct GEN8_MEDIA_STATE_FLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
    uint32_t                                     MediaCommandOpcode;
    uint32_t                                     SubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     FlushtoGO;
+   bool                                         FlushtoGO;
    uint32_t                                     WatermarkRequired;
    uint32_t                                     InterfaceDescriptorOffset;
 };
 
 static inline void
 GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_MEDIA_STATE_FLUSH * restrict values)
+                            const struct GEN8_MEDIA_STATE_FLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6389,7 +6517,6 @@ GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MEDIA_VFE_STATE_length 0x00000009
 #define GEN8_MEDIA_VFE_STATE_length_bias 0x00000002
 #define GEN8_MEDIA_VFE_STATE_header             \
    .CommandType          =  3,                  \
@@ -6398,6 +6525,8 @@ GEN8_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  0,                  \
    .DwordLength          =  7
 
+#define GEN8_MEDIA_VFE_STATE_length 0x00000009
+
 struct GEN8_MEDIA_VFE_STATE {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -6446,7 +6575,7 @@ struct GEN8_MEDIA_VFE_STATE {
 
 static inline void
 GEN8_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN8_MEDIA_VFE_STATE * restrict values)
+                          const struct GEN8_MEDIA_VFE_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6514,12 +6643,13 @@ GEN8_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_ARB_CHECK_length 0x00000001
 #define GEN8_MI_ARB_CHECK_length_bias 0x00000001
 #define GEN8_MI_ARB_CHECK_header                \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  5
 
+#define GEN8_MI_ARB_CHECK_length 0x00000001
+
 struct GEN8_MI_ARB_CHECK {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6527,7 +6657,7 @@ struct GEN8_MI_ARB_CHECK {
 
 static inline void
 GEN8_MI_ARB_CHECK_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_MI_ARB_CHECK * restrict values)
+                       const struct GEN8_MI_ARB_CHECK * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6538,12 +6668,13 @@ GEN8_MI_ARB_CHECK_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_BATCH_BUFFER_END_length 0x00000001
 #define GEN8_MI_BATCH_BUFFER_END_length_bias 0x00000001
 #define GEN8_MI_BATCH_BUFFER_END_header         \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 10
 
+#define GEN8_MI_BATCH_BUFFER_END_length 0x00000001
+
 struct GEN8_MI_BATCH_BUFFER_END {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6551,7 +6682,7 @@ struct GEN8_MI_BATCH_BUFFER_END {
 
 static inline void
 GEN8_MI_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_MI_BATCH_BUFFER_END * restrict values)
+                              const struct GEN8_MI_BATCH_BUFFER_END * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6562,33 +6693,33 @@ GEN8_MI_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_BATCH_BUFFER_START_length 0x00000003
 #define GEN8_MI_BATCH_BUFFER_START_length_bias 0x00000002
 #define GEN8_MI_BATCH_BUFFER_START_header       \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 49,                  \
    .DwordLength          =  1
 
+#define GEN8_MI_BATCH_BUFFER_START_length 0x00000003
+
 struct GEN8_MI_BATCH_BUFFER_START {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
 #define     _1stlevelbatch                                     0
 #define     _2ndlevelbatch                                     1
    uint32_t                                     _2ndLevelBatchBuffer;
-   uint32_t                                     AddOffsetEnable;
+   bool                                         AddOffsetEnable;
    uint32_t                                     PredicationEnable;
-   uint32_t                                     ResourceStreamerEnable;
+   bool                                         ResourceStreamerEnable;
 #define     ASI_GGTT                                           0
 #define     ASI_PPGTT                                          1
    uint32_t                                     AddressSpaceIndicator;
    uint32_t                                     DwordLength;
    __gen_address_type                           BatchBufferStartAddress;
-   __gen_address_type                           BatchBufferStartAddressHigh;
 };
 
 static inline void
 GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN8_MI_BATCH_BUFFER_START * restrict values)
+                                const struct GEN8_MI_BATCH_BUFFER_START * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6606,14 +6737,11 @@ GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw1 =
       0;
 
-   dw[1] =
+   uint64_t qw1 =
       __gen_combine_address(data, &dw[1], values->BatchBufferStartAddress, dw1);
 
-   uint32_t dw2 =
-      0;
-
-   dw[2] =
-      __gen_combine_address(data, &dw[2], values->BatchBufferStartAddressHigh, dw2);
+   dw[1] = qw1;
+   dw[2] = qw1 >> 32;
 
 }
 
@@ -6622,6 +6750,8 @@ GEN8_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst,
    .CommandType          =  0,                  \
    .MICommandOpcode      = 39
 
+#define GEN8_MI_CLFLUSH_length 0x00000000
+
 struct GEN8_MI_CLFLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6631,13 +6761,12 @@ struct GEN8_MI_CLFLUSH {
    uint32_t                                     DwordLength;
    __gen_address_type                           PageBaseAddress;
    uint32_t                                     StartingCachelineOffset;
-   __gen_address_type                           PageBaseAddressHigh;
    /* variable length fields follow */
 };
 
 static inline void
 GEN8_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN8_MI_CLFLUSH * restrict values)
+                     const struct GEN8_MI_CLFLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6652,19 +6781,15 @@ GEN8_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->StartingCachelineOffset, 6, 11) |
       0;
 
-   dw[1] =
+   uint64_t qw1 =
       __gen_combine_address(data, &dw[1], values->PageBaseAddress, dw1);
 
-   uint32_t dw2 =
-      0;
-
-   dw[2] =
-      __gen_combine_address(data, &dw[2], values->PageBaseAddressHigh, dw2);
+   dw[1] = qw1;
+   dw[2] = qw1 >> 32;
 
    /* variable length fields follow */
 }
 
-#define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000003
 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
 #define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_header\
    .CommandType          =  0,                  \
@@ -6673,6 +6798,8 @@ GEN8_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst,
    .CompareSemaphore     =  0,                  \
    .DwordLength          =  1
 
+#define GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000003
+
 struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6681,12 +6808,11 @@ struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END {
    uint32_t                                     DwordLength;
    uint32_t                                     CompareDataDword;
    __gen_address_type                           CompareAddress;
-   __gen_address_type                           CompareAddressHigh;
 };
 
 static inline void
 GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst,
-                                         const struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END * restrict values)
+                                          const struct GEN8_MI_CONDITIONAL_BATCH_BUFFER_END * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6705,24 +6831,22 @@ GEN8_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict
    uint32_t dw2 =
       0;
 
-   dw[2] =
+   uint64_t qw2 =
       __gen_combine_address(data, &dw[2], values->CompareAddress, dw2);
 
-   uint32_t dw3 =
-      0;
-
-   dw[3] =
-      __gen_combine_address(data, &dw[3], values->CompareAddressHigh, dw3);
+   dw[2] = qw2;
+   dw[3] = qw2 >> 32;
 
 }
 
-#define GEN8_MI_COPY_MEM_MEM_length 0x00000005
 #define GEN8_MI_COPY_MEM_MEM_length_bias 0x00000002
 #define GEN8_MI_COPY_MEM_MEM_header             \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 46,                  \
    .DwordLength          =  3
 
+#define GEN8_MI_COPY_MEM_MEM_length 0x00000005
+
 struct GEN8_MI_COPY_MEM_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6739,7 +6863,7 @@ struct GEN8_MI_COPY_MEM_MEM {
 
 static inline void
 GEN8_MI_COPY_MEM_MEM_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN8_MI_COPY_MEM_MEM * restrict values)
+                          const struct GEN8_MI_COPY_MEM_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6771,13 +6895,14 @@ GEN8_MI_COPY_MEM_MEM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_LOAD_REGISTER_IMM_length 0x00000003
 #define GEN8_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
 #define GEN8_MI_LOAD_REGISTER_IMM_header        \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 34,                  \
    .DwordLength          =  1
 
+#define GEN8_MI_LOAD_REGISTER_IMM_length 0x00000003
+
 struct GEN8_MI_LOAD_REGISTER_IMM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6789,7 +6914,7 @@ struct GEN8_MI_LOAD_REGISTER_IMM {
 
 static inline void
 GEN8_MI_LOAD_REGISTER_IMM_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_MI_LOAD_REGISTER_IMM * restrict values)
+                               const struct GEN8_MI_LOAD_REGISTER_IMM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6810,17 +6935,18 @@ GEN8_MI_LOAD_REGISTER_IMM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_LOAD_REGISTER_MEM_length 0x00000004
 #define GEN8_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
 #define GEN8_MI_LOAD_REGISTER_MEM_header        \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 41,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_LOAD_REGISTER_MEM_length 0x00000004
+
 struct GEN8_MI_LOAD_REGISTER_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     UseGlobalGTT;
+   bool                                         UseGlobalGTT;
    uint32_t                                     AsyncModeEnable;
    uint32_t                                     DwordLength;
    uint32_t                                     RegisterAddress;
@@ -6829,7 +6955,7 @@ struct GEN8_MI_LOAD_REGISTER_MEM {
 
 static inline void
 GEN8_MI_LOAD_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_MI_LOAD_REGISTER_MEM * restrict values)
+                               const struct GEN8_MI_LOAD_REGISTER_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6856,13 +6982,14 @@ GEN8_MI_LOAD_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_length_bias 0x00000002
 #define GEN8_MI_LOAD_SCAN_LINES_EXCL_header     \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 19,                  \
    .DwordLength          =  0
 
+#define GEN8_MI_LOAD_SCAN_LINES_EXCL_length 0x00000002
+
 struct GEN8_MI_LOAD_SCAN_LINES_EXCL {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6877,7 +7004,7 @@ struct GEN8_MI_LOAD_SCAN_LINES_EXCL {
 
 static inline void
 GEN8_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data *data, void * restrict dst,
-                                 const struct GEN8_MI_LOAD_SCAN_LINES_EXCL * restrict values)
+                                  const struct GEN8_MI_LOAD_SCAN_LINES_EXCL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6895,13 +7022,14 @@ GEN8_MI_LOAD_SCAN_LINES_EXCL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
 #define GEN8_MI_LOAD_SCAN_LINES_INCL_length_bias 0x00000002
 #define GEN8_MI_LOAD_SCAN_LINES_INCL_header     \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 18,                  \
    .DwordLength          =  0
 
+#define GEN8_MI_LOAD_SCAN_LINES_INCL_length 0x00000002
+
 struct GEN8_MI_LOAD_SCAN_LINES_INCL {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6912,7 +7040,7 @@ struct GEN8_MI_LOAD_SCAN_LINES_INCL {
 #define     NeverForward                                       0
 #define     AlwaysForward                                      1
 #define     ConditionallyForward                               2
-   uint32_t                                     ScanLineEventDoneForward;
+   bool                                         ScanLineEventDoneForward;
    uint32_t                                     DwordLength;
    uint32_t                                     StartScanLineNumber;
    uint32_t                                     EndScanLineNumber;
@@ -6920,7 +7048,7 @@ struct GEN8_MI_LOAD_SCAN_LINES_INCL {
 
 static inline void
 GEN8_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data *data, void * restrict dst,
-                                 const struct GEN8_MI_LOAD_SCAN_LINES_INCL * restrict values)
+                                  const struct GEN8_MI_LOAD_SCAN_LINES_INCL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6939,13 +7067,14 @@ GEN8_MI_LOAD_SCAN_LINES_INCL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_LOAD_URB_MEM_length 0x00000004
 #define GEN8_MI_LOAD_URB_MEM_length_bias 0x00000002
 #define GEN8_MI_LOAD_URB_MEM_header             \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 44,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_LOAD_URB_MEM_length 0x00000004
+
 struct GEN8_MI_LOAD_URB_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6956,7 +7085,7 @@ struct GEN8_MI_LOAD_URB_MEM {
 
 static inline void
 GEN8_MI_LOAD_URB_MEM_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN8_MI_LOAD_URB_MEM * restrict values)
+                          const struct GEN8_MI_LOAD_URB_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6986,6 +7115,8 @@ GEN8_MI_LOAD_URB_MEM_pack(__gen_user_data *data, void * restrict dst,
    .CommandType          =  0,                  \
    .MICommandOpcode      = 26
 
+#define GEN8_MI_MATH_length 0x00000000
+
 struct GEN8_MI_MATH {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -6997,7 +7128,7 @@ struct GEN8_MI_MATH {
 
 static inline void
 GEN8_MI_MATH_pack(__gen_user_data *data, void * restrict dst,
-                 const struct GEN8_MI_MATH * restrict values)
+                  const struct GEN8_MI_MATH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7018,22 +7149,23 @@ GEN8_MI_MATH_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_MI_NOOP_length 0x00000001
 #define GEN8_MI_NOOP_length_bias 0x00000001
 #define GEN8_MI_NOOP_header                     \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  0
 
+#define GEN8_MI_NOOP_length 0x00000001
+
 struct GEN8_MI_NOOP {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     IdentificationNumberRegisterWriteEnable;
+   bool                                         IdentificationNumberRegisterWriteEnable;
    uint32_t                                     IdentificationNumber;
 };
 
 static inline void
 GEN8_MI_NOOP_pack(__gen_user_data *data, void * restrict dst,
-                 const struct GEN8_MI_NOOP * restrict values)
+                  const struct GEN8_MI_NOOP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7046,18 +7178,19 @@ GEN8_MI_NOOP_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_PREDICATE_length 0x00000001
 #define GEN8_MI_PREDICATE_length_bias 0x00000001
 #define GEN8_MI_PREDICATE_header                \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 12
 
+#define GEN8_MI_PREDICATE_length 0x00000001
+
 struct GEN8_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
@@ -7071,7 +7204,7 @@ struct GEN8_MI_PREDICATE {
 
 static inline void
 GEN8_MI_PREDICATE_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_MI_PREDICATE * restrict values)
+                       const struct GEN8_MI_PREDICATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7085,12 +7218,13 @@ GEN8_MI_PREDICATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_REPORT_HEAD_length 0x00000001
 #define GEN8_MI_REPORT_HEAD_length_bias 0x00000001
 #define GEN8_MI_REPORT_HEAD_header              \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  7
 
+#define GEN8_MI_REPORT_HEAD_length 0x00000001
+
 struct GEN8_MI_REPORT_HEAD {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7098,7 +7232,7 @@ struct GEN8_MI_REPORT_HEAD {
 
 static inline void
 GEN8_MI_REPORT_HEAD_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_MI_REPORT_HEAD * restrict values)
+                         const struct GEN8_MI_REPORT_HEAD * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7109,23 +7243,24 @@ GEN8_MI_REPORT_HEAD_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_RS_CONTEXT_length 0x00000001
 #define GEN8_MI_RS_CONTEXT_length_bias 0x00000001
 #define GEN8_MI_RS_CONTEXT_header               \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 15
 
+#define GEN8_MI_RS_CONTEXT_length 0x00000001
+
 struct GEN8_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
 GEN8_MI_RS_CONTEXT_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN8_MI_RS_CONTEXT * restrict values)
+                        const struct GEN8_MI_RS_CONTEXT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7137,23 +7272,24 @@ GEN8_MI_RS_CONTEXT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_RS_CONTROL_length 0x00000001
 #define GEN8_MI_RS_CONTROL_length_bias 0x00000001
 #define GEN8_MI_RS_CONTROL_header               \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  6
 
+#define GEN8_MI_RS_CONTROL_length 0x00000001
+
 struct GEN8_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
 GEN8_MI_RS_CONTROL_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN8_MI_RS_CONTROL * restrict values)
+                        const struct GEN8_MI_RS_CONTROL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7165,13 +7301,14 @@ GEN8_MI_RS_CONTROL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_RS_STORE_DATA_IMM_length 0x00000004
 #define GEN8_MI_RS_STORE_DATA_IMM_length_bias 0x00000002
 #define GEN8_MI_RS_STORE_DATA_IMM_header        \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 43,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_RS_STORE_DATA_IMM_length 0x00000004
+
 struct GEN8_MI_RS_STORE_DATA_IMM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7183,7 +7320,7 @@ struct GEN8_MI_RS_STORE_DATA_IMM {
 
 static inline void
 GEN8_MI_RS_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_MI_RS_STORE_DATA_IMM * restrict values)
+                               const struct GEN8_MI_RS_STORE_DATA_IMM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7209,29 +7346,30 @@ GEN8_MI_RS_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_SET_CONTEXT_length 0x00000002
 #define GEN8_MI_SET_CONTEXT_length_bias 0x00000002
 #define GEN8_MI_SET_CONTEXT_header              \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 24,                  \
    .DwordLength          =  0
 
+#define GEN8_MI_SET_CONTEXT_length 0x00000002
+
 struct GEN8_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
 GEN8_MI_SET_CONTEXT_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN8_MI_SET_CONTEXT * restrict values)
+                         const struct GEN8_MI_SET_CONTEXT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7255,12 +7393,13 @@ GEN8_MI_SET_CONTEXT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_SET_PREDICATE_length 0x00000001
 #define GEN8_MI_SET_PREDICATE_length_bias 0x00000001
 #define GEN8_MI_SET_PREDICATE_header            \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  1
 
+#define GEN8_MI_SET_PREDICATE_length 0x00000001
+
 struct GEN8_MI_SET_PREDICATE {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7278,7 +7417,7 @@ struct GEN8_MI_SET_PREDICATE {
 
 static inline void
 GEN8_MI_SET_PREDICATE_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_MI_SET_PREDICATE * restrict values)
+                           const struct GEN8_MI_SET_PREDICATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7290,18 +7429,19 @@ GEN8_MI_SET_PREDICATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_STORE_DATA_IMM_length 0x00000004
 #define GEN8_MI_STORE_DATA_IMM_length_bias 0x00000002
 #define GEN8_MI_STORE_DATA_IMM_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 32,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_STORE_DATA_IMM_length 0x00000004
+
 struct GEN8_MI_STORE_DATA_IMM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     UseGlobalGTT;
-   uint32_t                                     StoreQword;
+   bool                                         UseGlobalGTT;
+   bool                                         StoreQword;
    uint32_t                                     DwordLength;
    __gen_address_type                           Address;
    uint32_t                                     CoreModeEnable;
@@ -7311,7 +7451,7 @@ struct GEN8_MI_STORE_DATA_IMM {
 
 static inline void
 GEN8_MI_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_MI_STORE_DATA_IMM * restrict values)
+                            const struct GEN8_MI_STORE_DATA_IMM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7343,13 +7483,14 @@ GEN8_MI_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_STORE_DATA_INDEX_length 0x00000003
 #define GEN8_MI_STORE_DATA_INDEX_length_bias 0x00000002
 #define GEN8_MI_STORE_DATA_INDEX_header         \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 33,                  \
    .DwordLength          =  1
 
+#define GEN8_MI_STORE_DATA_INDEX_length 0x00000003
+
 struct GEN8_MI_STORE_DATA_INDEX {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7362,7 +7503,7 @@ struct GEN8_MI_STORE_DATA_INDEX {
 
 static inline void
 GEN8_MI_STORE_DATA_INDEX_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_MI_STORE_DATA_INDEX * restrict values)
+                              const struct GEN8_MI_STORE_DATA_INDEX * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7387,13 +7528,14 @@ GEN8_MI_STORE_DATA_INDEX_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_STORE_URB_MEM_length 0x00000004
 #define GEN8_MI_STORE_URB_MEM_length_bias 0x00000002
 #define GEN8_MI_STORE_URB_MEM_header            \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 45,                  \
    .DwordLength          =  2
 
+#define GEN8_MI_STORE_URB_MEM_length 0x00000004
+
 struct GEN8_MI_STORE_URB_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7404,7 +7546,7 @@ struct GEN8_MI_STORE_URB_MEM {
 
 static inline void
 GEN8_MI_STORE_URB_MEM_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_MI_STORE_URB_MEM * restrict values)
+                           const struct GEN8_MI_STORE_URB_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7429,21 +7571,22 @@ GEN8_MI_STORE_URB_MEM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_SUSPEND_FLUSH_length 0x00000001
 #define GEN8_MI_SUSPEND_FLUSH_length_bias 0x00000001
 #define GEN8_MI_SUSPEND_FLUSH_header            \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 11
 
+#define GEN8_MI_SUSPEND_FLUSH_length 0x00000001
+
 struct GEN8_MI_SUSPEND_FLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     SuspendFlush;
+   bool                                         SuspendFlush;
 };
 
 static inline void
 GEN8_MI_SUSPEND_FLUSH_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_MI_SUSPEND_FLUSH * restrict values)
+                           const struct GEN8_MI_SUSPEND_FLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7455,12 +7598,13 @@ GEN8_MI_SUSPEND_FLUSH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_TOPOLOGY_FILTER_length 0x00000001
 #define GEN8_MI_TOPOLOGY_FILTER_length_bias 0x00000001
 #define GEN8_MI_TOPOLOGY_FILTER_header          \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 13
 
+#define GEN8_MI_TOPOLOGY_FILTER_length 0x00000001
+
 struct GEN8_MI_TOPOLOGY_FILTER {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7469,7 +7613,7 @@ struct GEN8_MI_TOPOLOGY_FILTER {
 
 static inline void
 GEN8_MI_TOPOLOGY_FILTER_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN8_MI_TOPOLOGY_FILTER * restrict values)
+                             const struct GEN8_MI_TOPOLOGY_FILTER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7486,6 +7630,8 @@ GEN8_MI_TOPOLOGY_FILTER_pack(__gen_user_data *data, void * restrict dst,
    .CommandType          =  0,                  \
    .MICommandOpcode      = 35
 
+#define GEN8_MI_UPDATE_GTT_length 0x00000000
+
 struct GEN8_MI_UPDATE_GTT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7496,7 +7642,7 @@ struct GEN8_MI_UPDATE_GTT {
 
 static inline void
 GEN8_MI_UPDATE_GTT_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN8_MI_UPDATE_GTT * restrict values)
+                        const struct GEN8_MI_UPDATE_GTT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7515,12 +7661,13 @@ GEN8_MI_UPDATE_GTT_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN8_MI_URB_ATOMIC_ALLOC_length 0x00000001
 #define GEN8_MI_URB_ATOMIC_ALLOC_length_bias 0x00000001
 #define GEN8_MI_URB_ATOMIC_ALLOC_header         \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  9
 
+#define GEN8_MI_URB_ATOMIC_ALLOC_length 0x00000001
+
 struct GEN8_MI_URB_ATOMIC_ALLOC {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7530,7 +7677,7 @@ struct GEN8_MI_URB_ATOMIC_ALLOC {
 
 static inline void
 GEN8_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_MI_URB_ATOMIC_ALLOC * restrict values)
+                              const struct GEN8_MI_URB_ATOMIC_ALLOC * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7543,13 +7690,14 @@ GEN8_MI_URB_ATOMIC_ALLOC_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_URB_CLEAR_length 0x00000002
 #define GEN8_MI_URB_CLEAR_length_bias 0x00000002
 #define GEN8_MI_URB_CLEAR_header                \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 25,                  \
    .DwordLength          =  0
 
+#define GEN8_MI_URB_CLEAR_length 0x00000002
+
 struct GEN8_MI_URB_CLEAR {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7560,7 +7708,7 @@ struct GEN8_MI_URB_CLEAR {
 
 static inline void
 GEN8_MI_URB_CLEAR_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_MI_URB_CLEAR * restrict values)
+                       const struct GEN8_MI_URB_CLEAR * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7577,12 +7725,13 @@ GEN8_MI_URB_CLEAR_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_USER_INTERRUPT_length 0x00000001
 #define GEN8_MI_USER_INTERRUPT_length_bias 0x00000001
 #define GEN8_MI_USER_INTERRUPT_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  2
 
+#define GEN8_MI_USER_INTERRUPT_length 0x00000001
+
 struct GEN8_MI_USER_INTERRUPT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -7590,7 +7739,7 @@ struct GEN8_MI_USER_INTERRUPT {
 
 static inline void
 GEN8_MI_USER_INTERRUPT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_MI_USER_INTERRUPT * restrict values)
+                            const struct GEN8_MI_USER_INTERRUPT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7601,32 +7750,33 @@ GEN8_MI_USER_INTERRUPT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MI_WAIT_FOR_EVENT_length 0x00000001
 #define GEN8_MI_WAIT_FOR_EVENT_length_bias 0x00000001
 #define GEN8_MI_WAIT_FOR_EVENT_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  3
 
+#define GEN8_MI_WAIT_FOR_EVENT_length 0x00000001
+
 struct GEN8_MI_WAIT_FOR_EVENT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     DisplayPipeCVerticalBlankWaitEnable;
-   uint32_t                                     DisplaySpriteCFlipPendingWaitEnable;
-   uint32_t                                     DisplayPlaneCFlipPendingWaitEnable;
-   uint32_t                                     DisplayPipeCScanLineWaitEnable;
-   uint32_t                                     DisplayPipeBVerticalBlankWaitEnable;
-   uint32_t                                     DisplaySpriteBFlipPendingWaitEnable;
-   uint32_t                                     DisplayPlaneBFlipPendingWaitEnable;
-   uint32_t                                     DisplayPipeBScanLineWaitEnable;
-   uint32_t                                     DisplayPipeAVerticalBlankWaitEnable;
-   uint32_t                                     DisplaySpriteAFlipPendingWaitEnable;
-   uint32_t                                     DisplayPlaneAFlipPendingWaitEnable;
-   uint32_t                                     DisplayPipeAScanLineWaitEnable;
+   bool                                         DisplayPipeCVerticalBlankWaitEnable;
+   bool                                         DisplaySpriteCFlipPendingWaitEnable;
+   bool                                         DisplayPlaneCFlipPendingWaitEnable;
+   bool                                         DisplayPipeCScanLineWaitEnable;
+   bool                                         DisplayPipeBVerticalBlankWaitEnable;
+   bool                                         DisplaySpriteBFlipPendingWaitEnable;
+   bool                                         DisplayPlaneBFlipPendingWaitEnable;
+   bool                                         DisplayPipeBScanLineWaitEnable;
+   bool                                         DisplayPipeAVerticalBlankWaitEnable;
+   bool                                         DisplaySpriteAFlipPendingWaitEnable;
+   bool                                         DisplayPlaneAFlipPendingWaitEnable;
+   bool                                         DisplayPipeAScanLineWaitEnable;
 };
 
 static inline void
 GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_MI_WAIT_FOR_EVENT * restrict values)
+                            const struct GEN8_MI_WAIT_FOR_EVENT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7649,7 +7799,6 @@ GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_PIPE_CONTROL_length 0x00000006
 #define GEN8_PIPE_CONTROL_length_bias 0x00000002
 #define GEN8_PIPE_CONTROL_header                \
    .CommandType          =  3,                  \
@@ -7658,6 +7807,8 @@ GEN8_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  0,                  \
    .DwordLength          =  4
 
+#define GEN8_PIPE_CONTROL_length 0x00000006
+
 struct GEN8_PIPE_CONTROL {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -7676,37 +7827,36 @@ struct GEN8_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;
-   __gen_address_type                           AddressHigh;
    uint64_t                                     ImmediateData;
 };
 
 static inline void
 GEN8_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_PIPE_CONTROL * restrict values)
+                       const struct GEN8_PIPE_CONTROL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7745,14 +7895,11 @@ GEN8_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw2 =
       0;
 
-   dw[2] =
+   uint64_t qw2 =
       __gen_combine_address(data, &dw[2], values->Address, dw2);
 
-   uint32_t dw3 =
-      0;
-
-   dw[3] =
-      __gen_combine_address(data, &dw[3], values->AddressHigh, dw3);
+   dw[2] = qw2;
+   dw[3] = qw2 >> 32;
 
    uint64_t qw4 =
       __gen_field(values->ImmediateData, 0, 63) |
@@ -7763,22 +7910,6 @@ GEN8_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_3DSTATE_CONSTANT_BODY_length 0x0000000a
-
-#define GEN8_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
-
-#define GEN8_GATHER_CONSTANT_ENTRY_length 0x00000001
-
-#define GEN8_VERTEX_BUFFER_STATE_length 0x00000004
-
-#define GEN8_VERTEX_ELEMENT_STATE_length 0x00000002
-
-#define GEN8_SO_DECL_ENTRY_length 0x00000002
-
-#define GEN8_SO_DECL_length 0x00000001
-
-#define GEN8_SF_OUTPUT_ATTRIBUTE_DETAIL_length 0x00000001
-
 #define GEN8_SCISSOR_RECT_length 0x00000002
 
 struct GEN8_SCISSOR_RECT {
@@ -7790,7 +7921,7 @@ struct GEN8_SCISSOR_RECT {
 
 static inline void
 GEN8_SCISSOR_RECT_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN8_SCISSOR_RECT * restrict values)
+                       const struct GEN8_SCISSOR_RECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7827,7 +7958,7 @@ struct GEN8_SF_CLIP_VIEWPORT {
 
 static inline void
 GEN8_SF_CLIP_VIEWPORT_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_SF_CLIP_VIEWPORT * restrict values)
+                           const struct GEN8_SF_CLIP_VIEWPORT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7897,36 +8028,38 @@ GEN8_SF_CLIP_VIEWPORT_pack(__gen_user_data *data, void * restrict dst,
 
 #define GEN8_BLEND_STATE_length 0x00000011
 
+#define GEN8_BLEND_STATE_ENTRY_length 0x00000002
+
 struct GEN8_BLEND_STATE_ENTRY {
-   uint32_t                                     LogicOpEnable;
+   bool                                         LogicOpEnable;
    uint32_t                                     LogicOpFunction;
    uint32_t                                     PreBlendSourceOnlyClampEnable;
 #define     COLORCLAMP_UNORM                                   0
 #define     COLORCLAMP_SNORM                                   1
 #define     COLORCLAMP_RTFORMAT                                2
    uint32_t                                     ColorClampRange;
-   uint32_t                                     PreBlendColorClampEnable;
-   uint32_t                                     PostBlendColorClampEnable;
-   uint32_t                                     ColorBufferBlendEnable;
+   bool                                         PreBlendColorClampEnable;
+   bool                                         PostBlendColorClampEnable;
+   bool                                         ColorBufferBlendEnable;
    uint32_t                                     SourceBlendFactor;
    uint32_t                                     DestinationBlendFactor;
    uint32_t                                     ColorBlendFunction;
    uint32_t                                     SourceAlphaBlendFactor;
    uint32_t                                     DestinationAlphaBlendFactor;
    uint32_t                                     AlphaBlendFunction;
-   uint32_t                                     WriteDisableAlpha;
-   uint32_t                                     WriteDisableRed;
-   uint32_t                                     WriteDisableGreen;
-   uint32_t                                     WriteDisableBlue;
+   bool                                         WriteDisableAlpha;
+   bool                                         WriteDisableRed;
+   bool                                         WriteDisableGreen;
+   bool                                         WriteDisableBlue;
 };
 
 static inline void
 GEN8_BLEND_STATE_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN8_BLEND_STATE_ENTRY * restrict values)
+                            const struct GEN8_BLEND_STATE_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
-   dw[0] =
+   uint64_t qw0 =
       __gen_field(values->LogicOpEnable, 63, 63) |
       __gen_field(values->LogicOpFunction, 59, 62) |
       __gen_field(values->PreBlendSourceOnlyClampEnable, 36, 36) |
@@ -7946,24 +8079,27 @@ GEN8_BLEND_STATE_ENTRY_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->WriteDisableBlue, 0, 0) |
       0;
 
+   dw[0] = qw0;
+   dw[1] = qw0 >> 32;
+
 }
 
 struct GEN8_BLEND_STATE {
-   uint32_t                                     AlphaToCoverageEnable;
-   uint32_t                                     IndependentAlphaBlendEnable;
-   uint32_t                                     AlphaToOneEnable;
-   uint32_t                                     AlphaToCoverageDitherEnable;
-   uint32_t                                     AlphaTestEnable;
+   bool                                         AlphaToCoverageEnable;
+   bool                                         IndependentAlphaBlendEnable;
+   bool                                         AlphaToOneEnable;
+   bool                                         AlphaToCoverageDitherEnable;
+   bool                                         AlphaTestEnable;
    uint32_t                                     AlphaTestFunction;
-   uint32_t                                     ColorDitherEnable;
+   bool                                         ColorDitherEnable;
    uint32_t                                     XDitherOffset;
    uint32_t                                     YDitherOffset;
-   struct GEN8_BLEND_STATE_ENTRY                Entry;
+   struct GEN8_BLEND_STATE_ENTRY                Entry[8];
 };
 
 static inline void
 GEN8_BLEND_STATE_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN8_BLEND_STATE * restrict values)
+                      const struct GEN8_BLEND_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -7979,11 +8115,10 @@ GEN8_BLEND_STATE_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->YDitherOffset, 19, 20) |
       0;
 
-   GEN8_BLEND_STATE_ENTRY_pack(data, &dw[1], &values->Entry);
+   for (uint32_t i = 0, j = 1; i < 8; i++, j += 2)
+      GEN8_BLEND_STATE_ENTRY_pack(data, &dw[j], &values->Entry[i]);
 }
 
-#define GEN8_BLEND_STATE_ENTRY_length 0x00000001
-
 #define GEN8_CC_VIEWPORT_length 0x00000002
 
 struct GEN8_CC_VIEWPORT {
@@ -7993,7 +8128,7 @@ struct GEN8_CC_VIEWPORT {
 
 static inline void
 GEN8_CC_VIEWPORT_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN8_CC_VIEWPORT * restrict values)
+                      const struct GEN8_CC_VIEWPORT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -8028,7 +8163,7 @@ struct GEN8_COLOR_CALC_STATE {
 
 static inline void
 GEN8_COLOR_CALC_STATE_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN8_COLOR_CALC_STATE * restrict values)
+                           const struct GEN8_COLOR_CALC_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -8062,40 +8197,27 @@ GEN8_COLOR_CALC_STATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
-
-#define GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001
+#define GEN8_BLACK_LEVEL_CORRECTION_STATE__DW7576_length 0x00000002
 
-struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS {
-#define     UseCacheabilityControlsfrompagetableUCwithFenceifcoherentcycle       0
-#define     UncacheableUCnoncacheable                          1
-#define     WritethroughWT                                     2
-#define     WritebackWB                                        3
-   uint32_t                                     MemoryTypeLLCeLLCCacheabilityControlLeLLCCC;
-#define     eLLCOnly                                           0
-#define     LLCOnly                                            1
-#define     LLCeLLCAllowed                                     2
-#define     L3LLCeLLCAllowed                                   3
-   uint32_t                                     TargetCacheTC;
-   uint32_t                                     EncryptedData;
-#define     PoorChance                                         3
-#define     NormalChance                                       2
-#define     BetterChance                                       1
-#define     BestChance                                         0
-   uint32_t                                     AgeforQUADLRUAGE;
+struct GEN8_BLACK_LEVEL_CORRECTION_STATE__DW7576 {
+   uint32_t                                     BlackPointOffsetR;
+   uint32_t                                     BlackPointOffsetG;
+   uint32_t                                     BlackPointOffsetB;
 };
 
 static inline void
-GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_pack(__gen_user_data *data, void * restrict dst,
-                                                  const struct GEN8_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS * restrict values)
+GEN8_BLACK_LEVEL_CORRECTION_STATE__DW7576_pack(__gen_user_data *data, void * restrict dst,
+                                               const struct GEN8_BLACK_LEVEL_CORRECTION_STATE__DW7576 * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
    dw[0] =
-      __gen_field(values->MemoryTypeLLCeLLCCacheabilityControlLeLLCCC, 5, 6) |
-      __gen_field(values->TargetCacheTC, 3, 4) |
-      __gen_field(values->EncryptedData, 2, 2) |
-      __gen_field(values->AgeforQUADLRUAGE, 0, 1) |
+      __gen_field(values->BlackPointOffsetR, 0, 12) |
+      0;
+
+   dw[1] =
+      __gen_field(values->BlackPointOffsetG, 13, 25) |
+      __gen_field(values->BlackPointOffsetB, 0, 12) |
       0;
 
 }
@@ -8117,9 +8239,9 @@ struct GEN8_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
@@ -8136,7 +8258,7 @@ struct GEN8_INTERFACE_DESCRIPTOR_DATA {
 #define     RD                                                 2
 #define     RTZ                                                3
    uint32_t                                     RoundingMode;
-   uint32_t                                     BarrierEnable;
+   bool                                         BarrierEnable;
 #define     Encodes0k                                          0
 #define     Encodes4k                                          1
 #define     Encodes8k                                          2
@@ -8150,7 +8272,7 @@ struct GEN8_INTERFACE_DESCRIPTOR_DATA {
 
 static inline void
 GEN8_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN8_INTERFACE_DESCRIPTOR_DATA * restrict values)
+                                    const struct GEN8_INTERFACE_DESCRIPTOR_DATA * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -8200,8 +8322,6 @@ GEN8_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN8_PALETTE_ENTRY_length 0x00000001
-
 #define GEN8_BINDING_TABLE_STATE_length 0x00000001
 
 struct GEN8_BINDING_TABLE_STATE {
@@ -8210,7 +8330,7 @@ struct GEN8_BINDING_TABLE_STATE {
 
 static inline void
 GEN8_BINDING_TABLE_STATE_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN8_BINDING_TABLE_STATE * restrict values)
+                              const struct GEN8_BINDING_TABLE_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -8231,7 +8351,7 @@ struct GEN8_RENDER_SURFACE_STATE {
 #define     SURFTYPE_STRBUF                                    5
 #define     SURFTYPE_NULL                                      7
    uint32_t                                     SurfaceType;
-   uint32_t                                     SurfaceArray;
+   bool                                         SurfaceArray;
    uint32_t                                     SurfaceFormat;
 #define     VALIGN4                                            1
 #define     VALIGN8                                            2
@@ -8248,7 +8368,7 @@ struct GEN8_RENDER_SURFACE_STATE {
    uint32_t                                     TileMode;
    uint32_t                                     VerticalLineStride;
    uint32_t                                     VerticalLineStrideOffset;
-   uint32_t                                     SamplerL2BypassModeDisable;
+   bool                                         SamplerL2BypassModeDisable;
 #define     WriteOnlyCache                                     0
 #define     ReadWriteCache                                     1
    uint32_t                                     RenderCacheReadWriteMode;
@@ -8256,12 +8376,12 @@ struct GEN8_RENDER_SURFACE_STATE {
 #define     PROGRESSIVE_FRAME                                  2
 #define     INTERLACED_FRAME                                   3
    uint32_t                                     MediaBoundaryPixelMode;
-   uint32_t                                     CubeFaceEnablePositiveZ;
-   uint32_t                                     CubeFaceEnableNegativeZ;
-   uint32_t                                     CubeFaceEnablePositiveY;
-   uint32_t                                     CubeFaceEnableNegativeY;
-   uint32_t                                     CubeFaceEnablePositiveX;
-   uint32_t                                     CubeFaceEnableNegativeX;
+   bool                                         CubeFaceEnablePositiveZ;
+   bool                                         CubeFaceEnableNegativeZ;
+   bool                                         CubeFaceEnablePositiveY;
+   bool                                         CubeFaceEnableNegativeY;
+   bool                                         CubeFaceEnablePositiveX;
+   bool                                         CubeFaceEnableNegativeX;
    struct GEN8_MEMORY_OBJECT_CONTROL_STATE      MemoryObjectControlState;
    float                                        BaseMipLevel;
    uint32_t                                     SurfaceQPitch;
@@ -8286,7 +8406,7 @@ struct GEN8_RENDER_SURFACE_STATE {
    uint32_t                                     MultisamplePositionPaletteIndex;
    uint32_t                                     XOffset;
    uint32_t                                     YOffset;
-   uint32_t                                     EWADisableForCube;
+   bool                                         EWADisableForCube;
 #define     GPUcoherent                                        0
 #define     IAcoherent                                         1
    uint32_t                                     CoherencyType;
@@ -8299,7 +8419,7 @@ struct GEN8_RENDER_SURFACE_STATE {
 #define     AUX_APPEND                                         2
 #define     AUX_HIZ                                            3
    uint32_t                                     AuxiliarySurfaceMode;
-   uint32_t                                     SeparateUVPlaneEnable;
+   bool                                         SeparateUVPlaneEnable;
    uint32_t                                     XOffsetforUorUVPlane;
    uint32_t                                     YOffsetforUorUVPlane;
    uint32_t                                     RedClearColor;
@@ -8320,7 +8440,7 @@ struct GEN8_RENDER_SURFACE_STATE {
 
 static inline void
 GEN8_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN8_RENDER_SURFACE_STATE * restrict values)
+                               const struct GEN8_RENDER_SURFACE_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -8436,10 +8556,28 @@ GEN8_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
+#define GEN8_FILTER_COEFFICIENT_length 0x00000001
+
+struct GEN8_FILTER_COEFFICIENT {
+   uint32_t                                     FilterCoefficient;
+};
+
+static inline void
+GEN8_FILTER_COEFFICIENT_pack(__gen_user_data *data, void * restrict dst,
+                             const struct GEN8_FILTER_COEFFICIENT * restrict values)
+{
+   uint32_t *dw = (uint32_t * restrict) dst;
+
+   dw[0] =
+      __gen_field(values->FilterCoefficient, 0, 7) |
+      0;
+
+}
+
 #define GEN8_SAMPLER_STATE_length 0x00000004
 
 struct GEN8_SAMPLER_STATE {
-   uint32_t                                     SamplerDisable;
+   bool                                         SamplerDisable;
 #define     DX10OGL                                            0
 #define     DX9                                                1
    uint32_t                                     TextureBorderColorMode;
@@ -8467,7 +8605,7 @@ struct GEN8_SAMPLER_STATE {
    uint32_t                                     AnisotropicAlgorithm;
    float                                        MinLOD;
    float                                        MaxLOD;
-   uint32_t                                     ChromaKeyEnable;
+   bool                                         ChromaKeyEnable;
    uint32_t                                     ChromaKeyIndex;
 #define     KEYFILTER_KILL_ON_ANY_MATCH                        0
 #define     KEYFILTER_REPLACE_BLACK                            1
@@ -8497,18 +8635,18 @@ struct GEN8_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     HIGH                                               1
 #define     MED                                                2
 #define     LOW                                                3
    uint32_t                                     TrilinearFilterQuality;
-   uint32_t                                     NonnormalizedCoordinateEnable;
+   bool                                         NonnormalizedCoordinateEnable;
    uint32_t                                     TCXAddressControlMode;
    uint32_t                                     TCYAddressControlMode;
    uint32_t                                     TCZAddressControlMode;
@@ -8516,7 +8654,7 @@ struct GEN8_SAMPLER_STATE {
 
 static inline void
 GEN8_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN8_SAMPLER_STATE * restrict values)
+                        const struct GEN8_SAMPLER_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -8564,6 +8702,91 @@ GEN8_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
+#define GEN8_SAMPLER_STATE_8X8_AVS_COEFFICIENTS_length 0x00000008
+
+struct GEN8_SAMPLER_STATE_8X8_AVS_COEFFICIENTS {
+   uint32_t                                     Table0YFilterCoefficientn1;
+   uint32_t                                     Table0XFilterCoefficientn1;
+   uint32_t                                     Table0YFilterCoefficientn0;
+   uint32_t                                     Table0XFilterCoefficientn0;
+   uint32_t                                     Table0YFilterCoefficientn3;
+   uint32_t                                     Table0XFilterCoefficientn3;
+   uint32_t                                     Table0YFilterCoefficientn2;
+   uint32_t                                     Table0XFilterCoefficientn2;
+   uint32_t                                     Table0YFilterCoefficientn5;
+   uint32_t                                     Table0XFilterCoefficientn5;
+   uint32_t                                     Table0YFilterCoefficientn4;
+   uint32_t                                     Table0XFilterCoefficientn4;
+   uint32_t                                     Table0YFilterCoefficientn7;
+   uint32_t                                     Table0XFilterCoefficientn7;
+   uint32_t                                     Table0YFilterCoefficientn6;
+   uint32_t                                     Table0XFilterCoefficientn6;
+   uint32_t                                     Table1XFilterCoefficientn3;
+   uint32_t                                     Table1XFilterCoefficientn2;
+   uint32_t                                     Table1XFilterCoefficientn5;
+   uint32_t                                     Table1XFilterCoefficientn4;
+   uint32_t                                     Table1YFilterCoefficientn3;
+   uint32_t                                     Table1YFilterCoefficientn2;
+   uint32_t                                     Table1YFilterCoefficientn5;
+   uint32_t                                     Table1YFilterCoefficientn4;
+};
+
+static inline void
+GEN8_SAMPLER_STATE_8X8_AVS_COEFFICIENTS_pack(__gen_user_data *data, void * restrict dst,
+                                             const struct GEN8_SAMPLER_STATE_8X8_AVS_COEFFICIENTS * restrict values)
+{
+   uint32_t *dw = (uint32_t * restrict) dst;
+
+   dw[0] =
+      __gen_field(values->Table0YFilterCoefficientn1, 24, 31) |
+      __gen_field(values->Table0XFilterCoefficientn1, 16, 23) |
+      __gen_field(values->Table0YFilterCoefficientn0, 8, 15) |
+      __gen_field(values->Table0XFilterCoefficientn0, 0, 7) |
+      0;
+
+   dw[1] =
+      __gen_field(values->Table0YFilterCoefficientn3, 24, 31) |
+      __gen_field(values->Table0XFilterCoefficientn3, 16, 23) |
+      __gen_field(values->Table0YFilterCoefficientn2, 8, 15) |
+      __gen_field(values->Table0XFilterCoefficientn2, 0, 7) |
+      0;
+
+   dw[2] =
+      __gen_field(values->Table0YFilterCoefficientn5, 24, 31) |
+      __gen_field(values->Table0XFilterCoefficientn5, 16, 23) |
+      __gen_field(values->Table0YFilterCoefficientn4, 8, 15) |
+      __gen_field(values->Table0XFilterCoefficientn4, 0, 7) |
+      0;
+
+   dw[3] =
+      __gen_field(values->Table0YFilterCoefficientn7, 24, 31) |
+      __gen_field(values->Table0XFilterCoefficientn7, 16, 23) |
+      __gen_field(values->Table0YFilterCoefficientn6, 8, 15) |
+      __gen_field(values->Table0XFilterCoefficientn6, 0, 7) |
+      0;
+
+   dw[4] =
+      __gen_field(values->Table1XFilterCoefficientn3, 24, 31) |
+      __gen_field(values->Table1XFilterCoefficientn2, 16, 23) |
+      0;
+
+   dw[5] =
+      __gen_field(values->Table1XFilterCoefficientn5, 8, 15) |
+      __gen_field(values->Table1XFilterCoefficientn4, 0, 7) |
+      0;
+
+   dw[6] =
+      __gen_field(values->Table1YFilterCoefficientn3, 24, 31) |
+      __gen_field(values->Table1YFilterCoefficientn2, 16, 23) |
+      0;
+
+   dw[7] =
+      __gen_field(values->Table1YFilterCoefficientn5, 8, 15) |
+      __gen_field(values->Table1YFilterCoefficientn4, 0, 7) |
+      0;
+
+}
+
 /* Enum 3D_Prim_Topo_Type */
 #define     _3DPRIM_POINTLIST                                  1
 #define     _3DPRIM_LINELIST                                   2
@@ -8574,7 +8797,7 @@ GEN8_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
@@ -8628,21 +8851,21 @@ GEN8_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
 #define     VFCOMP_STORE_PID                                   7
 
 /* Enum WRAP_SHORTEST_ENABLE */
-#define     X                                                  1
-#define     Y                                                  2
-#define     XY                                                 3
-#define     Z                                                  4
-#define     XZ                                                 5
-#define     YZ                                                 6
-#define     XYZ                                                7
-#define     W                                                  8
-#define     XW                                                 9
-#define     YW                                                10
-#define     XYW                                               11
-#define     ZW                                                12
-#define     XZW                                               13
-#define     YZW                                               14
-#define     XYZW                                              15
+#define     WSE_X                                              1
+#define     WSE_Y                                              2
+#define     WSE_XY                                             3
+#define     WSE_Z                                              4
+#define     WSE_XZ                                             5
+#define     WSE_YZ                                             6
+#define     WSE_XYZ                                            7
+#define     WSE_W                                              8
+#define     WSE_XW                                             9
+#define     WSE_YW                                            10
+#define     WSE_XYW                                           11
+#define     WSE_ZW                                            12
+#define     WSE_XZW                                           13
+#define     WSE_YZW                                           14
+#define     WSE_XYZW                                          15
 
 /* Enum 3D_Stencil_Operation */
 #define     STENCILOP_KEEP                                     0