SPIR-V was introduced in 2015 by the Khronos Group, and has since replaced the original SPIR, which was introduced in 2012.
FactSnippet No. 1,263,485 |
SPIR-V was introduced in 2015 by the Khronos Group, and has since replaced the original SPIR, which was introduced in 2012.
FactSnippet No. 1,263,485 |
Purposes of SPIR-V are to natively represent the primitives needed by compute and graphics; to separate high-level language from the interface to compute and graphics drivers; to be the distribution form, or distribute fully compiled binaries; to be a fully self-contained specification; and to support multiple APIs.
FactSnippet No. 1,263,486 |
Example, SPIR-V allows the Vulkan API to use any shading language, including GLSL and HLSL.
FactSnippet No. 1,263,487 |
SPIR-V can be compiled into several shading languages using SPIRV-Cross, so that these languages can be interconverted.
FactSnippet No. 1,263,488 |
In target platforms, ingesting SPIR-V removes the need to build a high-level language source compiler into device drivers, which reduces driver complexity.
FactSnippet No. 1,263,489 |
SPIR prior to the 2015 SPIR-V release was based on the LLVM Intermediate Representation.
FactSnippet No. 1,263,490 |
Support for ingestion of SPIR-V is incorporated in the core specification of OpenCL 2.
FactSnippet No. 1,263,491 |
SPIR-V is a high-level intermediate language, exchanged in binary form.
FactSnippet No. 1,263,492 |
SPIR-V can be extended by writing extensions to add semantics, or reserving ranges of the token values for the party's use.
FactSnippet No. 1,263,493 |
SPIR-V can express calls to functions in a different compilation unit.
FactSnippet No. 1,263,494 |
The standard version of SPIR-V uses this feature for OpenCL compute kernels, but not for shader stages, which the graphical APIs want fully linked into a single SPIR-V module.
FactSnippet No. 1,263,495 |
SPIR-V module is used by a client API to support that module's features, which are classified through capabilities, and declared early in the module.
FactSnippet No. 1,263,496 |
SPIR-V has been used to help deal with multiple versions of source-level languages.
FactSnippet No. 1,263,497 |