Class VK10
- java.lang.Object
-
- org.lwjgl.vulkan.VK10
-
public class VK10 extends java.lang.Object
The core Vulkan 1.0 functionality.
-
-
Field Summary
Fields Modifier and Type Field and Description static int
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
Indicates that the access is a read via a color attachment.static int
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
Indicates that the access is a write via a color or resolve attachment.static int
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
Indicates that the access is a read via a depth/stencil attachment.static int
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
Indicates that the access is a write via a depth/stencil attachment.static int
VK_ACCESS_HOST_READ_BIT
Indicates that the access is a read via the host.static int
VK_ACCESS_HOST_WRITE_BIT
Indicates that the access is a write via the host.static int
VK_ACCESS_INDEX_READ_BIT
Indicates that the access is an index buffer read.static int
VK_ACCESS_INDIRECT_COMMAND_READ_BIT
Indicates that the access is an indirect command structure read as part of an indirect drawing command.static int
VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
Indicates that the access is a read via an input attachment descriptor.static int
VK_ACCESS_MEMORY_READ_BIT
Indicates that the access is a read via a non-specific unit attached to the memory.static int
VK_ACCESS_MEMORY_WRITE_BIT
Indicates that the access is a write via a non-specific unit attached to the memory.static int
VK_ACCESS_SHADER_READ_BIT
Indicates that the access is a read from a shader via any other descriptor type.static int
VK_ACCESS_SHADER_WRITE_BIT
Indicates that the access is a write or atomic from a shader via the same descriptor types as inACCESS_SHADER_READ_BIT
.static int
VK_ACCESS_TRANSFER_READ_BIT
Indicates that the access is a read from a transfer (copy, blit, resolve, etc.) operation.static int
VK_ACCESS_TRANSFER_WRITE_BIT
Indicates that the access is a write from a transfer (copy, blit, resolve, etc.) operation.static int
VK_ACCESS_UNIFORM_READ_BIT
Indicates that the access is a read via a uniform buffer or dynamic uniform buffer descriptor.static int
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
Indicates that the access is a read via the vertex input bindings.static int
VK_API_VERSION_1_0
The Vulkan version number is used in several places in the API.static int
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
If set, then the attachment is treated as if it shares physical memory with another attachment in the same render pass.static int
VK_ATTACHMENT_LOAD_OP_CLEAR
Means the contents within the render area will be cleared to a uniform value, which is specified when a render pass instance is begun.static int
VK_ATTACHMENT_LOAD_OP_DONT_CARE
Means the contents within the area need not be preserved; the contents of the attachment will be undefined inside the render area.static int
VK_ATTACHMENT_LOAD_OP_LOAD
Means the contents within the render area will be preserved.static int
VK_ATTACHMENT_STORE_OP_DONT_CARE
Means the contents within the render area are not needed after rendering, and may be discarded; the contents of the attachment will be undefined inside the render area.static int
VK_ATTACHMENT_STORE_OP_STORE
Means the contents within the render area are written to memory and will be available for reading after the render pass instance completes once the writes have been synchronized withACCESS_COLOR_ATTACHMENT_WRITE_BIT
(for color attachments) orACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
(for depth/stencil attachments).static int
VK_ATTACHMENT_UNUSED
Special values.static int
VK_BLEND_FACTOR_CONSTANT_ALPHA
(Ac, Ac, Ac, Ac)
static int
VK_BLEND_FACTOR_CONSTANT_COLOR
(Rc, Gc, Bc, Ac)
static int
VK_BLEND_FACTOR_DST_ALPHA
(Ad, Ad, Ad, Ad)
static int
VK_BLEND_FACTOR_DST_COLOR
(Rd, Gd, Bd, Ad)
static int
VK_BLEND_FACTOR_ONE
(1, 1, 1, 1)
static int
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
(1 − Ac, 1 − Ac, 1 − Ac, 1 − Ac)
static int
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
(1 − Rc, 1 − Gc, 1 − Bc, 1 − Ac)
static int
VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
(1 − Ad, 1 − Ad, 1 − Ad, 1 − Ad)
static int
VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR
(1 − Rd, 1 − Gd, 1 − Bd, 1 − Ad)
static int
VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
(1 − As0, 1 − As0, 1 − As0, 1 − As0)
static int
VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
(1 − Rs0, 1 − Gs0, 1 − Bs0, 1 − As0)
static int
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
(1 − As1, 1 − As1, 1 − As1, 1 − As1)
static int
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
(1 − Rs1, 1 − Gs1, 1 − Bs1, 1 − As1)
static int
VK_BLEND_FACTOR_SRC_ALPHA
(As0, As0, As0, As0)
static int
VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
(f, f, f, 1) ; f = min(As0, 1 − Ad)
static int
VK_BLEND_FACTOR_SRC_COLOR
(Rs0, Gs0, Bs0, As0)
static int
VK_BLEND_FACTOR_SRC1_ALPHA
(As1, As1, As1, As1)
static int
VK_BLEND_FACTOR_SRC1_COLOR
(Rs1, Gs1, Bs1, As1)
static int
VK_BLEND_FACTOR_ZERO
(0, 0, 0, 0)
static int
VK_BLEND_OP_ADD
R = Rs0 × Sr + Rd × Dr G = Gs0 × Sg + Gd × Dg B = Bs0 × Sb + Bd × Db A = As0 × Sa + Ad × Da
static int
VK_BLEND_OP_MAX
R = max(Rs0, Rd) G = max(Gs0, Gd) B = max(Bs0, Bd) A = max(As0, Ad)
static int
VK_BLEND_OP_MIN
R = min(Rs0, Rd) G = min(Gs0, Gd) B = min(Bs0, Bd) A = min(As0, Ad)
static int
VK_BLEND_OP_REVERSE_SUBTRACT
R = Rd × Dr − Rs0 × Sr G = Gd × Dg − Gs0 × Sg B = Bd × Db − Bs0 × Sb A = Ad × Da − As0 × Sa
static int
VK_BLEND_OP_SUBTRACT
R = Rs0 × Sr − Rd × Dr G = Gs0 × Sg − Gd × Dg B = Bs0 × Sb − Bd × Db A = As0 × Sa − Ad × Da
static int
VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK
(0.0, 0.0, 0.0, 1.0)
static int
VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE
(1.0, 1.0, 1.0, 1.0)
static int
VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
(0.0, 0.0, 0.0, 0.0)
static int
VK_BORDER_COLOR_INT_OPAQUE_BLACK
(0, 0, 0, 1)
static int
VK_BORDER_COLOR_INT_OPAQUE_WHITE
(1, 1, 1, 1)
static int
VK_BORDER_COLOR_INT_TRANSPARENT_BLACK
(0, 0, 0, 0)
static int
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
Iindicates that the buffer will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another buffer (or another portion of the same buffer).static int
VK_BUFFER_CREATE_SPARSE_BINDING_BIT
Indicates that the buffer will be backed using sparse memory binding.static int
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
Indicates that the buffer can be partially backed using sparse memory binding.static int
VK_BUFFER_USAGE_INDEX_BUFFER_BIT
Indicates that the buffer is suitable for passing as thebuffer
parameter toCmdBindIndexBuffer
.static int
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
Indicates that the buffer is suitable for passing as thebuffer
parameter toCmdDrawIndirect
,CmdDrawIndexedIndirect
, orCmdDispatchIndirect
.static int
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
Indicates that the buffer can be used in aVkDescriptorBufferInfo
suitable for occupying aVkDescriptorSet
slot either of typeDESCRIPTOR_TYPE_STORAGE_BUFFER
orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
.static int
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
Indicates that the buffer can be used to create aVkBufferView
suitable for occupying aVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
.static int
VK_BUFFER_USAGE_TRANSFER_DST_BIT
Indicates that the buffer can be used as the destination of a transfer command.static int
VK_BUFFER_USAGE_TRANSFER_SRC_BIT
Indicates that the buffer can be used as the source of a transfer command.static int
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
Indicates that the buffer can be used in aVkDescriptorBufferInfo
suitable for occupying aVkDescriptorSet
slot either of typeDESCRIPTOR_TYPE_UNIFORM_BUFFER
orDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
.static int
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
Indicates that the buffer can be used to create aVkBufferView
suitable for occupying aVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
.static int
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
Indicates that the buffer is suitable for passing as an element of thepBuffers
array toCmdBindVertexBuffers
.static int
VK_COLOR_COMPONENT_A_BIT
If set, then theA
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static int
VK_COLOR_COMPONENT_B_BIT
If set, then theB
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static int
VK_COLOR_COMPONENT_G_BIT
If set, then theG
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static int
VK_COLOR_COMPONENT_R_BIT
If set, then theR
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static int
VK_COMMAND_BUFFER_LEVEL_PRIMARY
VK_COMMAND_BUFFER_LEVEL_SECONDARYVkCommandBufferLevelstatic int
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
If set, then most or all memory resources currently owned by the command buffer should be returned to the parent command pool.static int
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
Indicates that each recording of the command buffer will only be submitted once, and the command buffer will be reset and recorded again between each submission.static int
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
Indicates that a secondary command buffer is considered to be entirely inside a render pass.static int
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
Allows the command buffer to be resubmitted to a queue or recorded into a primary command buffer while it is pending execution.static int
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Controls whether command buffers allocated from the pool can be individually reset.static int
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
Indicates that command buffers allocated from the pool will be short-lived, meaning that they will be reset or freed in a relatively short timeframe.static int
VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
If set, resetting a command pool recycles all of the resources from the command pool back to the system.static int
VK_COMPARE_OP_ALWAYS
The test always passes.static int
VK_COMPARE_OP_EQUAL
The test passes when R = Sstatic int
VK_COMPARE_OP_GREATER
The test passes when R > S.static int
VK_COMPARE_OP_GREATER_OR_EQUAL
The test passes when R ≥ S.static int
VK_COMPARE_OP_LESS
The test passes when R < S.static int
VK_COMPARE_OP_LESS_OR_EQUAL
The test passes when R ≤ S.static int
VK_COMPARE_OP_NEVER
The test never passes.static int
VK_COMPARE_OP_NOT_EQUAL
The test passes when R ≠ S.static int
VK_COMPONENT_SWIZZLE_A
The component is set to the value of the A component of the image.static int
VK_COMPONENT_SWIZZLE_B
The component is set to the value of the B component of the image.static int
VK_COMPONENT_SWIZZLE_G
The component is set to the value of the G component of the image.static int
VK_COMPONENT_SWIZZLE_IDENTITY
The component is set to the identity swizzle.static int
VK_COMPONENT_SWIZZLE_ONE
The component is set to either 1 or 1.0 depending on whether the type of the image view format is integer or floating-point respectively, as determined by the Format Definition section for eachVkFormat
.static int
VK_COMPONENT_SWIZZLE_R
The component is set to the value of the R component of the image.static int
VK_COMPONENT_SWIZZLE_ZERO
The component is set to zero.static int
VK_CULL_MODE_BACK_BIT
If set, back-facing triangles are discarded.static int
VK_CULL_MODE_FRONT_AND_BACK
If set, all triangles are discarded.static int
VK_CULL_MODE_FRONT_BIT
If set, front-facing triangles are discarded.static int
VK_CULL_MODE_NONE
If set, no triangles are discarded.static int
VK_DEPENDENCY_BY_REGION_BIT
If set, then the dependency is by-region.static int
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
If set, then descriptor sets can return their individual allocations to the pool, i.e.static int
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
VK_DESCRIPTOR_TYPE_SAMPLER
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERVkDescriptorTypestatic int
VK_DYNAMIC_STATE_BLEND_CONSTANTS
Indicates that theblendConstants
state inVkPipelineColorBlendStateCreateInfo
will be ignored and must be set dynamically withCmdSetBlendConstants
before any draws are performed with a pipeline state withVkPipelineColorBlendAttachmentState
memberblendEnable
set toTRUE
and any of the blend functions using a constant blend color.static int
VK_DYNAMIC_STATE_DEPTH_BIAS
Indicates that thedepthBiasConstantFactor
,depthBiasClamp
anddepthBiasSlopeFactor
states inVkPipelineRasterizationStateCreateInfo
will be ignored and must be set dynamically withCmdSetDepthBias
before any draws are performed withdepthBiasEnable
inVkPipelineRasterizationStateCreateInfo
set toTRUE
.static int
VK_DYNAMIC_STATE_DEPTH_BOUNDS
Indicates that theminDepthBounds
andmaxDepthBounds
states ofVkPipelineDepthStencilStateCreateInfo
will be ignored and must be set dynamically withCmdSetDepthBounds
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberdepthBoundsTestEnable
set toTRUE
.static int
VK_DYNAMIC_STATE_LINE_WIDTH
Indicates that thelineWidth
state inVkPipelineRasterizationStateCreateInfo
will be ignored and must be set dynamically withCmdSetLineWidth
before any draw commands that generate line primitives for the rasterizer.static int
VK_DYNAMIC_STATE_SCISSOR
Indicates that thepScissors
state inVkPipelineViewportStateCreateInfo
will be ignored and must be set dynamically withCmdSetScissor
before any draw commands.static int
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
Indicates that thecompareMask
state inVkPipelineDepthStencilStateCreateInfo
for both front and back will be ignored and must be set dynamically withCmdSetStencilCompareMask
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberstencilTestEnable
set toTRUE
.static int
VK_DYNAMIC_STATE_STENCIL_REFERENCE
Indicates that the reference state inVkPipelineDepthStencilStateCreateInfo
for both front and back will be ignored and must be set dynamically withCmdSetStencilReference
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberstencilTestEnable
set toTRUE
.static int
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
Indicates that thewriteMask
state inVkPipelineDepthStencilStateCreateInfo
for both front and back will be ignored and must be set dynamically withCmdSetStencilWriteMask
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberstencilTestEnable
set toTRUE
.static int
VK_DYNAMIC_STATE_VIEWPORT
Indicates that thepViewports
state inVkPipelineViewportStateCreateInfo
will be ignored and must be set dynamically withCmdSetViewport
before any draw commands.static int
VK_ERROR_DEVICE_LOST
The logical or physical device has been lost.static int
VK_ERROR_EXTENSION_NOT_PRESENT
A requested extension is not supported.static int
VK_ERROR_FEATURE_NOT_PRESENT
A requested feature is not supported.static int
VK_ERROR_FORMAT_NOT_SUPPORTED
A requested format is not supported on this device.static int
VK_ERROR_INCOMPATIBLE_DRIVER
The requested version of Vulkan is not supported by the driver or is otherwise incompatible for implementation-specific reasons.static int
VK_ERROR_INITIALIZATION_FAILED
Initialization of an object could not be completed for implementation-specific reasons.static int
VK_ERROR_LAYER_NOT_PRESENT
A requested layer is not present or could not be loaded.static int
VK_ERROR_MEMORY_MAP_FAILED
Mapping of a memory object has failed.static int
VK_ERROR_OUT_OF_DEVICE_MEMORY
A device memory allocation has failed.static int
VK_ERROR_OUT_OF_HOST_MEMORY
A host memory allocation has failed.static int
VK_ERROR_TOO_MANY_OBJECTS
Too many objects of the type have already been created.static int
VK_EVENT_RESET
An event is unsignaled.static int
VK_EVENT_SET
An event is signaled.static int
VK_FALSE
Boolean constants.static int
VK_FENCE_CREATE_SIGNALED_BIT
If set, then the fence object is created in the signaled state.static int
VK_FILTER_LINEAR
Linear filtering.static int
VK_FILTER_NEAREST
Nearest filtering.static int
VK_FORMAT_A1R5G5B5_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 1-bit A component in bit 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits 5..9, and a 5-bit B component in bits 0..4.static int
VK_FORMAT_A2B10G10R10_SINT_PACK32
A four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.static int
VK_FORMAT_A2B10G10R10_SNORM_PACK32
A four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.static int
VK_FORMAT_A2B10G10R10_SSCALED_PACK32
A four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.static int
VK_FORMAT_A2B10G10R10_UINT_PACK32
A four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.static int
VK_FORMAT_A2B10G10R10_UNORM_PACK32
A four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.static int
VK_FORMAT_A2B10G10R10_USCALED_PACK32
A four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.static int
VK_FORMAT_A2R10G10B10_SINT_PACK32
A four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.static int
VK_FORMAT_A2R10G10B10_SNORM_PACK32
A four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.static int
VK_FORMAT_A2R10G10B10_SSCALED_PACK32
A four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.static int
VK_FORMAT_A2R10G10B10_UINT_PACK32
A four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.static int
VK_FORMAT_A2R10G10B10_UNORM_PACK32
A four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.static int
VK_FORMAT_A2R10G10B10_USCALED_PACK32
A four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.static int
VK_FORMAT_A8B8G8R8_SINT_PACK32
A four-component, 32-bit packed signed integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.static int
VK_FORMAT_A8B8G8R8_SNORM_PACK32
A four-component, 32-bit packed signed normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.static int
VK_FORMAT_A8B8G8R8_SRGB_PACK32
A four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15, and an 8-bit R component stored with sRGB nonlinear encoding in bits 0..7.static int
VK_FORMAT_A8B8G8R8_SSCALED_PACK32
A four-component, 32-bit packed signed scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.static int
VK_FORMAT_A8B8G8R8_UINT_PACK32
A four-component, 32-bit packed unsigned integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.static int
VK_FORMAT_A8B8G8R8_UNORM_PACK32
A four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.static int
VK_FORMAT_A8B8G8R8_USCALED_PACK32
A four-component, 32-bit packed unsigned scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.static int
VK_FORMAT_ASTC_10x10_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_10x10_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_10x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_10x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_10x6_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_10x6_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_10x8_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_10x8_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_12x10_SRGB_BLOCK
A four-component, ASTC compressed format where each 12x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_12x10_UNORM_BLOCK
A four-component, ASTC compressed format where each 12x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_12x12_SRGB_BLOCK
A four-component, ASTC compressed format where each 12x12 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_12x12_UNORM_BLOCK
A four-component, ASTC compressed format where each 12x12 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_4x4_SRGB_BLOCK
A four-component, ASTC compressed format where each 4x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_4x4_UNORM_BLOCK
A four-component, ASTC compressed format where each 4x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_5x4_SRGB_BLOCK
A four-component, ASTC compressed format where each 5x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_5x4_UNORM_BLOCK
A four-component, ASTC compressed format where each 5x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_5x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 5x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_5x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 5x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_6x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 6x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_6x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 6x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_6x6_SRGB_BLOCK
A four-component, ASTC compressed format where each 6x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_6x6_UNORM_BLOCK
A four-component, ASTC compressed format where each 6x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_8x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 8x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_8x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 8x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_8x6_SRGB_BLOCK
A four-component, ASTC compressed format where each 8x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_8x6_UNORM_BLOCK
A four-component, ASTC compressed format where each 8x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_ASTC_8x8_SRGB_BLOCK
A four-component, ASTC compressed format where each 8x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_ASTC_8x8_UNORM_BLOCK
A four-component, ASTC compressed format where each 8x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.static int
VK_FORMAT_B10G11R11_UFLOAT_PACK32
A three-component, 32-bit packed unsigned floating-point format that has a 10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component in bits 0..10.static int
VK_FORMAT_B4G4R4A4_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 4-bit B component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits 4..7, and a 4-bit A component in bits 0..3.static int
VK_FORMAT_B5G5R5A1_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits 1..5, and a 1-bit A component in bit 0.static int
VK_FORMAT_B5G6R5_UNORM_PACK16
A three-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in bits 0..4.static int
VK_FORMAT_B8G8R8_SINT
A three-component, 24-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.static int
VK_FORMAT_B8G8R8_SNORM
A three-component, 24-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.static int
VK_FORMAT_B8G8R8_SRGB
A three-component, 24-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear encoding in byte 2.static int
VK_FORMAT_B8G8R8_SSCALED
A three-component, 24-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.static int
VK_FORMAT_B8G8R8_UINT
A three-component, 24-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.static int
VK_FORMAT_B8G8R8_UNORM
A three-component, 24-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.static int
VK_FORMAT_B8G8R8_USCALED
A three-component, 24-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.static int
VK_FORMAT_B8G8R8A8_SINT
A four-component, 32-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_B8G8R8A8_SNORM
A four-component, 32-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_B8G8R8A8_SRGB
A four-component, 32-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit R component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_B8G8R8A8_SSCALED
A four-component, 32-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_B8G8R8A8_UINT
A four-component, 32-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_B8G8R8A8_UNORM
A four-component, 32-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_B8G8R8A8_USCALED
A four-component, 32-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_BC1_RGB_SRGB_BLOCK
A three-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding.static int
VK_FORMAT_BC1_RGB_UNORM_BLOCK
A three-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data.static int
VK_FORMAT_BC1_RGBA_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding, and provides 1 bit of alpha.static int
VK_FORMAT_BC1_RGBA_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data, and provides 1 bit of alpha.static int
VK_FORMAT_BC2_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of unsigned normalized alpha image data followed by 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding.static int
VK_FORMAT_BC2_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of unsigned normalized alpha image data followed by 64-bits of encoded unsigned normalized RGB image data.static int
VK_FORMAT_BC3_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded alpha image data followed by 64-bits of encoded RGB image data with sRGB nonlinear encoding.static int
VK_FORMAT_BC3_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded alpha image data followed by 64-bits of encoded RGB image data.static int
VK_FORMAT_BC4_SNORM_BLOCK
A one-component, block compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data.static int
VK_FORMAT_BC4_UNORM_BLOCK
A one-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data.static int
VK_FORMAT_BC5_SNORM_BLOCK
A two-component, block compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data followed by 64-bits of encoded signed normalized green image data.static int
VK_FORMAT_BC5_UNORM_BLOCK
A two-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data followed by 64-bits of encoded unsigned normalized green image data.static int
VK_FORMAT_BC6H_SFLOAT_BLOCK
A three-component, block compressed format where each 4x4 block consists of 128-bits of encoded signed floating-point RGB image data.static int
VK_FORMAT_BC6H_UFLOAT_BLOCK
A three-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned floating-point RGB image data.static int
VK_FORMAT_BC7_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.static int
VK_FORMAT_BC7_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned normalized RGBA image data.static int
VK_FORMAT_D16_UNORM
A one-component, 16-bit unsigned normalized format that has a single 16-bit depth component.static int
VK_FORMAT_D16_UNORM_S8_UINT
A two-component, 24-bit format that has 16 unsigned normalized bits in the depth component and 8 unsigned integer bits in the stencil component.static int
VK_FORMAT_D24_UNORM_S8_UINT
A two-component, 32-bit packed format that has 8 unsigned integer bits in the stencil component, and 24 unsigned normalized bits in the depth component.static int
VK_FORMAT_D32_SFLOAT
A one-component, 32-bit signed floating-point format that has 32-bits in the depth component.static int
VK_FORMAT_D32_SFLOAT_S8_UINT
A two-component format that has 32 signed float bits in the depth component and 8 unsigned integer bits in the stencil component.static int
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
A three-component, 32-bit packed unsigned floating-point format that has a 5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G component mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8.static int
VK_FORMAT_EAC_R11_SNORM_BLOCK
A one-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data.static int
VK_FORMAT_EAC_R11_UNORM_BLOCK
A one-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data.static int
VK_FORMAT_EAC_R11G11_SNORM_BLOCK
A two-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data followed by 64-bits of encoded signed normalized green image data.static int
VK_FORMAT_EAC_R11G11_UNORM_BLOCK
A two-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data followed by 64-bits of encoded unsigned normalized green image data.static int
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
A three-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding.static int
VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
A three-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data.static int
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding, and provides 1 bit of alpha.static int
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data, and provides 1 bit of alpha.static int
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding, and 64-bits of encoded unsigned normalized alpha image data.static int
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data, and 64-bits of encoded unsigned normalized alpha image data.static int
VK_FORMAT_FEATURE_BLIT_DST_BIT
static int
VK_FORMAT_FEATURE_BLIT_SRC_BIT
static int
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VkImageView
can be used as a framebuffer color attachment and as an input attachment.static int
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VkImageView
can be used as a framebuffer color attachment that supports blending and as an input attachment.static int
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VkImageView
can be used as a framebuffer depth/stencil attachment and as an input attachment.static int
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VkImageView
can be sampled from.static int
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
IfFORMAT_FEATURE_SAMPLED_IMAGE_BIT
is also set,VkImageView
can be used with a sampler that has either ofmagFilter
orminFilter
set toFILTER_LINEAR
, ormipmapMode
set toSAMPLER_MIPMAP_MODE_LINEAR
.static int
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VkImageView
can be used as storage image that supports atomic operations.static int
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VkImageView
can be used as storage image.static int
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
Atomic operations are supported onDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
with this format.static int
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
Format can be used to create aVkBufferView
that can be bound to aDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
descriptor.static int
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
Format can be used to create aVkBufferView
that can be bound to aDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
descriptor.static int
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
Format can be used as a vertex attribute format (VkVertexInputAttributeDescription
.format
).static int
VK_FORMAT_R16_SFLOAT
A one-component, 16-bit signed floating-point format that has a single 16-bit R component.static int
VK_FORMAT_R16_SINT
A one-component, 16-bit signed integer format that has a single 16-bit R component.static int
VK_FORMAT_R16_SNORM
A one-component, 16-bit signed normalized format that has a single 16-bit R component.static int
VK_FORMAT_R16_SSCALED
A one-component, 16-bit signed scaled integer format that has a single 16-bit R component.static int
VK_FORMAT_R16_UINT
A one-component, 16-bit unsigned integer format that has a single 16-bit R component.static int
VK_FORMAT_R16_UNORM
A one-component, 16-bit unsigned normalized format that has a single 16-bit R component.static int
VK_FORMAT_R16_USCALED
A one-component, 16-bit unsigned scaled integer format that has a single 16-bit R component.static int
VK_FORMAT_R16G16_SFLOAT
A two-component, 32-bit signed floating-point format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16_SINT
A two-component, 32-bit signed integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16_SNORM
A two-component, 32-bit signed normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16_SSCALED
A two-component, 32-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16_UINT
A two-component, 32-bit unsigned integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16_UNORM
A two-component, 32-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16_USCALED
A two-component, 32-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.static int
VK_FORMAT_R16G16B16_SFLOAT
A three-component, 48-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16_SINT
A three-component, 48-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16_SNORM
A three-component, 48-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16_SSCALED
A three-component, 48-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16_UINT
A three-component, 48-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16_UNORM
A three-component, 48-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16_USCALED
A three-component, 48-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.static int
VK_FORMAT_R16G16B16A16_SFLOAT
A four-component, 64-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R16G16B16A16_SINT
A four-component, 64-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R16G16B16A16_SNORM
A four-component, 64-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R16G16B16A16_SSCALED
A four-component, 64-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R16G16B16A16_UINT
A four-component, 64-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R16G16B16A16_UNORM
A four-component, 64-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R16G16B16A16_USCALED
A four-component, 64-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.static int
VK_FORMAT_R32_SFLOAT
A one-component, 32-bit signed floating-point format that has a single 32-bit R component.static int
VK_FORMAT_R32_SINT
A one-component, 32-bit signed integer format that has a single 32-bit R component.static int
VK_FORMAT_R32_UINT
A one-component, 32-bit unsigned integer format that has a single 32-bit R component.static int
VK_FORMAT_R32G32_SFLOAT
A two-component, 64-bit signed floating-point format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.static int
VK_FORMAT_R32G32_SINT
A two-component, 64-bit signed integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.static int
VK_FORMAT_R32G32_UINT
A two-component, 64-bit unsigned integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.static int
VK_FORMAT_R32G32B32_SFLOAT
A three-component, 96-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.static int
VK_FORMAT_R32G32B32_SINT
A three-component, 96-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.static int
VK_FORMAT_R32G32B32_UINT
A three-component, 96-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.static int
VK_FORMAT_R32G32B32A32_SFLOAT
A four-component, 128-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.static int
VK_FORMAT_R32G32B32A32_SINT
A four-component, 128-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.static int
VK_FORMAT_R32G32B32A32_UINT
A four-component, 128-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.static int
VK_FORMAT_R4G4_UNORM_PACK8
A two-component, 8-bit packed unsigned normalized format that has a 4-bit R component in bits 4..7, and a 4-bit G component in bits 0..3.static int
VK_FORMAT_R4G4B4A4_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 4-bit R component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits 4..7, and a 4-bit A component in bits 0..3.static int
VK_FORMAT_R5G5B5A1_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits 1..5, and a 1-bit A component in bit 0.static int
VK_FORMAT_R5G6B5_UNORM_PACK16
A three-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in bits 0..4.static int
VK_FORMAT_R64_SFLOAT
A one-component, 64-bit signed floating-point format that has a single 64-bit R component.static int
VK_FORMAT_R64_SINT
A one-component, 64-bit signed integer format that has a single 64-bit R component.static int
VK_FORMAT_R64_UINT
A one-component, 64-bit unsigned integer format that has a single 64-bit R component.static int
VK_FORMAT_R64G64_SFLOAT
A two-component, 128-bit signed floating-point format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.static int
VK_FORMAT_R64G64_SINT
A two-component, 128-bit signed integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.static int
VK_FORMAT_R64G64_UINT
A two-component, 128-bit unsigned integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.static int
VK_FORMAT_R64G64B64_SFLOAT
A three-component, 192-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.static int
VK_FORMAT_R64G64B64_SINT
A three-component, 192-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.static int
VK_FORMAT_R64G64B64_UINT
A three-component, 192-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.static int
VK_FORMAT_R64G64B64A64_SFLOAT
A four-component, 256-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.static int
VK_FORMAT_R64G64B64A64_SINT
A four-component, 256-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.static int
VK_FORMAT_R64G64B64A64_UINT
A four-component, 256-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.static int
VK_FORMAT_R8_SINT
A one-component, 8-bit signed integer format that has a single 8-bit R component.static int
VK_FORMAT_R8_SNORM
A one-component, 8-bit signed normalized format that has a single 8-bit R component.static int
VK_FORMAT_R8_SRGB
A one-component, 8-bit unsigned normalized format that has a single 8-bit R component stored with sRGB nonlinear encoding.static int
VK_FORMAT_R8_SSCALED
A one-component, 8-bit signed scaled integer format that has a single 8-bit R component.static int
VK_FORMAT_R8_UINT
A one-component, 8-bit unsigned integer format that has a single 8-bit R component.static int
VK_FORMAT_R8_UNORM
A one-component, 8-bit unsigned normalized format that has a single 8-bit R component.static int
VK_FORMAT_R8_USCALED
A one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component.static int
VK_FORMAT_R8G8_SINT
A two-component, 16-bit signed integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.static int
VK_FORMAT_R8G8_SNORM
A two-component, 16-bit signed normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.static int
VK_FORMAT_R8G8_SRGB
A two-component, 16-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored with sRGB nonlinear encoding in byte 1.static int
VK_FORMAT_R8G8_SSCALED
A two-component, 16-bit signed scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.static int
VK_FORMAT_R8G8_UINT
A two-component, 16-bit unsigned integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.static int
VK_FORMAT_R8G8_UNORM
A two-component, 16-bit unsigned normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.static int
VK_FORMAT_R8G8_USCALED
A two-component, 16-bit unsigned scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.static int
VK_FORMAT_R8G8B8_SINT
A three-component, 24-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.static int
VK_FORMAT_R8G8B8_SNORM
A three-component, 24-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.static int
VK_FORMAT_R8G8B8_SRGB
A three-component, 24-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear encoding in byte 2.static int
VK_FORMAT_R8G8B8_SSCALED
A three-component, 24-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.static int
VK_FORMAT_R8G8B8_UINT
A three-component, 24-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.static int
VK_FORMAT_R8G8B8_UNORM
A three-component, 24-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.static int
VK_FORMAT_R8G8B8_USCALED
A three-component, 24-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.static int
VK_FORMAT_R8G8B8A8_SINT
A four-component, 32-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_R8G8B8A8_SNORM
A four-component, 32-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_R8G8B8A8_SRGB
A four-component, 32-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit B component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_R8G8B8A8_SSCALED
A four-component, 32-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_R8G8B8A8_UINT
A four-component, 32-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_R8G8B8A8_UNORM
A four-component, 32-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_R8G8B8A8_USCALED
A four-component, 32-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.static int
VK_FORMAT_S8_UINT
A one-component, 8-bit unsigned integer format that has 8-bits in the stencil component.static int
VK_FORMAT_UNDEFINED
The format is not specified.static int
VK_FORMAT_X8_D24_UNORM_PACK32
A two-component, 32-bit format that has 24 unsigned normalized bits in the depth component and, optionally:, 8 bits that are unused.static int
VK_FRONT_FACE_CLOCKWISE
A triangle with negative area is considered front-facing.static int
VK_FRONT_FACE_COUNTER_CLOCKWISE
A triangle with positive area is considered front-facing.static int
VK_IMAGE_ASPECT_COLOR_BIT
VK_IMAGE_ASPECT_DEPTH_BIT
VK_IMAGE_ASPECT_METADATA_BIT
VK_IMAGE_ASPECT_STENCIL_BITVkImageAspectFlagBitsstatic int
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
Indicates that the image can be used to create aVkImageView
of typeIMAGE_VIEW_TYPE_CUBE
orIMAGE_VIEW_TYPE_CUBE_ARRAY
.static int
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
Indicates that the image can be used to create aVkImageView
with a different format from the image.static int
VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
Indicates that the image will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another image (or another portion of the same image).static int
VK_IMAGE_CREATE_SPARSE_BINDING_BIT
Indicates that the image will be backed using sparse memory binding.static int
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
Indicates that the image can be partially backed using sparse memory binding.static int
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
must only be used as a color or resolve attachment in aVkFramebuffer
.static int
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
must only be used as a depth/stencil attachment in aVkFramebuffer
.static int
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
must only be used as a read-only depth/stencil attachment in aVkFramebuffer
and/or as a read-only image in a shader (which can be read as a sampled image, combined image/sampler and/or input attachment).static int
VK_IMAGE_LAYOUT_GENERAL
Supports all types of device access.static int
VK_IMAGE_LAYOUT_PREINITIALIZED
Supports no device access.static int
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
must only be used as a read-only image in a shader (which can be read as a sampled image, combined image/sampler and/or input attachment).static int
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
must only be used as a destination image of a transfer command.static int
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
must only be used as a source image of a transfer command (see the definition ofPIPELINE_STAGE_TRANSFER_BIT
).static int
VK_IMAGE_LAYOUT_UNDEFINED
Supports no device access.static int
VK_IMAGE_TILING_LINEAR
Specifies linear tiling (texels are laid out in memory in row-major order, possibly with some padding on each row).static int
VK_IMAGE_TILING_OPTIMAL
Specifies optimal tiling (texels are laid out in an implementation-dependent arrangement, for more optimal memory access).static int
VK_IMAGE_TYPE_1D
One-dimensional imagestatic int
VK_IMAGE_TYPE_2D
Two-dimensional imagestatic int
VK_IMAGE_TYPE_3D
Three-dimensional imagestatic int
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
Indicates that the image can be used to create aVkImageView
suitable for use as a color or resolve attachment in aVkFramebuffer
.static int
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
Indicates that the image can be used to create aVkImageView
suitable for use as a depth/stencil attachment in aVkFramebuffer
.static int
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
Indicates that the image can be used to create aVkImageView
suitable for occupyingVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_INPUT_ATTACHMENT
; be read from a shader as an input attachment; and be used as an input attachment in a framebuffer.static int
VK_IMAGE_USAGE_SAMPLED_BIT
Indicates that the image can be used to create aVkImageView
suitable for occupying aVkDescriptorSet
slot either of typeDESCRIPTOR_TYPE_SAMPLED_IMAGE
orDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, and be sampled by a shader.static int
VK_IMAGE_USAGE_STORAGE_BIT
Indicates that the image can be used to create aVkImageView
suitable for occupying aVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_STORAGE_IMAGE
.static int
VK_IMAGE_USAGE_TRANSFER_DST_BIT
Indicates that the image can be used as the destination of a transfer command.static int
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
Indicates that the image can be used as the source of a transfer command.static int
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
Indicates that the memory bound to this image will have been allocated with theMEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
.static int
VK_IMAGE_VIEW_TYPE_1D
One-dimensional image view.static int
VK_IMAGE_VIEW_TYPE_1D_ARRAY
One-dimensional array image view.static int
VK_IMAGE_VIEW_TYPE_2D
Two-dimensional image view.static int
VK_IMAGE_VIEW_TYPE_2D_ARRAY
Two-dimensional array image view.static int
VK_IMAGE_VIEW_TYPE_3D
Three-dimensional image view.static int
VK_IMAGE_VIEW_TYPE_CUBE
Cube map image view.static int
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
Cube map array image view.static int
VK_INCOMPLETE
A return array was too small for the result.static int
VK_INDEX_TYPE_UINT16
VK_INDEX_TYPE_UINT32VkIndexTypestatic int
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
The allocation is intended for execution by the host.static float
VK_LOD_CLAMP_NONE
static int
VK_LOGIC_OP_AND
s∧d
static int
VK_LOGIC_OP_AND_INVERTED
¬s∧d
static int
VK_LOGIC_OP_AND_REVERSE
s∧¬d
static int
VK_LOGIC_OP_CLEAR
0
static int
VK_LOGIC_OP_COPY
s
static int
VK_LOGIC_OP_COPY_INVERTED
¬s
static int
VK_LOGIC_OP_EQUIVALENT
¬(s⊕d)
static int
VK_LOGIC_OP_INVERT
¬d
static int
VK_LOGIC_OP_NAND
¬(s∧d)
static int
VK_LOGIC_OP_NO_OP
d
static int
VK_LOGIC_OP_NOR
¬(s∨d)
static int
VK_LOGIC_OP_OR
s∨d
static int
VK_LOGIC_OP_OR_INVERTED
¬s∨d
static int
VK_LOGIC_OP_OR_REVERSE
s∨¬d
static int
VK_LOGIC_OP_SET
all 1s
static int
VK_LOGIC_OP_XOR
s⊕d
static int
VK_MAX_DESCRIPTION_SIZE
VK_MAX_EXTENSION_NAME_SIZE
VK_MAX_MEMORY_HEAPS
VK_MAX_MEMORY_TYPES
VK_MAX_PHYSICAL_DEVICE_NAME_SIZEStruct member limits.static int
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
Means the heap corresponds to device local memory.static int
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
If set, memory allocated with this type is the most efficient for device access.static int
VK_MEMORY_PROPERTY_HOST_CACHED_BIT
If set, memory allocated with this type is cached on the host.static int
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
If set, host cache management commandsFlushMappedMemoryRanges
andInvalidateMappedMemoryRanges
are not needed to make host writes visible to the device or device writes visible to the host, respectively.static int
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
If set, memory allocated with this type can be mapped usingMapMemory
so that it can be accessed on the host.static int
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
If set, the memory type only allows device access to the memory.static int
VK_NOT_READY
A fence or query has not yet completed.static long
VK_NULL_HANDLE
The reserved handleVK_NULL_HANDLE
can be passed in place of valid object handles when explicitly called out in the specification.static int
VK_PHYSICAL_DEVICE_TYPE_CPU
The device is typically running on the same processors as the host.static int
VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
The device is typically a separate processor connected to the host via an interlink.static int
VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
The device is typically one embedded in or tightly coupled with the host.static int
VK_PHYSICAL_DEVICE_TYPE_OTHER
The device does not match any other available types.static int
VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
The device is typically a virtual node in a virtualization environment.static int
VK_PIPELINE_BIND_POINT_COMPUTE
VK_PIPELINE_BIND_POINT_GRAPHICSVkPipelineBindPointstatic int
VK_PIPELINE_CACHE_HEADER_VERSION_ONE
VkPipelineCacheHeaderVersionstatic int
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
Specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent call toCreateGraphicsPipelines
.static int
VK_PIPELINE_CREATE_DERIVATIVE_BIT
Specifies that the pipeline to be created will be a child of a previously created parent pipeline.static int
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
Specifies that the created pipeline will not be optimized.static int
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
Execution of all stages supported on the queue.static int
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
Execution of all graphics pipeline stages.static int
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
Final stage in the pipeline where commands complete execution.static int
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
Stage of the pipeline after blending where the final color values are output from the pipeline.static int
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
Execution of a compute shader.static int
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
Stage of the pipeline where Draw/DispatchIndirect data structures are consumed.static int
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
Stage of the pipeline where early fragment tests (depth and stencil tests before fragment shading) are performed.static int
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
Fragment shader stage.static int
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
Geometry shader stage.static int
VK_PIPELINE_STAGE_HOST_BIT
A pseudo-stage indicating execution on the host of reads/writes of device memory.static int
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
Stage of the pipeline where late fragment tests (depth and stencil tests after fragment shading) are performed.static int
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
Tessellation control shader stage.static int
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
Tessellation evaluation shader stage.static int
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
Stage of the pipeline where commands are initially received by the queue.static int
VK_PIPELINE_STAGE_TRANSFER_BIT
Execution of copy commands.static int
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
Stage of the pipeline where vertex and index buffers are consumed.static int
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
Vertex shader stage.static int
VK_POLYGON_MODE_FILL
Causes polygons to render using the polygon rasterization rules.static int
VK_POLYGON_MODE_LINE
Causes polygon edges to be drawn as line segments.static int
VK_POLYGON_MODE_POINT
The vertices of polygons are treated, for rasterization purposes, as if they had been drawn as points.static int
VK_PRIMITIVE_TOPOLOGY_LINE_LIST
Individual line segments, each defined by a pair of vertices.static int
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
Lines with adjacency are independent line segments where each endpoint has a corresponding adjacent vertex that is accessible in a geometry shader.static int
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
A series of one or more connected line segments.static int
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
Line strips with adjacency are similar to line strips, except that each line segment has a pair of adjacent vertices that are accessible in a geometry shader.static int
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
Separate patches.static int
VK_PRIMITIVE_TOPOLOGY_POINT_LIST
A series of individual points.static int
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
A triangle fan.static int
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
Separate triangles.static int
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
Triangles with adjacency are similar to separate triangles except that each triangle edge has an adjacent vertex that is accessible in a geometry shader.static int
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
A triangle strip is a series of triangles connected along shared edges.static int
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
Triangle strips with adjacency are similar to triangle strips except that each triangle edge has an adjacent vertex that is accessible in a geometry shader.static int
VK_QUERY_CONTROL_PRECISE_BIT
If set, an implementation must return a result that matches the actual number of samples passed.static int
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of primitives processed by the Primitive Clipping stage of the pipeline.static int
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
IF set, queries managed by the pool will count the number of primitives output by the Primitive Clipping stage of the pipeline.static int
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of compute shader invocations.static int
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
IF set, queries managed by the pool will count the number of fragment shader invocations.static int
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of geometry shader invocations.static int
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
If set, queries managed by the pool will count the number of primitives generated by geometry shader invocations.static int
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
If set, queries managed by the pool will count the number of primitives processed by the input assembly stage.static int
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
If set, queries managed by the pool will count the number of vertices processed by the input assembly stage.static int
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
If set, queries managed by the pool will count the number of patches processed by the tessellation control shader.static int
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of invocations of the tessellation evaluation shader.static int
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of vertex shader invocations.static int
VK_QUERY_RESULT_64_BIT
Indicates the results will be written as an array of 64-bit unsigned integer values.static int
VK_QUERY_RESULT_PARTIAL_BIT
Indicates that returning partial results is acceptable.static int
VK_QUERY_RESULT_WAIT_BIT
Indicates that Vulkan will wait for each query’s status to become available before retrieving its results.static int
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
Indicates that the availability status accompanies the results.static int
VK_QUERY_TYPE_OCCLUSION
Occlusion query.static int
VK_QUERY_TYPE_PIPELINE_STATISTICS
Pipeline statistics querystatic int
VK_QUERY_TYPE_TIMESTAMP
Timestamp query.static int
VK_QUEUE_COMPUTE_BIT
If set, then the queues in this queue family support compute operations.static int
VK_QUEUE_FAMILY_IGNORED
Special values.static int
VK_QUEUE_GRAPHICS_BIT
If set, then the queues in this queue family support graphics operations.static int
VK_QUEUE_SPARSE_BINDING_BIT
If set, then the queues in this queue family support sparse memory management operations.static int
VK_QUEUE_TRANSFER_BIT
If set, then the queues in this queue family support transfer operations.static int
VK_REMAINING_ARRAY_LAYERS
VK_REMAINING_MIP_LEVELSSpecial values.static int
VK_SAMPLE_COUNT_1_BIT
1 sample per pixel.static int
VK_SAMPLE_COUNT_16_BIT
16 samples per pixel.static int
VK_SAMPLE_COUNT_2_BIT
2 samples per pixel.static int
VK_SAMPLE_COUNT_32_BIT
32 samples per pixel.static int
VK_SAMPLE_COUNT_4_BIT
4 samples per pixel.static int
VK_SAMPLE_COUNT_64_BIT
64 samples per pixel.static int
VK_SAMPLE_COUNT_8_BIT
8 samples per pixel.static int
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
Indicates that the clamp to border wrap mode will be used.static int
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
Indicates that the clamp to edge wrap mode will be used.static int
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
Indicates that the mirrored repeat wrap mode will be used.static int
VK_SAMPLER_ADDRESS_MODE_REPEAT
Indicates that the repeat wrap mode will be used.static int
VK_SAMPLER_MIPMAP_MODE_LINEAR
Texels are read from image levelsdhi
anddlo
, where:dhi = q
when levelbase + λ ≥ q
dhi = floor(levelbase + λ)
otherwisestatic int
VK_SAMPLER_MIPMAP_MODE_NEAREST
Texels are read from the image leveld
, where:d = levelbase
when λ ≤ 0.5
d = nearest(λ)
when λ > 0.5 && levelbase + λ ≤ q + 0.5
d = q
when λ > 0.5 && levelbase + λ > q + 0.5
static int
VK_SHADER_STAGE_ALL
VK_SHADER_STAGE_ALL_GRAPHICS
VK_SHADER_STAGE_COMPUTE_BIT
VK_SHADER_STAGE_FRAGMENT_BIT
VK_SHADER_STAGE_GEOMETRY_BIT
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VK_SHADER_STAGE_VERTEX_BITVkShaderStageFlagBitsstatic int
VK_SHARING_MODE_CONCURRENT
Specifies that concurrent access to any range or image subresource of the object from multiple queue families is supported.static int
VK_SHARING_MODE_EXCLUSIVE
Specifies that access to any range or image subresource of the object will be exclusive to a single queue family at a time.static int
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
If set, the first mip level that is not an exact multiple of the sparse image block size begins the mip tail region.static int
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
If set, the image uses a non-standard sparse block size, and the imageGranularity values do not match the standard block size for the given pixel format.static int
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
If set, the image uses a single mip tail region for all array layers.static int
VK_SPARSE_MEMORY_BIND_METADATA_BIT
Is used to indicate that the memory being bound is only for the metadata aspect.static int
VK_STENCIL_FACE_BACK_BIT
Indicates that only the back set of stencil state is updated.static int
VK_STENCIL_FACE_FRONT_BIT
Indicates that only the front set of stencil state is updated.static int
VK_STENCIL_FRONT_AND_BACK
Is the combination ofSTENCIL_FACE_FRONT_BIT
andSTENCIL_FACE_BACK_BIT
and indicates that both sets of stencil state are updated.static int
VK_STENCIL_OP_DECREMENT_AND_CLAMP
Decrements the current value and clamps to 0.static int
VK_STENCIL_OP_DECREMENT_AND_WRAP
Decrements the current value and wraps to the maximum possible value when the value would go below 0.static int
VK_STENCIL_OP_INCREMENT_AND_CLAMP
Increments the current value and clamps to the maximum representable unsigned value.static int
VK_STENCIL_OP_INCREMENT_AND_WRAP
Increments the current value and wraps to 0 when the maximum value would have been exceeded.static int
VK_STENCIL_OP_INVERT
Bitwise-inverts the current value.static int
VK_STENCIL_OP_KEEP
Keeps the current value.static int
VK_STENCIL_OP_REPLACE
Sets the value toreference
.static int
VK_STENCIL_OP_ZERO
Sets the value to 0.static int
VK_STRUCTURE_TYPE_APPLICATION_INFO
VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
VK_STRUCTURE_TYPE_MEMORY_BARRIER
VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
VK_STRUCTURE_TYPE_SUBMIT_INFO
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SETVkStructureTypestatic int
VK_SUBPASS_CONTENTS_INLINE
The contents of the subpass will be recorded inline in the primary command buffer, and secondary command buffers must not be executed within the subpass.static int
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
The contents are recorded in secondary command buffers that will be called from the primary command buffer, andCmdExecuteCommands
is the only valid command on the command buffer untilCmdNextSubpass
orCmdEndRenderPass
.static int
VK_SUBPASS_EXTERNAL
Special values.static int
VK_SUCCESS
Command successfully completed.static int
VK_SYSTEM_ALLOCATION_SCOPE_CACHE
The allocation is scoped to the lifetime of aVkPipelineCache
object.static int
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
The allocation is scoped to the duration of the Vulkan command.static int
VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
The allocation is scoped to the lifetime of the Vulkan device.static int
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
The allocation is scoped to the lifetime of the Vulkan instance.static int
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
The allocation is scoped to the lifetime of the Vulkan object that is being created or used.static int
VK_TIMEOUT
A wait operation has not completed in the specified time.static int
VK_TRUE
Boolean constants.static int
VK_UUID_SIZE
Struct member limits.static int
VK_VERTEX_INPUT_RATE_INSTANCE
Indicates that vertex attribute addressing is a function of the instance index.static int
VK_VERTEX_INPUT_RATE_VERTEX
Indicates that vertex attribute addressing is a function of the vertex index.static long
VK_WHOLE_SIZE
Special size value.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static int
vkAllocateCommandBuffers(VkDevice device, VkCommandBufferAllocateInfo pAllocateInfo, PointerBuffer pCommandBuffers)
static int
vkAllocateDescriptorSets(VkDevice device, VkDescriptorSetAllocateInfo pAllocateInfo, long[] pDescriptorSets)
static int
vkAllocateDescriptorSets(VkDevice device, VkDescriptorSetAllocateInfo pAllocateInfo, java.nio.LongBuffer pDescriptorSets)
static int
vkAllocateMemory(VkDevice device, VkMemoryAllocateInfo pAllocateInfo, VkAllocationCallbacks pAllocator, long[] pMemory)
static int
vkAllocateMemory(VkDevice device, VkMemoryAllocateInfo pAllocateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pMemory)
static int
vkBeginCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferBeginInfo pBeginInfo)
static int
vkBindBufferMemory(VkDevice device, long buffer, long memory, long memoryOffset)
static int
vkBindImageMemory(VkDevice device, long image, long memory, long memoryOffset)
static void
vkCmdBeginQuery(VkCommandBuffer commandBuffer, long queryPool, int query, int flags)
static void
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, VkRenderPassBeginInfo pRenderPassBegin, int contents)
static void
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, long[] pDescriptorSets, int[] pDynamicOffsets)
static void
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, java.nio.LongBuffer pDescriptorSets, java.nio.IntBuffer pDynamicOffsets)
static void
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, long buffer, long offset, int indexType)
static void
vkCmdBindPipeline(VkCommandBuffer commandBuffer, int pipelineBindPoint, long pipeline)
static void
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, int firstBinding, long[] pBuffers, long[] pOffsets)
static void
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, int firstBinding, java.nio.LongBuffer pBuffers, java.nio.LongBuffer pOffsets)
static void
vkCmdBlitImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageBlit.Buffer pRegions, int filter)
static void
vkCmdClearAttachments(VkCommandBuffer commandBuffer, VkClearAttachment.Buffer pAttachments, VkClearRect.Buffer pRects)
static void
vkCmdClearColorImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearColorValue pColor, VkImageSubresourceRange.Buffer pRanges)
static void
vkCmdClearColorImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearColorValue pColor, VkImageSubresourceRange pRange)
static void
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearDepthStencilValue pDepthStencil, VkImageSubresourceRange.Buffer pRanges)
static void
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearDepthStencilValue pDepthStencil, VkImageSubresourceRange pRange)
static void
vkCmdCopyBuffer(VkCommandBuffer commandBuffer, long srcBuffer, long dstBuffer, VkBufferCopy.Buffer pRegions)
static void
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, long srcBuffer, long dstImage, int dstImageLayout, VkBufferImageCopy.Buffer pRegions)
static void
vkCmdCopyImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageCopy.Buffer pRegions)
static void
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstBuffer, VkBufferImageCopy.Buffer pRegions)
static void
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, long queryPool, int firstQuery, int queryCount, long dstBuffer, long dstOffset, long stride, int flags)
static void
vkCmdDispatch(VkCommandBuffer commandBuffer, int x, int y, int z)
static void
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, long buffer, long offset)
static void
vkCmdDraw(VkCommandBuffer commandBuffer, int vertexCount, int instanceCount, int firstVertex, int firstInstance)
static void
vkCmdDrawIndexed(VkCommandBuffer commandBuffer, int indexCount, int instanceCount, int firstIndex, int vertexOffset, int firstInstance)
static void
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, long buffer, long offset, int drawCount, int stride)
static void
vkCmdDrawIndirect(VkCommandBuffer commandBuffer, long buffer, long offset, int drawCount, int stride)
static void
vkCmdEndQuery(VkCommandBuffer commandBuffer, long queryPool, int query)
static void
vkCmdEndRenderPass(VkCommandBuffer commandBuffer)
static void
vkCmdExecuteCommands(VkCommandBuffer commandBuffer, PointerBuffer pCommandBuffers)
static void
vkCmdExecuteCommands(VkCommandBuffer commandBuffer, VkCommandBuffer pCommandBuffer)
static void
vkCmdFillBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, long size, int data)
static void
vkCmdNextSubpass(VkCommandBuffer commandBuffer, int contents)
static void
vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, int srcStageMask, int dstStageMask, int dependencyFlags, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.ByteBuffer pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, double[] pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.DoubleBuffer pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, float[] pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.FloatBuffer pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, int[] pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.IntBuffer pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, long[] pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.LongBuffer pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, short[] pValues)
static void
vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.ShortBuffer pValues)
static void
vkCmdResetEvent(VkCommandBuffer commandBuffer, long event, int stageMask)
static void
vkCmdResetQueryPool(VkCommandBuffer commandBuffer, long queryPool, int firstQuery, int queryCount)
static void
vkCmdResolveImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageResolve.Buffer pRegions)
static void
vkCmdResolveImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageResolve pRegion)
static void
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, float[] blendConstants)
static void
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, java.nio.FloatBuffer blendConstants)
static void
vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor)
static void
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds)
static void
vkCmdSetEvent(VkCommandBuffer commandBuffer, long event, int stageMask)
static void
vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth)
static void
vkCmdSetScissor(VkCommandBuffer commandBuffer, int firstScissor, VkRect2D.Buffer pScissors)
static void
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, int faceMask, int compareMask)
static void
vkCmdSetStencilReference(VkCommandBuffer commandBuffer, int faceMask, int reference)
static void
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, int faceMask, int writeMask)
static void
vkCmdSetViewport(VkCommandBuffer commandBuffer, int firstViewport, VkViewport.Buffer pViewports)
static void
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, int[] pData)
static void
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, java.nio.IntBuffer pData)
static void
vkCmdWaitEvents(VkCommandBuffer commandBuffer, long[] pEvents, int srcStageMask, int dstStageMask, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)
static void
vkCmdWaitEvents(VkCommandBuffer commandBuffer, java.nio.LongBuffer pEvents, int srcStageMask, int dstStageMask, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)
static void
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, int pipelineStage, long queryPool, int query)
static int
vkCreateBuffer(VkDevice device, VkBufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pBuffer)
static int
vkCreateBuffer(VkDevice device, VkBufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pBuffer)
static int
vkCreateBufferView(VkDevice device, VkBufferViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pView)
static int
vkCreateBufferView(VkDevice device, VkBufferViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pView)
static int
vkCreateCommandPool(VkDevice device, VkCommandPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pCommandPool)
static int
vkCreateCommandPool(VkDevice device, VkCommandPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pCommandPool)
static int
vkCreateComputePipelines(VkDevice device, long pipelineCache, VkComputePipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, long[] pPipelines)
static int
vkCreateComputePipelines(VkDevice device, long pipelineCache, VkComputePipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelines)
static int
vkCreateDescriptorPool(VkDevice device, VkDescriptorPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pDescriptorPool)
static int
vkCreateDescriptorPool(VkDevice device, VkDescriptorPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pDescriptorPool)
static int
vkCreateDescriptorSetLayout(VkDevice device, VkDescriptorSetLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSetLayout)
static int
vkCreateDescriptorSetLayout(VkDevice device, VkDescriptorSetLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSetLayout)
static int
vkCreateDevice(VkPhysicalDevice physicalDevice, VkDeviceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pDevice)
static int
vkCreateEvent(VkDevice device, VkEventCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pEvent)
static int
vkCreateEvent(VkDevice device, VkEventCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pEvent)
static int
vkCreateFence(VkDevice device, VkFenceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pFence)
static int
vkCreateFence(VkDevice device, VkFenceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pFence)
static int
vkCreateFramebuffer(VkDevice device, VkFramebufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pFramebuffer)
static int
vkCreateFramebuffer(VkDevice device, VkFramebufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pFramebuffer)
static int
vkCreateGraphicsPipelines(VkDevice device, long pipelineCache, VkGraphicsPipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, long[] pPipelines)
static int
vkCreateGraphicsPipelines(VkDevice device, long pipelineCache, VkGraphicsPipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelines)
static int
vkCreateImage(VkDevice device, VkImageCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pImage)
static int
vkCreateImage(VkDevice device, VkImageCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pImage)
static int
vkCreateImageView(VkDevice device, VkImageViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pView)
static int
vkCreateImageView(VkDevice device, VkImageViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pView)
static int
vkCreateInstance(VkInstanceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pInstance)
static int
vkCreatePipelineCache(VkDevice device, VkPipelineCacheCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pPipelineCache)
static int
vkCreatePipelineCache(VkDevice device, VkPipelineCacheCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelineCache)
static int
vkCreatePipelineLayout(VkDevice device, VkPipelineLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pPipelineLayout)
static int
vkCreatePipelineLayout(VkDevice device, VkPipelineLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelineLayout)
static int
vkCreateQueryPool(VkDevice device, VkQueryPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pQueryPool)
static int
vkCreateQueryPool(VkDevice device, VkQueryPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pQueryPool)
static int
vkCreateRenderPass(VkDevice device, VkRenderPassCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pRenderPass)
static int
vkCreateRenderPass(VkDevice device, VkRenderPassCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pRenderPass)
static int
vkCreateSampler(VkDevice device, VkSamplerCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSampler)
static int
vkCreateSampler(VkDevice device, VkSamplerCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSampler)
static int
vkCreateSemaphore(VkDevice device, VkSemaphoreCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSemaphore)
static int
vkCreateSemaphore(VkDevice device, VkSemaphoreCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSemaphore)
static int
vkCreateShaderModule(VkDevice device, VkShaderModuleCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pShaderModule)
static int
vkCreateShaderModule(VkDevice device, VkShaderModuleCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pShaderModule)
static void
vkDestroyBuffer(VkDevice device, long buffer, VkAllocationCallbacks pAllocator)
static void
vkDestroyBufferView(VkDevice device, long bufferView, VkAllocationCallbacks pAllocator)
static void
vkDestroyCommandPool(VkDevice device, long commandPool, VkAllocationCallbacks pAllocator)
static void
vkDestroyDescriptorPool(VkDevice device, long descriptorPool, VkAllocationCallbacks pAllocator)
static void
vkDestroyDescriptorSetLayout(VkDevice device, long descriptorSetLayout, VkAllocationCallbacks pAllocator)
static void
vkDestroyDevice(VkDevice device, VkAllocationCallbacks pAllocator)
static void
vkDestroyEvent(VkDevice device, long event, VkAllocationCallbacks pAllocator)
static void
vkDestroyFence(VkDevice device, long fence, VkAllocationCallbacks pAllocator)
static void
vkDestroyFramebuffer(VkDevice device, long framebuffer, VkAllocationCallbacks pAllocator)
static void
vkDestroyImage(VkDevice device, long image, VkAllocationCallbacks pAllocator)
static void
vkDestroyImageView(VkDevice device, long imageView, VkAllocationCallbacks pAllocator)
static void
vkDestroyInstance(VkInstance instance, VkAllocationCallbacks pAllocator)
static void
vkDestroyPipeline(VkDevice device, long pipeline, VkAllocationCallbacks pAllocator)
static void
vkDestroyPipelineCache(VkDevice device, long pipelineCache, VkAllocationCallbacks pAllocator)
static void
vkDestroyPipelineLayout(VkDevice device, long pipelineLayout, VkAllocationCallbacks pAllocator)
static void
vkDestroyQueryPool(VkDevice device, long queryPool, VkAllocationCallbacks pAllocator)
static void
vkDestroyRenderPass(VkDevice device, long renderPass, VkAllocationCallbacks pAllocator)
static void
vkDestroySampler(VkDevice device, long sampler, VkAllocationCallbacks pAllocator)
static void
vkDestroySemaphore(VkDevice device, long semaphore, VkAllocationCallbacks pAllocator)
static void
vkDestroyShaderModule(VkDevice device, long shaderModule, VkAllocationCallbacks pAllocator)
static int
vkDeviceWaitIdle(VkDevice device)
static int
vkEndCommandBuffer(VkCommandBuffer commandBuffer)
static int
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.nio.ByteBuffer pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.nio.ByteBuffer pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.lang.CharSequence pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.lang.CharSequence pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, int[] pPropertyCount, VkLayerProperties.Buffer pProperties)
static int
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)
static int
vkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateInstanceExtensionProperties(java.lang.CharSequence pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateInstanceExtensionProperties(java.lang.CharSequence pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
static int
vkEnumerateInstanceLayerProperties(int[] pPropertyCount, VkLayerProperties.Buffer pProperties)
static int
vkEnumerateInstanceLayerProperties(java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)
static int
vkEnumeratePhysicalDevices(VkInstance instance, int[] pPhysicalDeviceCount, PointerBuffer pPhysicalDevices)
static int
vkEnumeratePhysicalDevices(VkInstance instance, java.nio.IntBuffer pPhysicalDeviceCount, PointerBuffer pPhysicalDevices)
static int
vkFlushMappedMemoryRanges(VkDevice device, VkMappedMemoryRange.Buffer pMemoryRanges)
static int
vkFlushMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)
static void
vkFreeCommandBuffers(VkDevice device, long commandPool, PointerBuffer pCommandBuffers)
static void
vkFreeCommandBuffers(VkDevice device, long commandPool, VkCommandBuffer pCommandBuffer)
static int
vkFreeDescriptorSets(VkDevice device, long descriptorPool, long pDescriptorSet)
static int
vkFreeDescriptorSets(VkDevice device, long descriptorPool, long[] pDescriptorSets)
static int
vkFreeDescriptorSets(VkDevice device, long descriptorPool, java.nio.LongBuffer pDescriptorSets)
static void
vkFreeMemory(VkDevice device, long memory, VkAllocationCallbacks pAllocator)
static void
vkGetBufferMemoryRequirements(VkDevice device, long buffer, VkMemoryRequirements pMemoryRequirements)
static void
vkGetDeviceMemoryCommitment(VkDevice device, long memory, long[] pCommittedMemoryInBytes)
static void
vkGetDeviceMemoryCommitment(VkDevice device, long memory, java.nio.LongBuffer pCommittedMemoryInBytes)
static long
vkGetDeviceProcAddr(VkDevice device, java.nio.ByteBuffer pName)
static long
vkGetDeviceProcAddr(VkDevice device, java.lang.CharSequence pName)
static void
vkGetDeviceQueue(VkDevice device, int queueFamilyIndex, int queueIndex, PointerBuffer pQueue)
static int
vkGetEventStatus(VkDevice device, long event)
static int
vkGetFenceStatus(VkDevice device, long fence)
static void
vkGetImageMemoryRequirements(VkDevice device, long image, VkMemoryRequirements pMemoryRequirements)
static void
vkGetImageSparseMemoryRequirements(VkDevice device, long image, int[] pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements.Buffer pSparseMemoryRequirements)
static void
vkGetImageSparseMemoryRequirements(VkDevice device, long image, java.nio.IntBuffer pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements.Buffer pSparseMemoryRequirements)
static void
vkGetImageSubresourceLayout(VkDevice device, long image, VkImageSubresource pSubresource, VkSubresourceLayout pLayout)
static long
vkGetInstanceProcAddr(VkInstance instance, java.nio.ByteBuffer pName)
static long
vkGetInstanceProcAddr(VkInstance instance, java.lang.CharSequence pName)
static void
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures pFeatures)
static void
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, int format, VkFormatProperties pFormatProperties)
static int
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int tiling, int usage, int flags, VkImageFormatProperties pImageFormatProperties)
static void
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties pMemoryProperties)
static void
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties pProperties)
static void
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, int[] pQueueFamilyPropertyCount, VkQueueFamilyProperties.Buffer pQueueFamilyProperties)
static void
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pQueueFamilyPropertyCount, VkQueueFamilyProperties.Buffer pQueueFamilyProperties)
static void
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int samples, int usage, int tiling, int[] pPropertyCount, VkSparseImageFormatProperties.Buffer pProperties)
static void
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int samples, int usage, int tiling, java.nio.IntBuffer pPropertyCount, VkSparseImageFormatProperties.Buffer pProperties)
static int
vkGetPipelineCacheData(VkDevice device, long pipelineCache, PointerBuffer pDataSize, java.nio.ByteBuffer pData)
static int
vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.ByteBuffer pData, long stride, int flags)
static int
vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, int[] pData, long stride, int flags)
static int
vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.IntBuffer pData, long stride, int flags)
static int
vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, long[] pData, long stride, int flags)
static int
vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.LongBuffer pData, long stride, int flags)
static void
vkGetRenderAreaGranularity(VkDevice device, long renderPass, VkExtent2D pGranularity)
static int
vkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange.Buffer pMemoryRanges)
static int
vkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)
static int
vkMapMemory(VkDevice device, long memory, long offset, long size, int flags, PointerBuffer ppData)
static int
vkMergePipelineCaches(VkDevice device, long dstCache, long[] pSrcCaches)
static int
vkMergePipelineCaches(VkDevice device, long dstCache, java.nio.LongBuffer pSrcCaches)
static int
vkQueueBindSparse(VkQueue queue, VkBindSparseInfo.Buffer pBindInfo, long fence)
static int
vkQueueBindSparse(VkQueue queue, VkBindSparseInfo pBindInfo, long fence)
static int
vkQueueSubmit(VkQueue queue, VkSubmitInfo.Buffer pSubmits, long fence)
static int
vkQueueSubmit(VkQueue queue, VkSubmitInfo pSubmit, long fence)
static int
vkQueueWaitIdle(VkQueue queue)
static int
vkResetCommandBuffer(VkCommandBuffer commandBuffer, int flags)
static int
vkResetCommandPool(VkDevice device, long commandPool, int flags)
static int
vkResetDescriptorPool(VkDevice device, long descriptorPool, int flags)
static int
vkResetEvent(VkDevice device, long event)
static int
vkResetFences(VkDevice device, long pFence)
static int
vkResetFences(VkDevice device, long[] pFences)
static int
vkResetFences(VkDevice device, java.nio.LongBuffer pFences)
static int
vkSetEvent(VkDevice device, long event)
static void
vkUnmapMemory(VkDevice device, long memory)
static void
vkUpdateDescriptorSets(VkDevice device, VkWriteDescriptorSet.Buffer pDescriptorWrites, VkCopyDescriptorSet.Buffer pDescriptorCopies)
static int
vkWaitForFences(VkDevice device, long[] pFences, int waitAll, long timeout)
static int
vkWaitForFences(VkDevice device, java.nio.LongBuffer pFences, int waitAll, long timeout)
static int
vkWaitForFences(VkDevice device, long pFence, int waitAll, long timeout)
-
-
-
Field Detail
-
VK_API_VERSION_1_0
public static final int VK_API_VERSION_1_0
The Vulkan version number is used in several places in the API. In each such use, the API major version number, minor version number, and patch version number are packed into a 32-bit integer as follows:- The major version number is a 10-bit integer packed into bits 31-22.
- The minor version number is a 10-bit integer packed into bits 21-12.
- The patch version number is a 12-bit integer packed into bits 11-0.
Differences in any of the Vulkan version numbers indicates a change to the API in some way, with each part of the version number indicating a different scope of changes.
A difference in patch version numbers indicates that some usually small aspect of the specification or header has been modified, typically to fix a bug, and may have an impact on the behavior of existing functionality. Differences in this version number should not affect either full compatibility or backwards compatibility between two versions, or add additional interfaces to the API.
A difference in minor version numbers indicates that some amount of new functionality has been added. This will usually include new interfaces in the header, and may also include behavior changes and bug fixes. Functionality may be deprecated in a minor revision, but will not be removed. When a new minor version is introduced, the patch version is reset to 0, and each minor revision maintains its own set of patch versions. Differences in this version should not affect backwards compatibility, but will affect full compatibility.
A difference in major version numbers indicates a large set of changes to the API, potentially including new functionality and header interfaces, behavioral changes, removal of deprecated features, modification or outright replacement of any feature, and is thus very likely to break any and all compatibility. Differences in this version will typically require significant modification to an application in order for it to function.
-
VK_NULL_HANDLE
public static final long VK_NULL_HANDLE
The reserved handleVK_NULL_HANDLE
can be passed in place of valid object handles when explicitly called out in the specification. Any command that creates an object successfully must not returnVK_NULL_HANDLE
. It is valid to passVK_NULL_HANDLE
to anyvkDestroy*
orvkFree*
command, which will silently ignore these values.- See Also:
- Constant Field Values
-
VK_LOD_CLAMP_NONE
public static final float VK_LOD_CLAMP_NONE
- See Also:
- Constant Field Values
-
VK_TRUE
public static final int VK_TRUE
Boolean constants.- See Also:
- Constant Field Values
-
VK_FALSE
public static final int VK_FALSE
Boolean constants.- See Also:
- Constant Field Values
-
VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
public static final int VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
Struct member limits.- See Also:
- Constant Field Values
-
VK_UUID_SIZE
public static final int VK_UUID_SIZE
Struct member limits.- See Also:
- Constant Field Values
-
VK_MAX_MEMORY_TYPES
public static final int VK_MAX_MEMORY_TYPES
Struct member limits.- See Also:
- Constant Field Values
-
VK_MAX_MEMORY_HEAPS
public static final int VK_MAX_MEMORY_HEAPS
Struct member limits.- See Also:
- Constant Field Values
-
VK_MAX_EXTENSION_NAME_SIZE
public static final int VK_MAX_EXTENSION_NAME_SIZE
Struct member limits.- See Also:
- Constant Field Values
-
VK_MAX_DESCRIPTION_SIZE
public static final int VK_MAX_DESCRIPTION_SIZE
Struct member limits.- See Also:
- Constant Field Values
-
VK_REMAINING_MIP_LEVELS
public static final int VK_REMAINING_MIP_LEVELS
Special values.- See Also:
- Constant Field Values
-
VK_REMAINING_ARRAY_LAYERS
public static final int VK_REMAINING_ARRAY_LAYERS
Special values.- See Also:
- Constant Field Values
-
VK_ATTACHMENT_UNUSED
public static final int VK_ATTACHMENT_UNUSED
Special values.- See Also:
- Constant Field Values
-
VK_QUEUE_FAMILY_IGNORED
public static final int VK_QUEUE_FAMILY_IGNORED
Special values.- See Also:
- Constant Field Values
-
VK_SUBPASS_EXTERNAL
public static final int VK_SUBPASS_EXTERNAL
Special values.- See Also:
- Constant Field Values
-
VK_WHOLE_SIZE
public static final long VK_WHOLE_SIZE
Special size value.- See Also:
- Constant Field Values
-
VK_PIPELINE_CACHE_HEADER_VERSION_ONE
public static final int VK_PIPELINE_CACHE_HEADER_VERSION_ONE
VkPipelineCacheHeaderVersion- See Also:
- Constant Field Values
-
VK_SUCCESS
public static final int VK_SUCCESS
Command successfully completed.- See Also:
- Constant Field Values
-
VK_NOT_READY
public static final int VK_NOT_READY
A fence or query has not yet completed.- See Also:
- Constant Field Values
-
VK_TIMEOUT
public static final int VK_TIMEOUT
A wait operation has not completed in the specified time.- See Also:
- Constant Field Values
-
VK_EVENT_SET
public static final int VK_EVENT_SET
An event is signaled.- See Also:
- Constant Field Values
-
VK_EVENT_RESET
public static final int VK_EVENT_RESET
An event is unsignaled.- See Also:
- Constant Field Values
-
VK_INCOMPLETE
public static final int VK_INCOMPLETE
A return array was too small for the result.- See Also:
- Constant Field Values
-
VK_ERROR_OUT_OF_HOST_MEMORY
public static final int VK_ERROR_OUT_OF_HOST_MEMORY
A host memory allocation has failed.- See Also:
- Constant Field Values
-
VK_ERROR_OUT_OF_DEVICE_MEMORY
public static final int VK_ERROR_OUT_OF_DEVICE_MEMORY
A device memory allocation has failed.- See Also:
- Constant Field Values
-
VK_ERROR_INITIALIZATION_FAILED
public static final int VK_ERROR_INITIALIZATION_FAILED
Initialization of an object could not be completed for implementation-specific reasons.- See Also:
- Constant Field Values
-
VK_ERROR_DEVICE_LOST
public static final int VK_ERROR_DEVICE_LOST
The logical or physical device has been lost.- See Also:
- Constant Field Values
-
VK_ERROR_MEMORY_MAP_FAILED
public static final int VK_ERROR_MEMORY_MAP_FAILED
Mapping of a memory object has failed.- See Also:
- Constant Field Values
-
VK_ERROR_LAYER_NOT_PRESENT
public static final int VK_ERROR_LAYER_NOT_PRESENT
A requested layer is not present or could not be loaded.- See Also:
- Constant Field Values
-
VK_ERROR_EXTENSION_NOT_PRESENT
public static final int VK_ERROR_EXTENSION_NOT_PRESENT
A requested extension is not supported.- See Also:
- Constant Field Values
-
VK_ERROR_FEATURE_NOT_PRESENT
public static final int VK_ERROR_FEATURE_NOT_PRESENT
A requested feature is not supported.- See Also:
- Constant Field Values
-
VK_ERROR_INCOMPATIBLE_DRIVER
public static final int VK_ERROR_INCOMPATIBLE_DRIVER
The requested version of Vulkan is not supported by the driver or is otherwise incompatible for implementation-specific reasons.- See Also:
- Constant Field Values
-
VK_ERROR_TOO_MANY_OBJECTS
public static final int VK_ERROR_TOO_MANY_OBJECTS
Too many objects of the type have already been created.- See Also:
- Constant Field Values
-
VK_ERROR_FORMAT_NOT_SUPPORTED
public static final int VK_ERROR_FORMAT_NOT_SUPPORTED
A requested format is not supported on this device.- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_APPLICATION_INFO
public static final int VK_STRUCTURE_TYPE_APPLICATION_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_SUBMIT_INFO
public static final int VK_STRUCTURE_TYPE_SUBMIT_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
public static final int VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
public static final int VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
public static final int VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
public static final int VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
public static final int VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
public static final int VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
public static final int VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
public static final int VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
public static final int VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
public static final int VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
public static final int VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_MEMORY_BARRIER
public static final int VK_STRUCTURE_TYPE_MEMORY_BARRIER
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
VkStructureType- See Also:
- Constant Field Values
-
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
public static final int VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
The allocation is scoped to the duration of the Vulkan command.- See Also:
- Constant Field Values
-
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
public static final int VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
The allocation is scoped to the lifetime of the Vulkan object that is being created or used.- See Also:
- Constant Field Values
-
VK_SYSTEM_ALLOCATION_SCOPE_CACHE
public static final int VK_SYSTEM_ALLOCATION_SCOPE_CACHE
The allocation is scoped to the lifetime of aVkPipelineCache
object.- See Also:
- Constant Field Values
-
VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
public static final int VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
The allocation is scoped to the lifetime of the Vulkan device.- See Also:
- Constant Field Values
-
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
public static final int VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
The allocation is scoped to the lifetime of the Vulkan instance.- See Also:
- Constant Field Values
-
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
public static final int VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
The allocation is intended for execution by the host.- See Also:
- Constant Field Values
-
VK_FORMAT_UNDEFINED
public static final int VK_FORMAT_UNDEFINED
The format is not specified.- See Also:
- Constant Field Values
-
VK_FORMAT_R4G4_UNORM_PACK8
public static final int VK_FORMAT_R4G4_UNORM_PACK8
A two-component, 8-bit packed unsigned normalized format that has a 4-bit R component in bits 4..7, and a 4-bit G component in bits 0..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R4G4B4A4_UNORM_PACK16
public static final int VK_FORMAT_R4G4B4A4_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 4-bit R component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits 4..7, and a 4-bit A component in bits 0..3.- See Also:
- Constant Field Values
-
VK_FORMAT_B4G4R4A4_UNORM_PACK16
public static final int VK_FORMAT_B4G4R4A4_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 4-bit B component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits 4..7, and a 4-bit A component in bits 0..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R5G6B5_UNORM_PACK16
public static final int VK_FORMAT_R5G6B5_UNORM_PACK16
A three-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in bits 0..4.- See Also:
- Constant Field Values
-
VK_FORMAT_B5G6R5_UNORM_PACK16
public static final int VK_FORMAT_B5G6R5_UNORM_PACK16
A three-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in bits 0..4.- See Also:
- Constant Field Values
-
VK_FORMAT_R5G5B5A1_UNORM_PACK16
public static final int VK_FORMAT_R5G5B5A1_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits 1..5, and a 1-bit A component in bit 0.- See Also:
- Constant Field Values
-
VK_FORMAT_B5G5R5A1_UNORM_PACK16
public static final int VK_FORMAT_B5G5R5A1_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits 1..5, and a 1-bit A component in bit 0.- See Also:
- Constant Field Values
-
VK_FORMAT_A1R5G5B5_UNORM_PACK16
public static final int VK_FORMAT_A1R5G5B5_UNORM_PACK16
A four-component, 16-bit packed unsigned normalized format that has a 1-bit A component in bit 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits 5..9, and a 5-bit B component in bits 0..4.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_UNORM
public static final int VK_FORMAT_R8_UNORM
A one-component, 8-bit unsigned normalized format that has a single 8-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_SNORM
public static final int VK_FORMAT_R8_SNORM
A one-component, 8-bit signed normalized format that has a single 8-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_USCALED
public static final int VK_FORMAT_R8_USCALED
A one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_SSCALED
public static final int VK_FORMAT_R8_SSCALED
A one-component, 8-bit signed scaled integer format that has a single 8-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_UINT
public static final int VK_FORMAT_R8_UINT
A one-component, 8-bit unsigned integer format that has a single 8-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_SINT
public static final int VK_FORMAT_R8_SINT
A one-component, 8-bit signed integer format that has a single 8-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R8_SRGB
public static final int VK_FORMAT_R8_SRGB
A one-component, 8-bit unsigned normalized format that has a single 8-bit R component stored with sRGB nonlinear encoding.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_UNORM
public static final int VK_FORMAT_R8G8_UNORM
A two-component, 16-bit unsigned normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_SNORM
public static final int VK_FORMAT_R8G8_SNORM
A two-component, 16-bit signed normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_USCALED
public static final int VK_FORMAT_R8G8_USCALED
A two-component, 16-bit unsigned scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_SSCALED
public static final int VK_FORMAT_R8G8_SSCALED
A two-component, 16-bit signed scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_UINT
public static final int VK_FORMAT_R8G8_UINT
A two-component, 16-bit unsigned integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_SINT
public static final int VK_FORMAT_R8G8_SINT
A two-component, 16-bit signed integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8_SRGB
public static final int VK_FORMAT_R8G8_SRGB
A two-component, 16-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored with sRGB nonlinear encoding in byte 1.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_UNORM
public static final int VK_FORMAT_R8G8B8_UNORM
A three-component, 24-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_SNORM
public static final int VK_FORMAT_R8G8B8_SNORM
A three-component, 24-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_USCALED
public static final int VK_FORMAT_R8G8B8_USCALED
A three-component, 24-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_SSCALED
public static final int VK_FORMAT_R8G8B8_SSCALED
A three-component, 24-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_UINT
public static final int VK_FORMAT_R8G8B8_UINT
A three-component, 24-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_SINT
public static final int VK_FORMAT_R8G8B8_SINT
A three-component, 24-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8_SRGB
public static final int VK_FORMAT_R8G8B8_SRGB
A three-component, 24-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear encoding in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_UNORM
public static final int VK_FORMAT_B8G8R8_UNORM
A three-component, 24-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_SNORM
public static final int VK_FORMAT_B8G8R8_SNORM
A three-component, 24-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_USCALED
public static final int VK_FORMAT_B8G8R8_USCALED
A three-component, 24-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_SSCALED
public static final int VK_FORMAT_B8G8R8_SSCALED
A three-component, 24-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_UINT
public static final int VK_FORMAT_B8G8R8_UINT
A three-component, 24-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_SINT
public static final int VK_FORMAT_B8G8R8_SINT
A three-component, 24-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8_SRGB
public static final int VK_FORMAT_B8G8R8_SRGB
A three-component, 24-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear encoding in byte 2.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_UNORM
public static final int VK_FORMAT_R8G8B8A8_UNORM
A four-component, 32-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_SNORM
public static final int VK_FORMAT_R8G8B8A8_SNORM
A four-component, 32-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_USCALED
public static final int VK_FORMAT_R8G8B8A8_USCALED
A four-component, 32-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_SSCALED
public static final int VK_FORMAT_R8G8B8A8_SSCALED
A four-component, 32-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_UINT
public static final int VK_FORMAT_R8G8B8A8_UINT
A four-component, 32-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_SINT
public static final int VK_FORMAT_R8G8B8A8_SINT
A four-component, 32-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_R8G8B8A8_SRGB
public static final int VK_FORMAT_R8G8B8A8_SRGB
A four-component, 32-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit B component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_UNORM
public static final int VK_FORMAT_B8G8R8A8_UNORM
A four-component, 32-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_SNORM
public static final int VK_FORMAT_B8G8R8A8_SNORM
A four-component, 32-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_USCALED
public static final int VK_FORMAT_B8G8R8A8_USCALED
A four-component, 32-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_SSCALED
public static final int VK_FORMAT_B8G8R8A8_SSCALED
A four-component, 32-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_UINT
public static final int VK_FORMAT_B8G8R8A8_UINT
A four-component, 32-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_SINT
public static final int VK_FORMAT_B8G8R8A8_SINT
A four-component, 32-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_B8G8R8A8_SRGB
public static final int VK_FORMAT_B8G8R8A8_SRGB
A four-component, 32-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit R component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_UNORM_PACK32
public static final int VK_FORMAT_A8B8G8R8_UNORM_PACK32
A four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_SNORM_PACK32
public static final int VK_FORMAT_A8B8G8R8_SNORM_PACK32
A four-component, 32-bit packed signed normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_USCALED_PACK32
public static final int VK_FORMAT_A8B8G8R8_USCALED_PACK32
A four-component, 32-bit packed unsigned scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_SSCALED_PACK32
public static final int VK_FORMAT_A8B8G8R8_SSCALED_PACK32
A four-component, 32-bit packed signed scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_UINT_PACK32
public static final int VK_FORMAT_A8B8G8R8_UINT_PACK32
A four-component, 32-bit packed unsigned integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_SINT_PACK32
public static final int VK_FORMAT_A8B8G8R8_SINT_PACK32
A four-component, 32-bit packed signed integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A8B8G8R8_SRGB_PACK32
public static final int VK_FORMAT_A8B8G8R8_SRGB_PACK32
A four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15, and an 8-bit R component stored with sRGB nonlinear encoding in bits 0..7.- See Also:
- Constant Field Values
-
VK_FORMAT_A2R10G10B10_UNORM_PACK32
public static final int VK_FORMAT_A2R10G10B10_UNORM_PACK32
A four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2R10G10B10_SNORM_PACK32
public static final int VK_FORMAT_A2R10G10B10_SNORM_PACK32
A four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2R10G10B10_USCALED_PACK32
public static final int VK_FORMAT_A2R10G10B10_USCALED_PACK32
A four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2R10G10B10_SSCALED_PACK32
public static final int VK_FORMAT_A2R10G10B10_SSCALED_PACK32
A four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2R10G10B10_UINT_PACK32
public static final int VK_FORMAT_A2R10G10B10_UINT_PACK32
A four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2R10G10B10_SINT_PACK32
public static final int VK_FORMAT_A2R10G10B10_SINT_PACK32
A four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2B10G10R10_UNORM_PACK32
public static final int VK_FORMAT_A2B10G10R10_UNORM_PACK32
A four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2B10G10R10_SNORM_PACK32
public static final int VK_FORMAT_A2B10G10R10_SNORM_PACK32
A four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2B10G10R10_USCALED_PACK32
public static final int VK_FORMAT_A2B10G10R10_USCALED_PACK32
A four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2B10G10R10_SSCALED_PACK32
public static final int VK_FORMAT_A2B10G10R10_SSCALED_PACK32
A four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2B10G10R10_UINT_PACK32
public static final int VK_FORMAT_A2B10G10R10_UINT_PACK32
A four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_A2B10G10R10_SINT_PACK32
public static final int VK_FORMAT_A2B10G10R10_SINT_PACK32
A four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_UNORM
public static final int VK_FORMAT_R16_UNORM
A one-component, 16-bit unsigned normalized format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_SNORM
public static final int VK_FORMAT_R16_SNORM
A one-component, 16-bit signed normalized format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_USCALED
public static final int VK_FORMAT_R16_USCALED
A one-component, 16-bit unsigned scaled integer format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_SSCALED
public static final int VK_FORMAT_R16_SSCALED
A one-component, 16-bit signed scaled integer format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_UINT
public static final int VK_FORMAT_R16_UINT
A one-component, 16-bit unsigned integer format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_SINT
public static final int VK_FORMAT_R16_SINT
A one-component, 16-bit signed integer format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16_SFLOAT
public static final int VK_FORMAT_R16_SFLOAT
A one-component, 16-bit signed floating-point format that has a single 16-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_UNORM
public static final int VK_FORMAT_R16G16_UNORM
A two-component, 32-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_SNORM
public static final int VK_FORMAT_R16G16_SNORM
A two-component, 32-bit signed normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_USCALED
public static final int VK_FORMAT_R16G16_USCALED
A two-component, 32-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_SSCALED
public static final int VK_FORMAT_R16G16_SSCALED
A two-component, 32-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_UINT
public static final int VK_FORMAT_R16G16_UINT
A two-component, 32-bit unsigned integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_SINT
public static final int VK_FORMAT_R16G16_SINT
A two-component, 32-bit signed integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16_SFLOAT
public static final int VK_FORMAT_R16G16_SFLOAT
A two-component, 32-bit signed floating-point format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_UNORM
public static final int VK_FORMAT_R16G16B16_UNORM
A three-component, 48-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_SNORM
public static final int VK_FORMAT_R16G16B16_SNORM
A three-component, 48-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_USCALED
public static final int VK_FORMAT_R16G16B16_USCALED
A three-component, 48-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_SSCALED
public static final int VK_FORMAT_R16G16B16_SSCALED
A three-component, 48-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_UINT
public static final int VK_FORMAT_R16G16B16_UINT
A three-component, 48-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_SINT
public static final int VK_FORMAT_R16G16B16_SINT
A three-component, 48-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16_SFLOAT
public static final int VK_FORMAT_R16G16B16_SFLOAT
A three-component, 48-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_UNORM
public static final int VK_FORMAT_R16G16B16A16_UNORM
A four-component, 64-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_SNORM
public static final int VK_FORMAT_R16G16B16A16_SNORM
A four-component, 64-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_USCALED
public static final int VK_FORMAT_R16G16B16A16_USCALED
A four-component, 64-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_SSCALED
public static final int VK_FORMAT_R16G16B16A16_SSCALED
A four-component, 64-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_UINT
public static final int VK_FORMAT_R16G16B16A16_UINT
A four-component, 64-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_SINT
public static final int VK_FORMAT_R16G16B16A16_SINT
A four-component, 64-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R16G16B16A16_SFLOAT
public static final int VK_FORMAT_R16G16B16A16_SFLOAT
A four-component, 64-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R32_UINT
public static final int VK_FORMAT_R32_UINT
A one-component, 32-bit unsigned integer format that has a single 32-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R32_SINT
public static final int VK_FORMAT_R32_SINT
A one-component, 32-bit signed integer format that has a single 32-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R32_SFLOAT
public static final int VK_FORMAT_R32_SFLOAT
A one-component, 32-bit signed floating-point format that has a single 32-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32_UINT
public static final int VK_FORMAT_R32G32_UINT
A two-component, 64-bit unsigned integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32_SINT
public static final int VK_FORMAT_R32G32_SINT
A two-component, 64-bit signed integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32_SFLOAT
public static final int VK_FORMAT_R32G32_SFLOAT
A two-component, 64-bit signed floating-point format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32B32_UINT
public static final int VK_FORMAT_R32G32B32_UINT
A three-component, 96-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32B32_SINT
public static final int VK_FORMAT_R32G32B32_SINT
A three-component, 96-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32B32_SFLOAT
public static final int VK_FORMAT_R32G32B32_SFLOAT
A three-component, 96-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32B32A32_UINT
public static final int VK_FORMAT_R32G32B32A32_UINT
A four-component, 128-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32B32A32_SINT
public static final int VK_FORMAT_R32G32B32A32_SINT
A four-component, 128-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.- See Also:
- Constant Field Values
-
VK_FORMAT_R32G32B32A32_SFLOAT
public static final int VK_FORMAT_R32G32B32A32_SFLOAT
A four-component, 128-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.- See Also:
- Constant Field Values
-
VK_FORMAT_R64_UINT
public static final int VK_FORMAT_R64_UINT
A one-component, 64-bit unsigned integer format that has a single 64-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R64_SINT
public static final int VK_FORMAT_R64_SINT
A one-component, 64-bit signed integer format that has a single 64-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R64_SFLOAT
public static final int VK_FORMAT_R64_SFLOAT
A one-component, 64-bit signed floating-point format that has a single 64-bit R component.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64_UINT
public static final int VK_FORMAT_R64G64_UINT
A two-component, 128-bit unsigned integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64_SINT
public static final int VK_FORMAT_R64G64_SINT
A two-component, 128-bit signed integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64_SFLOAT
public static final int VK_FORMAT_R64G64_SFLOAT
A two-component, 128-bit signed floating-point format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64B64_UINT
public static final int VK_FORMAT_R64G64B64_UINT
A three-component, 192-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64B64_SINT
public static final int VK_FORMAT_R64G64B64_SINT
A three-component, 192-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64B64_SFLOAT
public static final int VK_FORMAT_R64G64B64_SFLOAT
A three-component, 192-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64B64A64_UINT
public static final int VK_FORMAT_R64G64B64A64_UINT
A four-component, 256-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64B64A64_SINT
public static final int VK_FORMAT_R64G64B64A64_SINT
A four-component, 256-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.- See Also:
- Constant Field Values
-
VK_FORMAT_R64G64B64A64_SFLOAT
public static final int VK_FORMAT_R64G64B64A64_SFLOAT
A four-component, 256-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.- See Also:
- Constant Field Values
-
VK_FORMAT_B10G11R11_UFLOAT_PACK32
public static final int VK_FORMAT_B10G11R11_UFLOAT_PACK32
A three-component, 32-bit packed unsigned floating-point format that has a 10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component in bits 0..10.- See Also:
- Constant Field Values
-
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
public static final int VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
A three-component, 32-bit packed unsigned floating-point format that has a 5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G component mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8.- See Also:
- Constant Field Values
-
VK_FORMAT_D16_UNORM
public static final int VK_FORMAT_D16_UNORM
A one-component, 16-bit unsigned normalized format that has a single 16-bit depth component.- See Also:
- Constant Field Values
-
VK_FORMAT_X8_D24_UNORM_PACK32
public static final int VK_FORMAT_X8_D24_UNORM_PACK32
A two-component, 32-bit format that has 24 unsigned normalized bits in the depth component and, optionally:, 8 bits that are unused.- See Also:
- Constant Field Values
-
VK_FORMAT_D32_SFLOAT
public static final int VK_FORMAT_D32_SFLOAT
A one-component, 32-bit signed floating-point format that has 32-bits in the depth component.- See Also:
- Constant Field Values
-
VK_FORMAT_S8_UINT
public static final int VK_FORMAT_S8_UINT
A one-component, 8-bit unsigned integer format that has 8-bits in the stencil component.- See Also:
- Constant Field Values
-
VK_FORMAT_D16_UNORM_S8_UINT
public static final int VK_FORMAT_D16_UNORM_S8_UINT
A two-component, 24-bit format that has 16 unsigned normalized bits in the depth component and 8 unsigned integer bits in the stencil component.- See Also:
- Constant Field Values
-
VK_FORMAT_D24_UNORM_S8_UINT
public static final int VK_FORMAT_D24_UNORM_S8_UINT
A two-component, 32-bit packed format that has 8 unsigned integer bits in the stencil component, and 24 unsigned normalized bits in the depth component.- See Also:
- Constant Field Values
-
VK_FORMAT_D32_SFLOAT_S8_UINT
public static final int VK_FORMAT_D32_SFLOAT_S8_UINT
A two-component format that has 32 signed float bits in the depth component and 8 unsigned integer bits in the stencil component. There are optionally: 24-bits that are unused.- See Also:
- Constant Field Values
-
VK_FORMAT_BC1_RGB_UNORM_BLOCK
public static final int VK_FORMAT_BC1_RGB_UNORM_BLOCK
A three-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data. This format has no alpha and is considered opaque.- See Also:
- Constant Field Values
-
VK_FORMAT_BC1_RGB_SRGB_BLOCK
public static final int VK_FORMAT_BC1_RGB_SRGB_BLOCK
A three-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding. This format has no alpha and is considered opaque.- See Also:
- Constant Field Values
-
VK_FORMAT_BC1_RGBA_UNORM_BLOCK
public static final int VK_FORMAT_BC1_RGBA_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data, and provides 1 bit of alpha.- See Also:
- Constant Field Values
-
VK_FORMAT_BC1_RGBA_SRGB_BLOCK
public static final int VK_FORMAT_BC1_RGBA_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding, and provides 1 bit of alpha.- See Also:
- Constant Field Values
-
VK_FORMAT_BC2_UNORM_BLOCK
public static final int VK_FORMAT_BC2_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of unsigned normalized alpha image data followed by 64-bits of encoded unsigned normalized RGB image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC2_SRGB_BLOCK
public static final int VK_FORMAT_BC2_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of unsigned normalized alpha image data followed by 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding.- See Also:
- Constant Field Values
-
VK_FORMAT_BC3_UNORM_BLOCK
public static final int VK_FORMAT_BC3_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded alpha image data followed by 64-bits of encoded RGB image data. Both blocks are decoded as unsigned normalized values.- See Also:
- Constant Field Values
-
VK_FORMAT_BC3_SRGB_BLOCK
public static final int VK_FORMAT_BC3_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 64-bits of encoded alpha image data followed by 64-bits of encoded RGB image data with sRGB nonlinear encoding. Both blocks are decoded as unsigned normalized values.- See Also:
- Constant Field Values
-
VK_FORMAT_BC4_UNORM_BLOCK
public static final int VK_FORMAT_BC4_UNORM_BLOCK
A one-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC4_SNORM_BLOCK
public static final int VK_FORMAT_BC4_SNORM_BLOCK
A one-component, block compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC5_UNORM_BLOCK
public static final int VK_FORMAT_BC5_UNORM_BLOCK
A two-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data followed by 64-bits of encoded unsigned normalized green image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC5_SNORM_BLOCK
public static final int VK_FORMAT_BC5_SNORM_BLOCK
A two-component, block compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data followed by 64-bits of encoded signed normalized green image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC6H_UFLOAT_BLOCK
public static final int VK_FORMAT_BC6H_UFLOAT_BLOCK
A three-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned floating-point RGB image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC6H_SFLOAT_BLOCK
public static final int VK_FORMAT_BC6H_SFLOAT_BLOCK
A three-component, block compressed format where each 4x4 block consists of 128-bits of encoded signed floating-point RGB image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC7_UNORM_BLOCK
public static final int VK_FORMAT_BC7_UNORM_BLOCK
A four-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_BC7_SRGB_BLOCK
public static final int VK_FORMAT_BC7_SRGB_BLOCK
A four-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
public static final int VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
A three-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
public static final int VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
A three-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding.- See Also:
- Constant Field Values
-
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
public static final int VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data, and provides 1 bit of alpha.- See Also:
- Constant Field Values
-
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
public static final int VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding, and provides 1 bit of alpha.- See Also:
- Constant Field Values
-
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
public static final int VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data, and 64-bits of encoded unsigned normalized alpha image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
public static final int VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
A four-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data with sRGB nonlinear encoding, and 64-bits of encoded unsigned normalized alpha image data.- See Also:
- Constant Field Values
-
VK_FORMAT_EAC_R11_UNORM_BLOCK
public static final int VK_FORMAT_EAC_R11_UNORM_BLOCK
A one-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data.- See Also:
- Constant Field Values
-
VK_FORMAT_EAC_R11_SNORM_BLOCK
public static final int VK_FORMAT_EAC_R11_SNORM_BLOCK
A one-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data.- See Also:
- Constant Field Values
-
VK_FORMAT_EAC_R11G11_UNORM_BLOCK
public static final int VK_FORMAT_EAC_R11G11_UNORM_BLOCK
A two-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data followed by 64-bits of encoded unsigned normalized green image data.- See Also:
- Constant Field Values
-
VK_FORMAT_EAC_R11G11_SNORM_BLOCK
public static final int VK_FORMAT_EAC_R11G11_SNORM_BLOCK
A two-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data followed by 64-bits of encoded signed normalized green image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_4x4_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_4x4_UNORM_BLOCK
A four-component, ASTC compressed format where each 4x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_4x4_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_4x4_SRGB_BLOCK
A four-component, ASTC compressed format where each 4x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_5x4_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_5x4_UNORM_BLOCK
A four-component, ASTC compressed format where each 5x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_5x4_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_5x4_SRGB_BLOCK
A four-component, ASTC compressed format where each 5x4 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_5x5_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_5x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 5x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_5x5_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_5x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 5x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_6x5_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_6x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 6x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_6x5_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_6x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 6x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_6x6_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_6x6_UNORM_BLOCK
A four-component, ASTC compressed format where each 6x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_6x6_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_6x6_SRGB_BLOCK
A four-component, ASTC compressed format where each 6x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_8x5_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_8x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 8x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_8x5_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_8x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 8x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_8x6_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_8x6_UNORM_BLOCK
A four-component, ASTC compressed format where each 8x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_8x6_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_8x6_SRGB_BLOCK
A four-component, ASTC compressed format where each 8x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_8x8_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_8x8_UNORM_BLOCK
A four-component, ASTC compressed format where each 8x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_8x8_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_8x8_SRGB_BLOCK
A four-component, ASTC compressed format where each 8x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x5_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_10x5_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x5_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_10x5_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x5 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x6_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_10x6_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x6_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_10x6_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x6 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x8_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_10x8_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x8_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_10x8_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x8 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x10_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_10x10_UNORM_BLOCK
A four-component, ASTC compressed format where each 10x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_10x10_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_10x10_SRGB_BLOCK
A four-component, ASTC compressed format where each 10x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_12x10_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_12x10_UNORM_BLOCK
A four-component, ASTC compressed format where each 12x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_12x10_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_12x10_SRGB_BLOCK
A four-component, ASTC compressed format where each 12x10 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_12x12_UNORM_BLOCK
public static final int VK_FORMAT_ASTC_12x12_UNORM_BLOCK
A four-component, ASTC compressed format where each 12x12 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data.- See Also:
- Constant Field Values
-
VK_FORMAT_ASTC_12x12_SRGB_BLOCK
public static final int VK_FORMAT_ASTC_12x12_SRGB_BLOCK
A four-component, ASTC compressed format where each 12x12 block consists of 128-bits of encoded image data which is decoded as unsigned normalized RGBA image data with sRGB nonlinear encoding applied to the RGB components.- See Also:
- Constant Field Values
-
VK_IMAGE_TYPE_1D
public static final int VK_IMAGE_TYPE_1D
One-dimensional image- See Also:
- Constant Field Values
-
VK_IMAGE_TYPE_2D
public static final int VK_IMAGE_TYPE_2D
Two-dimensional image- See Also:
- Constant Field Values
-
VK_IMAGE_TYPE_3D
public static final int VK_IMAGE_TYPE_3D
Three-dimensional image- See Also:
- Constant Field Values
-
VK_IMAGE_TILING_OPTIMAL
public static final int VK_IMAGE_TILING_OPTIMAL
Specifies optimal tiling (texels are laid out in an implementation-dependent arrangement, for more optimal memory access).- See Also:
- Constant Field Values
-
VK_IMAGE_TILING_LINEAR
public static final int VK_IMAGE_TILING_LINEAR
Specifies linear tiling (texels are laid out in memory in row-major order, possibly with some padding on each row).- See Also:
- Constant Field Values
-
VK_PHYSICAL_DEVICE_TYPE_OTHER
public static final int VK_PHYSICAL_DEVICE_TYPE_OTHER
The device does not match any other available types.- See Also:
- Constant Field Values
-
VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
public static final int VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
The device is typically one embedded in or tightly coupled with the host.- See Also:
- Constant Field Values
-
VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
public static final int VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
The device is typically a separate processor connected to the host via an interlink.- See Also:
- Constant Field Values
-
VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
public static final int VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
The device is typically a virtual node in a virtualization environment.- See Also:
- Constant Field Values
-
VK_PHYSICAL_DEVICE_TYPE_CPU
public static final int VK_PHYSICAL_DEVICE_TYPE_CPU
The device is typically running on the same processors as the host.- See Also:
- Constant Field Values
-
VK_QUERY_TYPE_OCCLUSION
public static final int VK_QUERY_TYPE_OCCLUSION
Occlusion query.- See Also:
- Constant Field Values
-
VK_QUERY_TYPE_PIPELINE_STATISTICS
public static final int VK_QUERY_TYPE_PIPELINE_STATISTICS
Pipeline statistics query- See Also:
- Constant Field Values
-
VK_QUERY_TYPE_TIMESTAMP
public static final int VK_QUERY_TYPE_TIMESTAMP
Timestamp query.- See Also:
- Constant Field Values
-
VK_SHARING_MODE_EXCLUSIVE
public static final int VK_SHARING_MODE_EXCLUSIVE
Specifies that access to any range or image subresource of the object will be exclusive to a single queue family at a time.- See Also:
- Constant Field Values
-
VK_SHARING_MODE_CONCURRENT
public static final int VK_SHARING_MODE_CONCURRENT
Specifies that concurrent access to any range or image subresource of the object from multiple queue families is supported.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_UNDEFINED
public static final int VK_IMAGE_LAYOUT_UNDEFINED
Supports no device access. This layout must only be used as aninitialLayout
or as theoldLayout
in an image transition. When transitioning out of this layout, the contents of the memory are not guaranteed to be preserved.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_GENERAL
public static final int VK_IMAGE_LAYOUT_GENERAL
Supports all types of device access.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
public static final int VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
must only be used as a color or resolve attachment in aVkFramebuffer
. This layout is valid only for image subresources of images created with theIMAGE_USAGE_COLOR_ATTACHMENT_BIT
usage bit enabled.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
public static final int VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
must only be used as a depth/stencil attachment in aVkFramebuffer
. This layout is valid only for image subresources of images created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
usage bit enabled.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
public static final int VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
must only be used as a read-only depth/stencil attachment in aVkFramebuffer
and/or as a read-only image in a shader (which can be read as a sampled image, combined image/sampler and/or input attachment). This layout is valid only for image subresources of images created with both theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
usage bit enabled.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
public static final int VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
must only be used as a read-only image in a shader (which can be read as a sampled image, combined image/sampler and/or input attachment). This layout is valid only for image subresources of images created with theIMAGE_USAGE_SAMPLED_BIT
orIMAGE_USAGE_INPUT_ATTACHMENT_BIT
usage bit enabled.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
public static final int VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
must only be used as a source image of a transfer command (see the definition ofPIPELINE_STAGE_TRANSFER_BIT
). This layout is valid only for image subresources of images created with theIMAGE_USAGE_TRANSFER_SRC_BIT
usage bit enabled.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
public static final int VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
must only be used as a destination image of a transfer command. This layout is valid only for image subresources of images created with theIMAGE_USAGE_TRANSFER_DST_BIT
usage bit enabled.- See Also:
- Constant Field Values
-
VK_IMAGE_LAYOUT_PREINITIALIZED
public static final int VK_IMAGE_LAYOUT_PREINITIALIZED
Supports no device access. This layout must only be used as aninitialLayout
or as theoldLayout
in an image transition. When transitioning out of this layout, the contents of the memory are preserved. This layout is intended to be used as the initial layout for an image whose contents are written by the host, and hence the data can be written to memory immediately, without first executing a layout transition. Currently,IMAGE_LAYOUT_PREINITIALIZED
is only useful withIMAGE_TILING_LINEAR
images because there is not a standard layout defined forIMAGE_TILING_OPTIMAL
images.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_1D
public static final int VK_IMAGE_VIEW_TYPE_1D
One-dimensional image view.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_2D
public static final int VK_IMAGE_VIEW_TYPE_2D
Two-dimensional image view.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_3D
public static final int VK_IMAGE_VIEW_TYPE_3D
Three-dimensional image view.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_CUBE
public static final int VK_IMAGE_VIEW_TYPE_CUBE
Cube map image view.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_1D_ARRAY
public static final int VK_IMAGE_VIEW_TYPE_1D_ARRAY
One-dimensional array image view.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_2D_ARRAY
public static final int VK_IMAGE_VIEW_TYPE_2D_ARRAY
Two-dimensional array image view.- See Also:
- Constant Field Values
-
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
public static final int VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
Cube map array image view.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_IDENTITY
public static final int VK_COMPONENT_SWIZZLE_IDENTITY
The component is set to the identity swizzle.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_ZERO
public static final int VK_COMPONENT_SWIZZLE_ZERO
The component is set to zero.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_ONE
public static final int VK_COMPONENT_SWIZZLE_ONE
The component is set to either 1 or 1.0 depending on whether the type of the image view format is integer or floating-point respectively, as determined by the Format Definition section for eachVkFormat
.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_R
public static final int VK_COMPONENT_SWIZZLE_R
The component is set to the value of the R component of the image.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_G
public static final int VK_COMPONENT_SWIZZLE_G
The component is set to the value of the G component of the image.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_B
public static final int VK_COMPONENT_SWIZZLE_B
The component is set to the value of the B component of the image.- See Also:
- Constant Field Values
-
VK_COMPONENT_SWIZZLE_A
public static final int VK_COMPONENT_SWIZZLE_A
The component is set to the value of the A component of the image.- See Also:
- Constant Field Values
-
VK_VERTEX_INPUT_RATE_VERTEX
public static final int VK_VERTEX_INPUT_RATE_VERTEX
Indicates that vertex attribute addressing is a function of the vertex index.- See Also:
- Constant Field Values
-
VK_VERTEX_INPUT_RATE_INSTANCE
public static final int VK_VERTEX_INPUT_RATE_INSTANCE
Indicates that vertex attribute addressing is a function of the instance index.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_POINT_LIST
public static final int VK_PRIMITIVE_TOPOLOGY_POINT_LIST
A series of individual points. Each vertex defines a separate point.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_LINE_LIST
public static final int VK_PRIMITIVE_TOPOLOGY_LINE_LIST
Individual line segments, each defined by a pair of vertices. The first two vertices define the first segment, with subsequent pairs of vertices each defining one more segment. If the number of vertices is odd, then the last vertex is ignored.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
public static final int VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
A series of one or more connected line segments. In this case, the first vertex specifies the first segment’s start point while the second vertex specifies the first segment’s endpoint and the second segment’s start point. In general, the ith vertex (for i > 0) specifies the beginning of the ith segment and the end of thei−1
st. The last vertex specifies the end of the last segment. If only one vertex is specified, then no primitive is generated.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
public static final int VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
Separate triangles. In this case, vertices3i
,3i + 1
, and3i + 2
(in that order) determine a triangle for eachi = 0,1,…,n − 1
, where there are3n + k
vertices drawn.k
is either 0, 1, or 2; ifk
is not zero, the finalk
vertices are ignored.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
public static final int VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
A triangle strip is a series of triangles connected along shared edges. In this case, the first three vertices define the first triangle, and their order is significant. Each subsequent vertex defines a new triangle using that point along with the last two vertices from the previous triangle. If fewer than three vertices are specified, no primitive is produced. The order of vertices in successive triangles changes, so that all triangle faces have the same orientation.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
public static final int VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
A triangle fan. It is similar to a triangle strip, but changes the vertex replaced from the previous triangle, so that all triangles in the fan share a common vertex.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
public static final int VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
Lines with adjacency are independent line segments where each endpoint has a corresponding adjacent vertex that is accessible in a geometry shader. If a geometry shader is not active, the adjacent vertices are ignored.A line segment is drawn from the
4i + 1
st vertex to the4i + 2
nd vertex for eachi = 0,1,…,n − 1
, where there are4n + k
vertices.k
is either 0, 1, 2, or 3; ifk
is not zero, the finalk
vertices are ignored. For line segmenti
, the4i
th and4i + 3
rd vertices are considered adjacent to the4i + 1
st and4i + 2
nd vertices, respectively.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
public static final int VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
Line strips with adjacency are similar to line strips, except that each line segment has a pair of adjacent vertices that are accessible in a geometry shader. If a geometry shader is not active, the adjacent vertices are ignored.A line segment is drawn from the
i + 1
st vertex to thei + 2
nd vertex for eachi = 0,1,…,n − 1
, where there aren + 3
vertices. If there are fewer than four vertices, all vertices are ignored. For line segmenti
, thei
th andi + 3
rd vertex are considered adjacent to thei + 1
st andi + 2
nd vertices, respectively.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
public static final int VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
Triangles with adjacency are similar to separate triangles except that each triangle edge has an adjacent vertex that is accessible in a geometry shader. If a geometry shader is not active, the adjacent vertices are ignored.The
6i
th,6i + 2
nd, and6i + 4
th vertices (in that order) determine a triangle for eachi = 0,1,…,n − 1
, where there are6n + k
vertices.k
is either 0, 1, 2, 3, 4, or 5; ifk
is non-zero, the finalk
vertices are ignored. For trianglei
, the6i + 1
st,6i + 3
rd, and6i + 5
th vertices are considered adjacent to edges from the6i
th to the6i + 2
nd, from the6i + 2
nd to the6i + 4
th, and from the6i + 4
th to the6i
th vertices, respectively.- See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
public static final int VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
Triangle strips with adjacency are similar to triangle strips except that each triangle edge has an adjacent vertex that is accessible in a geometry shader. If a geometry shader is not active, the adjacent vertices are ignored.In triangle strips with adjacency,
n
triangles are drawn where there are2(n + 2) + k
vertices.k
is either 0 or 1; ifk
is 1, the final vertex is ignored. If there are fewer than 6 vertices, the entire primitive is ignored. The table below describes the vertices and order used to draw each triangle, and which vertices are considered adjacent to each edge of the triangle:Primitive Vertices Adjacent Vertices Primitive 1st 2nd 3rd 1/2 2/3 3/1 only ( i = 0
,n = 1
)0 2 4 1 5 3 first ( i = 0
)0 2 4 1 6 3 middle ( i
odd)2i+2 2i 2i+4 2i−2 2i+3 2i+6 middle ( i
even)2i 2i+2 2i+4 2i−2 2i+6 2i+3 last ( i = n − 1
,i
odd)2i+2 2i 2i+4 2i−2 2i+3 2i+5 last ( i = n − 1
,i
even)2i 2i+2 2i+4 2i−2 2i+5 2i+3 - See Also:
- Constant Field Values
-
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
public static final int VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
Separate patches. A patch is an ordered collection of vertices used for primitive tessellation. The vertices comprising a patch have no implied geometric ordering, and are used by tessellation shaders and the fixed-function tessellator to generate new point, line, or triangle primitives.Each patch in the series has a fixed number of vertices, specified by the
patchControlPoints
member of theVkPipelineTessellationStateCreateInfo
structure passed toCreateGraphicsPipelines
. Once assembled and vertex shaded, these patches are provided as input to the tessellation control shader stage.If the number of vertices in a patch is given by
v
, thevi
th throughvi + v − 1
st vertices (in that order) determine a patch for eachi = 0,1,…n − 1
, where there arevn + k
vertices.k
is in the range[0,v − 1]
; ifk
is not zero, the finalk
vertices are ignored.- See Also:
- Constant Field Values
-
VK_POLYGON_MODE_FILL
public static final int VK_POLYGON_MODE_FILL
Causes polygons to render using the polygon rasterization rules.- See Also:
- Constant Field Values
-
VK_POLYGON_MODE_LINE
public static final int VK_POLYGON_MODE_LINE
Causes polygon edges to be drawn as line segments.- See Also:
- Constant Field Values
-
VK_POLYGON_MODE_POINT
public static final int VK_POLYGON_MODE_POINT
The vertices of polygons are treated, for rasterization purposes, as if they had been drawn as points.- See Also:
- Constant Field Values
-
VK_FRONT_FACE_COUNTER_CLOCKWISE
public static final int VK_FRONT_FACE_COUNTER_CLOCKWISE
A triangle with positive area is considered front-facing.- See Also:
- Constant Field Values
-
VK_FRONT_FACE_CLOCKWISE
public static final int VK_FRONT_FACE_CLOCKWISE
A triangle with negative area is considered front-facing.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_NEVER
public static final int VK_COMPARE_OP_NEVER
The test never passes.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_LESS
public static final int VK_COMPARE_OP_LESS
The test passes when R < S.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_EQUAL
public static final int VK_COMPARE_OP_EQUAL
The test passes when R = S- See Also:
- Constant Field Values
-
VK_COMPARE_OP_LESS_OR_EQUAL
public static final int VK_COMPARE_OP_LESS_OR_EQUAL
The test passes when R ≤ S.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_GREATER
public static final int VK_COMPARE_OP_GREATER
The test passes when R > S.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_NOT_EQUAL
public static final int VK_COMPARE_OP_NOT_EQUAL
The test passes when R ≠ S.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_GREATER_OR_EQUAL
public static final int VK_COMPARE_OP_GREATER_OR_EQUAL
The test passes when R ≥ S.- See Also:
- Constant Field Values
-
VK_COMPARE_OP_ALWAYS
public static final int VK_COMPARE_OP_ALWAYS
The test always passes.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_KEEP
public static final int VK_STENCIL_OP_KEEP
Keeps the current value.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_ZERO
public static final int VK_STENCIL_OP_ZERO
Sets the value to 0.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_REPLACE
public static final int VK_STENCIL_OP_REPLACE
Sets the value toreference
.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_INCREMENT_AND_CLAMP
public static final int VK_STENCIL_OP_INCREMENT_AND_CLAMP
Increments the current value and clamps to the maximum representable unsigned value.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_DECREMENT_AND_CLAMP
public static final int VK_STENCIL_OP_DECREMENT_AND_CLAMP
Decrements the current value and clamps to 0.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_INVERT
public static final int VK_STENCIL_OP_INVERT
Bitwise-inverts the current value.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_INCREMENT_AND_WRAP
public static final int VK_STENCIL_OP_INCREMENT_AND_WRAP
Increments the current value and wraps to 0 when the maximum value would have been exceeded.- See Also:
- Constant Field Values
-
VK_STENCIL_OP_DECREMENT_AND_WRAP
public static final int VK_STENCIL_OP_DECREMENT_AND_WRAP
Decrements the current value and wraps to the maximum possible value when the value would go below 0.- See Also:
- Constant Field Values
-
VK_LOGIC_OP_CLEAR
public static final int VK_LOGIC_OP_CLEAR
0
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_AND
public static final int VK_LOGIC_OP_AND
s∧d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_AND_REVERSE
public static final int VK_LOGIC_OP_AND_REVERSE
s∧¬d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_COPY
public static final int VK_LOGIC_OP_COPY
s
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_AND_INVERTED
public static final int VK_LOGIC_OP_AND_INVERTED
¬s∧d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_NO_OP
public static final int VK_LOGIC_OP_NO_OP
d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_XOR
public static final int VK_LOGIC_OP_XOR
s⊕d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_OR
public static final int VK_LOGIC_OP_OR
s∨d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_NOR
public static final int VK_LOGIC_OP_NOR
¬(s∨d)
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_EQUIVALENT
public static final int VK_LOGIC_OP_EQUIVALENT
¬(s⊕d)
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_INVERT
public static final int VK_LOGIC_OP_INVERT
¬d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_OR_REVERSE
public static final int VK_LOGIC_OP_OR_REVERSE
s∨¬d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_COPY_INVERTED
public static final int VK_LOGIC_OP_COPY_INVERTED
¬s
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_OR_INVERTED
public static final int VK_LOGIC_OP_OR_INVERTED
¬s∨d
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_NAND
public static final int VK_LOGIC_OP_NAND
¬(s∧d)
- See Also:
- Constant Field Values
-
VK_LOGIC_OP_SET
public static final int VK_LOGIC_OP_SET
all 1s
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ZERO
public static final int VK_BLEND_FACTOR_ZERO
(0, 0, 0, 0)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE
public static final int VK_BLEND_FACTOR_ONE
(1, 1, 1, 1)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_SRC_COLOR
public static final int VK_BLEND_FACTOR_SRC_COLOR
(Rs0, Gs0, Bs0, As0)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
public static final int VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
(1 − Rs0, 1 − Gs0, 1 − Bs0, 1 − As0)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_DST_COLOR
public static final int VK_BLEND_FACTOR_DST_COLOR
(Rd, Gd, Bd, Ad)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR
public static final int VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR
(1 − Rd, 1 − Gd, 1 − Bd, 1 − Ad)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_SRC_ALPHA
public static final int VK_BLEND_FACTOR_SRC_ALPHA
(As0, As0, As0, As0)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
public static final int VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
(1 − As0, 1 − As0, 1 − As0, 1 − As0)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_DST_ALPHA
public static final int VK_BLEND_FACTOR_DST_ALPHA
(Ad, Ad, Ad, Ad)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
public static final int VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
(1 − Ad, 1 − Ad, 1 − Ad, 1 − Ad)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_CONSTANT_COLOR
public static final int VK_BLEND_FACTOR_CONSTANT_COLOR
(Rc, Gc, Bc, Ac)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
public static final int VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
(1 − Rc, 1 − Gc, 1 − Bc, 1 − Ac)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_CONSTANT_ALPHA
public static final int VK_BLEND_FACTOR_CONSTANT_ALPHA
(Ac, Ac, Ac, Ac)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
public static final int VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
(1 − Ac, 1 − Ac, 1 − Ac, 1 − Ac)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
public static final int VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
(f, f, f, 1) ; f = min(As0, 1 − Ad)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_SRC1_COLOR
public static final int VK_BLEND_FACTOR_SRC1_COLOR
(Rs1, Gs1, Bs1, As1)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
public static final int VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
(1 − Rs1, 1 − Gs1, 1 − Bs1, 1 − As1)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_SRC1_ALPHA
public static final int VK_BLEND_FACTOR_SRC1_ALPHA
(As1, As1, As1, As1)
- See Also:
- Constant Field Values
-
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
public static final int VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
(1 − As1, 1 − As1, 1 − As1, 1 − As1)
- See Also:
- Constant Field Values
-
VK_BLEND_OP_ADD
public static final int VK_BLEND_OP_ADD
R = Rs0 × Sr + Rd × Dr G = Gs0 × Sg + Gd × Dg B = Bs0 × Sb + Bd × Db A = As0 × Sa + Ad × Da
- See Also:
- Constant Field Values
-
VK_BLEND_OP_SUBTRACT
public static final int VK_BLEND_OP_SUBTRACT
R = Rs0 × Sr − Rd × Dr G = Gs0 × Sg − Gd × Dg B = Bs0 × Sb − Bd × Db A = As0 × Sa − Ad × Da
- See Also:
- Constant Field Values
-
VK_BLEND_OP_REVERSE_SUBTRACT
public static final int VK_BLEND_OP_REVERSE_SUBTRACT
R = Rd × Dr − Rs0 × Sr G = Gd × Dg − Gs0 × Sg B = Bd × Db − Bs0 × Sb A = Ad × Da − As0 × Sa
- See Also:
- Constant Field Values
-
VK_BLEND_OP_MIN
public static final int VK_BLEND_OP_MIN
R = min(Rs0, Rd) G = min(Gs0, Gd) B = min(Bs0, Bd) A = min(As0, Ad)
- See Also:
- Constant Field Values
-
VK_BLEND_OP_MAX
public static final int VK_BLEND_OP_MAX
R = max(Rs0, Rd) G = max(Gs0, Gd) B = max(Bs0, Bd) A = max(As0, Ad)
- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_VIEWPORT
public static final int VK_DYNAMIC_STATE_VIEWPORT
Indicates that thepViewports
state inVkPipelineViewportStateCreateInfo
will be ignored and must be set dynamically withCmdSetViewport
before any draw commands. The number of viewports used by a pipeline is still specified by theviewportCount
member ofVkPipelineViewportStateCreateInfo
.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_SCISSOR
public static final int VK_DYNAMIC_STATE_SCISSOR
Indicates that thepScissors
state inVkPipelineViewportStateCreateInfo
will be ignored and must be set dynamically withCmdSetScissor
before any draw commands. The number of scissor rectangles used by a pipeline is still specified by thescissorCount
member ofVkPipelineViewportStateCreateInfo
.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_LINE_WIDTH
public static final int VK_DYNAMIC_STATE_LINE_WIDTH
Indicates that thelineWidth
state inVkPipelineRasterizationStateCreateInfo
will be ignored and must be set dynamically withCmdSetLineWidth
before any draw commands that generate line primitives for the rasterizer.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_DEPTH_BIAS
public static final int VK_DYNAMIC_STATE_DEPTH_BIAS
Indicates that thedepthBiasConstantFactor
,depthBiasClamp
anddepthBiasSlopeFactor
states inVkPipelineRasterizationStateCreateInfo
will be ignored and must be set dynamically withCmdSetDepthBias
before any draws are performed withdepthBiasEnable
inVkPipelineRasterizationStateCreateInfo
set toTRUE
.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_BLEND_CONSTANTS
public static final int VK_DYNAMIC_STATE_BLEND_CONSTANTS
Indicates that theblendConstants
state inVkPipelineColorBlendStateCreateInfo
will be ignored and must be set dynamically withCmdSetBlendConstants
before any draws are performed with a pipeline state withVkPipelineColorBlendAttachmentState
memberblendEnable
set toTRUE
and any of the blend functions using a constant blend color.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_DEPTH_BOUNDS
public static final int VK_DYNAMIC_STATE_DEPTH_BOUNDS
Indicates that theminDepthBounds
andmaxDepthBounds
states ofVkPipelineDepthStencilStateCreateInfo
will be ignored and must be set dynamically withCmdSetDepthBounds
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberdepthBoundsTestEnable
set toTRUE
.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
public static final int VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
Indicates that thecompareMask
state inVkPipelineDepthStencilStateCreateInfo
for both front and back will be ignored and must be set dynamically withCmdSetStencilCompareMask
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberstencilTestEnable
set toTRUE
.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
public static final int VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
Indicates that thewriteMask
state inVkPipelineDepthStencilStateCreateInfo
for both front and back will be ignored and must be set dynamically withCmdSetStencilWriteMask
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberstencilTestEnable
set toTRUE
.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_STENCIL_REFERENCE
public static final int VK_DYNAMIC_STATE_STENCIL_REFERENCE
Indicates that the reference state inVkPipelineDepthStencilStateCreateInfo
for both front and back will be ignored and must be set dynamically withCmdSetStencilReference
before any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfo
memberstencilTestEnable
set toTRUE
.- See Also:
- Constant Field Values
-
VK_FILTER_NEAREST
public static final int VK_FILTER_NEAREST
Nearest filtering.Computes the integer texel coordinates that the unnormalized coordinates lie within:
i = floor(u) j = floor(v) k = floor(w)
- See Also:
- Constant Field Values
-
VK_FILTER_LINEAR
public static final int VK_FILTER_LINEAR
Linear filtering.Computes a set of neighboring coordinates which bound the unnormalized coordinates. The integer texel coordinates are combinations of
i0
ori1
,j0
orj1
,k0
ork1
, as well as weightsα
,β
, andγ
.i0 = floor(u - 0.5) i1 = i0 + 1 j0 = floor(v - 0.5) j1 = j0 + 1 k0 = floor(w - 0.5) k1 = k0 + 1 α = frac(u - 0.5) β = frac(v - 0.5) γ = frac(w - 0.5)
- See Also:
- Constant Field Values
-
VK_SAMPLER_MIPMAP_MODE_NEAREST
public static final int VK_SAMPLER_MIPMAP_MODE_NEAREST
Texels are read from the image leveld
, where:d = levelbase
when λ ≤ 0.5
d = nearest(λ)
when λ > 0.5 && levelbase + λ ≤ q + 0.5
d = q
when λ > 0.5 && levelbase + λ > q + 0.5
and:
nearest(λ) = ceil(levelbase + λ + 0.5) - 1,
preferred nearest(λ) = floor(levelbase + λ + 0.5),
alternative and where
q
is thelevelCount
from thesubresourceRange
of the image view.- See Also:
- Constant Field Values
-
VK_SAMPLER_MIPMAP_MODE_LINEAR
public static final int VK_SAMPLER_MIPMAP_MODE_LINEAR
Texels are read from image levelsdhi
anddlo
, where:dhi = q
when levelbase + λ ≥ q
dhi = floor(levelbase + λ)
otherwise and:
dlo = q
when levelbase + λ ≥ q
dlo = dhi + 1
otherwise δ = frac(λ)
is the fractional value used for linear filtering between levels:- See Also:
- Constant Field Values
-
VK_SAMPLER_ADDRESS_MODE_REPEAT
public static final int VK_SAMPLER_ADDRESS_MODE_REPEAT
Indicates that the repeat wrap mode will be used.- See Also:
- Constant Field Values
-
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
public static final int VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
Indicates that the mirrored repeat wrap mode will be used.- See Also:
- Constant Field Values
-
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
public static final int VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
Indicates that the clamp to edge wrap mode will be used.- See Also:
- Constant Field Values
-
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
public static final int VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
Indicates that the clamp to border wrap mode will be used.- See Also:
- Constant Field Values
-
VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
public static final int VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
(0.0, 0.0, 0.0, 0.0)
- See Also:
- Constant Field Values
-
VK_BORDER_COLOR_INT_TRANSPARENT_BLACK
public static final int VK_BORDER_COLOR_INT_TRANSPARENT_BLACK
(0, 0, 0, 0)
- See Also:
- Constant Field Values
-
VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK
public static final int VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK
(0.0, 0.0, 0.0, 1.0)
- See Also:
- Constant Field Values
-
VK_BORDER_COLOR_INT_OPAQUE_BLACK
public static final int VK_BORDER_COLOR_INT_OPAQUE_BLACK
(0, 0, 0, 1)
- See Also:
- Constant Field Values
-
VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE
public static final int VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE
(1.0, 1.0, 1.0, 1.0)
- See Also:
- Constant Field Values
-
VK_BORDER_COLOR_INT_OPAQUE_WHITE
public static final int VK_BORDER_COLOR_INT_OPAQUE_WHITE
(1, 1, 1, 1)
- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_SAMPLER
public static final int VK_DESCRIPTOR_TYPE_SAMPLER
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
public static final int VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
public static final int VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
public static final int VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
public static final int VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
public static final int VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
public static final int VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
public static final int VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
public static final int VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
public static final int VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VkDescriptorType- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
public static final int VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
VkDescriptorType- See Also:
- Constant Field Values
-
VK_ATTACHMENT_LOAD_OP_LOAD
public static final int VK_ATTACHMENT_LOAD_OP_LOAD
Means the contents within the render area will be preserved.- See Also:
- Constant Field Values
-
VK_ATTACHMENT_LOAD_OP_CLEAR
public static final int VK_ATTACHMENT_LOAD_OP_CLEAR
Means the contents within the render area will be cleared to a uniform value, which is specified when a render pass instance is begun.- See Also:
- Constant Field Values
-
VK_ATTACHMENT_LOAD_OP_DONT_CARE
public static final int VK_ATTACHMENT_LOAD_OP_DONT_CARE
Means the contents within the area need not be preserved; the contents of the attachment will be undefined inside the render area.- See Also:
- Constant Field Values
-
VK_ATTACHMENT_STORE_OP_STORE
public static final int VK_ATTACHMENT_STORE_OP_STORE
Means the contents within the render area are written to memory and will be available for reading after the render pass instance completes once the writes have been synchronized withACCESS_COLOR_ATTACHMENT_WRITE_BIT
(for color attachments) orACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
(for depth/stencil attachments).- See Also:
- Constant Field Values
-
VK_ATTACHMENT_STORE_OP_DONT_CARE
public static final int VK_ATTACHMENT_STORE_OP_DONT_CARE
Means the contents within the render area are not needed after rendering, and may be discarded; the contents of the attachment will be undefined inside the render area.- See Also:
- Constant Field Values
-
VK_PIPELINE_BIND_POINT_GRAPHICS
public static final int VK_PIPELINE_BIND_POINT_GRAPHICS
VkPipelineBindPoint- See Also:
- Constant Field Values
-
VK_PIPELINE_BIND_POINT_COMPUTE
public static final int VK_PIPELINE_BIND_POINT_COMPUTE
VkPipelineBindPoint- See Also:
- Constant Field Values
-
VK_COMMAND_BUFFER_LEVEL_PRIMARY
public static final int VK_COMMAND_BUFFER_LEVEL_PRIMARY
VkCommandBufferLevel- See Also:
- Constant Field Values
-
VK_COMMAND_BUFFER_LEVEL_SECONDARY
public static final int VK_COMMAND_BUFFER_LEVEL_SECONDARY
VkCommandBufferLevel- See Also:
- Constant Field Values
-
VK_INDEX_TYPE_UINT16
public static final int VK_INDEX_TYPE_UINT16
VkIndexType- See Also:
- Constant Field Values
-
VK_INDEX_TYPE_UINT32
public static final int VK_INDEX_TYPE_UINT32
VkIndexType- See Also:
- Constant Field Values
-
VK_SUBPASS_CONTENTS_INLINE
public static final int VK_SUBPASS_CONTENTS_INLINE
The contents of the subpass will be recorded inline in the primary command buffer, and secondary command buffers must not be executed within the subpass.- See Also:
- Constant Field Values
-
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
public static final int VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
The contents are recorded in secondary command buffers that will be called from the primary command buffer, andCmdExecuteCommands
is the only valid command on the command buffer untilCmdNextSubpass
orCmdEndRenderPass
.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
public static final int VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VkImageView
can be sampled from.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
public static final int VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VkImageView
can be used as storage image.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
public static final int VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VkImageView
can be used as storage image that supports atomic operations.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
public static final int VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
Format can be used to create aVkBufferView
that can be bound to aDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
descriptor.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
public static final int VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
Format can be used to create aVkBufferView
that can be bound to aDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
descriptor.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
public static final int VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
Atomic operations are supported onDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
with this format.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
public static final int VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
Format can be used as a vertex attribute format (VkVertexInputAttributeDescription
.format
).- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
public static final int VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VkImageView
can be used as a framebuffer color attachment and as an input attachment.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
public static final int VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VkImageView
can be used as a framebuffer color attachment that supports blending and as an input attachment.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
public static final int VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VkImageView
can be used as a framebuffer depth/stencil attachment and as an input attachment.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_BLIT_SRC_BIT
public static final int VK_FORMAT_FEATURE_BLIT_SRC_BIT
- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_BLIT_DST_BIT
public static final int VK_FORMAT_FEATURE_BLIT_DST_BIT
- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
public static final int VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
IfFORMAT_FEATURE_SAMPLED_IMAGE_BIT
is also set,VkImageView
can be used with a sampler that has either ofmagFilter
orminFilter
set toFILTER_LINEAR
, ormipmapMode
set toSAMPLER_MIPMAP_MODE_LINEAR
. IfFORMAT_FEATURE_BLIT_SRC_BIT
is also set,VkImage
can be used as thesrcImage
toCmdBlitImage
with afilter
ofFILTER_LINEAR
. This bit must only be exposed for formats that also support theFORMAT_FEATURE_SAMPLED_IMAGE_BIT
orFORMAT_FEATURE_BLIT_SRC_BIT
.If the format being queried is a depth/stencil format, this bit only indicates that the depth aspect (not the stencil aspect) supports linear filtering, and that linear filtering of the depth aspect is supported whether depth compare is enabled in the sampler or not. If this bit is not present, linear filtering with depth compare disabled is unsupported and linear filtering with depth compare enabled is supported, but may compute the filtered value in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range
[0,1]
and should be proportional to, or a weighted average of, the number of comparison passes or failures.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
public static final int VK_IMAGE_USAGE_TRANSFER_SRC_BIT
Indicates that the image can be used as the source of a transfer command.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_TRANSFER_DST_BIT
public static final int VK_IMAGE_USAGE_TRANSFER_DST_BIT
Indicates that the image can be used as the destination of a transfer command.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_SAMPLED_BIT
public static final int VK_IMAGE_USAGE_SAMPLED_BIT
Indicates that the image can be used to create aVkImageView
suitable for occupying aVkDescriptorSet
slot either of typeDESCRIPTOR_TYPE_SAMPLED_IMAGE
orDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, and be sampled by a shader.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_STORAGE_BIT
public static final int VK_IMAGE_USAGE_STORAGE_BIT
Indicates that the image can be used to create aVkImageView
suitable for occupying aVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_STORAGE_IMAGE
.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
public static final int VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
Indicates that the image can be used to create aVkImageView
suitable for use as a color or resolve attachment in aVkFramebuffer
.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
public static final int VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
Indicates that the image can be used to create aVkImageView
suitable for use as a depth/stencil attachment in aVkFramebuffer
.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
public static final int VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
Indicates that the memory bound to this image will have been allocated with theMEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
. If this is set, then bits other thanIMAGE_USAGE_COLOR_ATTACHMENT_BIT
,IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
, andIMAGE_USAGE_INPUT_ATTACHMENT_BIT
must not be set.- See Also:
- Constant Field Values
-
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
public static final int VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
Indicates that the image can be used to create aVkImageView
suitable for occupyingVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_INPUT_ATTACHMENT
; be read from a shader as an input attachment; and be used as an input attachment in a framebuffer.- See Also:
- Constant Field Values
-
VK_IMAGE_CREATE_SPARSE_BINDING_BIT
public static final int VK_IMAGE_CREATE_SPARSE_BINDING_BIT
Indicates that the image will be backed using sparse memory binding.- See Also:
- Constant Field Values
-
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
public static final int VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
Indicates that the image can be partially backed using sparse memory binding. Images created with this flag must also be created with theIMAGE_CREATE_SPARSE_BINDING_BIT
flag.- See Also:
- Constant Field Values
-
VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
public static final int VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
Indicates that the image will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another image (or another portion of the same image). Images created with this flag must also be created with theIMAGE_CREATE_SPARSE_BINDING_BIT
flag.- See Also:
- Constant Field Values
-
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
public static final int VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
Indicates that the image can be used to create aVkImageView
with a different format from the image.- See Also:
- Constant Field Values
-
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
public static final int VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
Indicates that the image can be used to create aVkImageView
of typeIMAGE_VIEW_TYPE_CUBE
orIMAGE_VIEW_TYPE_CUBE_ARRAY
.- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_1_BIT
public static final int VK_SAMPLE_COUNT_1_BIT
1 sample per pixel. Standard sample locations:(0.5, 0.5)
- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_2_BIT
public static final int VK_SAMPLE_COUNT_2_BIT
2 samples per pixel. Standard sample locations:(0.25, 0.25) (0.75, 0.75)
- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_4_BIT
public static final int VK_SAMPLE_COUNT_4_BIT
4 samples per pixel. Standard sample locations:(0.375, 0.125) (0.875, 0.375) (0.125, 0.625) (0.625, 0.875)
- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_8_BIT
public static final int VK_SAMPLE_COUNT_8_BIT
8 samples per pixel. Standard sample locations:(0.5625, 0.3125) (0.4375, 0.6875) (0.8125, 0.5625) (0.3125, 0.1875) (0.1875, 0.8125) (0.0625, 0.4375) (0.6875, 0.9375) (0.9375, 0.0625)
- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_16_BIT
public static final int VK_SAMPLE_COUNT_16_BIT
16 samples per pixel. Standard sample locations:(0.5625, 0.5625) (0.4375, 0.3125) (0.3125, 0.625) (0.75, 0.4375) (0.1875, 0.375) (0.625, 0.8125) (0.8125, 0.6875) (0.6875, 0.1875) (0.375, 0.875) (0.5, 0.0625) (0.25, 0.125) (0.125, 0.75) (0.0, 0.5) (0.9375, 0.25) (0.875, 0.9375) (0.0625, 0.0)
- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_32_BIT
public static final int VK_SAMPLE_COUNT_32_BIT
32 samples per pixel.- See Also:
- Constant Field Values
-
VK_SAMPLE_COUNT_64_BIT
public static final int VK_SAMPLE_COUNT_64_BIT
64 samples per pixel.- See Also:
- Constant Field Values
-
VK_QUEUE_GRAPHICS_BIT
public static final int VK_QUEUE_GRAPHICS_BIT
If set, then the queues in this queue family support graphics operations.- See Also:
- Constant Field Values
-
VK_QUEUE_COMPUTE_BIT
public static final int VK_QUEUE_COMPUTE_BIT
If set, then the queues in this queue family support compute operations.- See Also:
- Constant Field Values
-
VK_QUEUE_TRANSFER_BIT
public static final int VK_QUEUE_TRANSFER_BIT
If set, then the queues in this queue family support transfer operations.- See Also:
- Constant Field Values
-
VK_QUEUE_SPARSE_BINDING_BIT
public static final int VK_QUEUE_SPARSE_BINDING_BIT
If set, then the queues in this queue family support sparse memory management operations. If any of the sparse resource features are enabled, then at least one queue family must support this bit.- See Also:
- Constant Field Values
-
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
public static final int VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
If set, memory allocated with this type is the most efficient for device access. This property will only be set for memory types belonging to heaps with theMEMORY_HEAP_DEVICE_LOCAL_BIT
set.- See Also:
- Constant Field Values
-
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
public static final int VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
If set, memory allocated with this type can be mapped usingMapMemory
so that it can be accessed on the host.- See Also:
- Constant Field Values
-
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
public static final int VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
If set, host cache management commandsFlushMappedMemoryRanges
andInvalidateMappedMemoryRanges
are not needed to make host writes visible to the device or device writes visible to the host, respectively.- See Also:
- Constant Field Values
-
VK_MEMORY_PROPERTY_HOST_CACHED_BIT
public static final int VK_MEMORY_PROPERTY_HOST_CACHED_BIT
If set, memory allocated with this type is cached on the host. Host memory accesses to uncached memory are slower than to cached memory, however uncached memory is always host coherent.- See Also:
- Constant Field Values
-
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
public static final int VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
If set, the memory type only allows device access to the memory. Memory types must not have bothMEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
andMEMORY_PROPERTY_HOST_VISIBLE_BIT
set. Additionally, the object's backing memory may be provided by the implementation lazily.- See Also:
- Constant Field Values
-
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
public static final int VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
Means the heap corresponds to device local memory. Device local memory may have different performance characteristics than host local memory, and may support different memory property flags.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
public static final int VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
Stage of the pipeline where commands are initially received by the queue.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
public static final int VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
Stage of the pipeline where Draw/DispatchIndirect data structures are consumed.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
public static final int VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
Stage of the pipeline where vertex and index buffers are consumed.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
public static final int VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
Vertex shader stage.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
public static final int VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
Tessellation control shader stage.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
public static final int VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
Tessellation evaluation shader stage.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
public static final int VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
Geometry shader stage.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
public static final int VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
Fragment shader stage.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
public static final int VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
Stage of the pipeline where early fragment tests (depth and stencil tests before fragment shading) are performed.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
public static final int VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
Stage of the pipeline where late fragment tests (depth and stencil tests after fragment shading) are performed.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
public static final int VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
Stage of the pipeline after blending where the final color values are output from the pipeline. This stage also includes resolve operations that occur at the end of a subpass. Note that this does not necessarily indicate that the values have been committed to memory.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
public static final int VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
Execution of a compute shader.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_TRANSFER_BIT
public static final int VK_PIPELINE_STAGE_TRANSFER_BIT
Execution of copy commands. This includes the operations resulting from all transfer commands. The set of transfer commands comprisesCmdCopyBuffer
,CmdCopyImage
,CmdBlitImage
,CmdCopyBufferToImage
,CmdCopyImageToBuffer
,CmdUpdateBuffer
,CmdFillBuffer
,CmdClearColorImage
,CmdClearDepthStencilImage
,CmdResolveImage
, andCmdCopyQueryPoolResults
.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
public static final int VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
Final stage in the pipeline where commands complete execution.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_HOST_BIT
public static final int VK_PIPELINE_STAGE_HOST_BIT
A pseudo-stage indicating execution on the host of reads/writes of device memory.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
public static final int VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
Execution of all graphics pipeline stages.- See Also:
- Constant Field Values
-
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
public static final int VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
Execution of all stages supported on the queue.- See Also:
- Constant Field Values
-
VK_IMAGE_ASPECT_COLOR_BIT
public static final int VK_IMAGE_ASPECT_COLOR_BIT
VkImageAspectFlagBits- See Also:
- Constant Field Values
-
VK_IMAGE_ASPECT_DEPTH_BIT
public static final int VK_IMAGE_ASPECT_DEPTH_BIT
VkImageAspectFlagBits- See Also:
- Constant Field Values
-
VK_IMAGE_ASPECT_STENCIL_BIT
public static final int VK_IMAGE_ASPECT_STENCIL_BIT
VkImageAspectFlagBits- See Also:
- Constant Field Values
-
VK_IMAGE_ASPECT_METADATA_BIT
public static final int VK_IMAGE_ASPECT_METADATA_BIT
VkImageAspectFlagBits- See Also:
- Constant Field Values
-
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
public static final int VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
If set, the image uses a single mip tail region for all array layers.- See Also:
- Constant Field Values
-
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
public static final int VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
If set, the first mip level that is not an exact multiple of the sparse image block size begins the mip tail region.- See Also:
- Constant Field Values
-
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
public static final int VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
If set, the image uses a non-standard sparse block size, and the imageGranularity values do not match the standard block size for the given pixel format.- See Also:
- Constant Field Values
-
VK_SPARSE_MEMORY_BIND_METADATA_BIT
public static final int VK_SPARSE_MEMORY_BIND_METADATA_BIT
Is used to indicate that the memory being bound is only for the metadata aspect.- See Also:
- Constant Field Values
-
VK_FENCE_CREATE_SIGNALED_BIT
public static final int VK_FENCE_CREATE_SIGNALED_BIT
If set, then the fence object is created in the signaled state. Otherwise it is created in the unsignaled state.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
If set, queries managed by the pool will count the number of vertices processed by the input assembly stage. Vertices corresponding to incomplete primitives may contribute to the count.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
If set, queries managed by the pool will count the number of primitives processed by the input assembly stage. If primitive restart is enabled, restarting the primitive topology has no effect on the count. Incomplete primitives may be counted.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of vertex shader invocations. This counter’s value is incremented each time a vertex shader is invoked.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of geometry shader invocations. This counter’s value is incremented each time a geometry shader is invoked. In the case of instanced geometry shaders, the geometry shader invocations count is incremented for each separate instanced invocation.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
If set, queries managed by the pool will count the number of primitives generated by geometry shader invocations. The counter’s value is incremented each time the geometry shader emits a primitive. Restarting primitive topology using the SPIR-V instructionsOpEndPrimitive
orOpEndStreamPrimitive
has no effect on the geometry shader output primitives count.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of primitives processed by the Primitive Clipping stage of the pipeline. The counter’s value is incremented each time a primitive reaches the primitive clipping stage.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
IF set, queries managed by the pool will count the number of primitives output by the Primitive Clipping stage of the pipeline. The counter’s value is incremented each time a primitive passes the primitive clipping stage. The actual number of primitives output by the primitive clipping stage for a particular input primitive is implementation-dependent but must satisfy the following conditions:- If at least one vertex of the input primitive lies inside the clipping volume, the counter is incremented by one or more.
- Otherwise, the counter is incremented by zero or more.
- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
IF set, queries managed by the pool will count the number of fragment shader invocations. The counter’s value is incremented each time the fragment shader is invoked.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
If set, queries managed by the pool will count the number of patches processed by the tessellation control shader. The counter’s value is incremented once for each patch for which a tessellation control shader is invoked.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of invocations of the tessellation evaluation shader. The counter’s value is incremented each time the tessellation evaluation shader is invoked.- See Also:
- Constant Field Values
-
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
public static final int VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
If set, queries managed by the pool will count the number of compute shader invocations. The counter’s value is incremented every time the compute shader is invoked. Implementations may skip the execution of certain compute shader invocations or execute additional compute shader invocations for implementation-dependent reasons as long as the results of rendering otherwise remain unchanged.- See Also:
- Constant Field Values
-
VK_QUERY_RESULT_64_BIT
public static final int VK_QUERY_RESULT_64_BIT
Indicates the results will be written as an array of 64-bit unsigned integer values. If this bit is not set, the results will be written as an array of 32-bit unsigned integer values.- See Also:
- Constant Field Values
-
VK_QUERY_RESULT_WAIT_BIT
public static final int VK_QUERY_RESULT_WAIT_BIT
Indicates that Vulkan will wait for each query’s status to become available before retrieving its results.- See Also:
- Constant Field Values
-
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
public static final int VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
Indicates that the availability status accompanies the results.- See Also:
- Constant Field Values
-
VK_QUERY_RESULT_PARTIAL_BIT
public static final int VK_QUERY_RESULT_PARTIAL_BIT
Indicates that returning partial results is acceptable.- See Also:
- Constant Field Values
-
VK_BUFFER_CREATE_SPARSE_BINDING_BIT
public static final int VK_BUFFER_CREATE_SPARSE_BINDING_BIT
Indicates that the buffer will be backed using sparse memory binding.- See Also:
- Constant Field Values
-
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
public static final int VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
Indicates that the buffer can be partially backed using sparse memory binding. Buffers created with this flag must also be created with theBUFFER_CREATE_SPARSE_BINDING_BIT
flag.- See Also:
- Constant Field Values
-
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
public static final int VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
Iindicates that the buffer will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another buffer (or another portion of the same buffer). Buffers created with this flag must also be created with theBUFFER_CREATE_SPARSE_BINDING_BIT
flag.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_TRANSFER_SRC_BIT
public static final int VK_BUFFER_USAGE_TRANSFER_SRC_BIT
Indicates that the buffer can be used as the source of a transfer command.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_TRANSFER_DST_BIT
public static final int VK_BUFFER_USAGE_TRANSFER_DST_BIT
Indicates that the buffer can be used as the destination of a transfer command.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
public static final int VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
Indicates that the buffer can be used to create aVkBufferView
suitable for occupying aVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
public static final int VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
Indicates that the buffer can be used to create aVkBufferView
suitable for occupying aVkDescriptorSet
slot of typeDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
public static final int VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
Indicates that the buffer can be used in aVkDescriptorBufferInfo
suitable for occupying aVkDescriptorSet
slot either of typeDESCRIPTOR_TYPE_UNIFORM_BUFFER
orDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
public static final int VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
Indicates that the buffer can be used in aVkDescriptorBufferInfo
suitable for occupying aVkDescriptorSet
slot either of typeDESCRIPTOR_TYPE_STORAGE_BUFFER
orDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_INDEX_BUFFER_BIT
public static final int VK_BUFFER_USAGE_INDEX_BUFFER_BIT
Indicates that the buffer is suitable for passing as thebuffer
parameter toCmdBindIndexBuffer
.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
public static final int VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
Indicates that the buffer is suitable for passing as an element of thepBuffers
array toCmdBindVertexBuffers
.- See Also:
- Constant Field Values
-
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
public static final int VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
Indicates that the buffer is suitable for passing as thebuffer
parameter toCmdDrawIndirect
,CmdDrawIndexedIndirect
, orCmdDispatchIndirect
.- See Also:
- Constant Field Values
-
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
public static final int VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
Specifies that the created pipeline will not be optimized. Using this flag may reduce the time taken to create the pipeline.- See Also:
- Constant Field Values
-
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
public static final int VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
Specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent call toCreateGraphicsPipelines
.- See Also:
- Constant Field Values
-
VK_PIPELINE_CREATE_DERIVATIVE_BIT
public static final int VK_PIPELINE_CREATE_DERIVATIVE_BIT
Specifies that the pipeline to be created will be a child of a previously created parent pipeline.- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_VERTEX_BIT
public static final int VK_SHADER_STAGE_VERTEX_BIT
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
public static final int VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
public static final int VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_GEOMETRY_BIT
public static final int VK_SHADER_STAGE_GEOMETRY_BIT
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_FRAGMENT_BIT
public static final int VK_SHADER_STAGE_FRAGMENT_BIT
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_COMPUTE_BIT
public static final int VK_SHADER_STAGE_COMPUTE_BIT
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_ALL_GRAPHICS
public static final int VK_SHADER_STAGE_ALL_GRAPHICS
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_SHADER_STAGE_ALL
public static final int VK_SHADER_STAGE_ALL
VkShaderStageFlagBits- See Also:
- Constant Field Values
-
VK_CULL_MODE_NONE
public static final int VK_CULL_MODE_NONE
If set, no triangles are discarded.- See Also:
- Constant Field Values
-
VK_CULL_MODE_FRONT_BIT
public static final int VK_CULL_MODE_FRONT_BIT
If set, front-facing triangles are discarded.- See Also:
- Constant Field Values
-
VK_CULL_MODE_BACK_BIT
public static final int VK_CULL_MODE_BACK_BIT
If set, back-facing triangles are discarded.- See Also:
- Constant Field Values
-
VK_CULL_MODE_FRONT_AND_BACK
public static final int VK_CULL_MODE_FRONT_AND_BACK
If set, all triangles are discarded.- See Also:
- Constant Field Values
-
VK_COLOR_COMPONENT_R_BIT
public static final int VK_COLOR_COMPONENT_R_BIT
If set, then theR
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.- See Also:
- Constant Field Values
-
VK_COLOR_COMPONENT_G_BIT
public static final int VK_COLOR_COMPONENT_G_BIT
If set, then theG
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.- See Also:
- Constant Field Values
-
VK_COLOR_COMPONENT_B_BIT
public static final int VK_COLOR_COMPONENT_B_BIT
If set, then theB
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.- See Also:
- Constant Field Values
-
VK_COLOR_COMPONENT_A_BIT
public static final int VK_COLOR_COMPONENT_A_BIT
If set, then theA
value is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.- See Also:
- Constant Field Values
-
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
public static final int VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
If set, then descriptor sets can return their individual allocations to the pool, i.e. all ofAllocateDescriptorSets
,FreeDescriptorSets
, andResetDescriptorPool
are allowed. Otherwise, descriptor sets allocated from the pool must not be individually freed back to the pool, i.e. onlyAllocateDescriptorSets
andResetDescriptorPool
are allowed.- See Also:
- Constant Field Values
-
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
public static final int VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
If set, then the attachment is treated as if it shares physical memory with another attachment in the same render pass. This information limits the ability of the implementation to reorder certain operations (like layout transitions and theloadOp
) such that it is not improperly reordered against other uses of the same physical memory via a different attachment. This is described in more detail below.If a render pass uses multiple attachments that alias the same device memory, those attachments must each include the
ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
bit in their attachment description flags. Attachments aliasing the same memory occurs in multiple ways:- Multiple attachments being assigned the same image view as part of framebuffer creation.
- Attachments using distinct image views that correspond to the same image subresource of an image.
- Attachments using views of distinct image subresources which are bound to overlapping memory.
Render passes must include subpass dependencies (either directly or via a subpass dependency chain) between any two subpasses that operate on the same attachment or aliasing attachments and those subpass dependencies must include execution and memory dependencies separating uses of the aliases, if at least one of those subpasses writes to one of the aliases. Those dependencies must not include the
DEPENDENCY_BY_REGION_BIT
if the aliases are views of distinct image subresources which overlap in memory.Multiple attachments that alias the same memory must not be used in a single subpass. A given attachment index must not be used multiple times in a single subpass, with one exception: two subpass attachments can use the same attachment index if at least one use is as an input attachment and neither use is as a resolve or preserve attachment. In other words, the same view can be used simultaneously as an input and color or depth/stencil attachment, but must not be used as multiple color or depth/stencil attachments nor as resolve or preserve attachments.
If a set of attachments alias each other, then all except the first to be used in the render pass must use an initialLayout of
IMAGE_LAYOUT_UNDEFINED
, since the earlier uses of the other aliases make their contents undefined. Once an alias has been used and a different alias has been used after it, the first alias must not be used in any later subpasses. However, an application can assign the same image view to multiple aliasing attachment indices, which allows that image view to be used multiple times even if other aliases are used in between. Once an attachment needs theATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
bit, there should be no additional cost of introducing additional aliases, and using these additional aliases may allow more efficient clearing of the attachments on multiple uses viaATTACHMENT_LOAD_OP_CLEAR
.Note
The exact set of attachment indices that alias with each other is not known until a framebuffer is created using the render pass, so the above conditions cannot be validated at render pass creation time.
- See Also:
- Constant Field Values
-
VK_ACCESS_INDIRECT_COMMAND_READ_BIT
public static final int VK_ACCESS_INDIRECT_COMMAND_READ_BIT
Indicates that the access is an indirect command structure read as part of an indirect drawing command.- See Also:
- Constant Field Values
-
VK_ACCESS_INDEX_READ_BIT
public static final int VK_ACCESS_INDEX_READ_BIT
Indicates that the access is an index buffer read.- See Also:
- Constant Field Values
-
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
public static final int VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
Indicates that the access is a read via the vertex input bindings.- See Also:
- Constant Field Values
-
VK_ACCESS_UNIFORM_READ_BIT
public static final int VK_ACCESS_UNIFORM_READ_BIT
Indicates that the access is a read via a uniform buffer or dynamic uniform buffer descriptor.- See Also:
- Constant Field Values
-
VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
public static final int VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
Indicates that the access is a read via an input attachment descriptor.- See Also:
- Constant Field Values
-
VK_ACCESS_SHADER_READ_BIT
public static final int VK_ACCESS_SHADER_READ_BIT
Indicates that the access is a read from a shader via any other descriptor type.- See Also:
- Constant Field Values
-
VK_ACCESS_SHADER_WRITE_BIT
public static final int VK_ACCESS_SHADER_WRITE_BIT
Indicates that the access is a write or atomic from a shader via the same descriptor types as inACCESS_SHADER_READ_BIT
.- See Also:
- Constant Field Values
-
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
public static final int VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
Indicates that the access is a read via a color attachment.- See Also:
- Constant Field Values
-
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
public static final int VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
Indicates that the access is a write via a color or resolve attachment.- See Also:
- Constant Field Values
-
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
public static final int VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
Indicates that the access is a read via a depth/stencil attachment.- See Also:
- Constant Field Values
-
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
public static final int VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
Indicates that the access is a write via a depth/stencil attachment.- See Also:
- Constant Field Values
-
VK_ACCESS_TRANSFER_READ_BIT
public static final int VK_ACCESS_TRANSFER_READ_BIT
Indicates that the access is a read from a transfer (copy, blit, resolve, etc.) operation. For the complete set of transfer operations, seePIPELINE_STAGE_TRANSFER_BIT
.- See Also:
- Constant Field Values
-
VK_ACCESS_TRANSFER_WRITE_BIT
public static final int VK_ACCESS_TRANSFER_WRITE_BIT
Indicates that the access is a write from a transfer (copy, blit, resolve, etc.) operation. For the complete set of transfer operations, seePIPELINE_STAGE_TRANSFER_BIT
.- See Also:
- Constant Field Values
-
VK_ACCESS_HOST_READ_BIT
public static final int VK_ACCESS_HOST_READ_BIT
Indicates that the access is a read via the host.- See Also:
- Constant Field Values
-
VK_ACCESS_HOST_WRITE_BIT
public static final int VK_ACCESS_HOST_WRITE_BIT
Indicates that the access is a write via the host.- See Also:
- Constant Field Values
-
VK_ACCESS_MEMORY_READ_BIT
public static final int VK_ACCESS_MEMORY_READ_BIT
Indicates that the access is a read via a non-specific unit attached to the memory. This unit may be external to the Vulkan device or otherwise not part of the core Vulkan pipeline. When included indstAccessMask
, all writes using access types insrcAccessMask
performed by pipeline stages insrcStageMask
must be visible in memory.- See Also:
- Constant Field Values
-
VK_ACCESS_MEMORY_WRITE_BIT
public static final int VK_ACCESS_MEMORY_WRITE_BIT
Indicates that the access is a write via a non-specific unit attached to the memory. This unit may be external to the Vulkan device or otherwise not part of the core Vulkan pipeline. When included insrcAccessMask
, all access types indstAccessMask
from pipeline stages indstStageMask
will observe the side effects of commands that executed before the barrier. When included indstAccessMask
all writes using access types insrcAccessMask
performed by pipeline stages insrcStageMask
must be visible in memory.- See Also:
- Constant Field Values
-
VK_DEPENDENCY_BY_REGION_BIT
public static final int VK_DEPENDENCY_BY_REGION_BIT
If set, then the dependency is by-region.- See Also:
- Constant Field Values
-
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
public static final int VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
Indicates that command buffers allocated from the pool will be short-lived, meaning that they will be reset or freed in a relatively short timeframe. This flag may be used by the implementation to control memory allocation behavior within the pool.- See Also:
- Constant Field Values
-
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
public static final int VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Controls whether command buffers allocated from the pool can be individually reset. If this flag is set, individual command buffers allocated from the pool can be reset either explicitly, by callingResetCommandBuffer
, or implicitly, by callingBeginCommandBuffer
on an executable command buffer. If this flag is not set, thenResetCommandBuffer
andBeginCommandBuffer
(on an executable command buffer) must not be called on the command buffers allocated from the pool, and they can only be reset in bulk by callingResetCommandPool
.- See Also:
- Constant Field Values
-
VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
public static final int VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
If set, resetting a command pool recycles all of the resources from the command pool back to the system.- See Also:
- Constant Field Values
-
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
public static final int VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
Indicates that each recording of the command buffer will only be submitted once, and the command buffer will be reset and recorded again between each submission.- See Also:
- Constant Field Values
-
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
public static final int VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
Indicates that a secondary command buffer is considered to be entirely inside a render pass. If this is a primary command buffer, then this bit is ignored.- See Also:
- Constant Field Values
-
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
public static final int VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
Allows the command buffer to be resubmitted to a queue or recorded into a primary command buffer while it is pending execution.- See Also:
- Constant Field Values
-
VK_QUERY_CONTROL_PRECISE_BIT
public static final int VK_QUERY_CONTROL_PRECISE_BIT
If set, an implementation must return a result that matches the actual number of samples passed.- See Also:
- Constant Field Values
-
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
public static final int VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
If set, then most or all memory resources currently owned by the command buffer should be returned to the parent command pool. If this flag is not set, then the command buffer may hold onto memory resources and reuse them when recording commands.- See Also:
- Constant Field Values
-
VK_STENCIL_FACE_FRONT_BIT
public static final int VK_STENCIL_FACE_FRONT_BIT
Indicates that only the front set of stencil state is updated.- See Also:
- Constant Field Values
-
VK_STENCIL_FACE_BACK_BIT
public static final int VK_STENCIL_FACE_BACK_BIT
Indicates that only the back set of stencil state is updated.- See Also:
- Constant Field Values
-
VK_STENCIL_FRONT_AND_BACK
public static final int VK_STENCIL_FRONT_AND_BACK
Is the combination ofSTENCIL_FACE_FRONT_BIT
andSTENCIL_FACE_BACK_BIT
and indicates that both sets of stencil state are updated.- See Also:
- Constant Field Values
-
-
Method Detail
-
vkCreateInstance
public static int vkCreateInstance(VkInstanceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pInstance)
Creates a new Vulkan instance.There is no global state in Vulkan and all per-application state is stored in a
VkInstance
object. Creating aVkInstance
object initializes the Vulkan library and allows the application to pass information about itself to the implementation.vkCreateInstance
creates the instance, then enables and initializes global layers and extensions requested by the application. If an extension is provided by a layer, both the layer and extension must be specified atvkCreateInstance
time.Valid Usage
pCreateInfo
must be a pointer to a validVkInstanceCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pInstance
must be a pointer to aVkInstance
handle
- Parameters:
pCreateInfo
- points to an instance ofVkInstanceCreateInfo
controlling creation of the instancepAllocator
- controls host memory allocationpInstance
- a pointer to aVkInstance
handle in which the resulting instance is returned
-
vkDestroyInstance
public static void vkDestroyInstance(VkInstance instance, VkAllocationCallbacks pAllocator)
Destroys an instance of Vulkan.After destruction of the instance, all devices (logical and physical) and any objects created by those devices become invalid and should not be accessed. However, objects allocated directly or indirectly through the instance are not destroyed automatically and so may be leaked. Applications should destroy all objects created through instance before destroying the instance itself.
Valid Usage
- If
instance
is notNULL
,instance
must be a validVkInstance
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - All child objects created using
instance
must have been destroyed prior to destroyinginstance
- If
VkAllocationCallbacks
were provided wheninstance
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided wheninstance
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
instance
must be externally synchronized
- Parameters:
instance
- the handle of the instance to destroypAllocator
- controls host memory allocation
- If
-
vkEnumeratePhysicalDevices
public static int vkEnumeratePhysicalDevices(VkInstance instance, java.nio.IntBuffer pPhysicalDeviceCount, PointerBuffer pPhysicalDevices)
Retrieves a list of physical device objects representing the physical devices installed in the system.If
pPhysicalDevices
isNULL
, then the number of physical devices available is returned inpPhysicalDeviceCount
. Otherwise,pPhysicalDeviceCount
must point to a variable set by the user to the number of elements in thepPhysicalDevices
array, and on return the variable is overwritten with the number of structures actually written topPhysicalDevices
. IfpPhysicalDeviceCount
is less than the number of physical devices available, at mostpPhysicalDeviceCount
structures will be written. IfpPhysicalDeviceCount
is smaller than the number of physical devices available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available physical devices were returned.Once enumerated, general properties of the physical devices are queried by calling
GetPhysicalDeviceProperties
.Valid Usage
instance
must be a validVkInstance
handlepPhysicalDeviceCount
must be a pointer to auint32_t
value- If the value referenced by
pPhysicalDeviceCount
is not 0, andpPhysicalDevices
is notNULL
,pPhysicalDevices
must be a pointer to an array ofpPhysicalDeviceCount
VkPhysicalDevice
handles
- Parameters:
instance
- a handle to a Vulkan instance previously created withCreateInstance
pPhysicalDeviceCount
- a pointer to an integer related to the number of physical devices available or queriedpPhysicalDevices
- eitherNULL
or a pointer to an array ofVkPhysicalDevice
handles
-
vkGetPhysicalDeviceFeatures
public static void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures pFeatures)
Reports capabilities of a physical device.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handlepFeatures
must be a pointer to aVkPhysicalDeviceFeatures
structure
- Parameters:
physicalDevice
- the handle to the physical device whose properties will be queriedpFeatures
- points to an instance of theVkPhysicalDeviceProperties
structure, that will be filled with returned information
-
vkGetPhysicalDeviceFormatProperties
public static void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, int format, VkFormatProperties pFormatProperties)
Lists physical device’s format capabilities.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handleformat
must be a validVkFormat
valuepFormatProperties
must be a pointer to aVkFormatProperties
structure
- Parameters:
physicalDevice
- the physical device from which to query the format propertiesformat
- the format whose properties are queriedpFormatProperties
- a pointer to aVkFormatProperties
structure in which physical device properties for format are returned
-
vkGetPhysicalDeviceImageFormatProperties
public static int vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int tiling, int usage, int flags, VkImageFormatProperties pImageFormatProperties)
Lists physical device's image format capabilities.In addition to the minimum capabilities, implementations may support additional capabilities for certain types of images. For example, larger dimensions or additional sample counts for certain image types, or additional capabilities for linear tiling format images.
The
format
,type
,tiling
,usage
, andflags
parameters correspond to parameters that would be consumed byCreateImage
.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handleformat
must be a validVkFormat
valuetype
must be a validVkImageType
valuetiling
must be a validVkImageTiling
valueusage
must be a valid combination ofVkImageUsageFlagBits
valuesusage
must not be 0flags
must be a valid combination ofVkImageCreateFlagBits
valuespImageFormatProperties
must be a pointer to aVkImageFormatProperties
structure
- Parameters:
physicalDevice
- the physical device from which to query the image capabilitiesformat
- the image format, corresponding toVkImageCreateInfo.format
type
- the image type, corresponding toVkImageCreateInfo.imageType
. One of:IMAGE_TYPE_1D
IMAGE_TYPE_2D
IMAGE_TYPE_3D
tiling
- the image tiling, corresponding toVkImageCreateInfo.tiling
. One of:IMAGE_TILING_OPTIMAL
IMAGE_TILING_LINEAR
usage
- the intended usage of the image, corresponding toVkImageCreateInfo.usage
. One or more of:flags
- a bitfield describing additional parameters of the image, corresponding toVkImageCreateInfo.flags
. One or more of:IMAGE_CREATE_SPARSE_BINDING_BIT
IMAGE_CREATE_SPARSE_RESIDENCY_BIT
IMAGE_CREATE_SPARSE_ALIASED_BIT
IMAGE_CREATE_MUTABLE_FORMAT_BIT
IMAGE_CREATE_CUBE_COMPATIBLE_BIT
pImageFormatProperties
- points to an instance of theVkImageFormatProperties
structure in which capabilities are returned
-
vkGetPhysicalDeviceProperties
public static void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties pProperties)
Returns properties of a physical device.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handlepProperties
must be a pointer to aVkPhysicalDeviceProperties
structure
- Parameters:
physicalDevice
- the handle to the physical device whose properties will be queriedpProperties
- points to an instance of theVkPhysicalDeviceProperties
structure, that will be filled with returned information
-
vkGetPhysicalDeviceQueueFamilyProperties
public static void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pQueueFamilyPropertyCount, VkQueueFamilyProperties.Buffer pQueueFamilyProperties)
Reports properties of the queues of the specified physical device.If
pQueueFamilyProperties
isNULL
, then the number of queue families available is returned inpQueueFamilyPropertyCount
. Otherwise,pQueueFamilyPropertyCount
must point to a variable set by the user to the number of elements in thepQueueFamilyProperties
array, and on return the variable is overwritten with the number of structures actually written topQueueFamilyProperties
. If the value ofpQueueFamilyPropertyCount
is less than the number of queue families available, at mostpQueueFamilyPropertyCount
structures will be written.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handlepQueueFamilyPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pQueueFamilyPropertyCount
is not 0, andpQueueFamilyProperties
is notNULL
,pQueueFamilyProperties
must be a pointer to an array ofpQueueFamilyPropertyCount
VkQueueFamilyProperties
structures
- Parameters:
physicalDevice
- the handle to the physical device whose properties will be queriedpQueueFamilyPropertyCount
- a pointer to an integer related to the number of queue families available or queriedpQueueFamilyProperties
- eitherNULL
or a pointer to an array ofVkQueueFamilyProperties
structures
-
vkGetPhysicalDeviceMemoryProperties
public static void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties pMemoryProperties)
Reports memory information for the specified physical device.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handlepMemoryProperties
must be a pointer to aVkPhysicalDeviceMemoryProperties
structure
- Parameters:
physicalDevice
- the handle to the device to querypMemoryProperties
- points to an instance ofVkPhysicalDeviceMemoryProperties
structure in which the properties are returned
-
vkGetInstanceProcAddr
public static long vkGetInstanceProcAddr(VkInstance instance, java.nio.ByteBuffer pName)
Returns a function pointer for a command.Valid Usage
- If
instance
is notNULL
,instance
must be a validVkInstance
handle pName
must be a null-terminated string- If
instance
isNULL
,pName
must be one of:EnumerateInstanceExtensionProperties
,EnumerateInstanceLayerProperties
orCreateInstance
- If
instance
is notNULL
,pName
must be the name of a core command or a command from an enabled extension, other than:EnumerateInstanceExtensionProperties
,EnumerateInstanceLayerProperties
orCreateInstance
LWJGL Note
LWJGL requires a non-
NULL
instance
argument when calling this method. IfNULL
must be used, do the following:long GetInstanceProcAddr = VK.getFunctionProvider().getFunctionAddress("vkGetInstanceProcAddr"); long command = JNI.callPPP(GetInstanceProcAddr, NULL, pName);
- Parameters:
instance
- the instance that the function pointer will be compatible withpName
- the name of the command to obtain
- If
-
vkGetInstanceProcAddr
public static long vkGetInstanceProcAddr(VkInstance instance, java.lang.CharSequence pName)
Returns a function pointer for a command.Valid Usage
- If
instance
is notNULL
,instance
must be a validVkInstance
handle pName
must be a null-terminated string- If
instance
isNULL
,pName
must be one of:EnumerateInstanceExtensionProperties
,EnumerateInstanceLayerProperties
orCreateInstance
- If
instance
is notNULL
,pName
must be the name of a core command or a command from an enabled extension, other than:EnumerateInstanceExtensionProperties
,EnumerateInstanceLayerProperties
orCreateInstance
LWJGL Note
LWJGL requires a non-
NULL
instance
argument when calling this method. IfNULL
must be used, do the following:long GetInstanceProcAddr = VK.getFunctionProvider().getFunctionAddress("vkGetInstanceProcAddr"); long command = JNI.callPPP(GetInstanceProcAddr, NULL, pName);
- Parameters:
instance
- the instance that the function pointer will be compatible withpName
- the name of the command to obtain
- If
-
vkGetDeviceProcAddr
public static long vkGetDeviceProcAddr(VkDevice device, java.nio.ByteBuffer pName)
Returns a device-specific function pointer for a command.In order to support systems with multiple Vulkan implementations comprising heterogeneous collections of hardware and software, the function pointers returned by
GetInstanceProcAddr
may point to dispatch code, which calls a different real implementation for differentVkDevice
objects (and objects created from them). The overhead of this internal dispatch can be avoided by obtaining device-specific function pointers for any commands that use a device or device-child object as their dispatchable object.Valid Usage
device
must be a validVkDevice
handlepName
must be a null-terminated stringpName
must be the name of a supported command that has a first parameter of typeVkDevice
,VkQueue
orVkCommandBuffer
, either in the core API or an enabled extension
LWJGL Note
The function pointers used by LWJGL for commands that have a first parameter of type
VkDevice
,VkQueue
orVkCommandBuffer
, have been acquired using this command.- Parameters:
device
- the logical device that provides the function pointerpName
- the name of any Vulkan command whose first parameter is one ofIf
pName
is not the name of one of these Vulkan commands, and is not the name of an extension command belonging to an extension enabled for device, thenvkGetDeviceProcAddr
will returnNULL
.
-
vkGetDeviceProcAddr
public static long vkGetDeviceProcAddr(VkDevice device, java.lang.CharSequence pName)
Returns a device-specific function pointer for a command.In order to support systems with multiple Vulkan implementations comprising heterogeneous collections of hardware and software, the function pointers returned by
GetInstanceProcAddr
may point to dispatch code, which calls a different real implementation for differentVkDevice
objects (and objects created from them). The overhead of this internal dispatch can be avoided by obtaining device-specific function pointers for any commands that use a device or device-child object as their dispatchable object.Valid Usage
device
must be a validVkDevice
handlepName
must be a null-terminated stringpName
must be the name of a supported command that has a first parameter of typeVkDevice
,VkQueue
orVkCommandBuffer
, either in the core API or an enabled extension
LWJGL Note
The function pointers used by LWJGL for commands that have a first parameter of type
VkDevice
,VkQueue
orVkCommandBuffer
, have been acquired using this command.- Parameters:
device
- the logical device that provides the function pointerpName
- the name of any Vulkan command whose first parameter is one ofIf
pName
is not the name of one of these Vulkan commands, and is not the name of an extension command belonging to an extension enabled for device, thenvkGetDeviceProcAddr
will returnNULL
.
-
vkCreateDevice
public static int vkCreateDevice(VkPhysicalDevice physicalDevice, VkDeviceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pDevice)
Creates a new logical device instance.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handlepCreateInfo
must be a pointer to a validVkDeviceCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pDevice
must be a pointer to aVkDevice
handle
- Parameters:
physicalDevice
- must be one of the device handles returned from a call toEnumeratePhysicalDevices
pCreateInfo
- a pointer to aVkDeviceCreateInfo
structure containing information about how to create the devicepAllocator
- controls host memory allocationpDevice
- points to a handle in which the createdVkDevice
is returned
-
vkDestroyDevice
public static void vkDestroyDevice(VkDevice device, VkAllocationCallbacks pAllocator)
Destroys a logical device.To ensure that no work is active on the device,
DeviceWaitIdle
can be used to gate the destruction of the device. Prior to destroying a device, an application is responsible for destroying/freeing any Vulkan objects that were created using that device as the first parameter of the correspondingvkCreate*
orvkAllocate*
command.Note
The lifetime of each of these objects is bound by the lifetime of the
VkDevice
object. Therefore, to avoid resource leaks, it is critical that an application explicitly free all of these resources prior to callingvkDestroyDevice
.Valid Usage
- If
device
is notNULL
,device
must be a validVkDevice
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - All child objects created on
device
must have been destroyed prior to destroyingdevice
- If
VkAllocationCallbacks
were provided whendevice
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whendevice
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
device
must be externally synchronized
- Parameters:
device
- the logical device to destroypAllocator
- controls host memory allocation
- If
-
vkEnumerateInstanceExtensionProperties
public static int vkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
Queries the available instance extensions.Extensions may define new Vulkan commands, structures, and enumerants. For compilation purposes, the interfaces defined by registered extensions, including new structures and enumerants as well as function pointer types for new commands, are defined in the Khronos-supplied vulkan.h together with the core API. However, commands defined by extensions may not be available for static linking - in which case function pointers to these commands should be queried at runtime. Extensions may be provided by layers as well as by a Vulkan implementation.
If
pProperties
isNULL
, then the number of extensions properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. If the value ofpPropertyCount
is less than the number of extension properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of extensions available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available properties were returned.Valid Usage
- If
pLayerName
is notNULL
,pLayerName
must be a null-terminated string pPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkExtensionProperties
structures - If
pLayerName
is notNULL
, it must be the name of a layer returned byEnumerateInstanceLayerProperties
When
pLayerName
parameter isNULL
, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerName
is the name of a layer, the instance extensions provided by that layer are returned.To enable an instance extension, the name of the extension should be added to the
ppEnabledExtensionNames
member ofVkInstanceCreateInfo
when creating aVkInstance
.- Parameters:
pLayerName
- eitherNULL
or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions frompPropertyCount
- a pointer to an integer related to the number of extension properties available or queriedpProperties
- eitherNULL
or a pointer to an array ofVkExtensionProperties
structures
- If
-
vkEnumerateInstanceExtensionProperties
public static int vkEnumerateInstanceExtensionProperties(java.lang.CharSequence pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
Queries the available instance extensions.Extensions may define new Vulkan commands, structures, and enumerants. For compilation purposes, the interfaces defined by registered extensions, including new structures and enumerants as well as function pointer types for new commands, are defined in the Khronos-supplied vulkan.h together with the core API. However, commands defined by extensions may not be available for static linking - in which case function pointers to these commands should be queried at runtime. Extensions may be provided by layers as well as by a Vulkan implementation.
If
pProperties
isNULL
, then the number of extensions properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. If the value ofpPropertyCount
is less than the number of extension properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of extensions available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available properties were returned.Valid Usage
- If
pLayerName
is notNULL
,pLayerName
must be a null-terminated string pPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkExtensionProperties
structures - If
pLayerName
is notNULL
, it must be the name of a layer returned byEnumerateInstanceLayerProperties
When
pLayerName
parameter isNULL
, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerName
is the name of a layer, the instance extensions provided by that layer are returned.To enable an instance extension, the name of the extension should be added to the
ppEnabledExtensionNames
member ofVkInstanceCreateInfo
when creating aVkInstance
.- Parameters:
pLayerName
- eitherNULL
or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions frompPropertyCount
- a pointer to an integer related to the number of extension properties available or queriedpProperties
- eitherNULL
or a pointer to an array ofVkExtensionProperties
structures
- If
-
vkEnumerateDeviceExtensionProperties
public static int vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.nio.ByteBuffer pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
Queries the extensions available to a given physical device.If
pProperties
isNULL
, then the number of extensions properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. IfpPropertyCount
is less than the number of extension properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of extensions available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available properties were returned.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handle- If
pLayerName
is notNULL
,pLayerName
must be a null-terminated string pPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkExtensionProperties
structures - If
pLayerName
is notNULL
, it must be the name of a layer returned byEnumerateDeviceLayerProperties
When
pLayerName
parameter isNULL
, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerName
is the name of a layer, the device extensions provided by that layer are returned.To enable a device layer, the name of the layer should be added to the
ppEnabledExtensionNames
member ofVkDeviceCreateInfo
when creating aVkDevice
.- Parameters:
physicalDevice
- the physical device that will be queriedpLayerName
- eitherNULL
or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions frompPropertyCount
- a pointer to an integer related to the number of extension properties available or queriedpProperties
- eitherNULL
or a pointer to an array ofVkExtensionProperties
structures
-
vkEnumerateDeviceExtensionProperties
public static int vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.lang.CharSequence pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)
Queries the extensions available to a given physical device.If
pProperties
isNULL
, then the number of extensions properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. IfpPropertyCount
is less than the number of extension properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of extensions available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available properties were returned.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handle- If
pLayerName
is notNULL
,pLayerName
must be a null-terminated string pPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkExtensionProperties
structures - If
pLayerName
is notNULL
, it must be the name of a layer returned byEnumerateDeviceLayerProperties
When
pLayerName
parameter isNULL
, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerName
is the name of a layer, the device extensions provided by that layer are returned.To enable a device layer, the name of the layer should be added to the
ppEnabledExtensionNames
member ofVkDeviceCreateInfo
when creating aVkDevice
.- Parameters:
physicalDevice
- the physical device that will be queriedpLayerName
- eitherNULL
or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions frompPropertyCount
- a pointer to an integer related to the number of extension properties available or queriedpProperties
- eitherNULL
or a pointer to an array ofVkExtensionProperties
structures
-
vkEnumerateInstanceLayerProperties
public static int vkEnumerateInstanceLayerProperties(java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)
Queries the available instance layers.If
pProperties
isNULL
, then the number of layer properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. IfpPropertyCount
is less than the number of layer properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of layers available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available layer properties were returned.Valid Usage
pPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkLayerProperties
structures
To enable an instance layer, the name of the layer should be added to the
ppEnabledLayerNames
member ofVkInstanceCreateInfo
when creating aVkInstance
.When a layer is enabled, it inserts itself into the call chain for Vulkan commands the layer is interested in. A common use of layers is to validate application behavior during development. For example, the implementation will not check that Vulkan enums used by the application fall within allowed ranges. Instead, a validation layer would do those checks and flag issues. This avoids a performance penalty during production use of the application because those layers would not be enabled in production.
- Parameters:
pPropertyCount
- a pointer to an integer related to the number of layer properties available or queriedpProperties
- eitherNULL
or a pointer to an array ofVkLayerProperties
structures
-
vkEnumerateDeviceLayerProperties
public static int vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)
Queries the available device layers.If
pProperties
isNULL
, then the number of layer properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. If the value ofpPropertyCount
is less than the number of layer properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of layers available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available layer properties were returned.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handlepPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkLayerProperties
structures
To enable a device layer, the name of the layer should be added to the
ppEnabledLayerNames
member ofVkDeviceCreateInfo
when creating aVkDevice
.Loader implementations may provide mechanisms outside the Vulkan API for enabling specific layers. Layers enabled through such a mechanism are implicitly enabled, while layers enabled by including the layer name in the
ppEnabledLayerNames
member ofVkDeviceCreateInfo
are explicitly enabled. Except where otherwise specified, implicitly enabled and explicitly enabled layers differ only in the way they are enabled. Explicitly enabling a layer that is implicitly enabled has no additional effect.- Parameters:
physicalDevice
- the physical device that will be queriedpPropertyCount
- a pointer to an integer related to the number of layer properties available or queriedpProperties
- eitherNULL
or a pointer to an array of VkLayerProperties structures
-
vkGetDeviceQueue
public static void vkGetDeviceQueue(VkDevice device, int queueFamilyIndex, int queueIndex, PointerBuffer pQueue)
Retrieves a handle to aVkQueue
object.The queue family index is used in multiple places in Vulkan in order to tie operations to a specific family of queues.
When retrieving a handle to the queue via
vkGetDeviceQueue
, the queue family index is used to select which queue family to retrieve theVkQueue
handle from.When creating a
VkCommandPool
object (see Command Pools), a queue family index is specified in theVkCommandPoolCreateInfo
structure. Command buffers from this pool can only be submitted on queues corresponding to this queue family.When creating
VkImage
andVkBuffer
resources, a set of queue families is included in theVkImageCreateInfo
andVkBufferCreateInfo
structures to specify the queue families that can access the resource.When inserting a
VkBufferMemoryBarrier
orVkImageMemoryBarrier
a source and destination queue family index is specified to allow the ownership of a buffer or image to be transferred from one queue family to another.Each queue is assigned a priority, as set in the
VkDeviceQueueCreateInfo
structures when creating the device. The priority of each queue is a normalized floating point value between 0.0 and 1.0, which is then translated to a discrete priority level by the implementation. Higher values indicate a higher priority, with 0.0 being the lowest priority and 1.0 being the highest.Within the same device, queues with higher priority may be allotted more processing time than queues with lower priority. The implementation makes no guarantees with regards to ordering or scheduling among queues with the same priority, other than the constraints defined by explicit scheduling primitives. The implementation make no guarantees with regards to queues across different devices.
An implementation may allow a higher-priority queue to starve a lower-priority queue on the same
VkDevice
until the higher-priority queue has no further commands to execute. The relationship of queue priorities must not cause queues on oneVkDevice
to starve queues on anotherVkDevice
.No specific guarantees are made about higher priority queues receiving more processing time or better quality of service than lower priority queues.
Valid Usage
device
must be a validVkDevice
handlepQueue
must be a pointer to aVkQueue
handlequeueFamilyIndex
must be one of the queue family indices specified whendevice
was created, via theVkDeviceQueueCreateInfo
structurequeueIndex
must be less than the number of queues created for the specified queue family index whendevice
was created, via thequeueCount
member of theVkDeviceQueueCreateInfo
structure
- Parameters:
device
- the logical device that owns the queuequeueFamilyIndex
- the index of the queue family to which the queue belongsqueueIndex
- the index within this queue family of the queue to retrievepQueue
- a pointer to aVkQueue
object that will be filled with the handle for the requested queue
-
vkQueueSubmit
public static int vkQueueSubmit(VkQueue queue, VkSubmitInfo.Buffer pSubmits, long fence)
Submits a sequence of semaphores or command buffers to a queue.Each call to
vkQueueSubmit
submits zero or more batches of work to the queue for execution.submitCount
is used to specify the number of batches to submit. Each batch includes zero or more semaphores to wait upon, and a corresponding set of stages that will wait for the semaphore to be signaled before executing any work, followed by a number of command buffers that will be executed, and finally, zero or more semaphores that will be signaled after command buffer execution completes. Each batch is represented as an instance of theVkSubmitInfo
structure stored in an array, the address of which is passed inpSubmits
.Note
The exact definition of a submission is platform-specific, but is considered a relatively expensive operation. In general, applications should attempt to batch work together into as few calls to
vkQueueSubmit
as possible.Valid Usage
queue
must be a validVkQueue
handle- If
submitCount
is not 0,pSubmits
must be a pointer to an array ofsubmitCount
validVkSubmitInfo
structures - If
fence
is notNULL_HANDLE
,fence
must be a validVkFence
handle - Each of
queue
andfence
that are valid handles must have been created, allocated or retrieved from the sameVkDevice
- If
fence
is notNULL_HANDLE
,fence
must be unsignaled - If
fence
is notNULL_HANDLE
,fence
must not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queue
must be externally synchronized - Host access to
pSubmits
[].pWaitSemaphores[] must be externally synchronized - Host access to
pSubmits
[].pSignalSemaphores[] must be externally synchronized - Host access to
fence
must be externally synchronized
- Parameters:
queue
- the handle of the queue that the command buffers will be submitted topSubmits
- a pointer to an array ofVkSubmitInfo
structures which describe the work to submit. All work described bypSubmits
must be submitted to the queue before the command returns.fence
- an optional handle to a fence. Iffence
is notNULL_HANDLE
, the fence is signaled when execution of all command buffers specified in theVkSubmitInfo
::pCommandBuffers
members ofpSubmits
is complete, providing certain implicit ordering guarantees. IfsubmitCount
is zero butfence
is notNULL_HANDLE
, the fence will still be submitted to the queue and will become signaled when all work previously submitted to the queue has completed.
-
vkQueueSubmit
public static int vkQueueSubmit(VkQueue queue, VkSubmitInfo pSubmit, long fence)
Submits a sequence of semaphores or command buffers to a queue.Each call to
vkQueueSubmit
submits zero or more batches of work to the queue for execution.submitCount
is used to specify the number of batches to submit. Each batch includes zero or more semaphores to wait upon, and a corresponding set of stages that will wait for the semaphore to be signaled before executing any work, followed by a number of command buffers that will be executed, and finally, zero or more semaphores that will be signaled after command buffer execution completes. Each batch is represented as an instance of theVkSubmitInfo
structure stored in an array, the address of which is passed inpSubmits
.Note
The exact definition of a submission is platform-specific, but is considered a relatively expensive operation. In general, applications should attempt to batch work together into as few calls to
vkQueueSubmit
as possible.Valid Usage
queue
must be a validVkQueue
handle- If
submitCount
is not 0,pSubmits
must be a pointer to an array ofsubmitCount
validVkSubmitInfo
structures - If
fence
is notNULL_HANDLE
,fence
must be a validVkFence
handle - Each of
queue
andfence
that are valid handles must have been created, allocated or retrieved from the sameVkDevice
- If
fence
is notNULL_HANDLE
,fence
must be unsignaled - If
fence
is notNULL_HANDLE
,fence
must not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queue
must be externally synchronized - Host access to
pSubmits
[].pWaitSemaphores[] must be externally synchronized - Host access to
pSubmits
[].pSignalSemaphores[] must be externally synchronized - Host access to
fence
must be externally synchronized
- Parameters:
queue
- the handle of the queue that the command buffers will be submitted tofence
- an optional handle to a fence. Iffence
is notNULL_HANDLE
, the fence is signaled when execution of all command buffers specified in theVkSubmitInfo
::pCommandBuffers
members ofpSubmits
is complete, providing certain implicit ordering guarantees. IfsubmitCount
is zero butfence
is notNULL_HANDLE
, the fence will still be submitted to the queue and will become signaled when all work previously submitted to the queue has completed.
-
vkQueueWaitIdle
public static int vkQueueWaitIdle(VkQueue queue)
Waits on the completion of all work within a single queue.vkQueueWaitIdle
will block until all command buffers and sparse binding operations in the queue have completed.Valid Usage
queue
must be a validVkQueue
handle
- Parameters:
queue
- the queue on which to wait
-
vkDeviceWaitIdle
public static int vkDeviceWaitIdle(VkDevice device)
Waits for a device to become idle.A device is active while any of its queues have work to process. Once all device queues are idle, the device is idle.
Valid Usage
device
must be a validVkDevice
handle
Host Synchronization
- Host access to all
VkQueue
objects created fromdevice
must be externally synchronized
- Parameters:
device
- the logical device to idle
-
vkAllocateMemory
public static int vkAllocateMemory(VkDevice device, VkMemoryAllocateInfo pAllocateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pMemory)
Allocates device memory.Allocations returned by
vkAllocateMemory
are guaranteed to meet any alignment requirement by the implementation. For example, if an implementation requires 128 byte alignment for images and 64 byte alignment for buffers, the device memory returned through this mechanism would be 128-byte aligned. This ensures that applications can correctly suballocate objects of different types (with potentially different alignment requirements) in the same memory object.When memory is allocated, its contents are undefined.
There is an implementation-dependent maximum number of memory allocations which can be simultaneously created on a device. This is specified by the
maxMemoryAllocationCount
member of theVkPhysicalDeviceLimits
structure. IfmaxMemoryAllocationCount
is exceeded,vkAllocateMemory
will returnERROR_TOO_MANY_OBJECTS
.Note
Some platforms may have a limit on the maximum size of a single allocation. For example, certain systems may fail to create allocations with a size greater than or equal to 4GB. Such a limit is implementation-dependent, and if such a failure occurs then the error
ERROR_OUT_OF_DEVICE_MEMORY
should be returned.Valid Usage
device
must be a validVkDevice
handlepAllocateInfo
must be a pointer to a validVkMemoryAllocateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pMemory
must be a pointer to aVkDeviceMemory
handle- The number of currently valid memory objects, allocated from
device
, must be less thanVkPhysicalDeviceLimits
::maxMemoryAllocationCount
- Parameters:
device
- the logical device that owns the memorypAllocateInfo
- a pointer to an instance of theVkMemoryAllocateInfo
structure describing parameters of the allocation. A successful returned allocation must use the requested parameters -- no substitution is permitted by the implementation.pAllocator
- controls host memory allocationpMemory
- a pointer to aVkDeviceMemory
handle in which information about the allocated memory is returned
-
vkFreeMemory
public static void vkFreeMemory(VkDevice device, long memory, VkAllocationCallbacks pAllocator)
Frees a memory object.Before freeing a memory object, an application must ensure the memory object is no longer in use by the device — for example by command buffers queued for execution. The memory can remain bound to images or buffers at the time the memory object is freed, but any further use of them (on host or device) for anything other than destroying those objects will result in undefined behavior. If there are still any bound images or buffers, the memory may not be immediately released by the implementation, but must be released by the time all bound images and buffers have been destroyed. Once memory is released, it is returned to the heap from which it was allocated.
If a memory object is mapped at the time it is freed, it is implicitly unmapped.
Valid Usage
device
must be a validVkDevice
handle- If
memory
is notNULL_HANDLE
,memory
must be a validVkDeviceMemory
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
memory
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andmemory
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
memory
(via images or buffers) must have completed execution
Host Synchronization
- Host access to
memory
must be externally synchronized
- Parameters:
device
- the logical device that owns the memorymemory
- theVkDeviceMemory
object to be freedpAllocator
- controls host memory allocation
-
vkMapMemory
public static int vkMapMemory(VkDevice device, long memory, long offset, long size, int flags, PointerBuffer ppData)
Retrieves a host virtual address pointer to a region of a mappable memory object.Memory objects created with
AllocateMemory
are not directly host accessible. Memory objects created with the memory propertyMEMORY_PROPERTY_HOST_VISIBLE_BIT
are considered mappable. Memory objects must be mappable in order to be successfully mapped on the host.It is an application error to call
vkMapMemory
on a memory object that is already mapped.vkMapMemory
does not check whether the device memory is currently in use before returning the host-accessible pointer. The application must guarantee that any previously submitted command that writes to this range has completed before the host reads from or writes to that range, and that any previously submitted command that reads from that range has completed before the host writes to that region. If the device memory was allocated without theMEMORY_PROPERTY_HOST_COHERENT_BIT
set, these guarantees must be made for an extended range: the application must round down the start of the range to the nearest multiple ofVkPhysicalDeviceLimits
::nonCoherentAtomSize
, and round the end of the range up to the nearest multiple ofVkPhysicalDeviceLimits::nonCoherentAtomSize
.While a range of device memory is mapped for host access, the application is responsible for synchronizing both device and host access to that memory range.
Host-visible memory types that advertise the
MEMORY_PROPERTY_HOST_COHERENT_BIT
property still require memory barriers between host and device in order to be coherent, but do not require additional cache management operations (FlushMappedMemoryRanges
orInvalidateMappedMemoryRanges
) to achieve coherency. For host writes to be seen by subsequent command buffer operations, a pipeline barrier from a source ofACCESS_HOST_WRITE_BIT
andPIPELINE_STAGE_HOST_BIT
to a destination of the relevant device pipeline stages and access types must be performed. Note that such a barrier is performed implicitly upon each command buffer submission, so an explicit barrier is only rarely needed (e.g. if a command buffer waits upon an event signaled by the host, where the host wrote some data after submission). For device writes to be seen by subsequent host reads, a pipeline barrier is required to make the writes visible.Valid Usage
device
must be a validVkDevice
handlememory
must be a validVkDeviceMemory
handleflags
must be 0ppData
must be a pointer to a pointermemory
must have been created, allocated or retrieved fromdevice
- Each of
device
andmemory
must have been created, allocated or retrieved from the sameVkPhysicalDevice
memory
must not currently be mappedoffset
must be less than the size ofmemory
- If
size
is not equal toWHOLE_SIZE
,size
must be greater than 0 - If
size
is not equal toWHOLE_SIZE
,size
must be less than or equal to the size of thememory
minusoffset
memory
must have been created with a memory type that reportsMEMORY_PROPERTY_HOST_VISIBLE_BIT
Host Synchronization
- Host access to
memory
must be externally synchronized
- Parameters:
device
- the logical device that owns the memorymemory
- theVkDeviceMemory
object to be mappedoffset
- a zero-based byte offset from the beginning of the memory objectsize
- he size of the memory range to map, orWHOLE_SIZE
to map from offset to the end of the allocationflags
- reserved for future use, and must be zeroppData
- points to a pointer in which is returned a host-accessible pointer to the beginning of the mapped range. This pointer minus offset must be aligned to at leastVkPhysicalDeviceLimits
::minMemoryMapAlignment
.
-
vkUnmapMemory
public static void vkUnmapMemory(VkDevice device, long memory)
Unmaps a previously mapped memory object.Valid Usage
device
must be a validVkDevice
handlememory
must be a validVkDeviceMemory
handlememory
must have been created, allocated or retrieved fromdevice
- Each of
device
andmemory
must have been created, allocated or retrieved from the sameVkPhysicalDevice
memory
must currently be mapped
Host Synchronization
- Host access to
memory
must be externally synchronized
- Parameters:
device
- the logical device that owns the memorymemory
- the memory object to be unmapped
-
vkFlushMappedMemoryRanges
public static int vkFlushMappedMemoryRanges(VkDevice device, VkMappedMemoryRange.Buffer pMemoryRanges)
Flushes ranges of non-coherent memory from the host caches.Valid Usage
device
must be a validVkDevice
handlepMemoryRanges
must be a pointer to an array ofmemoryRangeCount
validVkMappedMemoryRange
structuresmemoryRangeCount
must be greater than 0
vkFlushMappedMemoryRanges
must be used to guarantee that host writes to non-coherent memory are visible to the device. It must be called after the host writes to non-coherent memory have completed and before command buffers that will read or write any of those memory locations are submitted to a queue.- Parameters:
device
- the logical device that owns the memory rangespMemoryRanges
- a pointer to an array ofVkMappedMemoryRange
structures describing the memory ranges to flush
-
vkFlushMappedMemoryRanges
public static int vkFlushMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)
Flushes ranges of non-coherent memory from the host caches.Valid Usage
device
must be a validVkDevice
handlepMemoryRanges
must be a pointer to an array ofmemoryRangeCount
validVkMappedMemoryRange
structuresmemoryRangeCount
must be greater than 0
vkFlushMappedMemoryRanges
must be used to guarantee that host writes to non-coherent memory are visible to the device. It must be called after the host writes to non-coherent memory have completed and before command buffers that will read or write any of those memory locations are submitted to a queue.- Parameters:
device
- the logical device that owns the memory ranges
-
vkInvalidateMappedMemoryRanges
public static int vkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange.Buffer pMemoryRanges)
Invalidates ranges of mapped memory objects.Valid Usage
device
must be a validVkDevice
handlepMemoryRanges
must be a pointer to an array ofmemoryRangeCount
validVkMappedMemoryRange
structuresmemoryRangeCount
must be greater than 0
vkInvalidateMappedMemoryRanges
must be used to guarantee that device writes to non-coherent memory are visible to the host. It must be called after command buffers that execute and flush (via memory barriers) the device writes have completed, and before the host will read or write any of those locations. If a range of non-coherent memory is written by the host and then invalidated without first being flushed, its contents are undefined.- Parameters:
device
- the logical device that owns the memory rangespMemoryRanges
- a pointer to an array ofVkMappedMemoryRange
structures describing the memory ranges to invalidate
-
vkInvalidateMappedMemoryRanges
public static int vkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)
Invalidates ranges of mapped memory objects.Valid Usage
device
must be a validVkDevice
handlepMemoryRanges
must be a pointer to an array ofmemoryRangeCount
validVkMappedMemoryRange
structuresmemoryRangeCount
must be greater than 0
vkInvalidateMappedMemoryRanges
must be used to guarantee that device writes to non-coherent memory are visible to the host. It must be called after command buffers that execute and flush (via memory barriers) the device writes have completed, and before the host will read or write any of those locations. If a range of non-coherent memory is written by the host and then invalidated without first being flushed, its contents are undefined.- Parameters:
device
- the logical device that owns the memory ranges
-
vkGetDeviceMemoryCommitment
public static void vkGetDeviceMemoryCommitment(VkDevice device, long memory, java.nio.LongBuffer pCommittedMemoryInBytes)
Determines the amount of lazily-allocated memory that is currently committed for a memory object.If the memory object is allocated from a heap with the
MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
bit set, that object’s backing memory may be provided by the implementation lazily. The actual committed size of the memory may initially be as small as zero (or as large as the requested size), and monotonically increases as additional memory is needed.A memory type with this flag set is only allowed to be bound to a
VkImage
whose usage flags includeIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
.Note
Using lazily allocated memory objects for framebuffer attachments that are not needed once a render pass instance has completed may allow some implementations to never allocate memory for such attachments.
Valid Usage
device
must be a validVkDevice
handlememory
must be a validVkDeviceMemory
handlepCommittedMemoryInBytes
must be a pointer to aVkDeviceSize
valuememory
must have been created, allocated or retrieved fromdevice
- Each of
device
andmemory
must have been created, allocated or retrieved from the sameVkPhysicalDevice
memory
must have been created with a memory type that reportsMEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
The implementation may update the commitment at any time, and the value returned by this query may be out of date.
The implementation guarantees to allocate any committed memory from the
heapIndex
indicated by the memory type that the memory object was created with.- Parameters:
device
- the logical device that owns the memorymemory
- the memory object being queriedpCommittedMemoryInBytes
- a pointer to aVkDeviceSize
value in which the number of bytes currently committed is returned, on success
-
vkBindBufferMemory
public static int vkBindBufferMemory(VkDevice device, long buffer, long memory, long memoryOffset)
Attaches memory to a buffer object.Valid Usage
device
must be a validVkDevice
handlebuffer
must be a validVkBuffer
handlememory
must be a validVkDeviceMemory
handlebuffer
must have been created, allocated or retrieved fromdevice
memory
must have been created, allocated or retrieved fromdevice
- Each of
device
,buffer
andmemory
must have been created, allocated or retrieved from the sameVkPhysicalDevice
buffer
must not already be backed by a memory objectbuffer
must not have been created with any sparse memory binding flagsmemoryOffset
must be less than the size ofmemory
- If
buffer
was created with theBUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
orBUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
,memoryOffset
must be a multiple ofVkPhysicalDeviceLimits
::minTexelBufferOffsetAlignment
- If
buffer
was created with theBUFFER_USAGE_UNIFORM_BUFFER_BIT
,memoryOffset
must be a multiple ofVkPhysicalDeviceLimits
::minUniformBufferOffsetAlignment
- If
buffer
was created with theBUFFER_USAGE_STORAGE_BUFFER_BIT
,memoryOffset
must be a multiple ofVkPhysicalDeviceLimits
::minStorageBufferOffsetAlignment
memory
must have been allocated using one of the memory types allowed in thememoryTypeBits
member of theVkMemoryRequirements
structure returned from a call toGetBufferMemoryRequirements
withbuffer
- The size of
buffer
must be less than or equal to the size ofmemory
minusmemoryOffset
memoryOffset
must be an integer multiple of thealignment
member of theVkMemoryRequirements
structure returned from a call toGetBufferMemoryRequirements
withbuffer
Host Synchronization
- Host access to
buffer
must be externally synchronized
- Parameters:
device
- the logical device that owns the buffer and memorybuffer
- the buffermemory
- aVkDeviceMemory
object describing the device memory to attachmemoryOffset
- the start offset of the region ofmemory
which is to be bound to the buffer. The number of bytes returned in theVkMemoryRequirements
::size
member inmemory
, starting frommemoryOffset
bytes, will be bound to the specified buffer.
-
vkBindImageMemory
public static int vkBindImageMemory(VkDevice device, long image, long memory, long memoryOffset)
Attaches memory to an image object.Valid Usage
device
must be a validVkDevice
handleimage
must be a validVkImage
handlememory
must be a validVkDeviceMemory
handleimage
must have been created, allocated or retrieved fromdevice
memory
must have been created, allocated or retrieved fromdevice
- Each of
device
,image
andmemory
must have been created, allocated or retrieved from the sameVkPhysicalDevice
image
must not already be backed by a memory objectimage
must not have been created with any sparse memory binding flagsmemoryOffset
must be less than the size ofmemory
memory
must have been allocated using one of the memory types allowed in thememoryTypeBits
member of theVkMemoryRequirements
structure returned from a call toGetImageMemoryRequirements
withimage
memoryOffset
must be an integer multiple of thealignment
member of theVkMemoryRequirements
structure returned from a call toGetImageMemoryRequirements
withimage
- The
size
member of theVkMemoryRequirements
structure returned from a call toGetImageMemoryRequirements
withimage
must be less than or equal to the size ofmemory
minusmemoryOffset
Host Synchronization
- Host access to
image
must be externally synchronized
- Parameters:
device
- the logical device that owns the image and memoryimage
- the imagememory
- aVkDeviceMemory
object describing the device memory to attachmemoryOffset
- the start offset of the region ofmemory
which is to be bound to the image. The number of bytes returned in theVkMemoryRequirements
::size
member inmemory
, starting frommemoryOffset
bytes, will be bound to the specified image.
-
vkGetBufferMemoryRequirements
public static void vkGetBufferMemoryRequirements(VkDevice device, long buffer, VkMemoryRequirements pMemoryRequirements)
Determines the memory requirements for a non-sparse buffer resource.Valid Usage
device
must be a validVkDevice
handlebuffer
must be a validVkBuffer
handlepMemoryRequirements
must be a pointer to aVkMemoryRequirements
structurebuffer
must have been created, allocated or retrieved fromdevice
- Each of
device
andbuffer
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the bufferbuffer
- the buffer to querypMemoryRequirements
- points to an instance of theVkMemoryRequirements
structure in which the memory requirements of the buffer object are returned
-
vkGetImageMemoryRequirements
public static void vkGetImageMemoryRequirements(VkDevice device, long image, VkMemoryRequirements pMemoryRequirements)
Determines the memory requirements for a non-sparse image resource.Valid Usage
device
must be a validVkDevice
handleimage
must be a validVkImage
handlepMemoryRequirements
must be a pointer to aVkMemoryRequirements
structureimage
must have been created, allocated or retrieved fromdevice
- Each of
device
andimage
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the imageimage
- the image to querypMemoryRequirements
- points to an instance of theVkMemoryRequirements
structure in which the memory requirements of the image object are returned
-
vkGetImageSparseMemoryRequirements
public static void vkGetImageSparseMemoryRequirements(VkDevice device, long image, java.nio.IntBuffer pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements.Buffer pSparseMemoryRequirements)
Query sparse memory requirements for an image.If
pSparseMemoryRequirements
isNULL
, then the number of sparse memory requirements available is returned inpSparseMemoryRequirementCount
. Otherwise,pSparseMemoryRequirementCount
must point to a variable set by the user to the number of elements in thepSparseMemoryRequirements
array, and on return the variable is overwritten with the number of structures actually written topSparseMemoryRequirements
. If the value ofpSparseMemoryRequirementCount
is less than the number of sparse memory requirements available, at mostpSparseMemoryRequirementCount
structures will be written.If the image was not created with
IMAGE_CREATE_SPARSE_RESIDENCY_BIT
thenpSparseMemoryRequirementCount
will be set to zero andpSparseMemoryRequirements
will not be written to.Note
It is legal for an implementation to report a larger value in
VkMemoryRequirements
::size
than would be obtained by adding together memory sizes for allVkSparseImageMemoryRequirements
returned byvkGetImageSparseMemoryRequirements
. This may occur when the hardware requires unused padding in the address range describing the resource.Valid Usage
device
must be a validVkDevice
handleimage
must be a validVkImage
handlepSparseMemoryRequirementCount
must be a pointer to auint32_t
value- If the value referenced by
pSparseMemoryRequirementCount
is not 0, andpSparseMemoryRequirements
is notNULL
,pSparseMemoryRequirements
must be a pointer to an array ofpSparseMemoryRequirementCount
VkSparseImageMemoryRequirements
structures image
must have been created, allocated or retrieved fromdevice
- Each of
device
andimage
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the imageimage
- theVkImage
object to get the memory requirements forpSparseMemoryRequirementCount
- a pointer to an integer related to the number of sparse memory requirements available or queriedpSparseMemoryRequirements
- eitherNULL
or a pointer to an array ofVkSparseImageMemoryRequirements
structures
-
vkGetPhysicalDeviceSparseImageFormatProperties
public static void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int samples, int usage, int tiling, java.nio.IntBuffer pPropertyCount, VkSparseImageFormatProperties.Buffer pProperties)
Retrieves properties of an image format applied to sparse images.Given that certain aspects of sparse image support, including the sparse image block size, may be implementation-dependent,
vkGetPhysicalDeviceSparseImageFormatProperties
can be used to query for sparse image format properties prior to resource creation. This command is used to check whether a given set of sparse image parameters is supported and what the sparse block shape will be.vkGetPhysicalDeviceSparseImageFormatProperties
returns an array ofVkSparseImageFormatProperties
. Each element will describe properties for one set of image aspects that are bound simultaneously in the image. This is usually one element for each aspect in the image, but for interleaved depth/stencil images there is only one element describing the combined aspects.If
pProperties
isNULL
, then the number of sparse format properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. IfpPropertyCount
is less than the number of sparse format properties available, at mostpPropertyCount
structures will be written.Valid Usage
physicalDevice
must be a validVkPhysicalDevice
handleformat
must be a validVkFormat
valuetype
must be a validVkImageType
valuesamples
must be a validVkSampleCountFlagBits
valueusage
must be a valid combination ofVkImageUsageFlagBits
valuesusage
must not be 0tiling
must be a validVkImageTiling
valuepPropertyCount
must be a pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a pointer to an array ofpPropertyCount
VkSparseImageFormatProperties
structures - If
format
is an integer format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits
::sampledImageIntegerSampleCounts
- If
format
is a non-integer color format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits
::sampledImageColorSampleCounts
- If
format
is a depth format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits
::sampledImageDepthSampleCounts
- If
format
is a stencil format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits
::sampledImageStencilSampleCounts
- If
usage
includesIMAGE_USAGE_STORAGE_BIT
, samples must be one of the bit flags specified inVkPhysicalDeviceLimits
::storageImageSampleCounts
If
IMAGE_CREATE_SPARSE_RESIDENCY_BIT
is not supported for the given arguments,pPropertyCount
will be set to zero upon return, and no data will be written topProperties
.Multiple aspects are returned for depth/stencil images that are implemented as separate planes by the implementation. The depth and stencil data planes each have unique
VkSparseImageFormatProperties
data.Depth/stencil images with depth and stencil data interleaved into a single plane will return a single
VkSparseImageFormatProperties
structure with theaspectMask
set to
.IMAGE_ASPECT_DEPTH_BIT
|IMAGE_ASPECT_STENCIL_BIT
- Parameters:
physicalDevice
- the physical device from which to query the sparse image capabilitiesformat
- the image formattype
- the dimensionality of image. One of:IMAGE_TYPE_1D
IMAGE_TYPE_2D
IMAGE_TYPE_3D
samples
- the number of samples per pixel as defined inVkSampleCountFlagBits
. One of:SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
usage
- a bitfield describing the intended usage of the image. One or more of:tiling
- the tiling arrangement of the data elements in memory. One of:IMAGE_TILING_OPTIMAL
IMAGE_TILING_LINEAR
pPropertyCount
- a pointer to an integer related to the number of sparse format properties available or queriedpProperties
- eitherNULL
or a pointer to an array ofVkSparseImageFormatProperties
structures
-
vkQueueBindSparse
public static int vkQueueBindSparse(VkQueue queue, VkBindSparseInfo.Buffer pBindInfo, long fence)
Submits sparse binding operations to a queue for execution.Each batch of sparse binding operations is represented by a list of
VkSparseBufferMemoryBindInfo
,VkSparseImageOpaqueMemoryBindInfo
, andVkSparseImageMemoryBindInfo
structures (encapsulated in aVkBindSparseInfo
structure), each preceded by a list of semaphores upon which to wait before beginning execution of the operations, and followed by a second list of semaphores to signal upon completion of the operations.When all sparse binding operations in
pBindInfo
have completed execution, the status of fence is set to signaled, providing certain implicit ordering guarantees.Within a batch, a given range of a resource must not be bound more than once. Across batches, if a range is to be bound to one allocation and offset and then to another allocation and offset, then the application must guarantee (usually using semaphores) that the binding operations are executed in the correct order, as well as to order binding operations against the execution of command buffer submissions.
Valid Usage
queue
must be a validVkQueue
handle- If
bindInfoCount
is not 0,pBindInfo
must be a pointer to an array ofbindInfoCount
validVkBindSparseInfo
structures - If
fence
is notNULL_HANDLE
,fence
must be a validVkFence
handle - The
queue
must support sparse binding operations - Each of
queue
andfence
that are valid handles must have been created, allocated or retrieved from the sameVkDevice
fence
must be unsignaledfence
must not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queue
must be externally synchronized - Host access to
pBindInfo
[].pWaitSemaphores[] must be externally synchronized - Host access to
pBindInfo
[].pSignalSemaphores[] must be externally synchronized - Host access to
pBindInfo
[].pBufferBinds[].buffer must be externally synchronized - Host access to
pBindInfo
[].pImageOpaqueBinds[].image must be externally synchronized - Host access to
pBindInfo
[].pImageBinds[].image must be externally synchronized - Host access to
fence
must be externally synchronized
- Parameters:
queue
- the queue to submit the sparse binding operation topBindInfo
- an array ofVkBindSparseInfo
structures each specifying the parameters of a sparse binding operation batchfence
- if notNULL_HANDLE
, is a fence to be signaled once the sparse binding operation completes
-
vkQueueBindSparse
public static int vkQueueBindSparse(VkQueue queue, VkBindSparseInfo pBindInfo, long fence)
Submits sparse binding operations to a queue for execution.Each batch of sparse binding operations is represented by a list of
VkSparseBufferMemoryBindInfo
,VkSparseImageOpaqueMemoryBindInfo
, andVkSparseImageMemoryBindInfo
structures (encapsulated in aVkBindSparseInfo
structure), each preceded by a list of semaphores upon which to wait before beginning execution of the operations, and followed by a second list of semaphores to signal upon completion of the operations.When all sparse binding operations in
pBindInfo
have completed execution, the status of fence is set to signaled, providing certain implicit ordering guarantees.Within a batch, a given range of a resource must not be bound more than once. Across batches, if a range is to be bound to one allocation and offset and then to another allocation and offset, then the application must guarantee (usually using semaphores) that the binding operations are executed in the correct order, as well as to order binding operations against the execution of command buffer submissions.
Valid Usage
queue
must be a validVkQueue
handle- If
bindInfoCount
is not 0,pBindInfo
must be a pointer to an array ofbindInfoCount
validVkBindSparseInfo
structures - If
fence
is notNULL_HANDLE
,fence
must be a validVkFence
handle - The
queue
must support sparse binding operations - Each of
queue
andfence
that are valid handles must have been created, allocated or retrieved from the sameVkDevice
fence
must be unsignaledfence
must not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queue
must be externally synchronized - Host access to
pBindInfo
[].pWaitSemaphores[] must be externally synchronized - Host access to
pBindInfo
[].pSignalSemaphores[] must be externally synchronized - Host access to
pBindInfo
[].pBufferBinds[].buffer must be externally synchronized - Host access to
pBindInfo
[].pImageOpaqueBinds[].image must be externally synchronized - Host access to
pBindInfo
[].pImageBinds[].image must be externally synchronized - Host access to
fence
must be externally synchronized
- Parameters:
queue
- the queue to submit the sparse binding operation topBindInfo
- an array ofVkBindSparseInfo
structures each specifying the parameters of a sparse binding operation batchfence
- if notNULL_HANDLE
, is a fence to be signaled once the sparse binding operation completes
-
vkCreateFence
public static int vkCreateFence(VkDevice device, VkFenceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pFence)
Creates a new fence object.Fences can be used by the host to determine completion of execution of submissions to queues performed with
QueueSubmit
andQueueBindSparse
.A fence’s status is always either signaled or unsignaled. The host can poll the status of a single fence, or wait for any or all of a group of fences to become signaled.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkFenceCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pFence
must be a pointer to aVkFence
handle
- Parameters:
device
- the logical device that creates the fencepCreateInfo
- points to aVkFenceCreateInfo
structure specifying the state of the fence objectpAllocator
- controls host memory allocationpFence
- points to a handle in which the resulting fence object is returned
-
vkDestroyFence
public static void vkDestroyFence(VkDevice device, long fence, VkAllocationCallbacks pAllocator)
Destroys a fence object.Valid Usage
device
must be a validVkDevice
handle- If
fence
is notNULL_HANDLE
,fence
must be a validVkFence
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
fence
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andfence
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
fence
must not be associated with any queue command that has not yet completed execution on that queue- If
VkAllocationCallbacks
were provided whenfence
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenfence
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
fence
must be externally synchronized
- Parameters:
device
- the logical device that destroys the fencefence
- the handle of the fence to destroypAllocator
- controls host memory allocation
-
vkResetFences
public static int vkResetFences(VkDevice device, java.nio.LongBuffer pFences)
Resets the status of one or more fences to the unsignaled state.If a fence is already in the unsignaled state, then resetting it has no effect.
Valid Usage
device
must be a validVkDevice
handlepFences
must be a pointer to an array offenceCount
validVkFence
handlesfenceCount
must be greater than 0- Each element of
pFences
must have been created, allocated or retrieved fromdevice
- Each of
device
and the elements ofpFences
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Any given element of
pFences
must not currently be associated with any queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to each member of
pFences
must be externally synchronized
- Parameters:
device
- the logical device that owns the fencespFences
- a pointer to an array offenceCount
fence handles to reset
-
vkResetFences
public static int vkResetFences(VkDevice device, long pFence)
Resets the status of one or more fences to the unsignaled state.If a fence is already in the unsignaled state, then resetting it has no effect.
Valid Usage
device
must be a validVkDevice
handlepFences
must be a pointer to an array offenceCount
validVkFence
handlesfenceCount
must be greater than 0- Each element of
pFences
must have been created, allocated or retrieved fromdevice
- Each of
device
and the elements ofpFences
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Any given element of
pFences
must not currently be associated with any queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to each member of
pFences
must be externally synchronized
- Parameters:
device
- the logical device that owns the fences
-
vkGetFenceStatus
public static int vkGetFenceStatus(VkDevice device, long fence)
Queries the status of a fence from the host.Upon success,
vkGetFenceStatus
returns the status of the fence, which is one of:Valid Usage
device
must be a validVkDevice
handlefence
must be a validVkFence
handlefence
must have been created, allocated or retrieved fromdevice
- Each of
device
andfence
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the fencefence
- the handle of the fence to query
-
vkWaitForFences
public static int vkWaitForFences(VkDevice device, java.nio.LongBuffer pFences, int waitAll, long timeout)
Causes the host to wait until any one or all of a group of fences is signaled.If the condition is satisfied when
vkWaitForFences
is called, thenvkWaitForFences
returns immediately. If the condition is not satisfied at the timevkWaitForFences
is called, thenvkWaitForFences
will block and wait up to timeout nanoseconds for the condition to become satisfied.If
timeout
is zero, thenvkWaitForFences
does not wait, but simply returns the current state of the fences.TIMEOUT
will be returned in this case if the condition is not satisfied, even though no actual wait was performed.If the specified
timeout
period expires before the condition is satisfied,vkWaitForFences
returnsTIMEOUT
. If the condition is satisfied before timeout nanoseconds has expired,vkWaitForFences
returnsSUCCESS
.Fences become signaled when the device completes executing the work that was submitted to a queue accompanied by the fence. But this alone is not sufficient for the host to be guaranteed to see the results of device writes to memory. To provide that guarantee, the application must insert a memory barrier between the device writes and the end of the submission that will signal the fence, with
dstAccessMask
having theACCESS_HOST_READ_BIT
bit set, withdstStageMask
having thePIPELINE_STAGE_HOST_BIT
bit set, and with the appropriatesrcStageMask
andsrcAccessMask
members set to guarantee completion of the writes. If the memory was allocated without theMEMORY_PROPERTY_HOST_COHERENT_BIT
set, thenInvalidateMappedMemoryRanges
must be called after the fence is signaled in order to ensure the writes are visible to the host.Valid Usage
device
must be a validVkDevice
handlepFences
must be a pointer to an array offenceCount
validVkFence
handlesfenceCount
must be greater than 0- Each element of
pFences
must have been created, allocated or retrieved fromdevice
- Each of
device
and the elements ofpFences
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the fencespFences
- a pointer to an array offenceCount
fence handleswaitAll
- the condition that must be satisfied to successfully unblock the wait. IfwaitAll
isTRUE
, then the condition is that all fences inpFences
are signaled. Otherwise, the condition is that at least one fence inpFences
is signaled.timeout
- the timeout period in units of nanoseconds.timeout
is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may be substantially longer than one nanosecond, and may be longer than the requested period.
-
vkWaitForFences
public static int vkWaitForFences(VkDevice device, long pFence, int waitAll, long timeout)
Causes the host to wait until any one or all of a group of fences is signaled.If the condition is satisfied when
vkWaitForFences
is called, thenvkWaitForFences
returns immediately. If the condition is not satisfied at the timevkWaitForFences
is called, thenvkWaitForFences
will block and wait up to timeout nanoseconds for the condition to become satisfied.If
timeout
is zero, thenvkWaitForFences
does not wait, but simply returns the current state of the fences.TIMEOUT
will be returned in this case if the condition is not satisfied, even though no actual wait was performed.If the specified
timeout
period expires before the condition is satisfied,vkWaitForFences
returnsTIMEOUT
. If the condition is satisfied before timeout nanoseconds has expired,vkWaitForFences
returnsSUCCESS
.Fences become signaled when the device completes executing the work that was submitted to a queue accompanied by the fence. But this alone is not sufficient for the host to be guaranteed to see the results of device writes to memory. To provide that guarantee, the application must insert a memory barrier between the device writes and the end of the submission that will signal the fence, with
dstAccessMask
having theACCESS_HOST_READ_BIT
bit set, withdstStageMask
having thePIPELINE_STAGE_HOST_BIT
bit set, and with the appropriatesrcStageMask
andsrcAccessMask
members set to guarantee completion of the writes. If the memory was allocated without theMEMORY_PROPERTY_HOST_COHERENT_BIT
set, thenInvalidateMappedMemoryRanges
must be called after the fence is signaled in order to ensure the writes are visible to the host.Valid Usage
device
must be a validVkDevice
handlepFences
must be a pointer to an array offenceCount
validVkFence
handlesfenceCount
must be greater than 0- Each element of
pFences
must have been created, allocated or retrieved fromdevice
- Each of
device
and the elements ofpFences
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the fenceswaitAll
- the condition that must be satisfied to successfully unblock the wait. IfwaitAll
isTRUE
, then the condition is that all fences inpFences
are signaled. Otherwise, the condition is that at least one fence inpFences
is signaled.timeout
- the timeout period in units of nanoseconds.timeout
is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may be substantially longer than one nanosecond, and may be longer than the requested period.
-
vkCreateSemaphore
public static int vkCreateSemaphore(VkDevice device, VkSemaphoreCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSemaphore)
Creates a new queue semaphore object.Semaphores are used to coordinate operations between queues and between queue submissions within a single queue. An application might associate semaphores with resources or groups of resources to marshal ownership of shared data. A semaphore’s status is always either signaled or unsignaled. Semaphores are signaled by queues and can also be waited on in the same or different queues until they are signaled.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkSemaphoreCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pSemaphore
must be a pointer to aVkSemaphore
handle
To signal a semaphore from a queue, include it in an element of the array of
VkSubmitInfo
structures passed through thepSubmits
parameter to a call toQueueSubmit
, or in an element of the array ofVkBindSparseInfo
structures passed through thepBindInfo
parameter to a call toQueueBindSparse
.Semaphores included in the
pSignalSemaphores
array of one of the elements of a queue submission are signaled once queue execution reaches the signal operation, and all previous work in the queue completes. Any operations waiting on that semaphore in other queues will be released once it is signaled.Similarly, to wait on a semaphore from a queue, include it in the
pWaitSemaphores
array of one of the elements of a batch in a queue submission. When queue execution reaches the wait operation, will stall execution of subsequently submitted operations until the semaphore reaches the signaled state due to a signaling operation. Once the semaphore is signaled, the subsequent operations will be permitted to execute and the status of the semaphore will be reset to the unsignaled state.In the case of
VkSubmitInfo
, command buffers wait at specific pipeline stages, rather than delaying the entire command buffer’s execution, with the pipeline stages determined by the value of the corresponding element of thepWaitDstStageMask
member ofVkSubmitInfo
. Execution of work by those stages in subsequent commands is stalled until the corresponding semaphore reaches the signaled state. Subsequent sparse binding operations wait for the semaphore to become signaled, regardless of the values ofpWaitDstStageMask
.Note
A common scenario for using
pWaitDstStageMask
with values other thanPIPELINE_STAGE_ALL_COMMANDS_BIT
is when synchronizing a window system presentation operation against subsequent command buffers which render the next frame. In this case, an image that was being presented must not be overwritten until the presentation operation completes, but other pipeline stages can execute without waiting. A mask ofPIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
prevents subsequent color attachment writes from executing until the semaphore signals. Some implementations may be able to execute transfer operations and/or vertex processing work before the semaphore is signaled.If an image layout transition needs to be performed on a swapchain image before it is used in a framebuffer, that can be performed as the first operation submitted to the queue after acquiring the image, and should not prevent other work from overlapping with the presentation operation. For example, a
VkImageMemoryBarrier
could use:srcStageMask =
PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
srcAccessMask =
ACCESS_MEMORY_READ_BIT
dstStageMask =
PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
dstAccessMask =
ACCESS_COLOR_ATTACHMENT_READ_BIT
|ACCESS_COLOR_ATTACHMENT_WRITE_BIT
.oldLayout =
IMAGE_LAYOUT_PRESENT_SRC_KHR
newLayout =
IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
Alternately,
oldLayout
can beIMAGE_LAYOUT_UNDEFINED
, if the image’s contents need not be preserved.This barrier accomplishes a dependency chain between previous presentation operations and subsequent color attachment output operations, with the layout transition performed in between, and does not introduce a dependency between previous work and any vertex processing stages. More precisely, the semaphore signals after the presentation operation completes, then the semaphore wait stalls the
PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
stage, then there is a dependency from that same stage to itself with the layout transition performed in between.When a queue signals or waits upon a semaphore, certain implicit ordering guarantees are provided.
Semaphore operations may not make the side effects of commands visible to the host.
- Parameters:
device
- the logical device that creates the semaphorepCreateInfo
- points to aVkSemaphoreCreateInfo
structure specifying the state of the semaphore objectpAllocator
- controls host memory allocationpSemaphore
- points to a handle in which the resulting semaphore object is returned. The semaphore is created in the unsignaled state.
-
vkDestroySemaphore
public static void vkDestroySemaphore(VkDevice device, long semaphore, VkAllocationCallbacks pAllocator)
Destroys a semaphore object.Valid Usage
device
must be a validVkDevice
handle- If
semaphore
is notNULL_HANDLE
,semaphore
must be a validVkSemaphore
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
semaphore
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andsemaphore
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
semaphore
must not be associated with any queue command that has not yet completed execution on that queue- If
VkAllocationCallbacks
were provided whensemaphore
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whensemaphore
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
semaphore
must be externally synchronized
- Parameters:
device
- the logical device that destroys the semaphoresemaphore
- the handle of the semaphore to destroypAllocator
- controls host memory allocation
-
vkCreateEvent
public static int vkCreateEvent(VkDevice device, VkEventCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pEvent)
Creates a new event object.Events represent a fine-grained synchronization primitive that can be used to gauge progress through a sequence of commands executed on a queue by Vulkan. An event is initially in the unsignaled state. It can be signaled by a device, using commands inserted into the command buffer, or by the host. It can also be reset to the unsignaled state by a device or the host. The host can query the state of an event. A device can wait for one or more events to become signaled.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkEventCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pEvent
must be a pointer to aVkEvent
handle
- Parameters:
device
- the logical device that creates the eventpCreateInfo
- a pointer to an instance of theVkEventCreateInfo
structure which contains information about how the event is to be createdpAllocator
- controls host memory allocationpEvent
- points to a handle in which the resulting event object is returned
-
vkDestroyEvent
public static void vkDestroyEvent(VkDevice device, long event, VkAllocationCallbacks pAllocator)
Destroys an event object.Valid Usage
device
must be a validVkDevice
handle- If
event
is notNULL_HANDLE
,event
must be a validVkEvent
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
event
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andevent
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
event
must have completed execution - If
VkAllocationCallbacks
were provided whenevent
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenevent
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
event
must be externally synchronized
- Parameters:
device
- the logical device that destroys the eventevent
- the handle of the event to destroypAllocator
- controls host memory allocation
-
vkGetEventStatus
public static int vkGetEventStatus(VkDevice device, long event)
Queries the state of an event from the host.Upon success,
vkGetEventStatus
returns the state of the event object with the following return codes:EVENT_SET
- The event specified by event is signaled.EVENT_RESET
- The event specified by event is unsignaled.
The state of an event can be updated by the host. The state of the event is immediately changed, and subsequent calls to
vkGetEventStatus
will return the new state. If an event is already in the requested state, then updating it to the same state has no effect.Valid Usage
device
must be a validVkDevice
handleevent
must be a validVkEvent
handleevent
must have been created, allocated or retrieved fromdevice
- Each of
device
andevent
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the eventevent
- the handle of the event to query
-
vkSetEvent
public static int vkSetEvent(VkDevice device, long event)
Sets the state of an event to signaled from the host.Valid Usage
device
must be a validVkDevice
handleevent
must be a validVkEvent
handleevent
must have been created, allocated or retrieved fromdevice
- Each of
device
andevent
must have been created, allocated or retrieved from the sameVkPhysicalDevice
Host Synchronization
- Host access to
event
must be externally synchronized
- Parameters:
device
- the logical device that owns the eventevent
- the event to set
-
vkResetEvent
public static int vkResetEvent(VkDevice device, long event)
Sets the state of an event to unsignaled from the host.Valid Usage
device
must be a validVkDevice
handleevent
must be a validVkEvent
handleevent
must have been created, allocated or retrieved fromdevice
- Each of
device
andevent
must have been created, allocated or retrieved from the sameVkPhysicalDevice
event
must not be waited on by aCmdWaitEvents
command that is currently executing
Host Synchronization
- Host access to
event
must be externally synchronized
- Parameters:
device
- the logical device that owns the eventevent
- the event to reset
-
vkCreateQueryPool
public static int vkCreateQueryPool(VkDevice device, VkQueryPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pQueryPool)
Creates a new query pool object.Queries are managed using query pool objects. Each query pool is a collection of a specific number of queries of a particular type.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkQueryPoolCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pQueryPool
must be a pointer to aVkQueryPool
handle
- Parameters:
device
- the logical device that creates the query poolpCreateInfo
- pointer to an instance of theVkQueryPoolCreateInfo
structure containing the number and type of queries to be managed by the poolpAllocator
- controls host memory allocationpQueryPool
- a pointer to aVkQueryPool
handle in which the resulting query pool object is returned
-
vkDestroyQueryPool
public static void vkDestroyQueryPool(VkDevice device, long queryPool, VkAllocationCallbacks pAllocator)
Destroys a query pool object.Valid Usage
device
must be a validVkDevice
handle- If
queryPool
is notNULL_HANDLE
,queryPool
must be a validVkQueryPool
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
queryPool
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andqueryPool
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
queryPool
must have completed execution - If
VkAllocationCallbacks
were provided whenqueryPool
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenqueryPool
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
queryPool
must be externally synchronized
- Parameters:
device
- the logical device that destroys the query poolqueryPool
- the query pool to destroypAllocator
- controls host memory allocation
-
vkGetQueryPoolResults
public static int vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.ByteBuffer pData, long stride, int flags)
Retrieves status and results for a set of queries.If no bits are set in
flags
, and all requested queries are in the available state, results are written as an array of 32-bit unsigned integer values. The behavior when not all queries are available, is described below.If
QUERY_RESULT_64_BIT
is not set and the result overflows a 32-bit value, the value may either wrap or saturate. Similarly, ifQUERY_RESULT_64_BIT
is set and the result overflows a 64-bit value, the value may either wrap or saturate.If
QUERY_RESULT_WAIT_BIT
is set, Vulkan will wait for each query to be in the available state before retrieving the numerical results for that query. In this case,vkGetQueryPoolResults
is guaranteed to succeed and returnSUCCESS
if the queries become available in a finite time (i.e. if they have been issued and not reset). If queries will never finish (e.g. due to being reset but not issued), thenvkGetQueryPoolResults
may not return in finite time.If
QUERY_RESULT_WAIT_BIT
andQUERY_RESULT_PARTIAL_BIT
are both not set then no result values are written topData
for queries that are in the unavailable state at the time of the call, andvkGetQueryPoolResults
returnsNOT_READY
. However, availability state is still written topData
for those queries ifQUERY_RESULT_WITH_AVAILABILITY_BIT
is set.Note
Applications must take care to ensure that use of the
QUERY_RESULT_WAIT_BIT
bit has the desired effect.For example, if a query has been used previously and a command buffer records the commands
CmdResetQueryPool
,CmdBeginQuery
, andCmdEndQuery
for that query, then the query will remain in the available state until thevkCmdResetQueryPool
command executes on a queue. Applications can use fences or events to ensure that an query has already been reset before checking for its results or availability status. Otherwise, a stale value could be returned from a previous use of the query.The above also applies when
QUERY_RESULT_WAIT_BIT
is used in combination withQUERY_RESULT_WITH_AVAILABILITY_BIT
. In this case, the returned availability status may reflect the result of a previous use of the query unless thevkCmdResetQueryPool
command has been executed since the last use of the query.Note
Applications can double-buffer query pool usage, with a pool per frame, and reset queries at the end of the frame in which they are read.
If
QUERY_RESULT_PARTIAL_BIT
is set,QUERY_RESULT_WAIT_BIT
is not set, and the query’s status is unavailable, an intermediate result value between zero and the final result value is written topData
for that query.QUERY_RESULT_PARTIAL_BIT
must not be used if the pool’squeryType
isQUERY_TYPE_TIMESTAMP
.If
QUERY_RESULT_WITH_AVAILABILITY_BIT
is set, the final integer value written for each query is non-zero if the query’s status was available or zero if the status was unavailable. WhenQUERY_RESULT_WITH_AVAILABILITY_BIT
is used, implementations must guarantee that if they return a non-zero availability value then the numerical results must be valid, assuming the results are not reset by a subsequent command.Note
Satisfying this guarantee may require careful ordering by the application, e.g. to read the availability status before reading the results.
Valid Usage
device
must be a validVkDevice
handlequeryPool
must be a validVkQueryPool
handlepData
must be a pointer to an array ofdataSize
bytesflags
must be a valid combination ofVkQueryResultFlagBits
valuesdataSize
must be greater than 0queryPool
must have been created, allocated or retrieved fromdevice
- Each of
device
andqueryPool
must have been created, allocated or retrieved from the sameVkPhysicalDevice
firstQuery
must be less than the number of queries inqueryPool
- If
QUERY_RESULT_64_BIT
is not set inflags
thenpData
andstride
must be multiples of 4 - If
QUERY_RESULT_64_BIT
is set inflags
thenpData
andstride
must be multiples of 8 - The sum of
firstQuery
andqueryCount
must be less than or equal to the number of queries inqueryPool
dataSize
must be large enough to contain the result of each query, as described here- If the
queryType
used to createqueryPool
wasQUERY_TYPE_TIMESTAMP
,flags
must not containQUERY_RESULT_PARTIAL_BIT
- Parameters:
device
- the logical device that owns the query poolqueryPool
- the query pool managing the queries containing the desired resultsfirstQuery
- the initial query indexqueryCount
- the number of queries.firstQuery
andqueryCount
together define a range of queriespData
- a pointer to a user-allocated buffer where the results will be writtenstride
- the stride in bytes between results for individual queries withinpData
.flags
- a bitmask ofVkQueryResultFlagBits
specifying how and when results are returned. One or more of:QUERY_RESULT_64_BIT
QUERY_RESULT_WAIT_BIT
QUERY_RESULT_WITH_AVAILABILITY_BIT
QUERY_RESULT_PARTIAL_BIT
-
vkGetQueryPoolResults
public static int vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.IntBuffer pData, long stride, int flags)
IntBuffer version of:GetQueryPoolResults
-
vkGetQueryPoolResults
public static int vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.LongBuffer pData, long stride, int flags)
LongBuffer version of:GetQueryPoolResults
-
vkCreateBuffer
public static int vkCreateBuffer(VkDevice device, VkBufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pBuffer)
Creates a new buffer object.Buffers represent linear arrays of data which are used for various purposes by binding them to the graphics pipeline via descriptor sets or via certain commands, or by directly specifying them as parameters to certain commands.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkBufferCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pBuffer
must be a pointer to aVkBuffer
handle- If the
flags
member ofpCreateInfo
includesBUFFER_CREATE_SPARSE_BINDING_BIT
, creating thisVkBuffer
must not cause the total required sparse memory for all currently valid sparse resources on the device to exceedVkPhysicalDeviceLimits
::sparseAddressSpaceSize
- Parameters:
device
- the logical device that creates the buffer objectpCreateInfo
- a pointer to an instance of theVkBufferCreateInfo
structure containing parameters affecting creation of the bufferpAllocator
- controls host memory allocationpBuffer
- points to aVkBuffer
handle in which the resulting buffer object is returned
-
vkDestroyBuffer
public static void vkDestroyBuffer(VkDevice device, long buffer, VkAllocationCallbacks pAllocator)
Destroys a buffer object.Valid Usage
device
must be a validVkDevice
handle- If
buffer
is notNULL_HANDLE
,buffer
must be a validVkBuffer
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
buffer
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andbuffer
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
buffer
, either directly or via aVkBufferView
, must have completed execution - If
VkAllocationCallbacks
were provided whenbuffer
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenbuffer
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
buffer
must be externally synchronized
- Parameters:
device
- the logical device that destroys the bufferbuffer
- the buffer to destroypAllocator
- controls host memory allocation
-
vkCreateBufferView
public static int vkCreateBufferView(VkDevice device, VkBufferViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pView)
Creates a new buffer view object.A buffer view represents a contiguous range of a buffer and a specific format to be used to interpret the data. Buffer views are used to enable shaders to access buffer contents interpreted as formatted data. In order to create a valid buffer view, the buffer must have been created with at least one of the following usage flags:
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkBufferViewCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pView
must be a pointer to aVkBufferView
handle
- Parameters:
device
- the logical device that creates the buffer viewpCreateInfo
- a pointer to an instance of theVkBufferViewCreateInfo
structure containing parameters to be used to create the bufferpAllocator
- controls host memory allocationpView
- points to aVkBufferView
handle in which the resulting buffer view object is returned
-
vkDestroyBufferView
public static void vkDestroyBufferView(VkDevice device, long bufferView, VkAllocationCallbacks pAllocator)
Destroys a buffer view object.Valid Usage
device
must be a validVkDevice
handle- If
bufferView
is notNULL_HANDLE
,bufferView
must be a validVkBufferView
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
bufferView
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andbufferView
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
bufferView
must have completed execution - If
VkAllocationCallbacks
were provided whenbufferView
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenbufferView
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
bufferView
must be externally synchronized
- Parameters:
device
- the logical device that destroys the buffer viewbufferView
- the buffer view to destroypAllocator
- controls host memory allocation
-
vkCreateImage
public static int vkCreateImage(VkDevice device, VkImageCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pImage)
Creates a new image object.Images represent multidimensional - up to 3 - arrays of data which can be used for various purposes (e.g. attachments, textures), by binding them to the graphics pipeline via descriptor sets, or by directly specifying them as parameters to certain commands.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkImageCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pImage
must be a pointer to aVkImage
handle- If the
flags
member ofpCreateInfo
includesIMAGE_CREATE_SPARSE_BINDING_BIT
, creating thisVkImage
must not cause the total required sparse memory for all currently valid sparse resources on the device to exceedVkPhysicalDeviceLimits
::sparseAddressSpaceSize
- Parameters:
device
- the logical device that creates the imagepCreateInfo
- a pointer to an instance of theVkImageCreateInfo
structure containing parameters to be used to create the imagepAllocator
- controls host memory allocationpImage
- points to aVkImage
handle in which the resulting image object is returned
-
vkDestroyImage
public static void vkDestroyImage(VkDevice device, long image, VkAllocationCallbacks pAllocator)
Destroys an image object.Valid Usage
device
must be a validVkDevice
handle- If
image
is notNULL_HANDLE
,image
must be a validVkImage
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
image
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andimage
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
image
, either directly or via aVkImageView
, must have completed execution - If
VkAllocationCallbacks
were provided whenimage
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenimage
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
image
must be externally synchronized
- Parameters:
device
- the logical device that destroys the imageimage
- the image to destroypAllocator
- controls host memory allocation
-
vkGetImageSubresourceLayout
public static void vkGetImageSubresourceLayout(VkDevice device, long image, VkImageSubresource pSubresource, VkSubresourceLayout pLayout)
Queries the layout of an image subresource (mipLevel/arrayLayer) of an image created with linear tiling.Valid Usage
device
must be a validVkDevice
handleimage
must be a validVkImage
handlepSubresource
must be a pointer to a validVkImageSubresource
structurepLayout
must be a pointer to aVkSubresourceLayout
structureimage
must have been created, allocated or retrieved fromdevice
- Each of
device
andimage
must have been created, allocated or retrieved from the sameVkPhysicalDevice
image
must have been created withtiling
equal toIMAGE_TILING_LINEAR
- The
aspectMask
member ofpSubresource
must only have a single bit set
- Parameters:
device
- the logical device that owns the imageimage
- the image whose layout is being queriedpSubresource
- a pointer to aVkImageSubresource
structure selecting a specific image for the image subresourcepLayout
- points to aVkSubresourceLayout
structure in which the layout is returned
-
vkCreateImageView
public static int vkCreateImageView(VkDevice device, VkImageViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pView)
Creates an image view from an existing image.Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkImageViewCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pView
must be a pointer to aVkImageView
handle
- Parameters:
device
- the logical device that creates the image viewpCreateInfo
- a pointer to an instance of theVkImageViewCreateInfo
structure containing parameters to be used to create the image viewpAllocator
- controls host memory allocationpView
- points to aVkImageView
handle in which the resulting image view object is returned
-
vkDestroyImageView
public static void vkDestroyImageView(VkDevice device, long imageView, VkAllocationCallbacks pAllocator)
Destroys an image view object.Valid Usage
device
must be a validVkDevice
handle- If
imageView
is notNULL_HANDLE
,imageView
must be a validVkImageView
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
imageView
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andimageView
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
imageView
must have completed execution - If
VkAllocationCallbacks
were provided whenimageView
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenimageView
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
imageView
must be externally synchronized
- Parameters:
device
- the logical device that destroys the image viewimageView
- the image view to destroypAllocator
- controls host memory allocation
-
vkCreateShaderModule
public static int vkCreateShaderModule(VkDevice device, VkShaderModuleCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pShaderModule)
Creates a new shader module object.Shader modules contain shader code and one or more entry points. Shaders are selected from a shader module by specifying an entry point as part of pipeline creation. The stages of a pipeline can use shaders that come from different modules. The shader code defining a shader module must be in the SPIR-V format.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkShaderModuleCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pShaderModule
must be a pointer to aVkShaderModule
handle
- Parameters:
device
- the logical device that creates the shader modulepCreateInfo
- a pointer to an instance of theVkShaderModuleCreateInfo
structurepAllocator
- controls host memory allocationpShaderModule
- points to aVkShaderModule
handle in which the resulting render pass object is returned
-
vkDestroyShaderModule
public static void vkDestroyShaderModule(VkDevice device, long shaderModule, VkAllocationCallbacks pAllocator)
Destroys a shader module object.Valid Usage
device
must be a validVkDevice
handle- If
shaderModule
is notNULL_HANDLE
,shaderModule
must be a validVkShaderModule
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
shaderModule
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andshaderModule
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- If
VkAllocationCallbacks
were provided whenshaderModule
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenshaderModule
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
shaderModule
must be externally synchronized
- Parameters:
device
- the logical device that destroys the shader moduleshaderModule
- the handle of the shader module to destroypAllocator
- controls host memory allocation
-
vkCreatePipelineCache
public static int vkCreatePipelineCache(VkDevice device, VkPipelineCacheCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelineCache)
Creates a new pipeline cache object.Pipeline cache objects allow the result of pipeline construction to be reused between pipelines and between runs of an application. Reuse between pipelines is achieved by passing the same pipeline cache object when creating multiple related pipelines. Reuse across runs of an application is achieved by retrieving pipeline cache contents in one run of an application, saving the contents, and using them to preinitialize a pipeline cache on a subsequent run. The contents of the pipeline cache objects are managed by the implementation. Applications can manage the host memory consumed by a pipeline cache object and control the amount of data retrieved from a pipeline cache object.
Note
Applications can track and manage the total host memory size of a pipeline cache object using the
pAllocator
. Applications can limit the amount of data retrieved from a pipeline cache object inGetPipelineCacheData
. Implementations should not internally limit the total number of entries added to a pipeline cache object or the total host memory consumed.Once created, a pipeline cache can be passed to the
CreateGraphicsPipelines
andCreateComputePipelines
commands. If the pipeline cache passed into these commands is notNULL_HANDLE
, the implementation will query it for possible reuse opportunities and update it with new content. The use of the pipeline cache object in these commands is internally synchronized, and the same pipeline cache object can be used in multiple threads simultaneously.Note
Implementations should make every effort to limit any critical sections to the actual accesses to the cache, which is expected to be significantly shorter than the duration of the
vkCreateGraphicsPipelines
andvkCreateComputePipelines
commands.Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkPipelineCacheCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pPipelineCache
must be a pointer to aVkPipelineCache
handle
- Parameters:
device
- the logical device that creates the pipeline cache objectpCreateInfo
- a pointer to aVkPipelineCacheCreateInfo
structure that contains the initial parameters for the pipeline cache objectpAllocator
- controls host memory allocationpPipelineCache
- a pointer to aVkPipelineCache
handle in which the resulting pipeline cache object is returned
-
vkDestroyPipelineCache
public static void vkDestroyPipelineCache(VkDevice device, long pipelineCache, VkAllocationCallbacks pAllocator)
Destroys a pipeline cache object.Valid Usage
device
must be a validVkDevice
handle- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validVkPipelineCache
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
pipelineCache
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andpipelineCache
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- If
VkAllocationCallbacks
were provided whenpipelineCache
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenpipelineCache
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
pipelineCache
must be externally synchronized
- Parameters:
device
-pipelineCache
-pAllocator
- controls host memory allocation
-
vkGetPipelineCacheData
public static int vkGetPipelineCacheData(VkDevice device, long pipelineCache, PointerBuffer pDataSize, java.nio.ByteBuffer pData)
Retrieves data from a pipeline cache object.If
pData
isNULL
, then the maximum size of the data that can be retrieved from the pipeline cache, in bytes, is returned inpDataSize
. Otherwise,pDataSize
must point to a variable set by the user to the size of the buffer, in bytes, pointed to bypData
, and on return the variable is overwritten with the amount of data actually written topData
.If
dataSize
is less than the maximum size that can be retrieved by the pipeline cache, at mostpDataSize
bytes will be written topData
, andvkGetPipelineCacheData
will returnINCOMPLETE
. Any data written topData
is valid and can be provided as thepInitialData
member of theVkPipelineCacheCreateInfo
structure passed toCreatePipelineCache
.Valid Usage
device
must be a validVkDevice
handlepipelineCache
must be a validVkPipelineCache
handlepDataSize
must be a pointer to asize_t
value- If the value referenced by
pDataSize
is not 0, andpData
is notNULL
,pData
must be a pointer to an array ofpDataSize
bytes pipelineCache
must have been created, allocated or retrieved fromdevice
- Each of
device
andpipelineCache
must have been created, allocated or retrieved from the sameVkPhysicalDevice
Applications can store the data retrieved from the pipeline cache, and use these data, possibly in a future run of the application, to populate new pipeline cache objects. The results of pipeline compiles, however, may depend on the vendor ID, device ID, driver version, and other details of the device. To enable applications to detect when previously retrieved data is incompatible with the device, the initial bytes written to
pData
must be a header consisting of the following members:Offset Size Meaning 0 4 length in bytes of the entire pipeline cache header written as a stream of bytes, with the least significant byte first 4 4 a VkPipelineCacheHeaderVersion
value written as a stream of bytes, with the least significant byte first8 4 a vendor ID equal to VkPhysicalDeviceProperties
::vendorID
written as a stream of bytes, with the least significant byte first12 4 a device ID equal to VkPhysicalDeviceProperties::deviceID
written as a stream of bytes, with the least significant byte first16 UUID_SIZE
a pipeline cache ID equal to VkPhysicalDeviceProperties::pipelineCacheUUID
The first four bytes encode the length of the entire pipeline header, in bytes. This value includes all fields in the header including the pipeline cache version field and the size of the length field.
The next four bytes encode the pipeline cache version. This field is interpreted as an
VkPipelineCacheHeaderVersion
value, and must have one of the following values:typedef enum VkPipelineCacheHeaderVersion { VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, } VkPipelineCacheHeaderVersion;
A consumer of the pipeline cache should use the cache version to interpret the remainder of the cache header.
If
dataSize
is less than what is necessary to store this header, nothing will be written topData
and zero will be written todataSize
.- Parameters:
device
- the logical device that owns the pipeline cachepipelineCache
- the pipeline cache to retrieve data frompDataSize
- a pointer to a value related to the amount of data in the pipeline cachepData
- eitherNULL
or a pointer to a buffer
-
vkMergePipelineCaches
public static int vkMergePipelineCaches(VkDevice device, long dstCache, java.nio.LongBuffer pSrcCaches)
Merges pipeline cache objects.Note
The details of the merge operation are implementation dependent, but implementations should merge the contents of the specified pipelines and prune duplicate entries.
Valid Usage
device
must be a validVkDevice
handledstCache
must be a validVkPipelineCache
handlepSrcCaches
must be a pointer to an array ofsrcCacheCount
validVkPipelineCache
handlessrcCacheCount
must be greater than 0dstCache
must have been created, allocated or retrieved fromdevice
- Each element of
pSrcCaches
must have been created, allocated or retrieved fromdevice
- Each of
device
,dstCache
and the elements ofpSrcCaches
must have been created, allocated or retrieved from the sameVkPhysicalDevice
dstCache
must not appear in the list of source caches
Host Synchronization
- Host access to
dstCache
must be externally synchronized
- Parameters:
device
- the logical device that owns the pipeline cache objectsdstCache
- the handle of the pipeline cache to merge results intopSrcCaches
- an array of pipeline cache handles, which will be merged intodstCache
. The previous contents ofdstCache
are included after the merge.
-
vkCreateGraphicsPipelines
public static int vkCreateGraphicsPipelines(VkDevice device, long pipelineCache, VkGraphicsPipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelines)
Creates graphics pipelines.Graphics pipelines consist of multiple shader stages, multiple fixed-function pipeline stages, and a pipeline layout.
Valid Usage
device
must be a validVkDevice
handle- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validVkPipelineCache
handle pCreateInfos
must be a pointer to an array ofcreateInfoCount
validVkGraphicsPipelineCreateInfo
structures- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pPipelines
must be a pointer to an array ofcreateInfoCount
VkPipeline
handlescreateInfoCount
must be greater than 0- If
pipelineCache
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andpipelineCache
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- If the
flags
member of any given element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- Parameters:
device
- the logical device that creates the graphics pipelinespipelineCache
- eitherNULL_HANDLE
, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the commandpCreateInfos
- an array ofVkGraphicsPipelineCreateInfo
structurespAllocator
- controls host memory allocationpPipelines
- a pointer to an array in which the resulting graphics pipeline objects are returned
-
vkCreateComputePipelines
public static int vkCreateComputePipelines(VkDevice device, long pipelineCache, VkComputePipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelines)
Creates a new compute pipeline object.Compute pipelines consist of a single static compute shader stage and the pipeline layout.
The compute pipeline encapsulates a compute shader and is created by calling
vkCreateComputePipelines
withmodule
andpName
selecting an entry point from a shader module, where that entry point defines a valid compute shader, in theVkPipelineShaderStageCreateInfo
structure contained within theVkComputePipelineCreateInfo
structure.Valid Usage
device
must be a validVkDevice
handle- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validVkPipelineCache
handle pCreateInfos
must be a pointer to an array ofcreateInfoCount
validVkComputePipelineCreateInfo
structures- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pPipelines
must be a pointer to an array ofcreateInfoCount
VkPipeline
handlescreateInfoCount
must be greater than 0- If
pipelineCache
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andpipelineCache
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- If the
flags
member of any given element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- Parameters:
device
- the logical device that creates the compute pipelinespipelineCache
- eitherNULL_HANDLE
, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the commandpCreateInfos
- an array ofVkComputePipelineCreateInfo
structurespAllocator
- controls host memory allocationpPipelines
- a pointer to an array in which the resulting compute pipeline objects are returned
-
vkDestroyPipeline
public static void vkDestroyPipeline(VkDevice device, long pipeline, VkAllocationCallbacks pAllocator)
Destroys a graphics or compute pipeline object.Valid Usage
device
must be a validVkDevice
handle- If
pipeline
is notNULL_HANDLE
,pipeline
must be a validVkPipeline
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
pipeline
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andpipeline
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
pipeline
must have completed execution - If
VkAllocationCallbacks
were provided whenpipeline
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenpipeline
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
pipeline
must be externally synchronized
- Parameters:
device
- the logical device that destroys the pipelinepipeline
- the handle of the pipeline to destroypAllocator
- controls host memory allocation
-
vkCreatePipelineLayout
public static int vkCreatePipelineLayout(VkDevice device, VkPipelineLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelineLayout)
Creates a new pipeline layout object.Access to descriptor sets from a pipeline is accomplished through a pipeline layout. Zero or more descriptor set layouts and zero or more push constant ranges are combined to form a pipeline layout object which describes the complete set of resources that can be accessed by a pipeline. The pipeline layout represents a sequence of descriptor sets with each having a specific layout. This sequence of layouts is used to determine the interface between shader stages and shader resources. Each pipeline is created using a pipeline layout.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkPipelineLayoutCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pPipelineLayout
must be a pointer to aVkPipelineLayout
handle
Once created, pipeline layouts are used as part of pipeline creation, as part of binding descriptor sets, and as part of setting push constants. Pipeline creation accepts a pipeline layout as input, and the layout may be used to map (set, binding, arrayElement) tuples to hardware resources or memory locations within a descriptor set. The assignment of hardware resources depends only on the bindings defined in the descriptor sets that comprise the pipeline layout, and not on any shader source.
All resource variables statically used in all shaders in a pipeline must be declared with a (set, binding, arrayElement) that exists in the corresponding descriptor set layout and is of an appropriate descriptor type and includes the set of shader stages it is used by in
stageFlags
. The pipeline layout can include entries that are not used by a particular pipeline, or that are dead-code eliminated from any of the shaders. The pipeline layout allows the application to provide a consistent set of bindings across multiple pipeline compiles, which enables those pipelines to be compiled in a way that the implementation may cheaply switch pipelines without reprogramming the bindings.Similarly, the push constant block declared in each shader (if present) must only place variables at offsets that are each included in a push constant range with
stageFlags
including the bit corresponding to the shader stage that uses it. The pipeline layout can include ranges or portions of ranges that are not used by a particular pipeline, or for which the variables have been dead-code eliminated from any of the shaders.There is a limit on the total number of resources of each type that can be included in bindings in all descriptor set layouts in a pipeline layout as shown in the table below. The “Total Resources Available” column gives the limit on the number of each type of resource that can be included in bindings in all descriptor sets in the pipeline layout. Some resource types count against multiple limits. Additionally, there are limits on the total number of each type of resource that can be used in any pipeline stage.
Total Resources Available Resource Types maxDescriptorSetSamplers sampler combined image sampler maxDescriptorSetSampledImages sampled image combined image sampler uniform texel buffer maxDescriptorSetStorageImages storage image storage texel buffer maxDescriptorSetUniformBuffers uniform buffer uniform buffer dynamic maxDescriptorSetUniformBuffersDynamic uniform buffer dynamic maxDescriptorSetStorageBuffers storage buffer storage buffer dynamic maxDescriptorSetStorageBuffersDynamic storage buffer dynamic maxDescriptorSetInputAttachments input attachment Pipeline Layout Compatibility
Two pipeline layouts are defined to be “compatible for push constants” if they were created with identical push constant ranges. Two pipeline layouts are defined to be “compatible for set N” if they were created with matching (the same, or identically defined) descriptor set layouts for sets zero through N, and if they were created with identical push constant ranges.
When binding a descriptor set to set number N, if the previously bound descriptor sets for sets zero through N-1 were all bound using compatible pipeline layouts, then performing this binding does not disturb any of the lower numbered sets. If, additionally, the previous bound descriptor set for set N was bound using a pipeline layout compatible for set N, then the bindings in sets numbered greater than N are also not disturbed.
Similarly, when binding a pipeline, the pipeline can correctly access any previously bound descriptor sets which were bound with compatible pipeline layouts, as long as all lower numbered sets were also bound with compatible layouts.
Layout compatibility means that descriptor sets can be bound to a command buffer for use by any pipeline created with a compatible pipeline layout, and without having bound a particular pipeline first. It also means that descriptor sets can remain valid across a pipeline change, and the same resources will be accessible to the newly bound pipeline.
Implementor’s Note
A consequence of layout compatibility is that when the implementation compiles a pipeline layout and assigns hardware units to resources, the mechanism to assign hardware units for set N should only be a function of sets [0..N].
Note
Place the least frequently changing descriptor sets near the start of the pipeline layout, and place the descriptor sets representing the most frequently changing resources near the end. When pipelines are switched, only the descriptor set bindings that have been invalidated will need to be updated and the remainder of the descriptor set bindings will remain in place.
The maximum number of descriptor sets that can be bound to a pipeline layout is queried from physical device properties (see
VkPhysicalDeviceLimits
::maxBoundDescriptorSets
).- Parameters:
device
- the logical device that creates the pipeline layoutpCreateInfo
- a pointer to an instance of theVkPipelineLayoutCreateInfo
structure specifying the state of the pipeline layout objectpAllocator
- controls host memory allocationpPipelineLayout
- points to aVkPipelineLayout
handle in which the resulting pipeline layout object is returned
-
vkDestroyPipelineLayout
public static void vkDestroyPipelineLayout(VkDevice device, long pipelineLayout, VkAllocationCallbacks pAllocator)
Destroys a pipeline layout object.Valid Usage
device
must be a validVkDevice
handle- If
pipelineLayout
is notNULL_HANDLE
,pipelineLayout
must be a validVkPipelineLayout
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
pipelineLayout
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andpipelineLayout
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- If
VkAllocationCallbacks
were provided whenpipelineLayout
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenpipelineLayout
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
pipelineLayout
must be externally synchronized
- Parameters:
device
- the logical device that destroys the pipeline layoutpipelineLayout
- the pipeline layout to destroypAllocator
- controls host memory allocation
-
vkCreateSampler
public static int vkCreateSampler(VkDevice device, VkSamplerCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSampler)
Creates a new sampler object.VkSampler
objects encapsulate the state of an image sampler which is used by the implementation to read image data and apply filtering and other transformations for the shader.Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkSamplerCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pSampler
must be a pointer to aVkSampler
handle
- Parameters:
device
- the logical device that creates the samplerpCreateInfo
- a pointer to an instance of theVkSamplerCreateInfo
structure specifying the state of the sampler objectpAllocator
- controls host memory allocationpSampler
- points to aVkSampler
handle in which the resulting sampler object is returned
-
vkDestroySampler
public static void vkDestroySampler(VkDevice device, long sampler, VkAllocationCallbacks pAllocator)
Destroys a sampler object.Valid Usage
device
must be a validVkDevice
handle- If
sampler
is notNULL_HANDLE
,sampler
must be a validVkSampler
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
sampler
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andsampler
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
sampler
must have completed execution - If
VkAllocationCallbacks
were provided whensampler
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whensampler
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
sampler
must be externally synchronized
- Parameters:
device
- the logical device that destroys the samplersampler
- the sampler to destroypAllocator
- controls host memory allocation
-
vkCreateDescriptorSetLayout
public static int vkCreateDescriptorSetLayout(VkDevice device, VkDescriptorSetLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSetLayout)
Creates a new descriptor set layout object.A descriptor set layout object is defined by an array of zero or more descriptor bindings. Each individual descriptor binding is specified by a descriptor type, a count (array size) of the number of descriptors in the binding, a set of shader stages that can access the binding, and (if using immutable samplers) an array of sampler descriptors.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkDescriptorSetLayoutCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pSetLayout
must be a pointer to aVkDescriptorSetLayout
handle
- Parameters:
device
- the logical device that creates the descriptor set layoutpCreateInfo
- a pointer to an instance of theVkDescriptorSetLayoutCreateInfo
structure specifying the state of the descriptor set layout objectpAllocator
- controls host memory allocationpSetLayout
- points to aVkDescriptorSetLayout
handle in which the resulting descriptor set layout object is returned
-
vkDestroyDescriptorSetLayout
public static void vkDestroyDescriptorSetLayout(VkDevice device, long descriptorSetLayout, VkAllocationCallbacks pAllocator)
Destroys a descriptor set layout object.Valid Usage
device
must be a validVkDevice
handle- If
descriptorSetLayout
is notNULL_HANDLE
,descriptorSetLayout
must be a validVkDescriptorSetLayout
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
descriptorSetLayout
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
anddescriptorSetLayout
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- If
VkAllocationCallbacks
were provided whendescriptorSetLayout
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whendescriptorSetLayout
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
descriptorSetLayout
must be externally synchronized
- Parameters:
device
- the logical device that destroys the descriptor set layoutdescriptorSetLayout
- the descriptor set layout to destroypAllocator
- controls host memory allocation
-
vkCreateDescriptorPool
public static int vkCreateDescriptorPool(VkDevice device, VkDescriptorPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pDescriptorPool)
Creates a descriptor pool object.Descriptor sets are allocated from descriptor pool objects. A descriptor pool maintains a pool of descriptors, from which sets are allocated. Descriptor pools are externally synchronized, meaning that the application must not allocate and/or free descriptor sets from the same pool in multiple threads simultaneously.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkDescriptorPoolCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pDescriptorPool
must be a pointer to aVkDescriptorPool
handle
- Parameters:
device
- the logical device that creates the descriptor poolpCreateInfo
- a pointer to an instance of theVkDescriptorPoolCreateInfo
structure specifying the state of the descriptor pool objectpAllocator
- controls host memory allocationpDescriptorPool
- points to aVkDescriptorPool
handle in which the resulting descriptor pool object is returned
-
vkDestroyDescriptorPool
public static void vkDestroyDescriptorPool(VkDevice device, long descriptorPool, VkAllocationCallbacks pAllocator)
Destroys a descriptor pool object.When a pool is destroyed, all descriptor sets allocated from the pool are implicitly freed and become invalid. Descriptor sets allocated from a given pool do not need to be freed before destroying that descriptor pool.
Valid Usage
device
must be a validVkDevice
handle- If
descriptorPool
is notNULL_HANDLE
,descriptorPool
must be a validVkDescriptorPool
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
descriptorPool
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
anddescriptorPool
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
descriptorPool
(via any allocated descriptor sets) must have completed execution - If
VkAllocationCallbacks
were provided whendescriptorPool
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whendescriptorPool
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
descriptorPool
must be externally synchronized
- Parameters:
device
- the logical device that destroys the descriptor pooldescriptorPool
- the descriptor pool to destroypAllocator
- controls host memory allocation
-
vkResetDescriptorPool
public static int vkResetDescriptorPool(VkDevice device, long descriptorPool, int flags)
Resets a descriptor pool object.Rather than freeing individual descriptor sets, all descriptor sets allocated from a given pool can be returned to the pool by calling this function.
Resetting a descriptor pool recycles all of the resources from all of the descriptor sets allocated from the descriptor pool back to the descriptor pool, and the descriptor sets are implicitly freed.
Valid Usage
device
must be a validVkDevice
handledescriptorPool
must be a validVkDescriptorPool
handleflags
must be 0descriptorPool
must have been created, allocated or retrieved fromdevice
- Each of
device
anddescriptorPool
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All uses of
descriptorPool
(via any allocated descriptor sets) must have completed execution
Host Synchronization
- Host access to
descriptorPool
must be externally synchronized - Host access to any
VkDescriptorSet
objects allocated fromdescriptorPool
must be externally synchronized
- Parameters:
device
- the logical device that owns the descriptor pooldescriptorPool
- the descriptor pool to be resetflags
- is currently unused and must be zero
-
vkAllocateDescriptorSets
public static int vkAllocateDescriptorSets(VkDevice device, VkDescriptorSetAllocateInfo pAllocateInfo, java.nio.LongBuffer pDescriptorSets)
Allocates descriptor sets from a descriptor pool.When a descriptor set is allocated, the initial state is largely uninitialized and all descriptors are undefined. However, the descriptor set can be bound in a command buffer without causing errors or exceptions. All entries that are statically used by a pipeline in a drawing or dispatching command must have been populated before the descriptor set is bound for use by that command. Entries that are not statically used by a pipeline can have uninitialized descriptors or descriptors of resources that have been destroyed, and executing a draw or dispatch with such a descriptor set bound does not cause undefined behavior. This means applications need not populate unused entries with dummy descriptors.
Valid Usage
device
must be a validVkDevice
handlepAllocateInfo
must be a pointer to a validVkDescriptorSetAllocateInfo
structurepDescriptorSets
must be a pointer to an array ofpAllocateInfo
->descriptorSetCountVkDescriptorSet
handles
Host Synchronization
- Host access to
pAllocateInfo
->descriptorPool must be externally synchronized
- Parameters:
device
- the logical device that owns the descriptor poolpAllocateInfo
- a pointer to an instance of theVkDescriptorSetAllocateInfo
structure describing parameters of the allocationpDescriptorSets
- a pointer to an array ofVkDescriptorSet
handles in which the resulting descriptor set objects are returned. The array must be at least the length specified by thedescriptorSetCount
member ofpAllocateInfo
.
-
vkFreeDescriptorSets
public static int vkFreeDescriptorSets(VkDevice device, long descriptorPool, java.nio.LongBuffer pDescriptorSets)
Frees one or more descriptor sets.Valid Usage
device
must be a validVkDevice
handledescriptorPool
must be a validVkDescriptorPool
handledescriptorSetCount
must be greater than 0descriptorPool
must have been created, allocated or retrieved fromdevice
- Each element of
pDescriptorSets
that is a valid handle must have been created, allocated or retrieved fromdescriptorPool
- Each of
device
,descriptorPool
and the elements ofpDescriptorSets
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to any element of
pDescriptorSets
must have completed execution pDescriptorSets
must be a pointer to an array ofdescriptorSetCount
VkDescriptorSet
handles, each element of which must either be a valid handle orNULL_HANDLE
descriptorPool
must have been created with theDESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
flag
Host Synchronization
- Host access to
descriptorPool
must be externally synchronized - Host access to each member of
pDescriptorSets
must be externally synchronized
- Parameters:
device
- the logical device that owns the descriptor pooldescriptorPool
- the descriptor pool from which the descriptor sets were allocatedpDescriptorSets
- an array of handles toVkDescriptorSet
objects. All elements ofpDescriptorSets
must have been allocated fromdescriptorPool
.
-
vkFreeDescriptorSets
public static int vkFreeDescriptorSets(VkDevice device, long descriptorPool, long pDescriptorSet)
Frees one or more descriptor sets.Valid Usage
device
must be a validVkDevice
handledescriptorPool
must be a validVkDescriptorPool
handledescriptorSetCount
must be greater than 0descriptorPool
must have been created, allocated or retrieved fromdevice
- Each element of
pDescriptorSets
that is a valid handle must have been created, allocated or retrieved fromdescriptorPool
- Each of
device
,descriptorPool
and the elements ofpDescriptorSets
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to any element of
pDescriptorSets
must have completed execution pDescriptorSets
must be a pointer to an array ofdescriptorSetCount
VkDescriptorSet
handles, each element of which must either be a valid handle orNULL_HANDLE
descriptorPool
must have been created with theDESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
flag
Host Synchronization
- Host access to
descriptorPool
must be externally synchronized - Host access to each member of
pDescriptorSets
must be externally synchronized
- Parameters:
device
- the logical device that owns the descriptor pooldescriptorPool
- the descriptor pool from which the descriptor sets were allocated
-
vkUpdateDescriptorSets
public static void vkUpdateDescriptorSets(VkDevice device, VkWriteDescriptorSet.Buffer pDescriptorWrites, VkCopyDescriptorSet.Buffer pDescriptorCopies)
Updates the contents of a descriptor set object.Once allocated, descriptor sets can be updated with a combination of write and copy operations.
Valid Usage
device
must be a validVkDevice
handle- If
descriptorWriteCount
is not 0,pDescriptorWrites
must be a pointer to an array ofdescriptorWriteCount
validVkWriteDescriptorSet
structures - If
descriptorCopyCount
is not 0,pDescriptorCopies
must be a pointer to an array ofdescriptorCopyCount
validVkCopyDescriptorSet
structures
Host Synchronization
- Host access to
pDescriptorWrites
[].dstSet must be externally synchronized - Host access to
pDescriptorCopies
[].dstSet must be externally synchronized
- Parameters:
device
- the logical device that updates the descriptor setspDescriptorWrites
- a pointer to an array ofVkWriteDescriptorSet
structures describing the descriptor sets to write topDescriptorCopies
- a pointer to an array ofVkCopyDescriptorSet
structures describing the descriptor sets to copy between
-
vkCreateFramebuffer
public static int vkCreateFramebuffer(VkDevice device, VkFramebufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pFramebuffer)
Creates a new framebuffer object.Render passes operate in conjunction with framebuffers, which represent a collection of specific memory attachments that a render pass instance uses.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkFramebufferCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pFramebuffer
must be a pointer to aVkFramebuffer
handle
- Parameters:
device
- the logical device that creates the framebufferpCreateInfo
- points to aVkFramebufferCreateInfo
structure which describes additional information about framebuffer creationpAllocator
- controls host memory allocationpFramebuffer
- points to aVkFramebuffer
handle in which the resulting framebuffer object is returned
-
vkDestroyFramebuffer
public static void vkDestroyFramebuffer(VkDevice device, long framebuffer, VkAllocationCallbacks pAllocator)
Destroys a framebuffer object.Valid Usage
device
must be a validVkDevice
handle- If
framebuffer
is notNULL_HANDLE
,framebuffer
must be a validVkFramebuffer
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
framebuffer
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andframebuffer
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
framebuffer
must have completed execution - If
VkAllocationCallbacks
were provided whenframebuffer
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenframebuffer
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
framebuffer
must be externally synchronized
- Parameters:
device
- the logical device that destroys the framebufferframebuffer
- the handle of the framebuffer to destroypAllocator
- controls host memory allocation
-
vkCreateRenderPass
public static int vkCreateRenderPass(VkDevice device, VkRenderPassCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pRenderPass)
Creates a new render pass object.Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkRenderPassCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pRenderPass
must be a pointer to aVkRenderPass
handle
- Parameters:
device
- the logical device that creates the render passpCreateInfo
- a pointer to an instance of theVkRenderPassCreateInfo
structure that describes the parameters of the render passpAllocator
- controls host memory allocationpRenderPass
- points to aVkRenderPass
handle in which the resulting render pass object is returned
-
vkDestroyRenderPass
public static void vkDestroyRenderPass(VkDevice device, long renderPass, VkAllocationCallbacks pAllocator)
Destroys a render pass object.Valid Usage
device
must be a validVkDevice
handle- If
renderPass
is notNULL_HANDLE
,renderPass
must be a validVkRenderPass
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
renderPass
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andrenderPass
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All submitted commands that refer to
renderPass
must have completed execution - If
VkAllocationCallbacks
were provided whenrenderPass
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenrenderPass
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
renderPass
must be externally synchronized
- Parameters:
device
- the logical device that destroys the render passrenderPass
- the handle of the render pass to destroypAllocator
- controls host memory allocation
-
vkGetRenderAreaGranularity
public static void vkGetRenderAreaGranularity(VkDevice device, long renderPass, VkExtent2D pGranularity)
Queries the granularity for optimal render area.The conditions leading to an optimal
renderArea
are:- the
offset.x
member inrenderArea
is a multiple of the width member of the returnedVkExtent2D
(the horizontal granularity). - the
offset.y
member inrenderArea
is a multiple of the height of the returnedVkExtent2D
(the vertical granularity). - either the
offset.width
member inrenderArea
is a multiple of the horizontal granularity oroffset.x+offset.width
is equal to the width of the framebuffer in theVkRenderPassBeginInfo
. - either the
offset.height
member inrenderArea
is a multiple of the vertical granularity oroffset.y+offset.height
is equal to the height of the framebuffer in theVkRenderPassBeginInfo
.
Valid Usage
device
must be a validVkDevice
handlerenderPass
must be a validVkRenderPass
handlepGranularity
must be a pointer to aVkExtent2D
structurerenderPass
must have been created, allocated or retrieved fromdevice
- Each of
device
andrenderPass
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device
- the logical device that owns the render passrenderPass
- a handle to a render passpGranularity
- points to aVkExtent2D
structure in which the granularity is returned
- the
-
vkCreateCommandPool
public static int vkCreateCommandPool(VkDevice device, VkCommandPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pCommandPool)
Creates a new command pool object.Command pools are opaque objects that command buffer memory is allocated from, and which allow the implementation to amortize the cost of resource creation across multiple command buffers. Command pools are application-synchronized, meaning that a command pool must not be used concurrently in multiple threads. That includes use via recording commands on any command buffers allocated from the pool, as well as operations that allocate, free, and reset command buffers or the pool itself.
Valid Usage
device
must be a validVkDevice
handlepCreateInfo
must be a pointer to a validVkCommandPoolCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure pCommandPool
must be a pointer to aVkCommandPool
handle
- Parameters:
device
- the logical device that creates the command poolpCreateInfo
- contains information used to create the command poolpAllocator
- controls host memory allocationpCommandPool
- points to anVkCommandPool
handle in which the created pool is returned
-
vkDestroyCommandPool
public static void vkDestroyCommandPool(VkDevice device, long commandPool, VkAllocationCallbacks pAllocator)
Destroys a command pool object.When a pool is destroyed, all command buffers allocated from the pool are implicitly freed and become invalid. Command buffers allocated from a given pool do not need to be freed before destroying that command pool.
Valid Usage
device
must be a validVkDevice
handle- If
commandPool
is notNULL_HANDLE
,commandPool
must be a validVkCommandPool
handle - If
pAllocator
is notNULL
,pAllocator
must be a pointer to a validVkAllocationCallbacks
structure - If
commandPool
is a valid handle, it must have been created, allocated or retrieved fromdevice
- Each of
device
andcommandPool
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All
VkCommandBuffer
objects allocated fromcommandPool
must not be pending execution - If
VkAllocationCallbacks
were provided whencommandPool
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whencommandPool
was created,pAllocator
must beNULL
Host Synchronization
- Host access to
commandPool
must be externally synchronized
- Parameters:
device
- the logical device that destroys the command poolcommandPool
- the handle of the command pool to destroypAllocator
- controls host memory allocation
-
vkResetCommandPool
public static int vkResetCommandPool(VkDevice device, long commandPool, int flags)
Resets a command pool.Valid Usage
device
must be a validVkDevice
handlecommandPool
must be a validVkCommandPool
handleflags
must be a valid combination ofVkCommandPoolResetFlagBits
valuescommandPool
must have been created, allocated or retrieved fromdevice
- Each of
device
andcommandPool
must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All
VkCommandBuffer
objects allocated fromcommandPool
must not currently be pending execution
Host Synchronization
- Host access to
commandPool
must be externally synchronized
- Parameters:
device
- the logical device that owns the command poolcommandPool
- the command pool to resetflags
- contains additional flags controlling the behavior of the reset. One or more of:COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
-
vkAllocateCommandBuffers
public static int vkAllocateCommandBuffers(VkDevice device, VkCommandBufferAllocateInfo pAllocateInfo, PointerBuffer pCommandBuffers)
Allocates command buffers.Valid Usage
device
must be a validVkDevice
handlepAllocateInfo
must be a pointer to a validVkCommandBufferAllocateInfo
structurepCommandBuffers
must be a pointer to an array ofpAllocateInfo
->commandBufferCountVkCommandBuffer
handles
Host Synchronization
- Host access to
pAllocateInfo
->commandPool must be externally synchronized
- Parameters:
device
- the logical device that owns the command poolpAllocateInfo
- an instance of theVkCommandBufferAllocateInfo
structure which defines additional information about creating the poolpCommandBuffers
- points to an array in which the allocated command buffers are returned. Each allocated command buffer begins in the initial state.
-
vkFreeCommandBuffers
public static void vkFreeCommandBuffers(VkDevice device, long commandPool, PointerBuffer pCommandBuffers)
Frees command buffers.Valid Usage
device
must be a validVkDevice
handlecommandPool
must be a validVkCommandPool
handlecommandBufferCount
must be greater than 0commandPool
must have been created, allocated or retrieved fromdevice
- Each element of
pCommandBuffers
that is a valid handle must have been created, allocated or retrieved fromcommandPool
- Each of
device
,commandPool
and the elements ofpCommandBuffers
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All elements of
pCommandBuffers
must not be pending execution pCommandBuffers
must be a pointer to an array ofcommandBufferCount
VkCommandBuffer
handles, each element of which must either be a valid handle orNULL_HANDLE
Host Synchronization
- Host access to
commandPool
must be externally synchronized - Host access to each member of
pCommandBuffers
must be externally synchronized
- Parameters:
device
- the logical device that owns the command poolcommandPool
- the handle of the command pool that the command buffers were allocated frompCommandBuffers
- an array of handles of command buffers to free
-
vkFreeCommandBuffers
public static void vkFreeCommandBuffers(VkDevice device, long commandPool, VkCommandBuffer pCommandBuffer)
Frees command buffers.Valid Usage
device
must be a validVkDevice
handlecommandPool
must be a validVkCommandPool
handlecommandBufferCount
must be greater than 0commandPool
must have been created, allocated or retrieved fromdevice
- Each element of
pCommandBuffers
that is a valid handle must have been created, allocated or retrieved fromcommandPool
- Each of
device
,commandPool
and the elements ofpCommandBuffers
that are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice
- All elements of
pCommandBuffers
must not be pending execution pCommandBuffers
must be a pointer to an array ofcommandBufferCount
VkCommandBuffer
handles, each element of which must either be a valid handle orNULL_HANDLE
Host Synchronization
- Host access to
commandPool
must be externally synchronized - Host access to each member of
pCommandBuffers
must be externally synchronized
- Parameters:
device
- the logical device that owns the command poolcommandPool
- the handle of the command pool that the command buffers were allocated from
-
vkBeginCommandBuffer
public static int vkBeginCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferBeginInfo pBeginInfo)
Starts recording a command buffer.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepBeginInfo
must be a pointer to a validVkCommandBufferBeginInfo
structurecommandBuffer
must not be in the recording statecommandBuffer
must not currently be pending execution- If
commandBuffer
was allocated from aVkCommandPool
which did not have theCOMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
flag set,commandBuffer
must be in the initial state. - If
commandBuffer
is a secondary command buffer, thepInheritanceInfo
member ofpBeginInfo
must be a validVkCommandBufferInheritanceInfo
structure - If
commandBuffer
is a secondary command buffer and either theocclusionQueryEnable
member of thepInheritanceInfo
member ofpBeginInfo
isFALSE
, or the precise occlusion queries feature is not enabled, thequeryFlags
member of thepInheritanceInfo
memberpBeginInfo
must not containQUERY_CONTROL_PRECISE_BIT
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
A primary command buffer is considered to be pending execution from the time it is submitted via
QueueSubmit
until that submission completes.A secondary command buffer is considered to be pending execution from the time its execution is recorded into a primary buffer (via
CmdExecuteCommands
) until the final time that primary buffer’s submission to a queue completes. If, after the primary buffer completes, the secondary command buffer is recorded to execute on a different primary buffer, the first primary buffer must not be resubmitted until after it is reset withResetCommandBuffer
unless the secondary command buffer was recorded withCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
.If
COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
is not set on a secondary command buffer, that command buffer must not be used more than once in a given primary command buffer. Furthermore, if a secondary command buffer withoutCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
set is recorded to execute in a primary command buffer withCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
set, the primary command buffer must not be pending execution more than once at a time.Note
On some implementations, not using the
COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
bit enables command buffers to be patched in-place if needed, rather than creating a copy of the command buffer.If a command buffer is in the executable state and the command buffer was allocated from a command pool with the
COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
flag set, thenvkBeginCommandBuffer
implicitly resets the command buffer, behaving as ifResetCommandBuffer
had been called withCOMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
not set. It then puts the command buffer in the recording state.Once recording starts, an application records a sequence of commands (
vkCmd*
) to set state in the command buffer, draw, dispatch, and other commands.- Parameters:
commandBuffer
- the handle of the command buffer which is to be put in the recording statepBeginInfo
- an instance of theVkCommandBufferBeginInfo
structure, which defines additional information about how the command buffer begins recording
-
vkEndCommandBuffer
public static int vkEndCommandBuffer(VkCommandBuffer commandBuffer)
Completes recording a command buffer.If there was an error during recording, the application will be notified by an unsuccessful return code returned by
vkEndCommandBuffer
. If the application wishes to further use the command buffer, the command buffer must be reset.When a command buffer is in the executable state, it can be submitted to a queue for execution.
Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording stateEndCommandBuffer
must not be called inside a render pass instance- All queries made active during the recording of
commandBuffer
must have been made inactive
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer to complete recording. The command buffer must have been in the recording state, and is moved to the executable state.
-
vkResetCommandBuffer
public static int vkResetCommandBuffer(VkCommandBuffer commandBuffer, int flags)
Resets a command buffer.If
flags
includesCOMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
, then most or all memory resources currently owned by the command buffer should be returned to the parent command pool. If this flag is not set, then the command buffer may hold onto memory resources and reuse them when recording commands.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleflags
must be a valid combination ofVkCommandBufferResetFlagBits
valuescommandBuffer
must not currently be pending executioncommandBuffer
must have been allocated from a pool that was created with theCOMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer to reset. The command buffer can be in any state, and is put in the initial state.flags
- is of typeVkCommandBufferResetFlags
. One or more of:COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
-
vkCmdBindPipeline
public static void vkCmdBindPipeline(VkCommandBuffer commandBuffer, int pipelineBindPoint, long pipeline)
Binds a pipeline object to a command buffer.Once bound, a pipeline binding affects subsequent graphics or compute commands in the command buffer until a different pipeline is bound to the bind point. The pipeline bound to
PIPELINE_BIND_POINT_COMPUTE
controls the behavior ofCmdDispatch
andCmdDispatchIndirect
. The pipeline bound toPIPELINE_BIND_POINT_GRAPHICS
controls the behavior ofCmdDraw
,CmdDrawIndexed
,CmdDrawIndirect
, andCmdDrawIndexedIndirect
. No other commands are affected by the pipeline state.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepipelineBindPoint
must be a validVkPipelineBindPoint
valuepipeline
must be a validVkPipeline
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - Each of
commandBuffer
andpipeline
must have been created, allocated or retrieved from the sameVkDevice
- If
pipelineBindPoint
isPIPELINE_BIND_POINT_COMPUTE
, theVkCommandPool
thatcommandBuffer
was allocated from must support compute operations - If
pipelineBindPoint
isPIPELINE_BIND_POINT_GRAPHICS
, theVkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - If
pipelineBindPoint
isPIPELINE_BIND_POINT_COMPUTE
,pipeline
must be a compute pipeline - If
pipelineBindPoint
isPIPELINE_BIND_POINT_GRAPHICS
,pipeline
must be a graphics pipeline - If the variable multisample rate feature is not supported,
pipeline
is a graphics pipeline, the current subpass has no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer that the pipeline will be bound topipelineBindPoint
- the bind point. There are separate bind points for each of graphics and compute, so binding one does not disturb the other. One of:PIPELINE_BIND_POINT_GRAPHICS
PIPELINE_BIND_POINT_COMPUTE
pipeline
- the pipeline to be bound
-
vkCmdSetViewport
public static void vkCmdSetViewport(VkCommandBuffer commandBuffer, int firstViewport, VkViewport.Buffer pViewports)
Sets the viewport on a command buffer.If the bound pipeline state object was not created with the
DYNAMIC_STATE_VIEWPORT
dynamic state enabled, viewport transformation parameters are specified using thepViewports
member ofVkPipelineViewportStateCreateInfo
in the pipeline state object. If the pipeline state object was created with theDYNAMIC_STATE_VIEWPORT
dynamic state enabled, the viewport transformation parameters are dynamically set and changed with this command.The viewport parameters taken from element
i
ofpViewports
replace the current state for the viewport indexfirstViewport + i
, fori
in[0,viewportCount)
.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepViewports
must be a pointer to an array ofviewportCount
validVkViewport
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations viewportCount
must be greater than 0firstViewport
must be less thanVkPhysicalDeviceLimits
::maxViewports
- The sum of
firstViewport
andviewportCount
must be between 1 andVkPhysicalDeviceLimits
::maxViewports
, inclusive
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedfirstViewport
- the index of the first viewport whose parameters are updated by the commandpViewports
- a pointer to an array ofVkViewport
structures specifying viewport parameters
-
vkCmdSetScissor
public static void vkCmdSetScissor(VkCommandBuffer commandBuffer, int firstScissor, VkRect2D.Buffer pScissors)
Sets the dynamic scissor rectangles on a command buffer.The scissor test determines if a fragment’s framebuffer coordinates
(xf,yf)
lie within the scissor rectangle corresponding to the viewport index used by the primitive that generated the fragment. If the pipeline state object is created withoutDYNAMIC_STATE_SCISSOR
enabled then the scissor rectangles are set by theVkPipelineViewportStateCreateInfo
state of the pipeline state object. Otherwise, use this command to dynamically set the scissor rectangles.The scissor rectangles taken from element
i
ofpScissors
replace the current state for the scissor indexfirstScissor + i
, fori
in[0,scissorCount)
.Each scissor rectangle is described by a
VkRect2D
structure, with theoffset.x
andoffset.y
values determining the upper left corner of the scissor rectangle, and theextent.width
andextent.height
values determining the size in pixels.If
offset.x ≤ xf < offset.x + extent.width
andoffset.y ≤ yf < offset.y + extent.height
for the selected scissor rectangle, then the scissor test passes. Otherwise, the test fails and the fragment is discarded. For points, lines, and polygons, the scissor rectangle for a primitive is selected in the same manner as the viewport. The scissor rectangles only apply to drawing commands, not to other commands like clears or copies.It is legal for
offset.x + extent.width
oroffset.y + extent.height
to exceed the dimensions of the framebuffer - the scissor test still applies as defined above. Rasterization does not produce fragments outside of the framebuffer, so such fragments never have the scissor test performed on them.The scissor test is always performed. Applications can effectively disable the scissor test by specifying a scissor rectangle that encompasses the entire framebuffer.
Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepScissors
must be a pointer to an array ofscissorCount
VkRect2D
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations scissorCount
must be greater than 0firstScissor
must be less thanVkPhysicalDeviceLimits
::maxViewports
- The sum of
firstScissor
andscissorCount
must be between 1 andVkPhysicalDeviceLimits
::maxViewports
, inclusive - The
x
andy
members ofoffset
must be greater than or equal to 0 - Evaluation of (
offset.x
+extent.width
) must not cause a signed integer addition overflow - Evaluation of (
offset.y
+extent.height
) must not cause a signed integer addition overflow
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedfirstScissor
- the index of the first scissor whose state is updated by the commandpScissors
- a pointer to an array ofVkRect2D
structures defining scissor rectangles
-
vkCmdSetLineWidth
public static void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth)
Sets the dynamic line width state.A line is drawn by generating a set of fragments overlapping a rectangle centered on the line segment. Each line segment has an associated width that controls the width of that rectangle.
The line width is set by the
lineWidth
property ofVkPipelineRasterizationStateCreateInfo
in the currently active pipeline if the pipeline was not created withDYNAMIC_STATE_LINE_WIDTH
enabled. Otherwise, the line width is set by callingvkCmdSetLineWidth
.Not all line widths need be supported for line segment rasterization, but width 1.0 antialiased segments must be provided. The range and gradations are obtained from the
lineWidthRange
andlineWidthGranularity
members ofVkPhysicalDeviceLimits
. If, for instance, the size range is from 0.1 to 2.0 and the gradation size is 0.1, then the size 0.1, 0.2, …, 1.9, 2.0 are supported. Additional line widths may also be supported. There is no requirement that these widths be equally spaced. If an unsupported width is requested, the nearest supported width is used instead.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - If the wide lines feature is not enabled,
lineWidth
must be1.0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedlineWidth
- the width of rasterized line segments
-
vkCmdSetDepthBias
public static void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor)
Sets the depth bias dynamic state.The depth values of all fragments generated by the rasterization of a polygon can be offset by a single value that is computed for that polygon. This behavior is controlled by the
depthBiasEnable
,depthBiasConstantFactor
,depthBiasClamp
, anddepthBiasSlopeFactor
members ofVkPipelineRasterizationStateCreateInfo
, or by the corresponding parameters to thevkCmdSetDepthBias
command if depth bias state is dynamic.If
depthBiasEnable
isFALSE
, no depth bias is applied and the fragment’s depth values are unchanged.depthBiasSlopeFactor
scales the maximum depth slope of the polygon, anddepthBiasConstantFactor
scales an implementation-dependent constant that relates to the usable resolution of the depth buffer. The resulting values are summed to produce the depth bias value which is then clamped to a minimum or maximum value specified bydepthBiasClamp
.depthBiasSlopeFactor
,depthBiasConstantFactor
, anddepthBiasClamp
can each be positive, negative, or zero.The maximum depth slope mm of a triangle is
m = sqrt((∂zf / ∂xf)2 + (∂zf / ∂yf)2)
where
(xf,yf,zf)
is a point on the triangle.m
may be approximated asm = max(abs(∂zf / ∂xf), abs(∂zf / ∂yf))
The minimum resolvable difference
r
is an implementation-dependent parameter that depends on the depth buffer representation. It is the smallest difference in framebuffer coordinatez
values that is guaranteed to remain distinct throughout polygon rasterization and in the depth buffer. All pairs of fragments generated by the rasterization of two polygons with otherwise identical vertices, butzf
values that differ byr
, will have distinct depth values.For fixed-point depth buffer representations,
r
is constant throughout the range of the entire depth buffer. For floating-point depth buffers, there is no single minimum resolvable difference. In this case, the minimum resolvable difference for a given polygon is dependent on the maximum exponent,e
, in the range ofz
values spanned by the primitive. Ifn
is the number of bits in the floating-point mantissa, the minimum resolvable difference,r
, for the given primitive is defined asr = 2e-n
If no depth buffer is present,
r
is undefined.The bias value
o
for a polygon iso =
m × depthBiasSlopeFactor + r × depthBiasConstantFactor
when depthBiasClamp = 0 or NaN
min(m × depthBiasSlopeFactor + r × depthBiasConstantFactor, depthBiasClamp)
when depthBiasClamp > 0
max(m × depthBiasSlopeFactor + r × depthBiasConstantFactor, depthBiasClamp)
when depthBiasClamp < 0
m
is computed as described above. If the depth buffer uses a fixed-point representation,m
is a function of depth values in the range[0,1]
, ando
is applied to depth values in the same range.For fixed-point depth buffers, fragment depth values are always limited to the range
[0,1]
by clamping after depth bias addition is performed. Fragment depth values are clamped even when the depth buffer uses a floating-point representation.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - If the depth bias clamping feature is not enabled,
depthBiasClamp
must be 0.0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordeddepthBiasConstantFactor
- a scalar factor controlling the constant depth value added to each fragmentdepthBiasClamp
- the maximum (or minimum) depth bias of a fragmentdepthBiasSlopeFactor
- a scalar factor applied to a fragment’s slope in depth bias calculations
-
vkCmdSetBlendConstants
public static void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, java.nio.FloatBuffer blendConstants)
Sets the values of blend constants.If the pipeline state object is created without the
DYNAMIC_STATE_BLEND_CONSTANTS
dynamic state enabled then the “blend constant”(Rc,Gc,Bc,Ac)
is specified via theblendConstants
member ofVkPipelineColorBlendStateCreateInfo
. Otherwise the blend constant is dynamically set and changed by calling this command,Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedblendConstants
- an array of four values specifying the R, G, B, and A components of the blend constant color used in blending, depending on the blend factor
-
vkCmdSetDepthBounds
public static void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds)
Sets the depth bounds test values for a command buffer.The depth bounds test conditionally disables coverage of a sample based on the outcome of a comparison between the value zaza in the depth attachment at location
(xf,yf)
(for the appropriate sample) and a range of values. The test is enabled or disabled by thedepthBoundsTestEnable
member ofVkPipelineDepthStencilStateCreateInfo
. If the pipeline state object is created without theDYNAMIC_STATE_DEPTH_BOUNDS
dynamic state enabled then the range of values used in the depth bounds test are defined by theminDepthBounds
andmaxDepthBounds
members of theVkPipelineDepthStencilStateCreateInfo
structure. Otherwise, to dynamically set the depth bounds range values call this command.If
minDepthBounds ≤ za ≤ maxDepthBounds
, then the depth bounds test passes. Otherwise, the test fails and the sample’s coverage bit is cleared in the fragment. If there is no depth framebuffer attachment or if the depth bounds test is disabled, it is as if the depth bounds test always passes.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations minDepthBounds
must be between0.0
and1.0
, inclusivemaxDepthBounds
must be between0.0
and1.0
, inclusive
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedminDepthBounds
- the lower bound of the range of depth values used in the depth bounds testmaxDepthBounds
- the upper bound of the range
-
vkCmdSetStencilCompareMask
public static void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, int faceMask, int compareMask)
Sets the stencil compare mask dynamic state.If the pipeline state object is created with the
DYNAMIC_STATE_STENCIL_COMPARE_MASK
dynamic state enabled, then to dynamically set the stencil compare mask call this command.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlefaceMask
must be a valid combination ofVkStencilFaceFlagBits
valuesfaceMask
must not be 0commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedfaceMask
- a bitmask specifying the set of stencil state for which to update the compare mask. One or more of:STENCIL_FACE_FRONT_BIT
STENCIL_FACE_BACK_BIT
STENCIL_FRONT_AND_BACK
compareMask
- the new value to use as the stencil compare mask
-
vkCmdSetStencilWriteMask
public static void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, int faceMask, int writeMask)
Sets the stencil write mask dynamic state.If the pipeline state object is created with the
DYNAMIC_STATE_STENCIL_WRITE_MASK
dynamic state enabled, then to dynamically set the stencil write mask call this command.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlefaceMask
must be a valid combination ofVkStencilFaceFlagBits
valuesfaceMask
must not be 0commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedfaceMask
- a bitmask ofVkStencilFaceFlagBits
specifying the set of stencil state for which to update the write mask. One or more of:STENCIL_FACE_FRONT_BIT
STENCIL_FACE_BACK_BIT
STENCIL_FRONT_AND_BACK
writeMask
- the new value to use as the stencil write mask
-
vkCmdSetStencilReference
public static void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, int faceMask, int reference)
Sets the stencil reference dynamic state.If the pipeline state object is created with the
DYNAMIC_STATE_STENCIL_REFERENCE
dynamic state enabled, then to dynamically set the stencil reference value call this command.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlefaceMask
must be a valid combination ofVkStencilFaceFlagBits
valuesfaceMask
must not be 0commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedfaceMask
- a bitmask ofVkStencilFaceFlagBits
specifying the set of stencil state for which to update the reference value. One or more of:STENCIL_FACE_FRONT_BIT
STENCIL_FACE_BACK_BIT
STENCIL_FRONT_AND_BACK
reference
- the new value to use as the stencil reference value
-
vkCmdBindDescriptorSets
public static void vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, java.nio.LongBuffer pDescriptorSets, java.nio.IntBuffer pDynamicOffsets)
Binds descriptor sets to a command buffer.If any of the sets being bound include dynamic uniform or storage buffers, then
pDynamicOffsets
includes one element for each array element in each dynamic descriptor type binding in each set.vkCmdBindDescriptorSets
causes the sets numbered[firstSet.. firstSet+descriptorSetCount-1]
to use the bindings stored inpDescriptorSets[0..descriptorSetCount-1]
for subsequent rendering commands (either compute or graphics, according to thepipelineBindPoint
). Any bindings that were previously applied via these sets are no longer valid.Once bound, a descriptor set affects rendering of subsequent graphics or compute commands in the command buffer until a different set is bound to the same set number, or else until the set is disturbed.
A compatible descriptor set must be bound for all set numbers that any shaders in a pipeline access, at the time that a draw or dispatch command is recorded to execute using that pipeline. However, if none of the shaders in a pipeline statically use any bindings with a particular set number, then no descriptor set need be bound for that set number, even if the pipeline layout includes a non-trivial descriptor set layout for that set number.
If any of the sets being bound include dynamic uniform or storage buffers, then
pDynamicOffsets
includes one element for each array element in each dynamic descriptor type binding in each set. Values are taken frompDynamicOffsets
in an order such that all entries for set N come before set N+1; within a set, entries are ordered by the binding numbers in the decriptor set layouts; and within a binding array, elements are in order.dynamicOffsetCount
must equal the total number of dynamic descriptors in the sets being bound.The effective offset used for dynamic uniform and storage buffer bindings is the sum of the relative offset taken from
pDynamicOffsets
, and the base address of the buffer plus base offset in the descriptor set. The length of the dynamic uniform and storage buffer bindings is the buffer range as specified in the descriptor set.Each of the
pDescriptorSets
must be compatible with the pipeline layout specified bylayout
. The layout used to program the bindings must also be compatible with the pipeline used in subsequent graphics or compute commands.The descriptor set contents bound by a call to
vkCmdBindDescriptorSets
may be consumed during host execution of the command, or during shader execution of the resulting draws, or any time in between. Thus, the contents must not be altered (overwritten by an update command, or freed) between when the command is recorded and when the command completes executing on the queue. The contents ofpDynamicOffsets
are consumed immediately during execution ofvkCmdBindDescriptorSets
. Once all pending uses have completed, it is legal to update and reuse a descriptor set.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepipelineBindPoint
must be a validVkPipelineBindPoint
valuelayout
must be a validVkPipelineLayout
handlepDescriptorSets
must be a pointer to an array ofdescriptorSetCount
validVkDescriptorSet
handles- If
dynamicOffsetCount
is not 0,pDynamicOffsets
must be a pointer to an array ofdynamicOffsetCount
uint32_t
values commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations descriptorSetCount
must be greater than 0- Each of
commandBuffer
,layout
and the elements ofpDescriptorSets
must have been created, allocated or retrieved from the sameVkDevice
- Any given element of
pDescriptorSets
must have been created with aVkDescriptorSetLayout
that matches (is the same as, or defined identically to) theVkDescriptorSetLayout
at setn
inlayout
, wheren
is the sum offirstSet
and the index intopDescriptorSets
dynamicOffsetCount
must be equal to the total number of dynamic descriptors inpDescriptorSets
pipelineBindPoint
must be supported by thecommandBuffer
's parentVkCommandPool
's queue family- Any given element of
pDynamicOffsets
must satisfy the required alignment for the corresponding descriptor binding's descriptor type
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer that the descriptor sets will be bound topipelineBindPoint
- aVkPipelineBindPoint
indicating whether the descriptors will be used by graphics pipelines or compute pipelines. There is a separate set of bind points for each of graphics and compute, so binding one does not disturb the other. One of:PIPELINE_BIND_POINT_GRAPHICS
PIPELINE_BIND_POINT_COMPUTE
layout
- aVkPipelineLayout
object used to program the bindingsfirstSet
- the set number of the first descriptor set to be boundpDescriptorSets
- a pointer to an array ofVkDescriptorSet
structures describing the descriptor sets to write topDynamicOffsets
- a pointer to an array ofuint32_t
values specifying dynamic offsets
-
vkCmdBindIndexBuffer
public static void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, long buffer, long offset, int indexType)
Binds an index buffer to a command buffer.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlebuffer
must be a validVkBuffer
handleindexType
must be a validVkIndexType
valuecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - Each of
commandBuffer
andbuffer
must have been created, allocated or retrieved from the sameVkDevice
offset
must be less than the size ofbuffer
- The sum of
offset
, and the address of the range ofVkDeviceMemory
object that's backingbuffer
, must be a multiple of the type indicated byindexType
buffer
must have been created with theBUFFER_USAGE_INDEX_BUFFER_BIT
flag
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedbuffer
- the buffer being boundoffset
- the starting offset in bytes withinbuffer
used in index buffer address calculationsindexType
- selects whether indices are treated as 16 bits or 32 bits. One of:INDEX_TYPE_UINT16
INDEX_TYPE_UINT32
-
vkCmdBindVertexBuffers
public static void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, int firstBinding, java.nio.LongBuffer pBuffers, java.nio.LongBuffer pOffsets)
Binds vertex buffers to a command buffer.The values taken from elements
i
ofpBuffers
andpOffsets
replace the current state for the vertex input bindingfirstBinding + i
, fori
in[0,bindingCount)
. The vertex input binding is updated to start at the offset indicated bypOffsets[i]
from the start of the bufferpBuffers[i]
. All vertex input attributes that use each of these bindings will use these updated addresses in their address calculations for subsequent draw commands.The address of each attribute for each
vertexIndex
andinstanceIndex
is calculated as follows:- Let
attribDesc
be the member ofVkPipelineVertexInputStateCreateInfo
::pVertexAttributeDescriptions
withVkVertexInputAttributeDescription
::location
equal to the vertex input attribute number. - Let
bindingDesc
be the member ofVkPipelineVertexInputStateCreateInfo::pVertexBindingDescriptions
withVkVertexInputAttributeDescription::binding
equal toattribDesc.binding
. - Let
vertexIndex
be the index of the vertex within the draw (a value betweenfirstVertex
andfirstVertex+vertexCount
forCmdDraw
, or a value taken from the index buffer forCmdDrawIndexed
), and letinstanceIndex
be the instance number of the draw (a value betweenfirstInstance
andfirstInstance+instanceCount
).
bufferBindingAddress = buffer[binding].baseAddress + offset[binding]; if (bindingDesc.inputRate == VK_VERTEX_INPUT_RATE_VERTEX) vertexOffset = vertexIndex * bindingDesc.stride; else vertexOffset = instanceIndex * bindingDesc.stride; attribAddress = bufferBindingAddress + vertexOffset + attribDesc.offset;
For each attribute, raw data is extracted starting at
attribAddress
and is converted from theVkVertexInputAttributeDescription
’s format to either to floating-point, unsigned integer, or signed integer based on the base type of the format; the base type of the format must match the base type of the input variable in the shader. If format is a packed format,attribAddress
must be a multiple of the size in bytes of the whole attribute data type. Otherwise,attribAddress
must be a multiple of the size in bytes of the component type indicated by format. If the format does not include G, B, or A components, then those are filled with (0,0,1) as needed (using either 1.0f or integer 1 based on the format) for attributes that are not 64-bit data types. The number of components in the vertex shader input variable need not exactly match the number of components in the format. If the vertex shader has fewer components, the extra components are discarded.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepBuffers
must be a pointer to an array ofbindingCount
validVkBuffer
handlespOffsets
must be a pointer to an array ofbindingCount
VkDeviceSize
valuescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations bindingCount
must be greater than 0- Each of
commandBuffer
and the elements ofpBuffers
must have been created, allocated or retrieved from the sameVkDevice
firstBinding
must be less thanVkPhysicalDeviceLimits
::maxVertexInputBindings
- The sum of
firstBinding
andbindingCount
must be less than or equal toVkPhysicalDeviceLimits
::maxVertexInputBindings
- All elements of
pOffsets
must be less than the size of the corresponding element inpBuffers
- All elements of
pBuffers
must have been created with theBUFFER_USAGE_VERTEX_BUFFER_BIT
flag
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedfirstBinding
- the index of the first vertex input binding whose state is updated by the commandpBuffers
- a pointer to an array of buffer handlespOffsets
- a pointer to an array of buffer offsets
- Let
-
vkCmdDraw
public static void vkCmdDraw(VkCommandBuffer commandBuffer, int vertexCount, int instanceCount, int firstVertex, int firstInstance)
Records a non-indexed draw.When the command is executed, primitives are assembled using the current primitive topology and
vertexCount consecutive
vertex indices with the firstvertexIndex value
equal tofirstVertex
. The primitives are drawninstanceCount
times withinstanceIndex
starting withfirstInstance
and increasing sequentially for each instance. The assembled primitives execute the currently bound graphics pipeline.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
- For each set
n
that is statically used by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a descriptor set must have been bound ton
atPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for setn
, with theVkPipelineLayout
used to create the currentVkPipeline
- For each push constant that is statically used by the
VkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for push constants, with theVkPipelineLayout
used to create the currentVkPipeline
- Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets
, must be valid if they are statically used by the currently boundVkPipeline
object, specified viaCmdBindPipeline
- All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have valid buffers bound
- For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding
- A valid graphics pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_GRAPHICS
- If the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
requires any dynamic state, that state must have been set on the current command buffer - Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set
- If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used to sample from anyVkImage
with aVkImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a lod bias or any offset values, in any shader stage - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageView
being sampled withFILTER_LINEAR
as a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedvertexCount
- the number of vertices to drawinstanceCount
- the number of instances to drawfirstVertex
- the index of the first vertex to drawfirstInstance
- the instance ID of the first instance to draw
-
vkCmdDrawIndexed
public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, int indexCount, int instanceCount, int firstIndex, int vertexOffset, int firstInstance)
Records an indexed draw call.When the command is executed, primitives are assembled using the current primitive topology and
indexCount
vertices whose indices are retrieved from the index buffer. The index buffer is treated as an array of tightly packed unsigned integers of size defined by theCmdBindIndexBuffer
::indexType
parameter with which the buffer was bound.The first vertex index is at an offset of
firstIndex * indexSize + offset
within the currently bound index buffer, where offset is the offset specified byvkCmdBindIndexBuffer
andindexSize
is the byte size of the type specified byindexType
. Subsequent index values are retrieved from consecutive locations in the index buffer. Indices are first compared to the primitive restart value, then zero extended to 32 bits (if theindexType
isINDEX_TYPE_UINT16
) and havevertexOffset
added to them, before being supplied as thevertexIndex
value.The primitives are drawn
instanceCount
times withinstanceIndex
starting withfirstInstance
and increasing sequentially for each instance. The assembled primitives execute the currently bound graphics pipeline.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
- For each set
n
that is statically used by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a descriptor set must have been bound ton
atPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for setn
, with theVkPipelineLayout
used to create the currentVkPipeline
- For each push constant that is statically used by the
VkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for push constants, with theVkPipelineLayout
used to create the currentVkPipeline
- Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets
, must be valid if they are statically used by the currently boundVkPipeline
object, specified viaCmdBindPipeline
- All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have valid buffers bound
- For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding
- A valid graphics pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_GRAPHICS
- If the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
requires any dynamic state, that state must have been set on the current command buffer - (
indexSize
* (firstIndex
+indexCount
) +offset
) must be less than or equal to the size of the currently bound index buffer, with indexSize being based on the type specified byindexType
, where the index buffer,indexType
, andoffset
are specified viaCmdBindIndexBuffer
- Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set
- If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used to sample from anyVkImage
with aVkImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a lod bias or any offset values, in any shader stage - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageView
being sampled withFILTER_LINEAR
as a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedindexCount
- the number of vertices to drawinstanceCount
- the number of instances to drawfirstIndex
- the base index within the index buffervertexOffset
- the value added to the vertex index before indexing into the vertex bufferfirstInstance
- the instance ID of the first instance to draw
-
vkCmdDrawIndirect
public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, long buffer, long offset, int drawCount, int stride)
Records a non-indexed indirect draw.vkCmdDrawIndirect
behaves similarly toCmdDraw
except that the parameters are read by the device from a buffer during execution.drawCount
draws are executed by the command, with parameters taken from buffer starting atoffset
and increasing bystride
bytes for each successive draw. The parameters of each draw are encoded in an array ofVkDrawIndirectCommand
structures. IfdrawCount
is less than or equal to one,stride
is ignored.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlebuffer
must be a validVkBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
- Each of
commandBuffer
andbuffer
must have been created, allocated or retrieved from the sameVkDevice
offset
must be a multiple of 4- If
drawCount
is greater than 1,stride
must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand
) - If the multi-draw indirect feature is not enabled,
drawCount
must be 0 or 1 - If the drawIndirectFirstInstance feature is not enabled, all the
firstInstance
members of theVkDrawIndirectCommand
structures accessed by this command must be 0 - For each set
n
that is statically used by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a descriptor set must have been bound ton
atPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for setn
, with theVkPipelineLayout
used to create the currentVkPipeline
- For each push constant that is statically used by the
VkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for push constants, with theVkPipelineLayout
used to create the currentVkPipeline
- Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets
, must be valid if they are statically used by the currently boundVkPipeline
object, specified viaCmdBindPipeline
- All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have valid buffers bound
- A valid graphics pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_GRAPHICS
- If the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
requires any dynamic state, that state must have been set on the current command buffer - If
drawCount
is equal to 1, (offset
+ sizeof(VkDrawIndirectCommand
)) must be less than or equal to the size ofbuffer
- If
drawCount
is greater than 1, (stride
x (drawCount
- 1) +offset
+ sizeof(VkDrawIndirectCommand
)) must be less than or equal to the size ofbuffer
drawCount
must be less than or equal toVkPhysicalDeviceLimits
::maxDrawIndirectCount
- Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set
- If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used to sample from anyVkImage
with aVkImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a lod bias or any offset values, in any shader stage - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageView
being sampled withFILTER_LINEAR
as a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedbuffer
- the buffer containing draw parametersoffset
- the byte offset into buffer where parameters begindrawCount
- the number of draws to execute, and can be zerostride
- the byte stride between successive sets of draw parameters
-
vkCmdDrawIndexedIndirect
public static void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, long buffer, long offset, int drawCount, int stride)
Records an indexed indirect draw.vkCmdDrawIndexedIndirect behaves
similarly toCmdDrawIndirect
except that the parameters are read by the device from a buffer during execution.drawCount
draws are executed by the command, with parameters taken from buffer starting atoffset
and increasing bystride
bytes for each successive draw. The parameters of each draw are encoded in an array ofVkDrawIndexedIndirectCommand
structures. IfdrawCount
is less than or equal to one,stride
is ignored.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlebuffer
must be a validVkBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
- Each of
commandBuffer
andbuffer
must have been created, allocated or retrieved from the sameVkDevice
offset
must be a multiple of 4- If
drawCount
is greater than 1,stride
must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand
) - If the multi-draw indirect feature is not enabled,
drawCount
must be 0 or 1 - If the drawIndirectFirstInstance feature is not enabled, all the
firstInstance
members of theVkDrawIndexedIndirectCommand
structures accessed by this command must be 0 - For each set
n
that is statically used by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a descriptor set must have been bound ton
atPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for setn
, with theVkPipelineLayout
used to create the currentVkPipeline
- For each push constant that is statically used by the
VkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS
, with aVkPipelineLayout
that is compatible for push constants, with theVkPipelineLayout
used to create the currentVkPipeline
- Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets
, must be valid if they are statically used by the currently boundVkPipeline
object, specified viaCmdBindPipeline
- All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have valid buffers bound
- A valid graphics pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_GRAPHICS
- If the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
requires any dynamic state, that state must have been set on the current command buffer - If
drawCount
is equal to 1, (offset
+ sizeof(VkDrawIndexedIndirectCommand
)) must be less than or equal to the size ofbuffer
- If
drawCount
is greater than 1, (stride
x (drawCount
- 1) +offset
+ sizeof(VkDrawIndexedIndirectCommand
)) must be less than or equal to the size ofbuffer
drawCount
must be less than or equal toVkPhysicalDeviceLimits
::maxDrawIndirectCount
- Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set
- If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used to sample from anyVkImage
with aVkImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_GRAPHICS
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a lod bias or any offset values, in any shader stage - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_GRAPHICS
accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageView
being sampled withFILTER_LINEAR
as a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedbuffer
- the buffer containing draw parametersoffset
- the byte offset into buffer where parameters begindrawCount
- the number of draws to execute, and can be zerostride
- the byte stride between successive sets of draw parameters
-
vkCmdDispatch
public static void vkCmdDispatch(VkCommandBuffer commandBuffer, int x, int y, int z)
Records a dispatch.Dispatching commands (commands with “Dispatch” in the name) provoke work in a compute pipeline. Dispatching commands are recorded into a command buffer and when executed by a queue, will produce work which executes according to the currently bound compute pipeline. A compute pipeline must be bound to a command buffer before any dispatch commands are recorded in that command buffer.
When the command is executed, a global workgroup consisting of
x × y × z
local workgroups is assembled.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support compute operations - This command must only be called outside of a render pass instance
x
must be less than or equal toVkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[0]y
must be less than or equal toVkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[1]z
must be less than or equal toVkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[2]- For each set
n
that is statically used by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
, a descriptor set must have been bound ton
atPIPELINE_BIND_POINT_COMPUTE
, with aVkPipelineLayout
that is compatible for setn
, with theVkPipelineLayout
used to create the currentVkPipeline
- Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets
, must be valid if they are statically used by the currently boundVkPipeline
object, specified viaCmdBindPipeline
- A valid compute pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_COMPUTE
- For each push constant that is statically used by the
VkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
, a push constant value must have been set forPIPELINE_BIND_POINT_COMPUTE
, with aVkPipelineLayout
that is compatible for push constants with the one used to create the currentVkPipeline
- If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
uses unnormalized coordinates, it must not be used to sample from anyVkImage
with aVkImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a lod bias or any offset values, in any shader stage - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_COMPUTE
accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_COMPUTE
accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageView
being sampled withFILTER_LINEAR
as a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedx
- the number of local workgroups to dispatch in the X dimensiony
- the number of local workgroups to dispatch in the Y dimensionz
- the number of local workgroups to dispatch in the Z dimension
-
vkCmdDispatchIndirect
public static void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, long buffer, long offset)
Records an indirect dispatch.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlebuffer
must be a validVkBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
andbuffer
must have been created, allocated or retrieved from the sameVkDevice
- For each set
n
that is statically used by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
, a descriptor set must have been bound ton
atPIPELINE_BIND_POINT_COMPUTE
, with aVkPipelineLayout
that is compatible for setn
, with theVkPipelineLayout
used to create the currentVkPipeline
- Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets
, must be valid if they are statically used by the currently boundVkPipeline
object, specified viaCmdBindPipeline
- A valid compute pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_COMPUTE
buffer
must have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BIT
bit setoffset
must be a multiple of 4- The sum of
offset
and the size ofVkDispatchIndirectCommand
must be less than or equal to the size ofbuffer
- For each push constant that is statically used by the
VkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
, a push constant value must have been set forPIPELINE_BIND_POINT_COMPUTE
, with aVkPipelineLayout
that is compatible for push constants with the one used to create the currentVkPipeline
- If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
uses unnormalized coordinates, it must not be used to sample from anyVkImage
with aVkImageView
of the typeIMAGE_VIEW_TYPE_3D
,IMAGE_VIEW_TYPE_CUBE
,IMAGE_VIEW_TYPE_1D_ARRAY
,IMAGE_VIEW_TYPE_2D_ARRAY
orIMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions withImplicitLod
,Dref
orProj
in their name, in any shader stage - If any
VkSampler
object that is accessed from a shader by theVkPipeline
currently bound toPIPELINE_BIND_POINT_COMPUTE
uses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*
orOpImageSparseSample*
instructions that includes a lod bias or any offset values, in any shader stage - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_COMPUTE
accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - If the robust buffer access feature is not enabled, and any shader stage in the
VkPipeline
object currently bound toPIPELINE_BIND_POINT_COMPUTE
accesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageView
being sampled withFILTER_LINEAR
as a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedbuffer
- the buffer containing dispatch parametersoffset
- the byte offset into buffer where parameters begin
-
vkCmdCopyBuffer
public static void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, long srcBuffer, long dstBuffer, VkBufferCopy.Buffer pRegions)
Copies data between buffer objects.Each region in
pRegions
is copied from the source buffer to the same region of the destination buffer.srcBuffer
anddstBuffer
can be the same buffer or alias the same memory, but the result is undefined if the copy regions overlap in memory.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcBuffer
must be a validVkBuffer
handledstBuffer
must be a validVkBuffer
handlepRegions
must be a pointer to an array ofregionCount
VkBufferCopy
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcBuffer
anddstBuffer
must have been created, allocated or retrieved from the sameVkDevice
- The
size
member of a given element ofpRegions
must be greater than 0 - The
srcOffset
member of a given element ofpRegions
must be less than the size ofsrcBuffer
- The
dstOffset
member of a given element ofpRegions
must be less than the size ofdstBuffer
- The
size
member of a given element ofpRegions
must be less than or equal to the size ofsrcBuffer
minussrcOffset
- The
size
member of a given element ofpRegions
must be less than or equal to the size ofdstBuffer
minusdstOffset
- The union of the source regions, and the union of the destination regions, specified by the elements of
pRegions
, must not overlap in memory srcBuffer
must have been created withBUFFER_USAGE_TRANSFER_SRC_BIT
usage flagdstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flag
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcBuffer
- the source bufferdstBuffer
- the destination bufferpRegions
- a pointer to an array ofVkBufferCopy
structures specifying the regions to copy
-
vkCmdCopyImage
public static void vkCmdCopyImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageCopy.Buffer pRegions)
Copy data between image objects.vkCmdCopyImage
performs image copies in a similar manner to a hostmemcpy
. It does not perform general-purpose conversions such as scaling, resizing, blending, color-space conversion, or format conversions. Rather, it simply copies raw image data.vkCmdCopyImage
can copy between images with different formats, provided the formats are compatible.Each region in
pRegions
is copied from the source image to the same region of the destination image.srcImage
anddstImage
can be the same image or alias the same memory.Copies are done layer by layer starting with
baseArrayLayer
member ofsrcSubresource
for the source anddstSubresource
for the destination.layerCount
layers are copied to the destination image.The formats of
srcImage
anddstImage
must be compatible. Formats are considered compatible if their texel size in bytes is the same between both formats. For example,FORMAT_R8G8B8A8_UNORM
is compatible withFORMAT_R32_UINT
because because both texels are 4 bytes in size. Depth/stencil formats must match exactly.vkCmdCopyImage
allows copying between size-compatible compressed and uncompressed internal formats. Formats are size-compatible if the texel size of the uncompressed format is equal to the block size in bytes of the compressed format. Such a copy does not perform on-the-fly compression or decompression. When copying from an uncompressed format to a compressed format, each texel of uncompressed data becomes a single block of compressed data. When copying from a compressed format to an uncompressed format, a block of compressed data becomes a single texel of uncompressed data. Thus, for example, it is legal to copy between a 128-bit uncompressed format and a compressed format which uses 8-bit/texel 4x4 blocks, or between a 64-bit uncompressed format and a compressed format which uses 4-bit/texel 4x4 blocks.When copying between compressed and uncompressed formats the
extent
members represent the texel dimensions of the source image and not the destination. When copying from a compressed image to an uncompressed image the image texel dimensions written to the uncompressed image will be source extent divided by the block size. When copying from an uncompressed image to a compressed image the image texel dimensions written to the compressed image will be the source extent multiplied by the block size. In both cases the number of bytes read and the number of bytes written will be identical.Copying to or from block-compressed images is typically done in multiples of the block. For this reason the
extent
must be a multiple of the block dimension. There is one exception to this rule which is required to handle compressed images created with dimensions that are not a multiple of the block dimensions. If thesrcImage is
compressed and ifextent.width
is not a multiple of the block width then(extent.width + srcOffset.x)
must equal the image subresource width, ifextent.height
is not a multiple of the block height then(extent.height + srcOffset.y)
must equal the image subresource height and ifextent.depth
is not a multiple of the block depth then(extent.depth + srcOffset.z)
must equal the image subresource depth. Similarly if thedstImage
is compressed and ifextent.width
is not a multiple of the block width then(extent.width + dstOffset.x)
must equal the image subresource width, ifextent.height
is not a multiple of the block height then(extent.height + dstOffset.y)
must equal the image subresource height and ifextent.depth
is not a multiple of the block depth then(extent.depth + dstOffset.z)
must equal the image subresource depth. This allows the last block of the image in each non-multiple dimension to be included as a source or target of the copy.vkCmdCopyImage
can be used to copy image data between multisample images, but both images must have the same number of samples.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcImage
must be a validVkImage
handlesrcImageLayout
must be a validVkImageLayout
valuedstImage
must be a validVkImage
handledstImageLayout
must be a validVkImageLayout
valuepRegions
must be a pointer to an array ofregionCount
validVkImageCopy
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcImage
anddstImage
must have been created, allocated or retrieved from the sameVkDevice
- The source region specified by a given element of
pRegions
must be a region that is contained withinsrcImage
- The destination region specified by a given element of
pRegions
must be a region that is contained withindstImage
- The union of all source regions, and the union of all destination regions, specified by the elements of
pRegions
, must not overlap in memory srcImage
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
usage flagsrcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
srcImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
dstImage
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagdstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
dstImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The
VkFormat
of each ofsrcImage
anddstImage
must be compatible, as defined below - The sample count of
srcImage
anddstImage
must match
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcImage
- the source imagesrcImageLayout
- the current layout of the source image subresourcedstImage
- the destination imagedstImageLayout
- the current layout of the destination image subresourcepRegions
- a pointer to an array ofVkImageCopy
structures specifying the regions to copy
-
vkCmdBlitImage
public static void vkCmdBlitImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageBlit.Buffer pRegions, int filter)
Copies regions of a source image into a destination image, potentially performing format conversion, arbitrary scaling, and filtering.vkCmdBlitImage
must not be used for multisampled source or destination images. UseCmdResolveImage
for this purpose.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcImage
must be a validVkImage
handlesrcImageLayout
must be a validVkImageLayout
valuedstImage
must be a validVkImage
handledstImageLayout
must be a validVkImageLayout
valuepRegions
must be a pointer to an array ofregionCount
validVkImageBlit
structuresfilter
must be a validVkFilter
valuecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcImage
anddstImage
must have been created, allocated or retrieved from the sameVkDevice
- The source region specified by a given element of
pRegions
must be a region that is contained withinsrcImage
- The destination region specified by a given element of
pRegions
must be a region that is contained withindstImage
- The union of all source regions, and the union of all destination regions, specified by the elements of
pRegions
, must not overlap in memory srcImage
must use a format that supportsFORMAT_FEATURE_BLIT_SRC_BIT
, which is indicated byVkFormatProperties
::linearTilingFeatures
(for linear tiled images) orVkFormatProperties
::optimalTilingFeatures
(for optimally tiled images) - as returned byGetPhysicalDeviceFormatProperties
srcImage
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
usage flagsrcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
srcImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
dstImage
must use a format that supportsFORMAT_FEATURE_BLIT_DST_BIT
, which is indicated byVkFormatProperties
::linearTilingFeatures
(for linear tiled images) orVkFormatProperties
::optimalTilingFeatures
(for optimally tiled images) - as returned byGetPhysicalDeviceFormatProperties
dstImage
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagdstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
dstImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The sample count of
srcImage
anddstImage
must both be equal toSAMPLE_COUNT_1_BIT
- If either of
srcImage
ordstImage
was created with a signed integerVkFormat
, the other must also have been created with a signed integerVkFormat
- If either of
srcImage
ordstImage
was created with an unsigned integerVkFormat
, the other must also have been created with an unsigned integerVkFormat
- If either of
srcImage
ordstImage
was created with a depth/stencil format, the other must have exactly the same format - If
srcImage
was created with a depth/stencil format,filter
must beFILTER_NEAREST
- If
filter
isFILTER_LINEAR
,srcImage
must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
flag inVkFormatProperties
::linearTilingFeatures
(for a linear image) orVkFormatProperties
::optimalTilingFeatures
(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcImage
- the source imagesrcImageLayout
- the layout of the source image subresources for the blitdstImage
- the destination imagedstImageLayout
- the layout of the destination image subresources for the blitpRegions
- a pointer to an array ofVkImageBlit
structures specifying the regions to blitfilter
- aVkFilter
specifying the filter to apply if the blits require scaling
-
vkCmdCopyBufferToImage
public static void vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, long srcBuffer, long dstImage, int dstImageLayout, VkBufferImageCopy.Buffer pRegions)
Copies data from a buffer object to an image object.Each region in
pRegions
is copied from the specified region of the source buffer to the specified region of the destination image.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcBuffer
must be a validVkBuffer
handledstImage
must be a validVkImage
handledstImageLayout
must be a validVkImageLayout
valuepRegions
must be a pointer to an array ofregionCount
validVkBufferImageCopy
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcBuffer
anddstImage
must have been created, allocated or retrieved from the sameVkDevice
- The buffer region specified by a given element of
pRegions
must be a region that is contained withinsrcBuffer
- The image region specified by a given element of
pRegions
must be a region that is contained withindstImage
- The union of all source regions, and the union of all destination regions, specified by the elements of
pRegions
, must not overlap in memory srcBuffer
must have been created withBUFFER_USAGE_TRANSFER_SRC_BIT
usage flagdstImage
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagdstImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
dstImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcBuffer
- the source bufferdstImage
- the destination imagedstImageLayout
- the layout of the destination image subresources for the copypRegions
- a pointer to an array ofVkBufferImageCopy
structures specifying the regions to copy
-
vkCmdCopyImageToBuffer
public static void vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstBuffer, VkBufferImageCopy.Buffer pRegions)
Copies data from an image object to a buffer object.Each region in
pRegions
is copied from the specified region of the source image to the specified region of the destination buffer.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcImage
must be a validVkImage
handlesrcImageLayout
must be a validVkImageLayout
valuedstBuffer
must be a validVkBuffer
handlepRegions
must be a pointer to an array ofregionCount
validVkBufferImageCopy
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcImage
anddstBuffer
must have been created, allocated or retrieved from the sameVkDevice
- The image region specified by a given element of
pRegions
must be a region that is contained withinsrcImage
- The buffer region specified by a given element of
pRegions
must be a region that is contained withindstBuffer
- The union of all source regions, and the union of all destination regions, specified by the elements of
pRegions
, must not overlap in memory srcImage
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
usage flagsrcImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
srcImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
dstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flag
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcImage
- the source imagesrcImageLayout
- the layout of the source image subresources for the copydstBuffer
- the destination bufferpRegions
- a pointer to an array ofVkBufferImageCopy
structures specifying the regions to copy
-
vkCmdUpdateBuffer
public static void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, java.nio.IntBuffer pData)
Updates buffer data inline in a command buffer.The source data is copied from the user pointer to the command buffer when the command is called.
vkCmdUpdateBuffer
is only allowed outside of a render pass. This command is treated as “transfer” operation, for the purposes of synchronization barriers. TheBUFFER_USAGE_TRANSFER_DST_BIT
must be specified in usage ofVkBufferCreateInfo
in order for the buffer to be compatible withvkCmdUpdateBuffer
.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handledstBuffer
must be a validVkBuffer
handlepData
must be a pointer to an array ofdataSize / 4
uint32_t
valuescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
anddstBuffer
must have been created, allocated or retrieved from the sameVkDevice
dataSize
must be greater than 0dstOffset
must be less than the size ofdstBuffer
dataSize
must be less than or equal to the size ofdstBuffer
minusdstOffset
dstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flagdstOffset
must be a multiple of 4dataSize
must be less than or equal to 65536dataSize
must be a multiple of 4
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordeddstBuffer
- a handle to the buffer to be updateddstOffset
- the byte offset into the buffer to start updating, and must be a multiple of 4pData
- a pointer to the source data for the buffer update, and must be at leastdataSize
bytes in size
-
vkCmdFillBuffer
public static void vkCmdFillBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, long size, int data)
Fills a region of a buffer with a fixed value.vkCmdFillBuffer
is treated as “transfer” operation for the purposes of synchronization barriers. TheBUFFER_USAGE_TRANSFER_DST_BIT
must be specified in usage ofVkBufferCreateInfo
in order for the buffer to be compatible withvkCmdFillBuffer
.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handledstBuffer
must be a validVkBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
anddstBuffer
must have been created, allocated or retrieved from the sameVkDevice
dstOffset
must be less than the size ofdstBuffer
dstOffset
must be a multiple of 4- If
size
is not equal toWHOLE_SIZE
,size
must be greater than 0 - If
size
is not equal toWHOLE_SIZE
,size
must be less than or equal to the size ofdstBuffer
minusdstOffset
- If
size
is not equal toWHOLE_SIZE
,size
must be a multiple of 4 dstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flag
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordeddstBuffer
- the buffer to be filleddstOffset
- the byte offset into the buffer at which to start filling, and must be a multiple of 4size
- the number of bytes to fill, and must be either a multiple of 4, orWHOLE_SIZE
to fill the range from offset to the end of the buffer. IfWHOLE_SIZE
is used and the remaining size of the buffer is not a multiple of 4, then the nearest smaller multiple is used.data
- the 4-byte word written repeatedly to the buffer to fill size bytes of data. The data word is written to memory according to the host endianness.
-
vkCmdClearColorImage
public static void vkCmdClearColorImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearColorValue pColor, VkImageSubresourceRange.Buffer pRanges)
Clears one or more subranges of a color image.Each specified range in
pRanges
is cleared to the value specified bypColor
.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleimage
must be a validVkImage
handleimageLayout
must be a validVkImageLayout
valuepColor
must be a pointer to a validVkClearColorValue
unionpRanges
must be a pointer to an array ofrangeCount
validVkImageSubresourceRange
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
rangeCount
must be greater than 0- Each of
commandBuffer
andimage
must have been created, allocated or retrieved from the sameVkDevice
image
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagimageLayout
must specify the layout of the image subresource ranges ofimage
specified inpRanges
at the time this command is executed on aVkDevice
imageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The image range of any given element of
pRanges
must be an image subresource range that is contained withinimage
image
must not have a compressed or depth/stencil format
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedimage
- the image to be clearedimageLayout
- the current layout of the image subresource ranges to be cleared. One of:IMAGE_LAYOUT_GENERAL
IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
pColor
- a pointer to aVkClearColorValue
structure that contains the values the image subresource ranges will be cleared topRanges
- points to an array ofVkImageSubresourceRange
structures that describe a range of mipmap levels, array layers, and aspects to be cleared. TheaspectMask
of all image subresource ranges must only includeIMAGE_ASPECT_COLOR_BIT
.
-
vkCmdClearColorImage
public static void vkCmdClearColorImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearColorValue pColor, VkImageSubresourceRange pRange)
Clears one or more subranges of a color image.Each specified range in
pRanges
is cleared to the value specified bypColor
.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleimage
must be a validVkImage
handleimageLayout
must be a validVkImageLayout
valuepColor
must be a pointer to a validVkClearColorValue
unionpRanges
must be a pointer to an array ofrangeCount
validVkImageSubresourceRange
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
rangeCount
must be greater than 0- Each of
commandBuffer
andimage
must have been created, allocated or retrieved from the sameVkDevice
image
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagimageLayout
must specify the layout of the image subresource ranges ofimage
specified inpRanges
at the time this command is executed on aVkDevice
imageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The image range of any given element of
pRanges
must be an image subresource range that is contained withinimage
image
must not have a compressed or depth/stencil format
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedimage
- the image to be clearedimageLayout
- the current layout of the image subresource ranges to be cleared. One of:IMAGE_LAYOUT_GENERAL
IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
pColor
- a pointer to aVkClearColorValue
structure that contains the values the image subresource ranges will be cleared to
-
vkCmdClearDepthStencilImage
public static void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearDepthStencilValue pDepthStencil, VkImageSubresourceRange.Buffer pRanges)
Clears one or more subranges of a depth/stencil image.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleimage
must be a validVkImage
handleimageLayout
must be a validVkImageLayout
valuepDepthStencil
must be a pointer to a validVkClearDepthStencilValue
structurepRanges
must be a pointer to an array ofrangeCount
validVkImageSubresourceRange
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
rangeCount
must be greater than 0- Each of
commandBuffer
andimage
must have been created, allocated or retrieved from the sameVkDevice
image
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagimageLayout
must specify the layout of the image subresource ranges ofimage
specified inpRanges
at the time this command is executed on aVkDevice
imageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The image range of any given element of
pRanges
must be an image subresource range that is contained withinimage
image
must have a depth/stencil format
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedimage
- the image to be clearedimageLayout
- the current layout of the image subresource ranges to be cleared. One of:IMAGE_LAYOUT_GENERAL
IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
pDepthStencil
- a pointer to aVkClearDepthStencilValue
structure that contains the values the depth and stencil image subresource ranges will be cleared topRanges
- points to an array ofVkImageSubresourceRange
structures that describe a range of mipmap levels, array layers, and aspects to be cleared. TheaspectMask
of each image subresource range inpRanges
can includeIMAGE_ASPECT_DEPTH_BIT
if the image format has a depth component, andIMAGE_ASPECT_STENCIL_BIT
if the image format has a stencil component.pDepthStencil
is a pointer to aVkClearDepthStencilValue
structure that contains the values the image subresource ranges will be cleared to.
-
vkCmdClearDepthStencilImage
public static void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearDepthStencilValue pDepthStencil, VkImageSubresourceRange pRange)
Clears one or more subranges of a depth/stencil image.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleimage
must be a validVkImage
handleimageLayout
must be a validVkImageLayout
valuepDepthStencil
must be a pointer to a validVkClearDepthStencilValue
structurepRanges
must be a pointer to an array ofrangeCount
validVkImageSubresourceRange
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
rangeCount
must be greater than 0- Each of
commandBuffer
andimage
must have been created, allocated or retrieved from the sameVkDevice
image
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flagimageLayout
must specify the layout of the image subresource ranges ofimage
specified inpRanges
at the time this command is executed on aVkDevice
imageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The image range of any given element of
pRanges
must be an image subresource range that is contained withinimage
image
must have a depth/stencil format
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedimage
- the image to be clearedimageLayout
- the current layout of the image subresource ranges to be cleared. One of:IMAGE_LAYOUT_GENERAL
IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
pDepthStencil
- a pointer to aVkClearDepthStencilValue
structure that contains the values the depth and stencil image subresource ranges will be cleared to
-
vkCmdClearAttachments
public static void vkCmdClearAttachments(VkCommandBuffer commandBuffer, VkClearAttachment.Buffer pAttachments, VkClearRect.Buffer pRects)
Clears one or more regions of color and depth/stencil attachments inside a render pass instance.vkCmdClearAttachments
can clear multiple regions of each attachment used in the current subpass of a render pass instance. This command must be called only inside a render pass instance, and implicitly selects the images to clear based on the current framebuffer attachments and the command parameters.No memory barriers are needed between
vkCmdClearAttachments
and preceding or subsequent draw or attachment clear commands in the same subpass.The
vkCmdClearAttachments
command is not affected by the bound pipeline state.Attachments can also be cleared at the beginning of a render pass instance by setting
loadOp
(orstencilLoadOp
) ofVkAttachmentDescription
toATTACHMENT_LOAD_OP_CLEAR
, as described forCreateRenderPass
.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepAttachments
must be a pointer to an array ofattachmentCount
validVkClearAttachment
structurespRects
must be a pointer to an array ofrectCount
VkClearRect
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
attachmentCount
must be greater than 0rectCount
must be greater than 0- If the
aspectMask
member of any given element ofpAttachments
containsIMAGE_ASPECT_COLOR_BIT
, thecolorAttachment
member of those elements must refer to a valid color attachment in the current subpass - The rectangular region specified by a given element of
pRects
must be contained within the render area of the current render pass instance - The layers specified by a given element of
pRects
must be contained within every attachment thatpAttachments
refers to
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedpAttachments
- a pointer to an array ofVkClearAttachment
structures defining the attachments to clear and the clear values to usepRects
- points to an array ofVkClearRect
structures defining regions within each selected attachment to clear
-
vkCmdResolveImage
public static void vkCmdResolveImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageResolve.Buffer pRegions)
Resolves a multisample image to a non-multisample image.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcImage
must be a validVkImage
handlesrcImageLayout
must be a validVkImageLayout
valuedstImage
must be a validVkImage
handledstImageLayout
must be a validVkImageLayout
valuepRegions
must be a pointer to an array ofregionCount
validVkImageResolve
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcImage
anddstImage
must have been created, allocated or retrieved from the sameVkDevice
- The source region specified by a given element of
pRegions
must be a region that is contained withinsrcImage
- The destination region specified by a given element of
pRegions
must be a region that is contained withindstImage
- The union of all source regions, and the union of all destination regions, specified by the elements of
pRegions
, must not overlap in memory srcImage
must have a sample count equal to any valid sample count value other thanSAMPLE_COUNT_1_BIT
dstImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
srcImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
dstImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- If
dstImage
was created withtiling
equal toIMAGE_TILING_LINEAR
,dstImage
must have been created with aformat
that supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
flag inVkFormatProperties
::linearTilingFeatures
returned byGetPhysicalDeviceFormatProperties
- If
dstImage
was created withtiling
equal toIMAGE_TILING_OPTIMAL
,dstImage
must have been created with aformat
that supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
flag inVkFormatProperties
::optimalTilingFeatures
returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcImage
- the source imagesrcImageLayout
- the layout of the source image subresources for the resolvedstImage
- the destination imagedstImageLayout
- the layout of the destination image subresources for the resolvepRegions
- a pointer to an array ofVkImageResolve
structures specifying the regions to resolve
-
vkCmdResolveImage
public static void vkCmdResolveImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageResolve pRegion)
Resolves a multisample image to a non-multisample image.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcImage
must be a validVkImage
handlesrcImageLayout
must be a validVkImageLayout
valuedstImage
must be a validVkImage
handledstImageLayout
must be a validVkImageLayout
valuepRegions
must be a pointer to an array ofregionCount
validVkImageResolve
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
regionCount
must be greater than 0- Each of
commandBuffer
,srcImage
anddstImage
must have been created, allocated or retrieved from the sameVkDevice
- The source region specified by a given element of
pRegions
must be a region that is contained withinsrcImage
- The destination region specified by a given element of
pRegions
must be a region that is contained withindstImage
- The union of all source regions, and the union of all destination regions, specified by the elements of
pRegions
, must not overlap in memory srcImage
must have a sample count equal to any valid sample count value other thanSAMPLE_COUNT_1_BIT
dstImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aVkDevice
srcImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aVkDevice
dstImageLayout
must be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- If
dstImage
was created withtiling
equal toIMAGE_TILING_LINEAR
,dstImage
must have been created with aformat
that supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
flag inVkFormatProperties
::linearTilingFeatures
returned byGetPhysicalDeviceFormatProperties
- If
dstImage
was created withtiling
equal toIMAGE_TILING_OPTIMAL
,dstImage
must have been created with aformat
that supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
flag inVkFormatProperties
::optimalTilingFeatures
returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedsrcImage
- the source imagesrcImageLayout
- the layout of the source image subresources for the resolvedstImage
- the destination imagedstImageLayout
- the layout of the destination image subresources for the resolve
-
vkCmdSetEvent
public static void vkCmdSetEvent(VkCommandBuffer commandBuffer, long event, int stageMask)
Sets the state of an event to signaled from a device.The status of event is updated once the pipeline stages specified by
stageMask
have completed executing prior commands. The command modifying the event is passed through the pipeline bound to the command buffer at time of execution.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleevent
must be a validVkEvent
handlestageMask
must be a valid combination ofVkPipelineStageFlagBits
valuesstageMask
must not be 0commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
andevent
must have been created, allocated or retrieved from the sameVkDevice
- If the geometry shaders feature is not enabled,
stageMask
must not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT
- If the tessellation shaders feature is not enabled,
stageMask
must not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
orPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedevent
- the event that will be signaledstageMask
- the pipeline stage at which the state ofevent
is updated. One or more of:
-
vkCmdResetEvent
public static void vkCmdResetEvent(VkCommandBuffer commandBuffer, long event, int stageMask)
Sets the state of an event to unsignaled from a device.The status of event is updated once the pipeline stages specified by
stageMask
have completed executing prior commands. The command modifying the event is passed through the pipeline bound to the command buffer at time of execution.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handleevent
must be a validVkEvent
handlestageMask
must be a valid combination ofVkPipelineStageFlagBits
valuesstageMask
must not be 0commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
andevent
must have been created, allocated or retrieved from the sameVkDevice
- If the geometry shaders feature is not enabled,
stageMask
must not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT
- If the tessellation shaders feature is not enabled,
stageMask
must not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
orPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
- When this command executes,
event
must not be waited on by aCmdWaitEvents
command that is currently executing
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedevent
- the event that will be resetstageMask
- the pipeline stage at which the state ofevent
is updated. One or more of:
-
vkCmdWaitEvents
public static void vkCmdWaitEvents(VkCommandBuffer commandBuffer, java.nio.LongBuffer pEvents, int srcStageMask, int dstStageMask, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)
Waits for one or more events to enter the signaled state on a device.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepEvents
must be a pointer to an array ofeventCount
validVkEvent
handlessrcStageMask
must be a valid combination ofVkPipelineStageFlagBits
valuessrcStageMask
must not be 0dstStageMask
must be a valid combination ofVkPipelineStageFlagBits
valuesdstStageMask
must not be 0- If
memoryBarrierCount
is not 0,pMemoryBarriers
must be a pointer to an array ofmemoryBarrierCount
validVkMemoryBarrier
structures - If
bufferMemoryBarrierCount
is not 0,pBufferMemoryBarriers
must be a pointer to an array ofbufferMemoryBarrierCount
validVkBufferMemoryBarrier
structures - If
imageMemoryBarrierCount
is not 0,pImageMemoryBarriers
must be a pointer to an array ofimageMemoryBarrierCount
validVkImageMemoryBarrier
structures commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations eventCount
must be greater than 0- Each of
commandBuffer
and the elements ofpEvents
must have been created, allocated or retrieved from the sameVkDevice
srcStageMask
must be the bitwise OR of thestageMask
parameter used in previous calls toCmdSetEvent
with any of the members ofpEvents
andPIPELINE_STAGE_HOST_BIT
if any of the members ofpEvents
was set usingSetEvent
- If the geometry shaders feature is not enabled,
srcStageMask
must not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT
- If the geometry shaders feature is not enabled,
dstStageMask
must not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT
- If the tessellation shaders feature is not enabled,
srcStageMask
must not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
orPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
- If the tessellation shaders feature is not enabled,
dstStageMask
must not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
orPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
- If
pEvents
includes one or more events that will be signaled bySetEvent
aftercommandBuffer
has been submitted to a queue, thenCmdWaitEvents
must not be called inside a render pass instance
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
vkCmdWaitEvents
waits for events set by eitherSetEvent
orCmdSetEvent
to become signaled. Logically, it has three phases:- Wait at the pipeline stages specified by
dstStageMask
until theeventCount
event objects specified bypEvents
become signaled. Implementations may wait for each event object to become signaled in sequence (starting with the first event object inpEvents
, and ending with the last), or wait for all of the event objects to become signaled at the same time. - Execute the memory barriers specified by
pMemoryBarriers
,pBufferMemoryBarriers
andpImageMemoryBarriers
. - Resume execution of pipeline stages specified by
dstStageMask
Implementations may not execute commands in a pipelined manner, so
vkCmdWaitEvents
may not observe the results of a subsequentvkCmdSetEvent
orvkCmdResetEvent
command, even if the stages indstStageMask
occur after the stages insrcStageMask
.Commands that update the state of events in different pipeline stages may execute out of order, unless the ordering is enforced by execution dependencies.
Note
Applications should be careful to avoid race conditions when using events. For example, an event should only be reset if no
vkCmdWaitEvents
command is executing that waits upon that event.An act of setting or resetting an event in one queue may not affect or be visible to other queues. For cross-queue synchronization, semaphores can be used.
- Parameters:
commandBuffer
- the command buffer into which the command is recordedpEvents
- an array of event object handles to wait onsrcStageMask
- the bitwise OR of the pipeline stages used to signal the event object handles inpEvents
. One or more of:dstStageMask
- the pipeline stages at which the wait will occur. One or more of:pMemoryBarriers
- a pointer to an array ofmemoryBarrierCount
VkMemoryBarrier
structurespBufferMemoryBarriers
- a pointer to an array ofbufferMemoryBarrierCount
VkBufferMemoryBarrier
structurespImageMemoryBarriers
- a pointer to an array ofimageMemoryBarrierCount
VkImageMemoryBarrier
structures
-
vkCmdPipelineBarrier
public static void vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, int srcStageMask, int dstStageMask, int dependencyFlags, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)
Records a pipeline barrier.A pipeline barrier inserts an execution dependency and a set of memory dependencies between a set of commands earlier in the command buffer and a set of commands later in the command buffer.
Each element of the
pMemoryBarriers
,pBufferMemoryBarriers
andpImageMemoryBarriers
arrays specifies two halves of a memory dependency, as defined above. Specifics of each type of memory barrier and the memory access types are defined further in Memory Barriers.If
vkCmdPipelineBarrier
is called outside a render pass instance, then the first set of commands is all prior commands submitted to the queue and recorded in the command buffer and the second set of commands is all subsequent commands recorded in the command buffer and submitted to the queue. IfvkCmdPipelineBarrier
is called inside a render pass instance, then the first set of commands is all prior commands in the same subpass and the second set of commands is all subsequent commands in the same subpass.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlesrcStageMask
must be a valid combination ofVkPipelineStageFlagBits
valuessrcStageMask
must not be 0dstStageMask
must be a valid combination ofVkPipelineStageFlagBits
valuesdstStageMask
must not be 0dependencyFlags
must be a valid combination ofVkDependencyFlagBits
values- If
memoryBarrierCount
is not 0,pMemoryBarriers
must be a pointer to an array ofmemoryBarrierCount
validVkMemoryBarrier
structures - If
bufferMemoryBarrierCount
is not 0,pBufferMemoryBarriers
must be a pointer to an array ofbufferMemoryBarrierCount
validVkBufferMemoryBarrier
structures - If
imageMemoryBarrierCount
is not 0,pImageMemoryBarriers
must be a pointer to an array ofimageMemoryBarrierCount
validVkImageMemoryBarrier
structures commandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations - If the geometry shaders feature is not enabled,
srcStageMask
must not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT
- If the geometry shaders feature is not enabled,
dstStageMask
must not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT
- If the tessellation shaders feature is not enabled,
srcStageMask
must not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
orPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
- If the tessellation shaders feature is not enabled,
dstStageMask
must not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
orPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
- If
CmdPipelineBarrier
is called within a render pass instance, the render pass must declare at least one self-dependency from the current subpass to itself - see Subpass Self-dependency
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command is recordedsrcStageMask
- a bitmask ofVkPipelineStageFlagBits
specifying a set of source pipeline stages. One or more of:dstStageMask
- a bitmask specifying a set of destination pipeline stages.The pipeline barrier specifies an execution dependency such that all work performed by the set of pipeline stages included in
srcStageMask
of the first set of commands completes before any work performed by the set of pipeline stages included indstStageMask
of the second set of commands begins. One or more of:dependencyFlags
- a bitmask ofVkDependencyFlagBits
. The execution dependency is by-region if the mask includesDEPENDENCY_BY_REGION_BIT
. One or more of:DEPENDENCY_BY_REGION_BIT
pMemoryBarriers
- a pointer to an array ofVkMemoryBarrier
structurespBufferMemoryBarriers
- a pointer to an array ofVkBufferMemoryBarrier
structurespImageMemoryBarriers
- a pointer to an array ofVkImageMemoryBarrier
structures
-
vkCmdBeginQuery
public static void vkCmdBeginQuery(VkCommandBuffer commandBuffer, long queryPool, int query, int flags)
Begins a query.Once queries are reset and ready for use, query commands can be issued to a command buffer. Occlusion queries and pipeline statistics queries count events - drawn samples and pipeline stage invocations, respectively - resulting from commands that are recorded between a
vkCmdBeginQuery
command and aCmdEndQuery
command within a specified command buffer, effectively scoping a set of drawing and/or compute commands. Timestamp queries write timestamps to a query pool.A query must begin and end in the same command buffer, although if it is a primary command buffer, and the inherited queries feature is enabled, it can execute secondary command buffers during the query operation. For a secondary command buffer to be executed while a query is active, it must set the
occlusionQueryEnable
,queryFlags
, and/orpipelineStatistics
members ofVkCommandBufferBeginInfo
to conservative values. A query must either begin and end inside the same subpass of a render pass instance, or must both begin and end outside of a render pass instance (i.e. contain entire render pass instances).If the
queryType
of the pool isQUERY_TYPE_OCCLUSION
and flags containsQUERY_CONTROL_PRECISE_BIT
, an implementation must return a result that matches the actual number of samples passed.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlequeryPool
must be a validVkQueryPool
handleflags
must be a valid combination ofVkQueryControlFlagBits
valuescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - Each of
commandBuffer
andqueryPool
must have been created, allocated or retrieved from the sameVkDevice
- The query identified by
queryPool
andquery
must currently not be active - The query identified by
queryPool
andquery
must be unavailable - If the precise occlusion queries feature is not enabled, or the
queryType
used to createqueryPool
was notQUERY_TYPE_OCCLUSION
,flags
must not containQUERY_CONTROL_PRECISE_BIT
queryPool
must have been created with aqueryType
that differs from that of any other queries that have been made active, and are currently still active withincommandBuffer
query
must be less than the number of queries inqueryPool
- If the
queryType
used to createqueryPool
wasQUERY_TYPE_OCCLUSION
, theVkCommandPool
thatcommandBuffer
was created from must support graphics operations - If the
queryType
used to createqueryPool
wasQUERY_TYPE_PIPELINE_STATISTICS
and any of thepipelineStatistics
indicate graphics operations, theVkCommandPool
thatcommandBuffer
was created from must support graphics operations - If the
queryType
used to createqueryPool
wasQUERY_TYPE_PIPELINE_STATISTICS
and any of thepipelineStatistics
indicate compute operations, theVkCommandPool
thatcommandBuffer
was created from must support compute operations
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
After beginning a query, that query is considered active within the command buffer it was called in until that same query is ended. Queries active in a primary command buffer when secondary command buffers are executed are considered active for those secondary command buffers.
- Parameters:
commandBuffer
- the command buffer into which this command will be recordedqueryPool
- the query pool that will manage the results of the queryquery
- the query index within the query pool that will contain the resultsflags
- a bitmask indicating constraints on the types of queries that can be performed. One or more of:QUERY_CONTROL_PRECISE_BIT
-
vkCmdEndQuery
public static void vkCmdEndQuery(VkCommandBuffer commandBuffer, long queryPool, int query)
Ends a query.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlequeryPool
must be a validVkQueryPool
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - Each of
commandBuffer
andqueryPool
must have been created, allocated or retrieved from the sameVkDevice
- The query identified by
queryPool
andquery
must currently be active query
must be less than the number of queries inqueryPool
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
As queries operate asynchronously, ending a query does not immediately set the query’s status to available. A query is considered finished when the final results of the query are ready to be retrieved by
GetQueryPoolResults
andCmdCopyQueryPoolResults
, and this is when the query’s status is set to available.Once a query is ended the query must finish in finite time, unless the state of the query is changed using other commands, e.g. by issuing a reset of the query.
An application can retrieve results either by requesting they be written into application-provided memory, or by requesting they be copied into a
VkBuffer
. In either case, the layout in memory is defined as follows:- The first query’s result is written starting at the first byte requested by the command, and each subsequent query’s result begins stride bytes later.
- Each query’s result is a tightly packed array of unsigned integers, either 32- or 64-bits as requested by the command, storing the numerical results and, if requested, the availability status.
- If
QUERY_RESULT_WITH_AVAILABILITY_BIT
is used, the final element of each query’s result is an integer indicating whether the query’s result is available, with any non-zero value indicating that it is available. - Occlusion queries write one integer value - the number of samples passed. Pipeline statistics queries write one integer value for each bit that is
enabled in the
pipelineStatistics
when the pool is created, and the statistics values are written in bit order starting from the least significant bit. Timestamps write one integer value. - If more than one query is retrieved and stride is not at least as large as the size of the array of integers corresponding to a single query, the values written to memory are undefined.
- Parameters:
commandBuffer
- the command buffer into which this command will be recordedqueryPool
- the query pool that is managing the results of the queryquery
- the query index within the query pool where the result is stored
-
vkCmdResetQueryPool
public static void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, long queryPool, int firstQuery, int queryCount)
Resets a range of queries in a query pool.When executed on a queue, this command sets the status of query indices
firstQuery
,firstQuery + queryCount − 1
to unavailable.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlequeryPool
must be a validVkQueryPool
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
andqueryPool
must have been created, allocated or retrieved from the sameVkDevice
firstQuery
must be less than the number of queries inqueryPool
- The sum of
firstQuery
andqueryCount
must be less than or equal to the number of queries inqueryPool
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which this command will be recordedqueryPool
- the handle of the query pool managing the queries being resetfirstQuery
- the initial query index to resetqueryCount
- the number of queries to reset
-
vkCmdWriteTimestamp
public static void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, int pipelineStage, long queryPool, int query)
Writes a device timestamp into a query object.Timestamps provide applications with a mechanism for timing the execution of commands. A timestamp is an integer value generated by the
VkPhysicalDevice
. Unlike other queries, timestamps do not operate over a range, and so do not useCmdBeginQuery
orCmdEndQuery
. The mechanism is built around a set of commands that allow the application to tell theVkPhysicalDevice
to write timestamp values to a query pool and then either read timestamp values on the host (usingGetQueryPoolResults
) or copy timestamp values to aVkBuffer
(usingCmdCopyQueryPoolResults
). The application can then compute differences between timestamps to determine execution time.The number of valid bits in a timestamp value is determined by the
VkQueueFamilyProperties
::timestampValidBits
property of the queue on which the timestamp is written. Timestamps are supported on any queue which reports a non-zero value fortimestampValidBits
viaGetPhysicalDeviceQueueFamilyProperties
. If thetimestampComputeAndGraphics
limit isTRUE
, timestamps are supported by every queue family that supports either graphics or compute operations (seeVkQueueFamilyProperties
).The number of nanoseconds it takes for a timestamp value to be incremented by 1 can be obtained from
VkPhysicalDeviceLimits
::timestampPeriod
after a call toGetPhysicalDeviceProperties
.vkCmdWriteTimestamp
latches the value of the timer when all previous commands have completed executing as far as the specified pipeline stage, and writes the timestamp value to memory. When the timestamp value is written, the availability status of the query is set to available.Note
If an implementation is unable to detect completion and latch the timer at any specific stage of the pipeline, it may instead do so at any logically later stage.
CmdCopyQueryPoolResults
can then be called to copy the timestamp value from the query pool into buffer memory, with ordering and synchronization behavior equivalent to how other queries operate. Timestamp values can also be retrieved from the query pool usingGetQueryPoolResults
. As with other queries, the query must be reset usingCmdResetQueryPool
before requesting the timestamp value be written to it.While
vkCmdWriteTimestamp
can be called inside or outside of a render pass instance,CmdCopyQueryPoolResults
must only be called outside of a render pass instance.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepipelineStage
must be a validVkPipelineStageFlagBits
valuequeryPool
must be a validVkQueryPool
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - Each of
commandBuffer
andqueryPool
must have been created, allocated or retrieved from the sameVkDevice
- The query identified by
queryPool
andquery
must beunavailable
- The command pool's queue family must support a non-zero
timestampValidBits
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer into which the command will be recordedpipelineStage
- one of theVkPipelineStageFlagBits
, specifying a stage of the pipeline. One of:queryPool
- the query pool that will manage the timestampquery
- the query within the query pool that will contain the timestamp
-
vkCmdCopyQueryPoolResults
public static void vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, long queryPool, int firstQuery, int queryCount, long dstBuffer, long dstOffset, long stride, int flags)
Copies query statuses and numerical results directly to buffer memory.vkCmdCopyQueryPoolResults
is guaranteed to see the effect of previous uses ofCmdResetQueryPool
in the same queue, without any additional synchronization. Thus, the results will always reflect the most recent use of the query.flags
has the same possible values described above for the flags parameter ofGetQueryPoolResults
, but the different style of execution causes some subtle behavioral differences. BecausevkCmdCopyQueryPoolResults
executes in order with respect to other query commands, there is less ambiguity about which use of a query is being requested.If no bits are set in flags, results for all requested queries in the available state are written as 32-bit unsigned integer values, and nothing is written for queries in the unavailable state.
If
QUERY_RESULT_64_BIT
is set, the results are written as an array of 64-bit unsigned integer values as described forvkGetQueryPoolResults
.If
QUERY_RESULT_WAIT_BIT
is set, the implementation will wait for each query’s status to be in the available state before retrieving the numerical results for that query. This is guaranteed to reflect the most recent use of the query on the same queue, assuming that the query is not being simultaneously used by other queues. If the query does not become available in a finite amount of time (e.g. due to not issuing a query since the last reset), aERROR_DEVICE_LOST
error may occur.Similarly, if
QUERY_RESULT_WITH_AVAILABILITY_BIT
is set andQUERY_RESULT_WAIT_BIT
is not set, the availability is guaranteed to reflect the most recent use of the query on the same queue, assuming that the query is not being simultaneously used by other queues. As withvkGetQueryPoolResults
, implementations must guarantee that if they return a non-zero availability value, then the numerical results are valid.If
QUERY_RESULT_PARTIAL_BIT
is set,QUERY_RESULT_WAIT_BIT
is not set, and the query’s status is unavailable, an intermediate result value between zero and the final result value is written for that query.QUERY_RESULT_PARTIAL_BIT
must not be used if the pool’squeryType
isQUERY_TYPE_TIMESTAMP
.vkCmdCopyQueryPoolResults
is considered to be a transfer operation, and its writes to buffer memory must be synchronized usingPIPELINE_STAGE_TRANSFER_BIT
andACCESS_TRANSFER_WRITE_BIT
before using the results.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlequeryPool
must be a validVkQueryPool
handledstBuffer
must be a validVkBuffer
handleflags
must be a valid combination ofVkQueryResultFlagBits
valuescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer
,queryPool
anddstBuffer
must have been created, allocated or retrieved from the sameVkDevice
dstOffset
must be less than the size ofdstBuffer
firstQuery
must be less than the number of queries inqueryPool
- The sum of
firstQuery
andqueryCount
must be less than or equal to the number of queries inqueryPool
- If
QUERY_RESULT_64_BIT
is not set inflags
thendstOffset
andstride
must be multiples of 4 - If
QUERY_RESULT_64_BIT
is set inflags
thendstOffset
andstride
must be multiples of 8 dstBuffer
must have enough storage, fromdstOffset
, to contain the result of each query, as described heredstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flag- If the
queryType
used to createqueryPool
wasQUERY_TYPE_TIMESTAMP
,flags
must not containQUERY_RESULT_PARTIAL_BIT
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
Rendering operations such as clears, MSAA resolves, attachment load/store operations, and blits may count towards the results of queries. This behavior is implementation-dependent and may vary depending on the path used within an implementation. For example, some implementations have several types of clears, some of which may include vertices and some not.
- Parameters:
commandBuffer
- the command buffer into which this command will be recordedqueryPool
- the query pool managing the queries containing the desired resultsfirstQuery
- the initial query indexqueryCount
- the number of queries.firstQuery
andqueryCount
together define a range of queriesdstBuffer
- aVkBuffer
object that will receive the results of the copy commanddstOffset
- an offset intodstBuffer
stride
- the stride in bytes between results for individual queries withindstBuffer
flags
- a bitmask ofVkQueryResultFlagBits
specifying how and when results are returned. One or more of:QUERY_RESULT_64_BIT
QUERY_RESULT_WAIT_BIT
QUERY_RESULT_WITH_AVAILABILITY_BIT
QUERY_RESULT_PARTIAL_BIT
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.ByteBuffer pValues)
Updates the values of push constants.The pipeline layout defines shader push constants which are updated via Vulkan commands rather than via writes to memory or copy commands.
Note
Push constants represent a high speed path to modify constant data in pipelines that is expected to outperform memory-backed resource updates.
Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlelayout
must be a validVkPipelineLayout
handlestageFlags
must be a valid combination ofVkShaderStageFlagBits
valuesstageFlags
must not be 0pValues
must be a pointer to an array ofsize
bytescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics or compute operations size
must be greater than 0- Each of
commandBuffer
andlayout
must have been created, allocated or retrieved from the sameVkDevice
stageFlags
must match exactly the shader stages used inlayout
for the range specified byoffset
andsize
offset
must be a multiple of 4size
must be a multiple of 4offset
must be less thanVkPhysicalDeviceLimits
::maxPushConstantsSize
size
must be less than or equal toVkPhysicalDeviceLimits
::maxPushConstantsSize
minusoffset
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer in which the push constant update will be recordedlayout
- the pipeline layout used to program the push constant updatesstageFlags
- a bitmask ofVkShaderStageFlagBits
specifying the shader stages that will use the push constants in the updated range. One or more of:offset
- the start offset of the push constant range to update, in units of bytespValues
- an array ofsize
bytes containing the new push constant values
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.ShortBuffer pValues)
ShortBuffer version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.IntBuffer pValues)
IntBuffer version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.LongBuffer pValues)
LongBuffer version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.FloatBuffer pValues)
FloatBuffer version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.DoubleBuffer pValues)
DoubleBuffer version of:CmdPushConstants
-
vkCmdBeginRenderPass
public static void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, VkRenderPassBeginInfo pRenderPassBegin, int contents)
Begins a render pass instance.An application records the commands for a render pass instance one subpass at a time, by beginning a render pass instance, iterating over the subpasses to record commands for that subpass, and then ending the render pass instance.
Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepRenderPassBegin
must be a pointer to a validVkRenderPassBeginInfo
structurecontents
must be a validVkSubpassContents
valuecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
commandBuffer
must be a primaryVkCommandBuffer
- If any of the
initialLayout
orfinalLayout
member of theVkAttachmentDescription
structures or thelayout
member of theVkAttachmentReference
structures specified when creating the render pass specified in therenderPass
member ofpRenderPassBegin
isIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
then the corresponding attachment image of the framebuffer specified in theframebuffer
member ofpRenderPassBegin
must have been created withIMAGE_USAGE_COLOR_ATTACHMENT_BIT
set - If any of the
initialLayout
orfinalLayout
member of theVkAttachmentDescription
structures or thelayout
member of theVkAttachmentReference
structures specified when creating the render pass specified in therenderPass
member ofpRenderPassBegin
isIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
orIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
then the corresponding attachment image of the framebuffer specified in theframebuffer
member ofpRenderPassBegin
must have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
set - If any of the
initialLayout
orfinalLayout
member of theVkAttachmentDescription
structures or thelayout
member of theVkAttachmentReference
structures specified when creating the render pass specified in therenderPass
member ofpRenderPassBegin
isIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
then the corresponding attachment image of the framebuffer specified in theframebuffer
member ofpRenderPassBegin
must have been created withIMAGE_USAGE_SAMPLED_BIT
orIMAGE_USAGE_INPUT_ATTACHMENT_BIT
set - If any of the
initialLayout
orfinalLayout
member of theVkAttachmentDescription
structures or thelayout
member of theVkAttachmentReference
structures specified when creating the render pass specified in therenderPass
member ofpRenderPassBegin
isIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
then the corresponding attachment image of the framebuffer specified in theframebuffer
member ofpRenderPassBegin
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
set - If any of the
initialLayout
orfinalLayout
member of theVkAttachmentDescription
structures or thelayout
member of theVkAttachmentReference
structures specified when creating the render pass specified in therenderPass
member ofpRenderPassBegin
isIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
then the corresponding attachment image of the framebuffer specified in theframebuffer
member ofpRenderPassBegin
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
set
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Parameters:
commandBuffer
- the command buffer in which to record the commandpRenderPassBegin
- a pointer to aVkRenderPassBeginInfo
structure which indicates the render pass to begin an instance of, and the framebuffer the instance usescontents
- specifies how the commands in the first subpass will be provided. One of:SUBPASS_CONTENTS_INLINE
SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
-
vkCmdNextSubpass
public static void vkCmdNextSubpass(VkCommandBuffer commandBuffer, int contents)
Transitions to the next subpass of a render pass.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecontents
must be a validVkSubpassContents
valuecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
commandBuffer
must be a primaryVkCommandBuffer
- The current subpass index must be less than the number of subpasses in the render pass minus one
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
The subpass index for a render pass begins at zero when
CmdBeginRenderPass
is recorded, and increments each timevkCmdNextSubpass
is recorded.Moving to the next subpass automatically performs any multisample resolve operations in the subpass being ended. End-of-subpass multisample resolves are treated as color attachment writes for the purposes of synchronization. That is, they are considered to execute in the
PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
pipeline stage and their writes are synchronized withACCESS_COLOR_ATTACHMENT_WRITE_BIT
. Synchronization between rendering within a subpass and any resolve operations at the end of the subpass occurs automatically, without need for explicit dependencies or pipeline barriers. However, if the resolve attachment is also used in a different subpass, an explicit dependency is needed.After transitioning to the next subpass, the application can record the commands for that subpass.
- Parameters:
commandBuffer
- the command buffer in which to record the commandcontents
- specifies how the commands in the next subpass will be provided. One of:SUBPASS_CONTENTS_INLINE
SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
-
vkCmdEndRenderPass
public static void vkCmdEndRenderPass(VkCommandBuffer commandBuffer)
Ends a render pass instance.Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlecommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called inside of a render pass instance
commandBuffer
must be a primaryVkCommandBuffer
- The current subpass index must be equal to the number of subpasses in the render pass minus one
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
Ending a render pass instance performs any multisample resolve operations on the final subpass.
- Parameters:
commandBuffer
- the command buffer in which to end the current render pass instance
-
vkCmdExecuteCommands
public static void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, PointerBuffer pCommandBuffers)
Executes a secondary command buffer from a primary command buffer.A secondary command buffer must not be directly submitted to a queue. Instead, secondary command buffers are recorded to execute as part of a primary command buffer with this command.
Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepCommandBuffers
must be a pointer to an array ofcommandBufferCount
validVkCommandBuffer
handlescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations commandBuffer
must be a primaryVkCommandBuffer
commandBufferCount
must be greater than 0- Each of
commandBuffer
and the elements ofpCommandBuffers
must have been created, allocated or retrieved from the sameVkDevice
commandBuffer
must have been created with alevel
ofCOMMAND_BUFFER_LEVEL_PRIMARY
- Any given element of
pCommandBuffers
must have been created with alevel
ofCOMMAND_BUFFER_LEVEL_SECONDARY
- Any given element of
pCommandBuffers
must not be already pending execution incommandBuffer
, or appear twice inpCommandBuffers
, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
flag - Any given element of
pCommandBuffers
must not be already pending execution in any otherVkCommandBuffer
, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
flag - Any given element of
pCommandBuffers
must be in the executable state - If
CmdExecuteCommands
is being called within a render pass instance, that render pass instance must have been begun with thecontents
parameter ofCmdBeginRenderPass
set toSUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
- If
CmdExecuteCommands
is being called within a render pass instance, any given element ofpCommandBuffers
must have been recorded with theCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
- If
CmdExecuteCommands
is being called within a render pass instance, any given element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::subpass
set to the index of the subpass which the given command buffer will be executed in - If
CmdExecuteCommands
is being called within a render pass instance, any given element ofpCommandBuffers
must have been recorded with a render pass that is compatible with the current render pass - If
CmdExecuteCommands
is being called within a render pass instance, and any given element ofpCommandBuffers
was recorded withVkCommandBufferInheritanceInfo
::framebuffer
not equal toNULL_HANDLE
, thatVkFramebuffer
must be compatible with theVkFramebuffer
used in the current render pass instance - If the inherited queries feature is not enabled,
commandBuffer
must not have any queries active - If
commandBuffer
has aQUERY_TYPE_OCCLUSION
query active, then each element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::occlusionQueryEnable
set toTRUE
- If
commandBuffer
has aQUERY_TYPE_OCCLUSION
query active, then each element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::queryFlags
having all bits set that are set for the query - If
commandBuffer
has aQUERY_TYPE_PIPELINE_STATISTICS
query active, then each element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::pipelineStatistics
having all bits set that are set in theVkQueryPool
the query uses - Any given element of
pCommandBuffers
must not begin any query types that are active incommandBuffer
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
Once
vkCmdExecuteCommands
has been called, any prior executions of the secondary command buffers specified bypCommandBuffers
in any other primary command buffer become invalidated, unless those secondary command buffers were recorded withCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
.- Parameters:
commandBuffer
- a handle to a primary command buffer that the secondary command buffers are submitted to, and must be in the recording statepCommandBuffers
- an array of secondary command buffer handles, which are recorded to execute in the primary command buffer in the order they are listed in the array
-
vkCmdExecuteCommands
public static void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, VkCommandBuffer pCommandBuffer)
Executes a secondary command buffer from a primary command buffer.A secondary command buffer must not be directly submitted to a queue. Instead, secondary command buffers are recorded to execute as part of a primary command buffer with this command.
Valid Usage
commandBuffer
must be a validVkCommandBuffer
handlepCommandBuffers
must be a pointer to an array ofcommandBufferCount
validVkCommandBuffer
handlescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support transfer, graphics or compute operations commandBuffer
must be a primaryVkCommandBuffer
commandBufferCount
must be greater than 0- Each of
commandBuffer
and the elements ofpCommandBuffers
must have been created, allocated or retrieved from the sameVkDevice
commandBuffer
must have been created with alevel
ofCOMMAND_BUFFER_LEVEL_PRIMARY
- Any given element of
pCommandBuffers
must have been created with alevel
ofCOMMAND_BUFFER_LEVEL_SECONDARY
- Any given element of
pCommandBuffers
must not be already pending execution incommandBuffer
, or appear twice inpCommandBuffers
, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
flag - Any given element of
pCommandBuffers
must not be already pending execution in any otherVkCommandBuffer
, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
flag - Any given element of
pCommandBuffers
must be in the executable state - If
CmdExecuteCommands
is being called within a render pass instance, that render pass instance must have been begun with thecontents
parameter ofCmdBeginRenderPass
set toSUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
- If
CmdExecuteCommands
is being called within a render pass instance, any given element ofpCommandBuffers
must have been recorded with theCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
- If
CmdExecuteCommands
is being called within a render pass instance, any given element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::subpass
set to the index of the subpass which the given command buffer will be executed in - If
CmdExecuteCommands
is being called within a render pass instance, any given element ofpCommandBuffers
must have been recorded with a render pass that is compatible with the current render pass - If
CmdExecuteCommands
is being called within a render pass instance, and any given element ofpCommandBuffers
was recorded withVkCommandBufferInheritanceInfo
::framebuffer
not equal toNULL_HANDLE
, thatVkFramebuffer
must be compatible with theVkFramebuffer
used in the current render pass instance - If the inherited queries feature is not enabled,
commandBuffer
must not have any queries active - If
commandBuffer
has aQUERY_TYPE_OCCLUSION
query active, then each element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::occlusionQueryEnable
set toTRUE
- If
commandBuffer
has aQUERY_TYPE_OCCLUSION
query active, then each element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::queryFlags
having all bits set that are set for the query - If
commandBuffer
has aQUERY_TYPE_PIPELINE_STATISTICS
query active, then each element ofpCommandBuffers
must have been recorded withVkCommandBufferInheritanceInfo
::pipelineStatistics
having all bits set that are set in theVkQueryPool
the query uses - Any given element of
pCommandBuffers
must not begin any query types that are active incommandBuffer
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
Once
vkCmdExecuteCommands
has been called, any prior executions of the secondary command buffers specified bypCommandBuffers
in any other primary command buffer become invalidated, unless those secondary command buffers were recorded withCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
.- Parameters:
commandBuffer
- a handle to a primary command buffer that the secondary command buffers are submitted to, and must be in the recording state
-
vkEnumeratePhysicalDevices
public static int vkEnumeratePhysicalDevices(VkInstance instance, int[] pPhysicalDeviceCount, PointerBuffer pPhysicalDevices)
Array version of:EnumeratePhysicalDevices
-
vkGetPhysicalDeviceQueueFamilyProperties
public static void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, int[] pQueueFamilyPropertyCount, VkQueueFamilyProperties.Buffer pQueueFamilyProperties)
Array version of:GetPhysicalDeviceQueueFamilyProperties
-
vkEnumerateInstanceExtensionProperties
public static int vkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
Array version of:EnumerateInstanceExtensionProperties
-
vkEnumerateInstanceExtensionProperties
public static int vkEnumerateInstanceExtensionProperties(java.lang.CharSequence pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
Array version of:EnumerateInstanceExtensionProperties
-
vkEnumerateDeviceExtensionProperties
public static int vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.nio.ByteBuffer pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
Array version of:EnumerateDeviceExtensionProperties
-
vkEnumerateDeviceExtensionProperties
public static int vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.lang.CharSequence pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)
Array version of:EnumerateDeviceExtensionProperties
-
vkEnumerateInstanceLayerProperties
public static int vkEnumerateInstanceLayerProperties(int[] pPropertyCount, VkLayerProperties.Buffer pProperties)
Array version of:EnumerateInstanceLayerProperties
-
vkEnumerateDeviceLayerProperties
public static int vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, int[] pPropertyCount, VkLayerProperties.Buffer pProperties)
Array version of:EnumerateDeviceLayerProperties
-
vkAllocateMemory
public static int vkAllocateMemory(VkDevice device, VkMemoryAllocateInfo pAllocateInfo, VkAllocationCallbacks pAllocator, long[] pMemory)
Array version of:AllocateMemory
-
vkGetDeviceMemoryCommitment
public static void vkGetDeviceMemoryCommitment(VkDevice device, long memory, long[] pCommittedMemoryInBytes)
Array version of:GetDeviceMemoryCommitment
-
vkGetImageSparseMemoryRequirements
public static void vkGetImageSparseMemoryRequirements(VkDevice device, long image, int[] pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements.Buffer pSparseMemoryRequirements)
Array version of:GetImageSparseMemoryRequirements
-
vkGetPhysicalDeviceSparseImageFormatProperties
public static void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int samples, int usage, int tiling, int[] pPropertyCount, VkSparseImageFormatProperties.Buffer pProperties)
Array version of:GetPhysicalDeviceSparseImageFormatProperties
-
vkCreateFence
public static int vkCreateFence(VkDevice device, VkFenceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pFence)
Array version of:CreateFence
-
vkResetFences
public static int vkResetFences(VkDevice device, long[] pFences)
Array version of:ResetFences
-
vkWaitForFences
public static int vkWaitForFences(VkDevice device, long[] pFences, int waitAll, long timeout)
Array version of:WaitForFences
-
vkCreateSemaphore
public static int vkCreateSemaphore(VkDevice device, VkSemaphoreCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSemaphore)
Array version of:CreateSemaphore
-
vkCreateEvent
public static int vkCreateEvent(VkDevice device, VkEventCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pEvent)
Array version of:CreateEvent
-
vkCreateQueryPool
public static int vkCreateQueryPool(VkDevice device, VkQueryPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pQueryPool)
Array version of:CreateQueryPool
-
vkGetQueryPoolResults
public static int vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, int[] pData, long stride, int flags)
int[] version of:GetQueryPoolResults
-
vkGetQueryPoolResults
public static int vkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, long[] pData, long stride, int flags)
long[] version of:GetQueryPoolResults
-
vkCreateBuffer
public static int vkCreateBuffer(VkDevice device, VkBufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pBuffer)
Array version of:CreateBuffer
-
vkCreateBufferView
public static int vkCreateBufferView(VkDevice device, VkBufferViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pView)
Array version of:CreateBufferView
-
vkCreateImage
public static int vkCreateImage(VkDevice device, VkImageCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pImage)
Array version of:CreateImage
-
vkCreateImageView
public static int vkCreateImageView(VkDevice device, VkImageViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pView)
Array version of:CreateImageView
-
vkCreateShaderModule
public static int vkCreateShaderModule(VkDevice device, VkShaderModuleCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pShaderModule)
Array version of:CreateShaderModule
-
vkCreatePipelineCache
public static int vkCreatePipelineCache(VkDevice device, VkPipelineCacheCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pPipelineCache)
Array version of:CreatePipelineCache
-
vkMergePipelineCaches
public static int vkMergePipelineCaches(VkDevice device, long dstCache, long[] pSrcCaches)
Array version of:MergePipelineCaches
-
vkCreateGraphicsPipelines
public static int vkCreateGraphicsPipelines(VkDevice device, long pipelineCache, VkGraphicsPipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, long[] pPipelines)
Array version of:CreateGraphicsPipelines
-
vkCreateComputePipelines
public static int vkCreateComputePipelines(VkDevice device, long pipelineCache, VkComputePipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, long[] pPipelines)
Array version of:CreateComputePipelines
-
vkCreatePipelineLayout
public static int vkCreatePipelineLayout(VkDevice device, VkPipelineLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pPipelineLayout)
Array version of:CreatePipelineLayout
-
vkCreateSampler
public static int vkCreateSampler(VkDevice device, VkSamplerCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSampler)
Array version of:CreateSampler
-
vkCreateDescriptorSetLayout
public static int vkCreateDescriptorSetLayout(VkDevice device, VkDescriptorSetLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSetLayout)
Array version of:CreateDescriptorSetLayout
-
vkCreateDescriptorPool
public static int vkCreateDescriptorPool(VkDevice device, VkDescriptorPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pDescriptorPool)
Array version of:CreateDescriptorPool
-
vkAllocateDescriptorSets
public static int vkAllocateDescriptorSets(VkDevice device, VkDescriptorSetAllocateInfo pAllocateInfo, long[] pDescriptorSets)
Array version of:AllocateDescriptorSets
-
vkFreeDescriptorSets
public static int vkFreeDescriptorSets(VkDevice device, long descriptorPool, long[] pDescriptorSets)
Array version of:FreeDescriptorSets
-
vkCreateFramebuffer
public static int vkCreateFramebuffer(VkDevice device, VkFramebufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pFramebuffer)
Array version of:CreateFramebuffer
-
vkCreateRenderPass
public static int vkCreateRenderPass(VkDevice device, VkRenderPassCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pRenderPass)
Array version of:CreateRenderPass
-
vkCreateCommandPool
public static int vkCreateCommandPool(VkDevice device, VkCommandPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pCommandPool)
Array version of:CreateCommandPool
-
vkCmdSetBlendConstants
public static void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, float[] blendConstants)
Array version of:CmdSetBlendConstants
-
vkCmdBindDescriptorSets
public static void vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, long[] pDescriptorSets, int[] pDynamicOffsets)
Array version of:CmdBindDescriptorSets
-
vkCmdBindVertexBuffers
public static void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, int firstBinding, long[] pBuffers, long[] pOffsets)
Array version of:CmdBindVertexBuffers
-
vkCmdUpdateBuffer
public static void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, int[] pData)
Array version of:CmdUpdateBuffer
-
vkCmdWaitEvents
public static void vkCmdWaitEvents(VkCommandBuffer commandBuffer, long[] pEvents, int srcStageMask, int dstStageMask, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)
Array version of:CmdWaitEvents
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, short[] pValues)
short[] version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, int[] pValues)
int[] version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, long[] pValues)
long[] version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, float[] pValues)
float[] version of:CmdPushConstants
-
vkCmdPushConstants
public static void vkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, double[] pValues)
double[] version of:CmdPushConstants
-
-