mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Update SPIR-V headers and grammar
* Add an extension tracker to list which extensions/capabilities are supported by the debugger.
This commit is contained in:
@@ -0,0 +1,276 @@
|
||||
0 Matrix
|
||||
1 Shader
|
||||
2 Geometry
|
||||
3 Tessellation
|
||||
4 Addresses
|
||||
5 Linkage
|
||||
6 Kernel
|
||||
7 Vector16
|
||||
8 Float16Buffer
|
||||
9 Float16
|
||||
10 Float64
|
||||
11 Int64
|
||||
12 Int64Atomics
|
||||
13 ImageBasic
|
||||
14 ImageReadWrite
|
||||
15 ImageMipmap
|
||||
17 Pipes
|
||||
18 Groups
|
||||
19 DeviceEnqueue
|
||||
20 LiteralSampler
|
||||
21 AtomicStorage
|
||||
22 Int16
|
||||
23 TessellationPointSize
|
||||
24 GeometryPointSize
|
||||
25 ImageGatherExtended
|
||||
27 StorageImageMultisample
|
||||
28 UniformBufferArrayDynamicIndexing
|
||||
29 SampledImageArrayDynamicIndexing
|
||||
30 StorageBufferArrayDynamicIndexing
|
||||
31 StorageImageArrayDynamicIndexing
|
||||
32 ClipDistance
|
||||
33 CullDistance
|
||||
34 ImageCubeArray
|
||||
35 SampleRateShading
|
||||
36 ImageRect
|
||||
37 SampledRect
|
||||
38 GenericPointer
|
||||
39 Int8
|
||||
40 InputAttachment
|
||||
41 SparseResidency
|
||||
42 MinLod
|
||||
43 Sampled1D
|
||||
44 Image1D
|
||||
45 SampledCubeArray
|
||||
46 SampledBuffer
|
||||
47 ImageBuffer
|
||||
48 ImageMSArray
|
||||
49 StorageImageExtendedFormats
|
||||
50 ImageQuery
|
||||
51 DerivativeControl
|
||||
52 InterpolationFunction
|
||||
53 TransformFeedback
|
||||
54 GeometryStreams
|
||||
55 StorageImageReadWithoutFormat
|
||||
56 StorageImageWriteWithoutFormat
|
||||
57 MultiViewport
|
||||
58 SubgroupDispatch
|
||||
59 NamedBarrier
|
||||
60 PipeStorage
|
||||
61 GroupNonUniform
|
||||
62 GroupNonUniformVote
|
||||
63 GroupNonUniformArithmetic
|
||||
64 GroupNonUniformBallot
|
||||
65 GroupNonUniformShuffle
|
||||
66 GroupNonUniformShuffleRelative
|
||||
67 GroupNonUniformClustered
|
||||
68 GroupNonUniformQuad
|
||||
69 ShaderLayer
|
||||
70 ShaderViewportIndex
|
||||
71 UniformDecoration
|
||||
4165 CoreBuiltinsARM
|
||||
4166 TileImageColorReadAccessEXT
|
||||
4167 TileImageDepthReadAccessEXT
|
||||
4168 TileImageStencilReadAccessEXT
|
||||
4174 TensorsARM
|
||||
4175 StorageTensorArrayDynamicIndexingARM
|
||||
4176 StorageTensorArrayNonUniformIndexingARM
|
||||
4191 GraphARM
|
||||
4201 CooperativeMatrixLayoutsARM
|
||||
4212 Float8EXT
|
||||
4213 Float8CooperativeMatrixEXT
|
||||
4422 FragmentShadingRateKHR
|
||||
4423 SubgroupBallotKHR
|
||||
4427 DrawParameters
|
||||
4428 WorkgroupMemoryExplicitLayoutKHR
|
||||
4429 WorkgroupMemoryExplicitLayout8BitAccessKHR
|
||||
4430 WorkgroupMemoryExplicitLayout16BitAccessKHR
|
||||
4431 SubgroupVoteKHR
|
||||
4433 StorageBuffer16BitAccess
|
||||
4434 UniformAndStorageBuffer16BitAccess
|
||||
4435 StoragePushConstant16
|
||||
4436 StorageInputOutput16
|
||||
4437 DeviceGroup
|
||||
4439 MultiView
|
||||
4441 VariablePointersStorageBuffer
|
||||
4442 VariablePointers
|
||||
4445 AtomicStorageOps
|
||||
4447 SampleMaskPostDepthCoverage
|
||||
4448 StorageBuffer8BitAccess
|
||||
4449 UniformAndStorageBuffer8BitAccess
|
||||
4450 StoragePushConstant8
|
||||
4464 DenormPreserve
|
||||
4465 DenormFlushToZero
|
||||
4466 SignedZeroInfNanPreserve
|
||||
4467 RoundingModeRTE
|
||||
4468 RoundingModeRTZ
|
||||
4471 RayQueryProvisionalKHR
|
||||
4472 RayQueryKHR
|
||||
4473 UntypedPointersKHR
|
||||
4478 RayTraversalPrimitiveCullingKHR
|
||||
4479 RayTracingKHR
|
||||
4484 TextureSampleWeightedQCOM
|
||||
4485 TextureBoxFilterQCOM
|
||||
4486 TextureBlockMatchQCOM
|
||||
4495 TileShadingQCOM
|
||||
4496 CooperativeMatrixConversionQCOM
|
||||
4498 TextureBlockMatch2QCOM
|
||||
5008 Float16ImageAMD
|
||||
5009 ImageGatherBiasLodAMD
|
||||
5010 FragmentMaskAMD
|
||||
5013 StencilExportEXT
|
||||
5015 ImageReadWriteLodAMD
|
||||
5016 Int64ImageEXT
|
||||
5055 ShaderClockKHR
|
||||
5067 ShaderEnqueueAMDX
|
||||
5087 QuadControlKHR
|
||||
5112 Int4TypeINTEL
|
||||
5114 Int4CooperativeMatrixINTEL
|
||||
5116 BFloat16TypeKHR
|
||||
5117 BFloat16DotProductKHR
|
||||
5118 BFloat16CooperativeMatrixKHR
|
||||
5249 SampleMaskOverrideCoverageNV
|
||||
5251 GeometryShaderPassthroughNV
|
||||
5254 ShaderViewportIndexLayerEXT
|
||||
5255 ShaderViewportMaskNV
|
||||
5259 ShaderStereoViewNV
|
||||
5260 PerViewAttributesNV
|
||||
5265 FragmentFullyCoveredEXT
|
||||
5266 MeshShadingNV
|
||||
5282 ImageFootprintNV
|
||||
5283 MeshShadingEXT
|
||||
5284 FragmentBarycentricKHR
|
||||
5288 ComputeDerivativeGroupQuadsKHR
|
||||
5291 FragmentDensityEXT
|
||||
5297 GroupNonUniformPartitionedNV
|
||||
5301 ShaderNonUniform
|
||||
5302 RuntimeDescriptorArray
|
||||
5303 InputAttachmentArrayDynamicIndexing
|
||||
5304 UniformTexelBufferArrayDynamicIndexing
|
||||
5305 StorageTexelBufferArrayDynamicIndexing
|
||||
5306 UniformBufferArrayNonUniformIndexing
|
||||
5307 SampledImageArrayNonUniformIndexing
|
||||
5308 StorageBufferArrayNonUniformIndexing
|
||||
5309 StorageImageArrayNonUniformIndexing
|
||||
5310 InputAttachmentArrayNonUniformIndexing
|
||||
5311 UniformTexelBufferArrayNonUniformIndexing
|
||||
5312 StorageTexelBufferArrayNonUniformIndexing
|
||||
5336 RayTracingPositionFetchKHR
|
||||
5340 RayTracingNV
|
||||
5341 RayTracingMotionBlurNV
|
||||
5345 VulkanMemoryModel
|
||||
5346 VulkanMemoryModelDeviceScope
|
||||
5347 PhysicalStorageBufferAddresses
|
||||
5350 ComputeDerivativeGroupLinearKHR
|
||||
5353 RayTracingProvisionalKHR
|
||||
5357 CooperativeMatrixNV
|
||||
5363 FragmentShaderSampleInterlockEXT
|
||||
5372 FragmentShaderShadingRateInterlockEXT
|
||||
5373 ShaderSMBuiltinsNV
|
||||
5378 FragmentShaderPixelInterlockEXT
|
||||
5379 DemoteToHelperInvocation
|
||||
5380 DisplacementMicromapNV
|
||||
5381 RayTracingOpacityMicromapEXT
|
||||
5383 ShaderInvocationReorderNV
|
||||
5390 BindlessTextureNV
|
||||
5391 RayQueryPositionFetchKHR
|
||||
5394 CooperativeVectorNV
|
||||
5404 AtomicFloat16VectorNV
|
||||
5409 RayTracingDisplacementMicromapNV
|
||||
5414 RawAccessChainsNV
|
||||
5418 RayTracingSpheresGeometryNV
|
||||
5419 RayTracingLinearSweptSpheresGeometryNV
|
||||
5426 Shader64BitIndexingEXT
|
||||
5430 CooperativeMatrixReductionsNV
|
||||
5431 CooperativeMatrixConversionsNV
|
||||
5432 CooperativeMatrixPerElementOperationsNV
|
||||
5433 CooperativeMatrixTensorAddressingNV
|
||||
5434 CooperativeMatrixBlockLoadsNV
|
||||
5435 CooperativeVectorTrainingNV
|
||||
5437 RayTracingClusterAccelerationStructureNV
|
||||
5439 TensorAddressingNV
|
||||
5568 SubgroupShuffleINTEL
|
||||
5569 SubgroupBufferBlockIOINTEL
|
||||
5570 SubgroupImageBlockIOINTEL
|
||||
5579 SubgroupImageMediaBlockIOINTEL
|
||||
5582 RoundToInfinityINTEL
|
||||
5583 FloatingPointModeINTEL
|
||||
5584 IntegerFunctions2INTEL
|
||||
5603 FunctionPointersINTEL
|
||||
5604 IndirectReferencesINTEL
|
||||
5606 AsmINTEL
|
||||
5612 AtomicFloat32MinMaxEXT
|
||||
5613 AtomicFloat64MinMaxEXT
|
||||
5616 AtomicFloat16MinMaxEXT
|
||||
5617 VectorComputeINTEL
|
||||
5619 VectorAnyINTEL
|
||||
5629 ExpectAssumeKHR
|
||||
5696 SubgroupAvcMotionEstimationINTEL
|
||||
5697 SubgroupAvcMotionEstimationIntraINTEL
|
||||
5698 SubgroupAvcMotionEstimationChromaINTEL
|
||||
5817 VariableLengthArrayINTEL
|
||||
5821 FunctionFloatControlINTEL
|
||||
5824 FPGAMemoryAttributesALTERA
|
||||
5837 FPFastMathModeINTEL
|
||||
5844 ArbitraryPrecisionIntegersALTERA
|
||||
5845 ArbitraryPrecisionFloatingPointALTERA
|
||||
5886 UnstructuredLoopControlsINTEL
|
||||
5888 FPGALoopControlsALTERA
|
||||
5892 KernelAttributesINTEL
|
||||
5897 FPGAKernelAttributesINTEL
|
||||
5898 FPGAMemoryAccessesALTERA
|
||||
5904 FPGAClusterAttributesALTERA
|
||||
5906 LoopFuseALTERA
|
||||
5908 FPGADSPControlALTERA
|
||||
5910 MemoryAccessAliasingINTEL
|
||||
5916 FPGAInvocationPipeliningAttributesALTERA
|
||||
5920 FPGABufferLocationALTERA
|
||||
5922 ArbitraryPrecisionFixedPointALTERA
|
||||
5935 USMStorageClassesALTERA
|
||||
5939 RuntimeAlignedAttributeALTERA
|
||||
5943 IOPipesALTERA
|
||||
5945 BlockingPipesALTERA
|
||||
5948 FPGARegALTERA
|
||||
6016 DotProductInputAll
|
||||
6017 DotProductInput4x8Bit
|
||||
6018 DotProductInput4x8BitPacked
|
||||
6019 DotProduct
|
||||
6020 RayCullMaskKHR
|
||||
6022 CooperativeMatrixKHR
|
||||
6024 ReplicatedCompositesEXT
|
||||
6025 BitInstructions
|
||||
6026 GroupNonUniformRotateKHR
|
||||
6029 FloatControls2
|
||||
6030 FMAKHR
|
||||
6033 AtomicFloat32AddEXT
|
||||
6034 AtomicFloat64AddEXT
|
||||
6089 LongCompositesINTEL
|
||||
6094 OptNoneEXT
|
||||
6095 AtomicFloat16AddEXT
|
||||
6114 DebugInfoModuleINTEL
|
||||
6115 BFloat16ConversionINTEL
|
||||
6141 SplitBarrierINTEL
|
||||
6144 ArithmeticFenceEXT
|
||||
6150 FPGAClusterAttributesV2ALTERA
|
||||
6161 FPGAKernelAttributesv2INTEL
|
||||
6162 TaskSequenceALTERA
|
||||
6169 FPMaxErrorINTEL
|
||||
6171 FPGALatencyControlALTERA
|
||||
6174 FPGAArgumentInterfacesALTERA
|
||||
6187 GlobalVariableHostAccessINTEL
|
||||
6189 GlobalVariableFPGADecorationsALTERA
|
||||
6220 SubgroupBufferPrefetchINTEL
|
||||
6228 Subgroup2DBlockIOINTEL
|
||||
6229 Subgroup2DBlockTransformINTEL
|
||||
6230 Subgroup2DBlockTransposeINTEL
|
||||
6236 SubgroupMatrixMultiplyAccumulateINTEL
|
||||
6241 TernaryBitwiseFunctionINTEL
|
||||
6243 UntypedVariableLengthArrayINTEL
|
||||
6245 SpecConditionalINTEL
|
||||
6246 FunctionVariantsINTEL
|
||||
6400 GroupUniformArithmeticKHR
|
||||
6425 TensorFloat32RoundingINTEL
|
||||
6427 MaskedGatherScatterINTEL
|
||||
6441 CacheControlsINTEL
|
||||
6460 RegisterLimitsINTEL
|
||||
6528 BindlessImagesINTEL
|
||||
@@ -0,0 +1,155 @@
|
||||
SPV_KHR_16bit_storage
|
||||
SPV_KHR_8bit_storage
|
||||
SPV_KHR_bfloat16
|
||||
SPV_KHR_bit_instructions
|
||||
SPV_KHR_compute_shader_derivatives
|
||||
SPV_KHR_cooperative_matrix
|
||||
SPV_KHR_device_group
|
||||
SPV_KHR_expect_assume
|
||||
SPV_KHR_float_controls
|
||||
SPV_KHR_float_controls2
|
||||
SPV_KHR_fma
|
||||
SPV_KHR_fragment_shader_barycentric
|
||||
SPV_KHR_fragment_shading_rate
|
||||
SPV_KHR_integer_dot_product
|
||||
SPV_KHR_linkonce_odr
|
||||
SPV_KHR_maximal_reconvergence
|
||||
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_quad_control
|
||||
SPV_KHR_ray_cull_mask
|
||||
SPV_KHR_ray_query
|
||||
SPV_KHR_ray_tracing
|
||||
SPV_KHR_ray_tracing_position_fetch
|
||||
SPV_KHR_relaxed_extended_instruction
|
||||
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_rotate
|
||||
SPV_KHR_subgroup_uniform_control_flow
|
||||
SPV_KHR_subgroup_vote
|
||||
SPV_KHR_terminate_invocation
|
||||
SPV_KHR_uniform_group_instructions
|
||||
SPV_KHR_untyped_pointers
|
||||
SPV_KHR_variable_pointers
|
||||
SPV_KHR_vulkan_memory_model
|
||||
SPV_KHR_workgroup_memory_explicit_layout
|
||||
SPV_EXT_arithmetic_fence
|
||||
SPV_EXT_demote_to_helper_invocation
|
||||
SPV_EXT_descriptor_indexing
|
||||
SPV_EXT_float8
|
||||
SPV_EXT_fragment_fully_covered
|
||||
SPV_EXT_fragment_invocation_density
|
||||
SPV_EXT_fragment_shader_interlock
|
||||
SPV_EXT_image_raw10_raw12
|
||||
SPV_EXT_mesh_shader
|
||||
SPV_EXT_opacity_micromap
|
||||
SPV_EXT_optnone
|
||||
SPV_EXT_physical_storage_buffer
|
||||
SPV_EXT_relaxed_printf_string_address_space
|
||||
SPV_EXT_replicated_composites
|
||||
SPV_EXT_shader_64bit_indexing
|
||||
SPV_EXT_shader_atomic_float_add
|
||||
SPV_EXT_shader_atomic_float_min_max
|
||||
SPV_EXT_shader_atomic_float16_add
|
||||
SPV_EXT_shader_image_int64
|
||||
SPV_EXT_shader_stencil_export
|
||||
SPV_EXT_shader_tile_image
|
||||
SPV_EXT_shader_viewport_index_layer
|
||||
SPV_ALTERA_arbitrary_precision_fixed_point
|
||||
SPV_ALTERA_arbitrary_precision_floating_point
|
||||
SPV_ALTERA_arbitrary_precision_integers
|
||||
SPV_ALTERA_blocking_pipes
|
||||
SPV_ALTERA_fpga_argument_interfaces
|
||||
SPV_ALTERA_fpga_buffer_location
|
||||
SPV_ALTERA_fpga_cluster_attributes
|
||||
SPV_ALTERA_fpga_dsp_control
|
||||
SPV_ALTERA_fpga_invocation_pipelining_attributes
|
||||
SPV_ALTERA_fpga_latency_control
|
||||
SPV_ALTERA_fpga_loop_controls
|
||||
SPV_ALTERA_fpga_memory_accesses
|
||||
SPV_ALTERA_fpga_memory_attributes
|
||||
SPV_ALTERA_fpga_reg
|
||||
SPV_ALTERA_global_variable_fpga_decorations
|
||||
SPV_ALTERA_io_pipes
|
||||
SPV_ALTERA_loop_fuse
|
||||
SPV_ALTERA_runtime_aligned
|
||||
SPV_ALTERA_task_sequence
|
||||
SPV_ALTERA_usm_storage_classes
|
||||
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_early_and_late_fragment_tests
|
||||
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_AMDX_shader_enqueue
|
||||
SPV_ARM_cooperative_matrix_layouts
|
||||
SPV_ARM_core_builtins
|
||||
SPV_ARM_graph
|
||||
SPV_ARM_tensors
|
||||
SPV_GOOGLE_decorate_string
|
||||
SPV_GOOGLE_hlsl_functionality1
|
||||
SPV_GOOGLE_user_type
|
||||
SPV_HUAWEI_cluster_culling_shader
|
||||
SPV_HUAWEI_subpass_shading
|
||||
SPV_INTEL_2d_block_io
|
||||
SPV_INTEL_bfloat16_conversion
|
||||
SPV_INTEL_cache_controls
|
||||
SPV_INTEL_device_side_avc_motion_estimation
|
||||
SPV_INTEL_fp_fast_math_mode
|
||||
SPV_INTEL_fp_max_error
|
||||
SPV_INTEL_global_variable_host_access
|
||||
SPV_INTEL_int4
|
||||
SPV_INTEL_kernel_attributes
|
||||
SPV_INTEL_long_composites
|
||||
SPV_INTEL_masked_gather_scatter
|
||||
SPV_INTEL_maximum_registers
|
||||
SPV_INTEL_media_block_io
|
||||
SPV_INTEL_shader_integer_functions2
|
||||
SPV_INTEL_split_barrier
|
||||
SPV_INTEL_subgroups
|
||||
SPV_INTEL_subgroup_buffer_prefetch
|
||||
SPV_INTEL_subgroup_matrix_multiply_accumulate
|
||||
SPV_INTEL_tensor_float32_conversion
|
||||
SPV_INTEL_ternary_bitwise_function
|
||||
SPV_INTEL_unstructured_loop_controls
|
||||
SPV_INTEL_variable_length_array
|
||||
SPV_NV_bindless_texture
|
||||
SPV_NV_cluster_acceleration_structure
|
||||
SPV_NV_compute_shader_derivatives
|
||||
SPV_NV_cooperative_matrix
|
||||
SPV_NV_cooperative_matrix2
|
||||
SPV_NV_cooperative_vector
|
||||
SPV_NV_displacement_micromap
|
||||
SPV_NV_fragment_shader_barycentric
|
||||
SPV_NV_geometry_shader_passthrough
|
||||
SPV_NV_linear_swept_spheres
|
||||
SPV_NV_mesh_shader
|
||||
SPV_NV_raw_access_chains
|
||||
SPV_NV_ray_tracing
|
||||
SPV_NV_ray_tracing_motion_blur
|
||||
SPV_NV_sample_mask_override_coverage
|
||||
SPV_NV_shader_atomic_fp16_vector
|
||||
SPV_NV_shader_image_footprint
|
||||
SPV_NV_shader_invocation_reorder
|
||||
SPV_NV_shader_sm_builtins
|
||||
SPV_NV_shader_subgroup_partitioned
|
||||
SPV_NV_shading_rate
|
||||
SPV_NV_stereo_view_rendering
|
||||
SPV_NV_tensor_addressing
|
||||
SPV_NV_viewport_array2
|
||||
SPV_NVX_multiview_per_view_attributes
|
||||
SPV_QCOM_cooperative_matrix_conversion
|
||||
SPV_QCOM_image_processing
|
||||
SPV_QCOM_image_processing2
|
||||
SPV_QCOM_tile_shading
|
||||
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
# not sorted because the registry lists them in extension number order
|
||||
grep -o '\[SPV_.*\]' spirv_registry.md | tr -d '[] \t' > all_exts.txt
|
||||
unix2dos -q all_exts.txt
|
||||
|
||||
# sorted by enum value
|
||||
sed -n '/kind.*"Capability",$/,/"category"/p' spirv.core.grammar.json |
|
||||
grep 'enumerant\>\|value' | paste -sd ' \n' | awk '{print $6" "$3}' |
|
||||
tr -d '",' | sort -n > all_capabilities.txt
|
||||
unix2dos -q all_capabilities.txt
|
||||
|
||||
export IFS="
|
||||
"
|
||||
for I in $(cat all_exts.txt | dos2unix); do
|
||||
if ! grep -q '`'"$I"'`' extension_support.md; then
|
||||
echo "Extension $I isn't in extension_support.md";
|
||||
fi
|
||||
done
|
||||
|
||||
for I in $(cat all_capabilities.txt | awk '{print $2}'); do
|
||||
if ! grep -q '`'"$I"'`' extension_support.md; then
|
||||
echo "Capability $I isn't in extension_support.md";
|
||||
fi
|
||||
done
|
||||
|
||||
for I in $(rg SPV_ extension_support.md | egrep -o 'SPV_[A-Z0-9a-z_]*'); do
|
||||
if ! grep -q $I spirv_registry.md; then
|
||||
echo "Extension $I is in extension_support.md but not the registry";
|
||||
fi;
|
||||
done
|
||||
|
||||
for I in $(egrep '^ ' extension_support.md | tr -d '* `'); do
|
||||
if ! egrep -q "\"enumerant\".*\"$I\"" spirv.core.grammar.json; then
|
||||
if ! egrep -q "\"aliases\".*\"$I\"" spirv.core.grammar.json; then
|
||||
echo "Capability $I is in extension_support.md but not the grammar";
|
||||
fi;
|
||||
fi;
|
||||
done
|
||||
@@ -0,0 +1,531 @@
|
||||
# SPIR-V extension and capability support
|
||||
|
||||
This is a list of the currently supported SPIR-V extensions and capabilities in the shader debugger, in a bit more readable format than the code.
|
||||
|
||||
Maintainers can update this file by updating `spirv.core.grammar.json` and `spirv_registry.md` (the SPIRV-Registry README.md) in this folder and running `./check_extensions.sh` which will output any new extensions that haven't been filed in a category below. This will also update `all_exts.txt` and `all_capabilities.txt` which needs to be committed too when this file is updated to keep things in sync.
|
||||
|
||||
Each extension references the relevant capabilities below it.
|
||||
|
||||
# Supported
|
||||
|
||||
* `SPIR-V 1.0`
|
||||
* `AtomicStorage`
|
||||
* `ClipDistance`
|
||||
* `CullDistance`
|
||||
* `DerivativeControl`
|
||||
* `Float16`
|
||||
* `Float64`
|
||||
* `Geometry`
|
||||
* `GeometryPointSize`
|
||||
* `GeometryStreams`
|
||||
* `Image1D`
|
||||
* `ImageBuffer`
|
||||
* `ImageCubeArray`
|
||||
* `ImageGatherExtended`
|
||||
* `ImageMSArray`
|
||||
* `ImageQuery`
|
||||
* `ImageRect`
|
||||
* `InputAttachment`
|
||||
* `Int16`
|
||||
* `Int64`
|
||||
* `Int64Atomics`
|
||||
* `Int8`
|
||||
* `Matrix`
|
||||
* `MinLod`
|
||||
* `MultiViewport`
|
||||
* `Sampled1D`
|
||||
* `SampledBuffer`
|
||||
* `SampledCubeArray`
|
||||
* `SampledImageArrayDynamicIndexing`
|
||||
* `SampledRect`
|
||||
* `SampleRateShading`
|
||||
* `Shader`
|
||||
* `StorageBufferArrayDynamicIndexing`
|
||||
* `StorageImageArrayDynamicIndexing`
|
||||
* `StorageImageExtendedFormats`
|
||||
* `StorageImageMultisample`
|
||||
* `StorageImageReadWithoutFormat`
|
||||
* `StorageImageWriteWithoutFormat`
|
||||
* `Tessellation`
|
||||
* `TessellationPointSize`
|
||||
* `TransformFeedback`
|
||||
* `UniformBufferArrayDynamicIndexing`
|
||||
* `SPIR-V 1.1`
|
||||
* `SPIR-V 1.2`
|
||||
* `SPIR-V 1.3`
|
||||
* `DrawParameters`
|
||||
* `GroupNonUniform`
|
||||
* `GroupNonUniformArithmetic`
|
||||
* `GroupNonUniformBallot`
|
||||
* `GroupNonUniformClustered`
|
||||
* `GroupNonUniformQuad`
|
||||
* `GroupNonUniformShuffle`
|
||||
* `GroupNonUniformShuffleRelative`
|
||||
* `GroupNonUniformVote`
|
||||
* `SPIR-V 1.4`
|
||||
* `SignedZeroInfNanPreserve`
|
||||
* `SPIR-V 1.5`
|
||||
* `InputAttachmentArrayDynamicIndexing`
|
||||
* `InputAttachmentArrayNonUniformIndexing`
|
||||
* `RuntimeDescriptorArray`
|
||||
* `SampledImageArrayNonUniformIndexing`
|
||||
* `ShaderLayer`
|
||||
* `ShaderNonUniform`
|
||||
* `ShaderViewportIndex`
|
||||
* `StorageBufferArrayNonUniformIndexing`
|
||||
* `StorageImageArrayNonUniformIndexing`
|
||||
* `StorageTexelBufferArrayDynamicIndexing`
|
||||
* `StorageTexelBufferArrayNonUniformIndexing`
|
||||
* `UniformBufferArrayNonUniformIndexing`
|
||||
* `UniformTexelBufferArrayDynamicIndexing`
|
||||
* `UniformTexelBufferArrayNonUniformIndexing`
|
||||
* `VulkanMemoryModel`
|
||||
* `VulkanMemoryModelDeviceScope`
|
||||
* `SPIR-V 1.6`
|
||||
* `DemoteToHelperInvocation`
|
||||
* `UniformDecoration`
|
||||
* `SPV_KHR_16bit_storage`
|
||||
* `StorageBuffer16BitAccess`
|
||||
* `StorageInputOutput16`
|
||||
* `StoragePushConstant16`
|
||||
* `StorageUniform16`
|
||||
* `StorageUniformBufferBlock16`
|
||||
* `UniformAndStorageBuffer16BitAccess`
|
||||
* `SPV_KHR_8bit_storage`
|
||||
* `StorageBuffer8BitAccess`
|
||||
* `StoragePushConstant8`
|
||||
* `UniformAndStorageBuffer8BitAccess`
|
||||
* `SPV_KHR_bit_instructions`
|
||||
* `BitInstructions`
|
||||
* `SPV_KHR_device_group`
|
||||
* `DeviceGroup`
|
||||
* `SPV_KHR_expect_assume`
|
||||
* `ExpectAssumeKHR`
|
||||
* `SPV_KHR_float_controls`
|
||||
* `SPV_KHR_maximal_reconvergence`
|
||||
* `SPV_KHR_multiview`
|
||||
* `MultiView`
|
||||
* `SPV_KHR_no_integer_wrap_decoration`
|
||||
* `SPV_KHR_non_semantic_info`
|
||||
* `SPV_KHR_physical_storage_buffer`
|
||||
* `PhysicalStorageBufferAddresses`
|
||||
* `SPV_KHR_post_depth_coverage`
|
||||
* `SampleMaskPostDepthCoverage`
|
||||
* `SPV_KHR_quad_control`
|
||||
* `QuadControlKHR`
|
||||
* `SPV_KHR_relaxed_extended_instruction`
|
||||
* `SPV_KHR_shader_atomic_counter_ops`
|
||||
* `AtomicStorageOps`
|
||||
* `SPV_KHR_shader_ballot`
|
||||
* `SubgroupBallotKHR`
|
||||
* `SPV_KHR_shader_clock`
|
||||
* `ShaderClockKHR`
|
||||
* `SPV_KHR_shader_draw_parameters`
|
||||
* `SPV_KHR_storage_buffer_storage_class`
|
||||
* `SPV_KHR_subgroup_rotate`
|
||||
* `GroupNonUniformRotateKHR`
|
||||
* `SPV_KHR_subgroup_uniform_control_flow`
|
||||
* `SPV_KHR_subgroup_vote`
|
||||
* `SubgroupVoteKHR`
|
||||
* `SPV_KHR_terminate_invocation`
|
||||
* `SPV_KHR_vulkan_memory_model`
|
||||
* `VulkanMemoryModelKHR`
|
||||
* `VulkanMemoryModelDeviceScopeKHR`
|
||||
* `SPV_EXT_demote_to_helper_invocation`
|
||||
* `DemoteToHelperInvocationEXT`
|
||||
* `SPV_EXT_descriptor_indexing`
|
||||
* `InputAttachmentArrayDynamicIndexingEXT`
|
||||
* `InputAttachmentArrayNonUniformIndexingEXT`
|
||||
* `RuntimeDescriptorArrayEXT`
|
||||
* `SampledImageArrayNonUniformIndexingEXT`
|
||||
* `ShaderNonUniformEXT`
|
||||
* `StorageBufferArrayNonUniformIndexingEXT`
|
||||
* `StorageImageArrayNonUniformIndexingEXT`
|
||||
* `StorageTexelBufferArrayDynamicIndexingEXT`
|
||||
* `StorageTexelBufferArrayNonUniformIndexingEXT`
|
||||
* `UniformBufferArrayNonUniformIndexingEXT`
|
||||
* `UniformTexelBufferArrayDynamicIndexingEXT`
|
||||
* `UniformTexelBufferArrayNonUniformIndexingEXT`
|
||||
* `SPV_EXT_fragment_fully_covered`
|
||||
* `FragmentFullyCoveredEXT`
|
||||
* `SPV_EXT_fragment_invocation_density`
|
||||
* `FragmentDensityEXT`
|
||||
* `SPV_EXT_mesh_shader`
|
||||
* `MeshShadingEXT`
|
||||
* `SPV_EXT_physical_storage_buffer`
|
||||
* `PhysicalStorageBufferAddressesEXT`
|
||||
* `SPV_EXT_shader_atomic_float_add`
|
||||
* `AtomicFloat32AddEXT`
|
||||
* `AtomicFloat64AddEXT`
|
||||
* `SPV_EXT_shader_atomic_float_min_max`
|
||||
* `AtomicFloat16MinMaxEXT`
|
||||
* `AtomicFloat32MinMaxEXT`
|
||||
* `AtomicFloat64MinMaxEXT`
|
||||
* `SPV_EXT_shader_atomic_float16_add`
|
||||
* `AtomicFloat16AddEXT`
|
||||
* `SPV_EXT_shader_image_int64`
|
||||
* `Int64ImageEXT`
|
||||
* `SPV_EXT_shader_stencil_export`
|
||||
* `StencilExportEXT`
|
||||
* `SPV_EXT_shader_viewport_index_layer`
|
||||
* `ShaderViewportIndexLayerEXT`
|
||||
* `SPV_GOOGLE_decorate_string`
|
||||
* `SPV_GOOGLE_hlsl_functionality1`
|
||||
* `SPV_GOOGLE_user_type`
|
||||
|
||||
# Unsupported
|
||||
|
||||
KHR extensions will definitely be implemented at some point, though KHR extensions that entail a large amount of work may be deferred. EXT extensions are likely to be implemented in future but current plans or priorities may vary. Vendor extensions likely won't be supported but could be upon request given how much demand there is and ease of implementation.
|
||||
|
||||
## KHR Extensions
|
||||
|
||||
* `SPIR-V 1.0`
|
||||
* `Groups`
|
||||
* `InterpolationFunction`
|
||||
* `SparseResidency`
|
||||
* `SPIR-V 1.4`
|
||||
* `DenormFlushToZero`
|
||||
* `DenormPreserve`
|
||||
* `RoundingModeRTE`
|
||||
* `RoundingModeRTZ`
|
||||
* `SPIR-V 1.6`
|
||||
* `DotProduct`
|
||||
* `DotProductInput4x8Bit`
|
||||
* `DotProductInput4x8BitPacked`
|
||||
* `DotProductInputAll`
|
||||
* `SPV_KHR_bfloat16`
|
||||
* `BFloat16TypeKHR`
|
||||
* `BFloat16DotProductKHR`
|
||||
* `BFloat16CooperativeMatrixKHR`
|
||||
* `SPV_KHR_compute_shader_derivatives`
|
||||
* `ComputeDerivativeGroupQuadsKHR`
|
||||
* `ComputeDerivativeGroupLinearKHR`
|
||||
* `SPV_KHR_cooperative_matrix`
|
||||
* `CooperativeMatrixKHR`
|
||||
* `SPV_KHR_float_controls2`
|
||||
* `FloatControls2`
|
||||
* `SPV_KHR_fma`
|
||||
* `FMAKHR`
|
||||
* `SPV_KHR_fragment_shader_barycentric`
|
||||
* `FragmentBarycentricKHR`
|
||||
* `SPV_KHR_fragment_shading_rate`
|
||||
* `FragmentShadingRateKHR`
|
||||
* `SPV_KHR_integer_dot_product`
|
||||
* `SPV_KHR_untyped_pointers`
|
||||
* `UntypedPointersKHR`
|
||||
* `SPV_KHR_variable_pointers`
|
||||
* `VariablePointers`
|
||||
* `VariablePointersStorageBuffer`
|
||||
* `SPV_KHR_workgroup_memory_explicit_layout`
|
||||
* `WorkgroupMemoryExplicitLayout16BitAccessKHR`
|
||||
* `WorkgroupMemoryExplicitLayout8BitAccessKHR`
|
||||
* `WorkgroupMemoryExplicitLayoutKHR`
|
||||
|
||||
## KHR Ray tracing extensions
|
||||
|
||||
* `SPV_KHR_ray_cull_mask`
|
||||
* `RayCullMaskKHR`
|
||||
* `SPV_KHR_ray_query`
|
||||
* `RayQueryKHR`
|
||||
* `SPV_KHR_ray_tracing_position_fetch`
|
||||
* `RayTracingPositionFetchKHR`
|
||||
* `RayQueryPositionFetchKHR`
|
||||
* `SPV_KHR_ray_tracing`
|
||||
* `RayTracingKHR`
|
||||
* `RayTraversalPrimitiveCullingKHR`
|
||||
* `SPV_EXT_opacity_micromap`
|
||||
* `RayTracingOpacityMicromapEXT`
|
||||
|
||||
## EXT
|
||||
|
||||
* `SPV_EXT_float8`
|
||||
* `Float8EXT`
|
||||
* `Float8CooperativeMatrixEXT`
|
||||
* `SPV_EXT_fragment_shader_interlock`
|
||||
* `FragmentShaderSampleInterlockEXT`
|
||||
* `FragmentShaderShadingRateInterlockEXT`
|
||||
* `FragmentShaderPixelInterlockEXT`
|
||||
* `SPV_EXT_replicated_composites`
|
||||
* `ReplicatedCompositesEXT`
|
||||
* `SPV_EXT_shader_64bit_indexing`
|
||||
* `Shader64BitIndexingEXT`
|
||||
* `SPV_EXT_shader_tile_image`
|
||||
* `TileImageColorReadAccessEXT`
|
||||
* `TileImageDepthReadAccessEXT`
|
||||
* `TileImageStencilReadAccessEXT`
|
||||
|
||||
## Platform/IHV Extensions
|
||||
|
||||
### Altera
|
||||
|
||||
* `SPV_ALTERA_arbitrary_precision_fixed_point`
|
||||
* `ArbitraryPrecisionFixedPointALTERA`
|
||||
* `SPV_ALTERA_arbitrary_precision_floating_point`
|
||||
* `ArbitraryPrecisionFloatingPointALTERA`
|
||||
* `SPV_ALTERA_arbitrary_precision_integers`
|
||||
* `ArbitraryPrecisionIntegersALTERA`
|
||||
* `SPV_ALTERA_blocking_pipes`
|
||||
* `BlockingPipesALTERA`
|
||||
* `SPV_ALTERA_fpga_argument_interfaces`
|
||||
* `FPGAArgumentInterfacesALTERA`
|
||||
* `SPV_ALTERA_fpga_buffer_location`
|
||||
* `FPGABufferLocationALTERA`
|
||||
* `SPV_ALTERA_fpga_cluster_attributes`
|
||||
* `FPGAClusterAttributesALTERA`
|
||||
* `FPGAClusterAttributesV2ALTERA`
|
||||
* `SPV_ALTERA_fpga_dsp_control`
|
||||
* `FPGADSPControlALTERA`
|
||||
* `SPV_ALTERA_fpga_invocation_pipelining_attributes`
|
||||
* `FPGAInvocationPipeliningAttributesALTERA`
|
||||
* `SPV_ALTERA_fpga_latency_control`
|
||||
* `FPGALatencyControlALTERA`
|
||||
* `SPV_ALTERA_fpga_loop_controls`
|
||||
* `FPGALoopControlsALTERA`
|
||||
* `SPV_ALTERA_fpga_memory_accesses`
|
||||
* `FPGAMemoryAccessesALTERA`
|
||||
* `SPV_ALTERA_fpga_memory_attributes`
|
||||
* `FPGAMemoryAttributesALTERA`
|
||||
* `SPV_ALTERA_fpga_reg`
|
||||
* `FPGARegALTERA`
|
||||
* `SPV_ALTERA_global_variable_fpga_decorations`
|
||||
* `GlobalVariableFPGADecorationsALTERA`
|
||||
* `SPV_ALTERA_io_pipes`
|
||||
* `IOPipesALTERA`
|
||||
* `SPV_ALTERA_loop_fuse`
|
||||
* `LoopFuseALTERA`
|
||||
* `SPV_ALTERA_runtime_aligned`
|
||||
* `RuntimeAlignedAttributeALTERA`
|
||||
* `SPV_ALTERA_task_sequence`
|
||||
* `TaskSequenceALTERA`
|
||||
* `SPV_ALTERA_usm_storage_classes`
|
||||
* `USMStorageClassesALTERA`
|
||||
|
||||
### AMD
|
||||
|
||||
* `SPV_AMD_gcn_shader`
|
||||
* `SPV_AMD_gpu_shader_half_float_fetch`
|
||||
* `Float16ImageAMD`
|
||||
* `SPV_AMD_gpu_shader_half_float`
|
||||
* `SPV_AMD_gpu_shader_int16`
|
||||
* `SPV_AMD_shader_ballot`
|
||||
* `SPV_AMD_shader_early_and_late_fragment_tests`
|
||||
* `EarlyAndLateFragmentTestsAMD`
|
||||
* `StencilRefUnchangedFrontAMD`
|
||||
* `StencilRefGreaterFrontAMD`
|
||||
* `StencilRefLessFrontAMD`
|
||||
* `StencilRefUnchangedBackAMD`
|
||||
* `StencilRefGreaterBackAMD`
|
||||
* `StencilRefLessBackAMD`
|
||||
* `SPV_AMD_shader_explicit_vertex_parameter`
|
||||
* `SPV_AMD_shader_fragment_mask`
|
||||
* `FragmentMaskAMD`
|
||||
* `SPV_AMD_shader_image_load_store_lod`
|
||||
* `ImageReadWriteLodAMD`
|
||||
* `SPV_AMD_shader_trinary_minmax`
|
||||
* `SPV_AMD_texture_gather_bias_lod`
|
||||
* `ImageGatherBiasLodAMD`
|
||||
|
||||
### ARM
|
||||
|
||||
* `SPV_ARM_cooperative_matrix_layouts`
|
||||
* `CooperativeMatrixLayoutsARM`
|
||||
* `SPV_ARM_core_builtins`
|
||||
* `CoreBuiltinsARM`
|
||||
* `SPV_ARM_graph`
|
||||
* `GraphARM`
|
||||
* `SPV_ARM_tensors`
|
||||
* `TensorsARM`
|
||||
* `StorageTensorArrayDynamicIndexingARM`
|
||||
* `StorageTensorArrayNonUniformIndexingARM`
|
||||
|
||||
### Huawei
|
||||
|
||||
* `SPV_HUAWEI_cluster_culling_shader`
|
||||
* `SPV_HUAWEI_subpass_shading`
|
||||
|
||||
### Intel
|
||||
|
||||
* `SPV_INTEL_2d_block_io`
|
||||
* `Subgroup2DBlockIOINTEL`
|
||||
* `Subgroup2DBlockTransformINTEL`
|
||||
* `Subgroup2DBlockTransposeINTEL`
|
||||
* `SPV_INTEL_bfloat16_conversion`
|
||||
* `BFloat16ConversionINTEL`
|
||||
* `SPV_INTEL_cache_controls`
|
||||
* `CacheControlsINTEL`
|
||||
* `SPV_INTEL_device_side_avc_motion_estimation`
|
||||
* `SubgroupAvcMotionEstimationChromaINTEL`
|
||||
* `SubgroupAvcMotionEstimationINTEL`
|
||||
* `SubgroupAvcMotionEstimationIntraINTEL`
|
||||
* `SPV_INTEL_fp_fast_math_mode`
|
||||
* `FPFastMathModeINTEL`
|
||||
* `SPV_INTEL_fp_max_error`
|
||||
* `FPMaxErrorINTEL`
|
||||
* `SPV_INTEL_global_variable_host_access`
|
||||
* `GlobalVariableHostAccessINTEL`
|
||||
* `SPV_INTEL_int4`
|
||||
* `Int4TypeINTEL`
|
||||
* `Int4CooperativeMatrixINTEL`
|
||||
* `SPV_INTEL_kernel_attributes`
|
||||
* `FPGAKernelAttributesINTEL`
|
||||
* `FPGAKernelAttributesv2INTEL`
|
||||
* `KernelAttributesINTEL`
|
||||
* `SPV_INTEL_long_composites`
|
||||
* `LongCompositesINTEL`
|
||||
* `SPV_INTEL_masked_gather_scatter`
|
||||
* `MaskedGatherScatterINTEL`
|
||||
* `SPV_INTEL_maximum_registers`
|
||||
* `RegisterLimitsINTEL`
|
||||
* `SPV_INTEL_media_block_io`
|
||||
* `SubgroupImageMediaBlockIOINTEL`
|
||||
* `SPV_INTEL_shader_integer_functions2`
|
||||
* `IntegerFunctions2INTEL`
|
||||
* `SPV_INTEL_split_barrier`
|
||||
* `SplitBarrierINTEL`
|
||||
* `SPV_INTEL_subgroups`
|
||||
* `SubgroupBufferBlockIOINTEL`
|
||||
* `SubgroupImageBlockIOINTEL`
|
||||
* `SubgroupShuffleINTEL`
|
||||
* `SPV_INTEL_subgroup_buffer_prefetch`
|
||||
* `SubgroupBufferPrefetchINTEL`
|
||||
* `SPV_INTEL_subgroup_matrix_multiply_accumulate`
|
||||
* `SubgroupMatrixMultiplyAccumulateINTEL`
|
||||
* `SPV_INTEL_tensor_float32_conversion`
|
||||
* `TensorFloat32RoundingINTEL`
|
||||
* `SPV_INTEL_ternary_bitwise_function`
|
||||
* `TernaryBitwiseFunctionINTEL`
|
||||
* `SPV_INTEL_unstructured_loop_controls`
|
||||
* `UnstructuredLoopControlsINTEL`
|
||||
* `SPV_INTEL_variable_length_array`
|
||||
* `VariableLengthArrayINTEL`
|
||||
* `UntypedVariableLengthArrayINTEL`
|
||||
|
||||
### NV
|
||||
|
||||
* `SPV_NV_bindless_texture`
|
||||
* `BindlessTextureNV`
|
||||
* `SPV_NV_cluster_acceleration_structure`
|
||||
* `RayTracingClusterAccelerationStructureNV`
|
||||
* `SPV_NV_compute_shader_derivatives`
|
||||
* `ComputeDerivativeGroupLinearNV`
|
||||
* `ComputeDerivativeGroupQuadsNV`
|
||||
* `SPV_NV_cooperative_matrix`
|
||||
* `CooperativeMatrixNV`
|
||||
* `SPV_NV_cooperative_matrix2`
|
||||
* `CooperativeMatrixReductionsNV`
|
||||
* `CooperativeMatrixConversionsNV`
|
||||
* `CooperativeMatrixPerElementOperationsNV`
|
||||
* `CooperativeMatrixTensorAddressingNV`
|
||||
* `CooperativeMatrixBlockLoadsNV`
|
||||
* `SPV_NV_cooperative_vector`
|
||||
* `CooperativeVectorNV`
|
||||
* `CooperativeVectorTrainingNV`
|
||||
* `SPV_NV_displacement_micromap`
|
||||
* `RayTracingDisplacementMicromapNV`
|
||||
* `DisplacementMicromapNV`
|
||||
* `SPV_NV_fragment_shader_barycentric`
|
||||
* `FragmentBarycentricNV`
|
||||
* `SPV_NV_geometry_shader_passthrough`
|
||||
* `GeometryShaderPassthroughNV`
|
||||
* `SPV_NV_linear_swept_spheres`
|
||||
* `RayTracingSpheresGeometryNV`
|
||||
* `RayTracingLinearSweptSpheresGeometryNV`
|
||||
* `SPV_NV_mesh_shader`
|
||||
* `MeshShadingNV`
|
||||
* `SPV_NV_raw_access_chains`
|
||||
* `RawAccessChainsNV`
|
||||
* `SPV_NV_ray_tracing_motion_blur`
|
||||
* `RayTracingMotionBlurNV`
|
||||
* `SPV_NV_ray_tracing`
|
||||
* `RayTracingNV`
|
||||
* `SPV_NV_sample_mask_override_coverage`
|
||||
* `SampleMaskOverrideCoverageNV`
|
||||
* `SPV_NV_shader_atomic_fp16_vector`
|
||||
* `AtomicFloat16VectorNV`
|
||||
* `SPV_NV_shader_image_footprint`
|
||||
* `ImageFootprintNV`
|
||||
* `SPV_NV_shader_invocation_reorder`
|
||||
* `ShaderInvocationReorderNV`
|
||||
* `SPV_NV_shader_sm_builtins`
|
||||
* `ShaderSMBuiltinsNV`
|
||||
* `SPV_NV_shader_subgroup_partitioned`
|
||||
* `GroupNonUniformPartitionedNV`
|
||||
* `SPV_NV_shading_rate`
|
||||
* `ShadingRateNV`
|
||||
* `SPV_NV_stereo_view_rendering`
|
||||
* `ShaderStereoViewNV`
|
||||
* `SPV_NV_tensor_addressing`
|
||||
* `TensorAddressingNV`
|
||||
* `SPV_NV_viewport_array2`
|
||||
* `ShaderViewportIndexLayerNV`
|
||||
* `ShaderViewportMaskNV`
|
||||
|
||||
### Qualcomm
|
||||
|
||||
* `SPV_QCOM_cooperative_matrix_conversion`
|
||||
* `CooperativeMatrixConversionQCOM`
|
||||
* `SPV_QCOM_image_processing`
|
||||
* `TextureSampleWeightedQCOM`
|
||||
* `TextureBoxFilterQCOM`
|
||||
* `TextureBlockMatchQCOM`
|
||||
* `SPV_QCOM_image_processing2`
|
||||
* `TextureBlockMatch2QCOM`
|
||||
* `SPV_QCOM_tile_shading`
|
||||
* `TileShadingQCOM`
|
||||
|
||||
### Deprecated / experimental / undocumented / kernel only
|
||||
|
||||
* `SPIR-V 1.0`
|
||||
* `Addresses`
|
||||
* `DeviceEnqueue`
|
||||
* `Float16Buffer`
|
||||
* `GenericPointer`
|
||||
* `ImageBasic`
|
||||
* `ImageMipmap`
|
||||
* `ImageReadWrite`
|
||||
* `Kernel`
|
||||
* `Linkage`
|
||||
* `LiteralSampler`
|
||||
* `Pipes`
|
||||
* `Vector16`
|
||||
* `SPIR-V 1.1`
|
||||
* `NamedBarrier`
|
||||
* `PipeStorage`
|
||||
* `SubgroupDispatch`
|
||||
* Provisional ray tracing
|
||||
* `RayQueryProvisionalKHR`
|
||||
* `RayTracingProvisionalKHR`
|
||||
* `SPV_KHR_linkonce_odr`
|
||||
* `SPV_KHR_uniform_group_instructions`
|
||||
* `GroupUniformArithmeticKHR`
|
||||
* `SPV_EXT_arithmetic_fence`
|
||||
* `ArithmeticFenceEXT`
|
||||
* `SPV_EXT_image_raw10_raw12`
|
||||
* `SPV_EXT_optnone`
|
||||
* `OptNoneEXT`
|
||||
* `SPV_EXT_relaxed_printf_string_address_space`
|
||||
* `SPV_AMDX_shader_enqueue`
|
||||
* `ShaderEnqueueAMDX`
|
||||
* `SPV_NVX_multiview_per_view_attributes`
|
||||
* `PerViewAttributesNV`
|
||||
|
||||
#### Dead Capabilities
|
||||
|
||||
For some reason Intel has dumped a load of capabilities/extensions that are undocumented into the registry. Listed here to keep the scripts happy.
|
||||
|
||||
* `DebugInfoModuleINTEL`
|
||||
* `FunctionPointersINTEL`
|
||||
* `IndirectReferencesINTEL`
|
||||
* `AsmINTEL`
|
||||
* `SpecConditionalINTEL`
|
||||
* `FunctionVariantsINTEL`
|
||||
* `AsmINTEL`
|
||||
* `VectorAnyINTEL`
|
||||
* `VectorComputeINTEL`
|
||||
* `RoundToInfinityINTEL`
|
||||
* `FloatingPointModeINTEL`
|
||||
* `VariableLengthArrayINTEL`
|
||||
* `FunctionFloatControlINTEL`
|
||||
* `MemoryAccessAliasingINTEL`
|
||||
* `BindlessImagesINTEL`
|
||||
|
||||
@@ -1,28 +1,12 @@
|
||||
{
|
||||
"copyright" : [
|
||||
"Copyright (c) 2014-2024 The Khronos Group Inc.",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
"to deal in the Materials without restriction, including without limitation",
|
||||
"the rights to use, copy, modify, merge, publish, distribute, sublicense,",
|
||||
"and/or sell copies of the Materials, and to permit persons to whom the",
|
||||
"Materials are furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in",
|
||||
"all copies or substantial portions of the Materials.",
|
||||
"License: MIT",
|
||||
"",
|
||||
"MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
|
||||
"STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
|
||||
"HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
|
||||
"",
|
||||
"THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
|
||||
"OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
|
||||
"THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
|
||||
"FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
|
||||
"IN THE MATERIALS."
|
||||
""
|
||||
],
|
||||
"version" : 100,
|
||||
"revision" : 2,
|
||||
|
||||
+30
-46
@@ -1,28 +1,12 @@
|
||||
{
|
||||
"copyright" : [
|
||||
"Copyright (c) 2018-2024 The Khronos Group Inc.",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
"to deal in the Materials without restriction, including without limitation",
|
||||
"the rights to use, copy, modify, merge, publish, distribute, sublicense,",
|
||||
"and/or sell copies of the Materials, and to permit persons to whom the",
|
||||
"Materials are furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in",
|
||||
"all copies or substantial portions of the Materials.",
|
||||
"Copyright: 2018-2024 The Khronos Group Inc.",
|
||||
"License: MIT",
|
||||
"",
|
||||
"MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
|
||||
"STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
|
||||
"HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
|
||||
"",
|
||||
"THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
|
||||
"OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
|
||||
"THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
|
||||
"FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
|
||||
"IN THE MATERIALS."
|
||||
""
|
||||
],
|
||||
"version" : 100,
|
||||
"revision" : 6,
|
||||
@@ -563,35 +547,35 @@
|
||||
"enumerants" : [
|
||||
{
|
||||
"enumerant" : "Unspecified",
|
||||
"value" : "0"
|
||||
"value" : 0
|
||||
},
|
||||
{
|
||||
"enumerant" : "Address",
|
||||
"value" : "1"
|
||||
"value" : 1
|
||||
},
|
||||
{
|
||||
"enumerant" : "Boolean",
|
||||
"value" : "2"
|
||||
"value" : 2
|
||||
},
|
||||
{
|
||||
"enumerant" : "Float",
|
||||
"value" : "3"
|
||||
"value" : 3
|
||||
},
|
||||
{
|
||||
"enumerant" : "Signed",
|
||||
"value" : "4"
|
||||
"value" : 4
|
||||
},
|
||||
{
|
||||
"enumerant" : "SignedChar",
|
||||
"value" : "5"
|
||||
"value" : 5
|
||||
},
|
||||
{
|
||||
"enumerant" : "Unsigned",
|
||||
"value" : "6"
|
||||
"value" : 6
|
||||
},
|
||||
{
|
||||
"enumerant" : "UnsignedChar",
|
||||
"value" : "7"
|
||||
"value" : 7
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -601,15 +585,15 @@
|
||||
"enumerants" : [
|
||||
{
|
||||
"enumerant" : "Class",
|
||||
"value" : "0"
|
||||
"value" : 0
|
||||
},
|
||||
{
|
||||
"enumerant" : "Structure",
|
||||
"value" : "1"
|
||||
"value" : 1
|
||||
},
|
||||
{
|
||||
"enumerant" : "Union",
|
||||
"value" : "2"
|
||||
"value" : 2
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -619,19 +603,19 @@
|
||||
"enumerants" : [
|
||||
{
|
||||
"enumerant" : "ConstType",
|
||||
"value" : "0"
|
||||
"value" : 0
|
||||
},
|
||||
{
|
||||
"enumerant" : "VolatileType",
|
||||
"value" : "1"
|
||||
"value" : 1
|
||||
},
|
||||
{
|
||||
"enumerant" : "RestrictType",
|
||||
"value" : "2"
|
||||
"value" : 2
|
||||
},
|
||||
{
|
||||
"enumerant" : "AtomicType",
|
||||
"value" : "3"
|
||||
"value" : 3
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -641,26 +625,26 @@
|
||||
"enumerants" : [
|
||||
{
|
||||
"enumerant" : "Deref",
|
||||
"value" : "0"
|
||||
"value" : 0
|
||||
},
|
||||
{
|
||||
"enumerant" : "Plus",
|
||||
"value" : "1"
|
||||
"value" : 1
|
||||
},
|
||||
{
|
||||
"enumerant" : "Minus",
|
||||
"value" : "2"
|
||||
"value" : 2
|
||||
},
|
||||
{
|
||||
"enumerant" : "PlusUconst",
|
||||
"value" : "3",
|
||||
"value" : 3,
|
||||
"parameters" : [
|
||||
{ "kind" : "IdRef" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"enumerant" : "BitPiece",
|
||||
"value" : "4",
|
||||
"value" : 4,
|
||||
"parameters" : [
|
||||
{ "kind" : "IdRef" },
|
||||
{ "kind" : "IdRef" }
|
||||
@@ -668,26 +652,26 @@
|
||||
},
|
||||
{
|
||||
"enumerant" : "Swap",
|
||||
"value" : "5"
|
||||
"value" : 5
|
||||
},
|
||||
{
|
||||
"enumerant" : "Xderef",
|
||||
"value" : "6"
|
||||
"value" : 6
|
||||
},
|
||||
{
|
||||
"enumerant" : "StackValue",
|
||||
"value" : "7"
|
||||
"value" : 7
|
||||
},
|
||||
{
|
||||
"enumerant" : "Constu",
|
||||
"value" : "8",
|
||||
"value" : 8,
|
||||
"parameters" : [
|
||||
{ "kind" : "IdRef" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"enumerant" : "Fragment",
|
||||
"value" : "9",
|
||||
"value" : 9,
|
||||
"parameters" : [
|
||||
{ "kind" : "IdRef" },
|
||||
{ "kind" : "IdRef" }
|
||||
@@ -701,11 +685,11 @@
|
||||
"enumerants" : [
|
||||
{
|
||||
"enumerant" : "ImportedModule",
|
||||
"value" : "0"
|
||||
"value" : 0
|
||||
},
|
||||
{
|
||||
"enumerant" : "ImportedDeclaration",
|
||||
"value" : "1"
|
||||
"value" : 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ def operand_name(name, lowercase_first = True):
|
||||
return 'arguments'
|
||||
if re.search(r'variable, parent.*\.\.\.', name, re.RegexFlag.I):
|
||||
return 'parents'
|
||||
if re.search(r'condition 0, operand.*\.\.\.', name, re.RegexFlag.I):
|
||||
return 'conditional_arguments'
|
||||
|
||||
name = re.sub(r'<<(.*),(.*)>>', r'\2', name)
|
||||
name = re.sub(r'[ \'~<>./-]', '', name)
|
||||
@@ -212,6 +214,16 @@ inline uint32_t DecodeParam(const ConstIter &it, uint32_t &word)
|
||||
return ret;
|
||||
}}
|
||||
|
||||
template<>
|
||||
inline Capability DecodeParam(const ConstIter &it, uint32_t &word)
|
||||
{{
|
||||
if(word >= it.size()) return Capability::Invalid;
|
||||
|
||||
Capability ret = Capability(word);
|
||||
word += 1;
|
||||
return ret;
|
||||
}}
|
||||
|
||||
template<>
|
||||
inline Id DecodeParam<Id>(const ConstIter &it, uint32_t &word)
|
||||
{{
|
||||
|
||||
@@ -1,26 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<registry>
|
||||
<!--
|
||||
Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and/or associated documentation files (the
|
||||
"Materials"), to deal in the Materials without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
permit persons to whom the Materials are furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Materials.
|
||||
|
||||
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
SPDX-FileCopyrightText: 2015-2024 The Khronos Group Inc.
|
||||
SPDX-License-Identifier: MIT
|
||||
-->
|
||||
<!--
|
||||
This file, spir-v.xml, is the SPIR-V Tool ID, opcode and enumerant registry.
|
||||
@@ -99,7 +81,8 @@
|
||||
<id value="46" vendor="Nintendo" comment="Contact Steve Urquhart, steve.urquhart@ntd.nintendo.com"/>
|
||||
<id value="47" vendor="ARM" comment="Contact Christopher Gautier, christopher.gautier@arm.com"/>
|
||||
<id value="48" vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
|
||||
<unused start="49" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
||||
<id value="49" vendor="Icyllis Milica" tool="Arc3D Shader Compiler" comment="Contact Icyllis Milica, https://github.com/BloCamLimb/Arc3D"/>
|
||||
<unused start="50" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
||||
</ids>
|
||||
|
||||
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3022,7 +3022,7 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
OpGroupNonUniformBroadcast group(it);
|
||||
RDCASSERT(uintComp(GetSrc(group.execution), 0) == (uint32_t)Scope::Subgroup);
|
||||
value = group.value;
|
||||
lane = firstLaneInSub + uintComp(GetSrc(group.id), 0);
|
||||
lane = firstLaneInSub + uintComp(GetSrc(group.invocationId), 0);
|
||||
}
|
||||
else if(opdata.op == Op::GroupNonUniformQuadBroadcast)
|
||||
{
|
||||
@@ -3086,7 +3086,7 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
OpGroupNonUniformShuffle group(it);
|
||||
RDCASSERT(uintComp(GetSrc(group.execution), 0) == (uint32_t)Scope::Subgroup);
|
||||
value = group.value;
|
||||
lane = firstLaneInSub + uintComp(GetSrc(group.id), 0);
|
||||
lane = firstLaneInSub + uintComp(GetSrc(group.invocationId), 0);
|
||||
}
|
||||
else if(opdata.op == Op::GroupNonUniformShuffleXor ||
|
||||
opdata.op == Op::GroupNonUniformShuffleUp ||
|
||||
@@ -4995,7 +4995,6 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
case Op::HitObjectIsMissNV:
|
||||
case Op::ReorderThreadWithHitObjectNV:
|
||||
case Op::ReorderThreadWithHintNV:
|
||||
case Op::TypeHitObjectNV:
|
||||
case Op::ColorAttachmentReadEXT:
|
||||
case Op::DepthAttachmentReadEXT:
|
||||
case Op::StencilAttachmentReadEXT:
|
||||
@@ -5006,7 +5005,6 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
case Op::RayQueryGetIntersectionTriangleVertexPositionsKHR:
|
||||
case Op::ConvertBF16ToFINTEL:
|
||||
case Op::ConvertFToBF16INTEL:
|
||||
case Op::TypeCooperativeMatrixKHR:
|
||||
case Op::CooperativeMatrixLoadKHR:
|
||||
case Op::CooperativeMatrixStoreKHR:
|
||||
case Op::CooperativeMatrixMulAddKHR:
|
||||
@@ -5027,6 +5025,65 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
case Op::ConstantCompositeReplicateEXT:
|
||||
case Op::SpecConstantCompositeReplicateEXT:
|
||||
case Op::RawAccessChainNV:
|
||||
case Op::CreateTensorLayoutNV:
|
||||
case Op::CreateTensorViewNV:
|
||||
case Op::TensorViewSetClipNV:
|
||||
case Op::TensorViewSetDimensionNV:
|
||||
case Op::TensorViewSetStrideNV:
|
||||
case Op::TensorLayoutSetDimensionNV:
|
||||
case Op::TensorLayoutSetBlockSizeNV:
|
||||
case Op::TensorLayoutSetClampValueNV:
|
||||
case Op::TensorLayoutSetStrideNV:
|
||||
case Op::TensorLayoutSliceNV:
|
||||
case Op::RayQueryGetIntersectionClusterIdNV:
|
||||
case Op::RayQueryIsSphereHitNV:
|
||||
case Op::RayQueryIsLSSHitNV:
|
||||
case Op::RayQueryGetIntersectionLSSHitValueNV:
|
||||
case Op::RayQueryGetIntersectionLSSPositionsNV:
|
||||
case Op::RayQueryGetIntersectionLSSRadiiNV:
|
||||
case Op::RayQueryGetIntersectionSpherePositionNV:
|
||||
case Op::RayQueryGetIntersectionSphereRadiusNV:
|
||||
case Op::HitObjectIsLSSHitNV:
|
||||
case Op::HitObjectIsSphereHitNV:
|
||||
case Op::HitObjectGetLSSPositionsNV:
|
||||
case Op::HitObjectGetLSSRadiiNV:
|
||||
case Op::HitObjectGetSpherePositionNV:
|
||||
case Op::HitObjectGetSphereRadiusNV:
|
||||
case Op::HitObjectGetClusterIdNV:
|
||||
case Op::CooperativeMatrixConvertNV:
|
||||
case Op::CooperativeMatrixReduceNV:
|
||||
case Op::CooperativeMatrixLoadTensorNV:
|
||||
case Op::CooperativeMatrixStoreTensorNV:
|
||||
case Op::CooperativeMatrixPerElementOpNV:
|
||||
case Op::CooperativeMatrixTransposeNV:
|
||||
case Op::CooperativeVectorLoadNV:
|
||||
case Op::CooperativeVectorStoreNV:
|
||||
case Op::CooperativeVectorMatrixMulAddNV:
|
||||
case Op::CooperativeVectorMatrixMulNV:
|
||||
case Op::CooperativeVectorOuterProductAccumulateNV:
|
||||
case Op::CooperativeVectorReduceSumAccumulateNV:
|
||||
case Op::GraphARM:
|
||||
case Op::GraphConstantARM:
|
||||
case Op::GraphEntryPointARM:
|
||||
case Op::GraphInputARM:
|
||||
case Op::GraphSetOutputARM:
|
||||
case Op::GraphEndARM:
|
||||
case Op::ArithmeticFenceEXT:
|
||||
case Op::EnqueueNodePayloadsAMDX:
|
||||
case Op::IsNodePayloadValidAMDX:
|
||||
case Op::UntypedGroupAsyncCopyKHR:
|
||||
case Op::UntypedVariableKHR:
|
||||
case Op::UntypedAccessChainKHR:
|
||||
case Op::UntypedInBoundsAccessChainKHR:
|
||||
case Op::UntypedInBoundsPtrAccessChainKHR:
|
||||
case Op::UntypedPtrAccessChainKHR:
|
||||
case Op::UntypedArrayLengthKHR:
|
||||
case Op::UntypedPrefetchKHR:
|
||||
case Op::BitCastArrayQCOM:
|
||||
case Op::CompositeConstructCoopMatQCOM:
|
||||
case Op::CompositeExtractCoopMatQCOM:
|
||||
case Op::ExtractSubArrayQCOM:
|
||||
case Op::FmaKHR:
|
||||
{
|
||||
RDCERR("Unsupported extension opcode used %s", ToStr(opdata.op).c_str());
|
||||
|
||||
@@ -5093,19 +5150,15 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
case Op::ModuleProcessed:
|
||||
case Op::ExecutionModeId:
|
||||
case Op::TypeUntypedPointerKHR:
|
||||
case Op::UntypedVariableKHR:
|
||||
case Op::UntypedAccessChainKHR:
|
||||
case Op::UntypedInBoundsAccessChainKHR:
|
||||
case Op::UntypedInBoundsPtrAccessChainKHR:
|
||||
case Op::UntypedPtrAccessChainKHR:
|
||||
case Op::UntypedArrayLengthKHR:
|
||||
case Op::UntypedPrefetchKHR:
|
||||
case Op::TypeNodePayloadArrayAMDX:
|
||||
case Op::ConstantStringAMDX:
|
||||
case Op::SpecConstantStringAMDX:
|
||||
case Op::TypeCooperativeVectorNV:
|
||||
case Op::TypeTensorLayoutNV:
|
||||
case Op::TypeTensorViewNV:
|
||||
case Op::TypeGraphARM:
|
||||
case Op::TypeHitObjectNV:
|
||||
case Op::TypeCooperativeMatrixKHR:
|
||||
{
|
||||
RDCERR("Encountered unexpected global SPIR-V operation %s", ToStr(opdata.op).c_str());
|
||||
break;
|
||||
@@ -5171,69 +5224,35 @@ void ThreadState::StepNext(bool useDebugState, const uint32_t steps,
|
||||
case Op::TypePipeStorage:
|
||||
case Op::ConstantPipeStorage:
|
||||
case Op::CreatePipeFromPipeStorage:
|
||||
case Op::FPGARegINTEL:
|
||||
case Op::ReadPipeBlockingINTEL:
|
||||
case Op::WritePipeBlockingINTEL:
|
||||
case Op::ControlBarrierArriveINTEL:
|
||||
case Op::ControlBarrierWaitINTEL:
|
||||
case Op::ArithmeticFenceEXT:
|
||||
case Op::SubgroupMatrixMultiplyAccumulateINTEL:
|
||||
case Op::EnqueueNodePayloadsAMDX:
|
||||
case Op::IsNodePayloadValidAMDX:
|
||||
case Op::SubgroupBlockPrefetchINTEL:
|
||||
case Op::Subgroup2DBlockLoadINTEL:
|
||||
case Op::Subgroup2DBlockLoadTransformINTEL:
|
||||
case Op::Subgroup2DBlockLoadTransposeINTEL:
|
||||
case Op::Subgroup2DBlockPrefetchINTEL:
|
||||
case Op::Subgroup2DBlockStoreINTEL:
|
||||
case Op::CreateTensorLayoutNV:
|
||||
case Op::CreateTensorViewNV:
|
||||
case Op::TensorViewSetClipNV:
|
||||
case Op::TensorViewSetDimensionNV:
|
||||
case Op::TensorViewSetStrideNV:
|
||||
case Op::TensorLayoutSetDimensionNV:
|
||||
case Op::TensorLayoutSetBlockSizeNV:
|
||||
case Op::TensorLayoutSetClampValueNV:
|
||||
case Op::TensorLayoutSetStrideNV:
|
||||
case Op::TensorLayoutSliceNV:
|
||||
case Op::RayQueryGetClusterIdNV:
|
||||
case Op::RayQueryIsSphereHitNV:
|
||||
case Op::RayQueryIsLSSHitNV:
|
||||
case Op::RayQueryGetIntersectionLSSHitValueNV:
|
||||
case Op::RayQueryGetIntersectionLSSPositionsNV:
|
||||
case Op::RayQueryGetIntersectionLSSRadiiNV:
|
||||
case Op::RayQueryGetIntersectionSpherePositionNV:
|
||||
case Op::RayQueryGetIntersectionSphereRadiusNV:
|
||||
case Op::HitObjectIsLSSHitNV:
|
||||
case Op::HitObjectIsSphereHitNV:
|
||||
case Op::HitObjectGetLSSPositionsNV:
|
||||
case Op::HitObjectGetLSSRadiiNV:
|
||||
case Op::HitObjectGetSpherePositionNV:
|
||||
case Op::HitObjectGetSphereRadiusNV:
|
||||
case Op::HitObjectGetClusterIdNV:
|
||||
case Op::CooperativeMatrixConvertNV:
|
||||
case Op::CooperativeMatrixReduceNV:
|
||||
case Op::CooperativeMatrixLoadTensorNV:
|
||||
case Op::CooperativeMatrixStoreTensorNV:
|
||||
case Op::CooperativeMatrixPerElementOpNV:
|
||||
case Op::CooperativeMatrixTransposeNV:
|
||||
case Op::CooperativeVectorLoadNV:
|
||||
case Op::CooperativeVectorStoreNV:
|
||||
case Op::CooperativeVectorMatrixMulAddNV:
|
||||
case Op::CooperativeVectorMatrixMulNV:
|
||||
case Op::CooperativeVectorOuterProductAccumulateNV:
|
||||
case Op::CooperativeVectorReduceSumAccumulateNV:
|
||||
case Op::TypeTensorARM:
|
||||
case Op::TensorReadARM:
|
||||
case Op::TensorWriteARM:
|
||||
case Op::TensorQuerySizeARM:
|
||||
case Op::TaskSequenceAsyncINTEL:
|
||||
case Op::TaskSequenceCreateINTEL:
|
||||
case Op::TaskSequenceGetINTEL:
|
||||
case Op::TaskSequenceReleaseINTEL:
|
||||
case Op::TypeTaskSequenceINTEL:
|
||||
case Op::BitwiseFunctionINTEL:
|
||||
case Op::RoundFToTF32INTEL:
|
||||
case Op::SaveMemoryINTEL:
|
||||
case Op::RestoreMemoryINTEL:
|
||||
case Op::VariableLengthArrayINTEL:
|
||||
case Op::UntypedVariableLengthArrayINTEL:
|
||||
case Op::ConditionalEntryPointINTEL:
|
||||
case Op::ConditionalCapabilityINTEL:
|
||||
case Op::ConditionalExtensionINTEL:
|
||||
case Op::SpecConstantArchitectureINTEL:
|
||||
case Op::SpecConstantTargetINTEL:
|
||||
case Op::ConvertHandleToImageINTEL:
|
||||
case Op::ConvertHandleToSampledImageINTEL:
|
||||
case Op::ConvertHandleToSamplerINTEL:
|
||||
case Op::SpecConstantCapabilitiesINTEL:
|
||||
case Op::ConditionalCopyObjectINTEL:
|
||||
{
|
||||
// these are kernel only
|
||||
RDCERR("Encountered unexpected kernel SPIR-V operation %s", ToStr(opdata.op).c_str());
|
||||
|
||||
@@ -446,16 +446,9 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
"SPV_KHR_16bit_storage",
|
||||
"SPV_KHR_8bit_storage",
|
||||
"SPV_KHR_bit_instructions",
|
||||
// SPV_KHR_compute_shader_derivatives
|
||||
// SPV_KHR_cooperative_matrix
|
||||
"SPV_KHR_device_group",
|
||||
"SPV_KHR_expect_assume",
|
||||
"SPV_KHR_float_controls",
|
||||
// SPV_KHR_float_controls2
|
||||
// SPV_KHR_fragment_shader_barycentric
|
||||
// SPV_KHR_fragment_shading_rate
|
||||
// SPV_KHR_integer_dot_product
|
||||
// SPV_KHR_linkonce_odr - kernel only
|
||||
"SPV_KHR_maximal_reconvergence",
|
||||
"SPV_KHR_multiview",
|
||||
"SPV_KHR_no_integer_wrap_decoration",
|
||||
@@ -463,10 +456,6 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
"SPV_KHR_physical_storage_buffer",
|
||||
"SPV_KHR_post_depth_coverage",
|
||||
"SPV_KHR_quad_control",
|
||||
// SPV_KHR_ray_cull_mask
|
||||
// SPV_KHR_ray_query
|
||||
// SPV_KHR_ray_tracing
|
||||
// SPV_KHR_ray_tracing_position_fetch
|
||||
"SPV_KHR_relaxed_extended_instruction",
|
||||
"SPV_KHR_shader_atomic_counter_ops",
|
||||
"SPV_KHR_shader_ballot",
|
||||
@@ -477,34 +466,21 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
"SPV_KHR_subgroup_uniform_control_flow",
|
||||
"SPV_KHR_subgroup_vote",
|
||||
"SPV_KHR_terminate_invocation",
|
||||
// SPV_KHR_uniform_group_instructions - kernel?
|
||||
// SPV_KHR_untyped_pointers - kernel
|
||||
// SPV_KHR_variable_pointers
|
||||
"SPV_KHR_vulkan_memory_model",
|
||||
// SPV_KHR_workgroup_memory_explicit_layout
|
||||
|
||||
// EXT extensions
|
||||
// SPV_EXT_arithmetic_fence - kernel?
|
||||
"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_image_raw10_raw12 - kernel?
|
||||
"SPV_EXT_mesh_shader",
|
||||
// SPV_EXT_opacity_micromap
|
||||
// SPV_EXT_optnone - kernel?
|
||||
"SPV_EXT_physical_storage_buffer",
|
||||
// SPV_EXT_relaxed_printf_string_address_space - kernel
|
||||
// SPV_EXT_replicated_composites
|
||||
"SPV_EXT_shader_atomic_float_add",
|
||||
// SPV_EXT_shader_atomic_float_min_max
|
||||
// SPV_EXT_shader_atomic_float16_add
|
||||
"SPV_EXT_shader_atomic_float_min_max",
|
||||
"SPV_EXT_shader_atomic_float16_add",
|
||||
"SPV_EXT_shader_image_int64",
|
||||
"SPV_EXT_shader_stencil_export",
|
||||
// SPV_EXT_shader_tile_image
|
||||
"SPV_EXT_shader_viewport_index_layer",
|
||||
// SPV_EXT_ycbcr_attachments
|
||||
|
||||
// vendor extensions
|
||||
"SPV_GOOGLE_decorate_string",
|
||||
@@ -629,21 +605,17 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::PhysicalStorageBufferAddresses:
|
||||
case Capability::MeshShadingEXT:
|
||||
case Capability::QuadControlKHR:
|
||||
{
|
||||
supported = true;
|
||||
break;
|
||||
}
|
||||
case Capability::GroupNonUniform:
|
||||
case Capability::GroupNonUniformVote:
|
||||
case Capability::GroupNonUniformArithmetic:
|
||||
case Capability::GroupNonUniformBallot:
|
||||
case Capability::GroupNonUniformShuffle:
|
||||
case Capability::GroupNonUniformShuffleRelative:
|
||||
case Capability::GroupNonUniformClustered:
|
||||
case Capability::GroupNonUniformQuad:
|
||||
case Capability::GroupNonUniformRotateKHR:
|
||||
case Capability::GroupNonUniformShuffle:
|
||||
case Capability::GroupNonUniformShuffleRelative:
|
||||
case Capability::GroupNonUniformVote:
|
||||
case Capability::SubgroupBallotKHR:
|
||||
case Capability::SubgroupVoteKHR:
|
||||
case Capability::GroupNonUniformRotateKHR:
|
||||
case Capability::GroupNonUniformArithmetic:
|
||||
{
|
||||
supported = true;
|
||||
break;
|
||||
@@ -651,48 +623,31 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
|
||||
// we plan to support these but needs additional testing/proving
|
||||
|
||||
// MSAA custom interpolation
|
||||
// SPIR-V 1.0 MSAA custom interpolation
|
||||
case Capability::InterpolationFunction:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// variable pointers
|
||||
case Capability::VariablePointersStorageBuffer:
|
||||
case Capability::VariablePointers:
|
||||
// SPIR-V 1.0 Sparse Operations
|
||||
case Capability::SparseResidency:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// float controls
|
||||
// SPIR-V 1.4 / SPV_KHR_float_controls
|
||||
case Capability::DenormPreserve:
|
||||
case Capability::DenormFlushToZero:
|
||||
case Capability::RoundingModeRTE:
|
||||
case Capability::RoundingModeRTZ:
|
||||
|
||||
case Capability::FloatControls2:
|
||||
|
||||
// group instructions
|
||||
|
||||
// workgroup layout:
|
||||
case Capability::WorkgroupMemoryExplicitLayout16BitAccessKHR:
|
||||
case Capability::WorkgroupMemoryExplicitLayout8BitAccessKHR:
|
||||
case Capability::WorkgroupMemoryExplicitLayoutKHR:
|
||||
|
||||
// sparse operations
|
||||
case Capability::SparseResidency:
|
||||
|
||||
// fragment interlock
|
||||
case Capability::FragmentShaderSampleInterlockEXT:
|
||||
case Capability::FragmentShaderShadingRateInterlockEXT:
|
||||
case Capability::FragmentShaderPixelInterlockEXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// fragment shading rate
|
||||
case Capability::FragmentShadingRateKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// integer dot product
|
||||
// SPIR-V 1.6 / SPV_KHR_integer_dot_product
|
||||
case Capability::DotProduct:
|
||||
case Capability::DotProductInput4x8Bit:
|
||||
case Capability::DotProductInput4x8BitPacked:
|
||||
@@ -702,29 +657,15 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
break;
|
||||
}
|
||||
|
||||
// raytracing
|
||||
case Capability::RayQueryKHR:
|
||||
case Capability::RayTraversalPrimitiveCullingKHR:
|
||||
case Capability::RayTracingKHR:
|
||||
case Capability::RayCullMaskKHR:
|
||||
case Capability::RayTracingOpacityMicromapEXT:
|
||||
case Capability::RayTracingNV:
|
||||
case Capability::ShaderInvocationReorderNV:
|
||||
case Capability::RayQueryPositionFetchKHR:
|
||||
case Capability::RayTracingPositionFetchKHR:
|
||||
// SPV_KHR_bfloat16
|
||||
case Capability::BFloat16TypeKHR:
|
||||
case Capability::BFloat16DotProductKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// barycentric
|
||||
case Capability::FragmentBarycentricKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// compute shader derivatives
|
||||
// SPV_KHR_compute_shader_derivatives
|
||||
case Capability::ComputeDerivativeGroupQuadsKHR:
|
||||
case Capability::ComputeDerivativeGroupLinearKHR:
|
||||
{
|
||||
@@ -732,17 +673,104 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
break;
|
||||
}
|
||||
|
||||
// untyped pointers
|
||||
// SPV_KHR_float_controls2
|
||||
case Capability::FloatControls2:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_KHR_fma
|
||||
case Capability::FMAKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_KHR_fragment_shader_barycentric
|
||||
case Capability::FragmentBarycentricKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_KHR_fragment_shading_rate
|
||||
case Capability::FragmentShadingRateKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_KHR_untyped_pointers
|
||||
case Capability::UntypedPointersKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// bfloat16
|
||||
case Capability::BFloat16TypeKHR:
|
||||
case Capability::BFloat16DotProductKHR:
|
||||
case Capability::BFloat16CooperativeMatrixKHR:
|
||||
// SPV_KHR_variable_pointers
|
||||
case Capability::VariablePointersStorageBuffer:
|
||||
case Capability::VariablePointers:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_KHR_workgroup_memory_explicit_layout
|
||||
case Capability::WorkgroupMemoryExplicitLayout16BitAccessKHR:
|
||||
case Capability::WorkgroupMemoryExplicitLayout8BitAccessKHR:
|
||||
case Capability::WorkgroupMemoryExplicitLayoutKHR:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// Ray tracing
|
||||
case Capability::RayCullMaskKHR:
|
||||
case Capability::RayQueryKHR:
|
||||
case Capability::RayQueryPositionFetchKHR:
|
||||
case Capability::RayTracingKHR:
|
||||
case Capability::RayTracingPositionFetchKHR:
|
||||
case Capability::RayTraversalPrimitiveCullingKHR:
|
||||
case Capability::RayTracingOpacityMicromapEXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_EXT_float8
|
||||
case Capability::Float8EXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_EXT_fragment_shader_interlock
|
||||
case Capability::FragmentShaderSampleInterlockEXT:
|
||||
case Capability::FragmentShaderShadingRateInterlockEXT:
|
||||
case Capability::FragmentShaderPixelInterlockEXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
case Capability::ReplicatedCompositesEXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_EXT_shader_64bit_indexing
|
||||
case Capability::Shader64BitIndexingEXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// SPV_EXT_shader_tile_image
|
||||
case Capability::TileImageColorReadAccessEXT:
|
||||
case Capability::TileImageDepthReadAccessEXT:
|
||||
case Capability::TileImageStencilReadAccessEXT:
|
||||
{
|
||||
supported = false;
|
||||
break;
|
||||
@@ -789,12 +817,12 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::FunctionPointersINTEL:
|
||||
case Capability::IndirectReferencesINTEL:
|
||||
case Capability::FPGAKernelAttributesINTEL:
|
||||
case Capability::FPGALoopControlsINTEL:
|
||||
case Capability::FPGAMemoryAttributesINTEL:
|
||||
case Capability::FPGARegINTEL:
|
||||
case Capability::FPGALoopControlsALTERA:
|
||||
case Capability::FPGAMemoryAttributesALTERA:
|
||||
case Capability::FPGARegALTERA:
|
||||
case Capability::UnstructuredLoopControlsINTEL:
|
||||
case Capability::KernelAttributesINTEL:
|
||||
case Capability::BlockingPipesINTEL:
|
||||
case Capability::BlockingPipesALTERA:
|
||||
case Capability::RayTracingMotionBlurNV:
|
||||
case Capability::RoundToInfinityINTEL:
|
||||
case Capability::FloatingPointModeINTEL:
|
||||
@@ -804,15 +832,15 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::VariableLengthArrayINTEL:
|
||||
case Capability::FunctionFloatControlINTEL:
|
||||
case Capability::FPFastMathModeINTEL:
|
||||
case Capability::ArbitraryPrecisionFixedPointINTEL:
|
||||
case Capability::ArbitraryPrecisionFloatingPointINTEL:
|
||||
case Capability::ArbitraryPrecisionIntegersINTEL:
|
||||
case Capability::FPGAMemoryAccessesINTEL:
|
||||
case Capability::FPGAClusterAttributesINTEL:
|
||||
case Capability::LoopFuseINTEL:
|
||||
case Capability::FPGABufferLocationINTEL:
|
||||
case Capability::USMStorageClassesINTEL:
|
||||
case Capability::IOPipesINTEL:
|
||||
case Capability::ArbitraryPrecisionFixedPointALTERA:
|
||||
case Capability::ArbitraryPrecisionFloatingPointALTERA:
|
||||
case Capability::ArbitraryPrecisionIntegersALTERA:
|
||||
case Capability::FPGAMemoryAccessesALTERA:
|
||||
case Capability::FPGAClusterAttributesALTERA:
|
||||
case Capability::LoopFuseALTERA:
|
||||
case Capability::FPGABufferLocationALTERA:
|
||||
case Capability::USMStorageClassesALTERA:
|
||||
case Capability::IOPipesALTERA:
|
||||
case Capability::LongCompositesINTEL:
|
||||
case Capability::DebugInfoModuleINTEL:
|
||||
case Capability::BindlessTextureNV:
|
||||
@@ -820,19 +848,16 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::SplitBarrierINTEL:
|
||||
case Capability::GroupUniformArithmeticKHR:
|
||||
case Capability::CoreBuiltinsARM:
|
||||
case Capability::FPGADSPControlINTEL:
|
||||
case Capability::FPGAInvocationPipeliningAttributesINTEL:
|
||||
case Capability::RuntimeAlignedAttributeINTEL:
|
||||
case Capability::TileImageColorReadAccessEXT:
|
||||
case Capability::TileImageDepthReadAccessEXT:
|
||||
case Capability::TileImageStencilReadAccessEXT:
|
||||
case Capability::FPGADSPControlALTERA:
|
||||
case Capability::FPGAInvocationPipeliningAttributesALTERA:
|
||||
case Capability::RuntimeAlignedAttributeALTERA:
|
||||
case Capability::TextureSampleWeightedQCOM:
|
||||
case Capability::TextureBoxFilterQCOM:
|
||||
case Capability::TextureBlockMatchQCOM:
|
||||
case Capability::BFloat16ConversionINTEL:
|
||||
case Capability::FPGAKernelAttributesv2INTEL:
|
||||
case Capability::FPGALatencyControlINTEL:
|
||||
case Capability::FPGAArgumentInterfacesINTEL:
|
||||
case Capability::FPGALatencyControlALTERA:
|
||||
case Capability::FPGAArgumentInterfacesALTERA:
|
||||
case Capability::TextureBlockMatch2QCOM:
|
||||
case Capability::ShaderEnqueueAMDX:
|
||||
case Capability::DisplacementMicromapNV:
|
||||
@@ -846,9 +871,9 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::CooperativeMatrixPerElementOperationsNV:
|
||||
case Capability::CooperativeMatrixTensorAddressingNV:
|
||||
case Capability::CooperativeMatrixBlockLoadsNV:
|
||||
case Capability::FPGAClusterAttributesV2INTEL:
|
||||
case Capability::FPGAClusterAttributesV2ALTERA:
|
||||
case Capability::FPMaxErrorINTEL:
|
||||
case Capability::GlobalVariableFPGADecorationsINTEL:
|
||||
case Capability::GlobalVariableFPGADecorationsALTERA:
|
||||
case Capability::MaskedGatherScatterINTEL:
|
||||
case Capability::CacheControlsINTEL:
|
||||
case Capability::RegisterLimitsINTEL:
|
||||
@@ -860,7 +885,6 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::SubgroupMatrixMultiplyAccumulateINTEL:
|
||||
case Capability::CooperativeMatrixLayoutsARM:
|
||||
case Capability::RawAccessChainsNV:
|
||||
case Capability::ReplicatedCompositesEXT:
|
||||
case Capability::RayTracingSpheresGeometryNV:
|
||||
case Capability::RayTracingLinearSweptSpheresGeometryNV:
|
||||
case Capability::RayTracingClusterAccelerationStructureNV:
|
||||
@@ -873,9 +897,19 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
|
||||
case Capability::TileShadingQCOM:
|
||||
case Capability::Int4TypeINTEL:
|
||||
case Capability::Int4CooperativeMatrixINTEL:
|
||||
case Capability::TaskSequenceINTEL:
|
||||
case Capability::TaskSequenceALTERA:
|
||||
case Capability::TernaryBitwiseFunctionINTEL:
|
||||
case Capability::TensorFloat32RoundingINTEL:
|
||||
case Capability::GraphARM:
|
||||
case Capability::BFloat16CooperativeMatrixKHR:
|
||||
case Capability::Float8CooperativeMatrixEXT:
|
||||
case Capability::CooperativeMatrixConversionQCOM:
|
||||
case Capability::UntypedVariableLengthArrayINTEL:
|
||||
case Capability::SpecConditionalINTEL:
|
||||
case Capability::FunctionVariantsINTEL:
|
||||
case Capability::BindlessImagesINTEL:
|
||||
case Capability::RayTracingNV:
|
||||
case Capability::ShaderInvocationReorderNV:
|
||||
case Capability::Max:
|
||||
case Capability::Invalid:
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,29 +25,13 @@
|
||||
/******************************************************************************
|
||||
* Generated from Khronos SPIR-V machine-readable JSON grammar.
|
||||
*
|
||||
* Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||
* Copyright: 2014-2024 The Khronos Group Inc.
|
||||
* License: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and/or associated documentation files (the "Materials"),
|
||||
* to deal in the Materials without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Materials, and to permit persons to whom the
|
||||
* Materials are furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Materials.
|
||||
*
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
|
||||
* STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
|
||||
* HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
|
||||
* IN THE MATERIALS.
|
||||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
|
||||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
|
||||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
|
||||
* https://www.khronos.org/registry/
|
||||
******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
@@ -134,6 +118,7 @@ enum class Generator : uint32_t
|
||||
LLVMSPIRVBackend = 43,
|
||||
Kongruent = 44,
|
||||
NuvkSPIRVEmitterandDLSLcompiler = 45,
|
||||
Arc3DShaderCompiler = 49,
|
||||
};
|
||||
|
||||
enum class ImageOperands : uint32_t
|
||||
@@ -201,16 +186,16 @@ enum class LoopControl : uint32_t
|
||||
IterationMultiple = 0x0040,
|
||||
PeelCount = 0x0080,
|
||||
PartialCount = 0x0100,
|
||||
InitiationIntervalINTEL = 0x10000,
|
||||
MaxConcurrencyINTEL = 0x20000,
|
||||
DependencyArrayINTEL = 0x40000,
|
||||
PipelineEnableINTEL = 0x80000,
|
||||
LoopCoalesceINTEL = 0x100000,
|
||||
MaxInterleavingINTEL = 0x200000,
|
||||
SpeculatedIterationsINTEL = 0x400000,
|
||||
NoFusionINTEL = 0x800000,
|
||||
LoopCountINTEL = 0x1000000,
|
||||
MaxReinvocationDelayINTEL = 0x2000000,
|
||||
InitiationIntervalALTERA = 0x10000,
|
||||
MaxConcurrencyALTERA = 0x20000,
|
||||
DependencyArrayALTERA = 0x40000,
|
||||
PipelineEnableALTERA = 0x80000,
|
||||
LoopCoalesceALTERA = 0x100000,
|
||||
MaxInterleavingALTERA = 0x200000,
|
||||
SpeculatedIterationsALTERA = 0x400000,
|
||||
NoFusionALTERA = 0x800000,
|
||||
LoopCountALTERA = 0x1000000,
|
||||
MaxReinvocationDelayALTERA = 0x2000000,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
};
|
||||
@@ -467,6 +452,7 @@ enum class ExecutionMode : uint32_t
|
||||
SampleInterlockUnorderedEXT = 5369,
|
||||
ShadingRateInterlockOrderedEXT = 5370,
|
||||
ShadingRateInterlockUnorderedEXT = 5371,
|
||||
Shader64BitIndexingEXT = 5427,
|
||||
SharedLocalMemorySizeINTEL = 5618,
|
||||
RoundingModeRTPINTEL = 5620,
|
||||
RoundingModeRTNINTEL = 5621,
|
||||
@@ -517,8 +503,8 @@ enum class StorageClass : uint32_t
|
||||
HitObjectAttributeNV = 5385,
|
||||
TaskPayloadWorkgroupEXT = 5402,
|
||||
CodeSectionINTEL = 5605,
|
||||
DeviceOnlyINTEL = 5936,
|
||||
HostOnlyINTEL = 5937,
|
||||
DeviceOnlyALTERA = 5936,
|
||||
HostOnlyALTERA = 5937,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
};
|
||||
@@ -750,7 +736,7 @@ enum class FunctionParameterAttribute : uint32_t
|
||||
NoCapture = 5,
|
||||
NoWrite = 6,
|
||||
NoReadWrite = 7,
|
||||
RuntimeAlignedINTEL = 5940,
|
||||
RuntimeAlignedALTERA = 5940,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
};
|
||||
@@ -804,6 +790,7 @@ enum class Decoration : uint32_t
|
||||
MaxByteOffset = 45,
|
||||
AlignmentId = 46,
|
||||
MaxByteOffsetId = 47,
|
||||
SaturatedToLargestFloat8NormalConversionEXT = 4216,
|
||||
NoSignedWrap = 4469,
|
||||
NoUnsignedWrap = 4470,
|
||||
WeightTextureQCOM = 4487,
|
||||
@@ -848,55 +835,56 @@ enum class Decoration : uint32_t
|
||||
UserTypeGOOGLE = 5636,
|
||||
FunctionRoundingModeINTEL = 5822,
|
||||
FunctionDenormModeINTEL = 5823,
|
||||
RegisterINTEL = 5825,
|
||||
MemoryINTEL = 5826,
|
||||
NumbanksINTEL = 5827,
|
||||
BankwidthINTEL = 5828,
|
||||
MaxPrivateCopiesINTEL = 5829,
|
||||
SinglepumpINTEL = 5830,
|
||||
DoublepumpINTEL = 5831,
|
||||
MaxReplicatesINTEL = 5832,
|
||||
SimpleDualPortINTEL = 5833,
|
||||
MergeINTEL = 5834,
|
||||
BankBitsINTEL = 5835,
|
||||
ForcePow2DepthINTEL = 5836,
|
||||
StridesizeINTEL = 5883,
|
||||
WordsizeINTEL = 5884,
|
||||
TrueDualPortINTEL = 5885,
|
||||
BurstCoalesceINTEL = 5899,
|
||||
CacheSizeINTEL = 5900,
|
||||
DontStaticallyCoalesceINTEL = 5901,
|
||||
PrefetchINTEL = 5902,
|
||||
StallEnableINTEL = 5905,
|
||||
FuseLoopsInFunctionINTEL = 5907,
|
||||
MathOpDSPModeINTEL = 5909,
|
||||
RegisterALTERA = 5825,
|
||||
MemoryALTERA = 5826,
|
||||
NumbanksALTERA = 5827,
|
||||
BankwidthALTERA = 5828,
|
||||
MaxPrivateCopiesALTERA = 5829,
|
||||
SinglepumpALTERA = 5830,
|
||||
DoublepumpALTERA = 5831,
|
||||
MaxReplicatesALTERA = 5832,
|
||||
SimpleDualPortALTERA = 5833,
|
||||
MergeALTERA = 5834,
|
||||
BankBitsALTERA = 5835,
|
||||
ForcePow2DepthALTERA = 5836,
|
||||
StridesizeALTERA = 5883,
|
||||
WordsizeALTERA = 5884,
|
||||
TrueDualPortALTERA = 5885,
|
||||
BurstCoalesceALTERA = 5899,
|
||||
CacheSizeALTERA = 5900,
|
||||
DontStaticallyCoalesceALTERA = 5901,
|
||||
PrefetchALTERA = 5902,
|
||||
StallEnableALTERA = 5905,
|
||||
FuseLoopsInFunctionALTERA = 5907,
|
||||
MathOpDSPModeALTERA = 5909,
|
||||
AliasScopeINTEL = 5914,
|
||||
NoAliasINTEL = 5915,
|
||||
InitiationIntervalINTEL = 5917,
|
||||
MaxConcurrencyINTEL = 5918,
|
||||
PipelineEnableINTEL = 5919,
|
||||
BufferLocationINTEL = 5921,
|
||||
IOPipeStorageINTEL = 5944,
|
||||
InitiationIntervalALTERA = 5917,
|
||||
MaxConcurrencyALTERA = 5918,
|
||||
PipelineEnableALTERA = 5919,
|
||||
BufferLocationALTERA = 5921,
|
||||
IOPipeStorageALTERA = 5944,
|
||||
FunctionFloatingPointModeINTEL = 6080,
|
||||
SingleElementVectorINTEL = 6085,
|
||||
VectorComputeCallableFunctionINTEL = 6087,
|
||||
MediaBlockIOINTEL = 6140,
|
||||
StallFreeINTEL = 6151,
|
||||
StallFreeALTERA = 6151,
|
||||
FPMaxErrorDecorationINTEL = 6170,
|
||||
LatencyControlLabelINTEL = 6172,
|
||||
LatencyControlConstraintINTEL = 6173,
|
||||
ConduitKernelArgumentINTEL = 6175,
|
||||
RegisterMapKernelArgumentINTEL = 6176,
|
||||
MMHostInterfaceAddressWidthINTEL = 6177,
|
||||
MMHostInterfaceDataWidthINTEL = 6178,
|
||||
MMHostInterfaceLatencyINTEL = 6179,
|
||||
MMHostInterfaceReadWriteModeINTEL = 6180,
|
||||
MMHostInterfaceMaxBurstINTEL = 6181,
|
||||
MMHostInterfaceWaitRequestINTEL = 6182,
|
||||
StableKernelArgumentINTEL = 6183,
|
||||
LatencyControlLabelALTERA = 6172,
|
||||
LatencyControlConstraintALTERA = 6173,
|
||||
ConduitKernelArgumentALTERA = 6175,
|
||||
RegisterMapKernelArgumentALTERA = 6176,
|
||||
MMHostInterfaceAddressWidthALTERA = 6177,
|
||||
MMHostInterfaceDataWidthALTERA = 6178,
|
||||
MMHostInterfaceLatencyALTERA = 6179,
|
||||
MMHostInterfaceReadWriteModeALTERA = 6180,
|
||||
MMHostInterfaceMaxBurstALTERA = 6181,
|
||||
MMHostInterfaceWaitRequestALTERA = 6182,
|
||||
StableKernelArgumentALTERA = 6183,
|
||||
HostAccessINTEL = 6188,
|
||||
InitModeINTEL = 6190,
|
||||
ImplementInRegisterMapINTEL = 6191,
|
||||
InitModeALTERA = 6190,
|
||||
ImplementInRegisterMapALTERA = 6191,
|
||||
ConditionalINTEL = 6247,
|
||||
CacheControlLoadINTEL = 6442,
|
||||
CacheControlStoreINTEL = 6443,
|
||||
Max,
|
||||
@@ -1149,7 +1137,10 @@ enum class Capability : uint32_t
|
||||
TensorsARM = 4174,
|
||||
StorageTensorArrayDynamicIndexingARM = 4175,
|
||||
StorageTensorArrayNonUniformIndexingARM = 4176,
|
||||
GraphARM = 4191,
|
||||
CooperativeMatrixLayoutsARM = 4201,
|
||||
Float8EXT = 4212,
|
||||
Float8CooperativeMatrixEXT = 4213,
|
||||
FragmentShadingRateKHR = 4422,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
@@ -1184,6 +1175,7 @@ enum class Capability : uint32_t
|
||||
TextureBoxFilterQCOM = 4485,
|
||||
TextureBlockMatchQCOM = 4486,
|
||||
TileShadingQCOM = 4495,
|
||||
CooperativeMatrixConversionQCOM = 4496,
|
||||
TextureBlockMatch2QCOM = 4498,
|
||||
Float16ImageAMD = 5008,
|
||||
ImageGatherBiasLodAMD = 5009,
|
||||
@@ -1250,6 +1242,7 @@ enum class Capability : uint32_t
|
||||
RawAccessChainsNV = 5414,
|
||||
RayTracingSpheresGeometryNV = 5418,
|
||||
RayTracingLinearSweptSpheresGeometryNV = 5419,
|
||||
Shader64BitIndexingEXT = 5426,
|
||||
CooperativeMatrixReductionsNV = 5430,
|
||||
CooperativeMatrixConversionsNV = 5431,
|
||||
CooperativeMatrixPerElementOperationsNV = 5432,
|
||||
@@ -1279,27 +1272,27 @@ enum class Capability : uint32_t
|
||||
SubgroupAvcMotionEstimationChromaINTEL = 5698,
|
||||
VariableLengthArrayINTEL = 5817,
|
||||
FunctionFloatControlINTEL = 5821,
|
||||
FPGAMemoryAttributesINTEL = 5824,
|
||||
FPGAMemoryAttributesALTERA = 5824,
|
||||
FPFastMathModeINTEL = 5837,
|
||||
ArbitraryPrecisionIntegersINTEL = 5844,
|
||||
ArbitraryPrecisionFloatingPointINTEL = 5845,
|
||||
ArbitraryPrecisionIntegersALTERA = 5844,
|
||||
ArbitraryPrecisionFloatingPointALTERA = 5845,
|
||||
UnstructuredLoopControlsINTEL = 5886,
|
||||
FPGALoopControlsINTEL = 5888,
|
||||
FPGALoopControlsALTERA = 5888,
|
||||
KernelAttributesINTEL = 5892,
|
||||
FPGAKernelAttributesINTEL = 5897,
|
||||
FPGAMemoryAccessesINTEL = 5898,
|
||||
FPGAClusterAttributesINTEL = 5904,
|
||||
LoopFuseINTEL = 5906,
|
||||
FPGADSPControlINTEL = 5908,
|
||||
FPGAMemoryAccessesALTERA = 5898,
|
||||
FPGAClusterAttributesALTERA = 5904,
|
||||
LoopFuseALTERA = 5906,
|
||||
FPGADSPControlALTERA = 5908,
|
||||
MemoryAccessAliasingINTEL = 5910,
|
||||
FPGAInvocationPipeliningAttributesINTEL = 5916,
|
||||
FPGABufferLocationINTEL = 5920,
|
||||
ArbitraryPrecisionFixedPointINTEL = 5922,
|
||||
USMStorageClassesINTEL = 5935,
|
||||
RuntimeAlignedAttributeINTEL = 5939,
|
||||
IOPipesINTEL = 5943,
|
||||
BlockingPipesINTEL = 5945,
|
||||
FPGARegINTEL = 5948,
|
||||
FPGAInvocationPipeliningAttributesALTERA = 5916,
|
||||
FPGABufferLocationALTERA = 5920,
|
||||
ArbitraryPrecisionFixedPointALTERA = 5922,
|
||||
USMStorageClassesALTERA = 5935,
|
||||
RuntimeAlignedAttributeALTERA = 5939,
|
||||
IOPipesALTERA = 5943,
|
||||
BlockingPipesALTERA = 5945,
|
||||
FPGARegALTERA = 5948,
|
||||
DotProductInputAll = 6016,
|
||||
DotProductInput4x8Bit = 6017,
|
||||
DotProductInput4x8BitPacked = 6018,
|
||||
@@ -1310,6 +1303,7 @@ enum class Capability : uint32_t
|
||||
BitInstructions = 6025,
|
||||
GroupNonUniformRotateKHR = 6026,
|
||||
FloatControls2 = 6029,
|
||||
FMAKHR = 6030,
|
||||
AtomicFloat32AddEXT = 6033,
|
||||
AtomicFloat64AddEXT = 6034,
|
||||
LongCompositesINTEL = 6089,
|
||||
@@ -1319,25 +1313,29 @@ enum class Capability : uint32_t
|
||||
BFloat16ConversionINTEL = 6115,
|
||||
SplitBarrierINTEL = 6141,
|
||||
ArithmeticFenceEXT = 6144,
|
||||
FPGAClusterAttributesV2INTEL = 6150,
|
||||
FPGAClusterAttributesV2ALTERA = 6150,
|
||||
FPGAKernelAttributesv2INTEL = 6161,
|
||||
TaskSequenceINTEL = 6162,
|
||||
TaskSequenceALTERA = 6162,
|
||||
FPMaxErrorINTEL = 6169,
|
||||
FPGALatencyControlINTEL = 6171,
|
||||
FPGAArgumentInterfacesINTEL = 6174,
|
||||
FPGALatencyControlALTERA = 6171,
|
||||
FPGAArgumentInterfacesALTERA = 6174,
|
||||
GlobalVariableHostAccessINTEL = 6187,
|
||||
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||
GlobalVariableFPGADecorationsALTERA = 6189,
|
||||
SubgroupBufferPrefetchINTEL = 6220,
|
||||
Subgroup2DBlockIOINTEL = 6228,
|
||||
Subgroup2DBlockTransformINTEL = 6229,
|
||||
Subgroup2DBlockTransposeINTEL = 6230,
|
||||
SubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
||||
TernaryBitwiseFunctionINTEL = 6241,
|
||||
UntypedVariableLengthArrayINTEL = 6243,
|
||||
SpecConditionalINTEL = 6245,
|
||||
FunctionVariantsINTEL = 6246,
|
||||
GroupUniformArithmeticKHR = 6400,
|
||||
TensorFloat32RoundingINTEL = 6425,
|
||||
MaskedGatherScatterINTEL = 6427,
|
||||
CacheControlsINTEL = 6441,
|
||||
RegisterLimitsINTEL = 6460,
|
||||
BindlessImagesINTEL = 6528,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
};
|
||||
@@ -1442,8 +1440,8 @@ BITMASK_OPERATORS(TensorAddressingOperands);
|
||||
|
||||
enum class InitializationModeQualifier : uint32_t
|
||||
{
|
||||
InitOnDeviceReprogramINTEL = 0,
|
||||
InitOnDeviceResetINTEL = 1,
|
||||
InitOnDeviceReprogramALTERA = 0,
|
||||
InitOnDeviceResetALTERA = 1,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
};
|
||||
@@ -1502,6 +1500,8 @@ BITMASK_OPERATORS(MatrixMultiplyAccumulateOperands);
|
||||
enum class FPEncoding : uint32_t
|
||||
{
|
||||
BFloat16KHR = 0,
|
||||
Float8E4M3EXT = 4214,
|
||||
Float8E5M2EXT = 4215,
|
||||
Max,
|
||||
Invalid = ~0U,
|
||||
};
|
||||
@@ -1629,15 +1629,15 @@ struct LoopControlAndParamDatas
|
||||
uint32_t iterationMultiple = {};
|
||||
uint32_t peelCount = {};
|
||||
uint32_t partialCount = {};
|
||||
uint32_t initiationIntervalINTEL = {};
|
||||
uint32_t maxConcurrencyINTEL = {};
|
||||
uint32_t dependencyArrayINTEL = {};
|
||||
uint32_t pipelineEnableINTEL = {};
|
||||
uint32_t loopCoalesceINTEL = {};
|
||||
uint32_t maxInterleavingINTEL = {};
|
||||
uint32_t speculatedIterationsINTEL = {};
|
||||
uint32_t loopCountINTEL = {};
|
||||
uint32_t maxReinvocationDelayINTEL = {};
|
||||
uint32_t initiationIntervalALTERA = {};
|
||||
uint32_t maxConcurrencyALTERA = {};
|
||||
uint32_t dependencyArrayALTERA = {};
|
||||
uint32_t pipelineEnableALTERA = {};
|
||||
uint32_t loopCoalesceALTERA = {};
|
||||
uint32_t maxInterleavingALTERA = {};
|
||||
uint32_t speculatedIterationsALTERA = {};
|
||||
uint32_t loopCountALTERA = {};
|
||||
uint32_t maxReinvocationDelayALTERA = {};
|
||||
|
||||
operator LoopControl() const { return flags; }
|
||||
bool operator &(const LoopControl v) const { return bool(flags & v); }
|
||||
@@ -1661,26 +1661,26 @@ struct LoopControlAndParamDatas
|
||||
void unsetPeelCount() { flags &= ~LoopControl::PeelCount; }
|
||||
void setPartialCount(uint32_t partialCountParam) { flags |= LoopControl::PartialCount; partialCount = partialCountParam; }
|
||||
void unsetPartialCount() { flags &= ~LoopControl::PartialCount; }
|
||||
void setInitiationIntervalINTEL(uint32_t initiationIntervalINTELParam) { flags |= LoopControl::InitiationIntervalINTEL; initiationIntervalINTEL = initiationIntervalINTELParam; }
|
||||
void unsetInitiationIntervalINTEL() { flags &= ~LoopControl::InitiationIntervalINTEL; }
|
||||
void setMaxConcurrencyINTEL(uint32_t maxConcurrencyINTELParam) { flags |= LoopControl::MaxConcurrencyINTEL; maxConcurrencyINTEL = maxConcurrencyINTELParam; }
|
||||
void unsetMaxConcurrencyINTEL() { flags &= ~LoopControl::MaxConcurrencyINTEL; }
|
||||
void setDependencyArrayINTEL(uint32_t dependencyArrayINTELParam) { flags |= LoopControl::DependencyArrayINTEL; dependencyArrayINTEL = dependencyArrayINTELParam; }
|
||||
void unsetDependencyArrayINTEL() { flags &= ~LoopControl::DependencyArrayINTEL; }
|
||||
void setPipelineEnableINTEL(uint32_t pipelineEnableINTELParam) { flags |= LoopControl::PipelineEnableINTEL; pipelineEnableINTEL = pipelineEnableINTELParam; }
|
||||
void unsetPipelineEnableINTEL() { flags &= ~LoopControl::PipelineEnableINTEL; }
|
||||
void setLoopCoalesceINTEL(uint32_t loopCoalesceINTELParam) { flags |= LoopControl::LoopCoalesceINTEL; loopCoalesceINTEL = loopCoalesceINTELParam; }
|
||||
void unsetLoopCoalesceINTEL() { flags &= ~LoopControl::LoopCoalesceINTEL; }
|
||||
void setMaxInterleavingINTEL(uint32_t maxInterleavingINTELParam) { flags |= LoopControl::MaxInterleavingINTEL; maxInterleavingINTEL = maxInterleavingINTELParam; }
|
||||
void unsetMaxInterleavingINTEL() { flags &= ~LoopControl::MaxInterleavingINTEL; }
|
||||
void setSpeculatedIterationsINTEL(uint32_t speculatedIterationsINTELParam) { flags |= LoopControl::SpeculatedIterationsINTEL; speculatedIterationsINTEL = speculatedIterationsINTELParam; }
|
||||
void unsetSpeculatedIterationsINTEL() { flags &= ~LoopControl::SpeculatedIterationsINTEL; }
|
||||
void setNoFusionINTEL() { flags |= LoopControl::NoFusionINTEL; }
|
||||
void unsetNoFusionINTEL() { flags &= ~LoopControl::NoFusionINTEL; }
|
||||
void setLoopCountINTEL(uint32_t loopCountINTELParam) { flags |= LoopControl::LoopCountINTEL; loopCountINTEL = loopCountINTELParam; }
|
||||
void unsetLoopCountINTEL() { flags &= ~LoopControl::LoopCountINTEL; }
|
||||
void setMaxReinvocationDelayINTEL(uint32_t maxReinvocationDelayINTELParam) { flags |= LoopControl::MaxReinvocationDelayINTEL; maxReinvocationDelayINTEL = maxReinvocationDelayINTELParam; }
|
||||
void unsetMaxReinvocationDelayINTEL() { flags &= ~LoopControl::MaxReinvocationDelayINTEL; }
|
||||
void setInitiationIntervalALTERA(uint32_t initiationIntervalALTERAParam) { flags |= LoopControl::InitiationIntervalALTERA; initiationIntervalALTERA = initiationIntervalALTERAParam; }
|
||||
void unsetInitiationIntervalALTERA() { flags &= ~LoopControl::InitiationIntervalALTERA; }
|
||||
void setMaxConcurrencyALTERA(uint32_t maxConcurrencyALTERAParam) { flags |= LoopControl::MaxConcurrencyALTERA; maxConcurrencyALTERA = maxConcurrencyALTERAParam; }
|
||||
void unsetMaxConcurrencyALTERA() { flags &= ~LoopControl::MaxConcurrencyALTERA; }
|
||||
void setDependencyArrayALTERA(uint32_t dependencyArrayALTERAParam) { flags |= LoopControl::DependencyArrayALTERA; dependencyArrayALTERA = dependencyArrayALTERAParam; }
|
||||
void unsetDependencyArrayALTERA() { flags &= ~LoopControl::DependencyArrayALTERA; }
|
||||
void setPipelineEnableALTERA(uint32_t pipelineEnableALTERAParam) { flags |= LoopControl::PipelineEnableALTERA; pipelineEnableALTERA = pipelineEnableALTERAParam; }
|
||||
void unsetPipelineEnableALTERA() { flags &= ~LoopControl::PipelineEnableALTERA; }
|
||||
void setLoopCoalesceALTERA(uint32_t loopCoalesceALTERAParam) { flags |= LoopControl::LoopCoalesceALTERA; loopCoalesceALTERA = loopCoalesceALTERAParam; }
|
||||
void unsetLoopCoalesceALTERA() { flags &= ~LoopControl::LoopCoalesceALTERA; }
|
||||
void setMaxInterleavingALTERA(uint32_t maxInterleavingALTERAParam) { flags |= LoopControl::MaxInterleavingALTERA; maxInterleavingALTERA = maxInterleavingALTERAParam; }
|
||||
void unsetMaxInterleavingALTERA() { flags &= ~LoopControl::MaxInterleavingALTERA; }
|
||||
void setSpeculatedIterationsALTERA(uint32_t speculatedIterationsALTERAParam) { flags |= LoopControl::SpeculatedIterationsALTERA; speculatedIterationsALTERA = speculatedIterationsALTERAParam; }
|
||||
void unsetSpeculatedIterationsALTERA() { flags &= ~LoopControl::SpeculatedIterationsALTERA; }
|
||||
void setNoFusionALTERA() { flags |= LoopControl::NoFusionALTERA; }
|
||||
void unsetNoFusionALTERA() { flags &= ~LoopControl::NoFusionALTERA; }
|
||||
void setLoopCountALTERA(uint32_t loopCountALTERAParam) { flags |= LoopControl::LoopCountALTERA; loopCountALTERA = loopCountALTERAParam; }
|
||||
void unsetLoopCountALTERA() { flags &= ~LoopControl::LoopCountALTERA; }
|
||||
void setMaxReinvocationDelayALTERA(uint32_t maxReinvocationDelayALTERAParam) { flags |= LoopControl::MaxReinvocationDelayALTERA; maxReinvocationDelayALTERA = maxReinvocationDelayALTERAParam; }
|
||||
void unsetMaxReinvocationDelayALTERA() { flags &= ~LoopControl::MaxReinvocationDelayALTERA; }
|
||||
};
|
||||
|
||||
struct MemoryAccessAndParamDatas
|
||||
@@ -1847,7 +1847,7 @@ struct FunctionDenormModeINTELParams
|
||||
FPDenormMode fPDenormMode;
|
||||
};
|
||||
|
||||
struct MathOpDSPModeINTELParams
|
||||
struct MathOpDSPModeALTERAParams
|
||||
{
|
||||
uint32_t mode;
|
||||
uint32_t propagate;
|
||||
@@ -1859,7 +1859,7 @@ struct FunctionFloatingPointModeINTELParams
|
||||
FPOperationMode fPOperationMode;
|
||||
};
|
||||
|
||||
struct LatencyControlConstraintINTELParams
|
||||
struct LatencyControlConstraintALTERAParams
|
||||
{
|
||||
uint32_t relativeTo;
|
||||
uint32_t controlType;
|
||||
@@ -1919,36 +1919,37 @@ struct DecorationAndParamData
|
||||
Id counterBuffer;
|
||||
FunctionRoundingModeINTELParams functionRoundingModeINTEL;
|
||||
FunctionDenormModeINTELParams functionDenormModeINTEL;
|
||||
uint32_t numbanksINTEL;
|
||||
uint32_t bankwidthINTEL;
|
||||
uint32_t maxPrivateCopiesINTEL;
|
||||
uint32_t maxReplicatesINTEL;
|
||||
uint32_t bankBitsINTEL;
|
||||
uint32_t forcePow2DepthINTEL;
|
||||
uint32_t stridesizeINTEL;
|
||||
uint32_t wordsizeINTEL;
|
||||
uint32_t cacheSizeINTEL;
|
||||
uint32_t prefetchINTEL;
|
||||
MathOpDSPModeINTELParams mathOpDSPModeINTEL;
|
||||
uint32_t numbanksALTERA;
|
||||
uint32_t bankwidthALTERA;
|
||||
uint32_t maxPrivateCopiesALTERA;
|
||||
uint32_t maxReplicatesALTERA;
|
||||
uint32_t bankBitsALTERA;
|
||||
uint32_t forcePow2DepthALTERA;
|
||||
uint32_t stridesizeALTERA;
|
||||
uint32_t wordsizeALTERA;
|
||||
uint32_t cacheSizeALTERA;
|
||||
uint32_t prefetchALTERA;
|
||||
MathOpDSPModeALTERAParams mathOpDSPModeALTERA;
|
||||
Id aliasScopeINTEL;
|
||||
Id noAliasINTEL;
|
||||
uint32_t initiationIntervalINTEL;
|
||||
uint32_t maxConcurrencyINTEL;
|
||||
uint32_t pipelineEnableINTEL;
|
||||
uint32_t bufferLocationINTEL;
|
||||
uint32_t iOPipeStorageINTEL;
|
||||
uint32_t initiationIntervalALTERA;
|
||||
uint32_t maxConcurrencyALTERA;
|
||||
uint32_t pipelineEnableALTERA;
|
||||
uint32_t bufferLocationALTERA;
|
||||
uint32_t iOPipeStorageALTERA;
|
||||
FunctionFloatingPointModeINTELParams functionFloatingPointModeINTEL;
|
||||
float fPMaxErrorDecorationINTEL;
|
||||
uint32_t latencyControlLabelINTEL;
|
||||
LatencyControlConstraintINTELParams latencyControlConstraintINTEL;
|
||||
uint32_t mMHostInterfaceAddressWidthINTEL;
|
||||
uint32_t mMHostInterfaceDataWidthINTEL;
|
||||
uint32_t mMHostInterfaceLatencyINTEL;
|
||||
AccessQualifier mMHostInterfaceReadWriteModeINTEL;
|
||||
uint32_t mMHostInterfaceMaxBurstINTEL;
|
||||
uint32_t mMHostInterfaceWaitRequestINTEL;
|
||||
InitializationModeQualifier initModeINTEL;
|
||||
uint32_t implementInRegisterMapINTEL;
|
||||
uint32_t latencyControlLabelALTERA;
|
||||
LatencyControlConstraintALTERAParams latencyControlConstraintALTERA;
|
||||
uint32_t mMHostInterfaceAddressWidthALTERA;
|
||||
uint32_t mMHostInterfaceDataWidthALTERA;
|
||||
uint32_t mMHostInterfaceLatencyALTERA;
|
||||
AccessQualifier mMHostInterfaceReadWriteModeALTERA;
|
||||
uint32_t mMHostInterfaceMaxBurstALTERA;
|
||||
uint32_t mMHostInterfaceWaitRequestALTERA;
|
||||
InitializationModeQualifier initModeALTERA;
|
||||
uint32_t implementInRegisterMapALTERA;
|
||||
Id conditionalINTEL;
|
||||
CacheControlLoadINTELParams cacheControlLoadINTEL;
|
||||
CacheControlStoreINTELParams cacheControlStoreINTEL;
|
||||
};
|
||||
@@ -2351,6 +2352,13 @@ enum class Op : uint16_t
|
||||
TensorReadARM = 4164,
|
||||
TensorWriteARM = 4165,
|
||||
TensorQuerySizeARM = 4166,
|
||||
GraphConstantARM = 4181,
|
||||
GraphEntryPointARM = 4182,
|
||||
GraphARM = 4183,
|
||||
GraphInputARM = 4184,
|
||||
GraphSetOutputARM = 4185,
|
||||
GraphEndARM = 4186,
|
||||
TypeGraphARM = 4190,
|
||||
TerminateInvocation = 4416,
|
||||
TypeUntypedPointerKHR = 4417,
|
||||
UntypedVariableKHR = 4418,
|
||||
@@ -2362,12 +2370,14 @@ enum class Op : uint16_t
|
||||
UntypedInBoundsPtrAccessChainKHR = 4424,
|
||||
UntypedArrayLengthKHR = 4425,
|
||||
UntypedPrefetchKHR = 4426,
|
||||
FmaKHR = 4427,
|
||||
SubgroupAllKHR = 4428,
|
||||
SubgroupAnyKHR = 4429,
|
||||
SubgroupAllEqualKHR = 4430,
|
||||
GroupNonUniformRotateKHR = 4431,
|
||||
SubgroupReadInvocationKHR = 4432,
|
||||
ExtInstWithForwardRefsKHR = 4433,
|
||||
UntypedGroupAsyncCopyKHR = 4434,
|
||||
TraceRayKHR = 4445,
|
||||
ExecuteCallableKHR = 4446,
|
||||
ConvertUToAccelerationStructureKHR = 4447,
|
||||
@@ -2398,10 +2408,14 @@ enum class Op : uint16_t
|
||||
ImageBoxFilterQCOM = 4481,
|
||||
ImageBlockMatchSSDQCOM = 4482,
|
||||
ImageBlockMatchSADQCOM = 4483,
|
||||
BitCastArrayQCOM = 4497,
|
||||
ImageBlockMatchWindowSSDQCOM = 4500,
|
||||
ImageBlockMatchWindowSADQCOM = 4501,
|
||||
ImageBlockMatchGatherSSDQCOM = 4502,
|
||||
ImageBlockMatchGatherSADQCOM = 4503,
|
||||
CompositeConstructCoopMatQCOM = 4540,
|
||||
CompositeExtractCoopMatQCOM = 4541,
|
||||
ExtractSubArrayQCOM = 4542,
|
||||
GroupIAddNonUniformAMD = 5000,
|
||||
GroupFAddNonUniformAMD = 5001,
|
||||
GroupFMinNonUniformAMD = 5002,
|
||||
@@ -2480,7 +2494,7 @@ enum class Op : uint16_t
|
||||
RayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
TypeAccelerationStructureKHR = 5341,
|
||||
ExecuteCallableNV = 5344,
|
||||
RayQueryGetClusterIdNV = 5345,
|
||||
RayQueryGetIntersectionClusterIdNV = 5345,
|
||||
HitObjectGetClusterIdNV = 5346,
|
||||
TypeCooperativeMatrixNV = 5358,
|
||||
CooperativeMatrixLoadNV = 5359,
|
||||
@@ -2559,10 +2573,10 @@ enum class Op : uint16_t
|
||||
ExpectKHR = 5631,
|
||||
DecorateString = 5632,
|
||||
MemberDecorateString = 5633,
|
||||
VariableLengthArrayINTEL = 5818,
|
||||
SaveMemoryINTEL = 5819,
|
||||
RestoreMemoryINTEL = 5820,
|
||||
LoopControlINTEL = 5887,
|
||||
ReadPipeBlockingINTEL = 5946,
|
||||
WritePipeBlockingINTEL = 5947,
|
||||
FPGARegINTEL = 5949,
|
||||
RayQueryGetRayTMinKHR = 6016,
|
||||
RayQueryGetRayFlagsKHR = 6017,
|
||||
RayQueryGetIntersectionTKHR = 6018,
|
||||
@@ -2591,11 +2605,6 @@ enum class Op : uint16_t
|
||||
ControlBarrierArriveINTEL = 6142,
|
||||
ControlBarrierWaitINTEL = 6143,
|
||||
ArithmeticFenceEXT = 6145,
|
||||
TaskSequenceCreateINTEL = 6163,
|
||||
TaskSequenceAsyncINTEL = 6164,
|
||||
TaskSequenceGetINTEL = 6165,
|
||||
TaskSequenceReleaseINTEL = 6166,
|
||||
TypeTaskSequenceINTEL = 6199,
|
||||
SubgroupBlockPrefetchINTEL = 6221,
|
||||
Subgroup2DBlockLoadINTEL = 6231,
|
||||
Subgroup2DBlockLoadTransformINTEL = 6232,
|
||||
@@ -2604,6 +2613,14 @@ enum class Op : uint16_t
|
||||
Subgroup2DBlockStoreINTEL = 6235,
|
||||
SubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
||||
BitwiseFunctionINTEL = 6242,
|
||||
UntypedVariableLengthArrayINTEL = 6244,
|
||||
ConditionalExtensionINTEL = 6248,
|
||||
ConditionalEntryPointINTEL = 6249,
|
||||
ConditionalCapabilityINTEL = 6250,
|
||||
SpecConstantTargetINTEL = 6251,
|
||||
SpecConstantArchitectureINTEL = 6252,
|
||||
SpecConstantCapabilitiesINTEL = 6253,
|
||||
ConditionalCopyObjectINTEL = 6254,
|
||||
GroupIMulKHR = 6401,
|
||||
GroupFMulKHR = 6402,
|
||||
GroupBitwiseAndKHR = 6403,
|
||||
@@ -2615,6 +2632,9 @@ enum class Op : uint16_t
|
||||
RoundFToTF32INTEL = 6426,
|
||||
MaskedGatherINTEL = 6428,
|
||||
MaskedScatterINTEL = 6429,
|
||||
ConvertHandleToImageINTEL = 6529,
|
||||
ConvertHandleToSamplerINTEL = 6530,
|
||||
ConvertHandleToSampledImageINTEL = 6531,
|
||||
|
||||
Max,
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,209 @@
|
||||
# SPIRV-Registry
|
||||
|
||||
SPIR-V is a binary intermediate language for representing graphical-shader stages and compute kernels for multiple Khronos APIs, including OpenCL, OpenGL, and Vulkan.
|
||||
|
||||
[A complete registry of all official SPIR-V specifications is available at the
|
||||
Khronos SPIR-V Registry](https://www.khronos.org/registry/spir-v/).
|
||||
|
||||
## This Project Contains
|
||||
|
||||
- A registry of SPIR-V extensions
|
||||
- Issue tracking for all SPIR-V specifications
|
||||
- Pull requests to add new SPIR-V extensions
|
||||
|
||||
## Publishing new extension
|
||||
|
||||
To publish a new extension, please create a pull request which includes:
|
||||
|
||||
- The extension document in the asciidoc format named following
|
||||
the `SPV_<vendor>_<name>.asciidoc` pattern. The document should be placed
|
||||
in the `extension/<vendor>` folder.
|
||||
- README.md update with the link to the new extension once published
|
||||
|
||||
To publish a non-semantic extended instruction set,
|
||||
|
||||
- The instruction set in the asciidoc format named following
|
||||
the `NonSemantic.<name>.asciidoc` pattern. The document should be placed
|
||||
in the `nonsemantic` folder.
|
||||
- README.md update with the link to the new extension once published
|
||||
|
||||
Please see [BUILD.md](BUILD.md) for instructions to create an HTML specification for this repo.
|
||||
|
||||
Note: we no longer push the HTML along side the extension.
|
||||
|
||||
## Extension Specifications
|
||||
|
||||
### KHR Extensions (Khronos)
|
||||
|
||||
* [SPV_KHR_16bit_storage ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_16bit_storage.html)
|
||||
* [SPV_KHR_8bit_storage ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_8bit_storage.html)
|
||||
* [SPV_KHR_bfloat16 ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_bfloat16.html)
|
||||
* [SPV_KHR_bit_instructions ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_bit_instructions.html)
|
||||
* [SPV_KHR_compute_shader_derivatives ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_compute_shader_derivatives.html)
|
||||
* [SPV_KHR_cooperative_matrix ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_cooperative_matrix.html)
|
||||
* [SPV_KHR_device_group ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_device_group.html)
|
||||
* [SPV_KHR_expect_assume ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_expect_assume.html)
|
||||
* [SPV_KHR_float_controls ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_float_controls.html)
|
||||
* [SPV_KHR_float_controls2 ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_float_controls2.html)
|
||||
* [SPV_KHR_fma ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_fma.html)
|
||||
* [SPV_KHR_fragment_shader_barycentric ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_fragment_shader_barycentric.html)
|
||||
* [SPV_KHR_fragment_shading_rate ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_fragment_shading_rate.html)
|
||||
* [SPV_KHR_integer_dot_product ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_integer_dot_product.html)
|
||||
* [SPV_KHR_linkonce_odr ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_linkonce_odr.html)
|
||||
* [SPV_KHR_maximal_reconvergence ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_maximal_reconvergence.html)
|
||||
* [SPV_KHR_multiview ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_multiview.html)
|
||||
* [SPV_KHR_no_integer_wrap_decoration ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_no_integer_wrap_decoration.html)
|
||||
* [SPV_KHR_non_semantic_info ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_non_semantic_info.html)
|
||||
* [SPV_KHR_physical_storage_buffer ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_physical_storage_buffer.html)
|
||||
* [SPV_KHR_post_depth_coverage ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_post_depth_coverage.html)
|
||||
* [SPV_KHR_quad_control ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_quad_control.html)
|
||||
* [SPV_KHR_ray_cull_mask ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_ray_cull_mask.html)
|
||||
* [SPV_KHR_ray_query ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_ray_query.html)
|
||||
* [SPV_KHR_ray_tracing ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_ray_tracing.html)
|
||||
* [SPV_KHR_ray_tracing_position_fetch ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_ray_tracing_position_fetch.html)
|
||||
* [SPV_KHR_relaxed_extended_instruction ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_relaxed_extended_instruction.html)
|
||||
* [SPV_KHR_shader_atomic_counter_ops ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_shader_atomic_counter_ops.html)
|
||||
* [SPV_KHR_shader_ballot ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_shader_ballot.html)
|
||||
* [SPV_KHR_shader_clock ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_shader_clock.html)
|
||||
* [SPV_KHR_shader_draw_parameters ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_shader_draw_parameters.html)
|
||||
* [SPV_KHR_storage_buffer_storage_class ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_storage_buffer_storage_class.html)
|
||||
* [SPV_KHR_subgroup_rotate ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_subgroup_rotate.html)
|
||||
* [SPV_KHR_subgroup_uniform_control_flow ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_subgroup_uniform_control_flow.html)
|
||||
* [SPV_KHR_subgroup_vote ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_subgroup_vote.html)
|
||||
* [SPV_KHR_terminate_invocation ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_terminate_invocation.html)
|
||||
* [SPV_KHR_uniform_group_instructions ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_uniform_group_instructions.html)
|
||||
* [SPV_KHR_untyped_pointers ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_untyped_pointers.html)
|
||||
* [SPV_KHR_variable_pointers ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_variable_pointers.html)
|
||||
* [SPV_KHR_vulkan_memory_model ]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_vulkan_memory_model.html)
|
||||
* [SPV_KHR_workgroup_memory_explicit_layout]( https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html)
|
||||
|
||||
### EXT Extensions (Multivendor)
|
||||
|
||||
* [SPV_EXT_arithmetic_fence ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_arithmetic_fence.html)
|
||||
* [SPV_EXT_demote_to_helper_invocation ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_demote_to_helper_invocation.html)
|
||||
* [SPV_EXT_descriptor_indexing ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_descriptor_indexing.html)
|
||||
* [SPV_EXT_float8 ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_float8.html)
|
||||
* [SPV_EXT_fragment_fully_covered ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_fragment_fully_covered.html)
|
||||
* [SPV_EXT_fragment_invocation_density ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_fragment_invocation_density.html)
|
||||
* [SPV_EXT_fragment_shader_interlock ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_fragment_shader_interlock.html)
|
||||
* [SPV_EXT_image_raw10_raw12 ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_image_raw10_raw12.html)
|
||||
* [SPV_EXT_mesh_shader ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_mesh_shader.html)
|
||||
* [SPV_EXT_opacity_micromap ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_opacity_micromap.html)
|
||||
* [SPV_EXT_optnone ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_optnone.html)
|
||||
* [SPV_EXT_physical_storage_buffer ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_physical_storage_buffer.html)
|
||||
* [SPV_EXT_relaxed_printf_string_address_space]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_relaxed_printf_string_address_space.html)
|
||||
* [SPV_EXT_replicated_composites ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_replicated_composites.html)
|
||||
* [SPV_EXT_shader_64bit_indexing ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_64bit_indexing.html)
|
||||
* [SPV_EXT_shader_atomic_float_add ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_atomic_float_add.html)
|
||||
* [SPV_EXT_shader_atomic_float_min_max ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_atomic_float_min_max.html)
|
||||
* [SPV_EXT_shader_atomic_float16_add ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html)
|
||||
* [SPV_EXT_shader_image_int64 ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_image_int64.html)
|
||||
* [SPV_EXT_shader_stencil_export ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_stencil_export.html)
|
||||
* [SPV_EXT_shader_tile_image ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_tile_image.html)
|
||||
* [SPV_EXT_shader_viewport_index_layer ]( https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_shader_viewport_index_layer.html)
|
||||
|
||||
### Vendor Extensions
|
||||
|
||||
* [SPV_ALTERA_arbitrary_precision_fixed_point]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_arbitrary_precision_fixed_point.html)
|
||||
* [SPV_ALTERA_arbitrary_precision_floating_point]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_arbitrary_precision_floating_point.html)
|
||||
* [SPV_ALTERA_arbitrary_precision_integers ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_arbitrary_precision_integers.html)
|
||||
* [SPV_ALTERA_blocking_pipes ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_blocking_pipes.html)
|
||||
* [SPV_ALTERA_fpga_argument_interfaces ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_argument_interfaces.html)
|
||||
* [SPV_ALTERA_fpga_buffer_location ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_buffer_location.html)
|
||||
* [SPV_ALTERA_fpga_cluster_attributes ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_cluster_attributes.html)
|
||||
* [SPV_ALTERA_fpga_dsp_control ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_dsp_control.html)
|
||||
* [SPV_ALTERA_fpga_invocation_pipelining_attributes]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_invocation_pipelining_attributes.html)
|
||||
* [SPV_ALTERA_fpga_latency_control ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_latency_control.html)
|
||||
* [SPV_ALTERA_fpga_loop_controls ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_loop_controls.html)
|
||||
* [SPV_ALTERA_fpga_memory_accesses ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_memory_accesses.html)
|
||||
* [SPV_ALTERA_fpga_memory_attributes ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_memory_attributes.html)
|
||||
* [SPV_ALTERA_fpga_reg ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_fpga_reg.html)
|
||||
* [SPV_ALTERA_global_variable_fpga_decorations]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_global_variable_fpga_decorations.html)
|
||||
* [SPV_ALTERA_io_pipes ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_io_pipes.html)
|
||||
* [SPV_ALTERA_loop_fuse ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_loop_fuse.html)
|
||||
* [SPV_ALTERA_runtime_aligned ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_runtime_aligned.html)
|
||||
* [SPV_ALTERA_task_sequence ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_task_sequence.html)
|
||||
* [SPV_ALTERA_usm_storage_classes ]( https://github.khronos.org/SPIRV-Registry/extensions/ALTERA/SPV_ALTERA_usm_storage_classes.html)
|
||||
* [SPV_AMD_gcn_shader ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_gcn_shader.html)
|
||||
* [SPV_AMD_gpu_shader_half_float ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_gpu_shader_half_float.html)
|
||||
* [SPV_AMD_gpu_shader_half_float_fetch ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_gpu_shader_half_float_fetch.html)
|
||||
* [SPV_AMD_gpu_shader_int16 ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_gpu_shader_int16.html)
|
||||
* [SPV_AMD_shader_ballot ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_shader_ballot.html)
|
||||
* [SPV_AMD_shader_early_and_late_fragment_tests]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_shader_early_and_late_fragment_tests.html)
|
||||
* [SPV_AMD_shader_explicit_vertex_parameter]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_shader_explicit_vertex_parameter.html)
|
||||
* [SPV_AMD_shader_fragment_mask ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_shader_fragment_mask.html)
|
||||
* [SPV_AMD_shader_image_load_store_lod ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_shader_image_load_store_lod.html)
|
||||
* [SPV_AMD_shader_trinary_minmax ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_shader_trinary_minmax.html)
|
||||
* [SPV_AMD_texture_gather_bias_lod ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMD_texture_gather_bias_lod.html)
|
||||
* [SPV_AMDX_shader_enqueue ]( https://github.khronos.org/SPIRV-Registry/extensions/AMD/SPV_AMDX_shader_enqueue.html)
|
||||
* [SPV_ARM_cooperative_matrix_layouts ]( https://github.khronos.org/SPIRV-Registry/extensions/ARM/SPV_ARM_cooperative_matrix_layouts.html)
|
||||
* [SPV_ARM_core_builtins ]( https://github.khronos.org/SPIRV-Registry/extensions/ARM/SPV_ARM_core_builtins.html)
|
||||
* [SPV_ARM_graph ]( https://github.khronos.org/SPIRV-Registry/extensions/ARM/SPV_ARM_graph.html)
|
||||
* [SPV_ARM_tensors ]( https://github.khronos.org/SPIRV-Registry/extensions/ARM/SPV_ARM_tensors.html)
|
||||
* [SPV_GOOGLE_decorate_string ]( https://github.khronos.org/SPIRV-Registry/extensions/GOOGLE/SPV_GOOGLE_decorate_string.html)
|
||||
* [SPV_GOOGLE_hlsl_functionality1 ]( https://github.khronos.org/SPIRV-Registry/extensions/GOOGLE/SPV_GOOGLE_hlsl_functionality1.html)
|
||||
* [SPV_GOOGLE_user_type ]( https://github.khronos.org/SPIRV-Registry/extensions/GOOGLE/SPV_GOOGLE_user_type.html)
|
||||
* [SPV_HUAWEI_cluster_culling_shader ]( https://github.khronos.org/SPIRV-Registry/extensions/HUAWEI/SPV_HUAWEI_cluster_culling_shader.html)
|
||||
* [SPV_HUAWEI_subpass_shading ]( https://github.khronos.org/SPIRV-Registry/extensions/HUAWEI/SPV_HUAWEI_subpass_shading.html)
|
||||
* [SPV_INTEL_2d_block_io ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_2d_block_io.html)
|
||||
* [SPV_INTEL_bfloat16_conversion ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_bfloat16_conversion.html)
|
||||
* [SPV_INTEL_cache_controls ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_cache_controls.html)
|
||||
* [SPV_INTEL_device_side_avc_motion_estimation]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_device_side_avc_motion_estimation.html)
|
||||
* [SPV_INTEL_fp_fast_math_mode ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_fp_fast_math_mode.html)
|
||||
* [SPV_INTEL_fp_max_error ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_fp_max_error.html)
|
||||
* [SPV_INTEL_global_variable_host_access ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_global_variable_host_access.html)
|
||||
* [SPV_INTEL_int4 ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_int4.html)
|
||||
* [SPV_INTEL_kernel_attributes ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_kernel_attributes.html)
|
||||
* [SPV_INTEL_long_composites ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_long_composites.html)
|
||||
* [SPV_INTEL_masked_gather_scatter ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_masked_gather_scatter.html)
|
||||
* [SPV_INTEL_maximum_registers ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_maximum_registers.html)
|
||||
* [SPV_INTEL_media_block_io ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_media_block_io.html)
|
||||
* [SPV_INTEL_shader_integer_functions2 ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_shader_integer_functions2.html)
|
||||
* [SPV_INTEL_split_barrier ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_split_barrier.html)
|
||||
* [SPV_INTEL_subgroups ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_subgroups.html)
|
||||
* [SPV_INTEL_subgroup_buffer_prefetch ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_subgroup_buffer_prefetch.html)
|
||||
* [SPV_INTEL_subgroup_matrix_multiply_accumulate]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_subgroup_matrix_multiply_accumulate.html)
|
||||
* [SPV_INTEL_tensor_float32_conversion ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_tensor_float32_conversion.html)
|
||||
* [SPV_INTEL_ternary_bitwise_function ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_ternary_bitwise_function.html)
|
||||
* [SPV_INTEL_unstructured_loop_controls ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_unstructured_loop_controls.html)
|
||||
* [SPV_INTEL_variable_length_array ]( https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_variable_length_array.html)
|
||||
* [SPV_NV_bindless_texture ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_bindless_texture.html)
|
||||
* [SPV_NV_cluster_acceleration_structure ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_cluster_acceleration_structure.html)
|
||||
* [SPV_NV_compute_shader_derivatives ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_compute_shader_derivatives.html)
|
||||
* [SPV_NV_cooperative_matrix ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_cooperative_matrix.html)
|
||||
* [SPV_NV_cooperative_matrix2 ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_cooperative_matrix2.html)
|
||||
* [SPV_NV_cooperative_vector ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_cooperative_vector.html)
|
||||
* [SPV_NV_displacement_micromap ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_displacement_micromap.html)
|
||||
* [SPV_NV_fragment_shader_barycentric ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_fragment_shader_barycentric.html)
|
||||
* [SPV_NV_geometry_shader_passthrough ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_geometry_shader_passthrough.html)
|
||||
* [SPV_NV_linear_swept_spheres ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_linear_swept_spheres.html)
|
||||
* [SPV_NV_mesh_shader ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_mesh_shader.html)
|
||||
* [SPV_NV_raw_access_chains ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_raw_access_chains.html)
|
||||
* [SPV_NV_ray_tracing ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_ray_tracing.html)
|
||||
* [SPV_NV_ray_tracing_motion_blur ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_ray_tracing_motion_blur.html)
|
||||
* [SPV_NV_sample_mask_override_coverage ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_sample_mask_override_coverage.html)
|
||||
* [SPV_NV_shader_atomic_fp16_vector ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_shader_atomic_fp16_vector.html)
|
||||
* [SPV_NV_shader_image_footprint ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_shader_image_footprint.html)
|
||||
* [SPV_NV_shader_invocation_reorder ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_shader_invocation_reorder.html)
|
||||
* [SPV_NV_shader_sm_builtins ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_shader_sm_builtins.html)
|
||||
* [SPV_NV_shader_subgroup_partitioned ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_shader_subgroup_partitioned.html)
|
||||
* [SPV_NV_shading_rate ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_shading_rate.html)
|
||||
* [SPV_NV_stereo_view_rendering ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_stereo_view_rendering.html)
|
||||
* [SPV_NV_tensor_addressing ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_tensor_addressing.html)
|
||||
* [SPV_NV_viewport_array2 ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NV_viewport_array2.html)
|
||||
* [SPV_NVX_multiview_per_view_attributes ]( https://github.khronos.org/SPIRV-Registry/extensions/NV/SPV_NVX_multiview_per_view_attributes.html)
|
||||
* [SPV_QCOM_cooperative_matrix_conversion ]( https://github.khronos.org/SPIRV-Registry/extensions/QCOM/SPV_QCOM_cooperative_matrix_conversion.html)
|
||||
* [SPV_QCOM_image_processing ]( https://github.khronos.org/SPIRV-Registry/extensions/QCOM/SPV_QCOM_image_processing.html)
|
||||
* [SPV_QCOM_image_processing2 ]( https://github.khronos.org/SPIRV-Registry/extensions/QCOM/SPV_QCOM_image_processing2.html)
|
||||
* [SPV_QCOM_tile_shading ]( https://github.khronos.org/SPIRV-Registry/extensions/QCOM/SPV_QCOM_tile_shading.html)
|
||||
|
||||
## Non-Semantic Extended Instruction Set Specifications
|
||||
|
||||
* [NonSemantic.ClspvReflection ]( https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.ClspvReflection.html)
|
||||
* [NonSemantic.DebugBreak ]( https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.DebugBreak.html)
|
||||
* [NonSemantic.DebugPrintf ]( https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.DebugPrintf.html)
|
||||
* [NonSemantic.Shader.DebugInfo.100 ]( https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.Shader.DebugInfo.100.html)
|
||||
|
||||
## Extended Instruction Set Specifications
|
||||
|
||||
* [TOSA.001000.1 ]( https://github.khronos.org/SPIRV-Registry/extended/TOSA.001000.1.html)
|
||||
Reference in New Issue
Block a user