SPIR-V, Extended Instruction Set, and Extension Specifications
SPIR-V is a binary intermediate language for representing
graphical-shader stages and compute kernels for multiple Khronos APIs,
including OpenCL, OpenGL, and Vulkan.
SPIR-V defines a new language and is a successor to the original
Khronos SPIR, which supported only OpenCL device programs.
This registry contains or points to:
SPIR-V 1.3 Unified Specification, Headers, and Grammar
SPIR-V 1.3 was released March 7, 2018 as a unified specification,
which covers SPIR-V 1.0, 1.1, 1.2, and 1.3.
Extended Instruction Sets and Headers
There are separate specifications describing extended instruction sets:
-
OpenCL C Language
-
Graphics Shading Languages
-
Debug Information
SPIR-V Extension Specifications
These are located in the Khronos GitHub project SPIRV-Registry.
New extensions can be proposed as a PR to that repository.
-
SPV_AMD_shader_explicit_vertex_parameter
-
SPV_AMD_shader_trinary_minmax
-
SPV_AMD_gcn_shader
-
SPV_KHR_shader_ballot
-
SPV_AMD_shader_ballot
-
SPV_AMD_gpu_shader_half_float
-
SPV_KHR_shader_draw_parameters
-
SPV_KHR_subgroup_vote
-
SPV_KHR_16bit_storage
-
SPV_KHR_device_group
-
SPV_KHR_multiview
-
SPV_NVX_multiview_per_view_attributes
-
SPV_NV_viewport_array2
-
SPV_NV_stereo_view_rendering
-
SPV_NV_sample_mask_override_coverage
-
SPV_NV_geometry_shader_passthrough
-
SPV_AMD_texture_gather_bias_lod
-
SPV_KHR_storage_buffer_storage_class
-
SPV_KHR_variable_pointers
-
SPV_AMD_gpu_shader_int16
-
SPV_KHR_post_depth_coverage
-
SPV_KHR_shader_atomic_counter_ops
-
SPV_EXT_shader_stencil_export
-
SPV_EXT_shader_viewport_index_layer
-
SPV_AMD_shader_image_load_store_lod
-
SPV_AMD_shader_fragment_mask
-
SPV_EXT_fragment_fully_covered
-
SPV_AMD_gpu_shader_half_float_fetch
-
SPV_GOOGLE_decorate_string
-
SPV_GOOGLE_hlsl_functionality1
-
SPV_NV_shader_subgroup_partitioned
-
SPV_EXT_descriptor_indexing
-
SPV_KHR_8bit_storage
-
SPV_KHR_vulkan_memory_model
-
SPV_NV_ray_tracing
-
SPV_NV_compute_shader_derivatives
-
SPV_NV_fragment_shader_barycentric
-
SPV_NV_mesh_shader
-
SPV_NV_shader_image_footprint
-
SPV_NV_shading_rate
-
SPV_INTEL_subgroups
-
SPV_INTEL_media_block_io
-
SPV_INTEL_device_side_avc_motion_estimation
-
SPV_EXT_fragment_invocation_density
-
SPV_KHR_no_integer_wrap_decoration
-
SPV_KHR_float_controls
-
SPV_EXT_physical_storage_buffer
Vendor and Token Registry
The SPIR-V Vendor and Token Registry is an XML file serving as the canonical document defining reserved vendor IDs
and binary token ranges.
It is available in the Khronos GitHub project at
spir-v.xml.
If you need a vendor ID, or a reserved range of opcode or operand token values for your
implementation, please file an issue or pull request in the
SPIRV-Headers
project.
Older Specification Versions
These older specifications are superceded by the Unified Specification.
SPIR-V 1.2 Specification, Headers, and Grammar
SPIR-V 1.2, released May 15, 2017.
The most recent revision is contained in the Unified Specification,
which supercedes the following revision.
SPIR-V 1.1 Specification, Headers, and Documentation
SPIR-V 1.1, released April 18, 2016.
The most recent revision is contained in the Unified Specification,
which supercedes the following revision.
SPIR-V 1.0 and Extended Instruction Set Headers
The most recent revision of SPIR-V 1.0 is contained in the Unified Specification,
which supercedes the following revision.
Providing Feedback on the Registry
Khronos welcomes feedback on SPIR-V. To provide feedback, please file an
issue in the SPIRV-Headers
project.