This file is auto-generated by tools/update_cpu_features.zig.
//! This file is auto-generated by tools/update_cpu_features.zig.
const std = @import("../std.zig");
const CpuFeature = std.Target.Cpu.Feature;
const CpuModel = std.Target.Cpu.Model;
pub const Feature = enum {
abort_khr,
arithmetic_fence_ext,
atomic_float16add_ext,
atomic_float16min_max_ext,
atomic_float32add_ext,
atomic_float32min_max_ext,
atomic_float64add_ext,
atomic_float64min_max_ext,
atomic_storage,
atomic_storage_ops,
b_float16cooperative_matrix_khr,
b_float16dot_product_khr,
b_float16type_khr,
bit_instructions,
clip_distance,
compute_derivative_group_linear_khr,
compute_derivative_group_quads_khr,
constant_data_khr,
cooperative_matrix_khr,
cull_distance,
demote_to_helper_invocation,
denorm_flush_to_zero,
denorm_preserve,
derivative_control,
descriptor_heap_ext,
device_enqueue,
device_group,
dot_product,
dot_product_input4x8bit,
dot_product_input4x8bit_packed,
dot_product_input_all,
draw_parameters,
expect_assume_khr,
float16,
float16buffer,
float64,
float8cooperative_matrix_ext,
float8ext,
float_controls2,
fmakhr,
fragment_barycentric_khr,
fragment_density_ext,
fragment_fully_covered_ext,
fragment_shader_pixel_interlock_ext,
fragment_shader_sample_interlock_ext,
fragment_shader_shading_rate_interlock_ext,
fragment_shading_rate_khr,
generic_pointer,
geometry,
geometry_point_size,
geometry_streams,
group_non_uniform,
group_non_uniform_arithmetic,
group_non_uniform_ballot,
group_non_uniform_clustered,
group_non_uniform_partitioned_ext,
group_non_uniform_quad,
group_non_uniform_rotate_khr,
group_non_uniform_shuffle,
group_non_uniform_shuffle_relative,
group_non_uniform_vote,
group_uniform_arithmetic_khr,
groups,
image_basic,
image_buffer,
image_cube_array,
image_gather_extended,
image_mipmap,
image_ms_array,
image_query,
image_read_write,
image_rect,
input_attachment,
input_attachment_array_dynamic_indexing,
input_attachment_array_non_uniform_indexing,
int16,
int64,
int64atomics,
int64image_ext,
int8,
interpolation_function,
literal_sampler,
long_vector_ext,
matrix,
mesh_shading_ext,
min_lod,
multi_view,
multi_viewport,
named_barrier,
opt_none_ext,
pipe_storage,
pipes,
poison_freeze_khr,
quad_control_khr,
ray_cull_mask_khr,
ray_query_khr,
ray_query_position_fetch_khr,
ray_query_provisional_khr,
ray_tracing_khr,
ray_tracing_opacity_micromap_ext,
ray_tracing_position_fetch_khr,
ray_tracing_provisional_khr,
ray_traversal_primitive_culling_khr,
replicated_composites_ext,
runtime_descriptor_array,
sample_mask_post_depth_coverage,
sample_rate_shading,
sampled_buffer,
sampled_cube_array,
sampled_image_array_dynamic_indexing,
sampled_image_array_non_uniform_indexing,
sampled_rect,
shader64bit_indexing_ext,
shader_clock_khr,
shader_invocation_reorder_ext,
shader_layer,
shader_non_uniform,
shader_viewport_index,
shader_viewport_index_layer_ext,
signed_zero_inf_nan_preserve,
sparse_residency,
SPV_EXT_arithmetic_fence,
SPV_EXT_demote_to_helper_invocation,
SPV_EXT_descriptor_heap,
SPV_EXT_descriptor_indexing,
SPV_EXT_float8,
SPV_EXT_fragment_fully_covered,
SPV_EXT_fragment_invocation_density,
SPV_EXT_fragment_shader_interlock,
SPV_EXT_long_vector,
SPV_EXT_mesh_shader,
SPV_EXT_opacity_micromap,
SPV_EXT_optnone,
SPV_EXT_physical_storage_buffer,
SPV_EXT_replicated_composites,
SPV_EXT_shader_64bit_indexing,
SPV_EXT_shader_atomic_float16_add,
SPV_EXT_shader_atomic_float_add,
SPV_EXT_shader_atomic_float_min_max,
SPV_EXT_shader_image_int64,
SPV_EXT_shader_invocation_reorder,
SPV_EXT_shader_stencil_export,
SPV_EXT_shader_subgroup_partitioned,
SPV_EXT_shader_tile_image,
SPV_EXT_shader_viewport_index_layer,
SPV_KHR_16bit_storage,
SPV_KHR_8bit_storage,
SPV_KHR_abort,
SPV_KHR_bfloat16,
SPV_KHR_bit_instructions,
SPV_KHR_compute_shader_derivatives,
SPV_KHR_constant_data,
SPV_KHR_cooperative_matrix,
SPV_KHR_device_group,
SPV_KHR_expect_assume,
SPV_KHR_float_controls,
SPV_KHR_float_controls2,
SPV_KHR_fma,
SPV_KHR_fragment_shader_barycentric,
SPV_KHR_fragment_shading_rate,
SPV_KHR_integer_dot_product,
SPV_KHR_multiview,
SPV_KHR_poison_freeze,
SPV_KHR_post_depth_coverage,
SPV_KHR_quad_control,
SPV_KHR_ray_cull_mask,
SPV_KHR_ray_query,
SPV_KHR_ray_tracing,
SPV_KHR_ray_tracing_position_fetch,
SPV_KHR_shader_atomic_counter_ops,
SPV_KHR_shader_ballot,
SPV_KHR_shader_clock,
SPV_KHR_shader_draw_parameters,
SPV_KHR_subgroup_rotate,
SPV_KHR_subgroup_vote,
SPV_KHR_uniform_group_instructions,
SPV_KHR_untyped_pointers,
SPV_KHR_variable_pointers,
SPV_KHR_vulkan_memory_model,
SPV_KHR_workgroup_memory_explicit_layout,
stencil_export_ext,
storage_buffer16bit_access,
storage_buffer8bit_access,
storage_buffer_array_dynamic_indexing,
storage_buffer_array_non_uniform_indexing,
storage_image_array_dynamic_indexing,
storage_image_array_non_uniform_indexing,
storage_image_extended_formats,
storage_image_multisample,
storage_image_read_without_format,
storage_image_write_without_format,
storage_input_output16,
storage_push_constant16,
storage_push_constant8,
storage_texel_buffer_array_dynamic_indexing,
storage_texel_buffer_array_non_uniform_indexing,
subgroup_ballot_khr,
subgroup_dispatch,
subgroup_vote_khr,
tessellation,
tessellation_point_size,
tile_image_color_read_access_ext,
tile_image_depth_read_access_ext,
tile_image_stencil_read_access_ext,
transform_feedback,
uniform_and_storage_buffer16bit_access,
uniform_and_storage_buffer8bit_access,
uniform_buffer_array_dynamic_indexing,
uniform_buffer_array_non_uniform_indexing,
uniform_decoration,
uniform_texel_buffer_array_dynamic_indexing,
uniform_texel_buffer_array_non_uniform_indexing,
untyped_pointers_khr,
v1_0,
v1_1,
v1_2,
v1_3,
v1_4,
v1_5,
v1_6,
variable_pointers,
variable_pointers_storage_buffer,
vector16,
vulkan_memory_model,
vulkan_memory_model_device_scope,
workgroup_memory_explicit_layout16bit_access_khr,
workgroup_memory_explicit_layout8bit_access_khr,
workgroup_memory_explicit_layout_khr,
};
pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet;
pub const featureSetHas = CpuFeature.FeatureSetFns(Feature).featureSetHas;
pub const featureSetHasAny = CpuFeature.FeatureSetFns(Feature).featureSetHasAny;
pub const featureSetHasAll = CpuFeature.FeatureSetFns(Feature).featureSetHasAll;
pub const all_features = blk: {
@setEvalBranchQuota(2000);
const len = @typeInfo(Feature).@"enum".field_names.len;
std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
var result: [len]CpuFeature = undefined;
result[@backingInt(Feature.abort_khr)] = .{
.llvm_name = null,
.description = "Enable abort_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_abort,
.v1_0,
}),
};
result[@backingInt(Feature.arithmetic_fence_ext)] = .{
.llvm_name = null,
.description = "Enable arithmetic_fence_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_arithmetic_fence,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_float16add_ext)] = .{
.llvm_name = null,
.description = "Enable atomic_float16add_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_atomic_float16_add,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_float16min_max_ext)] = .{
.llvm_name = null,
.description = "Enable atomic_float16min_max_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_atomic_float_min_max,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_float32add_ext)] = .{
.llvm_name = null,
.description = "Enable atomic_float32add_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_atomic_float_add,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_float32min_max_ext)] = .{
.llvm_name = null,
.description = "Enable atomic_float32min_max_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_atomic_float_min_max,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_float64add_ext)] = .{
.llvm_name = null,
.description = "Enable atomic_float64add_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_atomic_float_add,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_float64min_max_ext)] = .{
.llvm_name = null,
.description = "Enable atomic_float64min_max_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_atomic_float_min_max,
.v1_0,
}),
};
result[@backingInt(Feature.atomic_storage)] = .{
.llvm_name = null,
.description = "Enable atomic_storage capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.atomic_storage_ops)] = .{
.llvm_name = null,
.description = "Enable atomic_storage_ops capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_shader_atomic_counter_ops,
.v1_0,
}),
};
result[@backingInt(Feature.b_float16cooperative_matrix_khr)] = .{
.llvm_name = null,
.description = "Enable b_float16cooperative_matrix_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_bfloat16,
.v1_0,
}),
};
result[@backingInt(Feature.b_float16dot_product_khr)] = .{
.llvm_name = null,
.description = "Enable b_float16dot_product_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_bfloat16,
.v1_0,
}),
};
result[@backingInt(Feature.b_float16type_khr)] = .{
.llvm_name = null,
.description = "Enable b_float16type_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_bfloat16,
.v1_0,
}),
};
result[@backingInt(Feature.bit_instructions)] = .{
.llvm_name = null,
.description = "Enable bit_instructions capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_bit_instructions,
.v1_0,
}),
};
result[@backingInt(Feature.clip_distance)] = .{
.llvm_name = null,
.description = "Enable clip_distance capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.compute_derivative_group_linear_khr)] = .{
.llvm_name = null,
.description = "Enable compute_derivative_group_linear_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_compute_shader_derivatives,
.v1_0,
}),
};
result[@backingInt(Feature.compute_derivative_group_quads_khr)] = .{
.llvm_name = null,
.description = "Enable compute_derivative_group_quads_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_compute_shader_derivatives,
.v1_0,
}),
};
result[@backingInt(Feature.constant_data_khr)] = .{
.llvm_name = null,
.description = "Enable constant_data_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_constant_data,
.v1_0,
}),
};
result[@backingInt(Feature.cooperative_matrix_khr)] = .{
.llvm_name = null,
.description = "Enable cooperative_matrix_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_cooperative_matrix,
.v1_0,
}),
};
result[@backingInt(Feature.cull_distance)] = .{
.llvm_name = null,
.description = "Enable cull_distance capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.demote_to_helper_invocation)] = .{
.llvm_name = null,
.description = "Enable demote_to_helper_invocation capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_demote_to_helper_invocation,
.v1_6,
}),
};
result[@backingInt(Feature.denorm_flush_to_zero)] = .{
.llvm_name = null,
.description = "Enable denorm_flush_to_zero capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_float_controls,
.v1_4,
}),
};
result[@backingInt(Feature.denorm_preserve)] = .{
.llvm_name = null,
.description = "Enable denorm_preserve capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_float_controls,
.v1_4,
}),
};
result[@backingInt(Feature.derivative_control)] = .{
.llvm_name = null,
.description = "Enable derivative_control capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.descriptor_heap_ext)] = .{
.llvm_name = null,
.description = "Enable descriptor_heap_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_heap,
.v1_0,
}),
};
result[@backingInt(Feature.device_enqueue)] = .{
.llvm_name = null,
.description = "Enable device_enqueue capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.device_group)] = .{
.llvm_name = null,
.description = "Enable device_group capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_device_group,
.v1_3,
}),
};
result[@backingInt(Feature.dot_product)] = .{
.llvm_name = null,
.description = "Enable dot_product capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_integer_dot_product,
.v1_6,
}),
};
result[@backingInt(Feature.dot_product_input4x8bit)] = .{
.llvm_name = null,
.description = "Enable dot_product_input4x8bit capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_integer_dot_product,
.v1_6,
}),
};
result[@backingInt(Feature.dot_product_input4x8bit_packed)] = .{
.llvm_name = null,
.description = "Enable dot_product_input4x8bit_packed capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_integer_dot_product,
.v1_6,
}),
};
result[@backingInt(Feature.dot_product_input_all)] = .{
.llvm_name = null,
.description = "Enable dot_product_input_all capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_integer_dot_product,
.v1_6,
}),
};
result[@backingInt(Feature.draw_parameters)] = .{
.llvm_name = null,
.description = "Enable draw_parameters capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_shader_draw_parameters,
.v1_3,
}),
};
result[@backingInt(Feature.expect_assume_khr)] = .{
.llvm_name = null,
.description = "Enable expect_assume_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_expect_assume,
.v1_0,
}),
};
result[@backingInt(Feature.float16)] = .{
.llvm_name = null,
.description = "Enable float16 capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.float16buffer)] = .{
.llvm_name = null,
.description = "Enable float16buffer capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.float64)] = .{
.llvm_name = null,
.description = "Enable float64 capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.float8cooperative_matrix_ext)] = .{
.llvm_name = null,
.description = "Enable float8cooperative_matrix_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_float8,
.v1_0,
}),
};
result[@backingInt(Feature.float8ext)] = .{
.llvm_name = null,
.description = "Enable float8ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_float8,
.v1_0,
}),
};
result[@backingInt(Feature.float_controls2)] = .{
.llvm_name = null,
.description = "Enable float_controls2 capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_float_controls2,
.v1_0,
}),
};
result[@backingInt(Feature.fmakhr)] = .{
.llvm_name = null,
.description = "Enable fmakhr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_fma,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_barycentric_khr)] = .{
.llvm_name = null,
.description = "Enable fragment_barycentric_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_fragment_shader_barycentric,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_density_ext)] = .{
.llvm_name = null,
.description = "Enable fragment_density_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_fragment_invocation_density,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_fully_covered_ext)] = .{
.llvm_name = null,
.description = "Enable fragment_fully_covered_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_fragment_fully_covered,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_shader_pixel_interlock_ext)] = .{
.llvm_name = null,
.description = "Enable fragment_shader_pixel_interlock_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_fragment_shader_interlock,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_shader_sample_interlock_ext)] = .{
.llvm_name = null,
.description = "Enable fragment_shader_sample_interlock_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_fragment_shader_interlock,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_shader_shading_rate_interlock_ext)] = .{
.llvm_name = null,
.description = "Enable fragment_shader_shading_rate_interlock_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_fragment_shader_interlock,
.v1_0,
}),
};
result[@backingInt(Feature.fragment_shading_rate_khr)] = .{
.llvm_name = null,
.description = "Enable fragment_shading_rate_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_fragment_shading_rate,
.v1_0,
}),
};
result[@backingInt(Feature.generic_pointer)] = .{
.llvm_name = null,
.description = "Enable generic_pointer capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.geometry)] = .{
.llvm_name = null,
.description = "Enable geometry capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.geometry_point_size)] = .{
.llvm_name = null,
.description = "Enable geometry_point_size capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.geometry_streams)] = .{
.llvm_name = null,
.description = "Enable geometry_streams capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.group_non_uniform)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_arithmetic)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_arithmetic capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_ballot)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_ballot capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_clustered)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_clustered capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_partitioned_ext)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_partitioned_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_subgroup_partitioned,
.v1_0,
}),
};
result[@backingInt(Feature.group_non_uniform_quad)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_quad capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_rotate_khr)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_rotate_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_subgroup_rotate,
.v1_0,
}),
};
result[@backingInt(Feature.group_non_uniform_shuffle)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_shuffle capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_shuffle_relative)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_shuffle_relative capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_non_uniform_vote)] = .{
.llvm_name = null,
.description = "Enable group_non_uniform_vote capability",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.group_uniform_arithmetic_khr)] = .{
.llvm_name = null,
.description = "Enable group_uniform_arithmetic_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_uniform_group_instructions,
.v1_0,
}),
};
result[@backingInt(Feature.groups)] = .{
.llvm_name = null,
.description = "Enable groups capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_basic)] = .{
.llvm_name = null,
.description = "Enable image_basic capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_buffer)] = .{
.llvm_name = null,
.description = "Enable image_buffer capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_cube_array)] = .{
.llvm_name = null,
.description = "Enable image_cube_array capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_gather_extended)] = .{
.llvm_name = null,
.description = "Enable image_gather_extended capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_mipmap)] = .{
.llvm_name = null,
.description = "Enable image_mipmap capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_ms_array)] = .{
.llvm_name = null,
.description = "Enable image_ms_array capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_query)] = .{
.llvm_name = null,
.description = "Enable image_query capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_read_write)] = .{
.llvm_name = null,
.description = "Enable image_read_write capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.image_rect)] = .{
.llvm_name = null,
.description = "Enable image_rect capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.input_attachment)] = .{
.llvm_name = null,
.description = "Enable input_attachment capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.input_attachment_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable input_attachment_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.input_attachment_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable input_attachment_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.int16)] = .{
.llvm_name = null,
.description = "Enable int16 capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.int64)] = .{
.llvm_name = null,
.description = "Enable int64 capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.int64atomics)] = .{
.llvm_name = null,
.description = "Enable int64atomics capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.int64image_ext)] = .{
.llvm_name = null,
.description = "Enable int64image_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_image_int64,
.v1_0,
}),
};
result[@backingInt(Feature.int8)] = .{
.llvm_name = null,
.description = "Enable int8 capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.interpolation_function)] = .{
.llvm_name = null,
.description = "Enable interpolation_function capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.literal_sampler)] = .{
.llvm_name = null,
.description = "Enable literal_sampler capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.long_vector_ext)] = .{
.llvm_name = null,
.description = "Enable long_vector_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_long_vector,
.v1_0,
}),
};
result[@backingInt(Feature.matrix)] = .{
.llvm_name = null,
.description = "Enable matrix capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.mesh_shading_ext)] = .{
.llvm_name = null,
.description = "Enable mesh_shading_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_mesh_shader,
.v1_0,
}),
};
result[@backingInt(Feature.min_lod)] = .{
.llvm_name = null,
.description = "Enable min_lod capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.multi_view)] = .{
.llvm_name = null,
.description = "Enable multi_view capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_multiview,
.v1_3,
}),
};
result[@backingInt(Feature.multi_viewport)] = .{
.llvm_name = null,
.description = "Enable multi_viewport capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.named_barrier)] = .{
.llvm_name = null,
.description = "Enable named_barrier capability",
.dependencies = featureSet(&[_]Feature{
.v1_1,
}),
};
result[@backingInt(Feature.opt_none_ext)] = .{
.llvm_name = null,
.description = "Enable opt_none_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_optnone,
.v1_0,
}),
};
result[@backingInt(Feature.pipe_storage)] = .{
.llvm_name = null,
.description = "Enable pipe_storage capability",
.dependencies = featureSet(&[_]Feature{
.v1_1,
}),
};
result[@backingInt(Feature.pipes)] = .{
.llvm_name = null,
.description = "Enable pipes capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.poison_freeze_khr)] = .{
.llvm_name = null,
.description = "Enable poison_freeze_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_poison_freeze,
.v1_0,
}),
};
result[@backingInt(Feature.quad_control_khr)] = .{
.llvm_name = null,
.description = "Enable quad_control_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_quad_control,
.v1_0,
}),
};
result[@backingInt(Feature.ray_cull_mask_khr)] = .{
.llvm_name = null,
.description = "Enable ray_cull_mask_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_cull_mask,
.v1_0,
}),
};
result[@backingInt(Feature.ray_query_khr)] = .{
.llvm_name = null,
.description = "Enable ray_query_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_query,
.v1_0,
}),
};
result[@backingInt(Feature.ray_query_position_fetch_khr)] = .{
.llvm_name = null,
.description = "Enable ray_query_position_fetch_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_tracing_position_fetch,
.v1_0,
}),
};
result[@backingInt(Feature.ray_query_provisional_khr)] = .{
.llvm_name = null,
.description = "Enable ray_query_provisional_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_query,
.v1_0,
}),
};
result[@backingInt(Feature.ray_tracing_khr)] = .{
.llvm_name = null,
.description = "Enable ray_tracing_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_tracing,
.v1_0,
}),
};
result[@backingInt(Feature.ray_tracing_opacity_micromap_ext)] = .{
.llvm_name = null,
.description = "Enable ray_tracing_opacity_micromap_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_opacity_micromap,
.v1_0,
}),
};
result[@backingInt(Feature.ray_tracing_position_fetch_khr)] = .{
.llvm_name = null,
.description = "Enable ray_tracing_position_fetch_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_tracing_position_fetch,
.v1_0,
}),
};
result[@backingInt(Feature.ray_tracing_provisional_khr)] = .{
.llvm_name = null,
.description = "Enable ray_tracing_provisional_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_tracing,
.v1_0,
}),
};
result[@backingInt(Feature.ray_traversal_primitive_culling_khr)] = .{
.llvm_name = null,
.description = "Enable ray_traversal_primitive_culling_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_ray_query,
.SPV_KHR_ray_tracing,
.v1_0,
}),
};
result[@backingInt(Feature.replicated_composites_ext)] = .{
.llvm_name = null,
.description = "Enable replicated_composites_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_replicated_composites,
.v1_0,
}),
};
result[@backingInt(Feature.runtime_descriptor_array)] = .{
.llvm_name = null,
.description = "Enable runtime_descriptor_array capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.sample_mask_post_depth_coverage)] = .{
.llvm_name = null,
.description = "Enable sample_mask_post_depth_coverage capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_post_depth_coverage,
.v1_0,
}),
};
result[@backingInt(Feature.sample_rate_shading)] = .{
.llvm_name = null,
.description = "Enable sample_rate_shading capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.sampled_buffer)] = .{
.llvm_name = null,
.description = "Enable sampled_buffer capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.sampled_cube_array)] = .{
.llvm_name = null,
.description = "Enable sampled_cube_array capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.sampled_image_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable sampled_image_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.sampled_image_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable sampled_image_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.sampled_rect)] = .{
.llvm_name = null,
.description = "Enable sampled_rect capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.shader64bit_indexing_ext)] = .{
.llvm_name = null,
.description = "Enable shader64bit_indexing_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_64bit_indexing,
.v1_0,
}),
};
result[@backingInt(Feature.shader_clock_khr)] = .{
.llvm_name = null,
.description = "Enable shader_clock_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_shader_clock,
.v1_0,
}),
};
result[@backingInt(Feature.shader_invocation_reorder_ext)] = .{
.llvm_name = null,
.description = "Enable shader_invocation_reorder_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_invocation_reorder,
.v1_0,
}),
};
result[@backingInt(Feature.shader_layer)] = .{
.llvm_name = null,
.description = "Enable shader_layer capability",
.dependencies = featureSet(&[_]Feature{
.v1_5,
}),
};
result[@backingInt(Feature.shader_non_uniform)] = .{
.llvm_name = null,
.description = "Enable shader_non_uniform capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.shader_viewport_index)] = .{
.llvm_name = null,
.description = "Enable shader_viewport_index capability",
.dependencies = featureSet(&[_]Feature{
.v1_5,
}),
};
result[@backingInt(Feature.shader_viewport_index_layer_ext)] = .{
.llvm_name = null,
.description = "Enable shader_viewport_index_layer_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_viewport_index_layer,
.v1_0,
}),
};
result[@backingInt(Feature.signed_zero_inf_nan_preserve)] = .{
.llvm_name = null,
.description = "Enable signed_zero_inf_nan_preserve capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_float_controls,
.v1_4,
}),
};
result[@backingInt(Feature.sparse_residency)] = .{
.llvm_name = null,
.description = "Enable sparse_residency capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.SPV_EXT_arithmetic_fence)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_arithmetic_fence extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_demote_to_helper_invocation)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_demote_to_helper_invocation extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_descriptor_heap)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_descriptor_heap extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_descriptor_indexing)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_descriptor_indexing extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_float8)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_float8 extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_fragment_fully_covered)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_fragment_fully_covered extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_fragment_invocation_density)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_fragment_invocation_density extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_fragment_shader_interlock)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_fragment_shader_interlock extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_long_vector)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_long_vector extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_mesh_shader)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_mesh_shader extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_opacity_micromap)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_opacity_micromap extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_optnone)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_optnone extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_physical_storage_buffer)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_physical_storage_buffer extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_replicated_composites)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_replicated_composites extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_64bit_indexing)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_64bit_indexing extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_atomic_float16_add)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_atomic_float16_add extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_atomic_float_add)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_atomic_float_add extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_atomic_float_min_max)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_atomic_float_min_max extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_image_int64)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_image_int64 extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_invocation_reorder)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_invocation_reorder extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_stencil_export)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_stencil_export extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_subgroup_partitioned)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_subgroup_partitioned extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_tile_image)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_tile_image extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_EXT_shader_viewport_index_layer)] = .{
.llvm_name = null,
.description = "Enable SPV_EXT_shader_viewport_index_layer extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_16bit_storage)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_16bit_storage extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_8bit_storage)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_8bit_storage extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_abort)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_abort extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_bfloat16)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_bfloat16 extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_bit_instructions)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_bit_instructions extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_compute_shader_derivatives)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_compute_shader_derivatives extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_constant_data)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_constant_data extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_cooperative_matrix)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_cooperative_matrix extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_device_group)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_device_group extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_expect_assume)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_expect_assume extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_float_controls)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_float_controls extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_float_controls2)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_float_controls2 extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_fma)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_fma extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_fragment_shader_barycentric)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_fragment_shader_barycentric extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_fragment_shading_rate)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_fragment_shading_rate extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_integer_dot_product)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_integer_dot_product extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_multiview)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_multiview extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_poison_freeze)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_poison_freeze extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_post_depth_coverage)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_post_depth_coverage extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_quad_control)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_quad_control extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_ray_cull_mask)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_ray_cull_mask extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_ray_query)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_ray_query extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_ray_tracing)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_ray_tracing extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_ray_tracing_position_fetch)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_ray_tracing_position_fetch extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_shader_atomic_counter_ops)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_shader_atomic_counter_ops extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_shader_ballot)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_shader_ballot extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_shader_clock)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_shader_clock extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_shader_draw_parameters)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_shader_draw_parameters extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_subgroup_rotate)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_subgroup_rotate extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_subgroup_vote)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_subgroup_vote extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_uniform_group_instructions)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_uniform_group_instructions extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_untyped_pointers)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_untyped_pointers extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_variable_pointers)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_variable_pointers extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_vulkan_memory_model)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_vulkan_memory_model extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.SPV_KHR_workgroup_memory_explicit_layout)] = .{
.llvm_name = null,
.description = "Enable SPV_KHR_workgroup_memory_explicit_layout extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.stencil_export_ext)] = .{
.llvm_name = null,
.description = "Enable stencil_export_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_stencil_export,
.v1_0,
}),
};
result[@backingInt(Feature.storage_buffer16bit_access)] = .{
.llvm_name = null,
.description = "Enable storage_buffer16bit_access capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_16bit_storage,
.v1_3,
}),
};
result[@backingInt(Feature.storage_buffer8bit_access)] = .{
.llvm_name = null,
.description = "Enable storage_buffer8bit_access capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_8bit_storage,
.v1_5,
}),
};
result[@backingInt(Feature.storage_buffer_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable storage_buffer_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.storage_buffer_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable storage_buffer_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.storage_image_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable storage_image_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.storage_image_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable storage_image_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.storage_image_extended_formats)] = .{
.llvm_name = null,
.description = "Enable storage_image_extended_formats capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.storage_image_multisample)] = .{
.llvm_name = null,
.description = "Enable storage_image_multisample capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.storage_image_read_without_format)] = .{
.llvm_name = null,
.description = "Enable storage_image_read_without_format capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.storage_image_write_without_format)] = .{
.llvm_name = null,
.description = "Enable storage_image_write_without_format capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.storage_input_output16)] = .{
.llvm_name = null,
.description = "Enable storage_input_output16 capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_16bit_storage,
.v1_3,
}),
};
result[@backingInt(Feature.storage_push_constant16)] = .{
.llvm_name = null,
.description = "Enable storage_push_constant16 capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_16bit_storage,
.v1_3,
}),
};
result[@backingInt(Feature.storage_push_constant8)] = .{
.llvm_name = null,
.description = "Enable storage_push_constant8 capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_8bit_storage,
.v1_5,
}),
};
result[@backingInt(Feature.storage_texel_buffer_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable storage_texel_buffer_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.storage_texel_buffer_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable storage_texel_buffer_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.subgroup_ballot_khr)] = .{
.llvm_name = null,
.description = "Enable subgroup_ballot_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_shader_ballot,
.v1_0,
}),
};
result[@backingInt(Feature.subgroup_dispatch)] = .{
.llvm_name = null,
.description = "Enable subgroup_dispatch capability",
.dependencies = featureSet(&[_]Feature{
.v1_1,
}),
};
result[@backingInt(Feature.subgroup_vote_khr)] = .{
.llvm_name = null,
.description = "Enable subgroup_vote_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_subgroup_vote,
.v1_0,
}),
};
result[@backingInt(Feature.tessellation)] = .{
.llvm_name = null,
.description = "Enable tessellation capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.tessellation_point_size)] = .{
.llvm_name = null,
.description = "Enable tessellation_point_size capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.tile_image_color_read_access_ext)] = .{
.llvm_name = null,
.description = "Enable tile_image_color_read_access_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_tile_image,
.v1_0,
}),
};
result[@backingInt(Feature.tile_image_depth_read_access_ext)] = .{
.llvm_name = null,
.description = "Enable tile_image_depth_read_access_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_tile_image,
.v1_0,
}),
};
result[@backingInt(Feature.tile_image_stencil_read_access_ext)] = .{
.llvm_name = null,
.description = "Enable tile_image_stencil_read_access_ext capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_shader_tile_image,
.v1_0,
}),
};
result[@backingInt(Feature.transform_feedback)] = .{
.llvm_name = null,
.description = "Enable transform_feedback capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.uniform_and_storage_buffer16bit_access)] = .{
.llvm_name = null,
.description = "Enable uniform_and_storage_buffer16bit_access capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_16bit_storage,
.v1_3,
}),
};
result[@backingInt(Feature.uniform_and_storage_buffer8bit_access)] = .{
.llvm_name = null,
.description = "Enable uniform_and_storage_buffer8bit_access capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_8bit_storage,
.v1_5,
}),
};
result[@backingInt(Feature.uniform_buffer_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable uniform_buffer_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.uniform_buffer_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable uniform_buffer_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.uniform_decoration)] = .{
.llvm_name = null,
.description = "Enable uniform_decoration capability",
.dependencies = featureSet(&[_]Feature{
.v1_6,
}),
};
result[@backingInt(Feature.uniform_texel_buffer_array_dynamic_indexing)] = .{
.llvm_name = null,
.description = "Enable uniform_texel_buffer_array_dynamic_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.uniform_texel_buffer_array_non_uniform_indexing)] = .{
.llvm_name = null,
.description = "Enable uniform_texel_buffer_array_non_uniform_indexing capability",
.dependencies = featureSet(&[_]Feature{
.SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
result[@backingInt(Feature.untyped_pointers_khr)] = .{
.llvm_name = null,
.description = "Enable untyped_pointers_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_untyped_pointers,
.v1_0,
}),
};
result[@backingInt(Feature.v1_0)] = .{
.llvm_name = null,
.description = "Enable v1_0 extension",
.dependencies = featureSet(&[_]Feature{}),
};
result[@backingInt(Feature.v1_1)] = .{
.llvm_name = null,
.description = "Enable v1_1 extension",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.v1_2)] = .{
.llvm_name = null,
.description = "Enable v1_2 extension",
.dependencies = featureSet(&[_]Feature{
.v1_1,
}),
};
result[@backingInt(Feature.v1_3)] = .{
.llvm_name = null,
.description = "Enable v1_3 extension",
.dependencies = featureSet(&[_]Feature{
.v1_2,
}),
};
result[@backingInt(Feature.v1_4)] = .{
.llvm_name = null,
.description = "Enable v1_4 extension",
.dependencies = featureSet(&[_]Feature{
.v1_3,
}),
};
result[@backingInt(Feature.v1_5)] = .{
.llvm_name = null,
.description = "Enable v1_5 extension",
.dependencies = featureSet(&[_]Feature{
.v1_4,
}),
};
result[@backingInt(Feature.v1_6)] = .{
.llvm_name = null,
.description = "Enable v1_6 extension",
.dependencies = featureSet(&[_]Feature{
.v1_5,
}),
};
result[@backingInt(Feature.variable_pointers)] = .{
.llvm_name = null,
.description = "Enable variable_pointers capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_variable_pointers,
.v1_3,
}),
};
result[@backingInt(Feature.variable_pointers_storage_buffer)] = .{
.llvm_name = null,
.description = "Enable variable_pointers_storage_buffer capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_variable_pointers,
.v1_3,
}),
};
result[@backingInt(Feature.vector16)] = .{
.llvm_name = null,
.description = "Enable vector16 capability",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
result[@backingInt(Feature.vulkan_memory_model)] = .{
.llvm_name = null,
.description = "Enable vulkan_memory_model capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_vulkan_memory_model,
.v1_5,
}),
};
result[@backingInt(Feature.vulkan_memory_model_device_scope)] = .{
.llvm_name = null,
.description = "Enable vulkan_memory_model_device_scope capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_vulkan_memory_model,
.v1_5,
}),
};
result[@backingInt(Feature.workgroup_memory_explicit_layout16bit_access_khr)] = .{
.llvm_name = null,
.description = "Enable workgroup_memory_explicit_layout16bit_access_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_workgroup_memory_explicit_layout,
.v1_0,
}),
};
result[@backingInt(Feature.workgroup_memory_explicit_layout8bit_access_khr)] = .{
.llvm_name = null,
.description = "Enable workgroup_memory_explicit_layout8bit_access_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_workgroup_memory_explicit_layout,
.v1_0,
}),
};
result[@backingInt(Feature.workgroup_memory_explicit_layout_khr)] = .{
.llvm_name = null,
.description = "Enable workgroup_memory_explicit_layout_khr capability",
.dependencies = featureSet(&[_]Feature{
.SPV_KHR_workgroup_memory_explicit_layout,
.v1_0,
}),
};
const ti = @typeInfo(Feature);
for (&result, 0..) |*elem, i| {
elem.index = i;
elem.name = ti.@"enum".field_names[i];
}
break :blk result;
};
pub const cpu = struct {
pub const generic: CpuModel = .{
.name = "generic",
.llvm_name = "generic",
.features = featureSet(&[_]Feature{}),
};
pub const opencl_v2: CpuModel = .{
.name = "opencl_v2",
.llvm_name = null,
.features = featureSet(&[_]Feature{
.v1_2,
}),
};
pub const vulkan_v1_2: CpuModel = .{
.name = "vulkan_v1_2",
.llvm_name = null,
.features = featureSet(&[_]Feature{
.v1_5,
}),
};
};