Class EXTDescriptorBuffer
- Name String
VK_EXT_descriptor_buffer- Extension Type
- Device extension
- Registered Extension Number
- 317
- Revision
- 1
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2or Version 1.1 andVK_KHR_buffer_device_addressandVK_EXT_descriptor_indexingor Version 1.2 andVK_KHR_synchronization2or Version 1.3- API Interactions
- Interacts with VK_KHR_acceleration_structure
- Interacts with VK_NV_ray_tracing
- Contact
- Tobias Hector tobski
- Extension Proposal
- VK_EXT_descriptor_buffer
Other Extension Metadata
- Last Modified Date
- 2021-06-07
- IP Status
- No known IP claims.
- Contributors
- Tobias Hector, AMD
- Stu Smith, AMD
- Maciej Jesionowski, AMD
- Boris Zanin, AMD
- Hans-Kristian Arntzen, Valve
- Connor Abbott, Valve
- Baldur Karlsson, Valve
- Mike Blumenkrantz, Valve
- Graeme Leese, Broadcom
- Jan-Harald Fredriksen, Arm
- Rodrigo Locatti, NVIDIA
- Jeff Bolz, NVIDIA
- Piers Daniell, NVIDIA
- Jeff Leger, QUALCOMM
- Lionel Landwerlin, Intel
- Slawomir Grajewski, Intel
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkAccelerationStructureCreateFlagBitsKHR.static final longExtendsVkAccessFlagBits2.static final intExtendsVkBufferCreateFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intExtendsVkDescriptorSetLayoutCreateFlagBits.static final intExtendsVkDescriptorSetLayoutCreateFlagBits.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkImageCreateFlagBits.static final intExtendsVkImageViewCreateFlagBits.static final intExtendsVkPipelineCreateFlagBits.static final intExtendsVkSamplerCreateFlagBits.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkCmdBindDescriptorBuffersEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int bufferCount, long pBindingInfos) Unsafe version of:CmdBindDescriptorBuffersEXTstatic voidnvkCmdSetDescriptorBufferOffsetsEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, int setCount, long pBufferIndices, long pOffsets) Unsafe version of:CmdSetDescriptorBufferOffsetsEXTstatic intnvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetAccelerationStructureOpaqueCaptureDescriptorDataEXTstatic intnvkGetBufferOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetBufferOpaqueCaptureDescriptorDataEXTstatic voidnvkGetDescriptorEXT(org.lwjgl.vulkan.VkDevice device, long pDescriptorInfo, long dataSize, long pDescriptor) Unsafe version of:GetDescriptorEXTstatic voidnvkGetDescriptorSetLayoutBindingOffsetEXT(org.lwjgl.vulkan.VkDevice device, long layout, int binding, long pOffset) Unsafe version of:GetDescriptorSetLayoutBindingOffsetEXTstatic voidnvkGetDescriptorSetLayoutSizeEXT(org.lwjgl.vulkan.VkDevice device, long layout, long pLayoutSizeInBytes) Unsafe version of:GetDescriptorSetLayoutSizeEXTstatic intnvkGetImageOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetImageOpaqueCaptureDescriptorDataEXTstatic intnvkGetImageViewOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetImageViewOpaqueCaptureDescriptorDataEXTstatic intnvkGetSamplerOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetSamplerOpaqueCaptureDescriptorDataEXTstatic voidvkCmdBindDescriptorBufferEmbeddedSamplersEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int set) Setting embedded immutable samplers offsets in a command buffer.static voidvkCmdBindDescriptorBuffersEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkDescriptorBufferBindingInfoEXT.Buffer pBindingInfos) Binding descriptor buffers to a command buffer.static voidvkCmdSetDescriptorBufferOffsetsEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, int[] pBufferIndices, long[] pOffsets) Array version of:CmdSetDescriptorBufferOffsetsEXTstatic voidvkCmdSetDescriptorBufferOffsetsEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, IntBuffer pBufferIndices, LongBuffer pOffsets) Setting descriptor buffer offsets in a command buffer.static intvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get acceleration structure opaque capture descriptor data.static intvkGetBufferOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkBufferCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get buffer opaque capture descriptor data.static voidvkGetDescriptorEXT(org.lwjgl.vulkan.VkDevice device, VkDescriptorGetInfoEXT pDescriptorInfo, ByteBuffer pDescriptor) To get a descriptor to place in a buffer.static voidvkGetDescriptorSetLayoutBindingOffsetEXT(org.lwjgl.vulkan.VkDevice device, long layout, int binding, long[] pOffset) Array version of:GetDescriptorSetLayoutBindingOffsetEXTstatic voidvkGetDescriptorSetLayoutBindingOffsetEXT(org.lwjgl.vulkan.VkDevice device, long layout, int binding, LongBuffer pOffset) Get the offset of a binding within a descriptor set layout.static voidvkGetDescriptorSetLayoutSizeEXT(org.lwjgl.vulkan.VkDevice device, long layout, long[] pLayoutSizeInBytes) Array version of:GetDescriptorSetLayoutSizeEXTstatic voidvkGetDescriptorSetLayoutSizeEXT(org.lwjgl.vulkan.VkDevice device, long layout, LongBuffer pLayoutSizeInBytes) Get the size of a descriptor set layout in memory.static intvkGetImageOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkImageCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get image opaque capture descriptor data.static intvkGetImageViewOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkImageViewCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get image view opaque capture descriptor data.static intvkGetSamplerOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkSamplerCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get sampler opaque capture descriptor data.
-
Field Details
-
VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION
public static final int VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
public static final int VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
public static final int VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
public static final int VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
- See Also:
-
VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
public static final int VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTExtendsVkDescriptorSetLayoutCreateFlagBits.Enum values:
- See Also:
-
VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
public static final int VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXTExtendsVkDescriptorSetLayoutCreateFlagBits.Enum values:
- See Also:
-
VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
public static final int VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXTExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
public static final int VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXTExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
public static final int VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXTExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
public static final int VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTExtendsVkBufferCreateFlagBits.- See Also:
-
VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
public static final int VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTExtendsVkImageCreateFlagBits.- See Also:
-
VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
public static final int VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTExtendsVkImageViewCreateFlagBits.- See Also:
-
VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
public static final int VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTExtendsVkSamplerCreateFlagBits.- See Also:
-
VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
public static final int VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTExtendsVkAccelerationStructureCreateFlagBitsKHR.- See Also:
-
VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT
public static final long VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXTExtendsVkAccessFlagBits2.- See Also:
-
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
public static final int VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXTExtendsVkPipelineCreateFlagBits.- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTExtendsVkStructureType.- See Also:
-
-
Method Details
-
nvkGetDescriptorSetLayoutSizeEXT
public static void nvkGetDescriptorSetLayoutSizeEXT(org.lwjgl.vulkan.VkDevice device, long layout, long pLayoutSizeInBytes) Unsafe version of:GetDescriptorSetLayoutSizeEXT -
vkGetDescriptorSetLayoutSizeEXT
public static void vkGetDescriptorSetLayoutSizeEXT(org.lwjgl.vulkan.VkDevice device, long layout, LongBuffer pLayoutSizeInBytes) Get the size of a descriptor set layout in memory.C Specification
To determine the amount of memory needed to store all descriptors with a given layout, call:
void vkGetDescriptorSetLayoutSizeEXT( VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);Description
The size of a descriptor set layout will be at least as large as the sum total of the size of all descriptors in the layout, and may be larger. This size represents the amount of memory that will be required to store all of the descriptors for this layout in memory, when placed according to the layout’s offsets as obtained by
GetDescriptorSetLayoutBindingOffsetEXT.If any
bindinginlayoutisDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, the returned size includes space for the maximumdescriptorCountdescriptors as declared for thatbinding. To compute the required size of a descriptor set with aDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT:size = offset + descriptorSize × variableDescriptorCount
where
offsetis obtained byGetDescriptorSetLayoutBindingOffsetEXTanddescriptorSizeis the size of the relevant descriptor as obtained fromVkPhysicalDeviceDescriptorBufferPropertiesEXT, andvariableDescriptorCountis the equivalent ofVkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts. ForDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,variableDescriptorCountis the size in bytes for the inline uniform block, anddescriptorSizeis 1.If
VkPhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSingleArrayisFALSEand the variable descriptor type isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,variableDescriptorCountis always considered to be the upper bound.Valid Usage
- The
descriptorBufferfeature must be enabled layoutmust have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTflag set
Valid Usage (Implicit)
devicemust be a validVkDevicehandlelayoutmust be a validVkDescriptorSetLayouthandlepLayoutSizeInBytesmust be a valid pointer to aVkDeviceSizevaluelayoutmust have been created, allocated, or retrieved fromdevice
- Parameters:
device- the logical device that gets the size.layout- the descriptor set layout being queried.pLayoutSizeInBytes- a pointer toVkDeviceSizewhere the size in bytes will be written.
-
nvkGetDescriptorSetLayoutBindingOffsetEXT
public static void nvkGetDescriptorSetLayoutBindingOffsetEXT(org.lwjgl.vulkan.VkDevice device, long layout, int binding, long pOffset) Unsafe version of:GetDescriptorSetLayoutBindingOffsetEXT -
vkGetDescriptorSetLayoutBindingOffsetEXT
public static void vkGetDescriptorSetLayoutBindingOffsetEXT(org.lwjgl.vulkan.VkDevice device, long layout, int binding, LongBuffer pOffset) Get the offset of a binding within a descriptor set layout.C Specification
To get the offset of a binding within a descriptor set layout in memory, call:
void vkGetDescriptorSetLayoutBindingOffsetEXT( VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);Description
Each binding in a descriptor set layout is assigned an offset in memory by the implementation. When a shader accesses a resource with that binding, it will access the bound descriptor buffer from that offset to look for its descriptor. This command provides an application with that offset, so that descriptors can be placed in the correct locations. The precise location accessed by a shader for a given descriptor is as follows:
location = bufferAddress + setOffset + descriptorOffset + (arrayElement × descriptorSize)
where
bufferAddressandsetOffsetare the base address and offset for the identified descriptor set as specified byCmdBindDescriptorBuffersEXTandCmdSetDescriptorBufferOffsetsEXT,descriptorOffsetis the offset for the binding returned by this command,arrayElementis the index into the array specified in the shader, anddescriptorSizeis the size of the relevant descriptor as obtained fromVkPhysicalDeviceDescriptorBufferPropertiesEXT. Applications are responsible for placing valid descriptors at the expected location in order for a shader to access it. The overall offset added tobufferAddressto calculatelocationmust be less thanVkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRangefor samplers andVkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRangefor resources.If any
bindinginlayoutisDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, thatbindingmust have the largest offset of anybinding.A descriptor
bindingwith typeDESCRIPTOR_TYPE_MUTABLE_VALVEcan be used. Any potential types inVkMutableDescriptorTypeCreateInfoVALVE::pDescriptorTypesforbindingshare the same offset. If the size of the mutable descriptor is larger than the size of a concrete descriptor type being accessed, the padding area is ignored by the implementation.Valid Usage
- The
descriptorBufferfeature must be enabled layoutmust have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTflag set
Valid Usage (Implicit)
devicemust be a validVkDevicehandlelayoutmust be a validVkDescriptorSetLayouthandlepOffsetmust be a valid pointer to aVkDeviceSizevaluelayoutmust have been created, allocated, or retrieved fromdevice
- Parameters:
device- the logical device that gets the offset.layout- the descriptor set layout being queried.binding- the binding number being queried.pOffset- a pointer toVkDeviceSizewhere the byte offset of the binding will be written.
-
nvkGetDescriptorEXT
public static void nvkGetDescriptorEXT(org.lwjgl.vulkan.VkDevice device, long pDescriptorInfo, long dataSize, long pDescriptor) Unsafe version of:GetDescriptorEXT- Parameters:
dataSize- the amount of the descriptor data to get in bytes.
-
vkGetDescriptorEXT
public static void vkGetDescriptorEXT(org.lwjgl.vulkan.VkDevice device, VkDescriptorGetInfoEXT pDescriptorInfo, ByteBuffer pDescriptor) To get a descriptor to place in a buffer.C Specification
To get descriptor data to place in a buffer, call:
void vkGetDescriptorEXT( VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);Description
The size of the data for each descriptor type is determined by the value in
VkPhysicalDeviceDescriptorBufferPropertiesEXT. This value also defines the stride in bytes for arrays of that descriptor type.If the
VkPhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSingleArrayproperty isFALSEthe implementation requires an array ofDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERdescriptors to be written into a descriptor buffer as an array of image descriptors, immediately followed by an array of sampler descriptors. Applications must write the firstVkPhysicalDeviceDescriptorBufferPropertiesEXT::sampledImageDescriptorSizebytes of the data returned throughpDescriptorto the first array, and the remainingVkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerDescriptorSizebytes of the data to the second array. For variable-sized descriptor bindings ofDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERdescriptors, the two arrays each have a size equal to the upper bounddescriptorCountof that binding.A descriptor obtained by this command references the underlying
VkImageVieworVkSampler, and these objects must not be destroyed before the last time a descriptor is dynamically accessed. For descriptor types which consume an address instead of an object, the underlyingVkBufferis referenced instead.Valid Usage
- The
descriptorBufferfeature must be enabled - If
pDescriptorInfo→typeis notDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERorpDescriptorInfo→data.pCombinedImageSamplerhas animageViewmember that was not created with aVkSamplerYcbcrConversionInfostructure in itspNextchain,dataSizemust equal the size of a descriptor of typeVkDescriptorGetInfoEXT::typedetermined by the value inVkPhysicalDeviceDescriptorBufferPropertiesEXT, or determined byVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT::combinedImageSamplerDensityMapDescriptorSizeifpDescriptorInfospecifies aDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERwhoseVkSamplerwas created withSAMPLER_CREATE_SUBSAMPLED_BIT_EXTset - If
pDescriptorInfo→typeisDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERandpDescriptorInfo→data.pCombinedImageSamplerhas animageViewmember that was created with aVkSamplerYcbcrConversionInfostructure in itspNextchain,dataSizemust equal the size ofVkPhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSizetimesVkSamplerYcbcrConversionImageFormatProperties::combinedImageSamplerDescriptorCount - If
pDescriptorInfo→typeisDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERand it has aimageViewthat isNULL_HANDLEthendataSizemust be equal to the size ofVkPhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSize
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepDescriptorInfomust be a valid pointer to a validVkDescriptorGetInfoEXTstructurepDescriptormust be a valid pointer to an array ofdataSizebytesdataSizemust be greater than 0
See Also
- Parameters:
device- the logical device that gets the descriptor.pDescriptorInfo- a pointer to aVkDescriptorGetInfoEXTstructure specifying the parameters of the descriptor to get.pDescriptor- a pointer to an application-allocated buffer where the descriptor will be written.
- The
-
nvkCmdBindDescriptorBuffersEXT
public static void nvkCmdBindDescriptorBuffersEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int bufferCount, long pBindingInfos) Unsafe version of:CmdBindDescriptorBuffersEXT- Parameters:
bufferCount- the number of elements in thepBindingInfosarray.
-
vkCmdBindDescriptorBuffersEXT
public static void vkCmdBindDescriptorBuffersEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkDescriptorBufferBindingInfoEXT.Buffer pBindingInfos) Binding descriptor buffers to a command buffer.C Specification
To bind descriptor buffers to a command buffer, call:
void vkCmdBindDescriptorBuffersEXT( VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);Description
vkCmdBindDescriptorBuffersEXTcauses any offsets previously set byCmdSetDescriptorBufferOffsetsEXTthat use the bindings numbered [0..bufferCount-1] to be no longer valid for subsequent bound pipeline commands. Any previously bound buffers at binding points greater than or equal tobufferCountare unbound.Valid Usage
- The
descriptorBufferfeature must be enabled - There must be no more than
VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindingselements inpBindingInfoswithVkDescriptorBufferBindingInfoEXT::usagecontainingBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT - There must be no more than
VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindingselements inpBindingInfoswithVkDescriptorBufferBindingInfoEXT::usagecontainingBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT - There must be no more than 1 element in
pBindingInfoswithVkDescriptorBufferBindingInfoEXT::usagecontainingBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT bufferCountmust be less than or equal toVkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings- For any element of
pBindingInfos, if the buffer from whichaddresswas queried is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - For any element of
pBindingInfos, the buffer from whichaddresswas queried must have been created with theBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXTbit set if it contains sampler descriptor data - For any element of
pBindingInfos, the buffer from whichaddresswas queried must have been created with theBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXTbit set if it contains resource descriptor data - For any element of
pBindingInfos,usagemust match the buffer from whichaddresswas queried
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepBindingInfosmust be a valid pointer to an array ofbufferCountvalidVkDescriptorBufferBindingInfoEXTstructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
bufferCountmust be greater than 0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics Compute State See Also
- Parameters:
commandBuffer- the command buffer that the descriptor buffers will be bound to.pBindingInfos- a pointer to an array ofVkDescriptorBufferBindingInfoEXTstructures.
- The
-
nvkCmdSetDescriptorBufferOffsetsEXT
public static void nvkCmdSetDescriptorBufferOffsetsEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, int setCount, long pBufferIndices, long pOffsets) Unsafe version of:CmdSetDescriptorBufferOffsetsEXT- Parameters:
setCount- the number of elements in thepBufferIndicesandpOffsetsarrays.
-
vkCmdSetDescriptorBufferOffsetsEXT
public static void vkCmdSetDescriptorBufferOffsetsEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, IntBuffer pBufferIndices, LongBuffer pOffsets) Setting descriptor buffer offsets in a command buffer.C Specification
To set descriptor buffer offsets in a command buffer, call:
void vkCmdSetDescriptorBufferOffsetsEXT( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);Description
vkCmdSetDescriptorBufferOffsetsEXTbindssetCountpairs of descriptor buffers, specified by indices into the binding points bound usingCmdBindDescriptorBuffersEXT, and buffer offsets to set numbers [firstSet..firstSet+descriptorSetCount-1] for subsequent bound pipeline commands set bypipelineBindPoint. Set [firstSet+ i] is bound to the descriptor buffer at bindingpBufferIndices[i] at an offset ofpOffsets[i]. Any bindings that were previously applied via these sets, or calls toCmdBindDescriptorSets, are no longer valid. Other sets will also be invalidated upon calling this command iflayoutdiffers from the pipeline layout used to bind those other sets, as described in Pipeline Layout Compatibility.After binding descriptors, applications can modify descriptor memory either by performing writes on the host or with device commands. When descriptor memory is updated with device commands, visibility for the shader stage accessing a descriptor is ensured with the
ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXTaccess flag. Implementations must not access resources referenced by these descriptors unless they are dynamically accessed by shaders. Descriptors bound with this call can be undefined if they are not dynamically accessed by shaders.Implementations may read descriptor data for any statically accessed descriptor if the
bindinginlayoutis not declared with theDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITflag. If thebindinginlayoutis declared withDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, implementations must not read descriptor data that is not dynamically accessed.Applications must ensure that any descriptor which the implementation may read must be in-bounds of the underlying descriptor buffer binding.
Note
Applications can freely decide how large a variable descriptor buffer binding is, so it may not be safe to read such descriptor payloads statically. The intention of these rules is to allow implementations to speculatively prefetch descriptor payloads where feasible.
Dynamically accessing a resource through descriptor data from an unbound region of a sparse partially-resident buffer will result in invalid descriptor data being read, and therefore undefined behavior.
Note
For descriptors written by the host, visibility is implied through the automatic visibility operation on queue submit, and there is no need to consider
VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT. Explicit synchronization for descriptors is only required when descriptors are updated on the device.Note
The requirements above imply that all descriptor bindings have been defined with the equivalent of
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITandDESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, but enabling those features is not required to get this behavior.Valid Usage
- The offsets in
pOffsetsmust be aligned toVkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment - The offsets in
pOffsetsmust be small enough such that any descriptor binding referenced bylayoutwithout theDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITflag computes a valid address inside the underlyingVkBuffer - The offsets in
pOffsetsmust be small enough such that any location accessed by a shader as a sampler descriptor must be withinVkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRangeof the sampler descriptor buffer binding - The offsets in
pOffsetsmust be small enough such that any location accessed by a shader as a resource descriptor must be withinVkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRangeof the resource descriptor buffer binding - Each element of
pBufferIndicesmust be less thanVkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings - Each element of
pBufferIndicesmust reference a valid descriptor buffer binding set by a previous call toCmdBindDescriptorBuffersEXTincommandBuffer - The sum of
firstSetandsetCountmust be less than or equal toVkPipelineLayoutCreateInfo::setLayoutCountprovided whenlayoutwas created - The
VkDescriptorSetLayoutfor each set fromfirstSettofirstSet + setCountwhenlayoutwas created must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTbit set - The
descriptorBufferfeature must be enabled pipelineBindPointmust be supported by thecommandBuffer’s parentVkCommandPool’s queue family
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepipelineBindPointmust be a validVkPipelineBindPointvaluelayoutmust be a validVkPipelineLayouthandlepBufferIndicesmust be a valid pointer to an array ofsetCountuint32_tvaluespOffsetsmust be a valid pointer to an array ofsetCountVkDeviceSizevaluescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
setCountmust be greater than 0- Both of
commandBuffer, andlayoutmust have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics Compute State - Parameters:
commandBuffer- the command buffer in which the descriptor buffer offsets will be set.pipelineBindPoint- aVkPipelineBindPointindicating the type of the pipeline that will use the descriptors.layout- aVkPipelineLayoutobject used to program the bindings.firstSet- the number of the first set to be bound.pBufferIndices- a pointer to an array of indices into the descriptor buffer binding points set byCmdBindDescriptorBuffersEXT.pOffsets- a pointer to an array ofVkDeviceSizeoffsets to apply to the bound descriptor buffers.
- The offsets in
-
vkCmdBindDescriptorBufferEmbeddedSamplersEXT
public static void vkCmdBindDescriptorBufferEmbeddedSamplersEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int set) Setting embedded immutable samplers offsets in a command buffer.C Specification
To bind an embedded immutable sampler set to a command buffer, call:
void vkCmdBindDescriptorBufferEmbeddedSamplersEXT( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);Description
vkCmdBindDescriptorBufferEmbeddedSamplersEXTbinds the embedded immutable samplers insetoflayouttosetfor the command buffer for subsequent bound pipeline commands set bypipelineBindPoint. Any previous binding to this set byCmdSetDescriptorBufferOffsetsEXTor this command is overwritten. Any sets that were last bound by a call toCmdBindDescriptorSetsare invalidated upon calling this command. Other sets will also be invalidated upon calling this command iflayoutdiffers from the pipeline layout used to bind those other sets, as described in Pipeline Layout Compatibility.Valid Usage
- The
VkDescriptorSetLayoutat indexsetwhenlayoutwas created must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXTbit set setmust be less than or equal toVkPipelineLayoutCreateInfo::setLayoutCountprovided whenlayoutwas created- The
descriptorBufferfeature must be enabled pipelineBindPointmust be supported by thecommandBuffer’s parentVkCommandPool’s queue family
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepipelineBindPointmust be a validVkPipelineBindPointvaluelayoutmust be a validVkPipelineLayouthandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
- Both of
commandBuffer, andlayoutmust have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics Compute State - Parameters:
commandBuffer- the command buffer that the embedded immutable samplers will be bound to.pipelineBindPoint- aVkPipelineBindPointindicating the type of the pipeline that will use the embedded immutable samplers.layout- aVkPipelineLayoutobject used to program the bindings.set- the number of the set to be bound.
- The
-
nvkGetBufferOpaqueCaptureDescriptorDataEXT
public static int nvkGetBufferOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetBufferOpaqueCaptureDescriptorDataEXT -
vkGetBufferOpaqueCaptureDescriptorDataEXT
public static int vkGetBufferOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkBufferCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get buffer opaque capture descriptor data.C Specification
To get the opaque descriptor data for a buffer, call:
VkResult vkGetBufferOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);Valid Usage
- The
descriptorBufferCaptureReplayfeature must be enabled pDatamust point to a buffer that is at leastVkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSizebytes in size- If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkBufferCaptureDescriptorDataInfoEXTstructurepDatamust be a pointer value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that gets the data.pInfo- a pointer to aVkBufferCaptureDescriptorDataInfoEXTstructure specifying the buffer.pData- a pointer to an application-allocated buffer where the data will be written.
- The
-
nvkGetImageOpaqueCaptureDescriptorDataEXT
public static int nvkGetImageOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetImageOpaqueCaptureDescriptorDataEXT -
vkGetImageOpaqueCaptureDescriptorDataEXT
public static int vkGetImageOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkImageCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get image opaque capture descriptor data.C Specification
To get the opaque capture descriptor data for an image, call:
VkResult vkGetImageOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);Valid Usage
- The
descriptorBufferCaptureReplayfeature must be enabled pDatamust point to a buffer that is at leastVkPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSizebytes in size- If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkImageCaptureDescriptorDataInfoEXTstructurepDatamust be a pointer value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that gets the data.pInfo- a pointer to aVkImageCaptureDescriptorDataInfoEXTstructure specifying the image.pData- a pointer to an application-allocated buffer where the data will be written.
- The
-
nvkGetImageViewOpaqueCaptureDescriptorDataEXT
public static int nvkGetImageViewOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetImageViewOpaqueCaptureDescriptorDataEXT -
vkGetImageViewOpaqueCaptureDescriptorDataEXT
public static int vkGetImageViewOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkImageViewCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get image view opaque capture descriptor data.C Specification
To get the opaque capture descriptor data for an image view, call:
VkResult vkGetImageViewOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);Valid Usage
- The
descriptorBufferCaptureReplayfeature must be enabled pDatamust point to a buffer that is at leastVkPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSizebytes in size- If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkImageViewCaptureDescriptorDataInfoEXTstructurepDatamust be a pointer value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that gets the data.pInfo- a pointer to aVkImageViewCaptureDescriptorDataInfoEXTstructure specifying the image view.pData- a pointer to an application-allocated buffer where the data will be written.
- The
-
nvkGetSamplerOpaqueCaptureDescriptorDataEXT
public static int nvkGetSamplerOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetSamplerOpaqueCaptureDescriptorDataEXT -
vkGetSamplerOpaqueCaptureDescriptorDataEXT
public static int vkGetSamplerOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkSamplerCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get sampler opaque capture descriptor data.C Specification
To get the opaque capture descriptor data for a sampler, call:
VkResult vkGetSamplerOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);Valid Usage
- The
descriptorBufferCaptureReplayfeature must be enabled pDatamust point to a buffer that is at leastVkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSizebytes in size- If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkSamplerCaptureDescriptorDataInfoEXTstructurepDatamust be a pointer value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that gets the data.pInfo- a pointer to aVkSamplerCaptureDescriptorDataInfoEXTstructure specifying the sampler.pData- a pointer to an application-allocated buffer where the data will be written.
- The
-
nvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT
public static int nvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, long pInfo, long pData) Unsafe version of:GetAccelerationStructureOpaqueCaptureDescriptorDataEXT -
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT
public static int vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(org.lwjgl.vulkan.VkDevice device, VkAccelerationStructureCaptureDescriptorDataInfoEXT pInfo, ByteBuffer pData) Get acceleration structure opaque capture descriptor data.C Specification
To get the opaque capture descriptor data for an acceleration structure, call:
VkResult vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);Valid Usage
- The
descriptorBufferCaptureReplayfeature must be enabled pDatamust point to a buffer that is at leastVkPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSizebytes in size- If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkAccelerationStructureCaptureDescriptorDataInfoEXTstructurepDatamust be a pointer value
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that gets the data.pInfo- a pointer to aVkAccelerationStructureCaptureDescriptorDataInfoEXTstructure specifying the acceleration structure.pData- a pointer to an application-allocated buffer where the data will be written.
- The
-
vkGetDescriptorSetLayoutSizeEXT
public static void vkGetDescriptorSetLayoutSizeEXT(org.lwjgl.vulkan.VkDevice device, long layout, long[] pLayoutSizeInBytes) Array version of:GetDescriptorSetLayoutSizeEXT -
vkGetDescriptorSetLayoutBindingOffsetEXT
public static void vkGetDescriptorSetLayoutBindingOffsetEXT(org.lwjgl.vulkan.VkDevice device, long layout, int binding, long[] pOffset) Array version of:GetDescriptorSetLayoutBindingOffsetEXT -
vkCmdSetDescriptorBufferOffsetsEXT
public static void vkCmdSetDescriptorBufferOffsetsEXT(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, int[] pBufferIndices, long[] pOffsets) Array version of:CmdSetDescriptorBufferOffsetsEXT
-