authorgravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2026-06-30 09:50:22+03:30
committergravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2026-06-30 11:58:33+03:30
logbe7634b82829cbd0ba6c1845a7ce91cc1aa60f88
tree8b6be53000046016793af43a9445b90956aa55ad
parent21dd8ea1d2bd4deb0773da465bfc0031d935e3fd

Target.spirv: omit Linkage and friends caps/ext from cpu features

Keeping these in cpu features can cause conflict because these are automatically emitted by linker. Closes #35975

3 files changed, 267 insertions(+), 298 deletions(-)

lib/std/Target/spirv.zig+228-276
......@@ -6,7 +6,6 @@ const CpuModel = std.Target.Cpu.Model;
66
77pub const Feature = enum {
88 abort_khr,
9 addresses,
109 arithmetic_fence_ext,
1110 atomic_float16add_ext,
1211 atomic_float16min_max_ext,
......@@ -87,8 +86,6 @@ pub const Feature = enum {
8786 int64image_ext,
8887 int8,
8988 interpolation_function,
90 kernel,
91 linkage,
9289 literal_sampler,
9390 long_vector_ext,
9491 matrix,
......@@ -98,7 +95,6 @@ pub const Feature = enum {
9895 multi_viewport,
9996 named_barrier,
10097 opt_none_ext,
101 physical_storage_buffer_addresses,
10298 pipe_storage,
10399 pipes,
104100 poison_freeze_khr,
......@@ -121,7 +117,6 @@ pub const Feature = enum {
121117 sampled_image_array_dynamic_indexing,
122118 sampled_image_array_non_uniform_indexing,
123119 sampled_rect,
124 shader,
125120 shader64bit_indexing_ext,
126121 shader_clock_khr,
127122 shader_invocation_reorder_ext,
......@@ -172,7 +167,6 @@ pub const Feature = enum {
172167 SPV_KHR_fragment_shading_rate,
173168 SPV_KHR_integer_dot_product,
174169 SPV_KHR_multiview,
175 SPV_KHR_physical_storage_buffer,
176170 SPV_KHR_poison_freeze,
177171 SPV_KHR_post_depth_coverage,
178172 SPV_KHR_quad_control,
......@@ -253,22 +247,15 @@ pub const all_features = blk: {
253247 var result: [len]CpuFeature = undefined;
254248 result[@intFromEnum(Feature.abort_khr)] = .{
255249 .llvm_name = null,
256 .description = "Enable abort_khr Capability.",
250 .description = "Enable abort_khr capability",
257251 .dependencies = featureSet(&[_]Feature{
258252 .SPV_KHR_abort,
259253 .v1_0,
260254 }),
261255 };
262 result[@intFromEnum(Feature.addresses)] = .{
263 .llvm_name = null,
264 .description = "Enable addresses Capability.",
265 .dependencies = featureSet(&[_]Feature{
266 .v1_0,
267 }),
268 };
269256 result[@intFromEnum(Feature.arithmetic_fence_ext)] = .{
270257 .llvm_name = null,
271 .description = "Enable arithmetic_fence_ext Capability.",
258 .description = "Enable arithmetic_fence_ext capability",
272259 .dependencies = featureSet(&[_]Feature{
273260 .SPV_EXT_arithmetic_fence,
274261 .v1_0,
......@@ -276,7 +263,7 @@ pub const all_features = blk: {
276263 };
277264 result[@intFromEnum(Feature.atomic_float16add_ext)] = .{
278265 .llvm_name = null,
279 .description = "Enable atomic_float16add_ext Capability.",
266 .description = "Enable atomic_float16add_ext capability",
280267 .dependencies = featureSet(&[_]Feature{
281268 .SPV_EXT_shader_atomic_float16_add,
282269 .v1_0,
......@@ -284,7 +271,7 @@ pub const all_features = blk: {
284271 };
285272 result[@intFromEnum(Feature.atomic_float16min_max_ext)] = .{
286273 .llvm_name = null,
287 .description = "Enable atomic_float16min_max_ext Capability.",
274 .description = "Enable atomic_float16min_max_ext capability",
288275 .dependencies = featureSet(&[_]Feature{
289276 .SPV_EXT_shader_atomic_float_min_max,
290277 .v1_0,
......@@ -292,7 +279,7 @@ pub const all_features = blk: {
292279 };
293280 result[@intFromEnum(Feature.atomic_float32add_ext)] = .{
294281 .llvm_name = null,
295 .description = "Enable atomic_float32add_ext Capability.",
282 .description = "Enable atomic_float32add_ext capability",
296283 .dependencies = featureSet(&[_]Feature{
297284 .SPV_EXT_shader_atomic_float_add,
298285 .v1_0,
......@@ -300,7 +287,7 @@ pub const all_features = blk: {
300287 };
301288 result[@intFromEnum(Feature.atomic_float32min_max_ext)] = .{
302289 .llvm_name = null,
303 .description = "Enable atomic_float32min_max_ext Capability.",
290 .description = "Enable atomic_float32min_max_ext capability",
304291 .dependencies = featureSet(&[_]Feature{
305292 .SPV_EXT_shader_atomic_float_min_max,
306293 .v1_0,
......@@ -308,7 +295,7 @@ pub const all_features = blk: {
308295 };
309296 result[@intFromEnum(Feature.atomic_float64add_ext)] = .{
310297 .llvm_name = null,
311 .description = "Enable atomic_float64add_ext Capability.",
298 .description = "Enable atomic_float64add_ext capability",
312299 .dependencies = featureSet(&[_]Feature{
313300 .SPV_EXT_shader_atomic_float_add,
314301 .v1_0,
......@@ -316,7 +303,7 @@ pub const all_features = blk: {
316303 };
317304 result[@intFromEnum(Feature.atomic_float64min_max_ext)] = .{
318305 .llvm_name = null,
319 .description = "Enable atomic_float64min_max_ext Capability.",
306 .description = "Enable atomic_float64min_max_ext capability",
320307 .dependencies = featureSet(&[_]Feature{
321308 .SPV_EXT_shader_atomic_float_min_max,
322309 .v1_0,
......@@ -324,14 +311,14 @@ pub const all_features = blk: {
324311 };
325312 result[@intFromEnum(Feature.atomic_storage)] = .{
326313 .llvm_name = null,
327 .description = "Enable atomic_storage Capability.",
314 .description = "Enable atomic_storage capability",
328315 .dependencies = featureSet(&[_]Feature{
329316 .v1_0,
330317 }),
331318 };
332319 result[@intFromEnum(Feature.atomic_storage_ops)] = .{
333320 .llvm_name = null,
334 .description = "Enable atomic_storage_ops Capability.",
321 .description = "Enable atomic_storage_ops capability",
335322 .dependencies = featureSet(&[_]Feature{
336323 .SPV_KHR_shader_atomic_counter_ops,
337324 .v1_0,
......@@ -339,7 +326,7 @@ pub const all_features = blk: {
339326 };
340327 result[@intFromEnum(Feature.b_float16cooperative_matrix_khr)] = .{
341328 .llvm_name = null,
342 .description = "Enable b_float16cooperative_matrix_khr Capability.",
329 .description = "Enable b_float16cooperative_matrix_khr capability",
343330 .dependencies = featureSet(&[_]Feature{
344331 .SPV_KHR_bfloat16,
345332 .v1_0,
......@@ -347,7 +334,7 @@ pub const all_features = blk: {
347334 };
348335 result[@intFromEnum(Feature.b_float16dot_product_khr)] = .{
349336 .llvm_name = null,
350 .description = "Enable b_float16dot_product_khr Capability.",
337 .description = "Enable b_float16dot_product_khr capability",
351338 .dependencies = featureSet(&[_]Feature{
352339 .SPV_KHR_bfloat16,
353340 .v1_0,
......@@ -355,7 +342,7 @@ pub const all_features = blk: {
355342 };
356343 result[@intFromEnum(Feature.b_float16type_khr)] = .{
357344 .llvm_name = null,
358 .description = "Enable b_float16type_khr Capability.",
345 .description = "Enable b_float16type_khr capability",
359346 .dependencies = featureSet(&[_]Feature{
360347 .SPV_KHR_bfloat16,
361348 .v1_0,
......@@ -363,7 +350,7 @@ pub const all_features = blk: {
363350 };
364351 result[@intFromEnum(Feature.bit_instructions)] = .{
365352 .llvm_name = null,
366 .description = "Enable bit_instructions Capability.",
353 .description = "Enable bit_instructions capability",
367354 .dependencies = featureSet(&[_]Feature{
368355 .SPV_KHR_bit_instructions,
369356 .v1_0,
......@@ -371,14 +358,14 @@ pub const all_features = blk: {
371358 };
372359 result[@intFromEnum(Feature.clip_distance)] = .{
373360 .llvm_name = null,
374 .description = "Enable clip_distance Capability.",
361 .description = "Enable clip_distance capability",
375362 .dependencies = featureSet(&[_]Feature{
376363 .v1_0,
377364 }),
378365 };
379366 result[@intFromEnum(Feature.compute_derivative_group_linear_khr)] = .{
380367 .llvm_name = null,
381 .description = "Enable compute_derivative_group_linear_khr Capability.",
368 .description = "Enable compute_derivative_group_linear_khr capability",
382369 .dependencies = featureSet(&[_]Feature{
383370 .SPV_KHR_compute_shader_derivatives,
384371 .v1_0,
......@@ -386,7 +373,7 @@ pub const all_features = blk: {
386373 };
387374 result[@intFromEnum(Feature.compute_derivative_group_quads_khr)] = .{
388375 .llvm_name = null,
389 .description = "Enable compute_derivative_group_quads_khr Capability.",
376 .description = "Enable compute_derivative_group_quads_khr capability",
390377 .dependencies = featureSet(&[_]Feature{
391378 .SPV_KHR_compute_shader_derivatives,
392379 .v1_0,
......@@ -394,7 +381,7 @@ pub const all_features = blk: {
394381 };
395382 result[@intFromEnum(Feature.constant_data_khr)] = .{
396383 .llvm_name = null,
397 .description = "Enable constant_data_khr Capability.",
384 .description = "Enable constant_data_khr capability",
398385 .dependencies = featureSet(&[_]Feature{
399386 .SPV_KHR_constant_data,
400387 .v1_0,
......@@ -402,7 +389,7 @@ pub const all_features = blk: {
402389 };
403390 result[@intFromEnum(Feature.cooperative_matrix_khr)] = .{
404391 .llvm_name = null,
405 .description = "Enable cooperative_matrix_khr Capability.",
392 .description = "Enable cooperative_matrix_khr capability",
406393 .dependencies = featureSet(&[_]Feature{
407394 .SPV_KHR_cooperative_matrix,
408395 .v1_0,
......@@ -410,14 +397,14 @@ pub const all_features = blk: {
410397 };
411398 result[@intFromEnum(Feature.cull_distance)] = .{
412399 .llvm_name = null,
413 .description = "Enable cull_distance Capability.",
400 .description = "Enable cull_distance capability",
414401 .dependencies = featureSet(&[_]Feature{
415402 .v1_0,
416403 }),
417404 };
418405 result[@intFromEnum(Feature.demote_to_helper_invocation)] = .{
419406 .llvm_name = null,
420 .description = "Enable demote_to_helper_invocation Capability.",
407 .description = "Enable demote_to_helper_invocation capability",
421408 .dependencies = featureSet(&[_]Feature{
422409 .SPV_EXT_demote_to_helper_invocation,
423410 .v1_6,
......@@ -425,7 +412,7 @@ pub const all_features = blk: {
425412 };
426413 result[@intFromEnum(Feature.denorm_flush_to_zero)] = .{
427414 .llvm_name = null,
428 .description = "Enable denorm_flush_to_zero Capability.",
415 .description = "Enable denorm_flush_to_zero capability",
429416 .dependencies = featureSet(&[_]Feature{
430417 .SPV_KHR_float_controls,
431418 .v1_4,
......@@ -433,7 +420,7 @@ pub const all_features = blk: {
433420 };
434421 result[@intFromEnum(Feature.denorm_preserve)] = .{
435422 .llvm_name = null,
436 .description = "Enable denorm_preserve Capability.",
423 .description = "Enable denorm_preserve capability",
437424 .dependencies = featureSet(&[_]Feature{
438425 .SPV_KHR_float_controls,
439426 .v1_4,
......@@ -441,14 +428,14 @@ pub const all_features = blk: {
441428 };
442429 result[@intFromEnum(Feature.derivative_control)] = .{
443430 .llvm_name = null,
444 .description = "Enable derivative_control Capability.",
431 .description = "Enable derivative_control capability",
445432 .dependencies = featureSet(&[_]Feature{
446433 .v1_0,
447434 }),
448435 };
449436 result[@intFromEnum(Feature.descriptor_heap_ext)] = .{
450437 .llvm_name = null,
451 .description = "Enable descriptor_heap_ext Capability.",
438 .description = "Enable descriptor_heap_ext capability",
452439 .dependencies = featureSet(&[_]Feature{
453440 .SPV_EXT_descriptor_heap,
454441 .v1_0,
......@@ -456,14 +443,14 @@ pub const all_features = blk: {
456443 };
457444 result[@intFromEnum(Feature.device_enqueue)] = .{
458445 .llvm_name = null,
459 .description = "Enable device_enqueue Capability.",
446 .description = "Enable device_enqueue capability",
460447 .dependencies = featureSet(&[_]Feature{
461448 .v1_0,
462449 }),
463450 };
464451 result[@intFromEnum(Feature.device_group)] = .{
465452 .llvm_name = null,
466 .description = "Enable device_group Capability.",
453 .description = "Enable device_group capability",
467454 .dependencies = featureSet(&[_]Feature{
468455 .SPV_KHR_device_group,
469456 .v1_3,
......@@ -471,7 +458,7 @@ pub const all_features = blk: {
471458 };
472459 result[@intFromEnum(Feature.dot_product)] = .{
473460 .llvm_name = null,
474 .description = "Enable dot_product Capability.",
461 .description = "Enable dot_product capability",
475462 .dependencies = featureSet(&[_]Feature{
476463 .SPV_KHR_integer_dot_product,
477464 .v1_6,
......@@ -479,7 +466,7 @@ pub const all_features = blk: {
479466 };
480467 result[@intFromEnum(Feature.dot_product_input4x8bit)] = .{
481468 .llvm_name = null,
482 .description = "Enable dot_product_input4x8bit Capability.",
469 .description = "Enable dot_product_input4x8bit capability",
483470 .dependencies = featureSet(&[_]Feature{
484471 .SPV_KHR_integer_dot_product,
485472 .v1_6,
......@@ -487,7 +474,7 @@ pub const all_features = blk: {
487474 };
488475 result[@intFromEnum(Feature.dot_product_input4x8bit_packed)] = .{
489476 .llvm_name = null,
490 .description = "Enable dot_product_input4x8bit_packed Capability.",
477 .description = "Enable dot_product_input4x8bit_packed capability",
491478 .dependencies = featureSet(&[_]Feature{
492479 .SPV_KHR_integer_dot_product,
493480 .v1_6,
......@@ -495,7 +482,7 @@ pub const all_features = blk: {
495482 };
496483 result[@intFromEnum(Feature.dot_product_input_all)] = .{
497484 .llvm_name = null,
498 .description = "Enable dot_product_input_all Capability.",
485 .description = "Enable dot_product_input_all capability",
499486 .dependencies = featureSet(&[_]Feature{
500487 .SPV_KHR_integer_dot_product,
501488 .v1_6,
......@@ -503,7 +490,7 @@ pub const all_features = blk: {
503490 };
504491 result[@intFromEnum(Feature.draw_parameters)] = .{
505492 .llvm_name = null,
506 .description = "Enable draw_parameters Capability.",
493 .description = "Enable draw_parameters capability",
507494 .dependencies = featureSet(&[_]Feature{
508495 .SPV_KHR_shader_draw_parameters,
509496 .v1_3,
......@@ -511,7 +498,7 @@ pub const all_features = blk: {
511498 };
512499 result[@intFromEnum(Feature.expect_assume_khr)] = .{
513500 .llvm_name = null,
514 .description = "Enable expect_assume_khr Capability.",
501 .description = "Enable expect_assume_khr capability",
515502 .dependencies = featureSet(&[_]Feature{
516503 .SPV_KHR_expect_assume,
517504 .v1_0,
......@@ -519,28 +506,28 @@ pub const all_features = blk: {
519506 };
520507 result[@intFromEnum(Feature.float16)] = .{
521508 .llvm_name = null,
522 .description = "Enable float16 Capability.",
509 .description = "Enable float16 capability",
523510 .dependencies = featureSet(&[_]Feature{
524511 .v1_0,
525512 }),
526513 };
527514 result[@intFromEnum(Feature.float16buffer)] = .{
528515 .llvm_name = null,
529 .description = "Enable float16buffer Capability.",
516 .description = "Enable float16buffer capability",
530517 .dependencies = featureSet(&[_]Feature{
531518 .v1_0,
532519 }),
533520 };
534521 result[@intFromEnum(Feature.float64)] = .{
535522 .llvm_name = null,
536 .description = "Enable float64 Capability.",
523 .description = "Enable float64 capability",
537524 .dependencies = featureSet(&[_]Feature{
538525 .v1_0,
539526 }),
540527 };
541528 result[@intFromEnum(Feature.float8cooperative_matrix_ext)] = .{
542529 .llvm_name = null,
543 .description = "Enable float8cooperative_matrix_ext Capability.",
530 .description = "Enable float8cooperative_matrix_ext capability",
544531 .dependencies = featureSet(&[_]Feature{
545532 .SPV_EXT_float8,
546533 .v1_0,
......@@ -548,7 +535,7 @@ pub const all_features = blk: {
548535 };
549536 result[@intFromEnum(Feature.float8ext)] = .{
550537 .llvm_name = null,
551 .description = "Enable float8ext Capability.",
538 .description = "Enable float8ext capability",
552539 .dependencies = featureSet(&[_]Feature{
553540 .SPV_EXT_float8,
554541 .v1_0,
......@@ -556,7 +543,7 @@ pub const all_features = blk: {
556543 };
557544 result[@intFromEnum(Feature.float_controls2)] = .{
558545 .llvm_name = null,
559 .description = "Enable float_controls2 Capability.",
546 .description = "Enable float_controls2 capability",
560547 .dependencies = featureSet(&[_]Feature{
561548 .SPV_KHR_float_controls2,
562549 .v1_0,
......@@ -564,7 +551,7 @@ pub const all_features = blk: {
564551 };
565552 result[@intFromEnum(Feature.fmakhr)] = .{
566553 .llvm_name = null,
567 .description = "Enable fmakhr Capability.",
554 .description = "Enable fmakhr capability",
568555 .dependencies = featureSet(&[_]Feature{
569556 .SPV_KHR_fma,
570557 .v1_0,
......@@ -572,7 +559,7 @@ pub const all_features = blk: {
572559 };
573560 result[@intFromEnum(Feature.fragment_barycentric_khr)] = .{
574561 .llvm_name = null,
575 .description = "Enable fragment_barycentric_khr Capability.",
562 .description = "Enable fragment_barycentric_khr capability",
576563 .dependencies = featureSet(&[_]Feature{
577564 .SPV_KHR_fragment_shader_barycentric,
578565 .v1_0,
......@@ -580,7 +567,7 @@ pub const all_features = blk: {
580567 };
581568 result[@intFromEnum(Feature.fragment_density_ext)] = .{
582569 .llvm_name = null,
583 .description = "Enable fragment_density_ext Capability.",
570 .description = "Enable fragment_density_ext capability",
584571 .dependencies = featureSet(&[_]Feature{
585572 .SPV_EXT_fragment_invocation_density,
586573 .v1_0,
......@@ -588,7 +575,7 @@ pub const all_features = blk: {
588575 };
589576 result[@intFromEnum(Feature.fragment_fully_covered_ext)] = .{
590577 .llvm_name = null,
591 .description = "Enable fragment_fully_covered_ext Capability.",
578 .description = "Enable fragment_fully_covered_ext capability",
592579 .dependencies = featureSet(&[_]Feature{
593580 .SPV_EXT_fragment_fully_covered,
594581 .v1_0,
......@@ -596,7 +583,7 @@ pub const all_features = blk: {
596583 };
597584 result[@intFromEnum(Feature.fragment_shader_pixel_interlock_ext)] = .{
598585 .llvm_name = null,
599 .description = "Enable fragment_shader_pixel_interlock_ext Capability.",
586 .description = "Enable fragment_shader_pixel_interlock_ext capability",
600587 .dependencies = featureSet(&[_]Feature{
601588 .SPV_EXT_fragment_shader_interlock,
602589 .v1_0,
......@@ -604,7 +591,7 @@ pub const all_features = blk: {
604591 };
605592 result[@intFromEnum(Feature.fragment_shader_sample_interlock_ext)] = .{
606593 .llvm_name = null,
607 .description = "Enable fragment_shader_sample_interlock_ext Capability.",
594 .description = "Enable fragment_shader_sample_interlock_ext capability",
608595 .dependencies = featureSet(&[_]Feature{
609596 .SPV_EXT_fragment_shader_interlock,
610597 .v1_0,
......@@ -612,7 +599,7 @@ pub const all_features = blk: {
612599 };
613600 result[@intFromEnum(Feature.fragment_shader_shading_rate_interlock_ext)] = .{
614601 .llvm_name = null,
615 .description = "Enable fragment_shader_shading_rate_interlock_ext Capability.",
602 .description = "Enable fragment_shader_shading_rate_interlock_ext capability",
616603 .dependencies = featureSet(&[_]Feature{
617604 .SPV_EXT_fragment_shader_interlock,
618605 .v1_0,
......@@ -620,7 +607,7 @@ pub const all_features = blk: {
620607 };
621608 result[@intFromEnum(Feature.fragment_shading_rate_khr)] = .{
622609 .llvm_name = null,
623 .description = "Enable fragment_shading_rate_khr Capability.",
610 .description = "Enable fragment_shading_rate_khr capability",
624611 .dependencies = featureSet(&[_]Feature{
625612 .SPV_KHR_fragment_shading_rate,
626613 .v1_0,
......@@ -628,63 +615,63 @@ pub const all_features = blk: {
628615 };
629616 result[@intFromEnum(Feature.generic_pointer)] = .{
630617 .llvm_name = null,
631 .description = "Enable generic_pointer Capability.",
618 .description = "Enable generic_pointer capability",
632619 .dependencies = featureSet(&[_]Feature{
633620 .v1_0,
634621 }),
635622 };
636623 result[@intFromEnum(Feature.geometry)] = .{
637624 .llvm_name = null,
638 .description = "Enable geometry Capability.",
625 .description = "Enable geometry capability",
639626 .dependencies = featureSet(&[_]Feature{
640627 .v1_0,
641628 }),
642629 };
643630 result[@intFromEnum(Feature.geometry_point_size)] = .{
644631 .llvm_name = null,
645 .description = "Enable geometry_point_size Capability.",
632 .description = "Enable geometry_point_size capability",
646633 .dependencies = featureSet(&[_]Feature{
647634 .v1_0,
648635 }),
649636 };
650637 result[@intFromEnum(Feature.geometry_streams)] = .{
651638 .llvm_name = null,
652 .description = "Enable geometry_streams Capability.",
639 .description = "Enable geometry_streams capability",
653640 .dependencies = featureSet(&[_]Feature{
654641 .v1_0,
655642 }),
656643 };
657644 result[@intFromEnum(Feature.group_non_uniform)] = .{
658645 .llvm_name = null,
659 .description = "Enable group_non_uniform Capability.",
646 .description = "Enable group_non_uniform capability",
660647 .dependencies = featureSet(&[_]Feature{
661648 .v1_3,
662649 }),
663650 };
664651 result[@intFromEnum(Feature.group_non_uniform_arithmetic)] = .{
665652 .llvm_name = null,
666 .description = "Enable group_non_uniform_arithmetic Capability.",
653 .description = "Enable group_non_uniform_arithmetic capability",
667654 .dependencies = featureSet(&[_]Feature{
668655 .v1_3,
669656 }),
670657 };
671658 result[@intFromEnum(Feature.group_non_uniform_ballot)] = .{
672659 .llvm_name = null,
673 .description = "Enable group_non_uniform_ballot Capability.",
660 .description = "Enable group_non_uniform_ballot capability",
674661 .dependencies = featureSet(&[_]Feature{
675662 .v1_3,
676663 }),
677664 };
678665 result[@intFromEnum(Feature.group_non_uniform_clustered)] = .{
679666 .llvm_name = null,
680 .description = "Enable group_non_uniform_clustered Capability.",
667 .description = "Enable group_non_uniform_clustered capability",
681668 .dependencies = featureSet(&[_]Feature{
682669 .v1_3,
683670 }),
684671 };
685672 result[@intFromEnum(Feature.group_non_uniform_partitioned_ext)] = .{
686673 .llvm_name = null,
687 .description = "Enable group_non_uniform_partitioned_ext Capability.",
674 .description = "Enable group_non_uniform_partitioned_ext capability",
688675 .dependencies = featureSet(&[_]Feature{
689676 .SPV_EXT_shader_subgroup_partitioned,
690677 .v1_0,
......@@ -692,14 +679,14 @@ pub const all_features = blk: {
692679 };
693680 result[@intFromEnum(Feature.group_non_uniform_quad)] = .{
694681 .llvm_name = null,
695 .description = "Enable group_non_uniform_quad Capability.",
682 .description = "Enable group_non_uniform_quad capability",
696683 .dependencies = featureSet(&[_]Feature{
697684 .v1_3,
698685 }),
699686 };
700687 result[@intFromEnum(Feature.group_non_uniform_rotate_khr)] = .{
701688 .llvm_name = null,
702 .description = "Enable group_non_uniform_rotate_khr Capability.",
689 .description = "Enable group_non_uniform_rotate_khr capability",
703690 .dependencies = featureSet(&[_]Feature{
704691 .SPV_KHR_subgroup_rotate,
705692 .v1_0,
......@@ -707,28 +694,28 @@ pub const all_features = blk: {
707694 };
708695 result[@intFromEnum(Feature.group_non_uniform_shuffle)] = .{
709696 .llvm_name = null,
710 .description = "Enable group_non_uniform_shuffle Capability.",
697 .description = "Enable group_non_uniform_shuffle capability",
711698 .dependencies = featureSet(&[_]Feature{
712699 .v1_3,
713700 }),
714701 };
715702 result[@intFromEnum(Feature.group_non_uniform_shuffle_relative)] = .{
716703 .llvm_name = null,
717 .description = "Enable group_non_uniform_shuffle_relative Capability.",
704 .description = "Enable group_non_uniform_shuffle_relative capability",
718705 .dependencies = featureSet(&[_]Feature{
719706 .v1_3,
720707 }),
721708 };
722709 result[@intFromEnum(Feature.group_non_uniform_vote)] = .{
723710 .llvm_name = null,
724 .description = "Enable group_non_uniform_vote Capability.",
711 .description = "Enable group_non_uniform_vote capability",
725712 .dependencies = featureSet(&[_]Feature{
726713 .v1_3,
727714 }),
728715 };
729716 result[@intFromEnum(Feature.group_uniform_arithmetic_khr)] = .{
730717 .llvm_name = null,
731 .description = "Enable group_uniform_arithmetic_khr Capability.",
718 .description = "Enable group_uniform_arithmetic_khr capability",
732719 .dependencies = featureSet(&[_]Feature{
733720 .SPV_KHR_uniform_group_instructions,
734721 .v1_0,
......@@ -736,84 +723,84 @@ pub const all_features = blk: {
736723 };
737724 result[@intFromEnum(Feature.groups)] = .{
738725 .llvm_name = null,
739 .description = "Enable groups Capability.",
726 .description = "Enable groups capability",
740727 .dependencies = featureSet(&[_]Feature{
741728 .v1_0,
742729 }),
743730 };
744731 result[@intFromEnum(Feature.image_basic)] = .{
745732 .llvm_name = null,
746 .description = "Enable image_basic Capability.",
733 .description = "Enable image_basic capability",
747734 .dependencies = featureSet(&[_]Feature{
748735 .v1_0,
749736 }),
750737 };
751738 result[@intFromEnum(Feature.image_buffer)] = .{
752739 .llvm_name = null,
753 .description = "Enable image_buffer Capability.",
740 .description = "Enable image_buffer capability",
754741 .dependencies = featureSet(&[_]Feature{
755742 .v1_0,
756743 }),
757744 };
758745 result[@intFromEnum(Feature.image_cube_array)] = .{
759746 .llvm_name = null,
760 .description = "Enable image_cube_array Capability.",
747 .description = "Enable image_cube_array capability",
761748 .dependencies = featureSet(&[_]Feature{
762749 .v1_0,
763750 }),
764751 };
765752 result[@intFromEnum(Feature.image_gather_extended)] = .{
766753 .llvm_name = null,
767 .description = "Enable image_gather_extended Capability.",
754 .description = "Enable image_gather_extended capability",
768755 .dependencies = featureSet(&[_]Feature{
769756 .v1_0,
770757 }),
771758 };
772759 result[@intFromEnum(Feature.image_mipmap)] = .{
773760 .llvm_name = null,
774 .description = "Enable image_mipmap Capability.",
761 .description = "Enable image_mipmap capability",
775762 .dependencies = featureSet(&[_]Feature{
776763 .v1_0,
777764 }),
778765 };
779766 result[@intFromEnum(Feature.image_ms_array)] = .{
780767 .llvm_name = null,
781 .description = "Enable image_ms_array Capability.",
768 .description = "Enable image_ms_array capability",
782769 .dependencies = featureSet(&[_]Feature{
783770 .v1_0,
784771 }),
785772 };
786773 result[@intFromEnum(Feature.image_query)] = .{
787774 .llvm_name = null,
788 .description = "Enable image_query Capability.",
775 .description = "Enable image_query capability",
789776 .dependencies = featureSet(&[_]Feature{
790777 .v1_0,
791778 }),
792779 };
793780 result[@intFromEnum(Feature.image_read_write)] = .{
794781 .llvm_name = null,
795 .description = "Enable image_read_write Capability.",
782 .description = "Enable image_read_write capability",
796783 .dependencies = featureSet(&[_]Feature{
797784 .v1_0,
798785 }),
799786 };
800787 result[@intFromEnum(Feature.image_rect)] = .{
801788 .llvm_name = null,
802 .description = "Enable image_rect Capability.",
789 .description = "Enable image_rect capability",
803790 .dependencies = featureSet(&[_]Feature{
804791 .v1_0,
805792 }),
806793 };
807794 result[@intFromEnum(Feature.input_attachment)] = .{
808795 .llvm_name = null,
809 .description = "Enable input_attachment Capability.",
796 .description = "Enable input_attachment capability",
810797 .dependencies = featureSet(&[_]Feature{
811798 .v1_0,
812799 }),
813800 };
814801 result[@intFromEnum(Feature.input_attachment_array_dynamic_indexing)] = .{
815802 .llvm_name = null,
816 .description = "Enable input_attachment_array_dynamic_indexing Capability.",
803 .description = "Enable input_attachment_array_dynamic_indexing capability",
817804 .dependencies = featureSet(&[_]Feature{
818805 .SPV_EXT_descriptor_indexing,
819806 .v1_5,
......@@ -821,7 +808,7 @@ pub const all_features = blk: {
821808 };
822809 result[@intFromEnum(Feature.input_attachment_array_non_uniform_indexing)] = .{
823810 .llvm_name = null,
824 .description = "Enable input_attachment_array_non_uniform_indexing Capability.",
811 .description = "Enable input_attachment_array_non_uniform_indexing capability",
825812 .dependencies = featureSet(&[_]Feature{
826813 .SPV_EXT_descriptor_indexing,
827814 .v1_5,
......@@ -829,28 +816,28 @@ pub const all_features = blk: {
829816 };
830817 result[@intFromEnum(Feature.int16)] = .{
831818 .llvm_name = null,
832 .description = "Enable int16 Capability.",
819 .description = "Enable int16 capability",
833820 .dependencies = featureSet(&[_]Feature{
834821 .v1_0,
835822 }),
836823 };
837824 result[@intFromEnum(Feature.int64)] = .{
838825 .llvm_name = null,
839 .description = "Enable int64 Capability.",
826 .description = "Enable int64 capability",
840827 .dependencies = featureSet(&[_]Feature{
841828 .v1_0,
842829 }),
843830 };
844831 result[@intFromEnum(Feature.int64atomics)] = .{
845832 .llvm_name = null,
846 .description = "Enable int64atomics Capability.",
833 .description = "Enable int64atomics capability",
847834 .dependencies = featureSet(&[_]Feature{
848835 .v1_0,
849836 }),
850837 };
851838 result[@intFromEnum(Feature.int64image_ext)] = .{
852839 .llvm_name = null,
853 .description = "Enable int64image_ext Capability.",
840 .description = "Enable int64image_ext capability",
854841 .dependencies = featureSet(&[_]Feature{
855842 .SPV_EXT_shader_image_int64,
856843 .v1_0,
......@@ -858,42 +845,28 @@ pub const all_features = blk: {
858845 };
859846 result[@intFromEnum(Feature.int8)] = .{
860847 .llvm_name = null,
861 .description = "Enable int8 Capability.",
848 .description = "Enable int8 capability",
862849 .dependencies = featureSet(&[_]Feature{
863850 .v1_0,
864851 }),
865852 };
866853 result[@intFromEnum(Feature.interpolation_function)] = .{
867854 .llvm_name = null,
868 .description = "Enable interpolation_function Capability.",
869 .dependencies = featureSet(&[_]Feature{
870 .v1_0,
871 }),
872 };
873 result[@intFromEnum(Feature.kernel)] = .{
874 .llvm_name = null,
875 .description = "Enable kernel Capability.",
876 .dependencies = featureSet(&[_]Feature{
877 .v1_0,
878 }),
879 };
880 result[@intFromEnum(Feature.linkage)] = .{
881 .llvm_name = null,
882 .description = "Enable linkage Capability.",
855 .description = "Enable interpolation_function capability",
883856 .dependencies = featureSet(&[_]Feature{
884857 .v1_0,
885858 }),
886859 };
887860 result[@intFromEnum(Feature.literal_sampler)] = .{
888861 .llvm_name = null,
889 .description = "Enable literal_sampler Capability.",
862 .description = "Enable literal_sampler capability",
890863 .dependencies = featureSet(&[_]Feature{
891864 .v1_0,
892865 }),
893866 };
894867 result[@intFromEnum(Feature.long_vector_ext)] = .{
895868 .llvm_name = null,
896 .description = "Enable long_vector_ext Capability.",
869 .description = "Enable long_vector_ext capability",
897870 .dependencies = featureSet(&[_]Feature{
898871 .SPV_EXT_long_vector,
899872 .v1_0,
......@@ -901,14 +874,14 @@ pub const all_features = blk: {
901874 };
902875 result[@intFromEnum(Feature.matrix)] = .{
903876 .llvm_name = null,
904 .description = "Enable matrix Capability.",
877 .description = "Enable matrix capability",
905878 .dependencies = featureSet(&[_]Feature{
906879 .v1_0,
907880 }),
908881 };
909882 result[@intFromEnum(Feature.mesh_shading_ext)] = .{
910883 .llvm_name = null,
911 .description = "Enable mesh_shading_ext Capability.",
884 .description = "Enable mesh_shading_ext capability",
912885 .dependencies = featureSet(&[_]Feature{
913886 .SPV_EXT_mesh_shader,
914887 .v1_0,
......@@ -916,14 +889,14 @@ pub const all_features = blk: {
916889 };
917890 result[@intFromEnum(Feature.min_lod)] = .{
918891 .llvm_name = null,
919 .description = "Enable min_lod Capability.",
892 .description = "Enable min_lod capability",
920893 .dependencies = featureSet(&[_]Feature{
921894 .v1_0,
922895 }),
923896 };
924897 result[@intFromEnum(Feature.multi_view)] = .{
925898 .llvm_name = null,
926 .description = "Enable multi_view Capability.",
899 .description = "Enable multi_view capability",
927900 .dependencies = featureSet(&[_]Feature{
928901 .SPV_KHR_multiview,
929902 .v1_3,
......@@ -931,52 +904,43 @@ pub const all_features = blk: {
931904 };
932905 result[@intFromEnum(Feature.multi_viewport)] = .{
933906 .llvm_name = null,
934 .description = "Enable multi_viewport Capability.",
907 .description = "Enable multi_viewport capability",
935908 .dependencies = featureSet(&[_]Feature{
936909 .v1_0,
937910 }),
938911 };
939912 result[@intFromEnum(Feature.named_barrier)] = .{
940913 .llvm_name = null,
941 .description = "Enable named_barrier Capability.",
914 .description = "Enable named_barrier capability",
942915 .dependencies = featureSet(&[_]Feature{
943916 .v1_1,
944917 }),
945918 };
946919 result[@intFromEnum(Feature.opt_none_ext)] = .{
947920 .llvm_name = null,
948 .description = "Enable opt_none_ext Capability.",
921 .description = "Enable opt_none_ext capability",
949922 .dependencies = featureSet(&[_]Feature{
950923 .SPV_EXT_optnone,
951924 .v1_0,
952925 }),
953926 };
954 result[@intFromEnum(Feature.physical_storage_buffer_addresses)] = .{
955 .llvm_name = null,
956 .description = "Enable physical_storage_buffer_addresses Capability.",
957 .dependencies = featureSet(&[_]Feature{
958 .SPV_EXT_physical_storage_buffer,
959 .SPV_KHR_physical_storage_buffer,
960 .v1_5,
961 }),
962 };
963927 result[@intFromEnum(Feature.pipe_storage)] = .{
964928 .llvm_name = null,
965 .description = "Enable pipe_storage Capability.",
929 .description = "Enable pipe_storage capability",
966930 .dependencies = featureSet(&[_]Feature{
967931 .v1_1,
968932 }),
969933 };
970934 result[@intFromEnum(Feature.pipes)] = .{
971935 .llvm_name = null,
972 .description = "Enable pipes Capability.",
936 .description = "Enable pipes capability",
973937 .dependencies = featureSet(&[_]Feature{
974938 .v1_0,
975939 }),
976940 };
977941 result[@intFromEnum(Feature.poison_freeze_khr)] = .{
978942 .llvm_name = null,
979 .description = "Enable poison_freeze_khr Capability.",
943 .description = "Enable poison_freeze_khr capability",
980944 .dependencies = featureSet(&[_]Feature{
981945 .SPV_KHR_poison_freeze,
982946 .v1_0,
......@@ -984,7 +948,7 @@ pub const all_features = blk: {
984948 };
985949 result[@intFromEnum(Feature.quad_control_khr)] = .{
986950 .llvm_name = null,
987 .description = "Enable quad_control_khr Capability.",
951 .description = "Enable quad_control_khr capability",
988952 .dependencies = featureSet(&[_]Feature{
989953 .SPV_KHR_quad_control,
990954 .v1_0,
......@@ -992,7 +956,7 @@ pub const all_features = blk: {
992956 };
993957 result[@intFromEnum(Feature.ray_cull_mask_khr)] = .{
994958 .llvm_name = null,
995 .description = "Enable ray_cull_mask_khr Capability.",
959 .description = "Enable ray_cull_mask_khr capability",
996960 .dependencies = featureSet(&[_]Feature{
997961 .SPV_KHR_ray_cull_mask,
998962 .v1_0,
......@@ -1000,7 +964,7 @@ pub const all_features = blk: {
1000964 };
1001965 result[@intFromEnum(Feature.ray_query_khr)] = .{
1002966 .llvm_name = null,
1003 .description = "Enable ray_query_khr Capability.",
967 .description = "Enable ray_query_khr capability",
1004968 .dependencies = featureSet(&[_]Feature{
1005969 .SPV_KHR_ray_query,
1006970 .v1_0,
......@@ -1008,7 +972,7 @@ pub const all_features = blk: {
1008972 };
1009973 result[@intFromEnum(Feature.ray_query_position_fetch_khr)] = .{
1010974 .llvm_name = null,
1011 .description = "Enable ray_query_position_fetch_khr Capability.",
975 .description = "Enable ray_query_position_fetch_khr capability",
1012976 .dependencies = featureSet(&[_]Feature{
1013977 .SPV_KHR_ray_tracing_position_fetch,
1014978 .v1_0,
......@@ -1016,7 +980,7 @@ pub const all_features = blk: {
1016980 };
1017981 result[@intFromEnum(Feature.ray_query_provisional_khr)] = .{
1018982 .llvm_name = null,
1019 .description = "Enable ray_query_provisional_khr Capability.",
983 .description = "Enable ray_query_provisional_khr capability",
1020984 .dependencies = featureSet(&[_]Feature{
1021985 .SPV_KHR_ray_query,
1022986 .v1_0,
......@@ -1024,7 +988,7 @@ pub const all_features = blk: {
1024988 };
1025989 result[@intFromEnum(Feature.ray_tracing_khr)] = .{
1026990 .llvm_name = null,
1027 .description = "Enable ray_tracing_khr Capability.",
991 .description = "Enable ray_tracing_khr capability",
1028992 .dependencies = featureSet(&[_]Feature{
1029993 .SPV_KHR_ray_tracing,
1030994 .v1_0,
......@@ -1032,7 +996,7 @@ pub const all_features = blk: {
1032996 };
1033997 result[@intFromEnum(Feature.ray_tracing_opacity_micromap_ext)] = .{
1034998 .llvm_name = null,
1035 .description = "Enable ray_tracing_opacity_micromap_ext Capability.",
999 .description = "Enable ray_tracing_opacity_micromap_ext capability",
10361000 .dependencies = featureSet(&[_]Feature{
10371001 .SPV_EXT_opacity_micromap,
10381002 .v1_0,
......@@ -1040,7 +1004,7 @@ pub const all_features = blk: {
10401004 };
10411005 result[@intFromEnum(Feature.ray_tracing_position_fetch_khr)] = .{
10421006 .llvm_name = null,
1043 .description = "Enable ray_tracing_position_fetch_khr Capability.",
1007 .description = "Enable ray_tracing_position_fetch_khr capability",
10441008 .dependencies = featureSet(&[_]Feature{
10451009 .SPV_KHR_ray_tracing_position_fetch,
10461010 .v1_0,
......@@ -1048,7 +1012,7 @@ pub const all_features = blk: {
10481012 };
10491013 result[@intFromEnum(Feature.ray_tracing_provisional_khr)] = .{
10501014 .llvm_name = null,
1051 .description = "Enable ray_tracing_provisional_khr Capability.",
1015 .description = "Enable ray_tracing_provisional_khr capability",
10521016 .dependencies = featureSet(&[_]Feature{
10531017 .SPV_KHR_ray_tracing,
10541018 .v1_0,
......@@ -1056,7 +1020,7 @@ pub const all_features = blk: {
10561020 };
10571021 result[@intFromEnum(Feature.ray_traversal_primitive_culling_khr)] = .{
10581022 .llvm_name = null,
1059 .description = "Enable ray_traversal_primitive_culling_khr Capability.",
1023 .description = "Enable ray_traversal_primitive_culling_khr capability",
10601024 .dependencies = featureSet(&[_]Feature{
10611025 .SPV_KHR_ray_query,
10621026 .SPV_KHR_ray_tracing,
......@@ -1065,7 +1029,7 @@ pub const all_features = blk: {
10651029 };
10661030 result[@intFromEnum(Feature.replicated_composites_ext)] = .{
10671031 .llvm_name = null,
1068 .description = "Enable replicated_composites_ext Capability.",
1032 .description = "Enable replicated_composites_ext capability",
10691033 .dependencies = featureSet(&[_]Feature{
10701034 .SPV_EXT_replicated_composites,
10711035 .v1_0,
......@@ -1073,7 +1037,7 @@ pub const all_features = blk: {
10731037 };
10741038 result[@intFromEnum(Feature.runtime_descriptor_array)] = .{
10751039 .llvm_name = null,
1076 .description = "Enable runtime_descriptor_array Capability.",
1040 .description = "Enable runtime_descriptor_array capability",
10771041 .dependencies = featureSet(&[_]Feature{
10781042 .SPV_EXT_descriptor_indexing,
10791043 .v1_5,
......@@ -1081,7 +1045,7 @@ pub const all_features = blk: {
10811045 };
10821046 result[@intFromEnum(Feature.sample_mask_post_depth_coverage)] = .{
10831047 .llvm_name = null,
1084 .description = "Enable sample_mask_post_depth_coverage Capability.",
1048 .description = "Enable sample_mask_post_depth_coverage capability",
10851049 .dependencies = featureSet(&[_]Feature{
10861050 .SPV_KHR_post_depth_coverage,
10871051 .v1_0,
......@@ -1089,35 +1053,35 @@ pub const all_features = blk: {
10891053 };
10901054 result[@intFromEnum(Feature.sample_rate_shading)] = .{
10911055 .llvm_name = null,
1092 .description = "Enable sample_rate_shading Capability.",
1056 .description = "Enable sample_rate_shading capability",
10931057 .dependencies = featureSet(&[_]Feature{
10941058 .v1_0,
10951059 }),
10961060 };
10971061 result[@intFromEnum(Feature.sampled_buffer)] = .{
10981062 .llvm_name = null,
1099 .description = "Enable sampled_buffer Capability.",
1063 .description = "Enable sampled_buffer capability",
11001064 .dependencies = featureSet(&[_]Feature{
11011065 .v1_0,
11021066 }),
11031067 };
11041068 result[@intFromEnum(Feature.sampled_cube_array)] = .{
11051069 .llvm_name = null,
1106 .description = "Enable sampled_cube_array Capability.",
1070 .description = "Enable sampled_cube_array capability",
11071071 .dependencies = featureSet(&[_]Feature{
11081072 .v1_0,
11091073 }),
11101074 };
11111075 result[@intFromEnum(Feature.sampled_image_array_dynamic_indexing)] = .{
11121076 .llvm_name = null,
1113 .description = "Enable sampled_image_array_dynamic_indexing Capability.",
1077 .description = "Enable sampled_image_array_dynamic_indexing capability",
11141078 .dependencies = featureSet(&[_]Feature{
11151079 .v1_0,
11161080 }),
11171081 };
11181082 result[@intFromEnum(Feature.sampled_image_array_non_uniform_indexing)] = .{
11191083 .llvm_name = null,
1120 .description = "Enable sampled_image_array_non_uniform_indexing Capability.",
1084 .description = "Enable sampled_image_array_non_uniform_indexing capability",
11211085 .dependencies = featureSet(&[_]Feature{
11221086 .SPV_EXT_descriptor_indexing,
11231087 .v1_5,
......@@ -1125,21 +1089,14 @@ pub const all_features = blk: {
11251089 };
11261090 result[@intFromEnum(Feature.sampled_rect)] = .{
11271091 .llvm_name = null,
1128 .description = "Enable sampled_rect Capability.",
1129 .dependencies = featureSet(&[_]Feature{
1130 .v1_0,
1131 }),
1132 };
1133 result[@intFromEnum(Feature.shader)] = .{
1134 .llvm_name = null,
1135 .description = "Enable shader Capability.",
1092 .description = "Enable sampled_rect capability",
11361093 .dependencies = featureSet(&[_]Feature{
11371094 .v1_0,
11381095 }),
11391096 };
11401097 result[@intFromEnum(Feature.shader64bit_indexing_ext)] = .{
11411098 .llvm_name = null,
1142 .description = "Enable shader64bit_indexing_ext Capability.",
1099 .description = "Enable shader64bit_indexing_ext capability",
11431100 .dependencies = featureSet(&[_]Feature{
11441101 .SPV_EXT_shader_64bit_indexing,
11451102 .v1_0,
......@@ -1147,7 +1104,7 @@ pub const all_features = blk: {
11471104 };
11481105 result[@intFromEnum(Feature.shader_clock_khr)] = .{
11491106 .llvm_name = null,
1150 .description = "Enable shader_clock_khr Capability.",
1107 .description = "Enable shader_clock_khr capability",
11511108 .dependencies = featureSet(&[_]Feature{
11521109 .SPV_KHR_shader_clock,
11531110 .v1_0,
......@@ -1155,7 +1112,7 @@ pub const all_features = blk: {
11551112 };
11561113 result[@intFromEnum(Feature.shader_invocation_reorder_ext)] = .{
11571114 .llvm_name = null,
1158 .description = "Enable shader_invocation_reorder_ext Capability.",
1115 .description = "Enable shader_invocation_reorder_ext capability",
11591116 .dependencies = featureSet(&[_]Feature{
11601117 .SPV_EXT_shader_invocation_reorder,
11611118 .v1_0,
......@@ -1163,14 +1120,14 @@ pub const all_features = blk: {
11631120 };
11641121 result[@intFromEnum(Feature.shader_layer)] = .{
11651122 .llvm_name = null,
1166 .description = "Enable shader_layer Capability.",
1123 .description = "Enable shader_layer capability",
11671124 .dependencies = featureSet(&[_]Feature{
11681125 .v1_5,
11691126 }),
11701127 };
11711128 result[@intFromEnum(Feature.shader_non_uniform)] = .{
11721129 .llvm_name = null,
1173 .description = "Enable shader_non_uniform Capability.",
1130 .description = "Enable shader_non_uniform capability",
11741131 .dependencies = featureSet(&[_]Feature{
11751132 .SPV_EXT_descriptor_indexing,
11761133 .v1_5,
......@@ -1178,14 +1135,14 @@ pub const all_features = blk: {
11781135 };
11791136 result[@intFromEnum(Feature.shader_viewport_index)] = .{
11801137 .llvm_name = null,
1181 .description = "Enable shader_viewport_index Capability.",
1138 .description = "Enable shader_viewport_index capability",
11821139 .dependencies = featureSet(&[_]Feature{
11831140 .v1_5,
11841141 }),
11851142 };
11861143 result[@intFromEnum(Feature.shader_viewport_index_layer_ext)] = .{
11871144 .llvm_name = null,
1188 .description = "Enable shader_viewport_index_layer_ext Capability.",
1145 .description = "Enable shader_viewport_index_layer_ext capability",
11891146 .dependencies = featureSet(&[_]Feature{
11901147 .SPV_EXT_shader_viewport_index_layer,
11911148 .v1_0,
......@@ -1193,7 +1150,7 @@ pub const all_features = blk: {
11931150 };
11941151 result[@intFromEnum(Feature.signed_zero_inf_nan_preserve)] = .{
11951152 .llvm_name = null,
1196 .description = "Enable signed_zero_inf_nan_preserve Capability.",
1153 .description = "Enable signed_zero_inf_nan_preserve capability",
11971154 .dependencies = featureSet(&[_]Feature{
11981155 .SPV_KHR_float_controls,
11991156 .v1_4,
......@@ -1201,314 +1158,309 @@ pub const all_features = blk: {
12011158 };
12021159 result[@intFromEnum(Feature.sparse_residency)] = .{
12031160 .llvm_name = null,
1204 .description = "Enable sparse_residency Capability.",
1161 .description = "Enable sparse_residency capability",
12051162 .dependencies = featureSet(&[_]Feature{
12061163 .v1_0,
12071164 }),
12081165 };
12091166 result[@intFromEnum(Feature.SPV_EXT_arithmetic_fence)] = .{
12101167 .llvm_name = null,
1211 .description = "Enable SPV_EXT_arithmetic_fence Extension.",
1168 .description = "Enable SPV_EXT_arithmetic_fence extension",
12121169 .dependencies = featureSet(&[_]Feature{}),
12131170 };
12141171 result[@intFromEnum(Feature.SPV_EXT_demote_to_helper_invocation)] = .{
12151172 .llvm_name = null,
1216 .description = "Enable SPV_EXT_demote_to_helper_invocation Extension.",
1173 .description = "Enable SPV_EXT_demote_to_helper_invocation extension",
12171174 .dependencies = featureSet(&[_]Feature{}),
12181175 };
12191176 result[@intFromEnum(Feature.SPV_EXT_descriptor_heap)] = .{
12201177 .llvm_name = null,
1221 .description = "Enable SPV_EXT_descriptor_heap Extension.",
1178 .description = "Enable SPV_EXT_descriptor_heap extension",
12221179 .dependencies = featureSet(&[_]Feature{}),
12231180 };
12241181 result[@intFromEnum(Feature.SPV_EXT_descriptor_indexing)] = .{
12251182 .llvm_name = null,
1226 .description = "Enable SPV_EXT_descriptor_indexing Extension.",
1183 .description = "Enable SPV_EXT_descriptor_indexing extension",
12271184 .dependencies = featureSet(&[_]Feature{}),
12281185 };
12291186 result[@intFromEnum(Feature.SPV_EXT_float8)] = .{
12301187 .llvm_name = null,
1231 .description = "Enable SPV_EXT_float8 Extension.",
1188 .description = "Enable SPV_EXT_float8 extension",
12321189 .dependencies = featureSet(&[_]Feature{}),
12331190 };
12341191 result[@intFromEnum(Feature.SPV_EXT_fragment_fully_covered)] = .{
12351192 .llvm_name = null,
1236 .description = "Enable SPV_EXT_fragment_fully_covered Extension.",
1193 .description = "Enable SPV_EXT_fragment_fully_covered extension",
12371194 .dependencies = featureSet(&[_]Feature{}),
12381195 };
12391196 result[@intFromEnum(Feature.SPV_EXT_fragment_invocation_density)] = .{
12401197 .llvm_name = null,
1241 .description = "Enable SPV_EXT_fragment_invocation_density Extension.",
1198 .description = "Enable SPV_EXT_fragment_invocation_density extension",
12421199 .dependencies = featureSet(&[_]Feature{}),
12431200 };
12441201 result[@intFromEnum(Feature.SPV_EXT_fragment_shader_interlock)] = .{
12451202 .llvm_name = null,
1246 .description = "Enable SPV_EXT_fragment_shader_interlock Extension.",
1203 .description = "Enable SPV_EXT_fragment_shader_interlock extension",
12471204 .dependencies = featureSet(&[_]Feature{}),
12481205 };
12491206 result[@intFromEnum(Feature.SPV_EXT_long_vector)] = .{
12501207 .llvm_name = null,
1251 .description = "Enable SPV_EXT_long_vector Extension.",
1208 .description = "Enable SPV_EXT_long_vector extension",
12521209 .dependencies = featureSet(&[_]Feature{}),
12531210 };
12541211 result[@intFromEnum(Feature.SPV_EXT_mesh_shader)] = .{
12551212 .llvm_name = null,
1256 .description = "Enable SPV_EXT_mesh_shader Extension.",
1213 .description = "Enable SPV_EXT_mesh_shader extension",
12571214 .dependencies = featureSet(&[_]Feature{}),
12581215 };
12591216 result[@intFromEnum(Feature.SPV_EXT_opacity_micromap)] = .{
12601217 .llvm_name = null,
1261 .description = "Enable SPV_EXT_opacity_micromap Extension.",
1218 .description = "Enable SPV_EXT_opacity_micromap extension",
12621219 .dependencies = featureSet(&[_]Feature{}),
12631220 };
12641221 result[@intFromEnum(Feature.SPV_EXT_optnone)] = .{
12651222 .llvm_name = null,
1266 .description = "Enable SPV_EXT_optnone Extension.",
1223 .description = "Enable SPV_EXT_optnone extension",
12671224 .dependencies = featureSet(&[_]Feature{}),
12681225 };
12691226 result[@intFromEnum(Feature.SPV_EXT_physical_storage_buffer)] = .{
12701227 .llvm_name = null,
1271 .description = "Enable SPV_EXT_physical_storage_buffer Extension.",
1228 .description = "Enable SPV_EXT_physical_storage_buffer extension",
12721229 .dependencies = featureSet(&[_]Feature{}),
12731230 };
12741231 result[@intFromEnum(Feature.SPV_EXT_replicated_composites)] = .{
12751232 .llvm_name = null,
1276 .description = "Enable SPV_EXT_replicated_composites Extension.",
1233 .description = "Enable SPV_EXT_replicated_composites extension",
12771234 .dependencies = featureSet(&[_]Feature{}),
12781235 };
12791236 result[@intFromEnum(Feature.SPV_EXT_shader_64bit_indexing)] = .{
12801237 .llvm_name = null,
1281 .description = "Enable SPV_EXT_shader_64bit_indexing Extension.",
1238 .description = "Enable SPV_EXT_shader_64bit_indexing extension",
12821239 .dependencies = featureSet(&[_]Feature{}),
12831240 };
12841241 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float16_add)] = .{
12851242 .llvm_name = null,
1286 .description = "Enable SPV_EXT_shader_atomic_float16_add Extension.",
1243 .description = "Enable SPV_EXT_shader_atomic_float16_add extension",
12871244 .dependencies = featureSet(&[_]Feature{}),
12881245 };
12891246 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_add)] = .{
12901247 .llvm_name = null,
1291 .description = "Enable SPV_EXT_shader_atomic_float_add Extension.",
1248 .description = "Enable SPV_EXT_shader_atomic_float_add extension",
12921249 .dependencies = featureSet(&[_]Feature{}),
12931250 };
12941251 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_min_max)] = .{
12951252 .llvm_name = null,
1296 .description = "Enable SPV_EXT_shader_atomic_float_min_max Extension.",
1253 .description = "Enable SPV_EXT_shader_atomic_float_min_max extension",
12971254 .dependencies = featureSet(&[_]Feature{}),
12981255 };
12991256 result[@intFromEnum(Feature.SPV_EXT_shader_image_int64)] = .{
13001257 .llvm_name = null,
1301 .description = "Enable SPV_EXT_shader_image_int64 Extension.",
1258 .description = "Enable SPV_EXT_shader_image_int64 extension",
13021259 .dependencies = featureSet(&[_]Feature{}),
13031260 };
13041261 result[@intFromEnum(Feature.SPV_EXT_shader_invocation_reorder)] = .{
13051262 .llvm_name = null,
1306 .description = "Enable SPV_EXT_shader_invocation_reorder Extension.",
1263 .description = "Enable SPV_EXT_shader_invocation_reorder extension",
13071264 .dependencies = featureSet(&[_]Feature{}),
13081265 };
13091266 result[@intFromEnum(Feature.SPV_EXT_shader_stencil_export)] = .{
13101267 .llvm_name = null,
1311 .description = "Enable SPV_EXT_shader_stencil_export Extension.",
1268 .description = "Enable SPV_EXT_shader_stencil_export extension",
13121269 .dependencies = featureSet(&[_]Feature{}),
13131270 };
13141271 result[@intFromEnum(Feature.SPV_EXT_shader_subgroup_partitioned)] = .{
13151272 .llvm_name = null,
1316 .description = "Enable SPV_EXT_shader_subgroup_partitioned Extension.",
1273 .description = "Enable SPV_EXT_shader_subgroup_partitioned extension",
13171274 .dependencies = featureSet(&[_]Feature{}),
13181275 };
13191276 result[@intFromEnum(Feature.SPV_EXT_shader_tile_image)] = .{
13201277 .llvm_name = null,
1321 .description = "Enable SPV_EXT_shader_tile_image Extension.",
1278 .description = "Enable SPV_EXT_shader_tile_image extension",
13221279 .dependencies = featureSet(&[_]Feature{}),
13231280 };
13241281 result[@intFromEnum(Feature.SPV_EXT_shader_viewport_index_layer)] = .{
13251282 .llvm_name = null,
1326 .description = "Enable SPV_EXT_shader_viewport_index_layer Extension.",
1283 .description = "Enable SPV_EXT_shader_viewport_index_layer extension",
13271284 .dependencies = featureSet(&[_]Feature{}),
13281285 };
13291286 result[@intFromEnum(Feature.SPV_KHR_16bit_storage)] = .{
13301287 .llvm_name = null,
1331 .description = "Enable SPV_KHR_16bit_storage Extension.",
1288 .description = "Enable SPV_KHR_16bit_storage extension",
13321289 .dependencies = featureSet(&[_]Feature{}),
13331290 };
13341291 result[@intFromEnum(Feature.SPV_KHR_8bit_storage)] = .{
13351292 .llvm_name = null,
1336 .description = "Enable SPV_KHR_8bit_storage Extension.",
1293 .description = "Enable SPV_KHR_8bit_storage extension",
13371294 .dependencies = featureSet(&[_]Feature{}),
13381295 };
13391296 result[@intFromEnum(Feature.SPV_KHR_abort)] = .{
13401297 .llvm_name = null,
1341 .description = "Enable SPV_KHR_abort Extension.",
1298 .description = "Enable SPV_KHR_abort extension",
13421299 .dependencies = featureSet(&[_]Feature{}),
13431300 };
13441301 result[@intFromEnum(Feature.SPV_KHR_bfloat16)] = .{
13451302 .llvm_name = null,
1346 .description = "Enable SPV_KHR_bfloat16 Extension.",
1303 .description = "Enable SPV_KHR_bfloat16 extension",
13471304 .dependencies = featureSet(&[_]Feature{}),
13481305 };
13491306 result[@intFromEnum(Feature.SPV_KHR_bit_instructions)] = .{
13501307 .llvm_name = null,
1351 .description = "Enable SPV_KHR_bit_instructions Extension.",
1308 .description = "Enable SPV_KHR_bit_instructions extension",
13521309 .dependencies = featureSet(&[_]Feature{}),
13531310 };
13541311 result[@intFromEnum(Feature.SPV_KHR_compute_shader_derivatives)] = .{
13551312 .llvm_name = null,
1356 .description = "Enable SPV_KHR_compute_shader_derivatives Extension.",
1313 .description = "Enable SPV_KHR_compute_shader_derivatives extension",
13571314 .dependencies = featureSet(&[_]Feature{}),
13581315 };
13591316 result[@intFromEnum(Feature.SPV_KHR_constant_data)] = .{
13601317 .llvm_name = null,
1361 .description = "Enable SPV_KHR_constant_data Extension.",
1318 .description = "Enable SPV_KHR_constant_data extension",
13621319 .dependencies = featureSet(&[_]Feature{}),
13631320 };
13641321 result[@intFromEnum(Feature.SPV_KHR_cooperative_matrix)] = .{
13651322 .llvm_name = null,
1366 .description = "Enable SPV_KHR_cooperative_matrix Extension.",
1323 .description = "Enable SPV_KHR_cooperative_matrix extension",
13671324 .dependencies = featureSet(&[_]Feature{}),
13681325 };
13691326 result[@intFromEnum(Feature.SPV_KHR_device_group)] = .{
13701327 .llvm_name = null,
1371 .description = "Enable SPV_KHR_device_group Extension.",
1328 .description = "Enable SPV_KHR_device_group extension",
13721329 .dependencies = featureSet(&[_]Feature{}),
13731330 };
13741331 result[@intFromEnum(Feature.SPV_KHR_expect_assume)] = .{
13751332 .llvm_name = null,
1376 .description = "Enable SPV_KHR_expect_assume Extension.",
1333 .description = "Enable SPV_KHR_expect_assume extension",
13771334 .dependencies = featureSet(&[_]Feature{}),
13781335 };
13791336 result[@intFromEnum(Feature.SPV_KHR_float_controls)] = .{
13801337 .llvm_name = null,
1381 .description = "Enable SPV_KHR_float_controls Extension.",
1338 .description = "Enable SPV_KHR_float_controls extension",
13821339 .dependencies = featureSet(&[_]Feature{}),
13831340 };
13841341 result[@intFromEnum(Feature.SPV_KHR_float_controls2)] = .{
13851342 .llvm_name = null,
1386 .description = "Enable SPV_KHR_float_controls2 Extension.",
1343 .description = "Enable SPV_KHR_float_controls2 extension",
13871344 .dependencies = featureSet(&[_]Feature{}),
13881345 };
13891346 result[@intFromEnum(Feature.SPV_KHR_fma)] = .{
13901347 .llvm_name = null,
1391 .description = "Enable SPV_KHR_fma Extension.",
1348 .description = "Enable SPV_KHR_fma extension",
13921349 .dependencies = featureSet(&[_]Feature{}),
13931350 };
13941351 result[@intFromEnum(Feature.SPV_KHR_fragment_shader_barycentric)] = .{
13951352 .llvm_name = null,
1396 .description = "Enable SPV_KHR_fragment_shader_barycentric Extension.",
1353 .description = "Enable SPV_KHR_fragment_shader_barycentric extension",
13971354 .dependencies = featureSet(&[_]Feature{}),
13981355 };
13991356 result[@intFromEnum(Feature.SPV_KHR_fragment_shading_rate)] = .{
14001357 .llvm_name = null,
1401 .description = "Enable SPV_KHR_fragment_shading_rate Extension.",
1358 .description = "Enable SPV_KHR_fragment_shading_rate extension",
14021359 .dependencies = featureSet(&[_]Feature{}),
14031360 };
14041361 result[@intFromEnum(Feature.SPV_KHR_integer_dot_product)] = .{
14051362 .llvm_name = null,
1406 .description = "Enable SPV_KHR_integer_dot_product Extension.",
1363 .description = "Enable SPV_KHR_integer_dot_product extension",
14071364 .dependencies = featureSet(&[_]Feature{}),
14081365 };
14091366 result[@intFromEnum(Feature.SPV_KHR_multiview)] = .{
14101367 .llvm_name = null,
1411 .description = "Enable SPV_KHR_multiview Extension.",
1412 .dependencies = featureSet(&[_]Feature{}),
1413 };
1414 result[@intFromEnum(Feature.SPV_KHR_physical_storage_buffer)] = .{
1415 .llvm_name = null,
1416 .description = "Enable SPV_KHR_physical_storage_buffer Extension.",
1368 .description = "Enable SPV_KHR_multiview extension",
14171369 .dependencies = featureSet(&[_]Feature{}),
14181370 };
14191371 result[@intFromEnum(Feature.SPV_KHR_poison_freeze)] = .{
14201372 .llvm_name = null,
1421 .description = "Enable SPV_KHR_poison_freeze Extension.",
1373 .description = "Enable SPV_KHR_poison_freeze extension",
14221374 .dependencies = featureSet(&[_]Feature{}),
14231375 };
14241376 result[@intFromEnum(Feature.SPV_KHR_post_depth_coverage)] = .{
14251377 .llvm_name = null,
1426 .description = "Enable SPV_KHR_post_depth_coverage Extension.",
1378 .description = "Enable SPV_KHR_post_depth_coverage extension",
14271379 .dependencies = featureSet(&[_]Feature{}),
14281380 };
14291381 result[@intFromEnum(Feature.SPV_KHR_quad_control)] = .{
14301382 .llvm_name = null,
1431 .description = "Enable SPV_KHR_quad_control Extension.",
1383 .description = "Enable SPV_KHR_quad_control extension",
14321384 .dependencies = featureSet(&[_]Feature{}),
14331385 };
14341386 result[@intFromEnum(Feature.SPV_KHR_ray_cull_mask)] = .{
14351387 .llvm_name = null,
1436 .description = "Enable SPV_KHR_ray_cull_mask Extension.",
1388 .description = "Enable SPV_KHR_ray_cull_mask extension",
14371389 .dependencies = featureSet(&[_]Feature{}),
14381390 };
14391391 result[@intFromEnum(Feature.SPV_KHR_ray_query)] = .{
14401392 .llvm_name = null,
1441 .description = "Enable SPV_KHR_ray_query Extension.",
1393 .description = "Enable SPV_KHR_ray_query extension",
14421394 .dependencies = featureSet(&[_]Feature{}),
14431395 };
14441396 result[@intFromEnum(Feature.SPV_KHR_ray_tracing)] = .{
14451397 .llvm_name = null,
1446 .description = "Enable SPV_KHR_ray_tracing Extension.",
1398 .description = "Enable SPV_KHR_ray_tracing extension",
14471399 .dependencies = featureSet(&[_]Feature{}),
14481400 };
14491401 result[@intFromEnum(Feature.SPV_KHR_ray_tracing_position_fetch)] = .{
14501402 .llvm_name = null,
1451 .description = "Enable SPV_KHR_ray_tracing_position_fetch Extension.",
1403 .description = "Enable SPV_KHR_ray_tracing_position_fetch extension",
14521404 .dependencies = featureSet(&[_]Feature{}),
14531405 };
14541406 result[@intFromEnum(Feature.SPV_KHR_shader_atomic_counter_ops)] = .{
14551407 .llvm_name = null,
1456 .description = "Enable SPV_KHR_shader_atomic_counter_ops Extension.",
1408 .description = "Enable SPV_KHR_shader_atomic_counter_ops extension",
14571409 .dependencies = featureSet(&[_]Feature{}),
14581410 };
14591411 result[@intFromEnum(Feature.SPV_KHR_shader_ballot)] = .{
14601412 .llvm_name = null,
1461 .description = "Enable SPV_KHR_shader_ballot Extension.",
1413 .description = "Enable SPV_KHR_shader_ballot extension",
14621414 .dependencies = featureSet(&[_]Feature{}),
14631415 };
14641416 result[@intFromEnum(Feature.SPV_KHR_shader_clock)] = .{
14651417 .llvm_name = null,
1466 .description = "Enable SPV_KHR_shader_clock Extension.",
1418 .description = "Enable SPV_KHR_shader_clock extension",
14671419 .dependencies = featureSet(&[_]Feature{}),
14681420 };
14691421 result[@intFromEnum(Feature.SPV_KHR_shader_draw_parameters)] = .{
14701422 .llvm_name = null,
1471 .description = "Enable SPV_KHR_shader_draw_parameters Extension.",
1423 .description = "Enable SPV_KHR_shader_draw_parameters extension",
14721424 .dependencies = featureSet(&[_]Feature{}),
14731425 };
14741426 result[@intFromEnum(Feature.SPV_KHR_subgroup_rotate)] = .{
14751427 .llvm_name = null,
1476 .description = "Enable SPV_KHR_subgroup_rotate Extension.",
1428 .description = "Enable SPV_KHR_subgroup_rotate extension",
14771429 .dependencies = featureSet(&[_]Feature{}),
14781430 };
14791431 result[@intFromEnum(Feature.SPV_KHR_subgroup_vote)] = .{
14801432 .llvm_name = null,
1481 .description = "Enable SPV_KHR_subgroup_vote Extension.",
1433 .description = "Enable SPV_KHR_subgroup_vote extension",
14821434 .dependencies = featureSet(&[_]Feature{}),
14831435 };
14841436 result[@intFromEnum(Feature.SPV_KHR_uniform_group_instructions)] = .{
14851437 .llvm_name = null,
1486 .description = "Enable SPV_KHR_uniform_group_instructions Extension.",
1438 .description = "Enable SPV_KHR_uniform_group_instructions extension",
14871439 .dependencies = featureSet(&[_]Feature{}),
14881440 };
14891441 result[@intFromEnum(Feature.SPV_KHR_untyped_pointers)] = .{
14901442 .llvm_name = null,
1491 .description = "Enable SPV_KHR_untyped_pointers Extension.",
1443 .description = "Enable SPV_KHR_untyped_pointers extension",
14921444 .dependencies = featureSet(&[_]Feature{}),
14931445 };
14941446 result[@intFromEnum(Feature.SPV_KHR_variable_pointers)] = .{
14951447 .llvm_name = null,
1496 .description = "Enable SPV_KHR_variable_pointers Extension.",
1448 .description = "Enable SPV_KHR_variable_pointers extension",
14971449 .dependencies = featureSet(&[_]Feature{}),
14981450 };
14991451 result[@intFromEnum(Feature.SPV_KHR_vulkan_memory_model)] = .{
15001452 .llvm_name = null,
1501 .description = "Enable SPV_KHR_vulkan_memory_model Extension.",
1453 .description = "Enable SPV_KHR_vulkan_memory_model extension",
15021454 .dependencies = featureSet(&[_]Feature{}),
15031455 };
15041456 result[@intFromEnum(Feature.SPV_KHR_workgroup_memory_explicit_layout)] = .{
15051457 .llvm_name = null,
1506 .description = "Enable SPV_KHR_workgroup_memory_explicit_layout Extension.",
1458 .description = "Enable SPV_KHR_workgroup_memory_explicit_layout extension",
15071459 .dependencies = featureSet(&[_]Feature{}),
15081460 };
15091461 result[@intFromEnum(Feature.stencil_export_ext)] = .{
15101462 .llvm_name = null,
1511 .description = "Enable stencil_export_ext Capability.",
1463 .description = "Enable stencil_export_ext capability",
15121464 .dependencies = featureSet(&[_]Feature{
15131465 .SPV_EXT_shader_stencil_export,
15141466 .v1_0,
......@@ -1516,7 +1468,7 @@ pub const all_features = blk: {
15161468 };
15171469 result[@intFromEnum(Feature.storage_buffer16bit_access)] = .{
15181470 .llvm_name = null,
1519 .description = "Enable storage_buffer16bit_access Capability.",
1471 .description = "Enable storage_buffer16bit_access capability",
15201472 .dependencies = featureSet(&[_]Feature{
15211473 .SPV_KHR_16bit_storage,
15221474 .v1_3,
......@@ -1524,7 +1476,7 @@ pub const all_features = blk: {
15241476 };
15251477 result[@intFromEnum(Feature.storage_buffer8bit_access)] = .{
15261478 .llvm_name = null,
1527 .description = "Enable storage_buffer8bit_access Capability.",
1479 .description = "Enable storage_buffer8bit_access capability",
15281480 .dependencies = featureSet(&[_]Feature{
15291481 .SPV_KHR_8bit_storage,
15301482 .v1_5,
......@@ -1532,14 +1484,14 @@ pub const all_features = blk: {
15321484 };
15331485 result[@intFromEnum(Feature.storage_buffer_array_dynamic_indexing)] = .{
15341486 .llvm_name = null,
1535 .description = "Enable storage_buffer_array_dynamic_indexing Capability.",
1487 .description = "Enable storage_buffer_array_dynamic_indexing capability",
15361488 .dependencies = featureSet(&[_]Feature{
15371489 .v1_0,
15381490 }),
15391491 };
15401492 result[@intFromEnum(Feature.storage_buffer_array_non_uniform_indexing)] = .{
15411493 .llvm_name = null,
1542 .description = "Enable storage_buffer_array_non_uniform_indexing Capability.",
1494 .description = "Enable storage_buffer_array_non_uniform_indexing capability",
15431495 .dependencies = featureSet(&[_]Feature{
15441496 .SPV_EXT_descriptor_indexing,
15451497 .v1_5,
......@@ -1547,14 +1499,14 @@ pub const all_features = blk: {
15471499 };
15481500 result[@intFromEnum(Feature.storage_image_array_dynamic_indexing)] = .{
15491501 .llvm_name = null,
1550 .description = "Enable storage_image_array_dynamic_indexing Capability.",
1502 .description = "Enable storage_image_array_dynamic_indexing capability",
15511503 .dependencies = featureSet(&[_]Feature{
15521504 .v1_0,
15531505 }),
15541506 };
15551507 result[@intFromEnum(Feature.storage_image_array_non_uniform_indexing)] = .{
15561508 .llvm_name = null,
1557 .description = "Enable storage_image_array_non_uniform_indexing Capability.",
1509 .description = "Enable storage_image_array_non_uniform_indexing capability",
15581510 .dependencies = featureSet(&[_]Feature{
15591511 .SPV_EXT_descriptor_indexing,
15601512 .v1_5,
......@@ -1562,35 +1514,35 @@ pub const all_features = blk: {
15621514 };
15631515 result[@intFromEnum(Feature.storage_image_extended_formats)] = .{
15641516 .llvm_name = null,
1565 .description = "Enable storage_image_extended_formats Capability.",
1517 .description = "Enable storage_image_extended_formats capability",
15661518 .dependencies = featureSet(&[_]Feature{
15671519 .v1_0,
15681520 }),
15691521 };
15701522 result[@intFromEnum(Feature.storage_image_multisample)] = .{
15711523 .llvm_name = null,
1572 .description = "Enable storage_image_multisample Capability.",
1524 .description = "Enable storage_image_multisample capability",
15731525 .dependencies = featureSet(&[_]Feature{
15741526 .v1_0,
15751527 }),
15761528 };
15771529 result[@intFromEnum(Feature.storage_image_read_without_format)] = .{
15781530 .llvm_name = null,
1579 .description = "Enable storage_image_read_without_format Capability.",
1531 .description = "Enable storage_image_read_without_format capability",
15801532 .dependencies = featureSet(&[_]Feature{
15811533 .v1_0,
15821534 }),
15831535 };
15841536 result[@intFromEnum(Feature.storage_image_write_without_format)] = .{
15851537 .llvm_name = null,
1586 .description = "Enable storage_image_write_without_format Capability.",
1538 .description = "Enable storage_image_write_without_format capability",
15871539 .dependencies = featureSet(&[_]Feature{
15881540 .v1_0,
15891541 }),
15901542 };
15911543 result[@intFromEnum(Feature.storage_input_output16)] = .{
15921544 .llvm_name = null,
1593 .description = "Enable storage_input_output16 Capability.",
1545 .description = "Enable storage_input_output16 capability",
15941546 .dependencies = featureSet(&[_]Feature{
15951547 .SPV_KHR_16bit_storage,
15961548 .v1_3,
......@@ -1598,7 +1550,7 @@ pub const all_features = blk: {
15981550 };
15991551 result[@intFromEnum(Feature.storage_push_constant16)] = .{
16001552 .llvm_name = null,
1601 .description = "Enable storage_push_constant16 Capability.",
1553 .description = "Enable storage_push_constant16 capability",
16021554 .dependencies = featureSet(&[_]Feature{
16031555 .SPV_KHR_16bit_storage,
16041556 .v1_3,
......@@ -1606,7 +1558,7 @@ pub const all_features = blk: {
16061558 };
16071559 result[@intFromEnum(Feature.storage_push_constant8)] = .{
16081560 .llvm_name = null,
1609 .description = "Enable storage_push_constant8 Capability.",
1561 .description = "Enable storage_push_constant8 capability",
16101562 .dependencies = featureSet(&[_]Feature{
16111563 .SPV_KHR_8bit_storage,
16121564 .v1_5,
......@@ -1614,7 +1566,7 @@ pub const all_features = blk: {
16141566 };
16151567 result[@intFromEnum(Feature.storage_texel_buffer_array_dynamic_indexing)] = .{
16161568 .llvm_name = null,
1617 .description = "Enable storage_texel_buffer_array_dynamic_indexing Capability.",
1569 .description = "Enable storage_texel_buffer_array_dynamic_indexing capability",
16181570 .dependencies = featureSet(&[_]Feature{
16191571 .SPV_EXT_descriptor_indexing,
16201572 .v1_5,
......@@ -1622,7 +1574,7 @@ pub const all_features = blk: {
16221574 };
16231575 result[@intFromEnum(Feature.storage_texel_buffer_array_non_uniform_indexing)] = .{
16241576 .llvm_name = null,
1625 .description = "Enable storage_texel_buffer_array_non_uniform_indexing Capability.",
1577 .description = "Enable storage_texel_buffer_array_non_uniform_indexing capability",
16261578 .dependencies = featureSet(&[_]Feature{
16271579 .SPV_EXT_descriptor_indexing,
16281580 .v1_5,
......@@ -1630,7 +1582,7 @@ pub const all_features = blk: {
16301582 };
16311583 result[@intFromEnum(Feature.subgroup_ballot_khr)] = .{
16321584 .llvm_name = null,
1633 .description = "Enable subgroup_ballot_khr Capability.",
1585 .description = "Enable subgroup_ballot_khr capability",
16341586 .dependencies = featureSet(&[_]Feature{
16351587 .SPV_KHR_shader_ballot,
16361588 .v1_0,
......@@ -1638,14 +1590,14 @@ pub const all_features = blk: {
16381590 };
16391591 result[@intFromEnum(Feature.subgroup_dispatch)] = .{
16401592 .llvm_name = null,
1641 .description = "Enable subgroup_dispatch Capability.",
1593 .description = "Enable subgroup_dispatch capability",
16421594 .dependencies = featureSet(&[_]Feature{
16431595 .v1_1,
16441596 }),
16451597 };
16461598 result[@intFromEnum(Feature.subgroup_vote_khr)] = .{
16471599 .llvm_name = null,
1648 .description = "Enable subgroup_vote_khr Capability.",
1600 .description = "Enable subgroup_vote_khr capability",
16491601 .dependencies = featureSet(&[_]Feature{
16501602 .SPV_KHR_subgroup_vote,
16511603 .v1_0,
......@@ -1653,21 +1605,21 @@ pub const all_features = blk: {
16531605 };
16541606 result[@intFromEnum(Feature.tessellation)] = .{
16551607 .llvm_name = null,
1656 .description = "Enable tessellation Capability.",
1608 .description = "Enable tessellation capability",
16571609 .dependencies = featureSet(&[_]Feature{
16581610 .v1_0,
16591611 }),
16601612 };
16611613 result[@intFromEnum(Feature.tessellation_point_size)] = .{
16621614 .llvm_name = null,
1663 .description = "Enable tessellation_point_size Capability.",
1615 .description = "Enable tessellation_point_size capability",
16641616 .dependencies = featureSet(&[_]Feature{
16651617 .v1_0,
16661618 }),
16671619 };
16681620 result[@intFromEnum(Feature.tile_image_color_read_access_ext)] = .{
16691621 .llvm_name = null,
1670 .description = "Enable tile_image_color_read_access_ext Capability.",
1622 .description = "Enable tile_image_color_read_access_ext capability",
16711623 .dependencies = featureSet(&[_]Feature{
16721624 .SPV_EXT_shader_tile_image,
16731625 .v1_0,
......@@ -1675,7 +1627,7 @@ pub const all_features = blk: {
16751627 };
16761628 result[@intFromEnum(Feature.tile_image_depth_read_access_ext)] = .{
16771629 .llvm_name = null,
1678 .description = "Enable tile_image_depth_read_access_ext Capability.",
1630 .description = "Enable tile_image_depth_read_access_ext capability",
16791631 .dependencies = featureSet(&[_]Feature{
16801632 .SPV_EXT_shader_tile_image,
16811633 .v1_0,
......@@ -1683,7 +1635,7 @@ pub const all_features = blk: {
16831635 };
16841636 result[@intFromEnum(Feature.tile_image_stencil_read_access_ext)] = .{
16851637 .llvm_name = null,
1686 .description = "Enable tile_image_stencil_read_access_ext Capability.",
1638 .description = "Enable tile_image_stencil_read_access_ext capability",
16871639 .dependencies = featureSet(&[_]Feature{
16881640 .SPV_EXT_shader_tile_image,
16891641 .v1_0,
......@@ -1691,14 +1643,14 @@ pub const all_features = blk: {
16911643 };
16921644 result[@intFromEnum(Feature.transform_feedback)] = .{
16931645 .llvm_name = null,
1694 .description = "Enable transform_feedback Capability.",
1646 .description = "Enable transform_feedback capability",
16951647 .dependencies = featureSet(&[_]Feature{
16961648 .v1_0,
16971649 }),
16981650 };
16991651 result[@intFromEnum(Feature.uniform_and_storage_buffer16bit_access)] = .{
17001652 .llvm_name = null,
1701 .description = "Enable uniform_and_storage_buffer16bit_access Capability.",
1653 .description = "Enable uniform_and_storage_buffer16bit_access capability",
17021654 .dependencies = featureSet(&[_]Feature{
17031655 .SPV_KHR_16bit_storage,
17041656 .v1_3,
......@@ -1706,7 +1658,7 @@ pub const all_features = blk: {
17061658 };
17071659 result[@intFromEnum(Feature.uniform_and_storage_buffer8bit_access)] = .{
17081660 .llvm_name = null,
1709 .description = "Enable uniform_and_storage_buffer8bit_access Capability.",
1661 .description = "Enable uniform_and_storage_buffer8bit_access capability",
17101662 .dependencies = featureSet(&[_]Feature{
17111663 .SPV_KHR_8bit_storage,
17121664 .v1_5,
......@@ -1714,14 +1666,14 @@ pub const all_features = blk: {
17141666 };
17151667 result[@intFromEnum(Feature.uniform_buffer_array_dynamic_indexing)] = .{
17161668 .llvm_name = null,
1717 .description = "Enable uniform_buffer_array_dynamic_indexing Capability.",
1669 .description = "Enable uniform_buffer_array_dynamic_indexing capability",
17181670 .dependencies = featureSet(&[_]Feature{
17191671 .v1_0,
17201672 }),
17211673 };
17221674 result[@intFromEnum(Feature.uniform_buffer_array_non_uniform_indexing)] = .{
17231675 .llvm_name = null,
1724 .description = "Enable uniform_buffer_array_non_uniform_indexing Capability.",
1676 .description = "Enable uniform_buffer_array_non_uniform_indexing capability",
17251677 .dependencies = featureSet(&[_]Feature{
17261678 .SPV_EXT_descriptor_indexing,
17271679 .v1_5,
......@@ -1729,14 +1681,14 @@ pub const all_features = blk: {
17291681 };
17301682 result[@intFromEnum(Feature.uniform_decoration)] = .{
17311683 .llvm_name = null,
1732 .description = "Enable uniform_decoration Capability.",
1684 .description = "Enable uniform_decoration capability",
17331685 .dependencies = featureSet(&[_]Feature{
17341686 .v1_6,
17351687 }),
17361688 };
17371689 result[@intFromEnum(Feature.uniform_texel_buffer_array_dynamic_indexing)] = .{
17381690 .llvm_name = null,
1739 .description = "Enable uniform_texel_buffer_array_dynamic_indexing Capability.",
1691 .description = "Enable uniform_texel_buffer_array_dynamic_indexing capability",
17401692 .dependencies = featureSet(&[_]Feature{
17411693 .SPV_EXT_descriptor_indexing,
17421694 .v1_5,
......@@ -1744,7 +1696,7 @@ pub const all_features = blk: {
17441696 };
17451697 result[@intFromEnum(Feature.uniform_texel_buffer_array_non_uniform_indexing)] = .{
17461698 .llvm_name = null,
1747 .description = "Enable uniform_texel_buffer_array_non_uniform_indexing Capability.",
1699 .description = "Enable uniform_texel_buffer_array_non_uniform_indexing capability",
17481700 .dependencies = featureSet(&[_]Feature{
17491701 .SPV_EXT_descriptor_indexing,
17501702 .v1_5,
......@@ -1752,7 +1704,7 @@ pub const all_features = blk: {
17521704 };
17531705 result[@intFromEnum(Feature.untyped_pointers_khr)] = .{
17541706 .llvm_name = null,
1755 .description = "Enable untyped_pointers_khr Capability.",
1707 .description = "Enable untyped_pointers_khr capability",
17561708 .dependencies = featureSet(&[_]Feature{
17571709 .SPV_KHR_untyped_pointers,
17581710 .v1_0,
......@@ -1760,54 +1712,54 @@ pub const all_features = blk: {
17601712 };
17611713 result[@intFromEnum(Feature.v1_0)] = .{
17621714 .llvm_name = null,
1763 .description = "Enable v1_0 Extension.",
1715 .description = "Enable v1_0 extension",
17641716 .dependencies = featureSet(&[_]Feature{}),
17651717 };
17661718 result[@intFromEnum(Feature.v1_1)] = .{
17671719 .llvm_name = null,
1768 .description = "Enable v1_1 Extension.",
1720 .description = "Enable v1_1 extension",
17691721 .dependencies = featureSet(&[_]Feature{
17701722 .v1_0,
17711723 }),
17721724 };
17731725 result[@intFromEnum(Feature.v1_2)] = .{
17741726 .llvm_name = null,
1775 .description = "Enable v1_2 Extension.",
1727 .description = "Enable v1_2 extension",
17761728 .dependencies = featureSet(&[_]Feature{
17771729 .v1_1,
17781730 }),
17791731 };
17801732 result[@intFromEnum(Feature.v1_3)] = .{
17811733 .llvm_name = null,
1782 .description = "Enable v1_3 Extension.",
1734 .description = "Enable v1_3 extension",
17831735 .dependencies = featureSet(&[_]Feature{
17841736 .v1_2,
17851737 }),
17861738 };
17871739 result[@intFromEnum(Feature.v1_4)] = .{
17881740 .llvm_name = null,
1789 .description = "Enable v1_4 Extension.",
1741 .description = "Enable v1_4 extension",
17901742 .dependencies = featureSet(&[_]Feature{
17911743 .v1_3,
17921744 }),
17931745 };
17941746 result[@intFromEnum(Feature.v1_5)] = .{
17951747 .llvm_name = null,
1796 .description = "Enable v1_5 Extension.",
1748 .description = "Enable v1_5 extension",
17971749 .dependencies = featureSet(&[_]Feature{
17981750 .v1_4,
17991751 }),
18001752 };
18011753 result[@intFromEnum(Feature.v1_6)] = .{
18021754 .llvm_name = null,
1803 .description = "Enable v1_6 Extension.",
1755 .description = "Enable v1_6 extension",
18041756 .dependencies = featureSet(&[_]Feature{
18051757 .v1_5,
18061758 }),
18071759 };
18081760 result[@intFromEnum(Feature.variable_pointers)] = .{
18091761 .llvm_name = null,
1810 .description = "Enable variable_pointers Capability.",
1762 .description = "Enable variable_pointers capability",
18111763 .dependencies = featureSet(&[_]Feature{
18121764 .SPV_KHR_variable_pointers,
18131765 .v1_3,
......@@ -1815,7 +1767,7 @@ pub const all_features = blk: {
18151767 };
18161768 result[@intFromEnum(Feature.variable_pointers_storage_buffer)] = .{
18171769 .llvm_name = null,
1818 .description = "Enable variable_pointers_storage_buffer Capability.",
1770 .description = "Enable variable_pointers_storage_buffer capability",
18191771 .dependencies = featureSet(&[_]Feature{
18201772 .SPV_KHR_variable_pointers,
18211773 .v1_3,
......@@ -1823,14 +1775,14 @@ pub const all_features = blk: {
18231775 };
18241776 result[@intFromEnum(Feature.vector16)] = .{
18251777 .llvm_name = null,
1826 .description = "Enable vector16 Capability.",
1778 .description = "Enable vector16 capability",
18271779 .dependencies = featureSet(&[_]Feature{
18281780 .v1_0,
18291781 }),
18301782 };
18311783 result[@intFromEnum(Feature.vulkan_memory_model)] = .{
18321784 .llvm_name = null,
1833 .description = "Enable vulkan_memory_model Capability.",
1785 .description = "Enable vulkan_memory_model capability",
18341786 .dependencies = featureSet(&[_]Feature{
18351787 .SPV_KHR_vulkan_memory_model,
18361788 .v1_5,
......@@ -1838,7 +1790,7 @@ pub const all_features = blk: {
18381790 };
18391791 result[@intFromEnum(Feature.vulkan_memory_model_device_scope)] = .{
18401792 .llvm_name = null,
1841 .description = "Enable vulkan_memory_model_device_scope Capability.",
1793 .description = "Enable vulkan_memory_model_device_scope capability",
18421794 .dependencies = featureSet(&[_]Feature{
18431795 .SPV_KHR_vulkan_memory_model,
18441796 .v1_5,
......@@ -1846,7 +1798,7 @@ pub const all_features = blk: {
18461798 };
18471799 result[@intFromEnum(Feature.workgroup_memory_explicit_layout16bit_access_khr)] = .{
18481800 .llvm_name = null,
1849 .description = "Enable workgroup_memory_explicit_layout16bit_access_khr Capability.",
1801 .description = "Enable workgroup_memory_explicit_layout16bit_access_khr capability",
18501802 .dependencies = featureSet(&[_]Feature{
18511803 .SPV_KHR_workgroup_memory_explicit_layout,
18521804 .v1_0,
......@@ -1854,7 +1806,7 @@ pub const all_features = blk: {
18541806 };
18551807 result[@intFromEnum(Feature.workgroup_memory_explicit_layout8bit_access_khr)] = .{
18561808 .llvm_name = null,
1857 .description = "Enable workgroup_memory_explicit_layout8bit_access_khr Capability.",
1809 .description = "Enable workgroup_memory_explicit_layout8bit_access_khr capability",
18581810 .dependencies = featureSet(&[_]Feature{
18591811 .SPV_KHR_workgroup_memory_explicit_layout,
18601812 .v1_0,
......@@ -1862,7 +1814,7 @@ pub const all_features = blk: {
18621814 };
18631815 result[@intFromEnum(Feature.workgroup_memory_explicit_layout_khr)] = .{
18641816 .llvm_name = null,
1865 .description = "Enable workgroup_memory_explicit_layout_khr Capability.",
1817 .description = "Enable workgroup_memory_explicit_layout_khr capability",
18661818 .dependencies = featureSet(&[_]Feature{
18671819 .SPV_KHR_workgroup_memory_explicit_layout,
18681820 .v1_0,
src/link/SpirV.zig+8-4
......@@ -628,14 +628,18 @@ fn emitPreamble(
628628 if (has_linkage) caps.insert(.linkage);
629629
630630 inline for (@typeInfo(spec.Capability).@"enum".field_names) |cap_name| {
631 if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, cap_name)))
632 caps.insert(@field(spec.Capability, cap_name));
631 if (@hasField(std.Target.spirv.Feature, cap_name)) {
632 if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, cap_name)))
633 caps.insert(@field(spec.Capability, cap_name));
634 }
633635 }
634636 inline for (@typeInfo(spec.Extension).@"enum".field_names) |ext_name| {
635637 switch (@field(spec.Extension, ext_name)) {
636638 .v1_0, .v1_1, .v1_2, .v1_3, .v1_4, .v1_5, .v1_6 => {},
637 else => if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, ext_name)))
638 try exts.put(gpa, ext_name, {}),
639 else => if (@hasField(std.Target.spirv.Feature, ext_name)) {
640 if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, ext_name)))
641 try exts.put(gpa, ext_name, {});
642 },
639643 }
640644 }
641645
tools/update_cpu_features.zig+31-18
......@@ -50,19 +50,29 @@ const ArchTarget = struct {
5050 branch_quota: ?usize = null,
5151};
5252
53const spirv_extra_features = blk: {
54 const caps_info = @typeInfo(spirv_spec.Capability).@"enum";
55 const exts_info = @typeInfo(spirv_spec.Extension).@"enum";
56 const caps_len = caps_info.field_names.len;
57 const exts_len = exts_info.field_names.len;
58
59 var features: [caps_len + exts_len]Feature = undefined;
60 for (
61 caps_info.field_names,
62 caps_info.field_values,
63 features[0..caps_len],
64 ) |name, value, *feature| {
65 feature.* = .{
53const spirv_omitted_capabilities = [_][]const u8{
54 "shader", // implied by Vulkan/OpenGL targets
55 "kernel", // implied by OpenCL/AMDHSA targets
56 "addresses", // implied by OpenCL/AMDHSA targets
57 "physical_storage_buffer_addresses", // implied by spirv64-vulkan
58 "linkage", // automatically emitted when externs need linkage decorations
59};
60const spirv_omitted_extensions = [_][]const u8{
61 "SPV_KHR_physical_storage_buffer", // paired with physical_storage_buffer_addresses
62};
63
64const spirv_extra_features: []const Feature = blk: {
65 @setEvalBranchQuota(15_000);
66 var features: []const Feature = &.{};
67
68 cap: for (
69 @typeInfo(spirv_spec.Capability).@"enum".field_names,
70 @typeInfo(spirv_spec.Capability).@"enum".field_values,
71 ) |name, value| {
72 for (spirv_omitted_capabilities) |omitted| {
73 if (std.mem.eql(u8, omitted, name)) continue :cap;
74 }
75 features = features ++ &[_]Feature{.{
6676 .zig_name = name,
6777 .desc = "Enable " ++ name ++ " capability",
6878 .deps = &struct {
......@@ -73,11 +83,14 @@ const spirv_extra_features = blk: {
7383 break :inner out;
7484 };
7585 }.deps,
76 };
86 }};
7787 }
7888
79 for (exts_info.field_names, features[caps_len..]) |name, *feature| {
80 feature.* = .{
89 ext: for (@typeInfo(spirv_spec.Extension).@"enum".field_names) |name| {
90 for (spirv_omitted_extensions) |omitted| {
91 if (std.mem.eql(u8, omitted, name)) continue :ext;
92 }
93 features = features ++ &[_]Feature{.{
8194 .zig_name = name,
8295 .desc = "Enable " ++ name ++ " extension",
8396 .deps = if (std.mem.eql(u8, name, "v1_6"))
......@@ -94,7 +107,7 @@ const spirv_extra_features = blk: {
94107 &.{"v1_0"}
95108 else
96109 &.{},
97 };
110 }};
98111 }
99112
100113 break :blk features;
......@@ -1494,7 +1507,7 @@ const targets = [_]ArchTarget{
14941507 .td_name = "SPIRV",
14951508 },
14961509 .branch_quota = 2000,
1497 .extra_features = &spirv_extra_features,
1510 .extra_features = spirv_extra_features,
14981511 .extra_cpus = &.{
14991512 .{
15001513 .llvm_name = null,