| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613 |
- const char* ExtensionToString(Extension extension) {
- switch (extension) {
- case Extension::kSPV_AMD_gcn_shader:
- return "SPV_AMD_gcn_shader";
- case Extension::kSPV_AMD_gpu_shader_half_float:
- return "SPV_AMD_gpu_shader_half_float";
- case Extension::kSPV_AMD_gpu_shader_half_float_fetch:
- return "SPV_AMD_gpu_shader_half_float_fetch";
- case Extension::kSPV_AMD_gpu_shader_int16:
- return "SPV_AMD_gpu_shader_int16";
- case Extension::kSPV_AMD_shader_ballot:
- return "SPV_AMD_shader_ballot";
- case Extension::kSPV_AMD_shader_explicit_vertex_parameter:
- return "SPV_AMD_shader_explicit_vertex_parameter";
- case Extension::kSPV_AMD_shader_fragment_mask:
- return "SPV_AMD_shader_fragment_mask";
- case Extension::kSPV_AMD_shader_image_load_store_lod:
- return "SPV_AMD_shader_image_load_store_lod";
- case Extension::kSPV_AMD_shader_trinary_minmax:
- return "SPV_AMD_shader_trinary_minmax";
- case Extension::kSPV_AMD_texture_gather_bias_lod:
- return "SPV_AMD_texture_gather_bias_lod";
- case Extension::kSPV_EXT_demote_to_helper_invocation:
- return "SPV_EXT_demote_to_helper_invocation";
- case Extension::kSPV_EXT_descriptor_indexing:
- return "SPV_EXT_descriptor_indexing";
- case Extension::kSPV_EXT_fragment_fully_covered:
- return "SPV_EXT_fragment_fully_covered";
- case Extension::kSPV_EXT_fragment_invocation_density:
- return "SPV_EXT_fragment_invocation_density";
- case Extension::kSPV_EXT_fragment_shader_interlock:
- return "SPV_EXT_fragment_shader_interlock";
- case Extension::kSPV_EXT_physical_storage_buffer:
- return "SPV_EXT_physical_storage_buffer";
- case Extension::kSPV_EXT_shader_atomic_float16_add:
- return "SPV_EXT_shader_atomic_float16_add";
- case Extension::kSPV_EXT_shader_atomic_float_add:
- return "SPV_EXT_shader_atomic_float_add";
- case Extension::kSPV_EXT_shader_atomic_float_min_max:
- return "SPV_EXT_shader_atomic_float_min_max";
- case Extension::kSPV_EXT_shader_image_int64:
- return "SPV_EXT_shader_image_int64";
- case Extension::kSPV_EXT_shader_stencil_export:
- return "SPV_EXT_shader_stencil_export";
- case Extension::kSPV_EXT_shader_viewport_index_layer:
- return "SPV_EXT_shader_viewport_index_layer";
- case Extension::kSPV_GOOGLE_decorate_string:
- return "SPV_GOOGLE_decorate_string";
- case Extension::kSPV_GOOGLE_hlsl_functionality1:
- return "SPV_GOOGLE_hlsl_functionality1";
- case Extension::kSPV_GOOGLE_user_type:
- return "SPV_GOOGLE_user_type";
- case Extension::kSPV_INTEL_arbitrary_precision_fixed_point:
- return "SPV_INTEL_arbitrary_precision_fixed_point";
- case Extension::kSPV_INTEL_arbitrary_precision_floating_point:
- return "SPV_INTEL_arbitrary_precision_floating_point";
- case Extension::kSPV_INTEL_arbitrary_precision_integers:
- return "SPV_INTEL_arbitrary_precision_integers";
- case Extension::kSPV_INTEL_blocking_pipes:
- return "SPV_INTEL_blocking_pipes";
- case Extension::kSPV_INTEL_debug_module:
- return "SPV_INTEL_debug_module";
- case Extension::kSPV_INTEL_device_side_avc_motion_estimation:
- return "SPV_INTEL_device_side_avc_motion_estimation";
- case Extension::kSPV_INTEL_float_controls2:
- return "SPV_INTEL_float_controls2";
- case Extension::kSPV_INTEL_fp_fast_math_mode:
- return "SPV_INTEL_fp_fast_math_mode";
- case Extension::kSPV_INTEL_fpga_buffer_location:
- return "SPV_INTEL_fpga_buffer_location";
- case Extension::kSPV_INTEL_fpga_cluster_attributes:
- return "SPV_INTEL_fpga_cluster_attributes";
- case Extension::kSPV_INTEL_fpga_loop_controls:
- return "SPV_INTEL_fpga_loop_controls";
- case Extension::kSPV_INTEL_fpga_memory_accesses:
- return "SPV_INTEL_fpga_memory_accesses";
- case Extension::kSPV_INTEL_fpga_memory_attributes:
- return "SPV_INTEL_fpga_memory_attributes";
- case Extension::kSPV_INTEL_fpga_reg:
- return "SPV_INTEL_fpga_reg";
- case Extension::kSPV_INTEL_function_pointers:
- return "SPV_INTEL_function_pointers";
- case Extension::kSPV_INTEL_inline_assembly:
- return "SPV_INTEL_inline_assembly";
- case Extension::kSPV_INTEL_io_pipes:
- return "SPV_INTEL_io_pipes";
- case Extension::kSPV_INTEL_kernel_attributes:
- return "SPV_INTEL_kernel_attributes";
- case Extension::kSPV_INTEL_long_constant_composite:
- return "SPV_INTEL_long_constant_composite";
- case Extension::kSPV_INTEL_loop_fuse:
- return "SPV_INTEL_loop_fuse";
- case Extension::kSPV_INTEL_media_block_io:
- return "SPV_INTEL_media_block_io";
- case Extension::kSPV_INTEL_optnone:
- return "SPV_INTEL_optnone";
- case Extension::kSPV_INTEL_shader_integer_functions2:
- return "SPV_INTEL_shader_integer_functions2";
- case Extension::kSPV_INTEL_subgroups:
- return "SPV_INTEL_subgroups";
- case Extension::kSPV_INTEL_unstructured_loop_controls:
- return "SPV_INTEL_unstructured_loop_controls";
- case Extension::kSPV_INTEL_usm_storage_classes:
- return "SPV_INTEL_usm_storage_classes";
- case Extension::kSPV_INTEL_variable_length_array:
- return "SPV_INTEL_variable_length_array";
- case Extension::kSPV_INTEL_vector_compute:
- return "SPV_INTEL_vector_compute";
- case Extension::kSPV_KHR_16bit_storage:
- return "SPV_KHR_16bit_storage";
- case Extension::kSPV_KHR_8bit_storage:
- return "SPV_KHR_8bit_storage";
- case Extension::kSPV_KHR_bit_instructions:
- return "SPV_KHR_bit_instructions";
- case Extension::kSPV_KHR_device_group:
- return "SPV_KHR_device_group";
- case Extension::kSPV_KHR_expect_assume:
- return "SPV_KHR_expect_assume";
- case Extension::kSPV_KHR_float_controls:
- return "SPV_KHR_float_controls";
- case Extension::kSPV_KHR_fragment_shading_rate:
- return "SPV_KHR_fragment_shading_rate";
- case Extension::kSPV_KHR_integer_dot_product:
- return "SPV_KHR_integer_dot_product";
- case Extension::kSPV_KHR_linkonce_odr:
- return "SPV_KHR_linkonce_odr";
- case Extension::kSPV_KHR_multiview:
- return "SPV_KHR_multiview";
- case Extension::kSPV_KHR_no_integer_wrap_decoration:
- return "SPV_KHR_no_integer_wrap_decoration";
- case Extension::kSPV_KHR_non_semantic_info:
- return "SPV_KHR_non_semantic_info";
- case Extension::kSPV_KHR_physical_storage_buffer:
- return "SPV_KHR_physical_storage_buffer";
- case Extension::kSPV_KHR_post_depth_coverage:
- return "SPV_KHR_post_depth_coverage";
- case Extension::kSPV_KHR_ray_query:
- return "SPV_KHR_ray_query";
- case Extension::kSPV_KHR_ray_tracing:
- return "SPV_KHR_ray_tracing";
- case Extension::kSPV_KHR_shader_atomic_counter_ops:
- return "SPV_KHR_shader_atomic_counter_ops";
- case Extension::kSPV_KHR_shader_ballot:
- return "SPV_KHR_shader_ballot";
- case Extension::kSPV_KHR_shader_clock:
- return "SPV_KHR_shader_clock";
- case Extension::kSPV_KHR_shader_draw_parameters:
- return "SPV_KHR_shader_draw_parameters";
- case Extension::kSPV_KHR_storage_buffer_storage_class:
- return "SPV_KHR_storage_buffer_storage_class";
- case Extension::kSPV_KHR_subgroup_uniform_control_flow:
- return "SPV_KHR_subgroup_uniform_control_flow";
- case Extension::kSPV_KHR_subgroup_vote:
- return "SPV_KHR_subgroup_vote";
- case Extension::kSPV_KHR_terminate_invocation:
- return "SPV_KHR_terminate_invocation";
- case Extension::kSPV_KHR_variable_pointers:
- return "SPV_KHR_variable_pointers";
- case Extension::kSPV_KHR_vulkan_memory_model:
- return "SPV_KHR_vulkan_memory_model";
- case Extension::kSPV_KHR_workgroup_memory_explicit_layout:
- return "SPV_KHR_workgroup_memory_explicit_layout";
- case Extension::kSPV_NVX_multiview_per_view_attributes:
- return "SPV_NVX_multiview_per_view_attributes";
- case Extension::kSPV_NV_bindless_texture:
- return "SPV_NV_bindless_texture";
- case Extension::kSPV_NV_compute_shader_derivatives:
- return "SPV_NV_compute_shader_derivatives";
- case Extension::kSPV_NV_cooperative_matrix:
- return "SPV_NV_cooperative_matrix";
- case Extension::kSPV_NV_fragment_shader_barycentric:
- return "SPV_NV_fragment_shader_barycentric";
- case Extension::kSPV_NV_geometry_shader_passthrough:
- return "SPV_NV_geometry_shader_passthrough";
- case Extension::kSPV_NV_mesh_shader:
- return "SPV_NV_mesh_shader";
- case Extension::kSPV_NV_ray_tracing:
- return "SPV_NV_ray_tracing";
- case Extension::kSPV_NV_ray_tracing_motion_blur:
- return "SPV_NV_ray_tracing_motion_blur";
- case Extension::kSPV_NV_sample_mask_override_coverage:
- return "SPV_NV_sample_mask_override_coverage";
- case Extension::kSPV_NV_shader_image_footprint:
- return "SPV_NV_shader_image_footprint";
- case Extension::kSPV_NV_shader_sm_builtins:
- return "SPV_NV_shader_sm_builtins";
- case Extension::kSPV_NV_shader_subgroup_partitioned:
- return "SPV_NV_shader_subgroup_partitioned";
- case Extension::kSPV_NV_shading_rate:
- return "SPV_NV_shading_rate";
- case Extension::kSPV_NV_stereo_view_rendering:
- return "SPV_NV_stereo_view_rendering";
- case Extension::kSPV_NV_viewport_array2:
- return "SPV_NV_viewport_array2";
- case Extension::kSPV_VALIDATOR_ignore_type_decl_unique:
- return "SPV_VALIDATOR_ignore_type_decl_unique";
- }
- return "";
- }
- bool GetExtensionFromString(const char* str, Extension* extension) {
- static const char* known_ext_strs[] = { "SPV_AMD_gcn_shader", "SPV_AMD_gpu_shader_half_float", "SPV_AMD_gpu_shader_half_float_fetch", "SPV_AMD_gpu_shader_int16", "SPV_AMD_shader_ballot", "SPV_AMD_shader_explicit_vertex_parameter", "SPV_AMD_shader_fragment_mask", "SPV_AMD_shader_image_load_store_lod", "SPV_AMD_shader_trinary_minmax", "SPV_AMD_texture_gather_bias_lod", "SPV_EXT_demote_to_helper_invocation", "SPV_EXT_descriptor_indexing", "SPV_EXT_fragment_fully_covered", "SPV_EXT_fragment_invocation_density", "SPV_EXT_fragment_shader_interlock", "SPV_EXT_physical_storage_buffer", "SPV_EXT_shader_atomic_float16_add", "SPV_EXT_shader_atomic_float_add", "SPV_EXT_shader_atomic_float_min_max", "SPV_EXT_shader_image_int64", "SPV_EXT_shader_stencil_export", "SPV_EXT_shader_viewport_index_layer", "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1", "SPV_GOOGLE_user_type", "SPV_INTEL_arbitrary_precision_fixed_point", "SPV_INTEL_arbitrary_precision_floating_point", "SPV_INTEL_arbitrary_precision_integers", "SPV_INTEL_blocking_pipes", "SPV_INTEL_debug_module", "SPV_INTEL_device_side_avc_motion_estimation", "SPV_INTEL_float_controls2", "SPV_INTEL_fp_fast_math_mode", "SPV_INTEL_fpga_buffer_location", "SPV_INTEL_fpga_cluster_attributes", "SPV_INTEL_fpga_loop_controls", "SPV_INTEL_fpga_memory_accesses", "SPV_INTEL_fpga_memory_attributes", "SPV_INTEL_fpga_reg", "SPV_INTEL_function_pointers", "SPV_INTEL_inline_assembly", "SPV_INTEL_io_pipes", "SPV_INTEL_kernel_attributes", "SPV_INTEL_long_constant_composite", "SPV_INTEL_loop_fuse", "SPV_INTEL_media_block_io", "SPV_INTEL_optnone", "SPV_INTEL_shader_integer_functions2", "SPV_INTEL_subgroups", "SPV_INTEL_unstructured_loop_controls", "SPV_INTEL_usm_storage_classes", "SPV_INTEL_variable_length_array", "SPV_INTEL_vector_compute", "SPV_KHR_16bit_storage", "SPV_KHR_8bit_storage", "SPV_KHR_bit_instructions", "SPV_KHR_device_group", "SPV_KHR_expect_assume", "SPV_KHR_float_controls", "SPV_KHR_fragment_shading_rate", "SPV_KHR_integer_dot_product", "SPV_KHR_linkonce_odr", "SPV_KHR_multiview", "SPV_KHR_no_integer_wrap_decoration", "SPV_KHR_non_semantic_info", "SPV_KHR_physical_storage_buffer", "SPV_KHR_post_depth_coverage", "SPV_KHR_ray_query", "SPV_KHR_ray_tracing", "SPV_KHR_shader_atomic_counter_ops", "SPV_KHR_shader_ballot", "SPV_KHR_shader_clock", "SPV_KHR_shader_draw_parameters", "SPV_KHR_storage_buffer_storage_class", "SPV_KHR_subgroup_uniform_control_flow", "SPV_KHR_subgroup_vote", "SPV_KHR_terminate_invocation", "SPV_KHR_variable_pointers", "SPV_KHR_vulkan_memory_model", "SPV_KHR_workgroup_memory_explicit_layout", "SPV_NVX_multiview_per_view_attributes", "SPV_NV_bindless_texture", "SPV_NV_compute_shader_derivatives", "SPV_NV_cooperative_matrix", "SPV_NV_fragment_shader_barycentric", "SPV_NV_geometry_shader_passthrough", "SPV_NV_mesh_shader", "SPV_NV_ray_tracing", "SPV_NV_ray_tracing_motion_blur", "SPV_NV_sample_mask_override_coverage", "SPV_NV_shader_image_footprint", "SPV_NV_shader_sm_builtins", "SPV_NV_shader_subgroup_partitioned", "SPV_NV_shading_rate", "SPV_NV_stereo_view_rendering", "SPV_NV_viewport_array2", "SPV_VALIDATOR_ignore_type_decl_unique" };
- static const Extension known_ext_ids[] = { Extension::kSPV_AMD_gcn_shader, Extension::kSPV_AMD_gpu_shader_half_float, Extension::kSPV_AMD_gpu_shader_half_float_fetch, Extension::kSPV_AMD_gpu_shader_int16, Extension::kSPV_AMD_shader_ballot, Extension::kSPV_AMD_shader_explicit_vertex_parameter, Extension::kSPV_AMD_shader_fragment_mask, Extension::kSPV_AMD_shader_image_load_store_lod, Extension::kSPV_AMD_shader_trinary_minmax, Extension::kSPV_AMD_texture_gather_bias_lod, Extension::kSPV_EXT_demote_to_helper_invocation, Extension::kSPV_EXT_descriptor_indexing, Extension::kSPV_EXT_fragment_fully_covered, Extension::kSPV_EXT_fragment_invocation_density, Extension::kSPV_EXT_fragment_shader_interlock, Extension::kSPV_EXT_physical_storage_buffer, Extension::kSPV_EXT_shader_atomic_float16_add, Extension::kSPV_EXT_shader_atomic_float_add, Extension::kSPV_EXT_shader_atomic_float_min_max, Extension::kSPV_EXT_shader_image_int64, Extension::kSPV_EXT_shader_stencil_export, Extension::kSPV_EXT_shader_viewport_index_layer, Extension::kSPV_GOOGLE_decorate_string, Extension::kSPV_GOOGLE_hlsl_functionality1, Extension::kSPV_GOOGLE_user_type, Extension::kSPV_INTEL_arbitrary_precision_fixed_point, Extension::kSPV_INTEL_arbitrary_precision_floating_point, Extension::kSPV_INTEL_arbitrary_precision_integers, Extension::kSPV_INTEL_blocking_pipes, Extension::kSPV_INTEL_debug_module, Extension::kSPV_INTEL_device_side_avc_motion_estimation, Extension::kSPV_INTEL_float_controls2, Extension::kSPV_INTEL_fp_fast_math_mode, Extension::kSPV_INTEL_fpga_buffer_location, Extension::kSPV_INTEL_fpga_cluster_attributes, Extension::kSPV_INTEL_fpga_loop_controls, Extension::kSPV_INTEL_fpga_memory_accesses, Extension::kSPV_INTEL_fpga_memory_attributes, Extension::kSPV_INTEL_fpga_reg, Extension::kSPV_INTEL_function_pointers, Extension::kSPV_INTEL_inline_assembly, Extension::kSPV_INTEL_io_pipes, Extension::kSPV_INTEL_kernel_attributes, Extension::kSPV_INTEL_long_constant_composite, Extension::kSPV_INTEL_loop_fuse, Extension::kSPV_INTEL_media_block_io, Extension::kSPV_INTEL_optnone, Extension::kSPV_INTEL_shader_integer_functions2, Extension::kSPV_INTEL_subgroups, Extension::kSPV_INTEL_unstructured_loop_controls, Extension::kSPV_INTEL_usm_storage_classes, Extension::kSPV_INTEL_variable_length_array, Extension::kSPV_INTEL_vector_compute, Extension::kSPV_KHR_16bit_storage, Extension::kSPV_KHR_8bit_storage, Extension::kSPV_KHR_bit_instructions, Extension::kSPV_KHR_device_group, Extension::kSPV_KHR_expect_assume, Extension::kSPV_KHR_float_controls, Extension::kSPV_KHR_fragment_shading_rate, Extension::kSPV_KHR_integer_dot_product, Extension::kSPV_KHR_linkonce_odr, Extension::kSPV_KHR_multiview, Extension::kSPV_KHR_no_integer_wrap_decoration, Extension::kSPV_KHR_non_semantic_info, Extension::kSPV_KHR_physical_storage_buffer, Extension::kSPV_KHR_post_depth_coverage, Extension::kSPV_KHR_ray_query, Extension::kSPV_KHR_ray_tracing, Extension::kSPV_KHR_shader_atomic_counter_ops, Extension::kSPV_KHR_shader_ballot, Extension::kSPV_KHR_shader_clock, Extension::kSPV_KHR_shader_draw_parameters, Extension::kSPV_KHR_storage_buffer_storage_class, Extension::kSPV_KHR_subgroup_uniform_control_flow, Extension::kSPV_KHR_subgroup_vote, Extension::kSPV_KHR_terminate_invocation, Extension::kSPV_KHR_variable_pointers, Extension::kSPV_KHR_vulkan_memory_model, Extension::kSPV_KHR_workgroup_memory_explicit_layout, Extension::kSPV_NVX_multiview_per_view_attributes, Extension::kSPV_NV_bindless_texture, Extension::kSPV_NV_compute_shader_derivatives, Extension::kSPV_NV_cooperative_matrix, Extension::kSPV_NV_fragment_shader_barycentric, Extension::kSPV_NV_geometry_shader_passthrough, Extension::kSPV_NV_mesh_shader, Extension::kSPV_NV_ray_tracing, Extension::kSPV_NV_ray_tracing_motion_blur, Extension::kSPV_NV_sample_mask_override_coverage, Extension::kSPV_NV_shader_image_footprint, Extension::kSPV_NV_shader_sm_builtins, Extension::kSPV_NV_shader_subgroup_partitioned, Extension::kSPV_NV_shading_rate, Extension::kSPV_NV_stereo_view_rendering, Extension::kSPV_NV_viewport_array2, Extension::kSPV_VALIDATOR_ignore_type_decl_unique };
- const auto b = std::begin(known_ext_strs);
- const auto e = std::end(known_ext_strs);
- const auto found = std::equal_range(
- b, e, str, [](const char* str1, const char* str2) {
- return std::strcmp(str1, str2) < 0;
- });
- if (found.first == e || found.first == found.second) return false;
- *extension = known_ext_ids[found.first - b];
- return true;
- }
-
- const char* CapabilityToString(SpvCapability capability) {
- switch (capability) {
- case SpvCapabilityMatrix:
- return "Matrix";
- case SpvCapabilityShader:
- return "Shader";
- case SpvCapabilityGeometry:
- return "Geometry";
- case SpvCapabilityTessellation:
- return "Tessellation";
- case SpvCapabilityAddresses:
- return "Addresses";
- case SpvCapabilityLinkage:
- return "Linkage";
- case SpvCapabilityKernel:
- return "Kernel";
- case SpvCapabilityVector16:
- return "Vector16";
- case SpvCapabilityFloat16Buffer:
- return "Float16Buffer";
- case SpvCapabilityFloat16:
- return "Float16";
- case SpvCapabilityFloat64:
- return "Float64";
- case SpvCapabilityInt64:
- return "Int64";
- case SpvCapabilityInt64Atomics:
- return "Int64Atomics";
- case SpvCapabilityImageBasic:
- return "ImageBasic";
- case SpvCapabilityImageReadWrite:
- return "ImageReadWrite";
- case SpvCapabilityImageMipmap:
- return "ImageMipmap";
- case SpvCapabilityPipes:
- return "Pipes";
- case SpvCapabilityGroups:
- return "Groups";
- case SpvCapabilityDeviceEnqueue:
- return "DeviceEnqueue";
- case SpvCapabilityLiteralSampler:
- return "LiteralSampler";
- case SpvCapabilityAtomicStorage:
- return "AtomicStorage";
- case SpvCapabilityInt16:
- return "Int16";
- case SpvCapabilityTessellationPointSize:
- return "TessellationPointSize";
- case SpvCapabilityGeometryPointSize:
- return "GeometryPointSize";
- case SpvCapabilityImageGatherExtended:
- return "ImageGatherExtended";
- case SpvCapabilityStorageImageMultisample:
- return "StorageImageMultisample";
- case SpvCapabilityUniformBufferArrayDynamicIndexing:
- return "UniformBufferArrayDynamicIndexing";
- case SpvCapabilitySampledImageArrayDynamicIndexing:
- return "SampledImageArrayDynamicIndexing";
- case SpvCapabilityStorageBufferArrayDynamicIndexing:
- return "StorageBufferArrayDynamicIndexing";
- case SpvCapabilityStorageImageArrayDynamicIndexing:
- return "StorageImageArrayDynamicIndexing";
- case SpvCapabilityClipDistance:
- return "ClipDistance";
- case SpvCapabilityCullDistance:
- return "CullDistance";
- case SpvCapabilityImageCubeArray:
- return "ImageCubeArray";
- case SpvCapabilitySampleRateShading:
- return "SampleRateShading";
- case SpvCapabilityImageRect:
- return "ImageRect";
- case SpvCapabilitySampledRect:
- return "SampledRect";
- case SpvCapabilityGenericPointer:
- return "GenericPointer";
- case SpvCapabilityInt8:
- return "Int8";
- case SpvCapabilityInputAttachment:
- return "InputAttachment";
- case SpvCapabilitySparseResidency:
- return "SparseResidency";
- case SpvCapabilityMinLod:
- return "MinLod";
- case SpvCapabilitySampled1D:
- return "Sampled1D";
- case SpvCapabilityImage1D:
- return "Image1D";
- case SpvCapabilitySampledCubeArray:
- return "SampledCubeArray";
- case SpvCapabilitySampledBuffer:
- return "SampledBuffer";
- case SpvCapabilityImageBuffer:
- return "ImageBuffer";
- case SpvCapabilityImageMSArray:
- return "ImageMSArray";
- case SpvCapabilityStorageImageExtendedFormats:
- return "StorageImageExtendedFormats";
- case SpvCapabilityImageQuery:
- return "ImageQuery";
- case SpvCapabilityDerivativeControl:
- return "DerivativeControl";
- case SpvCapabilityInterpolationFunction:
- return "InterpolationFunction";
- case SpvCapabilityTransformFeedback:
- return "TransformFeedback";
- case SpvCapabilityGeometryStreams:
- return "GeometryStreams";
- case SpvCapabilityStorageImageReadWithoutFormat:
- return "StorageImageReadWithoutFormat";
- case SpvCapabilityStorageImageWriteWithoutFormat:
- return "StorageImageWriteWithoutFormat";
- case SpvCapabilityMultiViewport:
- return "MultiViewport";
- case SpvCapabilitySubgroupDispatch:
- return "SubgroupDispatch";
- case SpvCapabilityNamedBarrier:
- return "NamedBarrier";
- case SpvCapabilityPipeStorage:
- return "PipeStorage";
- case SpvCapabilityGroupNonUniform:
- return "GroupNonUniform";
- case SpvCapabilityGroupNonUniformVote:
- return "GroupNonUniformVote";
- case SpvCapabilityGroupNonUniformArithmetic:
- return "GroupNonUniformArithmetic";
- case SpvCapabilityGroupNonUniformBallot:
- return "GroupNonUniformBallot";
- case SpvCapabilityGroupNonUniformShuffle:
- return "GroupNonUniformShuffle";
- case SpvCapabilityGroupNonUniformShuffleRelative:
- return "GroupNonUniformShuffleRelative";
- case SpvCapabilityGroupNonUniformClustered:
- return "GroupNonUniformClustered";
- case SpvCapabilityGroupNonUniformQuad:
- return "GroupNonUniformQuad";
- case SpvCapabilityShaderLayer:
- return "ShaderLayer";
- case SpvCapabilityShaderViewportIndex:
- return "ShaderViewportIndex";
- case SpvCapabilityFragmentShadingRateKHR:
- return "FragmentShadingRateKHR";
- case SpvCapabilitySubgroupBallotKHR:
- return "SubgroupBallotKHR";
- case SpvCapabilityDrawParameters:
- return "DrawParameters";
- case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR:
- return "WorkgroupMemoryExplicitLayoutKHR";
- case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR:
- return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
- case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR:
- return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
- case SpvCapabilitySubgroupVoteKHR:
- return "SubgroupVoteKHR";
- case SpvCapabilityStorageBuffer16BitAccess:
- return "StorageBuffer16BitAccess";
- case SpvCapabilityUniformAndStorageBuffer16BitAccess:
- return "UniformAndStorageBuffer16BitAccess";
- case SpvCapabilityStoragePushConstant16:
- return "StoragePushConstant16";
- case SpvCapabilityStorageInputOutput16:
- return "StorageInputOutput16";
- case SpvCapabilityDeviceGroup:
- return "DeviceGroup";
- case SpvCapabilityMultiView:
- return "MultiView";
- case SpvCapabilityVariablePointersStorageBuffer:
- return "VariablePointersStorageBuffer";
- case SpvCapabilityVariablePointers:
- return "VariablePointers";
- case SpvCapabilityAtomicStorageOps:
- return "AtomicStorageOps";
- case SpvCapabilitySampleMaskPostDepthCoverage:
- return "SampleMaskPostDepthCoverage";
- case SpvCapabilityStorageBuffer8BitAccess:
- return "StorageBuffer8BitAccess";
- case SpvCapabilityUniformAndStorageBuffer8BitAccess:
- return "UniformAndStorageBuffer8BitAccess";
- case SpvCapabilityStoragePushConstant8:
- return "StoragePushConstant8";
- case SpvCapabilityDenormPreserve:
- return "DenormPreserve";
- case SpvCapabilityDenormFlushToZero:
- return "DenormFlushToZero";
- case SpvCapabilitySignedZeroInfNanPreserve:
- return "SignedZeroInfNanPreserve";
- case SpvCapabilityRoundingModeRTE:
- return "RoundingModeRTE";
- case SpvCapabilityRoundingModeRTZ:
- return "RoundingModeRTZ";
- case SpvCapabilityRayQueryProvisionalKHR:
- return "RayQueryProvisionalKHR";
- case SpvCapabilityRayQueryKHR:
- return "RayQueryKHR";
- case SpvCapabilityRayTraversalPrimitiveCullingKHR:
- return "RayTraversalPrimitiveCullingKHR";
- case SpvCapabilityRayTracingKHR:
- return "RayTracingKHR";
- case SpvCapabilityFloat16ImageAMD:
- return "Float16ImageAMD";
- case SpvCapabilityImageGatherBiasLodAMD:
- return "ImageGatherBiasLodAMD";
- case SpvCapabilityFragmentMaskAMD:
- return "FragmentMaskAMD";
- case SpvCapabilityStencilExportEXT:
- return "StencilExportEXT";
- case SpvCapabilityImageReadWriteLodAMD:
- return "ImageReadWriteLodAMD";
- case SpvCapabilityInt64ImageEXT:
- return "Int64ImageEXT";
- case SpvCapabilityShaderClockKHR:
- return "ShaderClockKHR";
- case SpvCapabilitySampleMaskOverrideCoverageNV:
- return "SampleMaskOverrideCoverageNV";
- case SpvCapabilityGeometryShaderPassthroughNV:
- return "GeometryShaderPassthroughNV";
- case SpvCapabilityShaderViewportIndexLayerEXT:
- return "ShaderViewportIndexLayerEXT";
- case SpvCapabilityShaderViewportMaskNV:
- return "ShaderViewportMaskNV";
- case SpvCapabilityShaderStereoViewNV:
- return "ShaderStereoViewNV";
- case SpvCapabilityPerViewAttributesNV:
- return "PerViewAttributesNV";
- case SpvCapabilityFragmentFullyCoveredEXT:
- return "FragmentFullyCoveredEXT";
- case SpvCapabilityMeshShadingNV:
- return "MeshShadingNV";
- case SpvCapabilityImageFootprintNV:
- return "ImageFootprintNV";
- case SpvCapabilityFragmentBarycentricNV:
- return "FragmentBarycentricNV";
- case SpvCapabilityComputeDerivativeGroupQuadsNV:
- return "ComputeDerivativeGroupQuadsNV";
- case SpvCapabilityFragmentDensityEXT:
- return "FragmentDensityEXT";
- case SpvCapabilityGroupNonUniformPartitionedNV:
- return "GroupNonUniformPartitionedNV";
- case SpvCapabilityShaderNonUniform:
- return "ShaderNonUniform";
- case SpvCapabilityRuntimeDescriptorArray:
- return "RuntimeDescriptorArray";
- case SpvCapabilityInputAttachmentArrayDynamicIndexing:
- return "InputAttachmentArrayDynamicIndexing";
- case SpvCapabilityUniformTexelBufferArrayDynamicIndexing:
- return "UniformTexelBufferArrayDynamicIndexing";
- case SpvCapabilityStorageTexelBufferArrayDynamicIndexing:
- return "StorageTexelBufferArrayDynamicIndexing";
- case SpvCapabilityUniformBufferArrayNonUniformIndexing:
- return "UniformBufferArrayNonUniformIndexing";
- case SpvCapabilitySampledImageArrayNonUniformIndexing:
- return "SampledImageArrayNonUniformIndexing";
- case SpvCapabilityStorageBufferArrayNonUniformIndexing:
- return "StorageBufferArrayNonUniformIndexing";
- case SpvCapabilityStorageImageArrayNonUniformIndexing:
- return "StorageImageArrayNonUniformIndexing";
- case SpvCapabilityInputAttachmentArrayNonUniformIndexing:
- return "InputAttachmentArrayNonUniformIndexing";
- case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing:
- return "UniformTexelBufferArrayNonUniformIndexing";
- case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing:
- return "StorageTexelBufferArrayNonUniformIndexing";
- case SpvCapabilityRayTracingNV:
- return "RayTracingNV";
- case SpvCapabilityRayTracingMotionBlurNV:
- return "RayTracingMotionBlurNV";
- case SpvCapabilityVulkanMemoryModel:
- return "VulkanMemoryModel";
- case SpvCapabilityVulkanMemoryModelDeviceScope:
- return "VulkanMemoryModelDeviceScope";
- case SpvCapabilityPhysicalStorageBufferAddresses:
- return "PhysicalStorageBufferAddresses";
- case SpvCapabilityComputeDerivativeGroupLinearNV:
- return "ComputeDerivativeGroupLinearNV";
- case SpvCapabilityRayTracingProvisionalKHR:
- return "RayTracingProvisionalKHR";
- case SpvCapabilityCooperativeMatrixNV:
- return "CooperativeMatrixNV";
- case SpvCapabilityFragmentShaderSampleInterlockEXT:
- return "FragmentShaderSampleInterlockEXT";
- case SpvCapabilityFragmentShaderShadingRateInterlockEXT:
- return "FragmentShaderShadingRateInterlockEXT";
- case SpvCapabilityShaderSMBuiltinsNV:
- return "ShaderSMBuiltinsNV";
- case SpvCapabilityFragmentShaderPixelInterlockEXT:
- return "FragmentShaderPixelInterlockEXT";
- case SpvCapabilityDemoteToHelperInvocationEXT:
- return "DemoteToHelperInvocationEXT";
- case SpvCapabilityBindlessTextureNV:
- return "BindlessTextureNV";
- case SpvCapabilitySubgroupShuffleINTEL:
- return "SubgroupShuffleINTEL";
- case SpvCapabilitySubgroupBufferBlockIOINTEL:
- return "SubgroupBufferBlockIOINTEL";
- case SpvCapabilitySubgroupImageBlockIOINTEL:
- return "SubgroupImageBlockIOINTEL";
- case SpvCapabilitySubgroupImageMediaBlockIOINTEL:
- return "SubgroupImageMediaBlockIOINTEL";
- case SpvCapabilityRoundToInfinityINTEL:
- return "RoundToInfinityINTEL";
- case SpvCapabilityFloatingPointModeINTEL:
- return "FloatingPointModeINTEL";
- case SpvCapabilityIntegerFunctions2INTEL:
- return "IntegerFunctions2INTEL";
- case SpvCapabilityFunctionPointersINTEL:
- return "FunctionPointersINTEL";
- case SpvCapabilityIndirectReferencesINTEL:
- return "IndirectReferencesINTEL";
- case SpvCapabilityAsmINTEL:
- return "AsmINTEL";
- case SpvCapabilityAtomicFloat32MinMaxEXT:
- return "AtomicFloat32MinMaxEXT";
- case SpvCapabilityAtomicFloat64MinMaxEXT:
- return "AtomicFloat64MinMaxEXT";
- case SpvCapabilityAtomicFloat16MinMaxEXT:
- return "AtomicFloat16MinMaxEXT";
- case SpvCapabilityVectorComputeINTEL:
- return "VectorComputeINTEL";
- case SpvCapabilityVectorAnyINTEL:
- return "VectorAnyINTEL";
- case SpvCapabilityExpectAssumeKHR:
- return "ExpectAssumeKHR";
- case SpvCapabilitySubgroupAvcMotionEstimationINTEL:
- return "SubgroupAvcMotionEstimationINTEL";
- case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL:
- return "SubgroupAvcMotionEstimationIntraINTEL";
- case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL:
- return "SubgroupAvcMotionEstimationChromaINTEL";
- case SpvCapabilityVariableLengthArrayINTEL:
- return "VariableLengthArrayINTEL";
- case SpvCapabilityFunctionFloatControlINTEL:
- return "FunctionFloatControlINTEL";
- case SpvCapabilityFPGAMemoryAttributesINTEL:
- return "FPGAMemoryAttributesINTEL";
- case SpvCapabilityFPFastMathModeINTEL:
- return "FPFastMathModeINTEL";
- case SpvCapabilityArbitraryPrecisionIntegersINTEL:
- return "ArbitraryPrecisionIntegersINTEL";
- case SpvCapabilityArbitraryPrecisionFloatingPointINTEL:
- return "ArbitraryPrecisionFloatingPointINTEL";
- case SpvCapabilityUnstructuredLoopControlsINTEL:
- return "UnstructuredLoopControlsINTEL";
- case SpvCapabilityFPGALoopControlsINTEL:
- return "FPGALoopControlsINTEL";
- case SpvCapabilityKernelAttributesINTEL:
- return "KernelAttributesINTEL";
- case SpvCapabilityFPGAKernelAttributesINTEL:
- return "FPGAKernelAttributesINTEL";
- case SpvCapabilityFPGAMemoryAccessesINTEL:
- return "FPGAMemoryAccessesINTEL";
- case SpvCapabilityFPGAClusterAttributesINTEL:
- return "FPGAClusterAttributesINTEL";
- case SpvCapabilityLoopFuseINTEL:
- return "LoopFuseINTEL";
- case SpvCapabilityFPGABufferLocationINTEL:
- return "FPGABufferLocationINTEL";
- case SpvCapabilityArbitraryPrecisionFixedPointINTEL:
- return "ArbitraryPrecisionFixedPointINTEL";
- case SpvCapabilityUSMStorageClassesINTEL:
- return "USMStorageClassesINTEL";
- case SpvCapabilityIOPipesINTEL:
- return "IOPipesINTEL";
- case SpvCapabilityBlockingPipesINTEL:
- return "BlockingPipesINTEL";
- case SpvCapabilityFPGARegINTEL:
- return "FPGARegINTEL";
- case SpvCapabilityDotProductInputAllKHR:
- return "DotProductInputAllKHR";
- case SpvCapabilityDotProductInput4x8BitKHR:
- return "DotProductInput4x8BitKHR";
- case SpvCapabilityDotProductInput4x8BitPackedKHR:
- return "DotProductInput4x8BitPackedKHR";
- case SpvCapabilityDotProductKHR:
- return "DotProductKHR";
- case SpvCapabilityBitInstructions:
- return "BitInstructions";
- case SpvCapabilityAtomicFloat32AddEXT:
- return "AtomicFloat32AddEXT";
- case SpvCapabilityAtomicFloat64AddEXT:
- return "AtomicFloat64AddEXT";
- case SpvCapabilityLongConstantCompositeINTEL:
- return "LongConstantCompositeINTEL";
- case SpvCapabilityOptNoneINTEL:
- return "OptNoneINTEL";
- case SpvCapabilityAtomicFloat16AddEXT:
- return "AtomicFloat16AddEXT";
- case SpvCapabilityDebugInfoModuleINTEL:
- return "DebugInfoModuleINTEL";
- case SpvCapabilityMax:
- assert(0 && "Attempting to convert SpvCapabilityMax to string");
- return "";
- }
- return "";
- }
|