forked from OSchip/llvm-project
e0ea1fc6f8
Using 64-bit integer/float type in interface storage classes would require Int64/Float64 capability, per the Vulkan spec: ``` shaderInt64 specifies whether 64-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 64-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int64 capability. Declaring and using 64-bit integers is enabled for all storage classes that SPIR-V allows with the Int64 capability. ``` This is different from, say, 16-bit element types, where: ``` shaderInt16 specifies whether 16-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 16-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int16 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Int16 SPIR-V capability: Declaring and using 16-bit integers in the Private, Workgroup (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform, StorageBuffer, Input, Output, and PushConstant) is not enabled. ``` Reviewed By: hanchung Differential Revision: https://reviews.llvm.org/D126256 |
||
---|---|---|
.. | ||
func-ops-to-spirv.mlir | ||
types-to-spirv.mlir |