C Specification
To query 16-bit storage features additionally supported call
vkGetPhysicalDeviceFeatures2 with a
VkPhysicalDevice16BitStorageFeatures
structure included in the
pNext
chain of its pFeatures
parameter.
The VkPhysicalDevice16BitStorageFeatures
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 VkPhysicalDevice16BitStorageFeatures structure is defined as:
// Provided by VK_VERSION_1_1
typedef struct VkPhysicalDevice16BitStorageFeatures {
VkStructureType sType;
void* pNext;
VkBool32 storageBuffer16BitAccess;
VkBool32 uniformAndStorageBuffer16BitAccess;
VkBool32 storagePushConstant16;
VkBool32 storageInputOutput16;
} VkPhysicalDevice16BitStorageFeatures;
or the equivalent
// Provided by VK_KHR_16bit_storage
typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
Members
-
sType
is the type of this structure. -
pNext
isNULL
or a pointer to a structure extending this structure.
Description
-
storageBuffer16BitAccess
specifies whether objects in theStorageBuffer
,ShaderRecordBufferKHR
, orPhysicalStorageBuffer
storage class with theBlock
decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare theStorageBuffer16BitAccess
capability. -
uniformAndStorageBuffer16BitAccess
specifies whether objects in theUniform
storage class with theBlock
decoration and in theStorageBuffer
,ShaderRecordBufferKHR
, orPhysicalStorageBuffer
storage class with the same decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare theUniformAndStorageBuffer16BitAccess
capability. -
storagePushConstant16
specifies whether objects in thePushConstant
storage class can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or floating-point members must not be used in such objects. This also specifies whether shader modules can declare theStoragePushConstant16
capability. -
storageInputOutput16
specifies whether objects in theInput
andOutput
storage classes can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare theStorageInputOutput16
capability.
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.