C Specification
To query features additionally supported by the
https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_KHR_shader_float16_int8 extension, call
vkGetPhysicalDeviceFeatures2KHR with a
VkPhysicalDeviceShaderFloat16Int8Features structure included in the
pNext chain.
The VkPhysicalDeviceShaderFloat16Int8Features structure can also be
included in the pNext chain of a VkDeviceCreateInfo structure,
in which case it controls which additional features are enabled in the
device.
The VkPhysicalDeviceShaderFloat16Int8Features structure is defined as:
typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
VkStructureType sType;
void* pNext;
VkBool32 shaderFloat16;
VkBool32 shaderInt8;
} VkPhysicalDeviceShaderFloat16Int8Features;
or the equivalent
typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
Members
-
sTypeis the type of this structure. -
pNextisNULLor a pointer to an extension-specific structure.
Description
-
shaderFloat16indicates whether 16-bit floats (halfs) are supported in shader code. This also indicates whether shader modules can declare theFloat16capability. However, this only enables a subset of the storage classes that SPIR-V allows for theFloat16SPIR-V capability: Declaring and using 16-bit floats in thePrivate,Workgroup, andFunctionstorage classes is enabled, while declaring them in the interface storage classes (e.g.,UniformConstant,Uniform,StorageBuffer,Input,Output, andPushConstant) is not enabled. -
shaderInt8indicates whether 8-bit integers (signed and unsigned) are supported in shader code. This also indicates whether shader modules can declare theInt8capability. However, this only enables a subset of the storage classes that SPIR-V allows for theInt8SPIR-V capability: Declaring and using 8-bit integers in thePrivate,Workgroup, andFunctionstorage classes is enabled, while declaring them in the interface storage classes (e.g.,UniformConstant,Uniform,StorageBuffer,Input,Output, andPushConstant) is not enabled.
See Also
VkBool32, VkStructureType
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.
Copyright
Copyright (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.