util: reinstate ENUM_PACKED

gets rid of warning: 'gcc_struct' attribute ignored [-Wattributes] introduced by !23338

Fixes: 86532fa21d ("util: Use the gcc_struct attribute for packed structures in mingw")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23478>
This commit is contained in:
Michel Zou
2023-06-06 21:18:17 +02:00
committed by Marge Bot
parent 4b48d377ba
commit badb85edb8
12 changed files with 41 additions and 38 deletions

View File

@@ -58,6 +58,7 @@ EXPAND_ONLY_PREDEF = YES
# Defines required to keep doxygen from tripping on our attribute macros # Defines required to keep doxygen from tripping on our attribute macros
PREDEFINED = PACKED= PREDEFINED = PACKED=
PREDEFINED += ENUM_PACKED=
PREDEFINED += ATTRIBUTE_CONST= PREDEFINED += ATTRIBUTE_CONST=
PREDEFINED += MUST_CHECK= PREDEFINED += MUST_CHECK=
""") """)

View File

@@ -41,7 +41,7 @@
extern "C" { extern "C" {
#endif #endif
enum PACKED gl_uniform_driver_format { enum ENUM_PACKED gl_uniform_driver_format {
uniform_native = 0, /**< Store data in the native format. */ uniform_native = 0, /**< Store data in the native format. */
uniform_int_float, /**< Store integer data as floats. */ uniform_int_float, /**< Store integer data as floats. */
}; };

View File

@@ -902,7 +902,7 @@ typedef struct nir_register {
#define nir_foreach_register_safe(reg, reg_list) \ #define nir_foreach_register_safe(reg, reg_list) \
foreach_list_typed_safe(nir_register, reg, node, reg_list) foreach_list_typed_safe(nir_register, reg, node, reg_list)
typedef enum PACKED { typedef enum ENUM_PACKED {
nir_instr_type_alu, nir_instr_type_alu,
nir_instr_type_deref, nir_instr_type_deref,
nir_instr_type_call, nir_instr_type_call,
@@ -1265,7 +1265,7 @@ typedef struct {
* The values in this enum are carefully chosen so that the sized type is * The values in this enum are carefully chosen so that the sized type is
* just the unsized type OR the number of bits. * just the unsized type OR the number of bits.
*/ */
typedef enum PACKED { typedef enum ENUM_PACKED {
nir_type_invalid = 0, /* Not a valid type */ nir_type_invalid = 0, /* Not a valid type */
nir_type_int = 2, nir_type_int = 2,
nir_type_uint = 4, nir_type_uint = 4,
@@ -5300,7 +5300,7 @@ bool
nir_lower_sysvals_to_varyings(nir_shader *shader, nir_lower_sysvals_to_varyings(nir_shader *shader,
const struct nir_lower_sysvals_to_varyings_options *options); const struct nir_lower_sysvals_to_varyings_options *options);
enum PACKED nir_lower_tex_packing { enum ENUM_PACKED nir_lower_tex_packing {
/** No packing */ /** No packing */
nir_lower_tex_packing_none = 0, nir_lower_tex_packing_none = 0,
/** /**

View File

@@ -25,7 +25,7 @@
#include "nir.h" #include "nir.h"
enum PACKED ssa_ranges { enum ENUM_PACKED ssa_ranges {
unknown = 0, unknown = 0,
lt_zero, lt_zero,
le_zero, le_zero,

View File

@@ -32,7 +32,7 @@
struct nir_builder; struct nir_builder;
typedef enum PACKED { typedef enum ENUM_PACKED {
nir_search_value_expression, nir_search_value_expression,
nir_search_value_variable, nir_search_value_variable,
nir_search_value_constant, nir_search_value_constant,

View File

@@ -1157,7 +1157,7 @@ enum tess_primitive_mode
/** /**
* Mesa primitive types for both GL and Vulkan: * Mesa primitive types for both GL and Vulkan:
*/ */
enum PACKED mesa_prim enum ENUM_PACKED mesa_prim
{ {
MESA_PRIM_POINTS, MESA_PRIM_POINTS,
MESA_PRIM_LINES, MESA_PRIM_LINES,
@@ -1318,7 +1318,7 @@ enum cl_sampler_filter_mode {
#define MAT_BIT_BACK_INDEXES (1<<MAT_ATTRIB_BACK_INDEXES) #define MAT_BIT_BACK_INDEXES (1<<MAT_ATTRIB_BACK_INDEXES)
/** An enum representing what kind of input gl_SubgroupSize is. */ /** An enum representing what kind of input gl_SubgroupSize is. */
enum PACKED gl_subgroup_size enum ENUM_PACKED gl_subgroup_size
{ {
/** Actual subgroup size, whatever that happens to be */ /** Actual subgroup size, whatever that happens to be */
SUBGROUP_SIZE_VARYING = 0, SUBGROUP_SIZE_VARYING = 0,

View File

@@ -96,7 +96,7 @@ enum brw_compression {
#define GFX6_COMPRESSION_1H 0 #define GFX6_COMPRESSION_1H 0
#define GFX6_COMPRESSION_2H 2 #define GFX6_COMPRESSION_2H 2
enum PACKED brw_conditional_mod { enum ENUM_PACKED brw_conditional_mod {
BRW_CONDITIONAL_NONE = 0, BRW_CONDITIONAL_NONE = 0,
BRW_CONDITIONAL_Z = 1, BRW_CONDITIONAL_Z = 1,
BRW_CONDITIONAL_NZ = 2, BRW_CONDITIONAL_NZ = 2,
@@ -119,7 +119,7 @@ enum PACKED brw_conditional_mod {
#define BRW_DEPENDENCY_NOTCHECKED 2 #define BRW_DEPENDENCY_NOTCHECKED 2
#define BRW_DEPENDENCY_DISABLE 3 #define BRW_DEPENDENCY_DISABLE 3
enum PACKED brw_execution_size { enum ENUM_PACKED brw_execution_size {
BRW_EXECUTE_1 = 0, BRW_EXECUTE_1 = 0,
BRW_EXECUTE_2 = 1, BRW_EXECUTE_2 = 1,
BRW_EXECUTE_4 = 2, BRW_EXECUTE_4 = 2,
@@ -128,21 +128,21 @@ enum PACKED brw_execution_size {
BRW_EXECUTE_32 = 5, BRW_EXECUTE_32 = 5,
}; };
enum PACKED brw_horizontal_stride { enum ENUM_PACKED brw_horizontal_stride {
BRW_HORIZONTAL_STRIDE_0 = 0, BRW_HORIZONTAL_STRIDE_0 = 0,
BRW_HORIZONTAL_STRIDE_1 = 1, BRW_HORIZONTAL_STRIDE_1 = 1,
BRW_HORIZONTAL_STRIDE_2 = 2, BRW_HORIZONTAL_STRIDE_2 = 2,
BRW_HORIZONTAL_STRIDE_4 = 3, BRW_HORIZONTAL_STRIDE_4 = 3,
}; };
enum PACKED gfx10_align1_3src_src_horizontal_stride { enum ENUM_PACKED gfx10_align1_3src_src_horizontal_stride {
BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_0 = 0, BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_0 = 0,
BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_1 = 1, BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_1 = 1,
BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_2 = 2, BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_2 = 2,
BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_4 = 3, BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_4 = 3,
}; };
enum PACKED gfx10_align1_3src_dst_horizontal_stride { enum ENUM_PACKED gfx10_align1_3src_dst_horizontal_stride {
BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_1 = 0, BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_1 = 0,
BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_2 = 1, BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_2 = 1,
}; };
@@ -997,7 +997,7 @@ operator|(brw_urb_write_flags x, brw_urb_write_flags y)
} }
#endif #endif
enum PACKED brw_predicate { enum ENUM_PACKED brw_predicate {
BRW_PREDICATE_NONE = 0, BRW_PREDICATE_NONE = 0,
BRW_PREDICATE_NORMAL = 1, BRW_PREDICATE_NORMAL = 1,
BRW_PREDICATE_ALIGN1_ANYV = 2, BRW_PREDICATE_ALIGN1_ANYV = 2,
@@ -1020,7 +1020,7 @@ enum PACKED brw_predicate {
BRW_PREDICATE_ALIGN16_ALL4H = 7, BRW_PREDICATE_ALIGN16_ALL4H = 7,
}; };
enum PACKED brw_reg_file { enum ENUM_PACKED brw_reg_file {
BRW_ARCHITECTURE_REGISTER_FILE = 0, BRW_ARCHITECTURE_REGISTER_FILE = 0,
BRW_GENERAL_REGISTER_FILE = 1, BRW_GENERAL_REGISTER_FILE = 1,
BRW_MESSAGE_REGISTER_FILE = 2, BRW_MESSAGE_REGISTER_FILE = 2,
@@ -1038,7 +1038,7 @@ enum PACKED brw_reg_file {
BAD_FILE, BAD_FILE,
}; };
enum PACKED gfx10_align1_3src_reg_file { enum ENUM_PACKED gfx10_align1_3src_reg_file {
BRW_ALIGN1_3SRC_GENERAL_REGISTER_FILE = 0, BRW_ALIGN1_3SRC_GENERAL_REGISTER_FILE = 0,
BRW_ALIGN1_3SRC_IMMEDIATE_VALUE = 1, /* src0, src2 */ BRW_ALIGN1_3SRC_IMMEDIATE_VALUE = 1, /* src0, src2 */
BRW_ALIGN1_3SRC_ACCUMULATOR = 1, /* dest, src1 */ BRW_ALIGN1_3SRC_ACCUMULATOR = 1, /* dest, src1 */
@@ -1049,7 +1049,7 @@ enum PACKED gfx10_align1_3src_reg_file {
* on float or integer types. The register arguments have fields that offer * on float or integer types. The register arguments have fields that offer
* more fine control their respective types. * more fine control their respective types.
*/ */
enum PACKED gfx10_align1_3src_exec_type { enum ENUM_PACKED gfx10_align1_3src_exec_type {
BRW_ALIGN1_3SRC_EXEC_TYPE_INT = 0, BRW_ALIGN1_3SRC_EXEC_TYPE_INT = 0,
BRW_ALIGN1_3SRC_EXEC_TYPE_FLOAT = 1, BRW_ALIGN1_3SRC_EXEC_TYPE_FLOAT = 1,
}; };
@@ -1081,7 +1081,7 @@ enum PACKED gfx10_align1_3src_exec_type {
#define BRW_THREAD_ATOMIC 1 #define BRW_THREAD_ATOMIC 1
#define BRW_THREAD_SWITCH 2 #define BRW_THREAD_SWITCH 2
enum PACKED brw_vertical_stride { enum ENUM_PACKED brw_vertical_stride {
BRW_VERTICAL_STRIDE_0 = 0, BRW_VERTICAL_STRIDE_0 = 0,
BRW_VERTICAL_STRIDE_1 = 1, BRW_VERTICAL_STRIDE_1 = 1,
BRW_VERTICAL_STRIDE_2 = 2, BRW_VERTICAL_STRIDE_2 = 2,
@@ -1092,7 +1092,7 @@ enum PACKED brw_vertical_stride {
BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL = 0xF, BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL = 0xF,
}; };
enum PACKED gfx10_align1_3src_vertical_stride { enum ENUM_PACKED gfx10_align1_3src_vertical_stride {
BRW_ALIGN1_3SRC_VERTICAL_STRIDE_0 = 0, BRW_ALIGN1_3SRC_VERTICAL_STRIDE_0 = 0,
BRW_ALIGN1_3SRC_VERTICAL_STRIDE_1 = 1, BRW_ALIGN1_3SRC_VERTICAL_STRIDE_1 = 1,
BRW_ALIGN1_3SRC_VERTICAL_STRIDE_2 = 1, BRW_ALIGN1_3SRC_VERTICAL_STRIDE_2 = 1,
@@ -1100,7 +1100,7 @@ enum PACKED gfx10_align1_3src_vertical_stride {
BRW_ALIGN1_3SRC_VERTICAL_STRIDE_8 = 3, BRW_ALIGN1_3SRC_VERTICAL_STRIDE_8 = 3,
}; };
enum PACKED brw_width { enum ENUM_PACKED brw_width {
BRW_WIDTH_1 = 0, BRW_WIDTH_1 = 0,
BRW_WIDTH_2 = 1, BRW_WIDTH_2 = 1,
BRW_WIDTH_4 = 2, BRW_WIDTH_4 = 2,
@@ -1727,7 +1727,7 @@ enum brw_message_target {
#define BRW_CR0_RND_MODE_MASK 0x30 #define BRW_CR0_RND_MODE_MASK 0x30
#define BRW_CR0_RND_MODE_SHIFT 4 #define BRW_CR0_RND_MODE_SHIFT 4
enum PACKED brw_rnd_mode { enum ENUM_PACKED brw_rnd_mode {
BRW_RND_MODE_RTNE = 0, /* Round to Nearest or Even */ BRW_RND_MODE_RTNE = 0, /* Round to Nearest or Even */
BRW_RND_MODE_RU = 1, /* Round Up, toward +inf */ BRW_RND_MODE_RU = 1, /* Round Up, toward +inf */
BRW_RND_MODE_RD = 2, /* Round Down, toward -inf */ BRW_RND_MODE_RD = 2, /* Round Down, toward -inf */
@@ -1804,7 +1804,7 @@ enum lsc_opcode {
/* /*
* Specifies the size of the dataport address payload in registers. * Specifies the size of the dataport address payload in registers.
*/ */
enum PACKED lsc_addr_reg_size { enum ENUM_PACKED lsc_addr_reg_size {
LSC_ADDR_REG_SIZE_1 = 1, LSC_ADDR_REG_SIZE_1 = 1,
LSC_ADDR_REG_SIZE_2 = 2, LSC_ADDR_REG_SIZE_2 = 2,
LSC_ADDR_REG_SIZE_3 = 3, LSC_ADDR_REG_SIZE_3 = 3,
@@ -1816,7 +1816,7 @@ enum PACKED lsc_addr_reg_size {
/* /*
* Specifies the size of the address payload item in a dataport message. * Specifies the size of the address payload item in a dataport message.
*/ */
enum PACKED lsc_addr_size { enum ENUM_PACKED lsc_addr_size {
LSC_ADDR_SIZE_A16 = 1, /* 16-bit address offset */ LSC_ADDR_SIZE_A16 = 1, /* 16-bit address offset */
LSC_ADDR_SIZE_A32 = 2, /* 32-bit address offset */ LSC_ADDR_SIZE_A32 = 2, /* 32-bit address offset */
LSC_ADDR_SIZE_A64 = 3, /* 64-bit address offset */ LSC_ADDR_SIZE_A64 = 3, /* 64-bit address offset */
@@ -1827,7 +1827,7 @@ enum PACKED lsc_addr_size {
* address type specifies how the dataport message decodes the Extended * address type specifies how the dataport message decodes the Extended
* Descriptor for the surface attributes and address calculation. * Descriptor for the surface attributes and address calculation.
*/ */
enum PACKED lsc_addr_surface_type { enum ENUM_PACKED lsc_addr_surface_type {
LSC_ADDR_SURFTYPE_FLAT = 0, /* Flat */ LSC_ADDR_SURFTYPE_FLAT = 0, /* Flat */
LSC_ADDR_SURFTYPE_BSS = 1, /* Bindless surface state */ LSC_ADDR_SURFTYPE_BSS = 1, /* Bindless surface state */
LSC_ADDR_SURFTYPE_SS = 2, /* Surface state */ LSC_ADDR_SURFTYPE_SS = 2, /* Surface state */
@@ -1867,7 +1867,7 @@ enum lsc_cache_load {
* (WT), write-back (WB) and streaming (S). Dataport L3 cache policies are * (WT), write-back (WB) and streaming (S). Dataport L3 cache policies are
* uncached (UC) and cached (WB). * uncached (UC) and cached (WB).
*/ */
enum PACKED lsc_cache_store { enum ENUM_PACKED lsc_cache_store {
/* No override. Use the non-pipelined or surface state cache settings for L1 /* No override. Use the non-pipelined or surface state cache settings for L1
* and L3. * and L3.
*/ */
@@ -1893,7 +1893,7 @@ enum PACKED lsc_cache_store {
* Specifies which components of the data payload 4-element vector (X,Y,Z,W) is * Specifies which components of the data payload 4-element vector (X,Y,Z,W) is
* packed into the register payload. * packed into the register payload.
*/ */
enum PACKED lsc_cmask { enum ENUM_PACKED lsc_cmask {
LSC_CMASK_X = 0x1, LSC_CMASK_X = 0x1,
LSC_CMASK_Y = 0x2, LSC_CMASK_Y = 0x2,
LSC_CMASK_XY = 0x3, LSC_CMASK_XY = 0x3,
@@ -1914,7 +1914,7 @@ enum PACKED lsc_cmask {
/* /*
* Specifies the size of the data payload item in a dataport message. * Specifies the size of the data payload item in a dataport message.
*/ */
enum PACKED lsc_data_size { enum ENUM_PACKED lsc_data_size {
/* 8-bit scalar data value in memory, packed into a 8-bit data value in /* 8-bit scalar data value in memory, packed into a 8-bit data value in
* register. * register.
*/ */
@@ -1948,7 +1948,7 @@ enum PACKED lsc_data_size {
/* /*
* Enum specifies the scope of the fence. * Enum specifies the scope of the fence.
*/ */
enum PACKED lsc_fence_scope { enum ENUM_PACKED lsc_fence_scope {
/* Wait until all previous memory transactions from this thread are observed /* Wait until all previous memory transactions from this thread are observed
* within the local thread-group. * within the local thread-group.
*/ */
@@ -1985,7 +1985,7 @@ enum PACKED lsc_fence_scope {
* Specifies the type of cache flush operation to perform after a fence is * Specifies the type of cache flush operation to perform after a fence is
* complete. * complete.
*/ */
enum PACKED lsc_flush_type { enum ENUM_PACKED lsc_flush_type {
LSC_FLUSH_TYPE_NONE = 0, LSC_FLUSH_TYPE_NONE = 0,
/* /*
* For a R/W cache, evict dirty lines (M to I state) and invalidate clean * For a R/W cache, evict dirty lines (M to I state) and invalidate clean
@@ -2018,7 +2018,7 @@ enum PACKED lsc_flush_type {
}; };
enum PACKED lsc_backup_fence_routing { enum ENUM_PACKED lsc_backup_fence_routing {
/* Normal routing: UGM fence is routed to UGM pipeline. */ /* Normal routing: UGM fence is routed to UGM pipeline. */
LSC_NORMAL_ROUTING, LSC_NORMAL_ROUTING,
/* Route UGM fence to LSC unit. */ /* Route UGM fence to LSC unit. */
@@ -2028,7 +2028,7 @@ enum PACKED lsc_backup_fence_routing {
/* /*
* Specifies the size of the vector in a dataport message. * Specifies the size of the vector in a dataport message.
*/ */
enum PACKED lsc_vect_size { enum ENUM_PACKED lsc_vect_size {
LSC_VECT_SIZE_V1 = 0, /* vector length 1 */ LSC_VECT_SIZE_V1 = 0, /* vector length 1 */
LSC_VECT_SIZE_V2 = 1, /* vector length 2 */ LSC_VECT_SIZE_V2 = 1, /* vector length 2 */
LSC_VECT_SIZE_V3 = 2, /* Vector length 3 */ LSC_VECT_SIZE_V3 = 2, /* Vector length 3 */

View File

@@ -415,7 +415,7 @@ enum isl_format {
/** /**
* Numerical base type for channels of isl_format. * Numerical base type for channels of isl_format.
*/ */
enum PACKED isl_base_type { enum ENUM_PACKED isl_base_type {
/** Data which takes up space but is ignored */ /** Data which takes up space but is ignored */
ISL_VOID, ISL_VOID,
@@ -1140,7 +1140,7 @@ typedef uint8_t isl_channel_mask_t;
/** /**
* @brief A channel select (also known as texture swizzle) value * @brief A channel select (also known as texture swizzle) value
*/ */
enum PACKED isl_channel_select { enum ENUM_PACKED isl_channel_select {
ISL_CHANNEL_SELECT_ZERO = 0, ISL_CHANNEL_SELECT_ZERO = 0,
ISL_CHANNEL_SELECT_ONE = 1, ISL_CHANNEL_SELECT_ONE = 1,
ISL_CHANNEL_SELECT_RED = 4, ISL_CHANNEL_SELECT_RED = 4,

View File

@@ -55,7 +55,7 @@ struct intel_perf_query_info;
#define INTEL_PERF_INVALID_CTX_ID (0xffffffff) #define INTEL_PERF_INVALID_CTX_ID (0xffffffff)
enum PACKED intel_perf_counter_type { enum ENUM_PACKED intel_perf_counter_type {
INTEL_PERF_COUNTER_TYPE_EVENT, INTEL_PERF_COUNTER_TYPE_EVENT,
INTEL_PERF_COUNTER_TYPE_DURATION_NORM, INTEL_PERF_COUNTER_TYPE_DURATION_NORM,
INTEL_PERF_COUNTER_TYPE_DURATION_RAW, INTEL_PERF_COUNTER_TYPE_DURATION_RAW,
@@ -64,7 +64,7 @@ enum PACKED intel_perf_counter_type {
INTEL_PERF_COUNTER_TYPE_TIMESTAMP, INTEL_PERF_COUNTER_TYPE_TIMESTAMP,
}; };
enum PACKED intel_perf_counter_data_type { enum ENUM_PACKED intel_perf_counter_data_type {
INTEL_PERF_COUNTER_DATA_TYPE_BOOL32, INTEL_PERF_COUNTER_DATA_TYPE_BOOL32,
INTEL_PERF_COUNTER_DATA_TYPE_UINT32, INTEL_PERF_COUNTER_DATA_TYPE_UINT32,
INTEL_PERF_COUNTER_DATA_TYPE_UINT64, INTEL_PERF_COUNTER_DATA_TYPE_UINT64,
@@ -72,7 +72,7 @@ enum PACKED intel_perf_counter_data_type {
INTEL_PERF_COUNTER_DATA_TYPE_DOUBLE, INTEL_PERF_COUNTER_DATA_TYPE_DOUBLE,
}; };
enum PACKED intel_perf_counter_units { enum ENUM_PACKED intel_perf_counter_units {
/* size */ /* size */
INTEL_PERF_COUNTER_UNITS_BYTES, INTEL_PERF_COUNTER_UNITS_BYTES,
INTEL_PERF_COUNTER_UNITS_GBPS, INTEL_PERF_COUNTER_UNITS_GBPS,

View File

@@ -82,7 +82,7 @@ _mesa_is_api_gles2(gl_api api)
* *
* result_bit = logic_op & (1 << (2 * src_bit + dst_bit)) * result_bit = logic_op & (1 << (2 * src_bit + dst_bit))
*/ */
enum PACKED gl_logicop_mode { enum ENUM_PACKED gl_logicop_mode {
COLOR_LOGICOP_CLEAR = 0, COLOR_LOGICOP_CLEAR = 0,
COLOR_LOGICOP_NOR = 1, COLOR_LOGICOP_NOR = 1,
COLOR_LOGICOP_AND_INVERTED = 2, COLOR_LOGICOP_AND_INVERTED = 2,

View File

@@ -209,8 +209,10 @@ do { \
# else # else
# define PACKED __attribute__((__packed__)) # define PACKED __attribute__((__packed__))
# endif # endif
# define ENUM_PACKED __attribute__((packed))
#else #else
#define PACKED #define PACKED
#define ENUM_PACKED
#endif #endif
/* Attribute pure is used for functions that have no effects other than their /* Attribute pure is used for functions that have no effects other than their

View File

@@ -219,7 +219,7 @@ struct vk_discard_rectangles_state {
VkRect2D rectangles[MESA_VK_MAX_DISCARD_RECTANGLES]; VkRect2D rectangles[MESA_VK_MAX_DISCARD_RECTANGLES];
}; };
enum PACKED vk_mesa_depth_clip_enable { enum ENUM_PACKED vk_mesa_depth_clip_enable {
/** Depth clipping should be disabled */ /** Depth clipping should be disabled */
VK_MESA_DEPTH_CLIP_ENABLE_FALSE = 0, VK_MESA_DEPTH_CLIP_ENABLE_FALSE = 0,