Khronos SPIR-V Registry

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:

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.

  1. SPV_AMD_shader_explicit_vertex_parameter
  2. SPV_AMD_shader_trinary_minmax
  3. SPV_AMD_gcn_shader
  4. SPV_KHR_shader_ballot
  5. SPV_AMD_shader_ballot
  6. SPV_AMD_gpu_shader_half_float
  7. SPV_KHR_shader_draw_parameters
  8. SPV_KHR_subgroup_vote
  9. SPV_KHR_16bit_storage
  10. SPV_KHR_device_group
  11. SPV_KHR_multiview
  12. SPV_NVX_multiview_per_view_attributes
  13. SPV_NV_viewport_array2
  14. SPV_NV_stereo_view_rendering
  15. SPV_NV_sample_mask_override_coverage
  16. SPV_NV_geometry_shader_passthrough
  17. SPV_AMD_texture_gather_bias_lod
  18. SPV_KHR_storage_buffer_storage_class
  19. SPV_KHR_variable_pointers
  20. SPV_AMD_gpu_shader_int16
  21. SPV_KHR_post_depth_coverage
  22. SPV_KHR_shader_atomic_counter_ops
  23. SPV_EXT_shader_stencil_export
  24. SPV_EXT_shader_viewport_index_layer
  25. SPV_AMD_shader_image_load_store_lod
  26. SPV_AMD_shader_fragment_mask
  27. SPV_EXT_fragment_fully_covered
  28. SPV_AMD_gpu_shader_half_float_fetch
  29. SPV_GOOGLE_decorate_string
  30. SPV_GOOGLE_hlsl_functionality1
  31. SPV_NV_shader_subgroup_partitioned
  32. SPV_EXT_descriptor_indexing
  33. SPV_KHR_8bit_storage
  34. SPV_KHR_vulkan_memory_model
  35. SPV_NV_ray_tracing
  36. SPV_NV_compute_shader_derivatives
  37. SPV_NV_fragment_shader_barycentric
  38. SPV_NV_mesh_shader
  39. SPV_NV_shader_image_footprint
  40. SPV_NV_shading_rate

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.