mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-10-29 03:06:10 +08:00
1897 lines
68 KiB
Zig
1897 lines
68 KiB
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,
|
|
bitcast_extract_ext,
|
|
clip_distance,
|
|
compute_derivative_group_linear_khr,
|
|
compute_derivative_group_quads_khr,
|
|
constant_data_khr,
|
|
cooperative_matrix_conversions_ext,
|
|
cooperative_matrix_get_coordinate_ext,
|
|
cooperative_matrix_khr,
|
|
cooperative_matrix_per_element_operations_ext,
|
|
cooperative_matrix_reductions_ext,
|
|
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,
|
|
float4ext,
|
|
float64,
|
|
float6ext,
|
|
float8cooperative_matrix_ext,
|
|
float8ext,
|
|
float8unsigned_e8m0ext,
|
|
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,
|
|
image1d,
|
|
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,
|
|
mesh_shading_ext,
|
|
min_lod,
|
|
multi_view,
|
|
multi_viewport,
|
|
mx_int8ext,
|
|
named_barrier,
|
|
opt_none_ext,
|
|
pipe_storage,
|
|
pipes,
|
|
quad_control_khr,
|
|
ray_cull_mask_khr,
|
|
ray_query_khr,
|
|
ray_query_position_fetch_khr,
|
|
ray_tracing_khr,
|
|
ray_tracing_opacity_micromap_execution_mode_khr,
|
|
ray_tracing_opacity_micromap_khr,
|
|
ray_tracing_position_fetch_khr,
|
|
ray_traversal_primitive_culling_khr,
|
|
replicated_composites_ext,
|
|
rounding_mode_rte,
|
|
rounding_mode_rtz,
|
|
runtime_descriptor_array,
|
|
sample_mask_post_depth_coverage,
|
|
sample_rate_shading,
|
|
sampled1d,
|
|
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,
|
|
split_barrier_ext,
|
|
SPV_EXT_arithmetic_fence,
|
|
SPV_EXT_cooperative_matrix_maintenance1,
|
|
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_ocp_microscaling_types,
|
|
SPV_EXT_opacity_micromap,
|
|
SPV_EXT_optnone,
|
|
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_EXT_split_barrier,
|
|
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_opacity_micromap,
|
|
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_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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.arithmetic_fence_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable arithmetic_fence_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_arithmetic_fence,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.atomic_float16add_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable atomic_float16add_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_shader_atomic_float16_add,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.atomic_float32add_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable atomic_float32add_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_shader_atomic_float_add,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.atomic_float64add_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable atomic_float64add_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_shader_atomic_float_add,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.atomic_storage)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable atomic_storage capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.atomic_storage_ops)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable atomic_storage_ops capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.atomic_storage,
|
|
.SPV_KHR_shader_atomic_counter_ops,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.b_float16cooperative_matrix_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable b_float16cooperative_matrix_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.b_float16type_khr,
|
|
.cooperative_matrix_khr,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.b_float16dot_product_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable b_float16dot_product_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.b_float16type_khr,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.b_float16type_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable b_float16type_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_bfloat16,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.bit_instructions)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable bit_instructions capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_bit_instructions,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.bitcast_extract_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable bitcast_extract_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_ocp_microscaling_types,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.clip_distance)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable clip_distance capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.constant_data_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable constant_data_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_constant_data,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.cooperative_matrix_conversions_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable cooperative_matrix_conversions_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_cooperative_matrix_maintenance1,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.cooperative_matrix_get_coordinate_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable cooperative_matrix_get_coordinate_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_cooperative_matrix_maintenance1,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.cooperative_matrix_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable cooperative_matrix_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_cooperative_matrix,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.cooperative_matrix_per_element_operations_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable cooperative_matrix_per_element_operations_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_cooperative_matrix_maintenance1,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.cooperative_matrix_reductions_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable cooperative_matrix_reductions_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_cooperative_matrix_maintenance1,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.cull_distance)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable cull_distance capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
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{}),
|
|
};
|
|
result[@backingInt(Feature.descriptor_heap_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable descriptor_heap_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_descriptor_heap,
|
|
.untyped_pointers_khr,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.device_enqueue)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable device_enqueue capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
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{
|
|
.int8,
|
|
.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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.float16)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float16 capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.float16buffer)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float16buffer capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.float4ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float4ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_ocp_microscaling_types,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.float64)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float64 capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.float6ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float6ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_ocp_microscaling_types,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.float8cooperative_matrix_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float8cooperative_matrix_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.cooperative_matrix_khr,
|
|
.float8ext,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.float8ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float8ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_float8,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.float8unsigned_e8m0ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float8unsigned_e8m0ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_ocp_microscaling_types,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.float_controls2)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable float_controls2 capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_float_controls2,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.fmakhr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable fmakhr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_fma,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.fragment_barycentric_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable fragment_barycentric_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_fragment_shader_barycentric,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.fragment_density_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable fragment_density_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_fragment_invocation_density,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.generic_pointer)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable generic_pointer capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.geometry)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable geometry capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.geometry_point_size)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable geometry_point_size capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.geometry,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.geometry_streams)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable geometry_streams capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.geometry,
|
|
}),
|
|
};
|
|
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{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_ballot)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_ballot capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_clustered)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_clustered capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_quad)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_quad capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_rotate_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_rotate_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
.SPV_KHR_subgroup_rotate,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_shuffle)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_shuffle capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_shuffle_relative)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_shuffle_relative capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.group_non_uniform_vote)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable group_non_uniform_vote capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.group_non_uniform,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.groups)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable groups capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.image1d)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image1d capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.sampled1d,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.image_basic)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_basic capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.image_buffer)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_buffer capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.sampled_buffer,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.image_cube_array)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_cube_array capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.sampled_cube_array,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.image_gather_extended)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_gather_extended capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.image_mipmap)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_mipmap capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.image_basic,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.image_ms_array)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_ms_array capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.image_query)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_query capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.image_read_write)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_read_write capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.image_basic,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.image_rect)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable image_rect capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.sampled_rect,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.input_attachment)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable input_attachment capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.input_attachment_array_dynamic_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable input_attachment_array_dynamic_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.input_attachment,
|
|
.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{
|
|
.input_attachment,
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.int16)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable int16 capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.int64)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable int64 capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.int64atomics)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable int64atomics capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.int64,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.int64image_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable int64image_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.int64,
|
|
.SPV_EXT_shader_image_int64,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.int8)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable int8 capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.interpolation_function)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable interpolation_function capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.literal_sampler)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable literal_sampler capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.long_vector_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable long_vector_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_long_vector,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.mesh_shading_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable mesh_shading_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_mesh_shader,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.min_lod)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable min_lod capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
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{
|
|
.geometry,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.mx_int8ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable mx_int8ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_ocp_microscaling_types,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.pipe_storage)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable pipe_storage capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.pipes,
|
|
.v1_1,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.pipes)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable pipes capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.quad_control_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable quad_control_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_quad_control,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.ray_query_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable ray_query_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_ray_query,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.ray_tracing_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable ray_tracing_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_ray_tracing,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.ray_tracing_opacity_micromap_execution_mode_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable ray_tracing_opacity_micromap_execution_mode_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_opacity_micromap,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.ray_tracing_opacity_micromap_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable ray_tracing_opacity_micromap_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_opacity_micromap,
|
|
.SPV_KHR_opacity_micromap,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.replicated_composites_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable replicated_composites_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_replicated_composites,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.rounding_mode_rte)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable rounding_mode_rte capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_float_controls,
|
|
.v1_4,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.rounding_mode_rtz)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable rounding_mode_rtz capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_float_controls,
|
|
.v1_4,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.sample_rate_shading)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sample_rate_shading capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.sampled1d)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sampled1d capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.sampled_buffer)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sampled_buffer capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.sampled_cube_array)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sampled_cube_array capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.sampled_image_array_dynamic_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sampled_image_array_dynamic_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.sampled_image_array_non_uniform_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sampled_image_array_non_uniform_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.sampled_rect)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable sampled_rect capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.shader64bit_indexing_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable shader64bit_indexing_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_shader_64bit_indexing,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.shader_clock_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable shader_clock_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_shader_clock,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.shader_invocation_reorder_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable shader_invocation_reorder_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.ray_tracing_khr,
|
|
.SPV_EXT_shader_invocation_reorder,
|
|
}),
|
|
};
|
|
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{
|
|
.multi_viewport,
|
|
.SPV_EXT_shader_viewport_index_layer,
|
|
}),
|
|
};
|
|
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{}),
|
|
};
|
|
result[@backingInt(Feature.split_barrier_ext)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable split_barrier_ext capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_EXT_split_barrier,
|
|
}),
|
|
};
|
|
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_cooperative_matrix_maintenance1)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable SPV_EXT_cooperative_matrix_maintenance1 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_ocp_microscaling_types)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable SPV_EXT_ocp_microscaling_types 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_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_EXT_split_barrier)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable SPV_EXT_split_barrier 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_opacity_micromap)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable SPV_KHR_opacity_micromap 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,
|
|
}),
|
|
};
|
|
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{}),
|
|
};
|
|
result[@backingInt(Feature.storage_buffer_array_non_uniform_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_buffer_array_non_uniform_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.storage_image_array_dynamic_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_image_array_dynamic_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.storage_image_array_non_uniform_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_image_array_non_uniform_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.storage_image_extended_formats)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_image_extended_formats capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.storage_image_multisample)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_image_multisample capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.storage_image_read_without_format)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_image_read_without_format capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.storage_image_write_without_format)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable storage_image_write_without_format capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
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{
|
|
.image_buffer,
|
|
.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{
|
|
.image_buffer,
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.subgroup_ballot_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable subgroup_ballot_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_shader_ballot,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.subgroup_dispatch)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable subgroup_dispatch capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.device_enqueue,
|
|
.v1_1,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.subgroup_vote_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable subgroup_vote_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_subgroup_vote,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.tessellation)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable tessellation capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.tessellation_point_size)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable tessellation_point_size capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.tessellation,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.transform_feedback)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable transform_feedback capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.uniform_and_storage_buffer16bit_access)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable uniform_and_storage_buffer16bit_access capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.storage_buffer16bit_access,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.uniform_and_storage_buffer8bit_access)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable uniform_and_storage_buffer8bit_access capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.storage_buffer8bit_access,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.uniform_buffer_array_dynamic_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable uniform_buffer_array_dynamic_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
result[@backingInt(Feature.uniform_buffer_array_non_uniform_indexing)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable uniform_buffer_array_non_uniform_indexing capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
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{
|
|
.sampled_buffer,
|
|
.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{
|
|
.sampled_buffer,
|
|
.shader_non_uniform,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.untyped_pointers_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable untyped_pointers_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.SPV_KHR_untyped_pointers,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.v1_1)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable v1_1 extension",
|
|
.dependencies = featureSet(&[_]Feature{}),
|
|
};
|
|
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{
|
|
.variable_pointers_storage_buffer,
|
|
}),
|
|
};
|
|
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{}),
|
|
};
|
|
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{
|
|
.workgroup_memory_explicit_layout_khr,
|
|
}),
|
|
};
|
|
result[@backingInt(Feature.workgroup_memory_explicit_layout8bit_access_khr)] = .{
|
|
.llvm_name = null,
|
|
.description = "Enable workgroup_memory_explicit_layout8bit_access_khr capability",
|
|
.dependencies = featureSet(&[_]Feature{
|
|
.workgroup_memory_explicit_layout_khr,
|
|
}),
|
|
};
|
|
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,
|
|
}),
|
|
};
|
|
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 opencl_v2_1: CpuModel = .{
|
|
.name = "opencl_v2_1",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{}),
|
|
};
|
|
pub const opencl_v2_2: CpuModel = .{
|
|
.name = "opencl_v2_2",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_2,
|
|
}),
|
|
};
|
|
pub const opencl_v3_1: CpuModel = .{
|
|
.name = "opencl_v3_1",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_4,
|
|
}),
|
|
};
|
|
pub const opengl_v4_6: CpuModel = .{
|
|
.name = "opengl_v4_6",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_4,
|
|
}),
|
|
};
|
|
pub const v1_0: CpuModel = .{
|
|
.name = "v1_0",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{}),
|
|
};
|
|
pub const v1_1: CpuModel = .{
|
|
.name = "v1_1",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_1,
|
|
}),
|
|
};
|
|
pub const v1_2: CpuModel = .{
|
|
.name = "v1_2",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_2,
|
|
}),
|
|
};
|
|
pub const v1_3: CpuModel = .{
|
|
.name = "v1_3",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_3,
|
|
}),
|
|
};
|
|
pub const v1_4: CpuModel = .{
|
|
.name = "v1_4",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_4,
|
|
}),
|
|
};
|
|
pub const v1_5: CpuModel = .{
|
|
.name = "v1_5",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_5,
|
|
}),
|
|
};
|
|
pub const v1_6: CpuModel = .{
|
|
.name = "v1_6",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_6,
|
|
}),
|
|
};
|
|
pub const vulkan_v1_0: CpuModel = .{
|
|
.name = "vulkan_v1_0",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{}),
|
|
};
|
|
pub const vulkan_v1_1: CpuModel = .{
|
|
.name = "vulkan_v1_1",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_3,
|
|
}),
|
|
};
|
|
pub const vulkan_v1_2: CpuModel = .{
|
|
.name = "vulkan_v1_2",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_5,
|
|
}),
|
|
};
|
|
pub const vulkan_v1_3: CpuModel = .{
|
|
.name = "vulkan_v1_3",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_6,
|
|
}),
|
|
};
|
|
pub const vulkan_v1_4: CpuModel = .{
|
|
.name = "vulkan_v1_4",
|
|
.llvm_name = null,
|
|
.features = featureSet(&[_]Feature{
|
|
.v1_6,
|
|
}),
|
|
};
|
|
};
|