authorgravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2025-02-14 15:32:20+03:30
committergravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2025-02-18 18:07:48+03:30
log1b0c7f51ef518d0033dc4cc3fc7088746d9088ac
tree8644fccd7f1e1f69e2e025bd4bf5b8c32aaafd44
parent29e46633ce29e5325049dd1835c1c0bde0f6d79e
signaturelock-open Commit is signed but in an unrecognized format.

target: update spirv features


3 files changed, 1180 insertions(+), 385 deletions(-)

lib/std/Target.zig+1-1
......@@ -1184,7 +1184,7 @@ pub const Cpu = struct {
11841184 pub const Set = struct {
11851185 ints: [usize_count]usize,
11861186
1187 pub const needed_bit_count = 288;
1187 pub const needed_bit_count = 398;
11881188 pub const byte_count = (needed_bit_count + 7) / 8;
11891189 pub const usize_count = (byte_count + (@sizeOf(usize) - 1)) / @sizeOf(usize);
11901190 pub const Index = std.math.Log2Int(std.meta.Int(.unsigned, usize_count * @bitSizeOf(usize)));
lib/std/Target/spirv.zig+1136-374
......@@ -8,90 +8,150 @@ const CpuFeature = std.Target.Cpu.Feature;
88const CpuModel = std.Target.Cpu.Model;
99
1010pub const Feature = enum {
11 v1_0,
1112 v1_1,
1213 v1_2,
1314 v1_3,
1415 v1_4,
1516 v1_5,
16 SPV_AMD_shader_fragment_mask,
17 SPV_AMD_gpu_shader_int16,
17 v1_6,
18 SPV_AMDX_shader_enqueue,
19 SPV_AMD_gcn_shader,
1820 SPV_AMD_gpu_shader_half_float,
19 SPV_AMD_texture_gather_bias_lod,
21 SPV_AMD_gpu_shader_half_float_fetch,
22 SPV_AMD_gpu_shader_int16,
2023 SPV_AMD_shader_ballot,
21 SPV_AMD_gcn_shader,
22 SPV_AMD_shader_image_load_store_lod,
24 SPV_AMD_shader_early_and_late_fragment_tests,
2325 SPV_AMD_shader_explicit_vertex_parameter,
26 SPV_AMD_shader_fragment_mask,
27 SPV_AMD_shader_image_load_store_lod,
2428 SPV_AMD_shader_trinary_minmax,
25 SPV_AMD_gpu_shader_half_float_fetch,
26 SPV_GOOGLE_hlsl_functionality1,
27 SPV_GOOGLE_user_type,
28 SPV_GOOGLE_decorate_string,
29 SPV_AMD_texture_gather_bias_lod,
30 SPV_ARM_cooperative_matrix_layouts,
31 SPV_ARM_core_builtins,
32 SPV_EXT_arithmetic_fence,
2933 SPV_EXT_demote_to_helper_invocation,
3034 SPV_EXT_descriptor_indexing,
3135 SPV_EXT_fragment_fully_covered,
32 SPV_EXT_shader_stencil_export,
36 SPV_EXT_fragment_invocation_density,
37 SPV_EXT_fragment_shader_interlock,
38 SPV_EXT_image_raw10_raw12,
39 SPV_EXT_mesh_shader,
40 SPV_EXT_opacity_micromap,
41 SPV_EXT_optnone,
3342 SPV_EXT_physical_storage_buffer,
43 SPV_EXT_replicated_composites,
44 SPV_EXT_shader_atomic_float16_add,
3445 SPV_EXT_shader_atomic_float_add,
3546 SPV_EXT_shader_atomic_float_min_max,
3647 SPV_EXT_shader_image_int64,
37 SPV_EXT_fragment_shader_interlock,
38 SPV_EXT_fragment_invocation_density,
48 SPV_EXT_shader_stencil_export,
49 SPV_EXT_shader_tile_image,
3950 SPV_EXT_shader_viewport_index_layer,
40 SPV_INTEL_loop_fuse,
41 SPV_INTEL_fpga_dsp_control,
42 SPV_INTEL_fpga_reg,
43 SPV_INTEL_fpga_memory_accesses,
44 SPV_INTEL_fpga_loop_controls,
45 SPV_INTEL_io_pipes,
46 SPV_INTEL_unstructured_loop_controls,
51 SPV_EXT_ycbcr_attachments,
52 SPV_GOOGLE_decorate_string,
53 SPV_GOOGLE_hlsl_functionality1,
54 SPV_GOOGLE_user_type,
55 SPV_HUAWEI_cluster_culling_shader,
56 SPV_HUAWEI_subpass_shading,
57 SPV_INTEL_arbitrary_precision_fixed_point,
58 SPV_INTEL_arbitrary_precision_floating_point,
59 SPV_INTEL_arbitrary_precision_integers,
4760 SPV_INTEL_blocking_pipes,
4861 SPV_INTEL_device_side_avc_motion_estimation,
62 SPV_INTEL_fpga_argument_interfaces,
63 SPV_INTEL_fpga_buffer_location,
64 SPV_INTEL_fpga_cluster_attributes,
65 SPV_INTEL_fpga_dsp_control,
66 SPV_INTEL_fpga_invocation_pipelining_attributes,
67 SPV_INTEL_fpga_latency_control,
68 SPV_INTEL_fpga_loop_controls,
69 SPV_INTEL_fpga_memory_accesses,
4970 SPV_INTEL_fpga_memory_attributes,
71 SPV_INTEL_fpga_reg,
5072 SPV_INTEL_fp_fast_math_mode,
73 SPV_INTEL_fp_max_error,
74 SPV_INTEL_global_variable_fpga_decorations,
75 SPV_INTEL_global_variable_host_access,
76 SPV_INTEL_io_pipes,
77 SPV_INTEL_kernel_attributes,
78 SPV_INTEL_long_composites,
79 SPV_INTEL_loop_fuse,
80 SPV_INTEL_maximum_registers,
5181 SPV_INTEL_media_block_io,
82 SPV_INTEL_runtime_aligned,
5283 SPV_INTEL_shader_integer_functions2,
84 SPV_INTEL_split_barrier,
5385 SPV_INTEL_subgroups,
54 SPV_INTEL_fpga_cluster_attributes,
55 SPV_INTEL_kernel_attributes,
56 SPV_INTEL_arbitrary_precision_integers,
86 SPV_INTEL_subgroup_buffer_prefetch,
87 SPV_INTEL_task_sequence,
88 SPV_INTEL_unstructured_loop_controls,
89 SPV_INTEL_usm_storage_classes,
90 SPV_KHR_16bit_storage,
5791 SPV_KHR_8bit_storage,
58 SPV_KHR_shader_clock,
92 SPV_KHR_bit_instructions,
93 SPV_KHR_compute_shader_derivatives,
94 SPV_KHR_cooperative_matrix,
5995 SPV_KHR_device_group,
60 SPV_KHR_16bit_storage,
61 SPV_KHR_variable_pointers,
62 SPV_KHR_no_integer_wrap_decoration,
63 SPV_KHR_subgroup_vote,
96 SPV_KHR_expect_assume,
97 SPV_KHR_float_controls,
98 SPV_KHR_float_controls2,
99 SPV_KHR_fragment_shader_barycentric,
100 SPV_KHR_fragment_shading_rate,
101 SPV_KHR_integer_dot_product,
102 SPV_KHR_linkonce_odr,
103 SPV_KHR_maximal_reconvergence,
64104 SPV_KHR_multiview,
65 SPV_KHR_shader_ballot,
66 SPV_KHR_vulkan_memory_model,
105 SPV_KHR_non_semantic_info,
106 SPV_KHR_no_integer_wrap_decoration,
67107 SPV_KHR_physical_storage_buffer,
68 SPV_KHR_workgroup_memory_explicit_layout,
69 SPV_KHR_fragment_shading_rate,
108 SPV_KHR_post_depth_coverage,
109 SPV_KHR_quad_control,
110 SPV_KHR_ray_cull_mask,
111 SPV_KHR_ray_query,
112 SPV_KHR_ray_tracing,
113 SPV_KHR_ray_tracing_position_fetch,
114 SPV_KHR_relaxed_extended_instruction,
70115 SPV_KHR_shader_atomic_counter_ops,
116 SPV_KHR_shader_ballot,
117 SPV_KHR_shader_clock,
71118 SPV_KHR_shader_draw_parameters,
72119 SPV_KHR_storage_buffer_storage_class,
73 SPV_KHR_linkonce_odr,
120 SPV_KHR_subgroup_rotate,
121 SPV_KHR_subgroup_uniform_control_flow,
122 SPV_KHR_subgroup_vote,
74123 SPV_KHR_terminate_invocation,
75 SPV_KHR_non_semantic_info,
76 SPV_KHR_post_depth_coverage,
77 SPV_KHR_expect_assume,
78 SPV_KHR_ray_tracing,
79 SPV_KHR_ray_query,
80 SPV_KHR_float_controls,
81 SPV_NV_viewport_array2,
82 SPV_NV_shader_subgroup_partitioned,
124 SPV_KHR_untyped_pointers,
125 SPV_KHR_variable_pointers,
126 SPV_KHR_vulkan_memory_model,
127 SPV_KHR_workgroup_memory_explicit_layout,
83128 SPV_NVX_multiview_per_view_attributes,
129 SPV_NV_bindless_texture,
130 SPV_NV_cluster_acceleration_structure,
131 SPV_NV_compute_shader_derivatives,
132 SPV_NV_cooperative_matrix,
133 SPV_NV_cooperative_matrix2,
134 SPV_NV_cooperative_vector,
135 SPV_NV_displacement_micromap,
136 SPV_NV_fragment_shader_barycentric,
137 SPV_NV_geometry_shader_passthrough,
138 SPV_NV_linear_swept_spheres,
139 SPV_NV_mesh_shader,
140 SPV_NV_raw_access_chains,
84141 SPV_NV_ray_tracing,
142 SPV_NV_ray_tracing_motion_blur,
143 SPV_NV_sample_mask_override_coverage,
144 SPV_NV_shader_atomic_fp16_vector,
85145 SPV_NV_shader_image_footprint,
146 SPV_NV_shader_invocation_reorder,
147 SPV_NV_shader_sm_builtins,
148 SPV_NV_shader_subgroup_partitioned,
86149 SPV_NV_shading_rate,
87150 SPV_NV_stereo_view_rendering,
88 SPV_NV_compute_shader_derivatives,
89 SPV_NV_shader_sm_builtins,
90 SPV_NV_mesh_shader,
91 SPV_NV_geometry_shader_passthrough,
92 SPV_NV_fragment_shader_barycentric,
93 SPV_NV_cooperative_matrix,
94 SPV_NV_sample_mask_override_coverage,
151 SPV_NV_tensor_addressing,
152 SPV_NV_viewport_array2,
153 SPV_QCOM_image_processing,
154 SPV_QCOM_image_processing2,
95155 Matrix,
96156 Shader,
97157 Geometry,
......@@ -161,6 +221,12 @@ pub const Feature = enum {
161221 GroupNonUniformQuad,
162222 ShaderLayer,
163223 ShaderViewportIndex,
224 UniformDecoration,
225 CoreBuiltinsARM,
226 TileImageColorReadAccessEXT,
227 TileImageDepthReadAccessEXT,
228 TileImageStencilReadAccessEXT,
229 CooperativeMatrixLayoutsARM,
164230 FragmentShadingRateKHR,
165231 SubgroupBallotKHR,
166232 DrawParameters,
......@@ -169,9 +235,7 @@ pub const Feature = enum {
169235 WorkgroupMemoryExplicitLayout16BitAccessKHR,
170236 SubgroupVoteKHR,
171237 StorageBuffer16BitAccess,
172 StorageUniformBufferBlock16,
173238 UniformAndStorageBuffer16BitAccess,
174 StorageUniform16,
175239 StoragePushConstant16,
176240 StorageInputOutput16,
177241 DeviceGroup,
......@@ -190,8 +254,13 @@ pub const Feature = enum {
190254 RoundingModeRTZ,
191255 RayQueryProvisionalKHR,
192256 RayQueryKHR,
257 UntypedPointersKHR,
193258 RayTraversalPrimitiveCullingKHR,
194259 RayTracingKHR,
260 TextureSampleWeightedQCOM,
261 TextureBoxFilterQCOM,
262 TextureBlockMatchQCOM,
263 TextureBlockMatch2QCOM,
195264 Float16ImageAMD,
196265 ImageGatherBiasLodAMD,
197266 FragmentMaskAMD,
......@@ -199,60 +268,67 @@ pub const Feature = enum {
199268 ImageReadWriteLodAMD,
200269 Int64ImageEXT,
201270 ShaderClockKHR,
271 ShaderEnqueueAMDX,
272 QuadControlKHR,
202273 SampleMaskOverrideCoverageNV,
203274 GeometryShaderPassthroughNV,
204275 ShaderViewportIndexLayerEXT,
205 ShaderViewportIndexLayerNV,
206276 ShaderViewportMaskNV,
207277 ShaderStereoViewNV,
208278 PerViewAttributesNV,
209279 FragmentFullyCoveredEXT,
210280 MeshShadingNV,
211281 ImageFootprintNV,
212 FragmentBarycentricNV,
213 ComputeDerivativeGroupQuadsNV,
282 MeshShadingEXT,
283 FragmentBarycentricKHR,
284 ComputeDerivativeGroupQuadsKHR,
214285 FragmentDensityEXT,
215 ShadingRateNV,
216286 GroupNonUniformPartitionedNV,
217287 ShaderNonUniform,
218 ShaderNonUniformEXT,
219288 RuntimeDescriptorArray,
220 RuntimeDescriptorArrayEXT,
221289 InputAttachmentArrayDynamicIndexing,
222 InputAttachmentArrayDynamicIndexingEXT,
223290 UniformTexelBufferArrayDynamicIndexing,
224 UniformTexelBufferArrayDynamicIndexingEXT,
225291 StorageTexelBufferArrayDynamicIndexing,
226 StorageTexelBufferArrayDynamicIndexingEXT,
227292 UniformBufferArrayNonUniformIndexing,
228 UniformBufferArrayNonUniformIndexingEXT,
229293 SampledImageArrayNonUniformIndexing,
230 SampledImageArrayNonUniformIndexingEXT,
231294 StorageBufferArrayNonUniformIndexing,
232 StorageBufferArrayNonUniformIndexingEXT,
233295 StorageImageArrayNonUniformIndexing,
234 StorageImageArrayNonUniformIndexingEXT,
235296 InputAttachmentArrayNonUniformIndexing,
236 InputAttachmentArrayNonUniformIndexingEXT,
237297 UniformTexelBufferArrayNonUniformIndexing,
238 UniformTexelBufferArrayNonUniformIndexingEXT,
239298 StorageTexelBufferArrayNonUniformIndexing,
240 StorageTexelBufferArrayNonUniformIndexingEXT,
299 RayTracingPositionFetchKHR,
241300 RayTracingNV,
301 RayTracingMotionBlurNV,
242302 VulkanMemoryModel,
243 VulkanMemoryModelKHR,
244303 VulkanMemoryModelDeviceScope,
245 VulkanMemoryModelDeviceScopeKHR,
246304 PhysicalStorageBufferAddresses,
247 PhysicalStorageBufferAddressesEXT,
248 ComputeDerivativeGroupLinearNV,
305 ComputeDerivativeGroupLinearKHR,
249306 RayTracingProvisionalKHR,
250307 CooperativeMatrixNV,
251308 FragmentShaderSampleInterlockEXT,
252309 FragmentShaderShadingRateInterlockEXT,
253310 ShaderSMBuiltinsNV,
254311 FragmentShaderPixelInterlockEXT,
255 DemoteToHelperInvocationEXT,
312 DemoteToHelperInvocation,
313 DisplacementMicromapNV,
314 RayTracingOpacityMicromapEXT,
315 ShaderInvocationReorderNV,
316 BindlessTextureNV,
317 RayQueryPositionFetchKHR,
318 CooperativeVectorNV,
319 AtomicFloat16VectorNV,
320 RayTracingDisplacementMicromapNV,
321 RawAccessChainsNV,
322 RayTracingSpheresGeometryNV,
323 RayTracingLinearSweptSpheresGeometryNV,
324 CooperativeMatrixReductionsNV,
325 CooperativeMatrixConversionsNV,
326 CooperativeMatrixPerElementOperationsNV,
327 CooperativeMatrixTensorAddressingNV,
328 CooperativeMatrixBlockLoadsNV,
329 CooperativeVectorTrainingNV,
330 RayTracingClusterAccelerationStructureNV,
331 TensorAddressingNV,
256332 SubgroupShuffleINTEL,
257333 SubgroupBufferBlockIOINTEL,
258334 SubgroupImageBlockIOINTEL,
......@@ -277,6 +353,7 @@ pub const Feature = enum {
277353 FPGAMemoryAttributesINTEL,
278354 FPFastMathModeINTEL,
279355 ArbitraryPrecisionIntegersINTEL,
356 ArbitraryPrecisionFloatingPointINTEL,
280357 UnstructuredLoopControlsINTEL,
281358 FPGALoopControlsINTEL,
282359 KernelAttributesINTEL,
......@@ -284,14 +361,51 @@ pub const Feature = enum {
284361 FPGAMemoryAccessesINTEL,
285362 FPGAClusterAttributesINTEL,
286363 LoopFuseINTEL,
364 FPGADSPControlINTEL,
365 MemoryAccessAliasingINTEL,
366 FPGAInvocationPipeliningAttributesINTEL,
287367 FPGABufferLocationINTEL,
368 ArbitraryPrecisionFixedPointINTEL,
288369 USMStorageClassesINTEL,
370 RuntimeAlignedAttributeINTEL,
289371 IOPipesINTEL,
290372 BlockingPipesINTEL,
291373 FPGARegINTEL,
374 DotProductInputAll,
375 DotProductInput4x8Bit,
376 DotProductInput4x8BitPacked,
377 DotProduct,
378 RayCullMaskKHR,
379 CooperativeMatrixKHR,
380 ReplicatedCompositesEXT,
381 BitInstructions,
382 GroupNonUniformRotateKHR,
383 FloatControls2,
292384 AtomicFloat32AddEXT,
293385 AtomicFloat64AddEXT,
294 LongConstantCompositeINTEL,
386 LongCompositesINTEL,
387 OptNoneEXT,
388 AtomicFloat16AddEXT,
389 DebugInfoModuleINTEL,
390 BFloat16ConversionINTEL,
391 SplitBarrierINTEL,
392 ArithmeticFenceEXT,
393 FPGAClusterAttributesV2INTEL,
394 FPGAKernelAttributesv2INTEL,
395 FPMaxErrorINTEL,
396 FPGALatencyControlINTEL,
397 FPGAArgumentInterfacesINTEL,
398 GlobalVariableHostAccessINTEL,
399 GlobalVariableFPGADecorationsINTEL,
400 SubgroupBufferPrefetchINTEL,
401 Subgroup2DBlockIOINTEL,
402 Subgroup2DBlockTransformINTEL,
403 Subgroup2DBlockTransposeINTEL,
404 SubgroupMatrixMultiplyAccumulateINTEL,
405 GroupUniformArithmeticKHR,
406 MaskedGatherScatterINTEL,
407 CacheControlsINTEL,
408 RegisterLimitsINTEL,
295409};
296410
297411pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet;
......@@ -304,10 +418,17 @@ pub const all_features = blk: {
304418 const len = @typeInfo(Feature).@"enum".fields.len;
305419 std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
306420 var result: [len]CpuFeature = undefined;
421 result[@intFromEnum(Feature.v1_0)] = .{
422 .llvm_name = null,
423 .description = "SPIR-V version 1.0",
424 .dependencies = featureSet(&[_]Feature{}),
425 };
307426 result[@intFromEnum(Feature.v1_1)] = .{
308427 .llvm_name = null,
309428 .description = "SPIR-V version 1.1",
310 .dependencies = featureSet(&[_]Feature{}),
429 .dependencies = featureSet(&[_]Feature{
430 .v1_0,
431 }),
311432 };
312433 result[@intFromEnum(Feature.v1_2)] = .{
313434 .llvm_name = null,
......@@ -337,14 +458,21 @@ pub const all_features = blk: {
337458 .v1_4,
338459 }),
339460 };
340 result[@intFromEnum(Feature.SPV_AMD_shader_fragment_mask)] = .{
461 result[@intFromEnum(Feature.v1_6)] = .{
341462 .llvm_name = null,
342 .description = "SPIR-V extension SPV_AMD_shader_fragment_mask",
463 .description = "SPIR-V version 1.6",
464 .dependencies = featureSet(&[_]Feature{
465 .v1_5,
466 }),
467 };
468 result[@intFromEnum(Feature.SPV_AMDX_shader_enqueue)] = .{
469 .llvm_name = null,
470 .description = "SPIR-V extension SPV_AMDX_shader_enqueue",
343471 .dependencies = featureSet(&[_]Feature{}),
344472 };
345 result[@intFromEnum(Feature.SPV_AMD_gpu_shader_int16)] = .{
473 result[@intFromEnum(Feature.SPV_AMD_gcn_shader)] = .{
346474 .llvm_name = null,
347 .description = "SPIR-V extension SPV_AMD_gpu_shader_int16",
475 .description = "SPIR-V extension SPV_AMD_gcn_shader",
348476 .dependencies = featureSet(&[_]Feature{}),
349477 };
350478 result[@intFromEnum(Feature.SPV_AMD_gpu_shader_half_float)] = .{
......@@ -352,24 +480,24 @@ pub const all_features = blk: {
352480 .description = "SPIR-V extension SPV_AMD_gpu_shader_half_float",
353481 .dependencies = featureSet(&[_]Feature{}),
354482 };
355 result[@intFromEnum(Feature.SPV_AMD_texture_gather_bias_lod)] = .{
483 result[@intFromEnum(Feature.SPV_AMD_gpu_shader_half_float_fetch)] = .{
356484 .llvm_name = null,
357 .description = "SPIR-V extension SPV_AMD_texture_gather_bias_lod",
485 .description = "SPIR-V extension SPV_AMD_gpu_shader_half_float_fetch",
358486 .dependencies = featureSet(&[_]Feature{}),
359487 };
360 result[@intFromEnum(Feature.SPV_AMD_shader_ballot)] = .{
488 result[@intFromEnum(Feature.SPV_AMD_gpu_shader_int16)] = .{
361489 .llvm_name = null,
362 .description = "SPIR-V extension SPV_AMD_shader_ballot",
490 .description = "SPIR-V extension SPV_AMD_gpu_shader_int16",
363491 .dependencies = featureSet(&[_]Feature{}),
364492 };
365 result[@intFromEnum(Feature.SPV_AMD_gcn_shader)] = .{
493 result[@intFromEnum(Feature.SPV_AMD_shader_ballot)] = .{
366494 .llvm_name = null,
367 .description = "SPIR-V extension SPV_AMD_gcn_shader",
495 .description = "SPIR-V extension SPV_AMD_shader_ballot",
368496 .dependencies = featureSet(&[_]Feature{}),
369497 };
370 result[@intFromEnum(Feature.SPV_AMD_shader_image_load_store_lod)] = .{
498 result[@intFromEnum(Feature.SPV_AMD_shader_early_and_late_fragment_tests)] = .{
371499 .llvm_name = null,
372 .description = "SPIR-V extension SPV_AMD_shader_image_load_store_lod",
500 .description = "SPIR-V extension SPV_AMD_shader_early_and_late_fragment_tests",
373501 .dependencies = featureSet(&[_]Feature{}),
374502 };
375503 result[@intFromEnum(Feature.SPV_AMD_shader_explicit_vertex_parameter)] = .{
......@@ -377,29 +505,39 @@ pub const all_features = blk: {
377505 .description = "SPIR-V extension SPV_AMD_shader_explicit_vertex_parameter",
378506 .dependencies = featureSet(&[_]Feature{}),
379507 };
508 result[@intFromEnum(Feature.SPV_AMD_shader_fragment_mask)] = .{
509 .llvm_name = null,
510 .description = "SPIR-V extension SPV_AMD_shader_fragment_mask",
511 .dependencies = featureSet(&[_]Feature{}),
512 };
513 result[@intFromEnum(Feature.SPV_AMD_shader_image_load_store_lod)] = .{
514 .llvm_name = null,
515 .description = "SPIR-V extension SPV_AMD_shader_image_load_store_lod",
516 .dependencies = featureSet(&[_]Feature{}),
517 };
380518 result[@intFromEnum(Feature.SPV_AMD_shader_trinary_minmax)] = .{
381519 .llvm_name = null,
382520 .description = "SPIR-V extension SPV_AMD_shader_trinary_minmax",
383521 .dependencies = featureSet(&[_]Feature{}),
384522 };
385 result[@intFromEnum(Feature.SPV_AMD_gpu_shader_half_float_fetch)] = .{
523 result[@intFromEnum(Feature.SPV_AMD_texture_gather_bias_lod)] = .{
386524 .llvm_name = null,
387 .description = "SPIR-V extension SPV_AMD_gpu_shader_half_float_fetch",
525 .description = "SPIR-V extension SPV_AMD_texture_gather_bias_lod",
388526 .dependencies = featureSet(&[_]Feature{}),
389527 };
390 result[@intFromEnum(Feature.SPV_GOOGLE_hlsl_functionality1)] = .{
528 result[@intFromEnum(Feature.SPV_ARM_cooperative_matrix_layouts)] = .{
391529 .llvm_name = null,
392 .description = "SPIR-V extension SPV_GOOGLE_hlsl_functionality1",
530 .description = "SPIR-V extension SPV_ARM_cooperative_matrix_layouts",
393531 .dependencies = featureSet(&[_]Feature{}),
394532 };
395 result[@intFromEnum(Feature.SPV_GOOGLE_user_type)] = .{
533 result[@intFromEnum(Feature.SPV_ARM_core_builtins)] = .{
396534 .llvm_name = null,
397 .description = "SPIR-V extension SPV_GOOGLE_user_type",
535 .description = "SPIR-V extension SPV_ARM_core_builtins",
398536 .dependencies = featureSet(&[_]Feature{}),
399537 };
400 result[@intFromEnum(Feature.SPV_GOOGLE_decorate_string)] = .{
538 result[@intFromEnum(Feature.SPV_EXT_arithmetic_fence)] = .{
401539 .llvm_name = null,
402 .description = "SPIR-V extension SPV_GOOGLE_decorate_string",
540 .description = "SPIR-V extension SPV_EXT_arithmetic_fence",
403541 .dependencies = featureSet(&[_]Feature{}),
404542 };
405543 result[@intFromEnum(Feature.SPV_EXT_demote_to_helper_invocation)] = .{
......@@ -417,9 +555,34 @@ pub const all_features = blk: {
417555 .description = "SPIR-V extension SPV_EXT_fragment_fully_covered",
418556 .dependencies = featureSet(&[_]Feature{}),
419557 };
420 result[@intFromEnum(Feature.SPV_EXT_shader_stencil_export)] = .{
558 result[@intFromEnum(Feature.SPV_EXT_fragment_invocation_density)] = .{
421559 .llvm_name = null,
422 .description = "SPIR-V extension SPV_EXT_shader_stencil_export",
560 .description = "SPIR-V extension SPV_EXT_fragment_invocation_density",
561 .dependencies = featureSet(&[_]Feature{}),
562 };
563 result[@intFromEnum(Feature.SPV_EXT_fragment_shader_interlock)] = .{
564 .llvm_name = null,
565 .description = "SPIR-V extension SPV_EXT_fragment_shader_interlock",
566 .dependencies = featureSet(&[_]Feature{}),
567 };
568 result[@intFromEnum(Feature.SPV_EXT_image_raw10_raw12)] = .{
569 .llvm_name = null,
570 .description = "SPIR-V extension SPV_EXT_image_raw10_raw12",
571 .dependencies = featureSet(&[_]Feature{}),
572 };
573 result[@intFromEnum(Feature.SPV_EXT_mesh_shader)] = .{
574 .llvm_name = null,
575 .description = "SPIR-V extension SPV_EXT_mesh_shader",
576 .dependencies = featureSet(&[_]Feature{}),
577 };
578 result[@intFromEnum(Feature.SPV_EXT_opacity_micromap)] = .{
579 .llvm_name = null,
580 .description = "SPIR-V extension SPV_EXT_opacity_micromap",
581 .dependencies = featureSet(&[_]Feature{}),
582 };
583 result[@intFromEnum(Feature.SPV_EXT_optnone)] = .{
584 .llvm_name = null,
585 .description = "SPIR-V extension SPV_EXT_optnone",
423586 .dependencies = featureSet(&[_]Feature{}),
424587 };
425588 result[@intFromEnum(Feature.SPV_EXT_physical_storage_buffer)] = .{
......@@ -427,6 +590,16 @@ pub const all_features = blk: {
427590 .description = "SPIR-V extension SPV_EXT_physical_storage_buffer",
428591 .dependencies = featureSet(&[_]Feature{}),
429592 };
593 result[@intFromEnum(Feature.SPV_EXT_replicated_composites)] = .{
594 .llvm_name = null,
595 .description = "SPIR-V extension SPV_EXT_replicated_composites",
596 .dependencies = featureSet(&[_]Feature{}),
597 };
598 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float16_add)] = .{
599 .llvm_name = null,
600 .description = "SPIR-V extension SPV_EXT_shader_atomic_float16_add",
601 .dependencies = featureSet(&[_]Feature{}),
602 };
430603 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_add)] = .{
431604 .llvm_name = null,
432605 .description = "SPIR-V extension SPV_EXT_shader_atomic_float_add",
......@@ -442,14 +615,14 @@ pub const all_features = blk: {
442615 .description = "SPIR-V extension SPV_EXT_shader_image_int64",
443616 .dependencies = featureSet(&[_]Feature{}),
444617 };
445 result[@intFromEnum(Feature.SPV_EXT_fragment_shader_interlock)] = .{
618 result[@intFromEnum(Feature.SPV_EXT_shader_stencil_export)] = .{
446619 .llvm_name = null,
447 .description = "SPIR-V extension SPV_EXT_fragment_shader_interlock",
620 .description = "SPIR-V extension SPV_EXT_shader_stencil_export",
448621 .dependencies = featureSet(&[_]Feature{}),
449622 };
450 result[@intFromEnum(Feature.SPV_EXT_fragment_invocation_density)] = .{
623 result[@intFromEnum(Feature.SPV_EXT_shader_tile_image)] = .{
451624 .llvm_name = null,
452 .description = "SPIR-V extension SPV_EXT_fragment_invocation_density",
625 .description = "SPIR-V extension SPV_EXT_shader_tile_image",
453626 .dependencies = featureSet(&[_]Feature{}),
454627 };
455628 result[@intFromEnum(Feature.SPV_EXT_shader_viewport_index_layer)] = .{
......@@ -457,39 +630,49 @@ pub const all_features = blk: {
457630 .description = "SPIR-V extension SPV_EXT_shader_viewport_index_layer",
458631 .dependencies = featureSet(&[_]Feature{}),
459632 };
460 result[@intFromEnum(Feature.SPV_INTEL_loop_fuse)] = .{
633 result[@intFromEnum(Feature.SPV_EXT_ycbcr_attachments)] = .{
461634 .llvm_name = null,
462 .description = "SPIR-V extension SPV_INTEL_loop_fuse",
635 .description = "SPIR-V extension SPV_EXT_ycbcr_attachments",
463636 .dependencies = featureSet(&[_]Feature{}),
464637 };
465 result[@intFromEnum(Feature.SPV_INTEL_fpga_dsp_control)] = .{
638 result[@intFromEnum(Feature.SPV_GOOGLE_decorate_string)] = .{
466639 .llvm_name = null,
467 .description = "SPIR-V extension SPV_INTEL_fpga_dsp_control",
640 .description = "SPIR-V extension SPV_GOOGLE_decorate_string",
468641 .dependencies = featureSet(&[_]Feature{}),
469642 };
470 result[@intFromEnum(Feature.SPV_INTEL_fpga_reg)] = .{
643 result[@intFromEnum(Feature.SPV_GOOGLE_hlsl_functionality1)] = .{
471644 .llvm_name = null,
472 .description = "SPIR-V extension SPV_INTEL_fpga_reg",
645 .description = "SPIR-V extension SPV_GOOGLE_hlsl_functionality1",
473646 .dependencies = featureSet(&[_]Feature{}),
474647 };
475 result[@intFromEnum(Feature.SPV_INTEL_fpga_memory_accesses)] = .{
648 result[@intFromEnum(Feature.SPV_GOOGLE_user_type)] = .{
476649 .llvm_name = null,
477 .description = "SPIR-V extension SPV_INTEL_fpga_memory_accesses",
650 .description = "SPIR-V extension SPV_GOOGLE_user_type",
478651 .dependencies = featureSet(&[_]Feature{}),
479652 };
480 result[@intFromEnum(Feature.SPV_INTEL_fpga_loop_controls)] = .{
653 result[@intFromEnum(Feature.SPV_HUAWEI_cluster_culling_shader)] = .{
481654 .llvm_name = null,
482 .description = "SPIR-V extension SPV_INTEL_fpga_loop_controls",
655 .description = "SPIR-V extension SPV_HUAWEI_cluster_culling_shader",
483656 .dependencies = featureSet(&[_]Feature{}),
484657 };
485 result[@intFromEnum(Feature.SPV_INTEL_io_pipes)] = .{
658 result[@intFromEnum(Feature.SPV_HUAWEI_subpass_shading)] = .{
486659 .llvm_name = null,
487 .description = "SPIR-V extension SPV_INTEL_io_pipes",
660 .description = "SPIR-V extension SPV_HUAWEI_subpass_shading",
488661 .dependencies = featureSet(&[_]Feature{}),
489662 };
490 result[@intFromEnum(Feature.SPV_INTEL_unstructured_loop_controls)] = .{
663 result[@intFromEnum(Feature.SPV_INTEL_arbitrary_precision_fixed_point)] = .{
491664 .llvm_name = null,
492 .description = "SPIR-V extension SPV_INTEL_unstructured_loop_controls",
665 .description = "SPIR-V extension SPV_INTEL_arbitrary_precision_fixed_point",
666 .dependencies = featureSet(&[_]Feature{}),
667 };
668 result[@intFromEnum(Feature.SPV_INTEL_arbitrary_precision_floating_point)] = .{
669 .llvm_name = null,
670 .description = "SPIR-V extension SPV_INTEL_arbitrary_precision_floating_point",
671 .dependencies = featureSet(&[_]Feature{}),
672 };
673 result[@intFromEnum(Feature.SPV_INTEL_arbitrary_precision_integers)] = .{
674 .llvm_name = null,
675 .description = "SPIR-V extension SPV_INTEL_arbitrary_precision_integers",
493676 .dependencies = featureSet(&[_]Feature{}),
494677 };
495678 result[@intFromEnum(Feature.SPV_INTEL_blocking_pipes)] = .{
......@@ -502,124 +685,204 @@ pub const all_features = blk: {
502685 .description = "SPIR-V extension SPV_INTEL_device_side_avc_motion_estimation",
503686 .dependencies = featureSet(&[_]Feature{}),
504687 };
505 result[@intFromEnum(Feature.SPV_INTEL_fpga_memory_attributes)] = .{
688 result[@intFromEnum(Feature.SPV_INTEL_fpga_argument_interfaces)] = .{
506689 .llvm_name = null,
507 .description = "SPIR-V extension SPV_INTEL_fpga_memory_attributes",
690 .description = "SPIR-V extension SPV_INTEL_fpga_argument_interfaces",
508691 .dependencies = featureSet(&[_]Feature{}),
509692 };
510 result[@intFromEnum(Feature.SPV_INTEL_fp_fast_math_mode)] = .{
693 result[@intFromEnum(Feature.SPV_INTEL_fpga_buffer_location)] = .{
511694 .llvm_name = null,
512 .description = "SPIR-V extension SPV_INTEL_fp_fast_math_mode",
695 .description = "SPIR-V extension SPV_INTEL_fpga_buffer_location",
513696 .dependencies = featureSet(&[_]Feature{}),
514697 };
515 result[@intFromEnum(Feature.SPV_INTEL_media_block_io)] = .{
698 result[@intFromEnum(Feature.SPV_INTEL_fpga_cluster_attributes)] = .{
516699 .llvm_name = null,
517 .description = "SPIR-V extension SPV_INTEL_media_block_io",
700 .description = "SPIR-V extension SPV_INTEL_fpga_cluster_attributes",
518701 .dependencies = featureSet(&[_]Feature{}),
519702 };
520 result[@intFromEnum(Feature.SPV_INTEL_shader_integer_functions2)] = .{
703 result[@intFromEnum(Feature.SPV_INTEL_fpga_dsp_control)] = .{
521704 .llvm_name = null,
522 .description = "SPIR-V extension SPV_INTEL_shader_integer_functions2",
705 .description = "SPIR-V extension SPV_INTEL_fpga_dsp_control",
523706 .dependencies = featureSet(&[_]Feature{}),
524707 };
525 result[@intFromEnum(Feature.SPV_INTEL_subgroups)] = .{
708 result[@intFromEnum(Feature.SPV_INTEL_fpga_invocation_pipelining_attributes)] = .{
526709 .llvm_name = null,
527 .description = "SPIR-V extension SPV_INTEL_subgroups",
710 .description = "SPIR-V extension SPV_INTEL_fpga_invocation_pipelining_attributes",
528711 .dependencies = featureSet(&[_]Feature{}),
529712 };
530 result[@intFromEnum(Feature.SPV_INTEL_fpga_cluster_attributes)] = .{
713 result[@intFromEnum(Feature.SPV_INTEL_fpga_latency_control)] = .{
531714 .llvm_name = null,
532 .description = "SPIR-V extension SPV_INTEL_fpga_cluster_attributes",
715 .description = "SPIR-V extension SPV_INTEL_fpga_latency_control",
533716 .dependencies = featureSet(&[_]Feature{}),
534717 };
535 result[@intFromEnum(Feature.SPV_INTEL_kernel_attributes)] = .{
718 result[@intFromEnum(Feature.SPV_INTEL_fpga_loop_controls)] = .{
536719 .llvm_name = null,
537 .description = "SPIR-V extension SPV_INTEL_kernel_attributes",
720 .description = "SPIR-V extension SPV_INTEL_fpga_loop_controls",
538721 .dependencies = featureSet(&[_]Feature{}),
539722 };
540 result[@intFromEnum(Feature.SPV_INTEL_arbitrary_precision_integers)] = .{
723 result[@intFromEnum(Feature.SPV_INTEL_fpga_memory_accesses)] = .{
541724 .llvm_name = null,
542 .description = "SPIR-V extension SPV_INTEL_arbitrary_precision_integers",
725 .description = "SPIR-V extension SPV_INTEL_fpga_memory_accesses",
543726 .dependencies = featureSet(&[_]Feature{}),
544727 };
545 result[@intFromEnum(Feature.SPV_KHR_8bit_storage)] = .{
728 result[@intFromEnum(Feature.SPV_INTEL_fpga_memory_attributes)] = .{
546729 .llvm_name = null,
547 .description = "SPIR-V extension SPV_KHR_8bit_storage",
730 .description = "SPIR-V extension SPV_INTEL_fpga_memory_attributes",
548731 .dependencies = featureSet(&[_]Feature{}),
549732 };
550 result[@intFromEnum(Feature.SPV_KHR_shader_clock)] = .{
733 result[@intFromEnum(Feature.SPV_INTEL_fpga_reg)] = .{
551734 .llvm_name = null,
552 .description = "SPIR-V extension SPV_KHR_shader_clock",
735 .description = "SPIR-V extension SPV_INTEL_fpga_reg",
553736 .dependencies = featureSet(&[_]Feature{}),
554737 };
555 result[@intFromEnum(Feature.SPV_KHR_device_group)] = .{
738 result[@intFromEnum(Feature.SPV_INTEL_fp_fast_math_mode)] = .{
556739 .llvm_name = null,
557 .description = "SPIR-V extension SPV_KHR_device_group",
740 .description = "SPIR-V extension SPV_INTEL_fp_fast_math_mode",
558741 .dependencies = featureSet(&[_]Feature{}),
559742 };
560 result[@intFromEnum(Feature.SPV_KHR_16bit_storage)] = .{
743 result[@intFromEnum(Feature.SPV_INTEL_fp_max_error)] = .{
561744 .llvm_name = null,
562 .description = "SPIR-V extension SPV_KHR_16bit_storage",
745 .description = "SPIR-V extension SPV_INTEL_fp_max_error",
563746 .dependencies = featureSet(&[_]Feature{}),
564747 };
565 result[@intFromEnum(Feature.SPV_KHR_variable_pointers)] = .{
748 result[@intFromEnum(Feature.SPV_INTEL_global_variable_fpga_decorations)] = .{
566749 .llvm_name = null,
567 .description = "SPIR-V extension SPV_KHR_variable_pointers",
750 .description = "SPIR-V extension SPV_INTEL_global_variable_fpga_decorations",
568751 .dependencies = featureSet(&[_]Feature{}),
569752 };
570 result[@intFromEnum(Feature.SPV_KHR_no_integer_wrap_decoration)] = .{
753 result[@intFromEnum(Feature.SPV_INTEL_global_variable_host_access)] = .{
571754 .llvm_name = null,
572 .description = "SPIR-V extension SPV_KHR_no_integer_wrap_decoration",
755 .description = "SPIR-V extension SPV_INTEL_global_variable_host_access",
573756 .dependencies = featureSet(&[_]Feature{}),
574757 };
575 result[@intFromEnum(Feature.SPV_KHR_subgroup_vote)] = .{
758 result[@intFromEnum(Feature.SPV_INTEL_io_pipes)] = .{
576759 .llvm_name = null,
577 .description = "SPIR-V extension SPV_KHR_subgroup_vote",
760 .description = "SPIR-V extension SPV_INTEL_io_pipes",
578761 .dependencies = featureSet(&[_]Feature{}),
579762 };
580 result[@intFromEnum(Feature.SPV_KHR_multiview)] = .{
763 result[@intFromEnum(Feature.SPV_INTEL_kernel_attributes)] = .{
581764 .llvm_name = null,
582 .description = "SPIR-V extension SPV_KHR_multiview",
765 .description = "SPIR-V extension SPV_INTEL_kernel_attributes",
583766 .dependencies = featureSet(&[_]Feature{}),
584767 };
585 result[@intFromEnum(Feature.SPV_KHR_shader_ballot)] = .{
768 result[@intFromEnum(Feature.SPV_INTEL_long_composites)] = .{
586769 .llvm_name = null,
587 .description = "SPIR-V extension SPV_KHR_shader_ballot",
770 .description = "SPIR-V extension SPV_INTEL_long_composites",
588771 .dependencies = featureSet(&[_]Feature{}),
589772 };
590 result[@intFromEnum(Feature.SPV_KHR_vulkan_memory_model)] = .{
773 result[@intFromEnum(Feature.SPV_INTEL_loop_fuse)] = .{
591774 .llvm_name = null,
592 .description = "SPIR-V extension SPV_KHR_vulkan_memory_model",
775 .description = "SPIR-V extension SPV_INTEL_loop_fuse",
593776 .dependencies = featureSet(&[_]Feature{}),
594777 };
595 result[@intFromEnum(Feature.SPV_KHR_physical_storage_buffer)] = .{
778 result[@intFromEnum(Feature.SPV_INTEL_maximum_registers)] = .{
596779 .llvm_name = null,
597 .description = "SPIR-V extension SPV_KHR_physical_storage_buffer",
780 .description = "SPIR-V extension SPV_INTEL_maximum_registers",
598781 .dependencies = featureSet(&[_]Feature{}),
599782 };
600 result[@intFromEnum(Feature.SPV_KHR_workgroup_memory_explicit_layout)] = .{
783 result[@intFromEnum(Feature.SPV_INTEL_media_block_io)] = .{
601784 .llvm_name = null,
602 .description = "SPIR-V extension SPV_KHR_workgroup_memory_explicit_layout",
785 .description = "SPIR-V extension SPV_INTEL_media_block_io",
603786 .dependencies = featureSet(&[_]Feature{}),
604787 };
605 result[@intFromEnum(Feature.SPV_KHR_fragment_shading_rate)] = .{
788 result[@intFromEnum(Feature.SPV_INTEL_runtime_aligned)] = .{
606789 .llvm_name = null,
607 .description = "SPIR-V extension SPV_KHR_fragment_shading_rate",
790 .description = "SPIR-V extension SPV_INTEL_runtime_aligned",
608791 .dependencies = featureSet(&[_]Feature{}),
609792 };
610 result[@intFromEnum(Feature.SPV_KHR_shader_atomic_counter_ops)] = .{
793 result[@intFromEnum(Feature.SPV_INTEL_shader_integer_functions2)] = .{
611794 .llvm_name = null,
612 .description = "SPIR-V extension SPV_KHR_shader_atomic_counter_ops",
795 .description = "SPIR-V extension SPV_INTEL_shader_integer_functions2",
613796 .dependencies = featureSet(&[_]Feature{}),
614797 };
615 result[@intFromEnum(Feature.SPV_KHR_shader_draw_parameters)] = .{
798 result[@intFromEnum(Feature.SPV_INTEL_split_barrier)] = .{
616799 .llvm_name = null,
617 .description = "SPIR-V extension SPV_KHR_shader_draw_parameters",
800 .description = "SPIR-V extension SPV_INTEL_split_barrier",
618801 .dependencies = featureSet(&[_]Feature{}),
619802 };
620 result[@intFromEnum(Feature.SPV_KHR_storage_buffer_storage_class)] = .{
803 result[@intFromEnum(Feature.SPV_INTEL_subgroups)] = .{
621804 .llvm_name = null,
622 .description = "SPIR-V extension SPV_KHR_storage_buffer_storage_class",
805 .description = "SPIR-V extension SPV_INTEL_subgroups",
806 .dependencies = featureSet(&[_]Feature{}),
807 };
808 result[@intFromEnum(Feature.SPV_INTEL_subgroup_buffer_prefetch)] = .{
809 .llvm_name = null,
810 .description = "SPIR-V extension SPV_INTEL_subgroup_buffer_prefetch",
811 .dependencies = featureSet(&[_]Feature{}),
812 };
813 result[@intFromEnum(Feature.SPV_INTEL_task_sequence)] = .{
814 .llvm_name = null,
815 .description = "SPIR-V extension SPV_INTEL_task_sequence",
816 .dependencies = featureSet(&[_]Feature{}),
817 };
818 result[@intFromEnum(Feature.SPV_INTEL_unstructured_loop_controls)] = .{
819 .llvm_name = null,
820 .description = "SPIR-V extension SPV_INTEL_unstructured_loop_controls",
821 .dependencies = featureSet(&[_]Feature{}),
822 };
823 result[@intFromEnum(Feature.SPV_INTEL_usm_storage_classes)] = .{
824 .llvm_name = null,
825 .description = "SPIR-V extension SPV_INTEL_usm_storage_classes",
826 .dependencies = featureSet(&[_]Feature{}),
827 };
828 result[@intFromEnum(Feature.SPV_KHR_16bit_storage)] = .{
829 .llvm_name = null,
830 .description = "SPIR-V extension SPV_KHR_16bit_storage",
831 .dependencies = featureSet(&[_]Feature{}),
832 };
833 result[@intFromEnum(Feature.SPV_KHR_8bit_storage)] = .{
834 .llvm_name = null,
835 .description = "SPIR-V extension SPV_KHR_8bit_storage",
836 .dependencies = featureSet(&[_]Feature{}),
837 };
838 result[@intFromEnum(Feature.SPV_KHR_bit_instructions)] = .{
839 .llvm_name = null,
840 .description = "SPIR-V extension SPV_KHR_bit_instructions",
841 .dependencies = featureSet(&[_]Feature{}),
842 };
843 result[@intFromEnum(Feature.SPV_KHR_compute_shader_derivatives)] = .{
844 .llvm_name = null,
845 .description = "SPIR-V extension SPV_KHR_compute_shader_derivatives",
846 .dependencies = featureSet(&[_]Feature{}),
847 };
848 result[@intFromEnum(Feature.SPV_KHR_cooperative_matrix)] = .{
849 .llvm_name = null,
850 .description = "SPIR-V extension SPV_KHR_cooperative_matrix",
851 .dependencies = featureSet(&[_]Feature{}),
852 };
853 result[@intFromEnum(Feature.SPV_KHR_device_group)] = .{
854 .llvm_name = null,
855 .description = "SPIR-V extension SPV_KHR_device_group",
856 .dependencies = featureSet(&[_]Feature{}),
857 };
858 result[@intFromEnum(Feature.SPV_KHR_expect_assume)] = .{
859 .llvm_name = null,
860 .description = "SPIR-V extension SPV_KHR_expect_assume",
861 .dependencies = featureSet(&[_]Feature{}),
862 };
863 result[@intFromEnum(Feature.SPV_KHR_float_controls)] = .{
864 .llvm_name = null,
865 .description = "SPIR-V extension SPV_KHR_float_controls",
866 .dependencies = featureSet(&[_]Feature{}),
867 };
868 result[@intFromEnum(Feature.SPV_KHR_float_controls2)] = .{
869 .llvm_name = null,
870 .description = "SPIR-V extension SPV_KHR_float_controls2",
871 .dependencies = featureSet(&[_]Feature{}),
872 };
873 result[@intFromEnum(Feature.SPV_KHR_fragment_shader_barycentric)] = .{
874 .llvm_name = null,
875 .description = "SPIR-V extension SPV_KHR_fragment_shader_barycentric",
876 .dependencies = featureSet(&[_]Feature{}),
877 };
878 result[@intFromEnum(Feature.SPV_KHR_fragment_shading_rate)] = .{
879 .llvm_name = null,
880 .description = "SPIR-V extension SPV_KHR_fragment_shading_rate",
881 .dependencies = featureSet(&[_]Feature{}),
882 };
883 result[@intFromEnum(Feature.SPV_KHR_integer_dot_product)] = .{
884 .llvm_name = null,
885 .description = "SPIR-V extension SPV_KHR_integer_dot_product",
623886 .dependencies = featureSet(&[_]Feature{}),
624887 };
625888 result[@intFromEnum(Feature.SPV_KHR_linkonce_odr)] = .{
......@@ -627,9 +890,14 @@ pub const all_features = blk: {
627890 .description = "SPIR-V extension SPV_KHR_linkonce_odr",
628891 .dependencies = featureSet(&[_]Feature{}),
629892 };
630 result[@intFromEnum(Feature.SPV_KHR_terminate_invocation)] = .{
893 result[@intFromEnum(Feature.SPV_KHR_maximal_reconvergence)] = .{
631894 .llvm_name = null,
632 .description = "SPIR-V extension SPV_KHR_terminate_invocation",
895 .description = "SPIR-V extension SPV_KHR_maximal_reconvergence",
896 .dependencies = featureSet(&[_]Feature{}),
897 };
898 result[@intFromEnum(Feature.SPV_KHR_multiview)] = .{
899 .llvm_name = null,
900 .description = "SPIR-V extension SPV_KHR_multiview",
633901 .dependencies = featureSet(&[_]Feature{}),
634902 };
635903 result[@intFromEnum(Feature.SPV_KHR_non_semantic_info)] = .{
......@@ -637,19 +905,29 @@ pub const all_features = blk: {
637905 .description = "SPIR-V extension SPV_KHR_non_semantic_info",
638906 .dependencies = featureSet(&[_]Feature{}),
639907 };
908 result[@intFromEnum(Feature.SPV_KHR_no_integer_wrap_decoration)] = .{
909 .llvm_name = null,
910 .description = "SPIR-V extension SPV_KHR_no_integer_wrap_decoration",
911 .dependencies = featureSet(&[_]Feature{}),
912 };
913 result[@intFromEnum(Feature.SPV_KHR_physical_storage_buffer)] = .{
914 .llvm_name = null,
915 .description = "SPIR-V extension SPV_KHR_physical_storage_buffer",
916 .dependencies = featureSet(&[_]Feature{}),
917 };
640918 result[@intFromEnum(Feature.SPV_KHR_post_depth_coverage)] = .{
641919 .llvm_name = null,
642920 .description = "SPIR-V extension SPV_KHR_post_depth_coverage",
643921 .dependencies = featureSet(&[_]Feature{}),
644922 };
645 result[@intFromEnum(Feature.SPV_KHR_expect_assume)] = .{
923 result[@intFromEnum(Feature.SPV_KHR_quad_control)] = .{
646924 .llvm_name = null,
647 .description = "SPIR-V extension SPV_KHR_expect_assume",
925 .description = "SPIR-V extension SPV_KHR_quad_control",
648926 .dependencies = featureSet(&[_]Feature{}),
649927 };
650 result[@intFromEnum(Feature.SPV_KHR_ray_tracing)] = .{
928 result[@intFromEnum(Feature.SPV_KHR_ray_cull_mask)] = .{
651929 .llvm_name = null,
652 .description = "SPIR-V extension SPV_KHR_ray_tracing",
930 .description = "SPIR-V extension SPV_KHR_ray_cull_mask",
653931 .dependencies = featureSet(&[_]Feature{}),
654932 };
655933 result[@intFromEnum(Feature.SPV_KHR_ray_query)] = .{
......@@ -657,44 +935,99 @@ pub const all_features = blk: {
657935 .description = "SPIR-V extension SPV_KHR_ray_query",
658936 .dependencies = featureSet(&[_]Feature{}),
659937 };
660 result[@intFromEnum(Feature.SPV_KHR_float_controls)] = .{
938 result[@intFromEnum(Feature.SPV_KHR_ray_tracing)] = .{
661939 .llvm_name = null,
662 .description = "SPIR-V extension SPV_KHR_float_controls",
940 .description = "SPIR-V extension SPV_KHR_ray_tracing",
663941 .dependencies = featureSet(&[_]Feature{}),
664942 };
665 result[@intFromEnum(Feature.SPV_NV_viewport_array2)] = .{
943 result[@intFromEnum(Feature.SPV_KHR_ray_tracing_position_fetch)] = .{
666944 .llvm_name = null,
667 .description = "SPIR-V extension SPV_NV_viewport_array2",
945 .description = "SPIR-V extension SPV_KHR_ray_tracing_position_fetch",
668946 .dependencies = featureSet(&[_]Feature{}),
669947 };
670 result[@intFromEnum(Feature.SPV_NV_shader_subgroup_partitioned)] = .{
948 result[@intFromEnum(Feature.SPV_KHR_relaxed_extended_instruction)] = .{
671949 .llvm_name = null,
672 .description = "SPIR-V extension SPV_NV_shader_subgroup_partitioned",
950 .description = "SPIR-V extension SPV_KHR_relaxed_extended_instruction",
673951 .dependencies = featureSet(&[_]Feature{}),
674952 };
675 result[@intFromEnum(Feature.SPV_NVX_multiview_per_view_attributes)] = .{
953 result[@intFromEnum(Feature.SPV_KHR_shader_atomic_counter_ops)] = .{
676954 .llvm_name = null,
677 .description = "SPIR-V extension SPV_NVX_multiview_per_view_attributes",
955 .description = "SPIR-V extension SPV_KHR_shader_atomic_counter_ops",
678956 .dependencies = featureSet(&[_]Feature{}),
679957 };
680 result[@intFromEnum(Feature.SPV_NV_ray_tracing)] = .{
958 result[@intFromEnum(Feature.SPV_KHR_shader_ballot)] = .{
681959 .llvm_name = null,
682 .description = "SPIR-V extension SPV_NV_ray_tracing",
960 .description = "SPIR-V extension SPV_KHR_shader_ballot",
683961 .dependencies = featureSet(&[_]Feature{}),
684962 };
685 result[@intFromEnum(Feature.SPV_NV_shader_image_footprint)] = .{
963 result[@intFromEnum(Feature.SPV_KHR_shader_clock)] = .{
686964 .llvm_name = null,
687 .description = "SPIR-V extension SPV_NV_shader_image_footprint",
965 .description = "SPIR-V extension SPV_KHR_shader_clock",
688966 .dependencies = featureSet(&[_]Feature{}),
689967 };
690 result[@intFromEnum(Feature.SPV_NV_shading_rate)] = .{
968 result[@intFromEnum(Feature.SPV_KHR_shader_draw_parameters)] = .{
691969 .llvm_name = null,
692 .description = "SPIR-V extension SPV_NV_shading_rate",
970 .description = "SPIR-V extension SPV_KHR_shader_draw_parameters",
693971 .dependencies = featureSet(&[_]Feature{}),
694972 };
695 result[@intFromEnum(Feature.SPV_NV_stereo_view_rendering)] = .{
973 result[@intFromEnum(Feature.SPV_KHR_storage_buffer_storage_class)] = .{
696974 .llvm_name = null,
697 .description = "SPIR-V extension SPV_NV_stereo_view_rendering",
975 .description = "SPIR-V extension SPV_KHR_storage_buffer_storage_class",
976 .dependencies = featureSet(&[_]Feature{}),
977 };
978 result[@intFromEnum(Feature.SPV_KHR_subgroup_rotate)] = .{
979 .llvm_name = null,
980 .description = "SPIR-V extension SPV_KHR_subgroup_rotate",
981 .dependencies = featureSet(&[_]Feature{}),
982 };
983 result[@intFromEnum(Feature.SPV_KHR_subgroup_uniform_control_flow)] = .{
984 .llvm_name = null,
985 .description = "SPIR-V extension SPV_KHR_subgroup_uniform_control_flow",
986 .dependencies = featureSet(&[_]Feature{}),
987 };
988 result[@intFromEnum(Feature.SPV_KHR_subgroup_vote)] = .{
989 .llvm_name = null,
990 .description = "SPIR-V extension SPV_KHR_subgroup_vote",
991 .dependencies = featureSet(&[_]Feature{}),
992 };
993 result[@intFromEnum(Feature.SPV_KHR_terminate_invocation)] = .{
994 .llvm_name = null,
995 .description = "SPIR-V extension SPV_KHR_terminate_invocation",
996 .dependencies = featureSet(&[_]Feature{}),
997 };
998 result[@intFromEnum(Feature.SPV_KHR_untyped_pointers)] = .{
999 .llvm_name = null,
1000 .description = "SPIR-V extension SPV_KHR_untyped_pointers",
1001 .dependencies = featureSet(&[_]Feature{}),
1002 };
1003 result[@intFromEnum(Feature.SPV_KHR_variable_pointers)] = .{
1004 .llvm_name = null,
1005 .description = "SPIR-V extension SPV_KHR_variable_pointers",
1006 .dependencies = featureSet(&[_]Feature{}),
1007 };
1008 result[@intFromEnum(Feature.SPV_KHR_vulkan_memory_model)] = .{
1009 .llvm_name = null,
1010 .description = "SPIR-V extension SPV_KHR_vulkan_memory_model",
1011 .dependencies = featureSet(&[_]Feature{}),
1012 };
1013 result[@intFromEnum(Feature.SPV_KHR_workgroup_memory_explicit_layout)] = .{
1014 .llvm_name = null,
1015 .description = "SPIR-V extension SPV_KHR_workgroup_memory_explicit_layout",
1016 .dependencies = featureSet(&[_]Feature{}),
1017 };
1018 result[@intFromEnum(Feature.SPV_NVX_multiview_per_view_attributes)] = .{
1019 .llvm_name = null,
1020 .description = "SPIR-V extension SPV_NVX_multiview_per_view_attributes",
1021 .dependencies = featureSet(&[_]Feature{}),
1022 };
1023 result[@intFromEnum(Feature.SPV_NV_bindless_texture)] = .{
1024 .llvm_name = null,
1025 .description = "SPIR-V extension SPV_NV_bindless_texture",
1026 .dependencies = featureSet(&[_]Feature{}),
1027 };
1028 result[@intFromEnum(Feature.SPV_NV_cluster_acceleration_structure)] = .{
1029 .llvm_name = null,
1030 .description = "SPIR-V extension SPV_NV_cluster_acceleration_structure",
6981031 .dependencies = featureSet(&[_]Feature{}),
6991032 };
7001033 result[@intFromEnum(Feature.SPV_NV_compute_shader_derivatives)] = .{
......@@ -702,19 +1035,24 @@ pub const all_features = blk: {
7021035 .description = "SPIR-V extension SPV_NV_compute_shader_derivatives",
7031036 .dependencies = featureSet(&[_]Feature{}),
7041037 };
705 result[@intFromEnum(Feature.SPV_NV_shader_sm_builtins)] = .{
1038 result[@intFromEnum(Feature.SPV_NV_cooperative_matrix)] = .{
7061039 .llvm_name = null,
707 .description = "SPIR-V extension SPV_NV_shader_sm_builtins",
1040 .description = "SPIR-V extension SPV_NV_cooperative_matrix",
7081041 .dependencies = featureSet(&[_]Feature{}),
7091042 };
710 result[@intFromEnum(Feature.SPV_NV_mesh_shader)] = .{
1043 result[@intFromEnum(Feature.SPV_NV_cooperative_matrix2)] = .{
7111044 .llvm_name = null,
712 .description = "SPIR-V extension SPV_NV_mesh_shader",
1045 .description = "SPIR-V extension SPV_NV_cooperative_matrix2",
7131046 .dependencies = featureSet(&[_]Feature{}),
7141047 };
715 result[@intFromEnum(Feature.SPV_NV_geometry_shader_passthrough)] = .{
1048 result[@intFromEnum(Feature.SPV_NV_cooperative_vector)] = .{
7161049 .llvm_name = null,
717 .description = "SPIR-V extension SPV_NV_geometry_shader_passthrough",
1050 .description = "SPIR-V extension SPV_NV_cooperative_vector",
1051 .dependencies = featureSet(&[_]Feature{}),
1052 };
1053 result[@intFromEnum(Feature.SPV_NV_displacement_micromap)] = .{
1054 .llvm_name = null,
1055 .description = "SPIR-V extension SPV_NV_displacement_micromap",
7181056 .dependencies = featureSet(&[_]Feature{}),
7191057 };
7201058 result[@intFromEnum(Feature.SPV_NV_fragment_shader_barycentric)] = .{
......@@ -722,9 +1060,34 @@ pub const all_features = blk: {
7221060 .description = "SPIR-V extension SPV_NV_fragment_shader_barycentric",
7231061 .dependencies = featureSet(&[_]Feature{}),
7241062 };
725 result[@intFromEnum(Feature.SPV_NV_cooperative_matrix)] = .{
1063 result[@intFromEnum(Feature.SPV_NV_geometry_shader_passthrough)] = .{
7261064 .llvm_name = null,
727 .description = "SPIR-V extension SPV_NV_cooperative_matrix",
1065 .description = "SPIR-V extension SPV_NV_geometry_shader_passthrough",
1066 .dependencies = featureSet(&[_]Feature{}),
1067 };
1068 result[@intFromEnum(Feature.SPV_NV_linear_swept_spheres)] = .{
1069 .llvm_name = null,
1070 .description = "SPIR-V extension SPV_NV_linear_swept_spheres",
1071 .dependencies = featureSet(&[_]Feature{}),
1072 };
1073 result[@intFromEnum(Feature.SPV_NV_mesh_shader)] = .{
1074 .llvm_name = null,
1075 .description = "SPIR-V extension SPV_NV_mesh_shader",
1076 .dependencies = featureSet(&[_]Feature{}),
1077 };
1078 result[@intFromEnum(Feature.SPV_NV_raw_access_chains)] = .{
1079 .llvm_name = null,
1080 .description = "SPIR-V extension SPV_NV_raw_access_chains",
1081 .dependencies = featureSet(&[_]Feature{}),
1082 };
1083 result[@intFromEnum(Feature.SPV_NV_ray_tracing)] = .{
1084 .llvm_name = null,
1085 .description = "SPIR-V extension SPV_NV_ray_tracing",
1086 .dependencies = featureSet(&[_]Feature{}),
1087 };
1088 result[@intFromEnum(Feature.SPV_NV_ray_tracing_motion_blur)] = .{
1089 .llvm_name = null,
1090 .description = "SPIR-V extension SPV_NV_ray_tracing_motion_blur",
7281091 .dependencies = featureSet(&[_]Feature{}),
7291092 };
7301093 result[@intFromEnum(Feature.SPV_NV_sample_mask_override_coverage)] = .{
......@@ -732,15 +1095,73 @@ pub const all_features = blk: {
7321095 .description = "SPIR-V extension SPV_NV_sample_mask_override_coverage",
7331096 .dependencies = featureSet(&[_]Feature{}),
7341097 };
1098 result[@intFromEnum(Feature.SPV_NV_shader_atomic_fp16_vector)] = .{
1099 .llvm_name = null,
1100 .description = "SPIR-V extension SPV_NV_shader_atomic_fp16_vector",
1101 .dependencies = featureSet(&[_]Feature{}),
1102 };
1103 result[@intFromEnum(Feature.SPV_NV_shader_image_footprint)] = .{
1104 .llvm_name = null,
1105 .description = "SPIR-V extension SPV_NV_shader_image_footprint",
1106 .dependencies = featureSet(&[_]Feature{}),
1107 };
1108 result[@intFromEnum(Feature.SPV_NV_shader_invocation_reorder)] = .{
1109 .llvm_name = null,
1110 .description = "SPIR-V extension SPV_NV_shader_invocation_reorder",
1111 .dependencies = featureSet(&[_]Feature{}),
1112 };
1113 result[@intFromEnum(Feature.SPV_NV_shader_sm_builtins)] = .{
1114 .llvm_name = null,
1115 .description = "SPIR-V extension SPV_NV_shader_sm_builtins",
1116 .dependencies = featureSet(&[_]Feature{}),
1117 };
1118 result[@intFromEnum(Feature.SPV_NV_shader_subgroup_partitioned)] = .{
1119 .llvm_name = null,
1120 .description = "SPIR-V extension SPV_NV_shader_subgroup_partitioned",
1121 .dependencies = featureSet(&[_]Feature{}),
1122 };
1123 result[@intFromEnum(Feature.SPV_NV_shading_rate)] = .{
1124 .llvm_name = null,
1125 .description = "SPIR-V extension SPV_NV_shading_rate",
1126 .dependencies = featureSet(&[_]Feature{}),
1127 };
1128 result[@intFromEnum(Feature.SPV_NV_stereo_view_rendering)] = .{
1129 .llvm_name = null,
1130 .description = "SPIR-V extension SPV_NV_stereo_view_rendering",
1131 .dependencies = featureSet(&[_]Feature{}),
1132 };
1133 result[@intFromEnum(Feature.SPV_NV_tensor_addressing)] = .{
1134 .llvm_name = null,
1135 .description = "SPIR-V extension SPV_NV_tensor_addressing",
1136 .dependencies = featureSet(&[_]Feature{}),
1137 };
1138 result[@intFromEnum(Feature.SPV_NV_viewport_array2)] = .{
1139 .llvm_name = null,
1140 .description = "SPIR-V extension SPV_NV_viewport_array2",
1141 .dependencies = featureSet(&[_]Feature{}),
1142 };
1143 result[@intFromEnum(Feature.SPV_QCOM_image_processing)] = .{
1144 .llvm_name = null,
1145 .description = "SPIR-V extension SPV_QCOM_image_processing",
1146 .dependencies = featureSet(&[_]Feature{}),
1147 };
1148 result[@intFromEnum(Feature.SPV_QCOM_image_processing2)] = .{
1149 .llvm_name = null,
1150 .description = "SPIR-V extension SPV_QCOM_image_processing2",
1151 .dependencies = featureSet(&[_]Feature{}),
1152 };
7351153 result[@intFromEnum(Feature.Matrix)] = .{
7361154 .llvm_name = null,
7371155 .description = "Enable SPIR-V capability Matrix",
738 .dependencies = featureSet(&[_]Feature{}),
1156 .dependencies = featureSet(&[_]Feature{
1157 .v1_0,
1158 }),
7391159 };
7401160 result[@intFromEnum(Feature.Shader)] = .{
7411161 .llvm_name = null,
7421162 .description = "Enable SPIR-V capability Shader",
7431163 .dependencies = featureSet(&[_]Feature{
1164 .v1_0,
7441165 .Matrix,
7451166 }),
7461167 };
......@@ -748,6 +1169,7 @@ pub const all_features = blk: {
7481169 .llvm_name = null,
7491170 .description = "Enable SPIR-V capability Geometry",
7501171 .dependencies = featureSet(&[_]Feature{
1172 .v1_0,
7511173 .Shader,
7521174 }),
7531175 };
......@@ -755,28 +1177,36 @@ pub const all_features = blk: {
7551177 .llvm_name = null,
7561178 .description = "Enable SPIR-V capability Tessellation",
7571179 .dependencies = featureSet(&[_]Feature{
1180 .v1_0,
7581181 .Shader,
7591182 }),
7601183 };
7611184 result[@intFromEnum(Feature.Addresses)] = .{
7621185 .llvm_name = null,
7631186 .description = "Enable SPIR-V capability Addresses",
764 .dependencies = featureSet(&[_]Feature{}),
1187 .dependencies = featureSet(&[_]Feature{
1188 .v1_0,
1189 }),
7651190 };
7661191 result[@intFromEnum(Feature.Linkage)] = .{
7671192 .llvm_name = null,
7681193 .description = "Enable SPIR-V capability Linkage",
769 .dependencies = featureSet(&[_]Feature{}),
1194 .dependencies = featureSet(&[_]Feature{
1195 .v1_0,
1196 }),
7701197 };
7711198 result[@intFromEnum(Feature.Kernel)] = .{
7721199 .llvm_name = null,
7731200 .description = "Enable SPIR-V capability Kernel",
774 .dependencies = featureSet(&[_]Feature{}),
1201 .dependencies = featureSet(&[_]Feature{
1202 .v1_0,
1203 }),
7751204 };
7761205 result[@intFromEnum(Feature.Vector16)] = .{
7771206 .llvm_name = null,
7781207 .description = "Enable SPIR-V capability Vector16",
7791208 .dependencies = featureSet(&[_]Feature{
1209 .v1_0,
7801210 .Kernel,
7811211 }),
7821212 };
......@@ -784,28 +1214,36 @@ pub const all_features = blk: {
7841214 .llvm_name = null,
7851215 .description = "Enable SPIR-V capability Float16Buffer",
7861216 .dependencies = featureSet(&[_]Feature{
1217 .v1_0,
7871218 .Kernel,
7881219 }),
7891220 };
7901221 result[@intFromEnum(Feature.Float16)] = .{
7911222 .llvm_name = null,
7921223 .description = "Enable SPIR-V capability Float16",
793 .dependencies = featureSet(&[_]Feature{}),
1224 .dependencies = featureSet(&[_]Feature{
1225 .v1_0,
1226 }),
7941227 };
7951228 result[@intFromEnum(Feature.Float64)] = .{
7961229 .llvm_name = null,
7971230 .description = "Enable SPIR-V capability Float64",
798 .dependencies = featureSet(&[_]Feature{}),
1231 .dependencies = featureSet(&[_]Feature{
1232 .v1_0,
1233 }),
7991234 };
8001235 result[@intFromEnum(Feature.Int64)] = .{
8011236 .llvm_name = null,
8021237 .description = "Enable SPIR-V capability Int64",
803 .dependencies = featureSet(&[_]Feature{}),
1238 .dependencies = featureSet(&[_]Feature{
1239 .v1_0,
1240 }),
8041241 };
8051242 result[@intFromEnum(Feature.Int64Atomics)] = .{
8061243 .llvm_name = null,
8071244 .description = "Enable SPIR-V capability Int64Atomics",
8081245 .dependencies = featureSet(&[_]Feature{
1246 .v1_0,
8091247 .Int64,
8101248 }),
8111249 };
......@@ -813,6 +1251,7 @@ pub const all_features = blk: {
8131251 .llvm_name = null,
8141252 .description = "Enable SPIR-V capability ImageBasic",
8151253 .dependencies = featureSet(&[_]Feature{
1254 .v1_0,
8161255 .Kernel,
8171256 }),
8181257 };
......@@ -820,6 +1259,7 @@ pub const all_features = blk: {
8201259 .llvm_name = null,
8211260 .description = "Enable SPIR-V capability ImageReadWrite",
8221261 .dependencies = featureSet(&[_]Feature{
1262 .v1_0,
8231263 .ImageBasic,
8241264 }),
8251265 };
......@@ -827,6 +1267,7 @@ pub const all_features = blk: {
8271267 .llvm_name = null,
8281268 .description = "Enable SPIR-V capability ImageMipmap",
8291269 .dependencies = featureSet(&[_]Feature{
1270 .v1_0,
8301271 .ImageBasic,
8311272 }),
8321273 };
......@@ -834,18 +1275,22 @@ pub const all_features = blk: {
8341275 .llvm_name = null,
8351276 .description = "Enable SPIR-V capability Pipes",
8361277 .dependencies = featureSet(&[_]Feature{
1278 .v1_0,
8371279 .Kernel,
8381280 }),
8391281 };
8401282 result[@intFromEnum(Feature.Groups)] = .{
8411283 .llvm_name = null,
8421284 .description = "Enable SPIR-V capability Groups",
843 .dependencies = featureSet(&[_]Feature{}),
1285 .dependencies = featureSet(&[_]Feature{
1286 .v1_0,
1287 }),
8441288 };
8451289 result[@intFromEnum(Feature.DeviceEnqueue)] = .{
8461290 .llvm_name = null,
8471291 .description = "Enable SPIR-V capability DeviceEnqueue",
8481292 .dependencies = featureSet(&[_]Feature{
1293 .v1_0,
8491294 .Kernel,
8501295 }),
8511296 };
......@@ -853,6 +1298,7 @@ pub const all_features = blk: {
8531298 .llvm_name = null,
8541299 .description = "Enable SPIR-V capability LiteralSampler",
8551300 .dependencies = featureSet(&[_]Feature{
1301 .v1_0,
8561302 .Kernel,
8571303 }),
8581304 };
......@@ -860,18 +1306,22 @@ pub const all_features = blk: {
8601306 .llvm_name = null,
8611307 .description = "Enable SPIR-V capability AtomicStorage",
8621308 .dependencies = featureSet(&[_]Feature{
1309 .v1_0,
8631310 .Shader,
8641311 }),
8651312 };
8661313 result[@intFromEnum(Feature.Int16)] = .{
8671314 .llvm_name = null,
8681315 .description = "Enable SPIR-V capability Int16",
869 .dependencies = featureSet(&[_]Feature{}),
1316 .dependencies = featureSet(&[_]Feature{
1317 .v1_0,
1318 }),
8701319 };
8711320 result[@intFromEnum(Feature.TessellationPointSize)] = .{
8721321 .llvm_name = null,
8731322 .description = "Enable SPIR-V capability TessellationPointSize",
8741323 .dependencies = featureSet(&[_]Feature{
1324 .v1_0,
8751325 .Tessellation,
8761326 }),
8771327 };
......@@ -879,6 +1329,7 @@ pub const all_features = blk: {
8791329 .llvm_name = null,
8801330 .description = "Enable SPIR-V capability GeometryPointSize",
8811331 .dependencies = featureSet(&[_]Feature{
1332 .v1_0,
8821333 .Geometry,
8831334 }),
8841335 };
......@@ -886,6 +1337,7 @@ pub const all_features = blk: {
8861337 .llvm_name = null,
8871338 .description = "Enable SPIR-V capability ImageGatherExtended",
8881339 .dependencies = featureSet(&[_]Feature{
1340 .v1_0,
8891341 .Shader,
8901342 }),
8911343 };
......@@ -893,6 +1345,7 @@ pub const all_features = blk: {
8931345 .llvm_name = null,
8941346 .description = "Enable SPIR-V capability StorageImageMultisample",
8951347 .dependencies = featureSet(&[_]Feature{
1348 .v1_0,
8961349 .Shader,
8971350 }),
8981351 };
......@@ -900,6 +1353,7 @@ pub const all_features = blk: {
9001353 .llvm_name = null,
9011354 .description = "Enable SPIR-V capability UniformBufferArrayDynamicIndexing",
9021355 .dependencies = featureSet(&[_]Feature{
1356 .v1_0,
9031357 .Shader,
9041358 }),
9051359 };
......@@ -907,6 +1361,7 @@ pub const all_features = blk: {
9071361 .llvm_name = null,
9081362 .description = "Enable SPIR-V capability SampledImageArrayDynamicIndexing",
9091363 .dependencies = featureSet(&[_]Feature{
1364 .v1_0,
9101365 .Shader,
9111366 }),
9121367 };
......@@ -914,6 +1369,7 @@ pub const all_features = blk: {
9141369 .llvm_name = null,
9151370 .description = "Enable SPIR-V capability StorageBufferArrayDynamicIndexing",
9161371 .dependencies = featureSet(&[_]Feature{
1372 .v1_0,
9171373 .Shader,
9181374 }),
9191375 };
......@@ -921,6 +1377,7 @@ pub const all_features = blk: {
9211377 .llvm_name = null,
9221378 .description = "Enable SPIR-V capability StorageImageArrayDynamicIndexing",
9231379 .dependencies = featureSet(&[_]Feature{
1380 .v1_0,
9241381 .Shader,
9251382 }),
9261383 };
......@@ -928,6 +1385,7 @@ pub const all_features = blk: {
9281385 .llvm_name = null,
9291386 .description = "Enable SPIR-V capability ClipDistance",
9301387 .dependencies = featureSet(&[_]Feature{
1388 .v1_0,
9311389 .Shader,
9321390 }),
9331391 };
......@@ -935,6 +1393,7 @@ pub const all_features = blk: {
9351393 .llvm_name = null,
9361394 .description = "Enable SPIR-V capability CullDistance",
9371395 .dependencies = featureSet(&[_]Feature{
1396 .v1_0,
9381397 .Shader,
9391398 }),
9401399 };
......@@ -942,6 +1401,7 @@ pub const all_features = blk: {
9421401 .llvm_name = null,
9431402 .description = "Enable SPIR-V capability ImageCubeArray",
9441403 .dependencies = featureSet(&[_]Feature{
1404 .v1_0,
9451405 .SampledCubeArray,
9461406 }),
9471407 };
......@@ -949,6 +1409,7 @@ pub const all_features = blk: {
9491409 .llvm_name = null,
9501410 .description = "Enable SPIR-V capability SampleRateShading",
9511411 .dependencies = featureSet(&[_]Feature{
1412 .v1_0,
9521413 .Shader,
9531414 }),
9541415 };
......@@ -956,6 +1417,7 @@ pub const all_features = blk: {
9561417 .llvm_name = null,
9571418 .description = "Enable SPIR-V capability ImageRect",
9581419 .dependencies = featureSet(&[_]Feature{
1420 .v1_0,
9591421 .SampledRect,
9601422 }),
9611423 };
......@@ -963,6 +1425,7 @@ pub const all_features = blk: {
9631425 .llvm_name = null,
9641426 .description = "Enable SPIR-V capability SampledRect",
9651427 .dependencies = featureSet(&[_]Feature{
1428 .v1_0,
9661429 .Shader,
9671430 }),
9681431 };
......@@ -970,18 +1433,22 @@ pub const all_features = blk: {
9701433 .llvm_name = null,
9711434 .description = "Enable SPIR-V capability GenericPointer",
9721435 .dependencies = featureSet(&[_]Feature{
1436 .v1_0,
9731437 .Addresses,
9741438 }),
9751439 };
9761440 result[@intFromEnum(Feature.Int8)] = .{
9771441 .llvm_name = null,
9781442 .description = "Enable SPIR-V capability Int8",
979 .dependencies = featureSet(&[_]Feature{}),
1443 .dependencies = featureSet(&[_]Feature{
1444 .v1_0,
1445 }),
9801446 };
9811447 result[@intFromEnum(Feature.InputAttachment)] = .{
9821448 .llvm_name = null,
9831449 .description = "Enable SPIR-V capability InputAttachment",
9841450 .dependencies = featureSet(&[_]Feature{
1451 .v1_0,
9851452 .Shader,
9861453 }),
9871454 };
......@@ -989,6 +1456,7 @@ pub const all_features = blk: {
9891456 .llvm_name = null,
9901457 .description = "Enable SPIR-V capability SparseResidency",
9911458 .dependencies = featureSet(&[_]Feature{
1459 .v1_0,
9921460 .Shader,
9931461 }),
9941462 };
......@@ -996,18 +1464,22 @@ pub const all_features = blk: {
9961464 .llvm_name = null,
9971465 .description = "Enable SPIR-V capability MinLod",
9981466 .dependencies = featureSet(&[_]Feature{
1467 .v1_0,
9991468 .Shader,
10001469 }),
10011470 };
10021471 result[@intFromEnum(Feature.Sampled1D)] = .{
10031472 .llvm_name = null,
10041473 .description = "Enable SPIR-V capability Sampled1D",
1005 .dependencies = featureSet(&[_]Feature{}),
1474 .dependencies = featureSet(&[_]Feature{
1475 .v1_0,
1476 }),
10061477 };
10071478 result[@intFromEnum(Feature.Image1D)] = .{
10081479 .llvm_name = null,
10091480 .description = "Enable SPIR-V capability Image1D",
10101481 .dependencies = featureSet(&[_]Feature{
1482 .v1_0,
10111483 .Sampled1D,
10121484 }),
10131485 };
......@@ -1015,18 +1487,22 @@ pub const all_features = blk: {
10151487 .llvm_name = null,
10161488 .description = "Enable SPIR-V capability SampledCubeArray",
10171489 .dependencies = featureSet(&[_]Feature{
1490 .v1_0,
10181491 .Shader,
10191492 }),
10201493 };
10211494 result[@intFromEnum(Feature.SampledBuffer)] = .{
10221495 .llvm_name = null,
10231496 .description = "Enable SPIR-V capability SampledBuffer",
1024 .dependencies = featureSet(&[_]Feature{}),
1497 .dependencies = featureSet(&[_]Feature{
1498 .v1_0,
1499 }),
10251500 };
10261501 result[@intFromEnum(Feature.ImageBuffer)] = .{
10271502 .llvm_name = null,
10281503 .description = "Enable SPIR-V capability ImageBuffer",
10291504 .dependencies = featureSet(&[_]Feature{
1505 .v1_0,
10301506 .SampledBuffer,
10311507 }),
10321508 };
......@@ -1034,6 +1510,7 @@ pub const all_features = blk: {
10341510 .llvm_name = null,
10351511 .description = "Enable SPIR-V capability ImageMSArray",
10361512 .dependencies = featureSet(&[_]Feature{
1513 .v1_0,
10371514 .Shader,
10381515 }),
10391516 };
......@@ -1041,6 +1518,7 @@ pub const all_features = blk: {
10411518 .llvm_name = null,
10421519 .description = "Enable SPIR-V capability StorageImageExtendedFormats",
10431520 .dependencies = featureSet(&[_]Feature{
1521 .v1_0,
10441522 .Shader,
10451523 }),
10461524 };
......@@ -1048,6 +1526,7 @@ pub const all_features = blk: {
10481526 .llvm_name = null,
10491527 .description = "Enable SPIR-V capability ImageQuery",
10501528 .dependencies = featureSet(&[_]Feature{
1529 .v1_0,
10511530 .Shader,
10521531 }),
10531532 };
......@@ -1055,6 +1534,7 @@ pub const all_features = blk: {
10551534 .llvm_name = null,
10561535 .description = "Enable SPIR-V capability DerivativeControl",
10571536 .dependencies = featureSet(&[_]Feature{
1537 .v1_0,
10581538 .Shader,
10591539 }),
10601540 };
......@@ -1062,6 +1542,7 @@ pub const all_features = blk: {
10621542 .llvm_name = null,
10631543 .description = "Enable SPIR-V capability InterpolationFunction",
10641544 .dependencies = featureSet(&[_]Feature{
1545 .v1_0,
10651546 .Shader,
10661547 }),
10671548 };
......@@ -1069,6 +1550,7 @@ pub const all_features = blk: {
10691550 .llvm_name = null,
10701551 .description = "Enable SPIR-V capability TransformFeedback",
10711552 .dependencies = featureSet(&[_]Feature{
1553 .v1_0,
10721554 .Shader,
10731555 }),
10741556 };
......@@ -1076,6 +1558,7 @@ pub const all_features = blk: {
10761558 .llvm_name = null,
10771559 .description = "Enable SPIR-V capability GeometryStreams",
10781560 .dependencies = featureSet(&[_]Feature{
1561 .v1_0,
10791562 .Geometry,
10801563 }),
10811564 };
......@@ -1083,6 +1566,7 @@ pub const all_features = blk: {
10831566 .llvm_name = null,
10841567 .description = "Enable SPIR-V capability StorageImageReadWithoutFormat",
10851568 .dependencies = featureSet(&[_]Feature{
1569 .v1_0,
10861570 .Shader,
10871571 }),
10881572 };
......@@ -1090,6 +1574,7 @@ pub const all_features = blk: {
10901574 .llvm_name = null,
10911575 .description = "Enable SPIR-V capability StorageImageWriteWithoutFormat",
10921576 .dependencies = featureSet(&[_]Feature{
1577 .v1_0,
10931578 .Shader,
10941579 }),
10951580 };
......@@ -1097,6 +1582,7 @@ pub const all_features = blk: {
10971582 .llvm_name = null,
10981583 .description = "Enable SPIR-V capability MultiViewport",
10991584 .dependencies = featureSet(&[_]Feature{
1585 .v1_0,
11001586 .Geometry,
11011587 }),
11021588 };
......@@ -1201,6 +1687,38 @@ pub const all_features = blk: {
12011687 .v1_5,
12021688 }),
12031689 };
1690 result[@intFromEnum(Feature.UniformDecoration)] = .{
1691 .llvm_name = null,
1692 .description = "Enable SPIR-V capability UniformDecoration",
1693 .dependencies = featureSet(&[_]Feature{
1694 .v1_6,
1695 }),
1696 };
1697 result[@intFromEnum(Feature.CoreBuiltinsARM)] = .{
1698 .llvm_name = null,
1699 .description = "Enable SPIR-V capability CoreBuiltinsARM",
1700 .dependencies = featureSet(&[_]Feature{}),
1701 };
1702 result[@intFromEnum(Feature.TileImageColorReadAccessEXT)] = .{
1703 .llvm_name = null,
1704 .description = "Enable SPIR-V capability TileImageColorReadAccessEXT",
1705 .dependencies = featureSet(&[_]Feature{}),
1706 };
1707 result[@intFromEnum(Feature.TileImageDepthReadAccessEXT)] = .{
1708 .llvm_name = null,
1709 .description = "Enable SPIR-V capability TileImageDepthReadAccessEXT",
1710 .dependencies = featureSet(&[_]Feature{}),
1711 };
1712 result[@intFromEnum(Feature.TileImageStencilReadAccessEXT)] = .{
1713 .llvm_name = null,
1714 .description = "Enable SPIR-V capability TileImageStencilReadAccessEXT",
1715 .dependencies = featureSet(&[_]Feature{}),
1716 };
1717 result[@intFromEnum(Feature.CooperativeMatrixLayoutsARM)] = .{
1718 .llvm_name = null,
1719 .description = "Enable SPIR-V capability CooperativeMatrixLayoutsARM",
1720 .dependencies = featureSet(&[_]Feature{}),
1721 };
12041722 result[@intFromEnum(Feature.FragmentShadingRateKHR)] = .{
12051723 .llvm_name = null,
12061724 .description = "Enable SPIR-V capability FragmentShadingRateKHR",
......@@ -1239,7 +1757,7 @@ pub const all_features = blk: {
12391757 .llvm_name = null,
12401758 .description = "Enable SPIR-V capability WorkgroupMemoryExplicitLayout16BitAccessKHR",
12411759 .dependencies = featureSet(&[_]Feature{
1242 .Shader,
1760 .WorkgroupMemoryExplicitLayoutKHR,
12431761 }),
12441762 };
12451763 result[@intFromEnum(Feature.SubgroupVoteKHR)] = .{
......@@ -1254,29 +1772,12 @@ pub const all_features = blk: {
12541772 .v1_3,
12551773 }),
12561774 };
1257 result[@intFromEnum(Feature.StorageUniformBufferBlock16)] = .{
1258 .llvm_name = null,
1259 .description = "Enable SPIR-V capability StorageUniformBufferBlock16",
1260 .dependencies = featureSet(&[_]Feature{
1261 .v1_3,
1262 }),
1263 };
12641775 result[@intFromEnum(Feature.UniformAndStorageBuffer16BitAccess)] = .{
12651776 .llvm_name = null,
12661777 .description = "Enable SPIR-V capability UniformAndStorageBuffer16BitAccess",
12671778 .dependencies = featureSet(&[_]Feature{
12681779 .v1_3,
12691780 .StorageBuffer16BitAccess,
1270 .StorageUniformBufferBlock16,
1271 }),
1272 };
1273 result[@intFromEnum(Feature.StorageUniform16)] = .{
1274 .llvm_name = null,
1275 .description = "Enable SPIR-V capability StorageUniform16",
1276 .dependencies = featureSet(&[_]Feature{
1277 .v1_3,
1278 .StorageBuffer16BitAccess,
1279 .StorageUniformBufferBlock16,
12801781 }),
12811782 };
12821783 result[@intFromEnum(Feature.StoragePushConstant16)] = .{
......@@ -1405,6 +1906,11 @@ pub const all_features = blk: {
14051906 .Shader,
14061907 }),
14071908 };
1909 result[@intFromEnum(Feature.UntypedPointersKHR)] = .{
1910 .llvm_name = null,
1911 .description = "Enable SPIR-V capability UntypedPointersKHR",
1912 .dependencies = featureSet(&[_]Feature{}),
1913 };
14081914 result[@intFromEnum(Feature.RayTraversalPrimitiveCullingKHR)] = .{
14091915 .llvm_name = null,
14101916 .description = "Enable SPIR-V capability RayTraversalPrimitiveCullingKHR",
......@@ -1420,6 +1926,26 @@ pub const all_features = blk: {
14201926 .Shader,
14211927 }),
14221928 };
1929 result[@intFromEnum(Feature.TextureSampleWeightedQCOM)] = .{
1930 .llvm_name = null,
1931 .description = "Enable SPIR-V capability TextureSampleWeightedQCOM",
1932 .dependencies = featureSet(&[_]Feature{}),
1933 };
1934 result[@intFromEnum(Feature.TextureBoxFilterQCOM)] = .{
1935 .llvm_name = null,
1936 .description = "Enable SPIR-V capability TextureBoxFilterQCOM",
1937 .dependencies = featureSet(&[_]Feature{}),
1938 };
1939 result[@intFromEnum(Feature.TextureBlockMatchQCOM)] = .{
1940 .llvm_name = null,
1941 .description = "Enable SPIR-V capability TextureBlockMatchQCOM",
1942 .dependencies = featureSet(&[_]Feature{}),
1943 };
1944 result[@intFromEnum(Feature.TextureBlockMatch2QCOM)] = .{
1945 .llvm_name = null,
1946 .description = "Enable SPIR-V capability TextureBlockMatch2QCOM",
1947 .dependencies = featureSet(&[_]Feature{}),
1948 };
14231949 result[@intFromEnum(Feature.Float16ImageAMD)] = .{
14241950 .llvm_name = null,
14251951 .description = "Enable SPIR-V capability Float16ImageAMD",
......@@ -1465,10 +1991,20 @@ pub const all_features = blk: {
14651991 result[@intFromEnum(Feature.ShaderClockKHR)] = .{
14661992 .llvm_name = null,
14671993 .description = "Enable SPIR-V capability ShaderClockKHR",
1994 .dependencies = featureSet(&[_]Feature{}),
1995 };
1996 result[@intFromEnum(Feature.ShaderEnqueueAMDX)] = .{
1997 .llvm_name = null,
1998 .description = "Enable SPIR-V capability ShaderEnqueueAMDX",
14681999 .dependencies = featureSet(&[_]Feature{
14692000 .Shader,
14702001 }),
14712002 };
2003 result[@intFromEnum(Feature.QuadControlKHR)] = .{
2004 .llvm_name = null,
2005 .description = "Enable SPIR-V capability QuadControlKHR",
2006 .dependencies = featureSet(&[_]Feature{}),
2007 };
14722008 result[@intFromEnum(Feature.SampleMaskOverrideCoverageNV)] = .{
14732009 .llvm_name = null,
14742010 .description = "Enable SPIR-V capability SampleMaskOverrideCoverageNV",
......@@ -1490,18 +2026,11 @@ pub const all_features = blk: {
14902026 .MultiViewport,
14912027 }),
14922028 };
1493 result[@intFromEnum(Feature.ShaderViewportIndexLayerNV)] = .{
1494 .llvm_name = null,
1495 .description = "Enable SPIR-V capability ShaderViewportIndexLayerNV",
1496 .dependencies = featureSet(&[_]Feature{
1497 .MultiViewport,
1498 }),
1499 };
15002029 result[@intFromEnum(Feature.ShaderViewportMaskNV)] = .{
15012030 .llvm_name = null,
15022031 .description = "Enable SPIR-V capability ShaderViewportMaskNV",
15032032 .dependencies = featureSet(&[_]Feature{
1504 .ShaderViewportIndexLayerNV,
2033 .ShaderViewportIndexLayerEXT,
15052034 }),
15062035 };
15072036 result[@intFromEnum(Feature.ShaderStereoViewNV)] = .{
......@@ -1537,26 +2066,28 @@ pub const all_features = blk: {
15372066 .description = "Enable SPIR-V capability ImageFootprintNV",
15382067 .dependencies = featureSet(&[_]Feature{}),
15392068 };
1540 result[@intFromEnum(Feature.FragmentBarycentricNV)] = .{
2069 result[@intFromEnum(Feature.MeshShadingEXT)] = .{
15412070 .llvm_name = null,
1542 .description = "Enable SPIR-V capability FragmentBarycentricNV",
1543 .dependencies = featureSet(&[_]Feature{}),
2071 .description = "Enable SPIR-V capability MeshShadingEXT",
2072 .dependencies = featureSet(&[_]Feature{
2073 .Shader,
2074 }),
15442075 };
1545 result[@intFromEnum(Feature.ComputeDerivativeGroupQuadsNV)] = .{
2076 result[@intFromEnum(Feature.FragmentBarycentricKHR)] = .{
15462077 .llvm_name = null,
1547 .description = "Enable SPIR-V capability ComputeDerivativeGroupQuadsNV",
2078 .description = "Enable SPIR-V capability FragmentBarycentricKHR",
15482079 .dependencies = featureSet(&[_]Feature{}),
15492080 };
1550 result[@intFromEnum(Feature.FragmentDensityEXT)] = .{
2081 result[@intFromEnum(Feature.ComputeDerivativeGroupQuadsKHR)] = .{
15512082 .llvm_name = null,
1552 .description = "Enable SPIR-V capability FragmentDensityEXT",
2083 .description = "Enable SPIR-V capability ComputeDerivativeGroupQuadsKHR",
15532084 .dependencies = featureSet(&[_]Feature{
15542085 .Shader,
15552086 }),
15562087 };
1557 result[@intFromEnum(Feature.ShadingRateNV)] = .{
2088 result[@intFromEnum(Feature.FragmentDensityEXT)] = .{
15582089 .llvm_name = null,
1559 .description = "Enable SPIR-V capability ShadingRateNV",
2090 .description = "Enable SPIR-V capability FragmentDensityEXT",
15602091 .dependencies = featureSet(&[_]Feature{
15612092 .Shader,
15622093 }),
......@@ -1574,14 +2105,6 @@ pub const all_features = blk: {
15742105 .Shader,
15752106 }),
15762107 };
1577 result[@intFromEnum(Feature.ShaderNonUniformEXT)] = .{
1578 .llvm_name = null,
1579 .description = "Enable SPIR-V capability ShaderNonUniformEXT",
1580 .dependencies = featureSet(&[_]Feature{
1581 .v1_5,
1582 .Shader,
1583 }),
1584 };
15852108 result[@intFromEnum(Feature.RuntimeDescriptorArray)] = .{
15862109 .llvm_name = null,
15872110 .description = "Enable SPIR-V capability RuntimeDescriptorArray",
......@@ -1590,14 +2113,6 @@ pub const all_features = blk: {
15902113 .Shader,
15912114 }),
15922115 };
1593 result[@intFromEnum(Feature.RuntimeDescriptorArrayEXT)] = .{
1594 .llvm_name = null,
1595 .description = "Enable SPIR-V capability RuntimeDescriptorArrayEXT",
1596 .dependencies = featureSet(&[_]Feature{
1597 .v1_5,
1598 .Shader,
1599 }),
1600 };
16012116 result[@intFromEnum(Feature.InputAttachmentArrayDynamicIndexing)] = .{
16022117 .llvm_name = null,
16032118 .description = "Enable SPIR-V capability InputAttachmentArrayDynamicIndexing",
......@@ -1606,14 +2121,6 @@ pub const all_features = blk: {
16062121 .InputAttachment,
16072122 }),
16082123 };
1609 result[@intFromEnum(Feature.InputAttachmentArrayDynamicIndexingEXT)] = .{
1610 .llvm_name = null,
1611 .description = "Enable SPIR-V capability InputAttachmentArrayDynamicIndexingEXT",
1612 .dependencies = featureSet(&[_]Feature{
1613 .v1_5,
1614 .InputAttachment,
1615 }),
1616 };
16172124 result[@intFromEnum(Feature.UniformTexelBufferArrayDynamicIndexing)] = .{
16182125 .llvm_name = null,
16192126 .description = "Enable SPIR-V capability UniformTexelBufferArrayDynamicIndexing",
......@@ -1622,14 +2129,6 @@ pub const all_features = blk: {
16222129 .SampledBuffer,
16232130 }),
16242131 };
1625 result[@intFromEnum(Feature.UniformTexelBufferArrayDynamicIndexingEXT)] = .{
1626 .llvm_name = null,
1627 .description = "Enable SPIR-V capability UniformTexelBufferArrayDynamicIndexingEXT",
1628 .dependencies = featureSet(&[_]Feature{
1629 .v1_5,
1630 .SampledBuffer,
1631 }),
1632 };
16332132 result[@intFromEnum(Feature.StorageTexelBufferArrayDynamicIndexing)] = .{
16342133 .llvm_name = null,
16352134 .description = "Enable SPIR-V capability StorageTexelBufferArrayDynamicIndexing",
......@@ -1638,90 +2137,41 @@ pub const all_features = blk: {
16382137 .ImageBuffer,
16392138 }),
16402139 };
1641 result[@intFromEnum(Feature.StorageTexelBufferArrayDynamicIndexingEXT)] = .{
1642 .llvm_name = null,
1643 .description = "Enable SPIR-V capability StorageTexelBufferArrayDynamicIndexingEXT",
1644 .dependencies = featureSet(&[_]Feature{
1645 .v1_5,
1646 .ImageBuffer,
1647 }),
1648 };
16492140 result[@intFromEnum(Feature.UniformBufferArrayNonUniformIndexing)] = .{
16502141 .llvm_name = null,
1651 .description = "Enable SPIR-V capability UniformBufferArrayNonUniformIndexing",
1652 .dependencies = featureSet(&[_]Feature{
1653 .v1_5,
1654 .ShaderNonUniform,
1655 }),
1656 };
1657 result[@intFromEnum(Feature.UniformBufferArrayNonUniformIndexingEXT)] = .{
1658 .llvm_name = null,
1659 .description = "Enable SPIR-V capability UniformBufferArrayNonUniformIndexingEXT",
1660 .dependencies = featureSet(&[_]Feature{
1661 .v1_5,
1662 .ShaderNonUniform,
1663 }),
1664 };
1665 result[@intFromEnum(Feature.SampledImageArrayNonUniformIndexing)] = .{
1666 .llvm_name = null,
1667 .description = "Enable SPIR-V capability SampledImageArrayNonUniformIndexing",
1668 .dependencies = featureSet(&[_]Feature{
1669 .v1_5,
1670 .ShaderNonUniform,
1671 }),
1672 };
1673 result[@intFromEnum(Feature.SampledImageArrayNonUniformIndexingEXT)] = .{
1674 .llvm_name = null,
1675 .description = "Enable SPIR-V capability SampledImageArrayNonUniformIndexingEXT",
1676 .dependencies = featureSet(&[_]Feature{
1677 .v1_5,
1678 .ShaderNonUniform,
1679 }),
1680 };
1681 result[@intFromEnum(Feature.StorageBufferArrayNonUniformIndexing)] = .{
1682 .llvm_name = null,
1683 .description = "Enable SPIR-V capability StorageBufferArrayNonUniformIndexing",
1684 .dependencies = featureSet(&[_]Feature{
1685 .v1_5,
1686 .ShaderNonUniform,
1687 }),
1688 };
1689 result[@intFromEnum(Feature.StorageBufferArrayNonUniformIndexingEXT)] = .{
1690 .llvm_name = null,
1691 .description = "Enable SPIR-V capability StorageBufferArrayNonUniformIndexingEXT",
2142 .description = "Enable SPIR-V capability UniformBufferArrayNonUniformIndexing",
16922143 .dependencies = featureSet(&[_]Feature{
16932144 .v1_5,
16942145 .ShaderNonUniform,
16952146 }),
16962147 };
1697 result[@intFromEnum(Feature.StorageImageArrayNonUniformIndexing)] = .{
2148 result[@intFromEnum(Feature.SampledImageArrayNonUniformIndexing)] = .{
16982149 .llvm_name = null,
1699 .description = "Enable SPIR-V capability StorageImageArrayNonUniformIndexing",
2150 .description = "Enable SPIR-V capability SampledImageArrayNonUniformIndexing",
17002151 .dependencies = featureSet(&[_]Feature{
17012152 .v1_5,
17022153 .ShaderNonUniform,
17032154 }),
17042155 };
1705 result[@intFromEnum(Feature.StorageImageArrayNonUniformIndexingEXT)] = .{
2156 result[@intFromEnum(Feature.StorageBufferArrayNonUniformIndexing)] = .{
17062157 .llvm_name = null,
1707 .description = "Enable SPIR-V capability StorageImageArrayNonUniformIndexingEXT",
2158 .description = "Enable SPIR-V capability StorageBufferArrayNonUniformIndexing",
17082159 .dependencies = featureSet(&[_]Feature{
17092160 .v1_5,
17102161 .ShaderNonUniform,
17112162 }),
17122163 };
1713 result[@intFromEnum(Feature.InputAttachmentArrayNonUniformIndexing)] = .{
2164 result[@intFromEnum(Feature.StorageImageArrayNonUniformIndexing)] = .{
17142165 .llvm_name = null,
1715 .description = "Enable SPIR-V capability InputAttachmentArrayNonUniformIndexing",
2166 .description = "Enable SPIR-V capability StorageImageArrayNonUniformIndexing",
17162167 .dependencies = featureSet(&[_]Feature{
17172168 .v1_5,
1718 .InputAttachment,
17192169 .ShaderNonUniform,
17202170 }),
17212171 };
1722 result[@intFromEnum(Feature.InputAttachmentArrayNonUniformIndexingEXT)] = .{
2172 result[@intFromEnum(Feature.InputAttachmentArrayNonUniformIndexing)] = .{
17232173 .llvm_name = null,
1724 .description = "Enable SPIR-V capability InputAttachmentArrayNonUniformIndexingEXT",
2174 .description = "Enable SPIR-V capability InputAttachmentArrayNonUniformIndexing",
17252175 .dependencies = featureSet(&[_]Feature{
17262176 .v1_5,
17272177 .InputAttachment,
......@@ -1737,15 +2187,6 @@ pub const all_features = blk: {
17372187 .ShaderNonUniform,
17382188 }),
17392189 };
1740 result[@intFromEnum(Feature.UniformTexelBufferArrayNonUniformIndexingEXT)] = .{
1741 .llvm_name = null,
1742 .description = "Enable SPIR-V capability UniformTexelBufferArrayNonUniformIndexingEXT",
1743 .dependencies = featureSet(&[_]Feature{
1744 .v1_5,
1745 .SampledBuffer,
1746 .ShaderNonUniform,
1747 }),
1748 };
17492190 result[@intFromEnum(Feature.StorageTexelBufferArrayNonUniformIndexing)] = .{
17502191 .llvm_name = null,
17512192 .description = "Enable SPIR-V capability StorageTexelBufferArrayNonUniformIndexing",
......@@ -1755,13 +2196,11 @@ pub const all_features = blk: {
17552196 .ShaderNonUniform,
17562197 }),
17572198 };
1758 result[@intFromEnum(Feature.StorageTexelBufferArrayNonUniformIndexingEXT)] = .{
2199 result[@intFromEnum(Feature.RayTracingPositionFetchKHR)] = .{
17592200 .llvm_name = null,
1760 .description = "Enable SPIR-V capability StorageTexelBufferArrayNonUniformIndexingEXT",
2201 .description = "Enable SPIR-V capability RayTracingPositionFetchKHR",
17612202 .dependencies = featureSet(&[_]Feature{
1762 .v1_5,
1763 .ImageBuffer,
1764 .ShaderNonUniform,
2203 .Shader,
17652204 }),
17662205 };
17672206 result[@intFromEnum(Feature.RayTracingNV)] = .{
......@@ -1771,16 +2210,16 @@ pub const all_features = blk: {
17712210 .Shader,
17722211 }),
17732212 };
1774 result[@intFromEnum(Feature.VulkanMemoryModel)] = .{
2213 result[@intFromEnum(Feature.RayTracingMotionBlurNV)] = .{
17752214 .llvm_name = null,
1776 .description = "Enable SPIR-V capability VulkanMemoryModel",
2215 .description = "Enable SPIR-V capability RayTracingMotionBlurNV",
17772216 .dependencies = featureSet(&[_]Feature{
1778 .v1_5,
2217 .Shader,
17792218 }),
17802219 };
1781 result[@intFromEnum(Feature.VulkanMemoryModelKHR)] = .{
2220 result[@intFromEnum(Feature.VulkanMemoryModel)] = .{
17822221 .llvm_name = null,
1783 .description = "Enable SPIR-V capability VulkanMemoryModelKHR",
2222 .description = "Enable SPIR-V capability VulkanMemoryModel",
17842223 .dependencies = featureSet(&[_]Feature{
17852224 .v1_5,
17862225 }),
......@@ -1792,13 +2231,6 @@ pub const all_features = blk: {
17922231 .v1_5,
17932232 }),
17942233 };
1795 result[@intFromEnum(Feature.VulkanMemoryModelDeviceScopeKHR)] = .{
1796 .llvm_name = null,
1797 .description = "Enable SPIR-V capability VulkanMemoryModelDeviceScopeKHR",
1798 .dependencies = featureSet(&[_]Feature{
1799 .v1_5,
1800 }),
1801 };
18022234 result[@intFromEnum(Feature.PhysicalStorageBufferAddresses)] = .{
18032235 .llvm_name = null,
18042236 .description = "Enable SPIR-V capability PhysicalStorageBufferAddresses",
......@@ -1807,19 +2239,13 @@ pub const all_features = blk: {
18072239 .Shader,
18082240 }),
18092241 };
1810 result[@intFromEnum(Feature.PhysicalStorageBufferAddressesEXT)] = .{
2242 result[@intFromEnum(Feature.ComputeDerivativeGroupLinearKHR)] = .{
18112243 .llvm_name = null,
1812 .description = "Enable SPIR-V capability PhysicalStorageBufferAddressesEXT",
2244 .description = "Enable SPIR-V capability ComputeDerivativeGroupLinearKHR",
18132245 .dependencies = featureSet(&[_]Feature{
1814 .v1_5,
18152246 .Shader,
18162247 }),
18172248 };
1818 result[@intFromEnum(Feature.ComputeDerivativeGroupLinearNV)] = .{
1819 .llvm_name = null,
1820 .description = "Enable SPIR-V capability ComputeDerivativeGroupLinearNV",
1821 .dependencies = featureSet(&[_]Feature{}),
1822 };
18232249 result[@intFromEnum(Feature.RayTracingProvisionalKHR)] = .{
18242250 .llvm_name = null,
18252251 .description = "Enable SPIR-V capability RayTracingProvisionalKHR",
......@@ -1862,13 +2288,122 @@ pub const all_features = blk: {
18622288 .Shader,
18632289 }),
18642290 };
1865 result[@intFromEnum(Feature.DemoteToHelperInvocationEXT)] = .{
2291 result[@intFromEnum(Feature.DemoteToHelperInvocation)] = .{
2292 .llvm_name = null,
2293 .description = "Enable SPIR-V capability DemoteToHelperInvocation",
2294 .dependencies = featureSet(&[_]Feature{
2295 .v1_6,
2296 .Shader,
2297 }),
2298 };
2299 result[@intFromEnum(Feature.DisplacementMicromapNV)] = .{
2300 .llvm_name = null,
2301 .description = "Enable SPIR-V capability DisplacementMicromapNV",
2302 .dependencies = featureSet(&[_]Feature{
2303 .Shader,
2304 }),
2305 };
2306 result[@intFromEnum(Feature.RayTracingOpacityMicromapEXT)] = .{
2307 .llvm_name = null,
2308 .description = "Enable SPIR-V capability RayTracingOpacityMicromapEXT",
2309 .dependencies = featureSet(&[_]Feature{
2310 .RayQueryKHR,
2311 .RayTracingKHR,
2312 }),
2313 };
2314 result[@intFromEnum(Feature.ShaderInvocationReorderNV)] = .{
2315 .llvm_name = null,
2316 .description = "Enable SPIR-V capability ShaderInvocationReorderNV",
2317 .dependencies = featureSet(&[_]Feature{
2318 .RayTracingKHR,
2319 }),
2320 };
2321 result[@intFromEnum(Feature.BindlessTextureNV)] = .{
2322 .llvm_name = null,
2323 .description = "Enable SPIR-V capability BindlessTextureNV",
2324 .dependencies = featureSet(&[_]Feature{}),
2325 };
2326 result[@intFromEnum(Feature.RayQueryPositionFetchKHR)] = .{
18662327 .llvm_name = null,
1867 .description = "Enable SPIR-V capability DemoteToHelperInvocationEXT",
2328 .description = "Enable SPIR-V capability RayQueryPositionFetchKHR",
18682329 .dependencies = featureSet(&[_]Feature{
18692330 .Shader,
18702331 }),
18712332 };
2333 result[@intFromEnum(Feature.CooperativeVectorNV)] = .{
2334 .llvm_name = null,
2335 .description = "Enable SPIR-V capability CooperativeVectorNV",
2336 .dependencies = featureSet(&[_]Feature{}),
2337 };
2338 result[@intFromEnum(Feature.AtomicFloat16VectorNV)] = .{
2339 .llvm_name = null,
2340 .description = "Enable SPIR-V capability AtomicFloat16VectorNV",
2341 .dependencies = featureSet(&[_]Feature{}),
2342 };
2343 result[@intFromEnum(Feature.RayTracingDisplacementMicromapNV)] = .{
2344 .llvm_name = null,
2345 .description = "Enable SPIR-V capability RayTracingDisplacementMicromapNV",
2346 .dependencies = featureSet(&[_]Feature{
2347 .RayTracingKHR,
2348 }),
2349 };
2350 result[@intFromEnum(Feature.RawAccessChainsNV)] = .{
2351 .llvm_name = null,
2352 .description = "Enable SPIR-V capability RawAccessChainsNV",
2353 .dependencies = featureSet(&[_]Feature{}),
2354 };
2355 result[@intFromEnum(Feature.RayTracingSpheresGeometryNV)] = .{
2356 .llvm_name = null,
2357 .description = "Enable SPIR-V capability RayTracingSpheresGeometryNV",
2358 .dependencies = featureSet(&[_]Feature{}),
2359 };
2360 result[@intFromEnum(Feature.RayTracingLinearSweptSpheresGeometryNV)] = .{
2361 .llvm_name = null,
2362 .description = "Enable SPIR-V capability RayTracingLinearSweptSpheresGeometryNV",
2363 .dependencies = featureSet(&[_]Feature{}),
2364 };
2365 result[@intFromEnum(Feature.CooperativeMatrixReductionsNV)] = .{
2366 .llvm_name = null,
2367 .description = "Enable SPIR-V capability CooperativeMatrixReductionsNV",
2368 .dependencies = featureSet(&[_]Feature{}),
2369 };
2370 result[@intFromEnum(Feature.CooperativeMatrixConversionsNV)] = .{
2371 .llvm_name = null,
2372 .description = "Enable SPIR-V capability CooperativeMatrixConversionsNV",
2373 .dependencies = featureSet(&[_]Feature{}),
2374 };
2375 result[@intFromEnum(Feature.CooperativeMatrixPerElementOperationsNV)] = .{
2376 .llvm_name = null,
2377 .description = "Enable SPIR-V capability CooperativeMatrixPerElementOperationsNV",
2378 .dependencies = featureSet(&[_]Feature{}),
2379 };
2380 result[@intFromEnum(Feature.CooperativeMatrixTensorAddressingNV)] = .{
2381 .llvm_name = null,
2382 .description = "Enable SPIR-V capability CooperativeMatrixTensorAddressingNV",
2383 .dependencies = featureSet(&[_]Feature{}),
2384 };
2385 result[@intFromEnum(Feature.CooperativeMatrixBlockLoadsNV)] = .{
2386 .llvm_name = null,
2387 .description = "Enable SPIR-V capability CooperativeMatrixBlockLoadsNV",
2388 .dependencies = featureSet(&[_]Feature{}),
2389 };
2390 result[@intFromEnum(Feature.CooperativeVectorTrainingNV)] = .{
2391 .llvm_name = null,
2392 .description = "Enable SPIR-V capability CooperativeVectorTrainingNV",
2393 .dependencies = featureSet(&[_]Feature{}),
2394 };
2395 result[@intFromEnum(Feature.RayTracingClusterAccelerationStructureNV)] = .{
2396 .llvm_name = null,
2397 .description = "Enable SPIR-V capability RayTracingClusterAccelerationStructureNV",
2398 .dependencies = featureSet(&[_]Feature{
2399 .RayTracingKHR,
2400 }),
2401 };
2402 result[@intFromEnum(Feature.TensorAddressingNV)] = .{
2403 .llvm_name = null,
2404 .description = "Enable SPIR-V capability TensorAddressingNV",
2405 .dependencies = featureSet(&[_]Feature{}),
2406 };
18722407 result[@intFromEnum(Feature.SubgroupShuffleINTEL)] = .{
18732408 .llvm_name = null,
18742409 .description = "Enable SPIR-V capability SubgroupShuffleINTEL",
......@@ -1902,9 +2437,7 @@ pub const all_features = blk: {
19022437 result[@intFromEnum(Feature.IntegerFunctions2INTEL)] = .{
19032438 .llvm_name = null,
19042439 .description = "Enable SPIR-V capability IntegerFunctions2INTEL",
1905 .dependencies = featureSet(&[_]Feature{
1906 .Shader,
1907 }),
2440 .dependencies = featureSet(&[_]Feature{}),
19082441 };
19092442 result[@intFromEnum(Feature.FunctionPointersINTEL)] = .{
19102443 .llvm_name = null,
......@@ -1995,6 +2528,11 @@ pub const all_features = blk: {
19952528 .description = "Enable SPIR-V capability ArbitraryPrecisionIntegersINTEL",
19962529 .dependencies = featureSet(&[_]Feature{}),
19972530 };
2531 result[@intFromEnum(Feature.ArbitraryPrecisionFloatingPointINTEL)] = .{
2532 .llvm_name = null,
2533 .description = "Enable SPIR-V capability ArbitraryPrecisionFloatingPointINTEL",
2534 .dependencies = featureSet(&[_]Feature{}),
2535 };
19982536 result[@intFromEnum(Feature.UnstructuredLoopControlsINTEL)] = .{
19992537 .llvm_name = null,
20002538 .description = "Enable SPIR-V capability UnstructuredLoopControlsINTEL",
......@@ -2030,16 +2568,41 @@ pub const all_features = blk: {
20302568 .description = "Enable SPIR-V capability LoopFuseINTEL",
20312569 .dependencies = featureSet(&[_]Feature{}),
20322570 };
2571 result[@intFromEnum(Feature.FPGADSPControlINTEL)] = .{
2572 .llvm_name = null,
2573 .description = "Enable SPIR-V capability FPGADSPControlINTEL",
2574 .dependencies = featureSet(&[_]Feature{}),
2575 };
2576 result[@intFromEnum(Feature.MemoryAccessAliasingINTEL)] = .{
2577 .llvm_name = null,
2578 .description = "Enable SPIR-V capability MemoryAccessAliasingINTEL",
2579 .dependencies = featureSet(&[_]Feature{}),
2580 };
2581 result[@intFromEnum(Feature.FPGAInvocationPipeliningAttributesINTEL)] = .{
2582 .llvm_name = null,
2583 .description = "Enable SPIR-V capability FPGAInvocationPipeliningAttributesINTEL",
2584 .dependencies = featureSet(&[_]Feature{}),
2585 };
20332586 result[@intFromEnum(Feature.FPGABufferLocationINTEL)] = .{
20342587 .llvm_name = null,
20352588 .description = "Enable SPIR-V capability FPGABufferLocationINTEL",
20362589 .dependencies = featureSet(&[_]Feature{}),
20372590 };
2591 result[@intFromEnum(Feature.ArbitraryPrecisionFixedPointINTEL)] = .{
2592 .llvm_name = null,
2593 .description = "Enable SPIR-V capability ArbitraryPrecisionFixedPointINTEL",
2594 .dependencies = featureSet(&[_]Feature{}),
2595 };
20382596 result[@intFromEnum(Feature.USMStorageClassesINTEL)] = .{
20392597 .llvm_name = null,
20402598 .description = "Enable SPIR-V capability USMStorageClassesINTEL",
20412599 .dependencies = featureSet(&[_]Feature{}),
20422600 };
2601 result[@intFromEnum(Feature.RuntimeAlignedAttributeINTEL)] = .{
2602 .llvm_name = null,
2603 .description = "Enable SPIR-V capability RuntimeAlignedAttributeINTEL",
2604 .dependencies = featureSet(&[_]Feature{}),
2605 };
20432606 result[@intFromEnum(Feature.IOPipesINTEL)] = .{
20442607 .llvm_name = null,
20452608 .description = "Enable SPIR-V capability IOPipesINTEL",
......@@ -2055,23 +2618,198 @@ pub const all_features = blk: {
20552618 .description = "Enable SPIR-V capability FPGARegINTEL",
20562619 .dependencies = featureSet(&[_]Feature{}),
20572620 };
2058 result[@intFromEnum(Feature.AtomicFloat32AddEXT)] = .{
2621 result[@intFromEnum(Feature.DotProductInputAll)] = .{
20592622 .llvm_name = null,
2060 .description = "Enable SPIR-V capability AtomicFloat32AddEXT",
2623 .description = "Enable SPIR-V capability DotProductInputAll",
20612624 .dependencies = featureSet(&[_]Feature{
2062 .Shader,
2625 .v1_6,
2626 }),
2627 };
2628 result[@intFromEnum(Feature.DotProductInput4x8Bit)] = .{
2629 .llvm_name = null,
2630 .description = "Enable SPIR-V capability DotProductInput4x8Bit",
2631 .dependencies = featureSet(&[_]Feature{
2632 .v1_6,
2633 .Int8,
2634 }),
2635 };
2636 result[@intFromEnum(Feature.DotProductInput4x8BitPacked)] = .{
2637 .llvm_name = null,
2638 .description = "Enable SPIR-V capability DotProductInput4x8BitPacked",
2639 .dependencies = featureSet(&[_]Feature{
2640 .v1_6,
2641 }),
2642 };
2643 result[@intFromEnum(Feature.DotProduct)] = .{
2644 .llvm_name = null,
2645 .description = "Enable SPIR-V capability DotProduct",
2646 .dependencies = featureSet(&[_]Feature{
2647 .v1_6,
2648 }),
2649 };
2650 result[@intFromEnum(Feature.RayCullMaskKHR)] = .{
2651 .llvm_name = null,
2652 .description = "Enable SPIR-V capability RayCullMaskKHR",
2653 .dependencies = featureSet(&[_]Feature{}),
2654 };
2655 result[@intFromEnum(Feature.CooperativeMatrixKHR)] = .{
2656 .llvm_name = null,
2657 .description = "Enable SPIR-V capability CooperativeMatrixKHR",
2658 .dependencies = featureSet(&[_]Feature{}),
2659 };
2660 result[@intFromEnum(Feature.ReplicatedCompositesEXT)] = .{
2661 .llvm_name = null,
2662 .description = "Enable SPIR-V capability ReplicatedCompositesEXT",
2663 .dependencies = featureSet(&[_]Feature{}),
2664 };
2665 result[@intFromEnum(Feature.BitInstructions)] = .{
2666 .llvm_name = null,
2667 .description = "Enable SPIR-V capability BitInstructions",
2668 .dependencies = featureSet(&[_]Feature{}),
2669 };
2670 result[@intFromEnum(Feature.GroupNonUniformRotateKHR)] = .{
2671 .llvm_name = null,
2672 .description = "Enable SPIR-V capability GroupNonUniformRotateKHR",
2673 .dependencies = featureSet(&[_]Feature{
2674 .GroupNonUniform,
20632675 }),
20642676 };
2677 result[@intFromEnum(Feature.FloatControls2)] = .{
2678 .llvm_name = null,
2679 .description = "Enable SPIR-V capability FloatControls2",
2680 .dependencies = featureSet(&[_]Feature{}),
2681 };
2682 result[@intFromEnum(Feature.AtomicFloat32AddEXT)] = .{
2683 .llvm_name = null,
2684 .description = "Enable SPIR-V capability AtomicFloat32AddEXT",
2685 .dependencies = featureSet(&[_]Feature{}),
2686 };
20652687 result[@intFromEnum(Feature.AtomicFloat64AddEXT)] = .{
20662688 .llvm_name = null,
20672689 .description = "Enable SPIR-V capability AtomicFloat64AddEXT",
2690 .dependencies = featureSet(&[_]Feature{}),
2691 };
2692 result[@intFromEnum(Feature.LongCompositesINTEL)] = .{
2693 .llvm_name = null,
2694 .description = "Enable SPIR-V capability LongCompositesINTEL",
2695 .dependencies = featureSet(&[_]Feature{}),
2696 };
2697 result[@intFromEnum(Feature.OptNoneEXT)] = .{
2698 .llvm_name = null,
2699 .description = "Enable SPIR-V capability OptNoneEXT",
2700 .dependencies = featureSet(&[_]Feature{}),
2701 };
2702 result[@intFromEnum(Feature.AtomicFloat16AddEXT)] = .{
2703 .llvm_name = null,
2704 .description = "Enable SPIR-V capability AtomicFloat16AddEXT",
2705 .dependencies = featureSet(&[_]Feature{}),
2706 };
2707 result[@intFromEnum(Feature.DebugInfoModuleINTEL)] = .{
2708 .llvm_name = null,
2709 .description = "Enable SPIR-V capability DebugInfoModuleINTEL",
2710 .dependencies = featureSet(&[_]Feature{}),
2711 };
2712 result[@intFromEnum(Feature.BFloat16ConversionINTEL)] = .{
2713 .llvm_name = null,
2714 .description = "Enable SPIR-V capability BFloat16ConversionINTEL",
2715 .dependencies = featureSet(&[_]Feature{}),
2716 };
2717 result[@intFromEnum(Feature.SplitBarrierINTEL)] = .{
2718 .llvm_name = null,
2719 .description = "Enable SPIR-V capability SplitBarrierINTEL",
2720 .dependencies = featureSet(&[_]Feature{}),
2721 };
2722 result[@intFromEnum(Feature.ArithmeticFenceEXT)] = .{
2723 .llvm_name = null,
2724 .description = "Enable SPIR-V capability ArithmeticFenceEXT",
2725 .dependencies = featureSet(&[_]Feature{}),
2726 };
2727 result[@intFromEnum(Feature.FPGAClusterAttributesV2INTEL)] = .{
2728 .llvm_name = null,
2729 .description = "Enable SPIR-V capability FPGAClusterAttributesV2INTEL",
20682730 .dependencies = featureSet(&[_]Feature{
2069 .Shader,
2731 .FPGAClusterAttributesINTEL,
2732 }),
2733 };
2734 result[@intFromEnum(Feature.FPGAKernelAttributesv2INTEL)] = .{
2735 .llvm_name = null,
2736 .description = "Enable SPIR-V capability FPGAKernelAttributesv2INTEL",
2737 .dependencies = featureSet(&[_]Feature{
2738 .FPGAKernelAttributesINTEL,
2739 }),
2740 };
2741 result[@intFromEnum(Feature.FPMaxErrorINTEL)] = .{
2742 .llvm_name = null,
2743 .description = "Enable SPIR-V capability FPMaxErrorINTEL",
2744 .dependencies = featureSet(&[_]Feature{}),
2745 };
2746 result[@intFromEnum(Feature.FPGALatencyControlINTEL)] = .{
2747 .llvm_name = null,
2748 .description = "Enable SPIR-V capability FPGALatencyControlINTEL",
2749 .dependencies = featureSet(&[_]Feature{}),
2750 };
2751 result[@intFromEnum(Feature.FPGAArgumentInterfacesINTEL)] = .{
2752 .llvm_name = null,
2753 .description = "Enable SPIR-V capability FPGAArgumentInterfacesINTEL",
2754 .dependencies = featureSet(&[_]Feature{}),
2755 };
2756 result[@intFromEnum(Feature.GlobalVariableHostAccessINTEL)] = .{
2757 .llvm_name = null,
2758 .description = "Enable SPIR-V capability GlobalVariableHostAccessINTEL",
2759 .dependencies = featureSet(&[_]Feature{}),
2760 };
2761 result[@intFromEnum(Feature.GlobalVariableFPGADecorationsINTEL)] = .{
2762 .llvm_name = null,
2763 .description = "Enable SPIR-V capability GlobalVariableFPGADecorationsINTEL",
2764 .dependencies = featureSet(&[_]Feature{}),
2765 };
2766 result[@intFromEnum(Feature.SubgroupBufferPrefetchINTEL)] = .{
2767 .llvm_name = null,
2768 .description = "Enable SPIR-V capability SubgroupBufferPrefetchINTEL",
2769 .dependencies = featureSet(&[_]Feature{}),
2770 };
2771 result[@intFromEnum(Feature.Subgroup2DBlockIOINTEL)] = .{
2772 .llvm_name = null,
2773 .description = "Enable SPIR-V capability Subgroup2DBlockIOINTEL",
2774 .dependencies = featureSet(&[_]Feature{}),
2775 };
2776 result[@intFromEnum(Feature.Subgroup2DBlockTransformINTEL)] = .{
2777 .llvm_name = null,
2778 .description = "Enable SPIR-V capability Subgroup2DBlockTransformINTEL",
2779 .dependencies = featureSet(&[_]Feature{
2780 .Subgroup2DBlockIOINTEL,
2781 }),
2782 };
2783 result[@intFromEnum(Feature.Subgroup2DBlockTransposeINTEL)] = .{
2784 .llvm_name = null,
2785 .description = "Enable SPIR-V capability Subgroup2DBlockTransposeINTEL",
2786 .dependencies = featureSet(&[_]Feature{
2787 .Subgroup2DBlockIOINTEL,
20702788 }),
20712789 };
2072 result[@intFromEnum(Feature.LongConstantCompositeINTEL)] = .{
2790 result[@intFromEnum(Feature.SubgroupMatrixMultiplyAccumulateINTEL)] = .{
2791 .llvm_name = null,
2792 .description = "Enable SPIR-V capability SubgroupMatrixMultiplyAccumulateINTEL",
2793 .dependencies = featureSet(&[_]Feature{}),
2794 };
2795 result[@intFromEnum(Feature.GroupUniformArithmeticKHR)] = .{
2796 .llvm_name = null,
2797 .description = "Enable SPIR-V capability GroupUniformArithmeticKHR",
2798 .dependencies = featureSet(&[_]Feature{}),
2799 };
2800 result[@intFromEnum(Feature.MaskedGatherScatterINTEL)] = .{
2801 .llvm_name = null,
2802 .description = "Enable SPIR-V capability MaskedGatherScatterINTEL",
2803 .dependencies = featureSet(&[_]Feature{}),
2804 };
2805 result[@intFromEnum(Feature.CacheControlsINTEL)] = .{
2806 .llvm_name = null,
2807 .description = "Enable SPIR-V capability CacheControlsINTEL",
2808 .dependencies = featureSet(&[_]Feature{}),
2809 };
2810 result[@intFromEnum(Feature.RegisterLimitsINTEL)] = .{
20732811 .llvm_name = null,
2074 .description = "Enable SPIR-V capability LongConstantCompositeINTEL",
2812 .description = "Enable SPIR-V capability RegisterLimitsINTEL",
20752813 .dependencies = featureSet(&[_]Feature{}),
20762814 };
20772815 const ti = @typeInfo(Feature);
......@@ -2083,9 +2821,33 @@ pub const all_features = blk: {
20832821};
20842822
20852823pub const cpu = struct {
2086 pub const generic = CpuModel{
2824 pub const generic: CpuModel = .{
20872825 .name = "generic",
20882826 .llvm_name = "generic",
2089 .features = featureSet(&[_]Feature{}),
2827 .features = featureSet(&[_]Feature{.v1_0}),
2828 };
2829
2830 pub const vulkan_v1_2: CpuModel = .{
2831 .name = "vulkan_v1_2",
2832 .llvm_name = null,
2833 .features = featureSet(&[_]Feature{
2834 .v1_5,
2835 .Shader,
2836 .PhysicalStorageBufferAddresses,
2837 .VariablePointers,
2838 .VariablePointersStorageBuffer,
2839 .SPV_KHR_physical_storage_buffer,
2840 }),
2841 };
2842
2843 pub const opencl_v2: CpuModel = .{
2844 .name = "opencl_v2",
2845 .llvm_name = null,
2846 .features = featureSet(&[_]Feature{
2847 .v1_2,
2848 .Kernel,
2849 .Addresses,
2850 .GenericPointer,
2851 }),
20902852 };
20912853};
tools/update_spirv_features.zig+43-10
......@@ -77,7 +77,7 @@ pub fn main() !void {
7777 var scanner = std.json.Scanner.initCompleteInput(allocator, registry_json);
7878 var diagnostics = std.json.Diagnostics{};
7979 scanner.enableDiagnostics(&diagnostics);
80 const registry = std.json.parseFromTokenSourceLeaky(g.CoreRegistry, allocator, &scanner, .{}) catch |err| {
80 const registry = std.json.parseFromTokenSourceLeaky(g.CoreRegistry, allocator, &scanner, .{ .ignore_unknown_fields = true }) catch |err| {
8181 std.debug.print("line,col: {},{}\n", .{ diagnostics.getLine(), diagnostics.getColumn() });
8282 return err;
8383 };
......@@ -188,11 +188,11 @@ pub fn main() !void {
188188 cap.enumerant,
189189 });
190190
191 if (cap.version) |ver_str| {
192 if (!std.mem.eql(u8, ver_str, "None")) {
193 const ver = try Version.parse(ver_str);
194 try w.print(" .v{}_{},\n", .{ ver.major, ver.minor });
195 }
191 if (cap.version) |ver_str| blk: {
192 if (std.mem.eql(u8, ver_str, "None")) break :blk;
193
194 const ver = try Version.parse(ver_str);
195 try w.print(" .v{}_{},\n", .{ ver.major, ver.minor });
196196 }
197197
198198 for (cap.capabilities) |cap_dep| {
......@@ -215,6 +215,37 @@ pub fn main() !void {
215215 \\ break :blk result;
216216 \\};
217217 \\
218 \\pub const cpu = struct {
219 \\ pub const generic: CpuModel = .{
220 \\ .name = "generic",
221 \\ .llvm_name = "generic",
222 \\ .features = featureSet(&[_]Feature{ .v1_0 }),
223 \\ };
224 \\
225 \\ pub const vulkan_v1_2: CpuModel = .{
226 \\ .name = "vulkan_v1_2",
227 \\ .llvm_name = null,
228 \\ .features = featureSet(&[_]Feature{
229 \\ .v1_5,
230 \\ .Shader,
231 \\ .PhysicalStorageBufferAddresses,
232 \\ .VariablePointers,
233 \\ .VariablePointersStorageBuffer,
234 \\ .SPV_KHR_physical_storage_buffer,
235 \\ }),
236 \\ };
237 \\
238 \\ pub const opencl_v2: CpuModel = .{
239 \\ .name = "opencl_v2",
240 \\ .llvm_name = null,
241 \\ .features = featureSet(&[_]Feature{
242 \\ .v1_2,
243 \\ .Kernel,
244 \\ .Addresses,
245 \\ .GenericPointer,
246 \\ }),
247 \\ };
248 \\};
218249 );
219250
220251 try bw.flush();
......@@ -265,12 +296,15 @@ fn gather_extensions(allocator: Allocator, spirv_registry_root: []const u8) ![]c
265296
266297 // As the specs are inconsistent on this next part, just skip any newlines/minuses
267298 var ext_start = name_strings_offset + name_strings.len + 1;
268 while (ext_spec[ext_start] == '\n' or ext_spec[ext_start] == '-') {
299 while (std.ascii.isWhitespace(ext_spec[ext_start]) or ext_spec[ext_start] == '-') {
269300 ext_start += 1;
270301 }
271302
272303 const ext_end = std.mem.indexOfScalarPos(u8, ext_spec, ext_start, '\n') orelse return error.InvalidRegistry;
273 const ext = ext_spec[ext_start..ext_end];
304 const ext = std.mem.trim(u8, ext_spec[ext_start..ext_end], &std.ascii.whitespace);
305
306 // Ignore invalid/incomplete extensions
307 if (std.mem.eql(u8, ext, "{extension_name}")) continue;
274308
275309 std.debug.assert(std.mem.startsWith(u8, ext, "SPV_")); // Sanity check, all extensions should have a name like SPV_VENDOR_extension.
276310
......@@ -283,8 +317,7 @@ fn gather_extensions(allocator: Allocator, spirv_registry_root: []const u8) ![]c
283317
284318fn insertVersion(versions: *std.ArrayList(Version), version: ?[]const u8) !void {
285319 const ver_str = version orelse return;
286 if (std.mem.eql(u8, ver_str, "None"))
287 return;
320 if (std.mem.eql(u8, ver_str, "None")) return;
288321
289322 const ver = try Version.parse(ver_str);
290323 for (versions.items) |existing_ver| {