SPIR-V Logo

SPIR: The Standard IR for Parallel Compute and Graphics

SPIR-V is catalyzing a revolution in the ecosystem for shader and kernel language compilers used for expressing parallel computation and GPU-based graphics.

SPIR-V enables high-level language front-ends to emit programs in a standardized intermediate form to be ingested by a wider range of drivers, including Vulkan, OpenGL and OpenCL. SPIR-V eliminates the need for high-level language front-end compilers in device drivers, significantly reducing driver complexity and enabling a broad range of language and framework front-ends to run on diverse hardware architectures and encourages a vibrant ecosystem of open source analysis, porting, debug and optimization tools.

For developers, using SPIR-V means that kernel source code no longer has to be directly exposed, kernel load times can be accelerated, and developers can choose the use of a common language front-end compiler, improving kernel reliability and portability across multiple hardware implementations.

Ecosystem News

DirectX Adopting SPIR-V as the Interchange Format of the Future


Sep 19, 2024 -- The Direct3D and HLSL teams share some exciting insighta into the next big step for GPU programmability via their DirectX Developer Blog. Once Shader Model 7 is released, DirectX 12 will accept shaders compiled to SPIR-V.

DirectX Developer Blog Post

SPIR-V Resources

Essential Resources for SPIR-V Development


Thanks to the support of the Khronos membership and our passionate developer community, there is a full set of well-supported developer information and educational resources to help quickly get you up and running with your SPIR development.

  • SPIR-V Specification
  • SPIR-V-Registry - contains published Khronos and vendor extensions
  • SPIR-V-Guide - In depth tour of SPIR-V
  • SPIR-V Tools - an API and commands for processing SPIR-V modules, including an assembler, binary module parser, disassembler, optimizer, linker, and validator.
  • SPIR-V Cross - a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
  • SPIR-V LLVM Translator - contains a LLVM<-> SPIR-V converter intended to serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
  • SPIR-V on Compiler Explorer. Examples:SPIR-V Optimizer &SPIR-V Validator

Community Discussions & Getting Involved

Help Shape the Future of SPIR-V


The SPIR-V specification is free for anyone to download, review and comment, and there are several ways to follow the latest SPIR developments, get your questions answered and give us feedback on the specification and implementations.

Community Discussions

You'll find thriving SPIR discussions on several platforms that provide a great way to get involved, and help build out the SPIR-V ecosystem.

Join the Khronos Group

If you are working with SPIR-V and wish to get involved in helping shape its future, please consider joining Khronos and our Working Group. Any organization is welcome to join, and multiple levels of membership are available to enable any organization, large or small, to get involved.

Join Khronos

SPIR and OpenCL

SPIR 1.2/2.0 Resources


SPIR 1.2 and 2.0 map from the OpenCL C programming language into LLVM IR. SPIR 1.2 is based on LLVM 3.2 and SPIR 2.0 is based on LLVM 3.4 and their respective OpenCL C specification.

Stay Informed

Subscribe to the Khronos Newsletter

Stay in the loop by subscribing to our newsletter to receive updates on all our latest resources, news and events.

By subscribing you are consenting to receive marketing emails about news and events relating to the Khronos Group. You can unsubscribe at any time by following the “Unsubscribe” link included in each email sent. For information on our privacy practices and commitment to protecting your privacy, please review ourPrivacy Policy. We do not sell your contact information to third parties.

Khronos Standard Additional links and information