Class VK10
- java.lang.Object
-
- org.lwjgl.vulkan.VK10
-
public class VK10 extends java.lang.ObjectThe core Vulkan 1.0 functionality.
-
-
Field Summary
Fields Modifier and Type Field and Description static intVK_ACCESS_COLOR_ATTACHMENT_READ_BITIndicates that the access is a read via a color attachment.static intVK_ACCESS_COLOR_ATTACHMENT_WRITE_BITIndicates that the access is a write via a color or resolve attachment.static intVK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BITIndicates that the access is a read via a depth/stencil attachment.static intVK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BITIndicates that the access is a write via a depth/stencil attachment.static intVK_ACCESS_HOST_READ_BITIndicates that the access is a read via the host.static intVK_ACCESS_HOST_WRITE_BITIndicates that the access is a write via the host.static intVK_ACCESS_INDEX_READ_BITIndicates that the access is an index buffer read.static intVK_ACCESS_INDIRECT_COMMAND_READ_BITIndicates that the access is an indirect command structure read as part of an indirect drawing command.static intVK_ACCESS_INPUT_ATTACHMENT_READ_BITIndicates that the access is a read via an input attachment descriptor.static intVK_ACCESS_MEMORY_READ_BITIndicates that the access is a read via a non-specific unit attached to the memory.static intVK_ACCESS_MEMORY_WRITE_BITIndicates that the access is a write via a non-specific unit attached to the memory.static intVK_ACCESS_SHADER_READ_BITIndicates that the access is a read from a shader via any other descriptor type.static intVK_ACCESS_SHADER_WRITE_BITIndicates that the access is a write or atomic from a shader via the same descriptor types as inACCESS_SHADER_READ_BIT.static intVK_ACCESS_TRANSFER_READ_BITIndicates that the access is a read from a transfer (copy, blit, resolve, etc.) operation.static intVK_ACCESS_TRANSFER_WRITE_BITIndicates that the access is a write from a transfer (copy, blit, resolve, etc.) operation.static intVK_ACCESS_UNIFORM_READ_BITIndicates that the access is a read via a uniform buffer or dynamic uniform buffer descriptor.static intVK_ACCESS_VERTEX_ATTRIBUTE_READ_BITIndicates that the access is a read via the vertex input bindings.static intVK_API_VERSION_1_0The Vulkan version number is used in several places in the API.static intVK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BITIf set, then the attachment is treated as if it shares physical memory with another attachment in the same render pass.static intVK_ATTACHMENT_LOAD_OP_CLEARMeans the contents within the render area will be cleared to a uniform value, which is specified when a render pass instance is begun.static intVK_ATTACHMENT_LOAD_OP_DONT_CAREMeans the contents within the area need not be preserved; the contents of the attachment will be undefined inside the render area.static intVK_ATTACHMENT_LOAD_OP_LOADMeans the contents within the render area will be preserved.static intVK_ATTACHMENT_STORE_OP_DONT_CAREMeans 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 intVK_ATTACHMENT_STORE_OP_STOREMeans 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 intVK_ATTACHMENT_UNUSEDSpecial values.static intVK_BLEND_FACTOR_CONSTANT_ALPHA(Ac, Ac, Ac, Ac)static intVK_BLEND_FACTOR_CONSTANT_COLOR(Rc, Gc, Bc, Ac)static intVK_BLEND_FACTOR_DST_ALPHA(Ad, Ad, Ad, Ad)static intVK_BLEND_FACTOR_DST_COLOR(Rd, Gd, Bd, Ad)static intVK_BLEND_FACTOR_ONE(1, 1, 1, 1)static intVK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA(1 − Ac, 1 − Ac, 1 − Ac, 1 − Ac)static intVK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR(1 − Rc, 1 − Gc, 1 − Bc, 1 − Ac)static intVK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA(1 − Ad, 1 − Ad, 1 − Ad, 1 − Ad)static intVK_BLEND_FACTOR_ONE_MINUS_DST_COLOR(1 − Rd, 1 − Gd, 1 − Bd, 1 − Ad)static intVK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA(1 − As0, 1 − As0, 1 − As0, 1 − As0)static intVK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR(1 − Rs0, 1 − Gs0, 1 − Bs0, 1 − As0)static intVK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA(1 − As1, 1 − As1, 1 − As1, 1 − As1)static intVK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR(1 − Rs1, 1 − Gs1, 1 − Bs1, 1 − As1)static intVK_BLEND_FACTOR_SRC_ALPHA(As0, As0, As0, As0)static intVK_BLEND_FACTOR_SRC_ALPHA_SATURATE(f, f, f, 1) ; f = min(As0, 1 − Ad)static intVK_BLEND_FACTOR_SRC_COLOR(Rs0, Gs0, Bs0, As0)static intVK_BLEND_FACTOR_SRC1_ALPHA(As1, As1, As1, As1)static intVK_BLEND_FACTOR_SRC1_COLOR(Rs1, Gs1, Bs1, As1)static intVK_BLEND_FACTOR_ZERO(0, 0, 0, 0)static intVK_BLEND_OP_ADDR = Rs0 × Sr + Rd × Dr G = Gs0 × Sg + Gd × Dg B = Bs0 × Sb + Bd × Db A = As0 × Sa + Ad × Dastatic intVK_BLEND_OP_MAXR = max(Rs0, Rd) G = max(Gs0, Gd) B = max(Bs0, Bd) A = max(As0, Ad)static intVK_BLEND_OP_MINR = min(Rs0, Rd) G = min(Gs0, Gd) B = min(Bs0, Bd) A = min(As0, Ad)static intVK_BLEND_OP_REVERSE_SUBTRACTR = Rd × Dr − Rs0 × Sr G = Gd × Dg − Gs0 × Sg B = Bd × Db − Bs0 × Sb A = Ad × Da − As0 × Sastatic intVK_BLEND_OP_SUBTRACTR = Rs0 × Sr − Rd × Dr G = Gs0 × Sg − Gd × Dg B = Bs0 × Sb − Bd × Db A = As0 × Sa − Ad × Dastatic intVK_BORDER_COLOR_FLOAT_OPAQUE_BLACK(0.0, 0.0, 0.0, 1.0)static intVK_BORDER_COLOR_FLOAT_OPAQUE_WHITE(1.0, 1.0, 1.0, 1.0)static intVK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK(0.0, 0.0, 0.0, 0.0)static intVK_BORDER_COLOR_INT_OPAQUE_BLACK(0, 0, 0, 1)static intVK_BORDER_COLOR_INT_OPAQUE_WHITE(1, 1, 1, 1)static intVK_BORDER_COLOR_INT_TRANSPARENT_BLACK(0, 0, 0, 0)static intVK_BUFFER_CREATE_SPARSE_ALIASED_BITIindicates 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 intVK_BUFFER_CREATE_SPARSE_BINDING_BITIndicates that the buffer will be backed using sparse memory binding.static intVK_BUFFER_CREATE_SPARSE_RESIDENCY_BITIndicates that the buffer can be partially backed using sparse memory binding.static intVK_BUFFER_USAGE_INDEX_BUFFER_BITIndicates that the buffer is suitable for passing as thebufferparameter toCmdBindIndexBuffer.static intVK_BUFFER_USAGE_INDIRECT_BUFFER_BITIndicates that the buffer is suitable for passing as thebufferparameter toCmdDrawIndirect,CmdDrawIndexedIndirect, orCmdDispatchIndirect.static intVK_BUFFER_USAGE_STORAGE_BUFFER_BITIndicates that the buffer can be used in aVkDescriptorBufferInfosuitable for occupying aVkDescriptorSetslot either of typeDESCRIPTOR_TYPE_STORAGE_BUFFERorDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.static intVK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BITIndicates that the buffer can be used to create aVkBufferViewsuitable for occupying aVkDescriptorSetslot of typeDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.static intVK_BUFFER_USAGE_TRANSFER_DST_BITIndicates that the buffer can be used as the destination of a transfer command.static intVK_BUFFER_USAGE_TRANSFER_SRC_BITIndicates that the buffer can be used as the source of a transfer command.static intVK_BUFFER_USAGE_UNIFORM_BUFFER_BITIndicates that the buffer can be used in aVkDescriptorBufferInfosuitable for occupying aVkDescriptorSetslot either of typeDESCRIPTOR_TYPE_UNIFORM_BUFFERorDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.static intVK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BITIndicates that the buffer can be used to create aVkBufferViewsuitable for occupying aVkDescriptorSetslot of typeDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.static intVK_BUFFER_USAGE_VERTEX_BUFFER_BITIndicates that the buffer is suitable for passing as an element of thepBuffersarray toCmdBindVertexBuffers.static intVK_COLOR_COMPONENT_A_BITIf set, then theAvalue is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static intVK_COLOR_COMPONENT_B_BITIf set, then theBvalue is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static intVK_COLOR_COMPONENT_G_BITIf set, then theGvalue is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static intVK_COLOR_COMPONENT_R_BITIf set, then theRvalue is written to color attachment for the appropriate sample, otherwise the value in memory is unmodified.static intVK_COMMAND_BUFFER_LEVEL_PRIMARY
VK_COMMAND_BUFFER_LEVEL_SECONDARYVkCommandBufferLevelstatic intVK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BITIf set, then most or all memory resources currently owned by the command buffer should be returned to the parent command pool.static intVK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BITIndicates 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 intVK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BITIndicates that a secondary command buffer is considered to be entirely inside a render pass.static intVK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITAllows the command buffer to be resubmitted to a queue or recorded into a primary command buffer while it is pending execution.static intVK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BITControls whether command buffers allocated from the pool can be individually reset.static intVK_COMMAND_POOL_CREATE_TRANSIENT_BITIndicates 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 intVK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BITIf set, resetting a command pool recycles all of the resources from the command pool back to the system.static intVK_COMPARE_OP_ALWAYSThe test always passes.static intVK_COMPARE_OP_EQUALThe test passes when R = Sstatic intVK_COMPARE_OP_GREATERThe test passes when R > S.static intVK_COMPARE_OP_GREATER_OR_EQUALThe test passes when R ≥ S.static intVK_COMPARE_OP_LESSThe test passes when R < S.static intVK_COMPARE_OP_LESS_OR_EQUALThe test passes when R ≤ S.static intVK_COMPARE_OP_NEVERThe test never passes.static intVK_COMPARE_OP_NOT_EQUALThe test passes when R ≠ S.static intVK_COMPONENT_SWIZZLE_AThe component is set to the value of the A component of the image.static intVK_COMPONENT_SWIZZLE_BThe component is set to the value of the B component of the image.static intVK_COMPONENT_SWIZZLE_GThe component is set to the value of the G component of the image.static intVK_COMPONENT_SWIZZLE_IDENTITYThe component is set to the identity swizzle.static intVK_COMPONENT_SWIZZLE_ONEThe 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 intVK_COMPONENT_SWIZZLE_RThe component is set to the value of the R component of the image.static intVK_COMPONENT_SWIZZLE_ZEROThe component is set to zero.static intVK_CULL_MODE_BACK_BITIf set, back-facing triangles are discarded.static intVK_CULL_MODE_FRONT_AND_BACKIf set, all triangles are discarded.static intVK_CULL_MODE_FRONT_BITIf set, front-facing triangles are discarded.static intVK_CULL_MODE_NONEIf set, no triangles are discarded.static intVK_DEPENDENCY_BY_REGION_BITIf set, then the dependency is by-region.static intVK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BITIf set, then descriptor sets can return their individual allocations to the pool, i.e.static intVK_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 intVK_DYNAMIC_STATE_BLEND_CONSTANTSIndicates that theblendConstantsstate inVkPipelineColorBlendStateCreateInfowill be ignored and must be set dynamically withCmdSetBlendConstantsbefore any draws are performed with a pipeline state withVkPipelineColorBlendAttachmentStatememberblendEnableset toTRUEand any of the blend functions using a constant blend color.static intVK_DYNAMIC_STATE_DEPTH_BIASIndicates that thedepthBiasConstantFactor,depthBiasClampanddepthBiasSlopeFactorstates inVkPipelineRasterizationStateCreateInfowill be ignored and must be set dynamically withCmdSetDepthBiasbefore any draws are performed withdepthBiasEnableinVkPipelineRasterizationStateCreateInfoset toTRUE.static intVK_DYNAMIC_STATE_DEPTH_BOUNDSIndicates that theminDepthBoundsandmaxDepthBoundsstates ofVkPipelineDepthStencilStateCreateInfowill be ignored and must be set dynamically withCmdSetDepthBoundsbefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberdepthBoundsTestEnableset toTRUE.static intVK_DYNAMIC_STATE_LINE_WIDTHIndicates that thelineWidthstate inVkPipelineRasterizationStateCreateInfowill be ignored and must be set dynamically withCmdSetLineWidthbefore any draw commands that generate line primitives for the rasterizer.static intVK_DYNAMIC_STATE_SCISSORIndicates that thepScissorsstate inVkPipelineViewportStateCreateInfowill be ignored and must be set dynamically withCmdSetScissorbefore any draw commands.static intVK_DYNAMIC_STATE_STENCIL_COMPARE_MASKIndicates that thecompareMaskstate inVkPipelineDepthStencilStateCreateInfofor both front and back will be ignored and must be set dynamically withCmdSetStencilCompareMaskbefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberstencilTestEnableset toTRUE.static intVK_DYNAMIC_STATE_STENCIL_REFERENCEIndicates that the reference state inVkPipelineDepthStencilStateCreateInfofor both front and back will be ignored and must be set dynamically withCmdSetStencilReferencebefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberstencilTestEnableset toTRUE.static intVK_DYNAMIC_STATE_STENCIL_WRITE_MASKIndicates that thewriteMaskstate inVkPipelineDepthStencilStateCreateInfofor both front and back will be ignored and must be set dynamically withCmdSetStencilWriteMaskbefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberstencilTestEnableset toTRUE.static intVK_DYNAMIC_STATE_VIEWPORTIndicates that thepViewportsstate inVkPipelineViewportStateCreateInfowill be ignored and must be set dynamically withCmdSetViewportbefore any draw commands.static intVK_ERROR_DEVICE_LOSTThe logical or physical device has been lost.static intVK_ERROR_EXTENSION_NOT_PRESENTA requested extension is not supported.static intVK_ERROR_FEATURE_NOT_PRESENTA requested feature is not supported.static intVK_ERROR_FORMAT_NOT_SUPPORTEDA requested format is not supported on this device.static intVK_ERROR_INCOMPATIBLE_DRIVERThe requested version of Vulkan is not supported by the driver or is otherwise incompatible for implementation-specific reasons.static intVK_ERROR_INITIALIZATION_FAILEDInitialization of an object could not be completed for implementation-specific reasons.static intVK_ERROR_LAYER_NOT_PRESENTA requested layer is not present or could not be loaded.static intVK_ERROR_MEMORY_MAP_FAILEDMapping of a memory object has failed.static intVK_ERROR_OUT_OF_DEVICE_MEMORYA device memory allocation has failed.static intVK_ERROR_OUT_OF_HOST_MEMORYA host memory allocation has failed.static intVK_ERROR_TOO_MANY_OBJECTSToo many objects of the type have already been created.static intVK_EVENT_RESETAn event is unsignaled.static intVK_EVENT_SETAn event is signaled.static intVK_FALSEBoolean constants.static intVK_FENCE_CREATE_SIGNALED_BITIf set, then the fence object is created in the signaled state.static intVK_FILTER_LINEARLinear filtering.static intVK_FILTER_NEARESTNearest filtering.static intVK_FORMAT_A1R5G5B5_UNORM_PACK16A 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 intVK_FORMAT_A2B10G10R10_SINT_PACK32A 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 intVK_FORMAT_A2B10G10R10_SNORM_PACK32A 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 intVK_FORMAT_A2B10G10R10_SSCALED_PACK32A 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 intVK_FORMAT_A2B10G10R10_UINT_PACK32A 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 intVK_FORMAT_A2B10G10R10_UNORM_PACK32A 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 intVK_FORMAT_A2B10G10R10_USCALED_PACK32A 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 intVK_FORMAT_A2R10G10B10_SINT_PACK32A 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 intVK_FORMAT_A2R10G10B10_SNORM_PACK32A 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 intVK_FORMAT_A2R10G10B10_SSCALED_PACK32A 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 intVK_FORMAT_A2R10G10B10_UINT_PACK32A 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 intVK_FORMAT_A2R10G10B10_UNORM_PACK32A 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 intVK_FORMAT_A2R10G10B10_USCALED_PACK32A 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 intVK_FORMAT_A8B8G8R8_SINT_PACK32A 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 intVK_FORMAT_A8B8G8R8_SNORM_PACK32A 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 intVK_FORMAT_A8B8G8R8_SRGB_PACK32A 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 intVK_FORMAT_A8B8G8R8_SSCALED_PACK32A 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 intVK_FORMAT_A8B8G8R8_UINT_PACK32A 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 intVK_FORMAT_A8B8G8R8_UNORM_PACK32A 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 intVK_FORMAT_A8B8G8R8_USCALED_PACK32A 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 intVK_FORMAT_ASTC_10x10_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_10x10_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_10x5_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_10x5_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_10x6_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_10x6_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_10x8_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_10x8_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_12x10_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_12x10_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_12x12_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_12x12_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_4x4_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_4x4_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_5x4_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_5x4_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_5x5_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_5x5_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_6x5_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_6x5_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_6x6_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_6x6_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_8x5_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_8x5_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_8x6_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_8x6_UNORM_BLOCKA 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 intVK_FORMAT_ASTC_8x8_SRGB_BLOCKA 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 intVK_FORMAT_ASTC_8x8_UNORM_BLOCKA 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 intVK_FORMAT_B10G11R11_UFLOAT_PACK32A 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 intVK_FORMAT_B4G4R4A4_UNORM_PACK16A 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 intVK_FORMAT_B5G5R5A1_UNORM_PACK16A 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 intVK_FORMAT_B5G6R5_UNORM_PACK16A 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 intVK_FORMAT_B8G8R8_SINTA 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 intVK_FORMAT_B8G8R8_SNORMA 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 intVK_FORMAT_B8G8R8_SRGBA 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 intVK_FORMAT_B8G8R8_SSCALEDA 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 intVK_FORMAT_B8G8R8_UINTA 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 intVK_FORMAT_B8G8R8_UNORMA 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 intVK_FORMAT_B8G8R8_USCALEDA 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 intVK_FORMAT_B8G8R8A8_SINTA 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 intVK_FORMAT_B8G8R8A8_SNORMA 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 intVK_FORMAT_B8G8R8A8_SRGBA 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 intVK_FORMAT_B8G8R8A8_SSCALEDA 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 intVK_FORMAT_B8G8R8A8_UINTA 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 intVK_FORMAT_B8G8R8A8_UNORMA 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 intVK_FORMAT_B8G8R8A8_USCALEDA 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 intVK_FORMAT_BC1_RGB_SRGB_BLOCKA 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 intVK_FORMAT_BC1_RGB_UNORM_BLOCKA three-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data.static intVK_FORMAT_BC1_RGBA_SRGB_BLOCKA 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 intVK_FORMAT_BC1_RGBA_UNORM_BLOCKA 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 intVK_FORMAT_BC2_SRGB_BLOCKA 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 intVK_FORMAT_BC2_UNORM_BLOCKA 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 intVK_FORMAT_BC3_SRGB_BLOCKA 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 intVK_FORMAT_BC3_UNORM_BLOCKA 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 intVK_FORMAT_BC4_SNORM_BLOCKA one-component, block compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data.static intVK_FORMAT_BC4_UNORM_BLOCKA one-component, block compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data.static intVK_FORMAT_BC5_SNORM_BLOCKA 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 intVK_FORMAT_BC5_UNORM_BLOCKA 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 intVK_FORMAT_BC6H_SFLOAT_BLOCKA three-component, block compressed format where each 4x4 block consists of 128-bits of encoded signed floating-point RGB image data.static intVK_FORMAT_BC6H_UFLOAT_BLOCKA three-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned floating-point RGB image data.static intVK_FORMAT_BC7_SRGB_BLOCKA 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 intVK_FORMAT_BC7_UNORM_BLOCKA four-component, block compressed format where each 4x4 block consists of 128-bits of encoded unsigned normalized RGBA image data.static intVK_FORMAT_D16_UNORMA one-component, 16-bit unsigned normalized format that has a single 16-bit depth component.static intVK_FORMAT_D16_UNORM_S8_UINTA 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 intVK_FORMAT_D24_UNORM_S8_UINTA 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 intVK_FORMAT_D32_SFLOATA one-component, 32-bit signed floating-point format that has 32-bits in the depth component.static intVK_FORMAT_D32_SFLOAT_S8_UINTA two-component format that has 32 signed float bits in the depth component and 8 unsigned integer bits in the stencil component.static intVK_FORMAT_E5B9G9R9_UFLOAT_PACK32A 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 intVK_FORMAT_EAC_R11_SNORM_BLOCKA one-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded signed normalized red image data.static intVK_FORMAT_EAC_R11_UNORM_BLOCKA one-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized red image data.static intVK_FORMAT_EAC_R11G11_SNORM_BLOCKA 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 intVK_FORMAT_EAC_R11G11_UNORM_BLOCKA 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 intVK_FORMAT_ETC2_R8G8B8_SRGB_BLOCKA 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 intVK_FORMAT_ETC2_R8G8B8_UNORM_BLOCKA three-component, ETC2 compressed format where each 4x4 block consists of 64-bits of encoded unsigned normalized RGB image data.static intVK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCKA 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 intVK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCKA 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 intVK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCKA 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 intVK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCKA 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 intVK_FORMAT_FEATURE_BLIT_DST_BITstatic intVK_FORMAT_FEATURE_BLIT_SRC_BITstatic intVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BITVkImageViewcan be used as a framebuffer color attachment and as an input attachment.static intVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BITVkImageViewcan be used as a framebuffer color attachment that supports blending and as an input attachment.static intVK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BITVkImageViewcan be used as a framebuffer depth/stencil attachment and as an input attachment.static intVK_FORMAT_FEATURE_SAMPLED_IMAGE_BITVkImageViewcan be sampled from.static intVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITIfFORMAT_FEATURE_SAMPLED_IMAGE_BITis also set,VkImageViewcan be used with a sampler that has either ofmagFilterorminFilterset toFILTER_LINEAR, ormipmapModeset toSAMPLER_MIPMAP_MODE_LINEAR.static intVK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BITVkImageViewcan be used as storage image that supports atomic operations.static intVK_FORMAT_FEATURE_STORAGE_IMAGE_BITVkImageViewcan be used as storage image.static intVK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BITAtomic operations are supported onDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERwith this format.static intVK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BITFormat can be used to create aVkBufferViewthat can be bound to aDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERdescriptor.static intVK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BITFormat can be used to create aVkBufferViewthat can be bound to aDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERdescriptor.static intVK_FORMAT_FEATURE_VERTEX_BUFFER_BITFormat can be used as a vertex attribute format (VkVertexInputAttributeDescription.format).static intVK_FORMAT_R16_SFLOATA one-component, 16-bit signed floating-point format that has a single 16-bit R component.static intVK_FORMAT_R16_SINTA one-component, 16-bit signed integer format that has a single 16-bit R component.static intVK_FORMAT_R16_SNORMA one-component, 16-bit signed normalized format that has a single 16-bit R component.static intVK_FORMAT_R16_SSCALEDA one-component, 16-bit signed scaled integer format that has a single 16-bit R component.static intVK_FORMAT_R16_UINTA one-component, 16-bit unsigned integer format that has a single 16-bit R component.static intVK_FORMAT_R16_UNORMA one-component, 16-bit unsigned normalized format that has a single 16-bit R component.static intVK_FORMAT_R16_USCALEDA one-component, 16-bit unsigned scaled integer format that has a single 16-bit R component.static intVK_FORMAT_R16G16_SFLOATA 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 intVK_FORMAT_R16G16_SINTA 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 intVK_FORMAT_R16G16_SNORMA 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 intVK_FORMAT_R16G16_SSCALEDA 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 intVK_FORMAT_R16G16_UINTA 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 intVK_FORMAT_R16G16_UNORMA 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 intVK_FORMAT_R16G16_USCALEDA 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 intVK_FORMAT_R16G16B16_SFLOATA 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 intVK_FORMAT_R16G16B16_SINTA 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 intVK_FORMAT_R16G16B16_SNORMA 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 intVK_FORMAT_R16G16B16_SSCALEDA 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 intVK_FORMAT_R16G16B16_UINTA 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 intVK_FORMAT_R16G16B16_UNORMA 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 intVK_FORMAT_R16G16B16_USCALEDA 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 intVK_FORMAT_R16G16B16A16_SFLOATA 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 intVK_FORMAT_R16G16B16A16_SINTA 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 intVK_FORMAT_R16G16B16A16_SNORMA 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 intVK_FORMAT_R16G16B16A16_SSCALEDA 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 intVK_FORMAT_R16G16B16A16_UINTA 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 intVK_FORMAT_R16G16B16A16_UNORMA 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 intVK_FORMAT_R16G16B16A16_USCALEDA 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 intVK_FORMAT_R32_SFLOATA one-component, 32-bit signed floating-point format that has a single 32-bit R component.static intVK_FORMAT_R32_SINTA one-component, 32-bit signed integer format that has a single 32-bit R component.static intVK_FORMAT_R32_UINTA one-component, 32-bit unsigned integer format that has a single 32-bit R component.static intVK_FORMAT_R32G32_SFLOATA 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 intVK_FORMAT_R32G32_SINTA 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 intVK_FORMAT_R32G32_UINTA 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 intVK_FORMAT_R32G32B32_SFLOATA 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 intVK_FORMAT_R32G32B32_SINTA 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 intVK_FORMAT_R32G32B32_UINTA 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 intVK_FORMAT_R32G32B32A32_SFLOATA 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 intVK_FORMAT_R32G32B32A32_SINTA 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 intVK_FORMAT_R32G32B32A32_UINTA 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 intVK_FORMAT_R4G4_UNORM_PACK8A 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 intVK_FORMAT_R4G4B4A4_UNORM_PACK16A 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 intVK_FORMAT_R5G5B5A1_UNORM_PACK16A 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 intVK_FORMAT_R5G6B5_UNORM_PACK16A 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 intVK_FORMAT_R64_SFLOATA one-component, 64-bit signed floating-point format that has a single 64-bit R component.static intVK_FORMAT_R64_SINTA one-component, 64-bit signed integer format that has a single 64-bit R component.static intVK_FORMAT_R64_UINTA one-component, 64-bit unsigned integer format that has a single 64-bit R component.static intVK_FORMAT_R64G64_SFLOATA 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 intVK_FORMAT_R64G64_SINTA 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 intVK_FORMAT_R64G64_UINTA 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 intVK_FORMAT_R64G64B64_SFLOATA 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 intVK_FORMAT_R64G64B64_SINTA 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 intVK_FORMAT_R64G64B64_UINTA 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 intVK_FORMAT_R64G64B64A64_SFLOATA 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 intVK_FORMAT_R64G64B64A64_SINTA 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 intVK_FORMAT_R64G64B64A64_UINTA 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 intVK_FORMAT_R8_SINTA one-component, 8-bit signed integer format that has a single 8-bit R component.static intVK_FORMAT_R8_SNORMA one-component, 8-bit signed normalized format that has a single 8-bit R component.static intVK_FORMAT_R8_SRGBA one-component, 8-bit unsigned normalized format that has a single 8-bit R component stored with sRGB nonlinear encoding.static intVK_FORMAT_R8_SSCALEDA one-component, 8-bit signed scaled integer format that has a single 8-bit R component.static intVK_FORMAT_R8_UINTA one-component, 8-bit unsigned integer format that has a single 8-bit R component.static intVK_FORMAT_R8_UNORMA one-component, 8-bit unsigned normalized format that has a single 8-bit R component.static intVK_FORMAT_R8_USCALEDA one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component.static intVK_FORMAT_R8G8_SINTA 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 intVK_FORMAT_R8G8_SNORMA 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 intVK_FORMAT_R8G8_SRGBA 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 intVK_FORMAT_R8G8_SSCALEDA 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 intVK_FORMAT_R8G8_UINTA 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 intVK_FORMAT_R8G8_UNORMA 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 intVK_FORMAT_R8G8_USCALEDA 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 intVK_FORMAT_R8G8B8_SINTA 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 intVK_FORMAT_R8G8B8_SNORMA 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 intVK_FORMAT_R8G8B8_SRGBA 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 intVK_FORMAT_R8G8B8_SSCALEDA 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 intVK_FORMAT_R8G8B8_UINTA 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 intVK_FORMAT_R8G8B8_UNORMA 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 intVK_FORMAT_R8G8B8_USCALEDA 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 intVK_FORMAT_R8G8B8A8_SINTA 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 intVK_FORMAT_R8G8B8A8_SNORMA 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 intVK_FORMAT_R8G8B8A8_SRGBA 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 intVK_FORMAT_R8G8B8A8_SSCALEDA 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 intVK_FORMAT_R8G8B8A8_UINTA 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 intVK_FORMAT_R8G8B8A8_UNORMA 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 intVK_FORMAT_R8G8B8A8_USCALEDA 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 intVK_FORMAT_S8_UINTA one-component, 8-bit unsigned integer format that has 8-bits in the stencil component.static intVK_FORMAT_UNDEFINEDThe format is not specified.static intVK_FORMAT_X8_D24_UNORM_PACK32A two-component, 32-bit format that has 24 unsigned normalized bits in the depth component and, optionally:, 8 bits that are unused.static intVK_FRONT_FACE_CLOCKWISEA triangle with negative area is considered front-facing.static intVK_FRONT_FACE_COUNTER_CLOCKWISEA triangle with positive area is considered front-facing.static intVK_IMAGE_ASPECT_COLOR_BIT
VK_IMAGE_ASPECT_DEPTH_BIT
VK_IMAGE_ASPECT_METADATA_BIT
VK_IMAGE_ASPECT_STENCIL_BITVkImageAspectFlagBitsstatic intVK_IMAGE_CREATE_CUBE_COMPATIBLE_BITIndicates that the image can be used to create aVkImageViewof typeIMAGE_VIEW_TYPE_CUBEorIMAGE_VIEW_TYPE_CUBE_ARRAY.static intVK_IMAGE_CREATE_MUTABLE_FORMAT_BITIndicates that the image can be used to create aVkImageViewwith a different format from the image.static intVK_IMAGE_CREATE_SPARSE_ALIASED_BITIndicates 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 intVK_IMAGE_CREATE_SPARSE_BINDING_BITIndicates that the image will be backed using sparse memory binding.static intVK_IMAGE_CREATE_SPARSE_RESIDENCY_BITIndicates that the image can be partially backed using sparse memory binding.static intVK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALmust only be used as a color or resolve attachment in aVkFramebuffer.static intVK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMALmust only be used as a depth/stencil attachment in aVkFramebuffer.static intVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALmust only be used as a read-only depth/stencil attachment in aVkFramebufferand/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 intVK_IMAGE_LAYOUT_GENERALSupports all types of device access.static intVK_IMAGE_LAYOUT_PREINITIALIZEDSupports no device access.static intVK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALmust 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 intVK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMALmust only be used as a destination image of a transfer command.static intVK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMALmust only be used as a source image of a transfer command (see the definition ofPIPELINE_STAGE_TRANSFER_BIT).static intVK_IMAGE_LAYOUT_UNDEFINEDSupports no device access.static intVK_IMAGE_TILING_LINEARSpecifies linear tiling (texels are laid out in memory in row-major order, possibly with some padding on each row).static intVK_IMAGE_TILING_OPTIMALSpecifies optimal tiling (texels are laid out in an implementation-dependent arrangement, for more optimal memory access).static intVK_IMAGE_TYPE_1DOne-dimensional imagestatic intVK_IMAGE_TYPE_2DTwo-dimensional imagestatic intVK_IMAGE_TYPE_3DThree-dimensional imagestatic intVK_IMAGE_USAGE_COLOR_ATTACHMENT_BITIndicates that the image can be used to create aVkImageViewsuitable for use as a color or resolve attachment in aVkFramebuffer.static intVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITIndicates that the image can be used to create aVkImageViewsuitable for use as a depth/stencil attachment in aVkFramebuffer.static intVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITIndicates that the image can be used to create aVkImageViewsuitable for occupyingVkDescriptorSetslot 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 intVK_IMAGE_USAGE_SAMPLED_BITIndicates that the image can be used to create aVkImageViewsuitable for occupying aVkDescriptorSetslot either of typeDESCRIPTOR_TYPE_SAMPLED_IMAGEorDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and be sampled by a shader.static intVK_IMAGE_USAGE_STORAGE_BITIndicates that the image can be used to create aVkImageViewsuitable for occupying aVkDescriptorSetslot of typeDESCRIPTOR_TYPE_STORAGE_IMAGE.static intVK_IMAGE_USAGE_TRANSFER_DST_BITIndicates that the image can be used as the destination of a transfer command.static intVK_IMAGE_USAGE_TRANSFER_SRC_BITIndicates that the image can be used as the source of a transfer command.static intVK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BITIndicates that the memory bound to this image will have been allocated with theMEMORY_PROPERTY_LAZILY_ALLOCATED_BIT.static intVK_IMAGE_VIEW_TYPE_1DOne-dimensional image view.static intVK_IMAGE_VIEW_TYPE_1D_ARRAYOne-dimensional array image view.static intVK_IMAGE_VIEW_TYPE_2DTwo-dimensional image view.static intVK_IMAGE_VIEW_TYPE_2D_ARRAYTwo-dimensional array image view.static intVK_IMAGE_VIEW_TYPE_3DThree-dimensional image view.static intVK_IMAGE_VIEW_TYPE_CUBECube map image view.static intVK_IMAGE_VIEW_TYPE_CUBE_ARRAYCube map array image view.static intVK_INCOMPLETEA return array was too small for the result.static intVK_INDEX_TYPE_UINT16
VK_INDEX_TYPE_UINT32VkIndexTypestatic intVK_INTERNAL_ALLOCATION_TYPE_EXECUTABLEThe allocation is intended for execution by the host.static floatVK_LOD_CLAMP_NONEstatic intVK_LOGIC_OP_ANDs∧dstatic intVK_LOGIC_OP_AND_INVERTED¬s∧dstatic intVK_LOGIC_OP_AND_REVERSEs∧¬dstatic intVK_LOGIC_OP_CLEAR0static intVK_LOGIC_OP_COPYsstatic intVK_LOGIC_OP_COPY_INVERTED¬sstatic intVK_LOGIC_OP_EQUIVALENT¬(s⊕d)static intVK_LOGIC_OP_INVERT¬dstatic intVK_LOGIC_OP_NAND¬(s∧d)static intVK_LOGIC_OP_NO_OPdstatic intVK_LOGIC_OP_NOR¬(s∨d)static intVK_LOGIC_OP_ORs∨dstatic intVK_LOGIC_OP_OR_INVERTED¬s∨dstatic intVK_LOGIC_OP_OR_REVERSEs∨¬dstatic intVK_LOGIC_OP_SETall 1sstatic intVK_LOGIC_OP_XORs⊕dstatic intVK_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 intVK_MEMORY_HEAP_DEVICE_LOCAL_BITMeans the heap corresponds to device local memory.static intVK_MEMORY_PROPERTY_DEVICE_LOCAL_BITIf set, memory allocated with this type is the most efficient for device access.static intVK_MEMORY_PROPERTY_HOST_CACHED_BITIf set, memory allocated with this type is cached on the host.static intVK_MEMORY_PROPERTY_HOST_COHERENT_BITIf set, host cache management commandsFlushMappedMemoryRangesandInvalidateMappedMemoryRangesare not needed to make host writes visible to the device or device writes visible to the host, respectively.static intVK_MEMORY_PROPERTY_HOST_VISIBLE_BITIf set, memory allocated with this type can be mapped usingMapMemoryso that it can be accessed on the host.static intVK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BITIf set, the memory type only allows device access to the memory.static intVK_NOT_READYA fence or query has not yet completed.static longVK_NULL_HANDLEThe reserved handleVK_NULL_HANDLEcan be passed in place of valid object handles when explicitly called out in the specification.static intVK_PHYSICAL_DEVICE_TYPE_CPUThe device is typically running on the same processors as the host.static intVK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPUThe device is typically a separate processor connected to the host via an interlink.static intVK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPUThe device is typically one embedded in or tightly coupled with the host.static intVK_PHYSICAL_DEVICE_TYPE_OTHERThe device does not match any other available types.static intVK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPUThe device is typically a virtual node in a virtualization environment.static intVK_PIPELINE_BIND_POINT_COMPUTE
VK_PIPELINE_BIND_POINT_GRAPHICSVkPipelineBindPointstatic intVK_PIPELINE_CACHE_HEADER_VERSION_ONEVkPipelineCacheHeaderVersionstatic intVK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BITSpecifies 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 intVK_PIPELINE_CREATE_DERIVATIVE_BITSpecifies that the pipeline to be created will be a child of a previously created parent pipeline.static intVK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BITSpecifies that the created pipeline will not be optimized.static intVK_PIPELINE_STAGE_ALL_COMMANDS_BITExecution of all stages supported on the queue.static intVK_PIPELINE_STAGE_ALL_GRAPHICS_BITExecution of all graphics pipeline stages.static intVK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BITFinal stage in the pipeline where commands complete execution.static intVK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITStage of the pipeline after blending where the final color values are output from the pipeline.static intVK_PIPELINE_STAGE_COMPUTE_SHADER_BITExecution of a compute shader.static intVK_PIPELINE_STAGE_DRAW_INDIRECT_BITStage of the pipeline where Draw/DispatchIndirect data structures are consumed.static intVK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BITStage of the pipeline where early fragment tests (depth and stencil tests before fragment shading) are performed.static intVK_PIPELINE_STAGE_FRAGMENT_SHADER_BITFragment shader stage.static intVK_PIPELINE_STAGE_GEOMETRY_SHADER_BITGeometry shader stage.static intVK_PIPELINE_STAGE_HOST_BITA pseudo-stage indicating execution on the host of reads/writes of device memory.static intVK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BITStage of the pipeline where late fragment tests (depth and stencil tests after fragment shading) are performed.static intVK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITTessellation control shader stage.static intVK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BITTessellation evaluation shader stage.static intVK_PIPELINE_STAGE_TOP_OF_PIPE_BITStage of the pipeline where commands are initially received by the queue.static intVK_PIPELINE_STAGE_TRANSFER_BITExecution of copy commands.static intVK_PIPELINE_STAGE_VERTEX_INPUT_BITStage of the pipeline where vertex and index buffers are consumed.static intVK_PIPELINE_STAGE_VERTEX_SHADER_BITVertex shader stage.static intVK_POLYGON_MODE_FILLCauses polygons to render using the polygon rasterization rules.static intVK_POLYGON_MODE_LINECauses polygon edges to be drawn as line segments.static intVK_POLYGON_MODE_POINTThe vertices of polygons are treated, for rasterization purposes, as if they had been drawn as points.static intVK_PRIMITIVE_TOPOLOGY_LINE_LISTIndividual line segments, each defined by a pair of vertices.static intVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCYLines with adjacency are independent line segments where each endpoint has a corresponding adjacent vertex that is accessible in a geometry shader.static intVK_PRIMITIVE_TOPOLOGY_LINE_STRIPA series of one or more connected line segments.static intVK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCYLine 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 intVK_PRIMITIVE_TOPOLOGY_PATCH_LISTSeparate patches.static intVK_PRIMITIVE_TOPOLOGY_POINT_LISTA series of individual points.static intVK_PRIMITIVE_TOPOLOGY_TRIANGLE_FANA triangle fan.static intVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LISTSeparate triangles.static intVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYTriangles with adjacency are similar to separate triangles except that each triangle edge has an adjacent vertex that is accessible in a geometry shader.static intVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIPA triangle strip is a series of triangles connected along shared edges.static intVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCYTriangle 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 intVK_QUERY_CONTROL_PRECISE_BITIf set, an implementation must return a result that matches the actual number of samples passed.static intVK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BITIf set, queries managed by the pool will count the number of primitives processed by the Primitive Clipping stage of the pipeline.static intVK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BITIF set, queries managed by the pool will count the number of primitives output by the Primitive Clipping stage of the pipeline.static intVK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BITIf set, queries managed by the pool will count the number of compute shader invocations.static intVK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BITIF set, queries managed by the pool will count the number of fragment shader invocations.static intVK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BITIf set, queries managed by the pool will count the number of geometry shader invocations.static intVK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BITIf set, queries managed by the pool will count the number of primitives generated by geometry shader invocations.static intVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BITIf set, queries managed by the pool will count the number of primitives processed by the input assembly stage.static intVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BITIf set, queries managed by the pool will count the number of vertices processed by the input assembly stage.static intVK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BITIf set, queries managed by the pool will count the number of patches processed by the tessellation control shader.static intVK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BITIf set, queries managed by the pool will count the number of invocations of the tessellation evaluation shader.static intVK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BITIf set, queries managed by the pool will count the number of vertex shader invocations.static intVK_QUERY_RESULT_64_BITIndicates the results will be written as an array of 64-bit unsigned integer values.static intVK_QUERY_RESULT_PARTIAL_BITIndicates that returning partial results is acceptable.static intVK_QUERY_RESULT_WAIT_BITIndicates that Vulkan will wait for each query’s status to become available before retrieving its results.static intVK_QUERY_RESULT_WITH_AVAILABILITY_BITIndicates that the availability status accompanies the results.static intVK_QUERY_TYPE_OCCLUSIONOcclusion query.static intVK_QUERY_TYPE_PIPELINE_STATISTICSPipeline statistics querystatic intVK_QUERY_TYPE_TIMESTAMPTimestamp query.static intVK_QUEUE_COMPUTE_BITIf set, then the queues in this queue family support compute operations.static intVK_QUEUE_FAMILY_IGNOREDSpecial values.static intVK_QUEUE_GRAPHICS_BITIf set, then the queues in this queue family support graphics operations.static intVK_QUEUE_SPARSE_BINDING_BITIf set, then the queues in this queue family support sparse memory management operations.static intVK_QUEUE_TRANSFER_BITIf set, then the queues in this queue family support transfer operations.static intVK_REMAINING_ARRAY_LAYERS
VK_REMAINING_MIP_LEVELSSpecial values.static intVK_SAMPLE_COUNT_1_BIT1 sample per pixel.static intVK_SAMPLE_COUNT_16_BIT16 samples per pixel.static intVK_SAMPLE_COUNT_2_BIT2 samples per pixel.static intVK_SAMPLE_COUNT_32_BIT32 samples per pixel.static intVK_SAMPLE_COUNT_4_BIT4 samples per pixel.static intVK_SAMPLE_COUNT_64_BIT64 samples per pixel.static intVK_SAMPLE_COUNT_8_BIT8 samples per pixel.static intVK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDERIndicates that the clamp to border wrap mode will be used.static intVK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGEIndicates that the clamp to edge wrap mode will be used.static intVK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEATIndicates that the mirrored repeat wrap mode will be used.static intVK_SAMPLER_ADDRESS_MODE_REPEATIndicates that the repeat wrap mode will be used.static intVK_SAMPLER_MIPMAP_MODE_LINEARTexels are read from image levelsdhianddlo, where:dhi = qwhen levelbase + λ ≥ qdhi = floor(levelbase + λ)otherwisestatic intVK_SAMPLER_MIPMAP_MODE_NEARESTTexels are read from the image leveld, where:d = levelbasewhen λ ≤ 0.5d = nearest(λ)when λ > 0.5 && levelbase + λ ≤ q + 0.5d = qwhen λ > 0.5 && levelbase + λ > q + 0.5static intVK_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 intVK_SHARING_MODE_CONCURRENTSpecifies that concurrent access to any range or image subresource of the object from multiple queue families is supported.static intVK_SHARING_MODE_EXCLUSIVESpecifies that access to any range or image subresource of the object will be exclusive to a single queue family at a time.static intVK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BITIf set, the first mip level that is not an exact multiple of the sparse image block size begins the mip tail region.static intVK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BITIf 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 intVK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BITIf set, the image uses a single mip tail region for all array layers.static intVK_SPARSE_MEMORY_BIND_METADATA_BITIs used to indicate that the memory being bound is only for the metadata aspect.static intVK_STENCIL_FACE_BACK_BITIndicates that only the back set of stencil state is updated.static intVK_STENCIL_FACE_FRONT_BITIndicates that only the front set of stencil state is updated.static intVK_STENCIL_FRONT_AND_BACKIs the combination ofSTENCIL_FACE_FRONT_BITandSTENCIL_FACE_BACK_BITand indicates that both sets of stencil state are updated.static intVK_STENCIL_OP_DECREMENT_AND_CLAMPDecrements the current value and clamps to 0.static intVK_STENCIL_OP_DECREMENT_AND_WRAPDecrements the current value and wraps to the maximum possible value when the value would go below 0.static intVK_STENCIL_OP_INCREMENT_AND_CLAMPIncrements the current value and clamps to the maximum representable unsigned value.static intVK_STENCIL_OP_INCREMENT_AND_WRAPIncrements the current value and wraps to 0 when the maximum value would have been exceeded.static intVK_STENCIL_OP_INVERTBitwise-inverts the current value.static intVK_STENCIL_OP_KEEPKeeps the current value.static intVK_STENCIL_OP_REPLACESets the value toreference.static intVK_STENCIL_OP_ZEROSets the value to 0.static intVK_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 intVK_SUBPASS_CONTENTS_INLINEThe 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 intVK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERSThe contents are recorded in secondary command buffers that will be called from the primary command buffer, andCmdExecuteCommandsis the only valid command on the command buffer untilCmdNextSubpassorCmdEndRenderPass.static intVK_SUBPASS_EXTERNALSpecial values.static intVK_SUCCESSCommand successfully completed.static intVK_SYSTEM_ALLOCATION_SCOPE_CACHEThe allocation is scoped to the lifetime of aVkPipelineCacheobject.static intVK_SYSTEM_ALLOCATION_SCOPE_COMMANDThe allocation is scoped to the duration of the Vulkan command.static intVK_SYSTEM_ALLOCATION_SCOPE_DEVICEThe allocation is scoped to the lifetime of the Vulkan device.static intVK_SYSTEM_ALLOCATION_SCOPE_INSTANCEThe allocation is scoped to the lifetime of the Vulkan instance.static intVK_SYSTEM_ALLOCATION_SCOPE_OBJECTThe allocation is scoped to the lifetime of the Vulkan object that is being created or used.static intVK_TIMEOUTA wait operation has not completed in the specified time.static intVK_TRUEBoolean constants.static intVK_UUID_SIZEStruct member limits.static intVK_VERTEX_INPUT_RATE_INSTANCEIndicates that vertex attribute addressing is a function of the instance index.static intVK_VERTEX_INPUT_RATE_VERTEXIndicates that vertex attribute addressing is a function of the vertex index.static longVK_WHOLE_SIZESpecial size value.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static intvkAllocateCommandBuffers(VkDevice device, VkCommandBufferAllocateInfo pAllocateInfo, PointerBuffer pCommandBuffers)static intvkAllocateDescriptorSets(VkDevice device, VkDescriptorSetAllocateInfo pAllocateInfo, long[] pDescriptorSets)static intvkAllocateDescriptorSets(VkDevice device, VkDescriptorSetAllocateInfo pAllocateInfo, java.nio.LongBuffer pDescriptorSets)static intvkAllocateMemory(VkDevice device, VkMemoryAllocateInfo pAllocateInfo, VkAllocationCallbacks pAllocator, long[] pMemory)static intvkAllocateMemory(VkDevice device, VkMemoryAllocateInfo pAllocateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pMemory)static intvkBeginCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferBeginInfo pBeginInfo)static intvkBindBufferMemory(VkDevice device, long buffer, long memory, long memoryOffset)static intvkBindImageMemory(VkDevice device, long image, long memory, long memoryOffset)static voidvkCmdBeginQuery(VkCommandBuffer commandBuffer, long queryPool, int query, int flags)static voidvkCmdBeginRenderPass(VkCommandBuffer commandBuffer, VkRenderPassBeginInfo pRenderPassBegin, int contents)static voidvkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, long[] pDescriptorSets, int[] pDynamicOffsets)static voidvkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, int pipelineBindPoint, long layout, int firstSet, java.nio.LongBuffer pDescriptorSets, java.nio.IntBuffer pDynamicOffsets)static voidvkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, long buffer, long offset, int indexType)static voidvkCmdBindPipeline(VkCommandBuffer commandBuffer, int pipelineBindPoint, long pipeline)static voidvkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, int firstBinding, long[] pBuffers, long[] pOffsets)static voidvkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, int firstBinding, java.nio.LongBuffer pBuffers, java.nio.LongBuffer pOffsets)static voidvkCmdBlitImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageBlit.Buffer pRegions, int filter)static voidvkCmdClearAttachments(VkCommandBuffer commandBuffer, VkClearAttachment.Buffer pAttachments, VkClearRect.Buffer pRects)static voidvkCmdClearColorImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearColorValue pColor, VkImageSubresourceRange.Buffer pRanges)static voidvkCmdClearColorImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearColorValue pColor, VkImageSubresourceRange pRange)static voidvkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearDepthStencilValue pDepthStencil, VkImageSubresourceRange.Buffer pRanges)static voidvkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, long image, int imageLayout, VkClearDepthStencilValue pDepthStencil, VkImageSubresourceRange pRange)static voidvkCmdCopyBuffer(VkCommandBuffer commandBuffer, long srcBuffer, long dstBuffer, VkBufferCopy.Buffer pRegions)static voidvkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, long srcBuffer, long dstImage, int dstImageLayout, VkBufferImageCopy.Buffer pRegions)static voidvkCmdCopyImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageCopy.Buffer pRegions)static voidvkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstBuffer, VkBufferImageCopy.Buffer pRegions)static voidvkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, long queryPool, int firstQuery, int queryCount, long dstBuffer, long dstOffset, long stride, int flags)static voidvkCmdDispatch(VkCommandBuffer commandBuffer, int x, int y, int z)static voidvkCmdDispatchIndirect(VkCommandBuffer commandBuffer, long buffer, long offset)static voidvkCmdDraw(VkCommandBuffer commandBuffer, int vertexCount, int instanceCount, int firstVertex, int firstInstance)static voidvkCmdDrawIndexed(VkCommandBuffer commandBuffer, int indexCount, int instanceCount, int firstIndex, int vertexOffset, int firstInstance)static voidvkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, long buffer, long offset, int drawCount, int stride)static voidvkCmdDrawIndirect(VkCommandBuffer commandBuffer, long buffer, long offset, int drawCount, int stride)static voidvkCmdEndQuery(VkCommandBuffer commandBuffer, long queryPool, int query)static voidvkCmdEndRenderPass(VkCommandBuffer commandBuffer)static voidvkCmdExecuteCommands(VkCommandBuffer commandBuffer, PointerBuffer pCommandBuffers)static voidvkCmdExecuteCommands(VkCommandBuffer commandBuffer, VkCommandBuffer pCommandBuffer)static voidvkCmdFillBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, long size, int data)static voidvkCmdNextSubpass(VkCommandBuffer commandBuffer, int contents)static voidvkCmdPipelineBarrier(VkCommandBuffer commandBuffer, int srcStageMask, int dstStageMask, int dependencyFlags, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.ByteBuffer pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, double[] pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.DoubleBuffer pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, float[] pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.FloatBuffer pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, int[] pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.IntBuffer pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, long[] pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.LongBuffer pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, short[] pValues)static voidvkCmdPushConstants(VkCommandBuffer commandBuffer, long layout, int stageFlags, int offset, java.nio.ShortBuffer pValues)static voidvkCmdResetEvent(VkCommandBuffer commandBuffer, long event, int stageMask)static voidvkCmdResetQueryPool(VkCommandBuffer commandBuffer, long queryPool, int firstQuery, int queryCount)static voidvkCmdResolveImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageResolve.Buffer pRegions)static voidvkCmdResolveImage(VkCommandBuffer commandBuffer, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageResolve pRegion)static voidvkCmdSetBlendConstants(VkCommandBuffer commandBuffer, float[] blendConstants)static voidvkCmdSetBlendConstants(VkCommandBuffer commandBuffer, java.nio.FloatBuffer blendConstants)static voidvkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor)static voidvkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds)static voidvkCmdSetEvent(VkCommandBuffer commandBuffer, long event, int stageMask)static voidvkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth)static voidvkCmdSetScissor(VkCommandBuffer commandBuffer, int firstScissor, VkRect2D.Buffer pScissors)static voidvkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, int faceMask, int compareMask)static voidvkCmdSetStencilReference(VkCommandBuffer commandBuffer, int faceMask, int reference)static voidvkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, int faceMask, int writeMask)static voidvkCmdSetViewport(VkCommandBuffer commandBuffer, int firstViewport, VkViewport.Buffer pViewports)static voidvkCmdUpdateBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, int[] pData)static voidvkCmdUpdateBuffer(VkCommandBuffer commandBuffer, long dstBuffer, long dstOffset, java.nio.IntBuffer pData)static voidvkCmdWaitEvents(VkCommandBuffer commandBuffer, long[] pEvents, int srcStageMask, int dstStageMask, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)static voidvkCmdWaitEvents(VkCommandBuffer commandBuffer, java.nio.LongBuffer pEvents, int srcStageMask, int dstStageMask, VkMemoryBarrier.Buffer pMemoryBarriers, VkBufferMemoryBarrier.Buffer pBufferMemoryBarriers, VkImageMemoryBarrier.Buffer pImageMemoryBarriers)static voidvkCmdWriteTimestamp(VkCommandBuffer commandBuffer, int pipelineStage, long queryPool, int query)static intvkCreateBuffer(VkDevice device, VkBufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pBuffer)static intvkCreateBuffer(VkDevice device, VkBufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pBuffer)static intvkCreateBufferView(VkDevice device, VkBufferViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pView)static intvkCreateBufferView(VkDevice device, VkBufferViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pView)static intvkCreateCommandPool(VkDevice device, VkCommandPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pCommandPool)static intvkCreateCommandPool(VkDevice device, VkCommandPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pCommandPool)static intvkCreateComputePipelines(VkDevice device, long pipelineCache, VkComputePipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, long[] pPipelines)static intvkCreateComputePipelines(VkDevice device, long pipelineCache, VkComputePipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelines)static intvkCreateDescriptorPool(VkDevice device, VkDescriptorPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pDescriptorPool)static intvkCreateDescriptorPool(VkDevice device, VkDescriptorPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pDescriptorPool)static intvkCreateDescriptorSetLayout(VkDevice device, VkDescriptorSetLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSetLayout)static intvkCreateDescriptorSetLayout(VkDevice device, VkDescriptorSetLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSetLayout)static intvkCreateDevice(VkPhysicalDevice physicalDevice, VkDeviceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pDevice)static intvkCreateEvent(VkDevice device, VkEventCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pEvent)static intvkCreateEvent(VkDevice device, VkEventCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pEvent)static intvkCreateFence(VkDevice device, VkFenceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pFence)static intvkCreateFence(VkDevice device, VkFenceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pFence)static intvkCreateFramebuffer(VkDevice device, VkFramebufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pFramebuffer)static intvkCreateFramebuffer(VkDevice device, VkFramebufferCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pFramebuffer)static intvkCreateGraphicsPipelines(VkDevice device, long pipelineCache, VkGraphicsPipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, long[] pPipelines)static intvkCreateGraphicsPipelines(VkDevice device, long pipelineCache, VkGraphicsPipelineCreateInfo.Buffer pCreateInfos, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelines)static intvkCreateImage(VkDevice device, VkImageCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pImage)static intvkCreateImage(VkDevice device, VkImageCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pImage)static intvkCreateImageView(VkDevice device, VkImageViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pView)static intvkCreateImageView(VkDevice device, VkImageViewCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pView)static intvkCreateInstance(VkInstanceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pInstance)static intvkCreatePipelineCache(VkDevice device, VkPipelineCacheCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pPipelineCache)static intvkCreatePipelineCache(VkDevice device, VkPipelineCacheCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelineCache)static intvkCreatePipelineLayout(VkDevice device, VkPipelineLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pPipelineLayout)static intvkCreatePipelineLayout(VkDevice device, VkPipelineLayoutCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pPipelineLayout)static intvkCreateQueryPool(VkDevice device, VkQueryPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pQueryPool)static intvkCreateQueryPool(VkDevice device, VkQueryPoolCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pQueryPool)static intvkCreateRenderPass(VkDevice device, VkRenderPassCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pRenderPass)static intvkCreateRenderPass(VkDevice device, VkRenderPassCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pRenderPass)static intvkCreateSampler(VkDevice device, VkSamplerCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSampler)static intvkCreateSampler(VkDevice device, VkSamplerCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSampler)static intvkCreateSemaphore(VkDevice device, VkSemaphoreCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pSemaphore)static intvkCreateSemaphore(VkDevice device, VkSemaphoreCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pSemaphore)static intvkCreateShaderModule(VkDevice device, VkShaderModuleCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, long[] pShaderModule)static intvkCreateShaderModule(VkDevice device, VkShaderModuleCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, java.nio.LongBuffer pShaderModule)static voidvkDestroyBuffer(VkDevice device, long buffer, VkAllocationCallbacks pAllocator)static voidvkDestroyBufferView(VkDevice device, long bufferView, VkAllocationCallbacks pAllocator)static voidvkDestroyCommandPool(VkDevice device, long commandPool, VkAllocationCallbacks pAllocator)static voidvkDestroyDescriptorPool(VkDevice device, long descriptorPool, VkAllocationCallbacks pAllocator)static voidvkDestroyDescriptorSetLayout(VkDevice device, long descriptorSetLayout, VkAllocationCallbacks pAllocator)static voidvkDestroyDevice(VkDevice device, VkAllocationCallbacks pAllocator)static voidvkDestroyEvent(VkDevice device, long event, VkAllocationCallbacks pAllocator)static voidvkDestroyFence(VkDevice device, long fence, VkAllocationCallbacks pAllocator)static voidvkDestroyFramebuffer(VkDevice device, long framebuffer, VkAllocationCallbacks pAllocator)static voidvkDestroyImage(VkDevice device, long image, VkAllocationCallbacks pAllocator)static voidvkDestroyImageView(VkDevice device, long imageView, VkAllocationCallbacks pAllocator)static voidvkDestroyInstance(VkInstance instance, VkAllocationCallbacks pAllocator)static voidvkDestroyPipeline(VkDevice device, long pipeline, VkAllocationCallbacks pAllocator)static voidvkDestroyPipelineCache(VkDevice device, long pipelineCache, VkAllocationCallbacks pAllocator)static voidvkDestroyPipelineLayout(VkDevice device, long pipelineLayout, VkAllocationCallbacks pAllocator)static voidvkDestroyQueryPool(VkDevice device, long queryPool, VkAllocationCallbacks pAllocator)static voidvkDestroyRenderPass(VkDevice device, long renderPass, VkAllocationCallbacks pAllocator)static voidvkDestroySampler(VkDevice device, long sampler, VkAllocationCallbacks pAllocator)static voidvkDestroySemaphore(VkDevice device, long semaphore, VkAllocationCallbacks pAllocator)static voidvkDestroyShaderModule(VkDevice device, long shaderModule, VkAllocationCallbacks pAllocator)static intvkDeviceWaitIdle(VkDevice device)static intvkEndCommandBuffer(VkCommandBuffer commandBuffer)static intvkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.nio.ByteBuffer pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.nio.ByteBuffer pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.lang.CharSequence pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, java.lang.CharSequence pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, int[] pPropertyCount, VkLayerProperties.Buffer pProperties)static intvkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)static intvkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateInstanceExtensionProperties(java.lang.CharSequence pLayerName, int[] pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateInstanceExtensionProperties(java.lang.CharSequence pLayerName, java.nio.IntBuffer pPropertyCount, VkExtensionProperties.Buffer pProperties)static intvkEnumerateInstanceLayerProperties(int[] pPropertyCount, VkLayerProperties.Buffer pProperties)static intvkEnumerateInstanceLayerProperties(java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)static intvkEnumeratePhysicalDevices(VkInstance instance, int[] pPhysicalDeviceCount, PointerBuffer pPhysicalDevices)static intvkEnumeratePhysicalDevices(VkInstance instance, java.nio.IntBuffer pPhysicalDeviceCount, PointerBuffer pPhysicalDevices)static intvkFlushMappedMemoryRanges(VkDevice device, VkMappedMemoryRange.Buffer pMemoryRanges)static intvkFlushMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)static voidvkFreeCommandBuffers(VkDevice device, long commandPool, PointerBuffer pCommandBuffers)static voidvkFreeCommandBuffers(VkDevice device, long commandPool, VkCommandBuffer pCommandBuffer)static intvkFreeDescriptorSets(VkDevice device, long descriptorPool, long pDescriptorSet)static intvkFreeDescriptorSets(VkDevice device, long descriptorPool, long[] pDescriptorSets)static intvkFreeDescriptorSets(VkDevice device, long descriptorPool, java.nio.LongBuffer pDescriptorSets)static voidvkFreeMemory(VkDevice device, long memory, VkAllocationCallbacks pAllocator)static voidvkGetBufferMemoryRequirements(VkDevice device, long buffer, VkMemoryRequirements pMemoryRequirements)static voidvkGetDeviceMemoryCommitment(VkDevice device, long memory, long[] pCommittedMemoryInBytes)static voidvkGetDeviceMemoryCommitment(VkDevice device, long memory, java.nio.LongBuffer pCommittedMemoryInBytes)static longvkGetDeviceProcAddr(VkDevice device, java.nio.ByteBuffer pName)static longvkGetDeviceProcAddr(VkDevice device, java.lang.CharSequence pName)static voidvkGetDeviceQueue(VkDevice device, int queueFamilyIndex, int queueIndex, PointerBuffer pQueue)static intvkGetEventStatus(VkDevice device, long event)static intvkGetFenceStatus(VkDevice device, long fence)static voidvkGetImageMemoryRequirements(VkDevice device, long image, VkMemoryRequirements pMemoryRequirements)static voidvkGetImageSparseMemoryRequirements(VkDevice device, long image, int[] pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements.Buffer pSparseMemoryRequirements)static voidvkGetImageSparseMemoryRequirements(VkDevice device, long image, java.nio.IntBuffer pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements.Buffer pSparseMemoryRequirements)static voidvkGetImageSubresourceLayout(VkDevice device, long image, VkImageSubresource pSubresource, VkSubresourceLayout pLayout)static longvkGetInstanceProcAddr(VkInstance instance, java.nio.ByteBuffer pName)static longvkGetInstanceProcAddr(VkInstance instance, java.lang.CharSequence pName)static voidvkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures pFeatures)static voidvkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, int format, VkFormatProperties pFormatProperties)static intvkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int tiling, int usage, int flags, VkImageFormatProperties pImageFormatProperties)static voidvkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties pMemoryProperties)static voidvkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties pProperties)static voidvkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, int[] pQueueFamilyPropertyCount, VkQueueFamilyProperties.Buffer pQueueFamilyProperties)static voidvkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pQueueFamilyPropertyCount, VkQueueFamilyProperties.Buffer pQueueFamilyProperties)static voidvkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int samples, int usage, int tiling, int[] pPropertyCount, VkSparseImageFormatProperties.Buffer pProperties)static voidvkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, int format, int type, int samples, int usage, int tiling, java.nio.IntBuffer pPropertyCount, VkSparseImageFormatProperties.Buffer pProperties)static intvkGetPipelineCacheData(VkDevice device, long pipelineCache, PointerBuffer pDataSize, java.nio.ByteBuffer pData)static intvkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.ByteBuffer pData, long stride, int flags)static intvkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, int[] pData, long stride, int flags)static intvkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.IntBuffer pData, long stride, int flags)static intvkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, long[] pData, long stride, int flags)static intvkGetQueryPoolResults(VkDevice device, long queryPool, int firstQuery, int queryCount, java.nio.LongBuffer pData, long stride, int flags)static voidvkGetRenderAreaGranularity(VkDevice device, long renderPass, VkExtent2D pGranularity)static intvkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange.Buffer pMemoryRanges)static intvkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)static intvkMapMemory(VkDevice device, long memory, long offset, long size, int flags, PointerBuffer ppData)static intvkMergePipelineCaches(VkDevice device, long dstCache, long[] pSrcCaches)static intvkMergePipelineCaches(VkDevice device, long dstCache, java.nio.LongBuffer pSrcCaches)static intvkQueueBindSparse(VkQueue queue, VkBindSparseInfo.Buffer pBindInfo, long fence)static intvkQueueBindSparse(VkQueue queue, VkBindSparseInfo pBindInfo, long fence)static intvkQueueSubmit(VkQueue queue, VkSubmitInfo.Buffer pSubmits, long fence)static intvkQueueSubmit(VkQueue queue, VkSubmitInfo pSubmit, long fence)static intvkQueueWaitIdle(VkQueue queue)static intvkResetCommandBuffer(VkCommandBuffer commandBuffer, int flags)static intvkResetCommandPool(VkDevice device, long commandPool, int flags)static intvkResetDescriptorPool(VkDevice device, long descriptorPool, int flags)static intvkResetEvent(VkDevice device, long event)static intvkResetFences(VkDevice device, long pFence)static intvkResetFences(VkDevice device, long[] pFences)static intvkResetFences(VkDevice device, java.nio.LongBuffer pFences)static intvkSetEvent(VkDevice device, long event)static voidvkUnmapMemory(VkDevice device, long memory)static voidvkUpdateDescriptorSets(VkDevice device, VkWriteDescriptorSet.Buffer pDescriptorWrites, VkCopyDescriptorSet.Buffer pDescriptorCopies)static intvkWaitForFences(VkDevice device, long[] pFences, int waitAll, long timeout)static intvkWaitForFences(VkDevice device, java.nio.LongBuffer pFences, int waitAll, long timeout)static intvkWaitForFences(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_HANDLEcan 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_HANDLEto 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 aVkPipelineCacheobject.- 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 aninitialLayoutor as theoldLayoutin 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_BITusage 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_BITusage 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 aVkFramebufferand/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_BITusage 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_BITorIMAGE_USAGE_INPUT_ATTACHMENT_BITusage 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_BITusage 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_BITusage 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 aninitialLayoutor as theoldLayoutin 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_PREINITIALIZEDis only useful withIMAGE_TILING_LINEARimages because there is not a standard layout defined forIMAGE_TILING_OPTIMALimages.- 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−1st. 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 + kvertices drawn.kis either 0, 1, or 2; ifkis not zero, the finalkvertices 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 + 1st vertex to the4i + 2nd vertex for eachi = 0,1,…,n − 1, where there are4n + kvertices.kis either 0, 1, 2, or 3; ifkis not zero, the finalkvertices are ignored. For line segmenti, the4ith and4i + 3rd vertices are considered adjacent to the4i + 1st and4i + 2nd 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 + 1st vertex to thei + 2nd vertex for eachi = 0,1,…,n − 1, where there aren + 3vertices. If there are fewer than four vertices, all vertices are ignored. For line segmenti, theith andi + 3rd vertex are considered adjacent to thei + 1st andi + 2nd 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
6ith,6i + 2nd, and6i + 4th vertices (in that order) determine a triangle for eachi = 0,1,…,n − 1, where there are6n + kvertices.kis either 0, 1, 2, 3, 4, or 5; ifkis non-zero, the finalkvertices are ignored. For trianglei, the6i + 1st,6i + 3rd, and6i + 5th vertices are considered adjacent to edges from the6ith to the6i + 2nd, from the6i + 2nd to the6i + 4th, and from the6i + 4th to the6ith 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,
ntriangles are drawn where there are2(n + 2) + kvertices.kis either 0 or 1; ifkis 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 ( iodd)2i+2 2i 2i+4 2i−2 2i+3 2i+6 middle ( ieven)2i 2i+2 2i+4 2i−2 2i+6 2i+3 last ( i = n − 1,iodd)2i+2 2i 2i+4 2i−2 2i+3 2i+5 last ( i = n − 1,ieven)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
patchControlPointsmember of theVkPipelineTessellationStateCreateInfostructure 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, thevith throughvi + v − 1st vertices (in that order) determine a patch for eachi = 0,1,…n − 1, where there arevn + kvertices.kis in the range[0,v − 1]; ifkis not zero, the finalkvertices 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 thepViewportsstate inVkPipelineViewportStateCreateInfowill be ignored and must be set dynamically withCmdSetViewportbefore any draw commands. The number of viewports used by a pipeline is still specified by theviewportCountmember ofVkPipelineViewportStateCreateInfo.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_SCISSOR
public static final int VK_DYNAMIC_STATE_SCISSOR
Indicates that thepScissorsstate inVkPipelineViewportStateCreateInfowill be ignored and must be set dynamically withCmdSetScissorbefore any draw commands. The number of scissor rectangles used by a pipeline is still specified by thescissorCountmember ofVkPipelineViewportStateCreateInfo.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_LINE_WIDTH
public static final int VK_DYNAMIC_STATE_LINE_WIDTH
Indicates that thelineWidthstate inVkPipelineRasterizationStateCreateInfowill be ignored and must be set dynamically withCmdSetLineWidthbefore 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,depthBiasClampanddepthBiasSlopeFactorstates inVkPipelineRasterizationStateCreateInfowill be ignored and must be set dynamically withCmdSetDepthBiasbefore any draws are performed withdepthBiasEnableinVkPipelineRasterizationStateCreateInfoset toTRUE.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_BLEND_CONSTANTS
public static final int VK_DYNAMIC_STATE_BLEND_CONSTANTS
Indicates that theblendConstantsstate inVkPipelineColorBlendStateCreateInfowill be ignored and must be set dynamically withCmdSetBlendConstantsbefore any draws are performed with a pipeline state withVkPipelineColorBlendAttachmentStatememberblendEnableset toTRUEand 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 theminDepthBoundsandmaxDepthBoundsstates ofVkPipelineDepthStencilStateCreateInfowill be ignored and must be set dynamically withCmdSetDepthBoundsbefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberdepthBoundsTestEnableset toTRUE.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
public static final int VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
Indicates that thecompareMaskstate inVkPipelineDepthStencilStateCreateInfofor both front and back will be ignored and must be set dynamically withCmdSetStencilCompareMaskbefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberstencilTestEnableset toTRUE.- See Also:
- Constant Field Values
-
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
public static final int VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
Indicates that thewriteMaskstate inVkPipelineDepthStencilStateCreateInfofor both front and back will be ignored and must be set dynamically withCmdSetStencilWriteMaskbefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberstencilTestEnableset 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 inVkPipelineDepthStencilStateCreateInfofor both front and back will be ignored and must be set dynamically withCmdSetStencilReferencebefore any draws are performed with a pipeline state withVkPipelineDepthStencilStateCreateInfomemberstencilTestEnableset 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
i0ori1,j0orj1,k0ork1, 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 = levelbasewhen λ ≤ 0.5d = nearest(λ)when λ > 0.5 && levelbase + λ ≤ q + 0.5d = qwhen λ > 0.5 && levelbase + λ > q + 0.5and:
nearest(λ) = ceil(levelbase + λ + 0.5) - 1,preferred nearest(λ) = floor(levelbase + λ + 0.5),alternative and where
qis thelevelCountfrom thesubresourceRangeof 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 levelsdhianddlo, where:dhi = qwhen levelbase + λ ≥ qdhi = floor(levelbase + λ)otherwise and:
dlo = qwhen levelbase + λ ≥ qdlo = dhi + 1otherwise δ = 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, andCmdExecuteCommandsis the only valid command on the command buffer untilCmdNextSubpassorCmdEndRenderPass.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
public static final int VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VkImageViewcan be sampled from.- See Also:
- Constant Field Values
-
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
public static final int VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VkImageViewcan 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
VkImageViewcan 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 aVkBufferViewthat can be bound to aDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERdescriptor.- 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 aVkBufferViewthat can be bound to aDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERdescriptor.- 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_BUFFERwith 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
VkImageViewcan 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
VkImageViewcan 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
VkImageViewcan 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_BITis also set,VkImageViewcan be used with a sampler that has either ofmagFilterorminFilterset toFILTER_LINEAR, ormipmapModeset toSAMPLER_MIPMAP_MODE_LINEAR. IfFORMAT_FEATURE_BLIT_SRC_BITis also set,VkImagecan be used as thesrcImagetoCmdBlitImagewith afilterofFILTER_LINEAR. This bit must only be exposed for formats that also support theFORMAT_FEATURE_SAMPLED_IMAGE_BITorFORMAT_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 aVkImageViewsuitable for occupying aVkDescriptorSetslot either of typeDESCRIPTOR_TYPE_SAMPLED_IMAGEorDESCRIPTOR_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 aVkImageViewsuitable for occupying aVkDescriptorSetslot 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 aVkImageViewsuitable 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 aVkImageViewsuitable 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_BITmust 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 aVkImageViewsuitable for occupyingVkDescriptorSetslot 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_BITflag.- 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_BITflag.- 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 aVkImageViewwith 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 aVkImageViewof typeIMAGE_VIEW_TYPE_CUBEorIMAGE_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_BITset.- 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 usingMapMemoryso 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 commandsFlushMappedMemoryRangesandInvalidateMappedMemoryRangesare 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_BITandMEMORY_PROPERTY_HOST_VISIBLE_BITset. 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 instructionsOpEndPrimitiveorOpEndStreamPrimitivehas 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_BITflag.- 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_BITflag.- 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 aVkBufferViewsuitable for occupying aVkDescriptorSetslot 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 aVkBufferViewsuitable for occupying aVkDescriptorSetslot 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 aVkDescriptorBufferInfosuitable for occupying aVkDescriptorSetslot either of typeDESCRIPTOR_TYPE_UNIFORM_BUFFERorDESCRIPTOR_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 aVkDescriptorBufferInfosuitable for occupying aVkDescriptorSetslot either of typeDESCRIPTOR_TYPE_STORAGE_BUFFERorDESCRIPTOR_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 thebufferparameter 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 thepBuffersarray 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 thebufferparameter 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 theRvalue 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 theGvalue 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 theBvalue 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 theAvalue 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, andResetDescriptorPoolare allowed. Otherwise, descriptor sets allocated from the pool must not be individually freed back to the pool, i.e. onlyAllocateDescriptorSetsandResetDescriptorPoolare 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_BITbit 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_BITif 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_BITbit, 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 insrcAccessMaskperformed by pipeline stages insrcStageMaskmust 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 indstAccessMaskfrom pipeline stages indstStageMaskwill observe the side effects of commands that executed before the barrier. When included indstAccessMaskall writes using access types insrcAccessMaskperformed by pipeline stages insrcStageMaskmust 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 callingBeginCommandBufferon an executable command buffer. If this flag is not set, thenResetCommandBufferandBeginCommandBuffer(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_BITandSTENCIL_FACE_BACK_BITand 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
VkInstanceobject. Creating aVkInstanceobject initializes the Vulkan library and allows the application to pass information about itself to the implementation.vkCreateInstancecreates 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 atvkCreateInstancetime.Valid Usage
pCreateInfomust be a pointer to a validVkInstanceCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pInstancemust be a pointer to aVkInstancehandle
- Parameters:
pCreateInfo- points to an instance ofVkInstanceCreateInfocontrolling creation of the instancepAllocator- controls host memory allocationpInstance- a pointer to aVkInstancehandle 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
instanceis notNULL,instancemust be a validVkInstancehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - All child objects created using
instancemust have been destroyed prior to destroyinginstance - If
VkAllocationCallbackswere provided wheninstancewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided wheninstancewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
instancemust 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
pPhysicalDevicesisNULL, then the number of physical devices available is returned inpPhysicalDeviceCount. Otherwise,pPhysicalDeviceCountmust point to a variable set by the user to the number of elements in thepPhysicalDevicesarray, and on return the variable is overwritten with the number of structures actually written topPhysicalDevices. IfpPhysicalDeviceCountis less than the number of physical devices available, at mostpPhysicalDeviceCountstructures will be written. IfpPhysicalDeviceCountis smaller than the number of physical devices available,INCOMPLETEwill 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
instancemust be a validVkInstancehandlepPhysicalDeviceCountmust be a pointer to auint32_tvalue- If the value referenced by
pPhysicalDeviceCountis not 0, andpPhysicalDevicesis notNULL,pPhysicalDevicesmust be a pointer to an array ofpPhysicalDeviceCountVkPhysicalDevicehandles
- Parameters:
instance- a handle to a Vulkan instance previously created withCreateInstancepPhysicalDeviceCount- a pointer to an integer related to the number of physical devices available or queriedpPhysicalDevices- eitherNULLor a pointer to an array ofVkPhysicalDevicehandles
-
vkGetPhysicalDeviceFeatures
public static void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures pFeatures)
Reports capabilities of a physical device.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandlepFeaturesmust be a pointer to aVkPhysicalDeviceFeaturesstructure
- Parameters:
physicalDevice- the handle to the physical device whose properties will be queriedpFeatures- points to an instance of theVkPhysicalDevicePropertiesstructure, 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
physicalDevicemust be a validVkPhysicalDevicehandleformatmust be a validVkFormatvaluepFormatPropertiesmust be a pointer to aVkFormatPropertiesstructure
- Parameters:
physicalDevice- the physical device from which to query the format propertiesformat- the format whose properties are queriedpFormatProperties- a pointer to aVkFormatPropertiesstructure 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, andflagsparameters correspond to parameters that would be consumed byCreateImage.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandleformatmust be a validVkFormatvaluetypemust be a validVkImageTypevaluetilingmust be a validVkImageTilingvalueusagemust be a valid combination ofVkImageUsageFlagBitsvaluesusagemust not be 0flagsmust be a valid combination ofVkImageCreateFlagBitsvaluespImageFormatPropertiesmust be a pointer to aVkImageFormatPropertiesstructure
- Parameters:
physicalDevice- the physical device from which to query the image capabilitiesformat- the image format, corresponding toVkImageCreateInfo.formattype- the image type, corresponding toVkImageCreateInfo.imageType. One of:IMAGE_TYPE_1DIMAGE_TYPE_2DIMAGE_TYPE_3Dtiling- the image tiling, corresponding toVkImageCreateInfo.tiling. One of:IMAGE_TILING_OPTIMALIMAGE_TILING_LINEARusage- 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_BITIMAGE_CREATE_SPARSE_RESIDENCY_BITIMAGE_CREATE_SPARSE_ALIASED_BITIMAGE_CREATE_MUTABLE_FORMAT_BITIMAGE_CREATE_CUBE_COMPATIBLE_BITpImageFormatProperties- points to an instance of theVkImageFormatPropertiesstructure in which capabilities are returned
-
vkGetPhysicalDeviceProperties
public static void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties pProperties)
Returns properties of a physical device.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandlepPropertiesmust be a pointer to aVkPhysicalDevicePropertiesstructure
- Parameters:
physicalDevice- the handle to the physical device whose properties will be queriedpProperties- points to an instance of theVkPhysicalDevicePropertiesstructure, 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
pQueueFamilyPropertiesisNULL, then the number of queue families available is returned inpQueueFamilyPropertyCount. Otherwise,pQueueFamilyPropertyCountmust point to a variable set by the user to the number of elements in thepQueueFamilyPropertiesarray, and on return the variable is overwritten with the number of structures actually written topQueueFamilyProperties. If the value ofpQueueFamilyPropertyCountis less than the number of queue families available, at mostpQueueFamilyPropertyCountstructures will be written.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandlepQueueFamilyPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pQueueFamilyPropertyCountis not 0, andpQueueFamilyPropertiesis notNULL,pQueueFamilyPropertiesmust be a pointer to an array ofpQueueFamilyPropertyCountVkQueueFamilyPropertiesstructures
- 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- eitherNULLor a pointer to an array ofVkQueueFamilyPropertiesstructures
-
vkGetPhysicalDeviceMemoryProperties
public static void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties pMemoryProperties)
Reports memory information for the specified physical device.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandlepMemoryPropertiesmust be a pointer to aVkPhysicalDeviceMemoryPropertiesstructure
- Parameters:
physicalDevice- the handle to the device to querypMemoryProperties- points to an instance ofVkPhysicalDeviceMemoryPropertiesstructure 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
instanceis notNULL,instancemust be a validVkInstancehandle pNamemust be a null-terminated string- If
instanceisNULL,pNamemust be one of:EnumerateInstanceExtensionProperties,EnumerateInstanceLayerPropertiesorCreateInstance - If
instanceis notNULL,pNamemust be the name of a core command or a command from an enabled extension, other than:EnumerateInstanceExtensionProperties,EnumerateInstanceLayerPropertiesorCreateInstance
LWJGL Note
LWJGL requires a non-
NULLinstanceargument when calling this method. IfNULLmust 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
instanceis notNULL,instancemust be a validVkInstancehandle pNamemust be a null-terminated string- If
instanceisNULL,pNamemust be one of:EnumerateInstanceExtensionProperties,EnumerateInstanceLayerPropertiesorCreateInstance - If
instanceis notNULL,pNamemust be the name of a core command or a command from an enabled extension, other than:EnumerateInstanceExtensionProperties,EnumerateInstanceLayerPropertiesorCreateInstance
LWJGL Note
LWJGL requires a non-
NULLinstanceargument when calling this method. IfNULLmust 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
GetInstanceProcAddrmay point to dispatch code, which calls a different real implementation for differentVkDeviceobjects (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
devicemust be a validVkDevicehandlepNamemust be a null-terminated stringpNamemust be the name of a supported command that has a first parameter of typeVkDevice,VkQueueorVkCommandBuffer, 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,VkQueueorVkCommandBuffer, 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
pNameis 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, thenvkGetDeviceProcAddrwill 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
GetInstanceProcAddrmay point to dispatch code, which calls a different real implementation for differentVkDeviceobjects (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
devicemust be a validVkDevicehandlepNamemust be a null-terminated stringpNamemust be the name of a supported command that has a first parameter of typeVkDevice,VkQueueorVkCommandBuffer, 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,VkQueueorVkCommandBuffer, 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
pNameis 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, thenvkGetDeviceProcAddrwill returnNULL.
-
vkCreateDevice
public static int vkCreateDevice(VkPhysicalDevice physicalDevice, VkDeviceCreateInfo pCreateInfo, VkAllocationCallbacks pAllocator, PointerBuffer pDevice)
Creates a new logical device instance.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandlepCreateInfomust be a pointer to a validVkDeviceCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pDevicemust be a pointer to aVkDevicehandle
- Parameters:
physicalDevice- must be one of the device handles returned from a call toEnumeratePhysicalDevicespCreateInfo- a pointer to aVkDeviceCreateInfostructure containing information about how to create the devicepAllocator- controls host memory allocationpDevice- points to a handle in which the createdVkDeviceis returned
-
vkDestroyDevice
public static void vkDestroyDevice(VkDevice device, VkAllocationCallbacks pAllocator)
Destroys a logical device.To ensure that no work is active on the device,
DeviceWaitIdlecan 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
VkDeviceobject. Therefore, to avoid resource leaks, it is critical that an application explicitly free all of these resources prior to callingvkDestroyDevice.Valid Usage
- If
deviceis notNULL,devicemust be a validVkDevicehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - All child objects created on
devicemust have been destroyed prior to destroyingdevice - If
VkAllocationCallbackswere provided whendevicewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whendevicewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
devicemust 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
pPropertiesisNULL, then the number of extensions properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. If the value ofpPropertyCountis less than the number of extension properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of extensions available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available properties were returned.Valid Usage
- If
pLayerNameis notNULL,pLayerNamemust be a null-terminated string pPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkExtensionPropertiesstructures - If
pLayerNameis notNULL, it must be the name of a layer returned byEnumerateInstanceLayerProperties
When
pLayerNameparameter isNULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerNameis 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
ppEnabledExtensionNamesmember ofVkInstanceCreateInfowhen creating aVkInstance.- Parameters:
pLayerName- eitherNULLor 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- eitherNULLor a pointer to an array ofVkExtensionPropertiesstructures
- 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
pPropertiesisNULL, then the number of extensions properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. If the value ofpPropertyCountis less than the number of extension properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of extensions available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available properties were returned.Valid Usage
- If
pLayerNameis notNULL,pLayerNamemust be a null-terminated string pPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkExtensionPropertiesstructures - If
pLayerNameis notNULL, it must be the name of a layer returned byEnumerateInstanceLayerProperties
When
pLayerNameparameter isNULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerNameis 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
ppEnabledExtensionNamesmember ofVkInstanceCreateInfowhen creating aVkInstance.- Parameters:
pLayerName- eitherNULLor 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- eitherNULLor a pointer to an array ofVkExtensionPropertiesstructures
- 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
pPropertiesisNULL, then the number of extensions properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. IfpPropertyCountis less than the number of extension properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of extensions available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available properties were returned.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandle- If
pLayerNameis notNULL,pLayerNamemust be a null-terminated string pPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkExtensionPropertiesstructures - If
pLayerNameis notNULL, it must be the name of a layer returned byEnumerateDeviceLayerProperties
When
pLayerNameparameter isNULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerNameis 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
ppEnabledExtensionNamesmember ofVkDeviceCreateInfowhen creating aVkDevice.- Parameters:
physicalDevice- the physical device that will be queriedpLayerName- eitherNULLor 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- eitherNULLor a pointer to an array ofVkExtensionPropertiesstructures
-
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
pPropertiesisNULL, then the number of extensions properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. IfpPropertyCountis less than the number of extension properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of extensions available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available properties were returned.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandle- If
pLayerNameis notNULL,pLayerNamemust be a null-terminated string pPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkExtensionPropertiesstructures - If
pLayerNameis notNULL, it must be the name of a layer returned byEnumerateDeviceLayerProperties
When
pLayerNameparameter isNULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. WhenpLayerNameis 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
ppEnabledExtensionNamesmember ofVkDeviceCreateInfowhen creating aVkDevice.- Parameters:
physicalDevice- the physical device that will be queriedpLayerName- eitherNULLor 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- eitherNULLor a pointer to an array ofVkExtensionPropertiesstructures
-
vkEnumerateInstanceLayerProperties
public static int vkEnumerateInstanceLayerProperties(java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)Queries the available instance layers.If
pPropertiesisNULL, then the number of layer properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. IfpPropertyCountis less than the number of layer properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of layers available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available layer properties were returned.Valid Usage
pPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkLayerPropertiesstructures
To enable an instance layer, the name of the layer should be added to the
ppEnabledLayerNamesmember ofVkInstanceCreateInfowhen 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- eitherNULLor a pointer to an array ofVkLayerPropertiesstructures
-
vkEnumerateDeviceLayerProperties
public static int vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pPropertyCount, VkLayerProperties.Buffer pProperties)
Queries the available device layers.If
pPropertiesisNULL, then the number of layer properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. If the value ofpPropertyCountis less than the number of layer properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of layers available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available layer properties were returned.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandlepPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkLayerPropertiesstructures
To enable a device layer, the name of the layer should be added to the
ppEnabledLayerNamesmember ofVkDeviceCreateInfowhen 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
ppEnabledLayerNamesmember ofVkDeviceCreateInfoare 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- eitherNULLor 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 aVkQueueobject.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 theVkQueuehandle from.When creating a
VkCommandPoolobject (see Command Pools), a queue family index is specified in theVkCommandPoolCreateInfostructure. Command buffers from this pool can only be submitted on queues corresponding to this queue family.When creating
VkImageandVkBufferresources, a set of queue families is included in theVkImageCreateInfoandVkBufferCreateInfostructures to specify the queue families that can access the resource.When inserting a
VkBufferMemoryBarrierorVkImageMemoryBarriera 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
VkDeviceQueueCreateInfostructures 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
VkDeviceuntil the higher-priority queue has no further commands to execute. The relationship of queue priorities must not cause queues on oneVkDeviceto 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
devicemust be a validVkDevicehandlepQueuemust be a pointer to aVkQueuehandlequeueFamilyIndexmust be one of the queue family indices specified whendevicewas created, via theVkDeviceQueueCreateInfostructurequeueIndexmust be less than the number of queues created for the specified queue family index whendevicewas created, via thequeueCountmember of theVkDeviceQueueCreateInfostructure
- 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 aVkQueueobject 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
vkQueueSubmitsubmits zero or more batches of work to the queue for execution.submitCountis 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 theVkSubmitInfostructure 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
vkQueueSubmitas possible.Valid Usage
queuemust be a validVkQueuehandle- If
submitCountis not 0,pSubmitsmust be a pointer to an array ofsubmitCountvalidVkSubmitInfostructures - If
fenceis notNULL_HANDLE,fencemust be a validVkFencehandle - Each of
queueandfencethat are valid handles must have been created, allocated or retrieved from the sameVkDevice - If
fenceis notNULL_HANDLE,fencemust be unsignaled - If
fenceis notNULL_HANDLE,fencemust not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queuemust be externally synchronized - Host access to
pSubmits[].pWaitSemaphores[] must be externally synchronized - Host access to
pSubmits[].pSignalSemaphores[] must be externally synchronized - Host access to
fencemust be externally synchronized
- Parameters:
queue- the handle of the queue that the command buffers will be submitted topSubmits- a pointer to an array ofVkSubmitInfostructures which describe the work to submit. All work described bypSubmitsmust be submitted to the queue before the command returns.fence- an optional handle to a fence. Iffenceis notNULL_HANDLE, the fence is signaled when execution of all command buffers specified in theVkSubmitInfo::pCommandBuffersmembers ofpSubmitsis complete, providing certain implicit ordering guarantees. IfsubmitCountis zero butfenceis 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
vkQueueSubmitsubmits zero or more batches of work to the queue for execution.submitCountis 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 theVkSubmitInfostructure 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
vkQueueSubmitas possible.Valid Usage
queuemust be a validVkQueuehandle- If
submitCountis not 0,pSubmitsmust be a pointer to an array ofsubmitCountvalidVkSubmitInfostructures - If
fenceis notNULL_HANDLE,fencemust be a validVkFencehandle - Each of
queueandfencethat are valid handles must have been created, allocated or retrieved from the sameVkDevice - If
fenceis notNULL_HANDLE,fencemust be unsignaled - If
fenceis notNULL_HANDLE,fencemust not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queuemust be externally synchronized - Host access to
pSubmits[].pWaitSemaphores[] must be externally synchronized - Host access to
pSubmits[].pSignalSemaphores[] must be externally synchronized - Host access to
fencemust be externally synchronized
- Parameters:
queue- the handle of the queue that the command buffers will be submitted tofence- an optional handle to a fence. Iffenceis notNULL_HANDLE, the fence is signaled when execution of all command buffers specified in theVkSubmitInfo::pCommandBuffersmembers ofpSubmitsis complete, providing certain implicit ordering guarantees. IfsubmitCountis zero butfenceis 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.vkQueueWaitIdlewill block until all command buffers and sparse binding operations in the queue have completed.Valid Usage
queuemust be a validVkQueuehandle
- 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
devicemust be a validVkDevicehandle
Host Synchronization
- Host access to all
VkQueueobjects created fromdevicemust 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
vkAllocateMemoryare 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
maxMemoryAllocationCountmember of theVkPhysicalDeviceLimitsstructure. IfmaxMemoryAllocationCountis exceeded,vkAllocateMemorywill 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_MEMORYshould be returned.Valid Usage
devicemust be a validVkDevicehandlepAllocateInfomust be a pointer to a validVkMemoryAllocateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pMemorymust be a pointer to aVkDeviceMemoryhandle- 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 theVkMemoryAllocateInfostructure 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 aVkDeviceMemoryhandle 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
devicemust be a validVkDevicehandle- If
memoryis notNULL_HANDLE,memorymust be a validVkDeviceMemoryhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
memoryis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandmemorythat 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
memorymust be externally synchronized
- Parameters:
device- the logical device that owns the memorymemory- theVkDeviceMemoryobject 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
AllocateMemoryare not directly host accessible. Memory objects created with the memory propertyMEMORY_PROPERTY_HOST_VISIBLE_BITare considered mappable. Memory objects must be mappable in order to be successfully mapped on the host.It is an application error to call
vkMapMemoryon a memory object that is already mapped.vkMapMemorydoes 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_BITset, 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_BITproperty still require memory barriers between host and device in order to be coherent, but do not require additional cache management operations (FlushMappedMemoryRangesorInvalidateMappedMemoryRanges) to achieve coherency. For host writes to be seen by subsequent command buffer operations, a pipeline barrier from a source ofACCESS_HOST_WRITE_BITandPIPELINE_STAGE_HOST_BITto 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
devicemust be a validVkDevicehandlememorymust be a validVkDeviceMemoryhandleflagsmust be 0ppDatamust be a pointer to a pointermemorymust have been created, allocated or retrieved fromdevice- Each of
deviceandmemorymust have been created, allocated or retrieved from the sameVkPhysicalDevice memorymust not currently be mappedoffsetmust be less than the size ofmemory- If
sizeis not equal toWHOLE_SIZE,sizemust be greater than 0 - If
sizeis not equal toWHOLE_SIZE,sizemust be less than or equal to the size of thememoryminusoffset memorymust have been created with a memory type that reportsMEMORY_PROPERTY_HOST_VISIBLE_BIT
Host Synchronization
- Host access to
memorymust be externally synchronized
- Parameters:
device- the logical device that owns the memorymemory- theVkDeviceMemoryobject to be mappedoffset- a zero-based byte offset from the beginning of the memory objectsize- he size of the memory range to map, orWHOLE_SIZEto 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
devicemust be a validVkDevicehandlememorymust be a validVkDeviceMemoryhandlememorymust have been created, allocated or retrieved fromdevice- Each of
deviceandmemorymust have been created, allocated or retrieved from the sameVkPhysicalDevice memorymust currently be mapped
Host Synchronization
- Host access to
memorymust 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
devicemust be a validVkDevicehandlepMemoryRangesmust be a pointer to an array ofmemoryRangeCountvalidVkMappedMemoryRangestructuresmemoryRangeCountmust be greater than 0
vkFlushMappedMemoryRangesmust 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 ofVkMappedMemoryRangestructures 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
devicemust be a validVkDevicehandlepMemoryRangesmust be a pointer to an array ofmemoryRangeCountvalidVkMappedMemoryRangestructuresmemoryRangeCountmust be greater than 0
vkFlushMappedMemoryRangesmust 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
devicemust be a validVkDevicehandlepMemoryRangesmust be a pointer to an array ofmemoryRangeCountvalidVkMappedMemoryRangestructuresmemoryRangeCountmust be greater than 0
vkInvalidateMappedMemoryRangesmust 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 ofVkMappedMemoryRangestructures describing the memory ranges to invalidate
-
vkInvalidateMappedMemoryRanges
public static int vkInvalidateMappedMemoryRanges(VkDevice device, VkMappedMemoryRange pMemoryRange)
Invalidates ranges of mapped memory objects.Valid Usage
devicemust be a validVkDevicehandlepMemoryRangesmust be a pointer to an array ofmemoryRangeCountvalidVkMappedMemoryRangestructuresmemoryRangeCountmust be greater than 0
vkInvalidateMappedMemoryRangesmust 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_BITbit 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
VkImagewhose 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
devicemust be a validVkDevicehandlememorymust be a validVkDeviceMemoryhandlepCommittedMemoryInBytesmust be a pointer to aVkDeviceSizevaluememorymust have been created, allocated or retrieved fromdevice- Each of
deviceandmemorymust have been created, allocated or retrieved from the sameVkPhysicalDevice memorymust 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
heapIndexindicated 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 aVkDeviceSizevalue 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
devicemust be a validVkDevicehandlebuffermust be a validVkBufferhandlememorymust be a validVkDeviceMemoryhandlebuffermust have been created, allocated or retrieved fromdevicememorymust have been created, allocated or retrieved fromdevice- Each of
device,bufferandmemorymust have been created, allocated or retrieved from the sameVkPhysicalDevice buffermust not already be backed by a memory objectbuffermust not have been created with any sparse memory binding flagsmemoryOffsetmust be less than the size ofmemory- If
bufferwas created with theBUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BITorBUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,memoryOffsetmust be a multiple ofVkPhysicalDeviceLimits::minTexelBufferOffsetAlignment - If
bufferwas created with theBUFFER_USAGE_UNIFORM_BUFFER_BIT,memoryOffsetmust be a multiple ofVkPhysicalDeviceLimits::minUniformBufferOffsetAlignment - If
bufferwas created with theBUFFER_USAGE_STORAGE_BUFFER_BIT,memoryOffsetmust be a multiple ofVkPhysicalDeviceLimits::minStorageBufferOffsetAlignment memorymust have been allocated using one of the memory types allowed in thememoryTypeBitsmember of theVkMemoryRequirementsstructure returned from a call toGetBufferMemoryRequirementswithbuffer- The size of
buffermust be less than or equal to the size ofmemoryminusmemoryOffset memoryOffsetmust be an integer multiple of thealignmentmember of theVkMemoryRequirementsstructure returned from a call toGetBufferMemoryRequirementswithbuffer
Host Synchronization
- Host access to
buffermust be externally synchronized
- Parameters:
device- the logical device that owns the buffer and memorybuffer- the buffermemory- aVkDeviceMemoryobject describing the device memory to attachmemoryOffset- the start offset of the region ofmemorywhich is to be bound to the buffer. The number of bytes returned in theVkMemoryRequirements::sizemember inmemory, starting frommemoryOffsetbytes, 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
devicemust be a validVkDevicehandleimagemust be a validVkImagehandlememorymust be a validVkDeviceMemoryhandleimagemust have been created, allocated or retrieved fromdevicememorymust have been created, allocated or retrieved fromdevice- Each of
device,imageandmemorymust have been created, allocated or retrieved from the sameVkPhysicalDevice imagemust not already be backed by a memory objectimagemust not have been created with any sparse memory binding flagsmemoryOffsetmust be less than the size ofmemorymemorymust have been allocated using one of the memory types allowed in thememoryTypeBitsmember of theVkMemoryRequirementsstructure returned from a call toGetImageMemoryRequirementswithimagememoryOffsetmust be an integer multiple of thealignmentmember of theVkMemoryRequirementsstructure returned from a call toGetImageMemoryRequirementswithimage- The
sizemember of theVkMemoryRequirementsstructure returned from a call toGetImageMemoryRequirementswithimagemust be less than or equal to the size ofmemoryminusmemoryOffset
Host Synchronization
- Host access to
imagemust be externally synchronized
- Parameters:
device- the logical device that owns the image and memoryimage- the imagememory- aVkDeviceMemoryobject describing the device memory to attachmemoryOffset- the start offset of the region ofmemorywhich is to be bound to the image. The number of bytes returned in theVkMemoryRequirements::sizemember inmemory, starting frommemoryOffsetbytes, 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
devicemust be a validVkDevicehandlebuffermust be a validVkBufferhandlepMemoryRequirementsmust be a pointer to aVkMemoryRequirementsstructurebuffermust have been created, allocated or retrieved fromdevice- Each of
deviceandbuffermust 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 theVkMemoryRequirementsstructure 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
devicemust be a validVkDevicehandleimagemust be a validVkImagehandlepMemoryRequirementsmust be a pointer to aVkMemoryRequirementsstructureimagemust have been created, allocated or retrieved fromdevice- Each of
deviceandimagemust 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 theVkMemoryRequirementsstructure 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
pSparseMemoryRequirementsisNULL, then the number of sparse memory requirements available is returned inpSparseMemoryRequirementCount. Otherwise,pSparseMemoryRequirementCountmust point to a variable set by the user to the number of elements in thepSparseMemoryRequirementsarray, and on return the variable is overwritten with the number of structures actually written topSparseMemoryRequirements. If the value ofpSparseMemoryRequirementCountis less than the number of sparse memory requirements available, at mostpSparseMemoryRequirementCountstructures will be written.If the image was not created with
IMAGE_CREATE_SPARSE_RESIDENCY_BITthenpSparseMemoryRequirementCountwill be set to zero andpSparseMemoryRequirementswill not be written to.Note
It is legal for an implementation to report a larger value in
VkMemoryRequirements::sizethan would be obtained by adding together memory sizes for allVkSparseImageMemoryRequirementsreturned byvkGetImageSparseMemoryRequirements. This may occur when the hardware requires unused padding in the address range describing the resource.Valid Usage
devicemust be a validVkDevicehandleimagemust be a validVkImagehandlepSparseMemoryRequirementCountmust be a pointer to auint32_tvalue- If the value referenced by
pSparseMemoryRequirementCountis not 0, andpSparseMemoryRequirementsis notNULL,pSparseMemoryRequirementsmust be a pointer to an array ofpSparseMemoryRequirementCountVkSparseImageMemoryRequirementsstructures imagemust have been created, allocated or retrieved fromdevice- Each of
deviceandimagemust have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device- the logical device that owns the imageimage- theVkImageobject to get the memory requirements forpSparseMemoryRequirementCount- a pointer to an integer related to the number of sparse memory requirements available or queriedpSparseMemoryRequirements- eitherNULLor a pointer to an array ofVkSparseImageMemoryRequirementsstructures
-
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,
vkGetPhysicalDeviceSparseImageFormatPropertiescan 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.vkGetPhysicalDeviceSparseImageFormatPropertiesreturns 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
pPropertiesisNULL, then the number of sparse format properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. IfpPropertyCountis less than the number of sparse format properties available, at mostpPropertyCountstructures will be written.Valid Usage
physicalDevicemust be a validVkPhysicalDevicehandleformatmust be a validVkFormatvaluetypemust be a validVkImageTypevaluesamplesmust be a validVkSampleCountFlagBitsvalueusagemust be a valid combination ofVkImageUsageFlagBitsvaluesusagemust not be 0tilingmust be a validVkImageTilingvaluepPropertyCountmust be a pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a pointer to an array ofpPropertyCountVkSparseImageFormatPropertiesstructures - If
formatis an integer format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits::sampledImageIntegerSampleCounts - If
formatis a non-integer color format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits::sampledImageColorSampleCounts - If
formatis a depth format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits::sampledImageDepthSampleCounts - If
formatis a stencil format, samples must be one of the bit flags specified inVkPhysicalDeviceLimits::sampledImageStencilSampleCounts - If
usageincludesIMAGE_USAGE_STORAGE_BIT, samples must be one of the bit flags specified inVkPhysicalDeviceLimits::storageImageSampleCounts
If
IMAGE_CREATE_SPARSE_RESIDENCY_BITis not supported for the given arguments,pPropertyCountwill 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
VkSparseImageFormatPropertiesdata.Depth/stencil images with depth and stencil data interleaved into a single plane will return a single
VkSparseImageFormatPropertiesstructure with theaspectMaskset 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_1DIMAGE_TYPE_2DIMAGE_TYPE_3Dsamples- the number of samples per pixel as defined inVkSampleCountFlagBits. One of:SAMPLE_COUNT_1_BITSAMPLE_COUNT_2_BITSAMPLE_COUNT_4_BITSAMPLE_COUNT_8_BITSAMPLE_COUNT_16_BITSAMPLE_COUNT_32_BITSAMPLE_COUNT_64_BITusage- 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_OPTIMALIMAGE_TILING_LINEARpPropertyCount- a pointer to an integer related to the number of sparse format properties available or queriedpProperties- eitherNULLor a pointer to an array ofVkSparseImageFormatPropertiesstructures
-
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, andVkSparseImageMemoryBindInfostructures (encapsulated in aVkBindSparseInfostructure), 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
pBindInfohave 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
queuemust be a validVkQueuehandle- If
bindInfoCountis not 0,pBindInfomust be a pointer to an array ofbindInfoCountvalidVkBindSparseInfostructures - If
fenceis notNULL_HANDLE,fencemust be a validVkFencehandle - The
queuemust support sparse binding operations - Each of
queueandfencethat are valid handles must have been created, allocated or retrieved from the sameVkDevice fencemust be unsignaledfencemust not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queuemust 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
fencemust be externally synchronized
- Parameters:
queue- the queue to submit the sparse binding operation topBindInfo- an array ofVkBindSparseInfostructures 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, andVkSparseImageMemoryBindInfostructures (encapsulated in aVkBindSparseInfostructure), 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
pBindInfohave 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
queuemust be a validVkQueuehandle- If
bindInfoCountis not 0,pBindInfomust be a pointer to an array ofbindInfoCountvalidVkBindSparseInfostructures - If
fenceis notNULL_HANDLE,fencemust be a validVkFencehandle - The
queuemust support sparse binding operations - Each of
queueandfencethat are valid handles must have been created, allocated or retrieved from the sameVkDevice fencemust be unsignaledfencemust not be associated with any other queue command that has not yet completed execution on that queue
Host Synchronization
- Host access to
queuemust 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
fencemust be externally synchronized
- Parameters:
queue- the queue to submit the sparse binding operation topBindInfo- an array ofVkBindSparseInfostructures 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
QueueSubmitandQueueBindSparse.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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkFenceCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pFencemust be a pointer to aVkFencehandle
- Parameters:
device- the logical device that creates the fencepCreateInfo- points to aVkFenceCreateInfostructure 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
devicemust be a validVkDevicehandle- If
fenceis notNULL_HANDLE,fencemust be a validVkFencehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
fenceis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandfencethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice fencemust not be associated with any queue command that has not yet completed execution on that queue- If
VkAllocationCallbackswere provided whenfencewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenfencewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
fencemust 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
devicemust be a validVkDevicehandlepFencesmust be a pointer to an array offenceCountvalidVkFencehandlesfenceCountmust be greater than 0- Each element of
pFencesmust have been created, allocated or retrieved fromdevice - Each of
deviceand the elements ofpFencesmust have been created, allocated or retrieved from the sameVkPhysicalDevice - Any given element of
pFencesmust 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
pFencesmust be externally synchronized
- Parameters:
device- the logical device that owns the fencespFences- a pointer to an array offenceCountfence 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
devicemust be a validVkDevicehandlepFencesmust be a pointer to an array offenceCountvalidVkFencehandlesfenceCountmust be greater than 0- Each element of
pFencesmust have been created, allocated or retrieved fromdevice - Each of
deviceand the elements ofpFencesmust have been created, allocated or retrieved from the sameVkPhysicalDevice - Any given element of
pFencesmust 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
pFencesmust 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,
vkGetFenceStatusreturns the status of the fence, which is one of:Valid Usage
devicemust be a validVkDevicehandlefencemust be a validVkFencehandlefencemust have been created, allocated or retrieved fromdevice- Each of
deviceandfencemust 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
vkWaitForFencesis called, thenvkWaitForFencesreturns immediately. If the condition is not satisfied at the timevkWaitForFencesis called, thenvkWaitForFenceswill block and wait up to timeout nanoseconds for the condition to become satisfied.If
timeoutis zero, thenvkWaitForFencesdoes not wait, but simply returns the current state of the fences.TIMEOUTwill be returned in this case if the condition is not satisfied, even though no actual wait was performed.If the specified
timeoutperiod expires before the condition is satisfied,vkWaitForFencesreturnsTIMEOUT. If the condition is satisfied before timeout nanoseconds has expired,vkWaitForFencesreturnsSUCCESS.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
dstAccessMaskhaving theACCESS_HOST_READ_BITbit set, withdstStageMaskhaving thePIPELINE_STAGE_HOST_BITbit set, and with the appropriatesrcStageMaskandsrcAccessMaskmembers set to guarantee completion of the writes. If the memory was allocated without theMEMORY_PROPERTY_HOST_COHERENT_BITset, thenInvalidateMappedMemoryRangesmust be called after the fence is signaled in order to ensure the writes are visible to the host.Valid Usage
devicemust be a validVkDevicehandlepFencesmust be a pointer to an array offenceCountvalidVkFencehandlesfenceCountmust be greater than 0- Each element of
pFencesmust have been created, allocated or retrieved fromdevice - Each of
deviceand the elements ofpFencesmust have been created, allocated or retrieved from the sameVkPhysicalDevice
- Parameters:
device- the logical device that owns the fencespFences- a pointer to an array offenceCountfence handleswaitAll- the condition that must be satisfied to successfully unblock the wait. IfwaitAllisTRUE, then the condition is that all fences inpFencesare signaled. Otherwise, the condition is that at least one fence inpFencesis signaled.timeout- the timeout period in units of nanoseconds.timeoutis 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
vkWaitForFencesis called, thenvkWaitForFencesreturns immediately. If the condition is not satisfied at the timevkWaitForFencesis called, thenvkWaitForFenceswill block and wait up to timeout nanoseconds for the condition to become satisfied.If
timeoutis zero, thenvkWaitForFencesdoes not wait, but simply returns the current state of the fences.TIMEOUTwill be returned in this case if the condition is not satisfied, even though no actual wait was performed.If the specified
timeoutperiod expires before the condition is satisfied,vkWaitForFencesreturnsTIMEOUT. If the condition is satisfied before timeout nanoseconds has expired,vkWaitForFencesreturnsSUCCESS.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
dstAccessMaskhaving theACCESS_HOST_READ_BITbit set, withdstStageMaskhaving thePIPELINE_STAGE_HOST_BITbit set, and with the appropriatesrcStageMaskandsrcAccessMaskmembers set to guarantee completion of the writes. If the memory was allocated without theMEMORY_PROPERTY_HOST_COHERENT_BITset, thenInvalidateMappedMemoryRangesmust be called after the fence is signaled in order to ensure the writes are visible to the host.Valid Usage
devicemust be a validVkDevicehandlepFencesmust be a pointer to an array offenceCountvalidVkFencehandlesfenceCountmust be greater than 0- Each element of
pFencesmust have been created, allocated or retrieved fromdevice - Each of
deviceand the elements ofpFencesmust 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. IfwaitAllisTRUE, then the condition is that all fences inpFencesare signaled. Otherwise, the condition is that at least one fence inpFencesis signaled.timeout- the timeout period in units of nanoseconds.timeoutis 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkSemaphoreCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pSemaphoremust be a pointer to aVkSemaphorehandle
To signal a semaphore from a queue, include it in an element of the array of
VkSubmitInfostructures passed through thepSubmitsparameter to a call toQueueSubmit, or in an element of the array ofVkBindSparseInfostructures passed through thepBindInfoparameter to a call toQueueBindSparse.Semaphores included in the
pSignalSemaphoresarray 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
pWaitSemaphoresarray 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 thepWaitDstStageMaskmember 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
pWaitDstStageMaskwith values other thanPIPELINE_STAGE_ALL_COMMANDS_BITis 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_BITprevents 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
VkImageMemoryBarriercould use:srcStageMask =PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITsrcAccessMask =ACCESS_MEMORY_READ_BITdstStageMask =PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITdstAccessMask =ACCESS_COLOR_ATTACHMENT_READ_BIT|ACCESS_COLOR_ATTACHMENT_WRITE_BIT.oldLayout =IMAGE_LAYOUT_PRESENT_SRC_KHRnewLayout =IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
Alternately,
oldLayoutcan 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_BITstage, 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 aVkSemaphoreCreateInfostructure 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
devicemust be a validVkDevicehandle- If
semaphoreis notNULL_HANDLE,semaphoremust be a validVkSemaphorehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
semaphoreis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandsemaphorethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice semaphoremust not be associated with any queue command that has not yet completed execution on that queue- If
VkAllocationCallbackswere provided whensemaphorewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whensemaphorewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
semaphoremust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkEventCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pEventmust be a pointer to aVkEventhandle
- Parameters:
device- the logical device that creates the eventpCreateInfo- a pointer to an instance of theVkEventCreateInfostructure 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
devicemust be a validVkDevicehandle- If
eventis notNULL_HANDLE,eventmust be a validVkEventhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
eventis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandeventthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
eventmust have completed execution - If
VkAllocationCallbackswere provided wheneventwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided wheneventwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
eventmust 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,
vkGetEventStatusreturns 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
vkGetEventStatuswill 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
devicemust be a validVkDevicehandleeventmust be a validVkEventhandleeventmust have been created, allocated or retrieved fromdevice- Each of
deviceandeventmust 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
devicemust be a validVkDevicehandleeventmust be a validVkEventhandleeventmust have been created, allocated or retrieved fromdevice- Each of
deviceandeventmust have been created, allocated or retrieved from the sameVkPhysicalDevice
Host Synchronization
- Host access to
eventmust 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
devicemust be a validVkDevicehandleeventmust be a validVkEventhandleeventmust have been created, allocated or retrieved fromdevice- Each of
deviceandeventmust have been created, allocated or retrieved from the sameVkPhysicalDevice eventmust not be waited on by aCmdWaitEventscommand that is currently executing
Host Synchronization
- Host access to
eventmust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkQueryPoolCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pQueryPoolmust be a pointer to aVkQueryPoolhandle
- Parameters:
device- the logical device that creates the query poolpCreateInfo- pointer to an instance of theVkQueryPoolCreateInfostructure containing the number and type of queries to be managed by the poolpAllocator- controls host memory allocationpQueryPool- a pointer to aVkQueryPoolhandle 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
devicemust be a validVkDevicehandle- If
queryPoolis notNULL_HANDLE,queryPoolmust be a validVkQueryPoolhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
queryPoolis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandqueryPoolthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
queryPoolmust have completed execution - If
VkAllocationCallbackswere provided whenqueryPoolwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenqueryPoolwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
queryPoolmust 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_BITis not set and the result overflows a 32-bit value, the value may either wrap or saturate. Similarly, ifQUERY_RESULT_64_BITis set and the result overflows a 64-bit value, the value may either wrap or saturate.If
QUERY_RESULT_WAIT_BITis set, Vulkan will wait for each query to be in the available state before retrieving the numerical results for that query. In this case,vkGetQueryPoolResultsis guaranteed to succeed and returnSUCCESSif 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), thenvkGetQueryPoolResultsmay not return in finite time.If
QUERY_RESULT_WAIT_BITandQUERY_RESULT_PARTIAL_BITare both not set then no result values are written topDatafor queries that are in the unavailable state at the time of the call, andvkGetQueryPoolResultsreturnsNOT_READY. However, availability state is still written topDatafor those queries ifQUERY_RESULT_WITH_AVAILABILITY_BITis set.Note
Applications must take care to ensure that use of the
QUERY_RESULT_WAIT_BITbit has the desired effect.For example, if a query has been used previously and a command buffer records the commands
CmdResetQueryPool,CmdBeginQuery, andCmdEndQueryfor that query, then the query will remain in the available state until thevkCmdResetQueryPoolcommand 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_BITis 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 thevkCmdResetQueryPoolcommand 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_BITis set,QUERY_RESULT_WAIT_BITis not set, and the query’s status is unavailable, an intermediate result value between zero and the final result value is written topDatafor that query.QUERY_RESULT_PARTIAL_BITmust not be used if the pool’squeryTypeisQUERY_TYPE_TIMESTAMP.If
QUERY_RESULT_WITH_AVAILABILITY_BITis 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_BITis 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
devicemust be a validVkDevicehandlequeryPoolmust be a validVkQueryPoolhandlepDatamust be a pointer to an array ofdataSizebytesflagsmust be a valid combination ofVkQueryResultFlagBitsvaluesdataSizemust be greater than 0queryPoolmust have been created, allocated or retrieved fromdevice- Each of
deviceandqueryPoolmust have been created, allocated or retrieved from the sameVkPhysicalDevice firstQuerymust be less than the number of queries inqueryPool- If
QUERY_RESULT_64_BITis not set inflagsthenpDataandstridemust be multiples of 4 - If
QUERY_RESULT_64_BITis set inflagsthenpDataandstridemust be multiples of 8 - The sum of
firstQueryandqueryCountmust be less than or equal to the number of queries inqueryPool dataSizemust be large enough to contain the result of each query, as described here- If the
queryTypeused to createqueryPoolwasQUERY_TYPE_TIMESTAMP,flagsmust 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.firstQueryandqueryCounttogether 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 ofVkQueryResultFlagBitsspecifying how and when results are returned. One or more of:QUERY_RESULT_64_BITQUERY_RESULT_WAIT_BITQUERY_RESULT_WITH_AVAILABILITY_BITQUERY_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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkBufferCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pBuffermust be a pointer to aVkBufferhandle- If the
flagsmember ofpCreateInfoincludesBUFFER_CREATE_SPARSE_BINDING_BIT, creating thisVkBuffermust 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 theVkBufferCreateInfostructure containing parameters affecting creation of the bufferpAllocator- controls host memory allocationpBuffer- points to aVkBufferhandle 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
devicemust be a validVkDevicehandle- If
bufferis notNULL_HANDLE,buffermust be a validVkBufferhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
bufferis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandbufferthat 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
VkAllocationCallbackswere provided whenbufferwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenbufferwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
buffermust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkBufferViewCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pViewmust be a pointer to aVkBufferViewhandle
- Parameters:
device- the logical device that creates the buffer viewpCreateInfo- a pointer to an instance of theVkBufferViewCreateInfostructure containing parameters to be used to create the bufferpAllocator- controls host memory allocationpView- points to aVkBufferViewhandle 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
devicemust be a validVkDevicehandle- If
bufferViewis notNULL_HANDLE,bufferViewmust be a validVkBufferViewhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
bufferViewis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandbufferViewthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
bufferViewmust have completed execution - If
VkAllocationCallbackswere provided whenbufferViewwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenbufferViewwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
bufferViewmust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkImageCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pImagemust be a pointer to aVkImagehandle- If the
flagsmember ofpCreateInfoincludesIMAGE_CREATE_SPARSE_BINDING_BIT, creating thisVkImagemust 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 theVkImageCreateInfostructure containing parameters to be used to create the imagepAllocator- controls host memory allocationpImage- points to aVkImagehandle 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
devicemust be a validVkDevicehandle- If
imageis notNULL_HANDLE,imagemust be a validVkImagehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
imageis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandimagethat 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
VkAllocationCallbackswere provided whenimagewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenimagewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
imagemust 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
devicemust be a validVkDevicehandleimagemust be a validVkImagehandlepSubresourcemust be a pointer to a validVkImageSubresourcestructurepLayoutmust be a pointer to aVkSubresourceLayoutstructureimagemust have been created, allocated or retrieved fromdevice- Each of
deviceandimagemust have been created, allocated or retrieved from the sameVkPhysicalDevice imagemust have been created withtilingequal toIMAGE_TILING_LINEAR- The
aspectMaskmember ofpSubresourcemust 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 aVkImageSubresourcestructure selecting a specific image for the image subresourcepLayout- points to aVkSubresourceLayoutstructure 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkImageViewCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pViewmust be a pointer to aVkImageViewhandle
- Parameters:
device- the logical device that creates the image viewpCreateInfo- a pointer to an instance of theVkImageViewCreateInfostructure containing parameters to be used to create the image viewpAllocator- controls host memory allocationpView- points to aVkImageViewhandle 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
devicemust be a validVkDevicehandle- If
imageViewis notNULL_HANDLE,imageViewmust be a validVkImageViewhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
imageViewis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandimageViewthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
imageViewmust have completed execution - If
VkAllocationCallbackswere provided whenimageViewwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenimageViewwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
imageViewmust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkShaderModuleCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pShaderModulemust be a pointer to aVkShaderModulehandle
- Parameters:
device- the logical device that creates the shader modulepCreateInfo- a pointer to an instance of theVkShaderModuleCreateInfostructurepAllocator- controls host memory allocationpShaderModule- points to aVkShaderModulehandle 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
devicemust be a validVkDevicehandle- If
shaderModuleis notNULL_HANDLE,shaderModulemust be a validVkShaderModulehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
shaderModuleis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandshaderModulethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - If
VkAllocationCallbackswere provided whenshaderModulewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenshaderModulewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
shaderModulemust 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
CreateGraphicsPipelinesandCreateComputePipelinescommands. 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
vkCreateGraphicsPipelinesandvkCreateComputePipelinescommands.Valid Usage
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkPipelineCacheCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pPipelineCachemust be a pointer to aVkPipelineCachehandle
- Parameters:
device- the logical device that creates the pipeline cache objectpCreateInfo- a pointer to aVkPipelineCacheCreateInfostructure that contains the initial parameters for the pipeline cache objectpAllocator- controls host memory allocationpPipelineCache- a pointer to aVkPipelineCachehandle 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
devicemust be a validVkDevicehandle- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validVkPipelineCachehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
pipelineCacheis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandpipelineCachethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - If
VkAllocationCallbackswere provided whenpipelineCachewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenpipelineCachewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
pipelineCachemust 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
pDataisNULL, then the maximum size of the data that can be retrieved from the pipeline cache, in bytes, is returned inpDataSize. Otherwise,pDataSizemust 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
dataSizeis less than the maximum size that can be retrieved by the pipeline cache, at mostpDataSizebytes will be written topData, andvkGetPipelineCacheDatawill returnINCOMPLETE. Any data written topDatais valid and can be provided as thepInitialDatamember of theVkPipelineCacheCreateInfostructure passed toCreatePipelineCache.Valid Usage
devicemust be a validVkDevicehandlepipelineCachemust be a validVkPipelineCachehandlepDataSizemust be a pointer to asize_tvalue- If the value referenced by
pDataSizeis not 0, andpDatais notNULL,pDatamust be a pointer to an array ofpDataSizebytes pipelineCachemust have been created, allocated or retrieved fromdevice- Each of
deviceandpipelineCachemust 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
pDatamust 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 VkPipelineCacheHeaderVersionvalue written as a stream of bytes, with the least significant byte first8 4 a vendor ID equal to VkPhysicalDeviceProperties::vendorIDwritten as a stream of bytes, with the least significant byte first12 4 a device ID equal to VkPhysicalDeviceProperties::deviceIDwritten as a stream of bytes, with the least significant byte first16 UUID_SIZEa pipeline cache ID equal to VkPhysicalDeviceProperties::pipelineCacheUUIDThe 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
VkPipelineCacheHeaderVersionvalue, 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
dataSizeis less than what is necessary to store this header, nothing will be written topDataand 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- eitherNULLor 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
devicemust be a validVkDevicehandledstCachemust be a validVkPipelineCachehandlepSrcCachesmust be a pointer to an array ofsrcCacheCountvalidVkPipelineCachehandlessrcCacheCountmust be greater than 0dstCachemust have been created, allocated or retrieved fromdevice- Each element of
pSrcCachesmust have been created, allocated or retrieved fromdevice - Each of
device,dstCacheand the elements ofpSrcCachesmust have been created, allocated or retrieved from the sameVkPhysicalDevice dstCachemust not appear in the list of source caches
Host Synchronization
- Host access to
dstCachemust 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 ofdstCacheare 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
devicemust be a validVkDevicehandle- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validVkPipelineCachehandle pCreateInfosmust be a pointer to an array ofcreateInfoCountvalidVkGraphicsPipelineCreateInfostructures- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pPipelinesmust be a pointer to an array ofcreateInfoCountVkPipelinehandlescreateInfoCountmust be greater than 0- If
pipelineCacheis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandpipelineCachethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - If the
flagsmember of any given element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat 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 ofVkGraphicsPipelineCreateInfostructurespAllocator- 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
vkCreateComputePipelineswithmoduleandpNameselecting an entry point from a shader module, where that entry point defines a valid compute shader, in theVkPipelineShaderStageCreateInfostructure contained within theVkComputePipelineCreateInfostructure.Valid Usage
devicemust be a validVkDevicehandle- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validVkPipelineCachehandle pCreateInfosmust be a pointer to an array ofcreateInfoCountvalidVkComputePipelineCreateInfostructures- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pPipelinesmust be a pointer to an array ofcreateInfoCountVkPipelinehandlescreateInfoCountmust be greater than 0- If
pipelineCacheis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandpipelineCachethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - If the
flagsmember of any given element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat 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 ofVkComputePipelineCreateInfostructurespAllocator- 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
devicemust be a validVkDevicehandle- If
pipelineis notNULL_HANDLE,pipelinemust be a validVkPipelinehandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
pipelineis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandpipelinethat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
pipelinemust have completed execution - If
VkAllocationCallbackswere provided whenpipelinewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenpipelinewas created,pAllocatormust beNULL
Host Synchronization
- Host access to
pipelinemust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkPipelineLayoutCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pPipelineLayoutmust be a pointer to aVkPipelineLayouthandle
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
stageFlagsincluding 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 theVkPipelineLayoutCreateInfostructure specifying the state of the pipeline layout objectpAllocator- controls host memory allocationpPipelineLayout- points to aVkPipelineLayouthandle 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
devicemust be a validVkDevicehandle- If
pipelineLayoutis notNULL_HANDLE,pipelineLayoutmust be a validVkPipelineLayouthandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
pipelineLayoutis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandpipelineLayoutthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - If
VkAllocationCallbackswere provided whenpipelineLayoutwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenpipelineLayoutwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
pipelineLayoutmust 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.VkSamplerobjects 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkSamplerCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pSamplermust be a pointer to aVkSamplerhandle
- Parameters:
device- the logical device that creates the samplerpCreateInfo- a pointer to an instance of theVkSamplerCreateInfostructure specifying the state of the sampler objectpAllocator- controls host memory allocationpSampler- points to aVkSamplerhandle 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
devicemust be a validVkDevicehandle- If
sampleris notNULL_HANDLE,samplermust be a validVkSamplerhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
sampleris a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandsamplerthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
samplermust have completed execution - If
VkAllocationCallbackswere provided whensamplerwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whensamplerwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
samplermust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkDescriptorSetLayoutCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pSetLayoutmust be a pointer to aVkDescriptorSetLayouthandle
- Parameters:
device- the logical device that creates the descriptor set layoutpCreateInfo- a pointer to an instance of theVkDescriptorSetLayoutCreateInfostructure specifying the state of the descriptor set layout objectpAllocator- controls host memory allocationpSetLayout- points to aVkDescriptorSetLayouthandle 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
devicemust be a validVkDevicehandle- If
descriptorSetLayoutis notNULL_HANDLE,descriptorSetLayoutmust be a validVkDescriptorSetLayouthandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
descriptorSetLayoutis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceanddescriptorSetLayoutthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - If
VkAllocationCallbackswere provided whendescriptorSetLayoutwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whendescriptorSetLayoutwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
descriptorSetLayoutmust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkDescriptorPoolCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pDescriptorPoolmust be a pointer to aVkDescriptorPoolhandle
- Parameters:
device- the logical device that creates the descriptor poolpCreateInfo- a pointer to an instance of theVkDescriptorPoolCreateInfostructure specifying the state of the descriptor pool objectpAllocator- controls host memory allocationpDescriptorPool- points to aVkDescriptorPoolhandle 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
devicemust be a validVkDevicehandle- If
descriptorPoolis notNULL_HANDLE,descriptorPoolmust be a validVkDescriptorPoolhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
descriptorPoolis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceanddescriptorPoolthat 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
VkAllocationCallbackswere provided whendescriptorPoolwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whendescriptorPoolwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
descriptorPoolmust 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
devicemust be a validVkDevicehandledescriptorPoolmust be a validVkDescriptorPoolhandleflagsmust be 0descriptorPoolmust have been created, allocated or retrieved fromdevice- Each of
deviceanddescriptorPoolmust 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
descriptorPoolmust be externally synchronized - Host access to any
VkDescriptorSetobjects allocated fromdescriptorPoolmust 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
devicemust be a validVkDevicehandlepAllocateInfomust be a pointer to a validVkDescriptorSetAllocateInfostructurepDescriptorSetsmust be a pointer to an array ofpAllocateInfo->descriptorSetCountVkDescriptorSethandles
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 theVkDescriptorSetAllocateInfostructure describing parameters of the allocationpDescriptorSets- a pointer to an array ofVkDescriptorSethandles in which the resulting descriptor set objects are returned. The array must be at least the length specified by thedescriptorSetCountmember ofpAllocateInfo.
-
vkFreeDescriptorSets
public static int vkFreeDescriptorSets(VkDevice device, long descriptorPool, java.nio.LongBuffer pDescriptorSets)
Frees one or more descriptor sets.Valid Usage
devicemust be a validVkDevicehandledescriptorPoolmust be a validVkDescriptorPoolhandledescriptorSetCountmust be greater than 0descriptorPoolmust have been created, allocated or retrieved fromdevice- Each element of
pDescriptorSetsthat is a valid handle must have been created, allocated or retrieved fromdescriptorPool - Each of
device,descriptorPooland the elements ofpDescriptorSetsthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to any element of
pDescriptorSetsmust have completed execution pDescriptorSetsmust be a pointer to an array ofdescriptorSetCountVkDescriptorSethandles, each element of which must either be a valid handle orNULL_HANDLEdescriptorPoolmust have been created with theDESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BITflag
Host Synchronization
- Host access to
descriptorPoolmust be externally synchronized - Host access to each member of
pDescriptorSetsmust 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 toVkDescriptorSetobjects. All elements ofpDescriptorSetsmust have been allocated fromdescriptorPool.
-
vkFreeDescriptorSets
public static int vkFreeDescriptorSets(VkDevice device, long descriptorPool, long pDescriptorSet)
Frees one or more descriptor sets.Valid Usage
devicemust be a validVkDevicehandledescriptorPoolmust be a validVkDescriptorPoolhandledescriptorSetCountmust be greater than 0descriptorPoolmust have been created, allocated or retrieved fromdevice- Each element of
pDescriptorSetsthat is a valid handle must have been created, allocated or retrieved fromdescriptorPool - Each of
device,descriptorPooland the elements ofpDescriptorSetsthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to any element of
pDescriptorSetsmust have completed execution pDescriptorSetsmust be a pointer to an array ofdescriptorSetCountVkDescriptorSethandles, each element of which must either be a valid handle orNULL_HANDLEdescriptorPoolmust have been created with theDESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BITflag
Host Synchronization
- Host access to
descriptorPoolmust be externally synchronized - Host access to each member of
pDescriptorSetsmust 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
devicemust be a validVkDevicehandle- If
descriptorWriteCountis not 0,pDescriptorWritesmust be a pointer to an array ofdescriptorWriteCountvalidVkWriteDescriptorSetstructures - If
descriptorCopyCountis not 0,pDescriptorCopiesmust be a pointer to an array ofdescriptorCopyCountvalidVkCopyDescriptorSetstructures
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 ofVkWriteDescriptorSetstructures describing the descriptor sets to write topDescriptorCopies- a pointer to an array ofVkCopyDescriptorSetstructures 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkFramebufferCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pFramebuffermust be a pointer to aVkFramebufferhandle
- Parameters:
device- the logical device that creates the framebufferpCreateInfo- points to aVkFramebufferCreateInfostructure which describes additional information about framebuffer creationpAllocator- controls host memory allocationpFramebuffer- points to aVkFramebufferhandle 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
devicemust be a validVkDevicehandle- If
framebufferis notNULL_HANDLE,framebuffermust be a validVkFramebufferhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
framebufferis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandframebufferthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
framebuffermust have completed execution - If
VkAllocationCallbackswere provided whenframebufferwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenframebufferwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
framebuffermust 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkRenderPassCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pRenderPassmust be a pointer to aVkRenderPasshandle
- Parameters:
device- the logical device that creates the render passpCreateInfo- a pointer to an instance of theVkRenderPassCreateInfostructure that describes the parameters of the render passpAllocator- controls host memory allocationpRenderPass- points to aVkRenderPasshandle 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
devicemust be a validVkDevicehandle- If
renderPassis notNULL_HANDLE,renderPassmust be a validVkRenderPasshandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
renderPassis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandrenderPassthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All submitted commands that refer to
renderPassmust have completed execution - If
VkAllocationCallbackswere provided whenrenderPasswas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenrenderPasswas created,pAllocatormust beNULL
Host Synchronization
- Host access to
renderPassmust 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
renderAreaare:- the
offset.xmember inrenderAreais a multiple of the width member of the returnedVkExtent2D(the horizontal granularity). - the
offset.ymember inrenderAreais a multiple of the height of the returnedVkExtent2D(the vertical granularity). - either the
offset.widthmember inrenderAreais a multiple of the horizontal granularity oroffset.x+offset.widthis equal to the width of the framebuffer in theVkRenderPassBeginInfo. - either the
offset.heightmember inrenderAreais a multiple of the vertical granularity oroffset.y+offset.heightis equal to the height of the framebuffer in theVkRenderPassBeginInfo.
Valid Usage
devicemust be a validVkDevicehandlerenderPassmust be a validVkRenderPasshandlepGranularitymust be a pointer to aVkExtent2DstructurerenderPassmust have been created, allocated or retrieved fromdevice- Each of
deviceandrenderPassmust 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 aVkExtent2Dstructure 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
devicemust be a validVkDevicehandlepCreateInfomust be a pointer to a validVkCommandPoolCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure pCommandPoolmust be a pointer to aVkCommandPoolhandle
- Parameters:
device- the logical device that creates the command poolpCreateInfo- contains information used to create the command poolpAllocator- controls host memory allocationpCommandPool- points to anVkCommandPoolhandle 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
devicemust be a validVkDevicehandle- If
commandPoolis notNULL_HANDLE,commandPoolmust be a validVkCommandPoolhandle - If
pAllocatoris notNULL,pAllocatormust be a pointer to a validVkAllocationCallbacksstructure - If
commandPoolis a valid handle, it must have been created, allocated or retrieved fromdevice - Each of
deviceandcommandPoolthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All
VkCommandBufferobjects allocated fromcommandPoolmust not be pending execution - If
VkAllocationCallbackswere provided whencommandPoolwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whencommandPoolwas created,pAllocatormust beNULL
Host Synchronization
- Host access to
commandPoolmust 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
devicemust be a validVkDevicehandlecommandPoolmust be a validVkCommandPoolhandleflagsmust be a valid combination ofVkCommandPoolResetFlagBitsvaluescommandPoolmust have been created, allocated or retrieved fromdevice- Each of
deviceandcommandPoolmust have been created, allocated or retrieved from the sameVkPhysicalDevice - All
VkCommandBufferobjects allocated fromcommandPoolmust not currently be pending execution
Host Synchronization
- Host access to
commandPoolmust 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
devicemust be a validVkDevicehandlepAllocateInfomust be a pointer to a validVkCommandBufferAllocateInfostructurepCommandBuffersmust be a pointer to an array ofpAllocateInfo->commandBufferCountVkCommandBufferhandles
Host Synchronization
- Host access to
pAllocateInfo->commandPool must be externally synchronized
- Parameters:
device- the logical device that owns the command poolpAllocateInfo- an instance of theVkCommandBufferAllocateInfostructure 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
devicemust be a validVkDevicehandlecommandPoolmust be a validVkCommandPoolhandlecommandBufferCountmust be greater than 0commandPoolmust have been created, allocated or retrieved fromdevice- Each element of
pCommandBuffersthat is a valid handle must have been created, allocated or retrieved fromcommandPool - Each of
device,commandPooland the elements ofpCommandBuffersthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All elements of
pCommandBuffersmust not be pending execution pCommandBuffersmust be a pointer to an array ofcommandBufferCountVkCommandBufferhandles, each element of which must either be a valid handle orNULL_HANDLE
Host Synchronization
- Host access to
commandPoolmust be externally synchronized - Host access to each member of
pCommandBuffersmust 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
devicemust be a validVkDevicehandlecommandPoolmust be a validVkCommandPoolhandlecommandBufferCountmust be greater than 0commandPoolmust have been created, allocated or retrieved fromdevice- Each element of
pCommandBuffersthat is a valid handle must have been created, allocated or retrieved fromcommandPool - Each of
device,commandPooland the elements ofpCommandBuffersthat are valid handles must have been created, allocated or retrieved from the sameVkPhysicalDevice - All elements of
pCommandBuffersmust not be pending execution pCommandBuffersmust be a pointer to an array ofcommandBufferCountVkCommandBufferhandles, each element of which must either be a valid handle orNULL_HANDLE
Host Synchronization
- Host access to
commandPoolmust be externally synchronized - Host access to each member of
pCommandBuffersmust 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
commandBuffermust be a validVkCommandBufferhandlepBeginInfomust be a pointer to a validVkCommandBufferBeginInfostructurecommandBuffermust not be in the recording statecommandBuffermust not currently be pending execution- If
commandBufferwas allocated from aVkCommandPoolwhich did not have theCOMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BITflag set,commandBuffermust be in the initial state. - If
commandBufferis a secondary command buffer, thepInheritanceInfomember ofpBeginInfomust be a validVkCommandBufferInheritanceInfostructure - If
commandBufferis a secondary command buffer and either theocclusionQueryEnablemember of thepInheritanceInfomember ofpBeginInfoisFALSE, or the precise occlusion queries feature is not enabled, thequeryFlagsmember of thepInheritanceInfomemberpBeginInfomust not containQUERY_CONTROL_PRECISE_BIT
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
A primary command buffer is considered to be pending execution from the time it is submitted via
QueueSubmituntil 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 withResetCommandBufferunless the secondary command buffer was recorded withCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT.If
COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITis 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_BITset is recorded to execute in a primary command buffer withCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITset, 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_BITbit 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_BITflag set, thenvkBeginCommandBufferimplicitly resets the command buffer, behaving as ifResetCommandBufferhad been called withCOMMAND_BUFFER_RESET_RELEASE_RESOURCES_BITnot 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 theVkCommandBufferBeginInfostructure, 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
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording stateEndCommandBuffermust not be called inside a render pass instance- All queries made active during the recording of
commandBuffermust have been made inactive
Host Synchronization
- Host access to
commandBuffermust 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
flagsincludesCOMMAND_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
commandBuffermust be a validVkCommandBufferhandleflagsmust be a valid combination ofVkCommandBufferResetFlagBitsvaluescommandBuffermust not currently be pending executioncommandBuffermust have been allocated from a pool that was created with theCOMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
Host Synchronization
- Host access to
commandBuffermust 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_COMPUTEcontrols the behavior ofCmdDispatchandCmdDispatchIndirect. The pipeline bound toPIPELINE_BIND_POINT_GRAPHICScontrols the behavior ofCmdDraw,CmdDrawIndexed,CmdDrawIndirect, andCmdDrawIndexedIndirect. No other commands are affected by the pipeline state.Valid Usage
commandBuffermust be a validVkCommandBufferhandlepipelineBindPointmust be a validVkPipelineBindPointvaluepipelinemust be a validVkPipelinehandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - Each of
commandBufferandpipelinemust have been created, allocated or retrieved from the sameVkDevice - If
pipelineBindPointisPIPELINE_BIND_POINT_COMPUTE, theVkCommandPoolthatcommandBufferwas allocated from must support compute operations - If
pipelineBindPointisPIPELINE_BIND_POINT_GRAPHICS, theVkCommandPoolthatcommandBufferwas allocated from must support graphics operations - If
pipelineBindPointisPIPELINE_BIND_POINT_COMPUTE,pipelinemust be a compute pipeline - If
pipelineBindPointisPIPELINE_BIND_POINT_GRAPHICS,pipelinemust be a graphics pipeline - If the variable multisample rate feature is not supported,
pipelineis 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
commandBuffermust 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_GRAPHICSPIPELINE_BIND_POINT_COMPUTEpipeline- 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_VIEWPORTdynamic state enabled, viewport transformation parameters are specified using thepViewportsmember ofVkPipelineViewportStateCreateInfoin the pipeline state object. If the pipeline state object was created with theDYNAMIC_STATE_VIEWPORTdynamic state enabled, the viewport transformation parameters are dynamically set and changed with this command.The viewport parameters taken from element
iofpViewportsreplace the current state for the viewport indexfirstViewport + i, foriin[0,viewportCount).Valid Usage
commandBuffermust be a validVkCommandBufferhandlepViewportsmust be a pointer to an array ofviewportCountvalidVkViewportstructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations viewportCountmust be greater than 0firstViewportmust be less thanVkPhysicalDeviceLimits::maxViewports- The sum of
firstViewportandviewportCountmust be between 1 andVkPhysicalDeviceLimits::maxViewports, inclusive
Host Synchronization
- Host access to
commandBuffermust 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 ofVkViewportstructures 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_SCISSORenabled then the scissor rectangles are set by theVkPipelineViewportStateCreateInfostate of the pipeline state object. Otherwise, use this command to dynamically set the scissor rectangles.The scissor rectangles taken from element
iofpScissorsreplace the current state for the scissor indexfirstScissor + i, foriin[0,scissorCount).Each scissor rectangle is described by a
VkRect2Dstructure, with theoffset.xandoffset.yvalues determining the upper left corner of the scissor rectangle, and theextent.widthandextent.heightvalues determining the size in pixels.If
offset.x ≤ xf < offset.x + extent.widthandoffset.y ≤ yf < offset.y + extent.heightfor 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.widthoroffset.y + extent.heightto 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
commandBuffermust be a validVkCommandBufferhandlepScissorsmust be a pointer to an array ofscissorCountVkRect2DstructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations scissorCountmust be greater than 0firstScissormust be less thanVkPhysicalDeviceLimits::maxViewports- The sum of
firstScissorandscissorCountmust be between 1 andVkPhysicalDeviceLimits::maxViewports, inclusive - The
xandymembers ofoffsetmust 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
commandBuffermust 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 ofVkRect2Dstructures 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
lineWidthproperty ofVkPipelineRasterizationStateCreateInfoin the currently active pipeline if the pipeline was not created withDYNAMIC_STATE_LINE_WIDTHenabled. 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
lineWidthRangeandlineWidthGranularitymembers 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
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - If the wide lines feature is not enabled,
lineWidthmust be1.0
Host Synchronization
- Host access to
commandBuffermust 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, anddepthBiasSlopeFactormembers ofVkPipelineRasterizationStateCreateInfo, or by the corresponding parameters to thevkCmdSetDepthBiascommand if depth bias state is dynamic.If
depthBiasEnableisFALSE, no depth bias is applied and the fragment’s depth values are unchanged.depthBiasSlopeFactorscales the maximum depth slope of the polygon, anddepthBiasConstantFactorscales 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, anddepthBiasClampcan 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.mmay be approximated asm = max(abs(∂zf / ∂xf), abs(∂zf / ∂yf))The minimum resolvable difference
ris an implementation-dependent parameter that depends on the depth buffer representation. It is the smallest difference in framebuffer coordinatezvalues 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, butzfvalues that differ byr, will have distinct depth values.For fixed-point depth buffer representations,
ris 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 ofzvalues spanned by the primitive. Ifnis the number of bits in the floating-point mantissa, the minimum resolvable difference,r, for the given primitive is defined asr = 2e-nIf no depth buffer is present,
ris undefined.The bias value
ofor a polygon iso =m × depthBiasSlopeFactor + r × depthBiasConstantFactorwhen depthBiasClamp = 0 or NaNmin(m × depthBiasSlopeFactor + r × depthBiasConstantFactor, depthBiasClamp)when depthBiasClamp > 0max(m × depthBiasSlopeFactor + r × depthBiasConstantFactor, depthBiasClamp)when depthBiasClamp < 0mis computed as described above. If the depth buffer uses a fixed-point representation,mis a function of depth values in the range[0,1], andois 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
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - If the depth bias clamping feature is not enabled,
depthBiasClampmust be 0.0
Host Synchronization
- Host access to
commandBuffermust 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_CONSTANTSdynamic state enabled then the “blend constant”(Rc,Gc,Bc,Ac)is specified via theblendConstantsmember ofVkPipelineColorBlendStateCreateInfo. Otherwise the blend constant is dynamically set and changed by calling this command,Valid Usage
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust 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 thedepthBoundsTestEnablemember ofVkPipelineDepthStencilStateCreateInfo. If the pipeline state object is created without theDYNAMIC_STATE_DEPTH_BOUNDSdynamic state enabled then the range of values used in the depth bounds test are defined by theminDepthBoundsandmaxDepthBoundsmembers of theVkPipelineDepthStencilStateCreateInfostructure. 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
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations minDepthBoundsmust be between0.0and1.0, inclusivemaxDepthBoundsmust be between0.0and1.0, inclusive
Host Synchronization
- Host access to
commandBuffermust 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_MASKdynamic state enabled, then to dynamically set the stencil compare mask call this command.Valid Usage
commandBuffermust be a validVkCommandBufferhandlefaceMaskmust be a valid combination ofVkStencilFaceFlagBitsvaluesfaceMaskmust not be 0commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust 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_BITSTENCIL_FACE_BACK_BITSTENCIL_FRONT_AND_BACKcompareMask- 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_MASKdynamic state enabled, then to dynamically set the stencil write mask call this command.Valid Usage
commandBuffermust be a validVkCommandBufferhandlefaceMaskmust be a valid combination ofVkStencilFaceFlagBitsvaluesfaceMaskmust not be 0commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer into which the command will be recordedfaceMask- a bitmask ofVkStencilFaceFlagBitsspecifying the set of stencil state for which to update the write mask. One or more of:STENCIL_FACE_FRONT_BITSTENCIL_FACE_BACK_BITSTENCIL_FRONT_AND_BACKwriteMask- 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_REFERENCEdynamic state enabled, then to dynamically set the stencil reference value call this command.Valid Usage
commandBuffermust be a validVkCommandBufferhandlefaceMaskmust be a valid combination ofVkStencilFaceFlagBitsvaluesfaceMaskmust not be 0commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer into which the command will be recordedfaceMask- a bitmask ofVkStencilFaceFlagBitsspecifying the set of stencil state for which to update the reference value. One or more of:STENCIL_FACE_FRONT_BITSTENCIL_FACE_BACK_BITSTENCIL_FRONT_AND_BACKreference- 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
pDynamicOffsetsincludes one element for each array element in each dynamic descriptor type binding in each set.vkCmdBindDescriptorSetscauses 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
pDynamicOffsetsincludes one element for each array element in each dynamic descriptor type binding in each set. Values are taken frompDynamicOffsetsin 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.dynamicOffsetCountmust 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
pDescriptorSetsmust 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
vkCmdBindDescriptorSetsmay 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 ofpDynamicOffsetsare consumed immediately during execution ofvkCmdBindDescriptorSets. Once all pending uses have completed, it is legal to update and reuse a descriptor set.Valid Usage
commandBuffermust be a validVkCommandBufferhandlepipelineBindPointmust be a validVkPipelineBindPointvaluelayoutmust be a validVkPipelineLayouthandlepDescriptorSetsmust be a pointer to an array ofdescriptorSetCountvalidVkDescriptorSethandles- If
dynamicOffsetCountis not 0,pDynamicOffsetsmust be a pointer to an array ofdynamicOffsetCountuint32_tvalues commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations descriptorSetCountmust be greater than 0- Each of
commandBuffer,layoutand the elements ofpDescriptorSetsmust have been created, allocated or retrieved from the sameVkDevice - Any given element of
pDescriptorSetsmust have been created with aVkDescriptorSetLayoutthat matches (is the same as, or defined identically to) theVkDescriptorSetLayoutat setninlayout, wherenis the sum offirstSetand the index intopDescriptorSets dynamicOffsetCountmust be equal to the total number of dynamic descriptors inpDescriptorSetspipelineBindPointmust be supported by thecommandBuffer's parentVkCommandPool's queue family- Any given element of
pDynamicOffsetsmust satisfy the required alignment for the corresponding descriptor binding's descriptor type
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer that the descriptor sets will be bound topipelineBindPoint- aVkPipelineBindPointindicating 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_GRAPHICSPIPELINE_BIND_POINT_COMPUTElayout- aVkPipelineLayoutobject used to program the bindingsfirstSet- the set number of the first descriptor set to be boundpDescriptorSets- a pointer to an array ofVkDescriptorSetstructures describing the descriptor sets to write topDynamicOffsets- a pointer to an array ofuint32_tvalues 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
commandBuffermust be a validVkCommandBufferhandlebuffermust be a validVkBufferhandleindexTypemust be a validVkIndexTypevaluecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - Each of
commandBufferandbuffermust have been created, allocated or retrieved from the sameVkDevice offsetmust be less than the size ofbuffer- The sum of
offset, and the address of the range ofVkDeviceMemoryobject that's backingbuffer, must be a multiple of the type indicated byindexType buffermust have been created with theBUFFER_USAGE_INDEX_BUFFER_BITflag
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer into which the command is recordedbuffer- the buffer being boundoffset- the starting offset in bytes withinbufferused in index buffer address calculationsindexType- selects whether indices are treated as 16 bits or 32 bits. One of:INDEX_TYPE_UINT16INDEX_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
iofpBuffersandpOffsetsreplace the current state for the vertex input bindingfirstBinding + i, foriin[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
vertexIndexandinstanceIndexis calculated as follows:- Let
attribDescbe the member ofVkPipelineVertexInputStateCreateInfo::pVertexAttributeDescriptionswithVkVertexInputAttributeDescription::locationequal to the vertex input attribute number. - Let
bindingDescbe the member ofVkPipelineVertexInputStateCreateInfo::pVertexBindingDescriptionswithVkVertexInputAttributeDescription::bindingequal toattribDesc.binding. - Let
vertexIndexbe the index of the vertex within the draw (a value betweenfirstVertexandfirstVertex+vertexCountforCmdDraw, or a value taken from the index buffer forCmdDrawIndexed), and letinstanceIndexbe the instance number of the draw (a value betweenfirstInstanceandfirstInstance+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
attribAddressand 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,attribAddressmust be a multiple of the size in bytes of the whole attribute data type. Otherwise,attribAddressmust 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
commandBuffermust be a validVkCommandBufferhandlepBuffersmust be a pointer to an array ofbindingCountvalidVkBufferhandlespOffsetsmust be a pointer to an array ofbindingCountVkDeviceSizevaluescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations bindingCountmust be greater than 0- Each of
commandBufferand the elements ofpBuffersmust have been created, allocated or retrieved from the sameVkDevice firstBindingmust be less thanVkPhysicalDeviceLimits::maxVertexInputBindings- The sum of
firstBindingandbindingCountmust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputBindings - All elements of
pOffsetsmust be less than the size of the corresponding element inpBuffers - All elements of
pBuffersmust have been created with theBUFFER_USAGE_VERTEX_BUFFER_BITflag
Host Synchronization
- Host access to
commandBuffermust 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 consecutivevertex indices with the firstvertexIndex valueequal tofirstVertex. The primitives are drawninstanceCounttimes withinstanceIndexstarting withfirstInstanceand increasing sequentially for each instance. The assembled primitives execute the currently bound graphics pipeline.Valid Usage
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- For each set
nthat is statically used by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound tonatPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for setn, with theVkPipelineLayoutused to create the currentVkPipeline - For each push constant that is statically used by the
VkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipeline - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid if they are statically used by the currently boundVkPipelineobject, 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSrequires 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
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used to sample from anyVkImagewith aVkImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageViewbeing sampled withFILTER_LINEARas a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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
indexCountvertices 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::indexTypeparameter with which the buffer was bound.The first vertex index is at an offset of
firstIndex * indexSize + offsetwithin the currently bound index buffer, where offset is the offset specified byvkCmdBindIndexBufferandindexSizeis 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 theindexTypeisINDEX_TYPE_UINT16) and havevertexOffsetadded to them, before being supplied as thevertexIndexvalue.The primitives are drawn
instanceCounttimes withinstanceIndexstarting withfirstInstanceand increasing sequentially for each instance. The assembled primitives execute the currently bound graphics pipeline.Valid Usage
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- For each set
nthat is statically used by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound tonatPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for setn, with theVkPipelineLayoutused to create the currentVkPipeline - For each push constant that is statically used by the
VkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipeline - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid if they are statically used by the currently boundVkPipelineobject, 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSrequires 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, andoffsetare specified viaCmdBindIndexBuffer - Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set
- If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used to sample from anyVkImagewith aVkImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageViewbeing sampled withFILTER_LINEARas a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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.vkCmdDrawIndirectbehaves similarly toCmdDrawexcept that the parameters are read by the device from a buffer during execution.drawCountdraws are executed by the command, with parameters taken from buffer starting atoffsetand increasing bystridebytes for each successive draw. The parameters of each draw are encoded in an array ofVkDrawIndirectCommandstructures. IfdrawCountis less than or equal to one,strideis ignored.Valid Usage
commandBuffermust be a validVkCommandBufferhandlebuffermust be a validVkBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- Each of
commandBufferandbuffermust have been created, allocated or retrieved from the sameVkDevice offsetmust be a multiple of 4- If
drawCountis greater than 1,stridemust be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand) - If the multi-draw indirect feature is not enabled,
drawCountmust be 0 or 1 - If the drawIndirectFirstInstance feature is not enabled, all the
firstInstancemembers of theVkDrawIndirectCommandstructures accessed by this command must be 0 - For each set
nthat is statically used by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound tonatPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for setn, with theVkPipelineLayoutused to create the currentVkPipeline - For each push constant that is statically used by the
VkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipeline - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid if they are statically used by the currently boundVkPipelineobject, 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSrequires any dynamic state, that state must have been set on the current command buffer - If
drawCountis equal to 1, (offset+ sizeof(VkDrawIndirectCommand)) must be less than or equal to the size ofbuffer - If
drawCountis greater than 1, (stridex (drawCount- 1) +offset+ sizeof(VkDrawIndirectCommand)) must be less than or equal to the size ofbuffer drawCountmust 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
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used to sample from anyVkImagewith aVkImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageViewbeing sampled withFILTER_LINEARas a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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 behavessimilarly toCmdDrawIndirectexcept that the parameters are read by the device from a buffer during execution.drawCountdraws are executed by the command, with parameters taken from buffer starting atoffsetand increasing bystridebytes for each successive draw. The parameters of each draw are encoded in an array ofVkDrawIndexedIndirectCommandstructures. IfdrawCountis less than or equal to one,strideis ignored.Valid Usage
commandBuffermust be a validVkCommandBufferhandlebuffermust be a validVkBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- Each of
commandBufferandbuffermust have been created, allocated or retrieved from the sameVkDevice offsetmust be a multiple of 4- If
drawCountis greater than 1,stridemust be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand) - If the multi-draw indirect feature is not enabled,
drawCountmust be 0 or 1 - If the drawIndirectFirstInstance feature is not enabled, all the
firstInstancemembers of theVkDrawIndexedIndirectCommandstructures accessed by this command must be 0 - For each set
nthat is statically used by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a descriptor set must have been bound tonatPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for setn, with theVkPipelineLayoutused to create the currentVkPipeline - For each push constant that is statically used by the
VkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICS, a push constant value must have been set forPIPELINE_BIND_POINT_GRAPHICS, with aVkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipeline - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid if they are statically used by the currently boundVkPipelineobject, 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSrequires any dynamic state, that state must have been set on the current command buffer - If
drawCountis equal to 1, (offset+ sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size ofbuffer - If
drawCountis greater than 1, (stridex (drawCount- 1) +offset+ sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size ofbuffer drawCountmust 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
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used to sample from anyVkImagewith aVkImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_GRAPHICSuses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_GRAPHICSaccesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageViewbeing sampled withFILTER_LINEARas a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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 × zlocal workgroups is assembled.Valid Usage
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
xmust be less than or equal toVkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]ymust be less than or equal toVkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]zmust be less than or equal toVkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]- For each set
nthat is statically used by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTE, a descriptor set must have been bound tonatPIPELINE_BIND_POINT_COMPUTE, with aVkPipelineLayoutthat is compatible for setn, with theVkPipelineLayoutused to create the currentVkPipeline - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid if they are statically used by the currently boundVkPipelineobject, 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
VkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTE, a push constant value must have been set forPIPELINE_BIND_POINT_COMPUTE, with aVkPipelineLayoutthat is compatible for push constants with the one used to create the currentVkPipeline - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTEuses unnormalized coordinates, it must not be used to sample from anyVkImagewith aVkImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTEuses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTEuses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_COMPUTEaccesses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_COMPUTEaccesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageViewbeing sampled withFILTER_LINEARas a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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
commandBuffermust be a validVkCommandBufferhandlebuffermust be a validVkBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support compute operations - This command must only be called outside of a render pass instance
- Each of
commandBufferandbuffermust have been created, allocated or retrieved from the sameVkDevice - For each set
nthat is statically used by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTE, a descriptor set must have been bound tonatPIPELINE_BIND_POINT_COMPUTE, with aVkPipelineLayoutthat is compatible for setn, with theVkPipelineLayoutused to create the currentVkPipeline - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid if they are statically used by the currently boundVkPipelineobject, specified viaCmdBindPipeline - A valid compute pipeline must be bound to the current command buffer with
PIPELINE_BIND_POINT_COMPUTE buffermust have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BITbit setoffsetmust be a multiple of 4- The sum of
offsetand the size ofVkDispatchIndirectCommandmust be less than or equal to the size ofbuffer - For each push constant that is statically used by the
VkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTE, a push constant value must have been set forPIPELINE_BIND_POINT_COMPUTE, with aVkPipelineLayoutthat is compatible for push constants with the one used to create the currentVkPipeline - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTEuses unnormalized coordinates, it must not be used to sample from anyVkImagewith aVkImageViewof the typeIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE,IMAGE_VIEW_TYPE_1D_ARRAY,IMAGE_VIEW_TYPE_2D_ARRAYorIMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTEuses unnormalized coordinates, it must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name, in any shader stage - If any
VkSamplerobject that is accessed from a shader by theVkPipelinecurrently bound toPIPELINE_BIND_POINT_COMPUTEuses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_COMPUTEaccesses 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
VkPipelineobject currently bound toPIPELINE_BIND_POINT_COMPUTEaccesses a storage buffer, it must not access values outside of the range of that buffer specified in the currently bound descriptor set - Any
VkImageViewbeing sampled withFILTER_LINEARas a result of this command must be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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
pRegionsis copied from the source buffer to the same region of the destination buffer.srcBufferanddstBuffercan be the same buffer or alias the same memory, but the result is undefined if the copy regions overlap in memory.Valid Usage
commandBuffermust be a validVkCommandBufferhandlesrcBuffermust be a validVkBufferhandledstBuffermust be a validVkBufferhandlepRegionsmust be a pointer to an array ofregionCountVkBufferCopystructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcBufferanddstBuffermust have been created, allocated or retrieved from the sameVkDevice - The
sizemember of a given element ofpRegionsmust be greater than 0 - The
srcOffsetmember of a given element ofpRegionsmust be less than the size ofsrcBuffer - The
dstOffsetmember of a given element ofpRegionsmust be less than the size ofdstBuffer - The
sizemember of a given element ofpRegionsmust be less than or equal to the size ofsrcBufferminussrcOffset - The
sizemember of a given element ofpRegionsmust be less than or equal to the size ofdstBufferminusdstOffset - The union of the source regions, and the union of the destination regions, specified by the elements of
pRegions, must not overlap in memory srcBuffermust have been created withBUFFER_USAGE_TRANSFER_SRC_BITusage flagdstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flag
Host Synchronization
- Host access to
commandBuffermust 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 ofVkBufferCopystructures 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.vkCmdCopyImageperforms 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.vkCmdCopyImagecan copy between images with different formats, provided the formats are compatible.Each region in
pRegionsis copied from the source image to the same region of the destination image.srcImageanddstImagecan be the same image or alias the same memory.Copies are done layer by layer starting with
baseArrayLayermember ofsrcSubresourcefor the source anddstSubresourcefor the destination.layerCountlayers are copied to the destination image.The formats of
srcImageanddstImagemust be compatible. Formats are considered compatible if their texel size in bytes is the same between both formats. For example,FORMAT_R8G8B8A8_UNORMis compatible withFORMAT_R32_UINTbecause because both texels are 4 bytes in size. Depth/stencil formats must match exactly.vkCmdCopyImageallows 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
extentmembers 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
extentmust 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 iscompressed and ifextent.widthis not a multiple of the block width then(extent.width + srcOffset.x)must equal the image subresource width, ifextent.heightis not a multiple of the block height then(extent.height + srcOffset.y)must equal the image subresource height and ifextent.depthis not a multiple of the block depth then(extent.depth + srcOffset.z)must equal the image subresource depth. Similarly if thedstImageis compressed and ifextent.widthis not a multiple of the block width then(extent.width + dstOffset.x)must equal the image subresource width, ifextent.heightis not a multiple of the block height then(extent.height + dstOffset.y)must equal the image subresource height and ifextent.depthis 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.vkCmdCopyImagecan be used to copy image data between multisample images, but both images must have the same number of samples.Valid Usage
commandBuffermust be a validVkCommandBufferhandlesrcImagemust be a validVkImagehandlesrcImageLayoutmust be a validVkImageLayoutvaluedstImagemust be a validVkImagehandledstImageLayoutmust be a validVkImageLayoutvaluepRegionsmust be a pointer to an array ofregionCountvalidVkImageCopystructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcImageanddstImagemust have been created, allocated or retrieved from the sameVkDevice - The source region specified by a given element of
pRegionsmust be a region that is contained withinsrcImage - The destination region specified by a given element of
pRegionsmust 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 srcImagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITusage flagsrcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aVkDevicesrcImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERALdstImagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagdstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aVkDevicedstImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- The
VkFormatof each ofsrcImageanddstImagemust be compatible, as defined below - The sample count of
srcImageanddstImagemust match
Host Synchronization
- Host access to
commandBuffermust 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 ofVkImageCopystructures 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.vkCmdBlitImagemust not be used for multisampled source or destination images. UseCmdResolveImagefor this purpose.Valid Usage
commandBuffermust be a validVkCommandBufferhandlesrcImagemust be a validVkImagehandlesrcImageLayoutmust be a validVkImageLayoutvaluedstImagemust be a validVkImagehandledstImageLayoutmust be a validVkImageLayoutvaluepRegionsmust be a pointer to an array ofregionCountvalidVkImageBlitstructuresfiltermust be a validVkFiltervaluecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcImageanddstImagemust have been created, allocated or retrieved from the sameVkDevice - The source region specified by a given element of
pRegionsmust be a region that is contained withinsrcImage - The destination region specified by a given element of
pRegionsmust 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 srcImagemust 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 byGetPhysicalDeviceFormatPropertiessrcImagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITusage flagsrcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aVkDevicesrcImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERALdstImagemust 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 byGetPhysicalDeviceFormatPropertiesdstImagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagdstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aVkDevicedstImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- The sample count of
srcImageanddstImagemust both be equal toSAMPLE_COUNT_1_BIT - If either of
srcImageordstImagewas created with a signed integerVkFormat, the other must also have been created with a signed integerVkFormat - If either of
srcImageordstImagewas created with an unsigned integerVkFormat, the other must also have been created with an unsigned integerVkFormat - If either of
srcImageordstImagewas created with a depth/stencil format, the other must have exactly the same format - If
srcImagewas created with a depth/stencil format,filtermust beFILTER_NEAREST - If
filterisFILTER_LINEAR,srcImagemust be of a format which supports linear filtering, as specified by theFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITflag inVkFormatProperties::linearTilingFeatures(for a linear image) orVkFormatProperties::optimalTilingFeatures(for an optimally tiled image) returned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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 ofVkImageBlitstructures specifying the regions to blitfilter- aVkFilterspecifying 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
pRegionsis copied from the specified region of the source buffer to the specified region of the destination image.Valid Usage
commandBuffermust be a validVkCommandBufferhandlesrcBuffermust be a validVkBufferhandledstImagemust be a validVkImagehandledstImageLayoutmust be a validVkImageLayoutvaluepRegionsmust be a pointer to an array ofregionCountvalidVkBufferImageCopystructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcBufferanddstImagemust have been created, allocated or retrieved from the sameVkDevice - The buffer region specified by a given element of
pRegionsmust be a region that is contained withinsrcBuffer - The image region specified by a given element of
pRegionsmust 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 srcBuffermust have been created withBUFFER_USAGE_TRANSFER_SRC_BITusage flagdstImagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagdstImagemust have a sample count equal toSAMPLE_COUNT_1_BITdstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aVkDevicedstImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL
Host Synchronization
- Host access to
commandBuffermust 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 ofVkBufferImageCopystructures 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
pRegionsis copied from the specified region of the source image to the specified region of the destination buffer.Valid Usage
commandBuffermust be a validVkCommandBufferhandlesrcImagemust be a validVkImagehandlesrcImageLayoutmust be a validVkImageLayoutvaluedstBuffermust be a validVkBufferhandlepRegionsmust be a pointer to an array ofregionCountvalidVkBufferImageCopystructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcImageanddstBuffermust have been created, allocated or retrieved from the sameVkDevice - The image region specified by a given element of
pRegionsmust be a region that is contained withinsrcImage - The buffer region specified by a given element of
pRegionsmust 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 srcImagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITusage flagsrcImagemust have a sample count equal toSAMPLE_COUNT_1_BITsrcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aVkDevicesrcImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERALdstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flag
Host Synchronization
- Host access to
commandBuffermust 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 ofVkBufferImageCopystructures 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.
vkCmdUpdateBufferis only allowed outside of a render pass. This command is treated as “transfer” operation, for the purposes of synchronization barriers. TheBUFFER_USAGE_TRANSFER_DST_BITmust be specified in usage ofVkBufferCreateInfoin order for the buffer to be compatible withvkCmdUpdateBuffer.Valid Usage
commandBuffermust be a validVkCommandBufferhandledstBuffermust be a validVkBufferhandlepDatamust be a pointer to an array ofdataSize / 4uint32_tvaluescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBufferanddstBuffermust have been created, allocated or retrieved from the sameVkDevice dataSizemust be greater than 0dstOffsetmust be less than the size ofdstBufferdataSizemust be less than or equal to the size ofdstBufferminusdstOffsetdstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flagdstOffsetmust be a multiple of 4dataSizemust be less than or equal to 65536dataSizemust be a multiple of 4
Host Synchronization
- Host access to
commandBuffermust 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 leastdataSizebytes 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.vkCmdFillBufferis treated as “transfer” operation for the purposes of synchronization barriers. TheBUFFER_USAGE_TRANSFER_DST_BITmust be specified in usage ofVkBufferCreateInfoin order for the buffer to be compatible withvkCmdFillBuffer.Valid Usage
commandBuffermust be a validVkCommandBufferhandledstBuffermust be a validVkBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBufferanddstBuffermust have been created, allocated or retrieved from the sameVkDevice dstOffsetmust be less than the size ofdstBufferdstOffsetmust be a multiple of 4- If
sizeis not equal toWHOLE_SIZE,sizemust be greater than 0 - If
sizeis not equal toWHOLE_SIZE,sizemust be less than or equal to the size ofdstBufferminusdstOffset - If
sizeis not equal toWHOLE_SIZE,sizemust be a multiple of 4 dstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flag
Host Synchronization
- Host access to
commandBuffermust 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_SIZEto fill the range from offset to the end of the buffer. IfWHOLE_SIZEis 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
pRangesis cleared to the value specified bypColor.Valid Usage
commandBuffermust be a validVkCommandBufferhandleimagemust be a validVkImagehandleimageLayoutmust be a validVkImageLayoutvaluepColormust be a pointer to a validVkClearColorValueunionpRangesmust be a pointer to an array ofrangeCountvalidVkImageSubresourceRangestructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
rangeCountmust be greater than 0- Each of
commandBufferandimagemust have been created, allocated or retrieved from the sameVkDevice imagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagimageLayoutmust specify the layout of the image subresource ranges ofimagespecified inpRangesat the time this command is executed on aVkDeviceimageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- The image range of any given element of
pRangesmust be an image subresource range that is contained withinimage imagemust not have a compressed or depth/stencil format
Host Synchronization
- Host access to
commandBuffermust 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_GENERALIMAGE_LAYOUT_TRANSFER_DST_OPTIMALpColor- a pointer to aVkClearColorValuestructure that contains the values the image subresource ranges will be cleared topRanges- points to an array ofVkImageSubresourceRangestructures that describe a range of mipmap levels, array layers, and aspects to be cleared. TheaspectMaskof 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
pRangesis cleared to the value specified bypColor.Valid Usage
commandBuffermust be a validVkCommandBufferhandleimagemust be a validVkImagehandleimageLayoutmust be a validVkImageLayoutvaluepColormust be a pointer to a validVkClearColorValueunionpRangesmust be a pointer to an array ofrangeCountvalidVkImageSubresourceRangestructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
rangeCountmust be greater than 0- Each of
commandBufferandimagemust have been created, allocated or retrieved from the sameVkDevice imagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagimageLayoutmust specify the layout of the image subresource ranges ofimagespecified inpRangesat the time this command is executed on aVkDeviceimageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- The image range of any given element of
pRangesmust be an image subresource range that is contained withinimage imagemust not have a compressed or depth/stencil format
Host Synchronization
- Host access to
commandBuffermust 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_GENERALIMAGE_LAYOUT_TRANSFER_DST_OPTIMALpColor- a pointer to aVkClearColorValuestructure 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
commandBuffermust be a validVkCommandBufferhandleimagemust be a validVkImagehandleimageLayoutmust be a validVkImageLayoutvaluepDepthStencilmust be a pointer to a validVkClearDepthStencilValuestructurepRangesmust be a pointer to an array ofrangeCountvalidVkImageSubresourceRangestructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
rangeCountmust be greater than 0- Each of
commandBufferandimagemust have been created, allocated or retrieved from the sameVkDevice imagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagimageLayoutmust specify the layout of the image subresource ranges ofimagespecified inpRangesat the time this command is executed on aVkDeviceimageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- The image range of any given element of
pRangesmust be an image subresource range that is contained withinimage imagemust have a depth/stencil format
Host Synchronization
- Host access to
commandBuffermust 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_GENERALIMAGE_LAYOUT_TRANSFER_DST_OPTIMALpDepthStencil- a pointer to aVkClearDepthStencilValuestructure that contains the values the depth and stencil image subresource ranges will be cleared topRanges- points to an array ofVkImageSubresourceRangestructures that describe a range of mipmap levels, array layers, and aspects to be cleared. TheaspectMaskof each image subresource range inpRangescan includeIMAGE_ASPECT_DEPTH_BITif the image format has a depth component, andIMAGE_ASPECT_STENCIL_BITif the image format has a stencil component.pDepthStencilis a pointer to aVkClearDepthStencilValuestructure 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
commandBuffermust be a validVkCommandBufferhandleimagemust be a validVkImagehandleimageLayoutmust be a validVkImageLayoutvaluepDepthStencilmust be a pointer to a validVkClearDepthStencilValuestructurepRangesmust be a pointer to an array ofrangeCountvalidVkImageSubresourceRangestructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
rangeCountmust be greater than 0- Each of
commandBufferandimagemust have been created, allocated or retrieved from the sameVkDevice imagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flagimageLayoutmust specify the layout of the image subresource ranges ofimagespecified inpRangesat the time this command is executed on aVkDeviceimageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- The image range of any given element of
pRangesmust be an image subresource range that is contained withinimage imagemust have a depth/stencil format
Host Synchronization
- Host access to
commandBuffermust 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_GENERALIMAGE_LAYOUT_TRANSFER_DST_OPTIMALpDepthStencil- a pointer to aVkClearDepthStencilValuestructure 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.vkCmdClearAttachmentscan 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
vkCmdClearAttachmentsand preceding or subsequent draw or attachment clear commands in the same subpass.The
vkCmdClearAttachmentscommand 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) ofVkAttachmentDescriptiontoATTACHMENT_LOAD_OP_CLEAR, as described forCreateRenderPass.Valid Usage
commandBuffermust be a validVkCommandBufferhandlepAttachmentsmust be a pointer to an array ofattachmentCountvalidVkClearAttachmentstructurespRectsmust be a pointer to an array ofrectCountVkClearRectstructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
attachmentCountmust be greater than 0rectCountmust be greater than 0- If the
aspectMaskmember of any given element ofpAttachmentscontainsIMAGE_ASPECT_COLOR_BIT, thecolorAttachmentmember of those elements must refer to a valid color attachment in the current subpass - The rectangular region specified by a given element of
pRectsmust be contained within the render area of the current render pass instance - The layers specified by a given element of
pRectsmust be contained within every attachment thatpAttachmentsrefers to
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer into which the command will be recordedpAttachments- a pointer to an array ofVkClearAttachmentstructures defining the attachments to clear and the clear values to usepRects- points to an array ofVkClearRectstructures 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
commandBuffermust be a validVkCommandBufferhandlesrcImagemust be a validVkImagehandlesrcImageLayoutmust be a validVkImageLayoutvaluedstImagemust be a validVkImagehandledstImageLayoutmust be a validVkImageLayoutvaluepRegionsmust be a pointer to an array ofregionCountvalidVkImageResolvestructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcImageanddstImagemust have been created, allocated or retrieved from the sameVkDevice - The source region specified by a given element of
pRegionsmust be a region that is contained withinsrcImage - The destination region specified by a given element of
pRegionsmust 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 srcImagemust have a sample count equal to any valid sample count value other thanSAMPLE_COUNT_1_BITdstImagemust have a sample count equal toSAMPLE_COUNT_1_BITsrcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aVkDevicesrcImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERALdstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aVkDevicedstImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- If
dstImagewas created withtilingequal toIMAGE_TILING_LINEAR,dstImagemust have been created with aformatthat supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BITflag inVkFormatProperties::linearTilingFeaturesreturned byGetPhysicalDeviceFormatProperties - If
dstImagewas created withtilingequal toIMAGE_TILING_OPTIMAL,dstImagemust have been created with aformatthat supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BITflag inVkFormatProperties::optimalTilingFeaturesreturned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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 ofVkImageResolvestructures 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
commandBuffermust be a validVkCommandBufferhandlesrcImagemust be a validVkImagehandlesrcImageLayoutmust be a validVkImageLayoutvaluedstImagemust be a validVkImagehandledstImageLayoutmust be a validVkImageLayoutvaluepRegionsmust be a pointer to an array ofregionCountvalidVkImageResolvestructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
regionCountmust be greater than 0- Each of
commandBuffer,srcImageanddstImagemust have been created, allocated or retrieved from the sameVkDevice - The source region specified by a given element of
pRegionsmust be a region that is contained withinsrcImage - The destination region specified by a given element of
pRegionsmust 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 srcImagemust have a sample count equal to any valid sample count value other thanSAMPLE_COUNT_1_BITdstImagemust have a sample count equal toSAMPLE_COUNT_1_BITsrcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aVkDevicesrcImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERALdstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aVkDevicedstImageLayoutmust be either ofIMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL- If
dstImagewas created withtilingequal toIMAGE_TILING_LINEAR,dstImagemust have been created with aformatthat supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BITflag inVkFormatProperties::linearTilingFeaturesreturned byGetPhysicalDeviceFormatProperties - If
dstImagewas created withtilingequal toIMAGE_TILING_OPTIMAL,dstImagemust have been created with aformatthat supports being a color attachment, as specified by theFORMAT_FEATURE_COLOR_ATTACHMENT_BITflag inVkFormatProperties::optimalTilingFeaturesreturned byGetPhysicalDeviceFormatProperties
Host Synchronization
- Host access to
commandBuffermust 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
stageMaskhave 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
commandBuffermust be a validVkCommandBufferhandleeventmust be a validVkEventhandlestageMaskmust be a valid combination ofVkPipelineStageFlagBitsvaluesstageMaskmust not be 0commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBufferandeventmust have been created, allocated or retrieved from the sameVkDevice - If the geometry shaders feature is not enabled,
stageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the tessellation shaders feature is not enabled,
stageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
Host Synchronization
- Host access to
commandBuffermust 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 ofeventis 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
stageMaskhave 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
commandBuffermust be a validVkCommandBufferhandleeventmust be a validVkEventhandlestageMaskmust be a valid combination ofVkPipelineStageFlagBitsvaluesstageMaskmust not be 0commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBufferandeventmust have been created, allocated or retrieved from the sameVkDevice - If the geometry shaders feature is not enabled,
stageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the tessellation shaders feature is not enabled,
stageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - When this command executes,
eventmust not be waited on by aCmdWaitEventscommand that is currently executing
Host Synchronization
- Host access to
commandBuffermust 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 ofeventis 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
commandBuffermust be a validVkCommandBufferhandlepEventsmust be a pointer to an array ofeventCountvalidVkEventhandlessrcStageMaskmust be a valid combination ofVkPipelineStageFlagBitsvaluessrcStageMaskmust not be 0dstStageMaskmust be a valid combination ofVkPipelineStageFlagBitsvaluesdstStageMaskmust not be 0- If
memoryBarrierCountis not 0,pMemoryBarriersmust be a pointer to an array ofmemoryBarrierCountvalidVkMemoryBarrierstructures - If
bufferMemoryBarrierCountis not 0,pBufferMemoryBarriersmust be a pointer to an array ofbufferMemoryBarrierCountvalidVkBufferMemoryBarrierstructures - If
imageMemoryBarrierCountis not 0,pImageMemoryBarriersmust be a pointer to an array ofimageMemoryBarrierCountvalidVkImageMemoryBarrierstructures commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations eventCountmust be greater than 0- Each of
commandBufferand the elements ofpEventsmust have been created, allocated or retrieved from the sameVkDevice srcStageMaskmust be the bitwise OR of thestageMaskparameter used in previous calls toCmdSetEventwith any of the members ofpEventsandPIPELINE_STAGE_HOST_BITif any of the members ofpEventswas set usingSetEvent- If the geometry shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the geometry shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the tessellation shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If the tessellation shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If
pEventsincludes one or more events that will be signaled bySetEventaftercommandBufferhas been submitted to a queue, thenCmdWaitEventsmust not be called inside a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
vkCmdWaitEventswaits for events set by eitherSetEventorCmdSetEventto become signaled. Logically, it has three phases:- Wait at the pipeline stages specified by
dstStageMaskuntil theeventCountevent objects specified bypEventsbecome 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,pBufferMemoryBarriersandpImageMemoryBarriers. - Resume execution of pipeline stages specified by
dstStageMask
Implementations may not execute commands in a pipelined manner, so
vkCmdWaitEventsmay not observe the results of a subsequentvkCmdSetEventorvkCmdResetEventcommand, even if the stages indstStageMaskoccur 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
vkCmdWaitEventscommand 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 ofmemoryBarrierCountVkMemoryBarrierstructurespBufferMemoryBarriers- a pointer to an array ofbufferMemoryBarrierCountVkBufferMemoryBarrierstructurespImageMemoryBarriers- a pointer to an array ofimageMemoryBarrierCountVkImageMemoryBarrierstructures
-
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,pBufferMemoryBarriersandpImageMemoryBarriersarrays 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
vkCmdPipelineBarrieris 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. IfvkCmdPipelineBarrieris 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
commandBuffermust be a validVkCommandBufferhandlesrcStageMaskmust be a valid combination ofVkPipelineStageFlagBitsvaluessrcStageMaskmust not be 0dstStageMaskmust be a valid combination ofVkPipelineStageFlagBitsvaluesdstStageMaskmust not be 0dependencyFlagsmust be a valid combination ofVkDependencyFlagBitsvalues- If
memoryBarrierCountis not 0,pMemoryBarriersmust be a pointer to an array ofmemoryBarrierCountvalidVkMemoryBarrierstructures - If
bufferMemoryBarrierCountis not 0,pBufferMemoryBarriersmust be a pointer to an array ofbufferMemoryBarrierCountvalidVkBufferMemoryBarrierstructures - If
imageMemoryBarrierCountis not 0,pImageMemoryBarriersmust be a pointer to an array ofimageMemoryBarrierCountvalidVkImageMemoryBarrierstructures commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations - If the geometry shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the geometry shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the tessellation shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If the tessellation shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - If
CmdPipelineBarrieris 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
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer into which the command is recordedsrcStageMask- a bitmask ofVkPipelineStageFlagBitsspecifying 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
srcStageMaskof the first set of commands completes before any work performed by the set of pipeline stages included indstStageMaskof 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_BITpMemoryBarriers- a pointer to an array ofVkMemoryBarrierstructurespBufferMemoryBarriers- a pointer to an array ofVkBufferMemoryBarrierstructurespImageMemoryBarriers- a pointer to an array ofVkImageMemoryBarrierstructures
-
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
vkCmdBeginQuerycommand and aCmdEndQuerycommand 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/orpipelineStatisticsmembers ofVkCommandBufferBeginInfoto 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
queryTypeof the pool isQUERY_TYPE_OCCLUSIONand flags containsQUERY_CONTROL_PRECISE_BIT, an implementation must return a result that matches the actual number of samples passed.Valid Usage
commandBuffermust be a validVkCommandBufferhandlequeryPoolmust be a validVkQueryPoolhandleflagsmust be a valid combination ofVkQueryControlFlagBitsvaluescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - Each of
commandBufferandqueryPoolmust have been created, allocated or retrieved from the sameVkDevice - The query identified by
queryPoolandquerymust currently not be active - The query identified by
queryPoolandquerymust be unavailable - If the precise occlusion queries feature is not enabled, or the
queryTypeused to createqueryPoolwas notQUERY_TYPE_OCCLUSION,flagsmust not containQUERY_CONTROL_PRECISE_BIT queryPoolmust have been created with aqueryTypethat differs from that of any other queries that have been made active, and are currently still active withincommandBufferquerymust be less than the number of queries inqueryPool- If the
queryTypeused to createqueryPoolwasQUERY_TYPE_OCCLUSION, theVkCommandPoolthatcommandBufferwas created from must support graphics operations - If the
queryTypeused to createqueryPoolwasQUERY_TYPE_PIPELINE_STATISTICSand any of thepipelineStatisticsindicate graphics operations, theVkCommandPoolthatcommandBufferwas created from must support graphics operations - If the
queryTypeused to createqueryPoolwasQUERY_TYPE_PIPELINE_STATISTICSand any of thepipelineStatisticsindicate compute operations, theVkCommandPoolthatcommandBufferwas created from must support compute operations
Host Synchronization
- Host access to
commandBuffermust 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
commandBuffermust be a validVkCommandBufferhandlequeryPoolmust be a validVkQueryPoolhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - Each of
commandBufferandqueryPoolmust have been created, allocated or retrieved from the sameVkDevice - The query identified by
queryPoolandquerymust currently be active querymust be less than the number of queries inqueryPool
Host Synchronization
- Host access to
commandBuffermust 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
GetQueryPoolResultsandCmdCopyQueryPoolResults, 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_BITis 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
pipelineStatisticswhen 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 − 1to unavailable.Valid Usage
commandBuffermust be a validVkCommandBufferhandlequeryPoolmust be a validVkQueryPoolhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBufferandqueryPoolmust have been created, allocated or retrieved from the sameVkDevice firstQuerymust be less than the number of queries inqueryPool- The sum of
firstQueryandqueryCountmust be less than or equal to the number of queries inqueryPool
Host Synchronization
- Host access to
commandBuffermust 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 useCmdBeginQueryorCmdEndQuery. The mechanism is built around a set of commands that allow the application to tell theVkPhysicalDeviceto 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::timestampValidBitsproperty of the queue on which the timestamp is written. Timestamps are supported on any queue which reports a non-zero value fortimestampValidBitsviaGetPhysicalDeviceQueueFamilyProperties. If thetimestampComputeAndGraphicslimit 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::timestampPeriodafter a call toGetPhysicalDeviceProperties.vkCmdWriteTimestamplatches 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.
CmdCopyQueryPoolResultscan 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 usingCmdResetQueryPoolbefore requesting the timestamp value be written to it.While
vkCmdWriteTimestampcan be called inside or outside of a render pass instance,CmdCopyQueryPoolResultsmust only be called outside of a render pass instance.Valid Usage
commandBuffermust be a validVkCommandBufferhandlepipelineStagemust be a validVkPipelineStageFlagBitsvaluequeryPoolmust be a validVkQueryPoolhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - Each of
commandBufferandqueryPoolmust have been created, allocated or retrieved from the sameVkDevice - The query identified by
queryPoolandquerymust beunavailable - The command pool's queue family must support a non-zero
timestampValidBits
Host Synchronization
- Host access to
commandBuffermust 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.vkCmdCopyQueryPoolResultsis guaranteed to see the effect of previous uses ofCmdResetQueryPoolin the same queue, without any additional synchronization. Thus, the results will always reflect the most recent use of the query.flagshas the same possible values described above for the flags parameter ofGetQueryPoolResults, but the different style of execution causes some subtle behavioral differences. BecausevkCmdCopyQueryPoolResultsexecutes 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_BITis set, the results are written as an array of 64-bit unsigned integer values as described forvkGetQueryPoolResults.If
QUERY_RESULT_WAIT_BITis 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_LOSTerror may occur.Similarly, if
QUERY_RESULT_WITH_AVAILABILITY_BITis set andQUERY_RESULT_WAIT_BITis 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_BITis set,QUERY_RESULT_WAIT_BITis 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_BITmust not be used if the pool’squeryTypeisQUERY_TYPE_TIMESTAMP.vkCmdCopyQueryPoolResultsis considered to be a transfer operation, and its writes to buffer memory must be synchronized usingPIPELINE_STAGE_TRANSFER_BITandACCESS_TRANSFER_WRITE_BITbefore using the results.Valid Usage
commandBuffermust be a validVkCommandBufferhandlequeryPoolmust be a validVkQueryPoolhandledstBuffermust be a validVkBufferhandleflagsmust be a valid combination ofVkQueryResultFlagBitsvaluescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations - This command must only be called outside of a render pass instance
- Each of
commandBuffer,queryPoolanddstBuffermust have been created, allocated or retrieved from the sameVkDevice dstOffsetmust be less than the size ofdstBufferfirstQuerymust be less than the number of queries inqueryPool- The sum of
firstQueryandqueryCountmust be less than or equal to the number of queries inqueryPool - If
QUERY_RESULT_64_BITis not set inflagsthendstOffsetandstridemust be multiples of 4 - If
QUERY_RESULT_64_BITis set inflagsthendstOffsetandstridemust be multiples of 8 dstBuffermust have enough storage, fromdstOffset, to contain the result of each query, as described heredstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flag- If the
queryTypeused to createqueryPoolwasQUERY_TYPE_TIMESTAMP,flagsmust not containQUERY_RESULT_PARTIAL_BIT
Host Synchronization
- Host access to
commandBuffermust 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.firstQueryandqueryCounttogether define a range of queriesdstBuffer- aVkBufferobject that will receive the results of the copy commanddstOffset- an offset intodstBufferstride- the stride in bytes between results for individual queries withindstBufferflags- a bitmask ofVkQueryResultFlagBitsspecifying how and when results are returned. One or more of:QUERY_RESULT_64_BITQUERY_RESULT_WAIT_BITQUERY_RESULT_WITH_AVAILABILITY_BITQUERY_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
commandBuffermust be a validVkCommandBufferhandlelayoutmust be a validVkPipelineLayouthandlestageFlagsmust be a valid combination ofVkShaderStageFlagBitsvaluesstageFlagsmust not be 0pValuesmust be a pointer to an array ofsizebytescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics or compute operations sizemust be greater than 0- Each of
commandBufferandlayoutmust have been created, allocated or retrieved from the sameVkDevice stageFlagsmust match exactly the shader stages used inlayoutfor the range specified byoffsetandsizeoffsetmust be a multiple of 4sizemust be a multiple of 4offsetmust be less thanVkPhysicalDeviceLimits::maxPushConstantsSizesizemust be less than or equal toVkPhysicalDeviceLimits::maxPushConstantsSizeminusoffset
Host Synchronization
- Host access to
commandBuffermust 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 ofVkShaderStageFlagBitsspecifying 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 ofsizebytes 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
commandBuffermust be a validVkCommandBufferhandlepRenderPassBeginmust be a pointer to a validVkRenderPassBeginInfostructurecontentsmust be a validVkSubpassContentsvaluecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
commandBuffermust be a primaryVkCommandBuffer- If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthen the corresponding attachment image of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created withIMAGE_USAGE_COLOR_ATTACHMENT_BITset - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMALorIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthen the corresponding attachment image of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created withIMAGE_USAGE_SAMPLED_BITorIMAGE_USAGE_INPUT_ATTACHMENT_BITset - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthen the corresponding attachment image of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created withIMAGE_USAGE_TRANSFER_SRC_BITset - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_TRANSFER_DST_OPTIMALthen the corresponding attachment image of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created withIMAGE_USAGE_TRANSFER_DST_BITset
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Parameters:
commandBuffer- the command buffer in which to record the commandpRenderPassBegin- a pointer to aVkRenderPassBeginInfostructure 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_INLINESUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
-
vkCmdNextSubpass
public static void vkCmdNextSubpass(VkCommandBuffer commandBuffer, int contents)
Transitions to the next subpass of a render pass.Valid Usage
commandBuffermust be a validVkCommandBufferhandlecontentsmust be a validVkSubpassContentsvaluecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
commandBuffermust 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
commandBuffermust be externally synchronized
The subpass index for a render pass begins at zero when
CmdBeginRenderPassis recorded, and increments each timevkCmdNextSubpassis 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_BITpipeline 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_INLINESUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
-
vkCmdEndRenderPass
public static void vkCmdEndRenderPass(VkCommandBuffer commandBuffer)
Ends a render pass instance.Valid Usage
commandBuffermust be a validVkCommandBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
commandBuffermust 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
commandBuffermust 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
commandBuffermust be a validVkCommandBufferhandlepCommandBuffersmust be a pointer to an array ofcommandBufferCountvalidVkCommandBufferhandlescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations commandBuffermust be a primaryVkCommandBuffercommandBufferCountmust be greater than 0- Each of
commandBufferand the elements ofpCommandBuffersmust have been created, allocated or retrieved from the sameVkDevice commandBuffermust have been created with alevelofCOMMAND_BUFFER_LEVEL_PRIMARY- Any given element of
pCommandBuffersmust have been created with alevelofCOMMAND_BUFFER_LEVEL_SECONDARY - Any given element of
pCommandBuffersmust not be already pending execution incommandBuffer, or appear twice inpCommandBuffers, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITflag - Any given element of
pCommandBuffersmust not be already pending execution in any otherVkCommandBuffer, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITflag - Any given element of
pCommandBuffersmust be in the executable state - If
CmdExecuteCommandsis being called within a render pass instance, that render pass instance must have been begun with thecontentsparameter ofCmdBeginRenderPassset toSUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - If
CmdExecuteCommandsis being called within a render pass instance, any given element ofpCommandBuffersmust have been recorded with theCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT - If
CmdExecuteCommandsis being called within a render pass instance, any given element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::subpassset to the index of the subpass which the given command buffer will be executed in - If
CmdExecuteCommandsis being called within a render pass instance, any given element ofpCommandBuffersmust have been recorded with a render pass that is compatible with the current render pass - If
CmdExecuteCommandsis being called within a render pass instance, and any given element ofpCommandBufferswas recorded withVkCommandBufferInheritanceInfo::framebuffernot equal toNULL_HANDLE, thatVkFramebuffermust be compatible with theVkFramebufferused in the current render pass instance - If the inherited queries feature is not enabled,
commandBuffermust not have any queries active - If
commandBufferhas aQUERY_TYPE_OCCLUSIONquery active, then each element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::occlusionQueryEnableset toTRUE - If
commandBufferhas aQUERY_TYPE_OCCLUSIONquery active, then each element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::queryFlagshaving all bits set that are set for the query - If
commandBufferhas aQUERY_TYPE_PIPELINE_STATISTICSquery active, then each element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::pipelineStatisticshaving all bits set that are set in theVkQueryPoolthe query uses - Any given element of
pCommandBuffersmust not begin any query types that are active incommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
Once
vkCmdExecuteCommandshas been called, any prior executions of the secondary command buffers specified bypCommandBuffersin 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
commandBuffermust be a validVkCommandBufferhandlepCommandBuffersmust be a pointer to an array ofcommandBufferCountvalidVkCommandBufferhandlescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support transfer, graphics or compute operations commandBuffermust be a primaryVkCommandBuffercommandBufferCountmust be greater than 0- Each of
commandBufferand the elements ofpCommandBuffersmust have been created, allocated or retrieved from the sameVkDevice commandBuffermust have been created with alevelofCOMMAND_BUFFER_LEVEL_PRIMARY- Any given element of
pCommandBuffersmust have been created with alevelofCOMMAND_BUFFER_LEVEL_SECONDARY - Any given element of
pCommandBuffersmust not be already pending execution incommandBuffer, or appear twice inpCommandBuffers, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITflag - Any given element of
pCommandBuffersmust not be already pending execution in any otherVkCommandBuffer, unless it was created with theCOMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITflag - Any given element of
pCommandBuffersmust be in the executable state - If
CmdExecuteCommandsis being called within a render pass instance, that render pass instance must have been begun with thecontentsparameter ofCmdBeginRenderPassset toSUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - If
CmdExecuteCommandsis being called within a render pass instance, any given element ofpCommandBuffersmust have been recorded with theCOMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT - If
CmdExecuteCommandsis being called within a render pass instance, any given element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::subpassset to the index of the subpass which the given command buffer will be executed in - If
CmdExecuteCommandsis being called within a render pass instance, any given element ofpCommandBuffersmust have been recorded with a render pass that is compatible with the current render pass - If
CmdExecuteCommandsis being called within a render pass instance, and any given element ofpCommandBufferswas recorded withVkCommandBufferInheritanceInfo::framebuffernot equal toNULL_HANDLE, thatVkFramebuffermust be compatible with theVkFramebufferused in the current render pass instance - If the inherited queries feature is not enabled,
commandBuffermust not have any queries active - If
commandBufferhas aQUERY_TYPE_OCCLUSIONquery active, then each element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::occlusionQueryEnableset toTRUE - If
commandBufferhas aQUERY_TYPE_OCCLUSIONquery active, then each element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::queryFlagshaving all bits set that are set for the query - If
commandBufferhas aQUERY_TYPE_PIPELINE_STATISTICSquery active, then each element ofpCommandBuffersmust have been recorded withVkCommandBufferInheritanceInfo::pipelineStatisticshaving all bits set that are set in theVkQueryPoolthe query uses - Any given element of
pCommandBuffersmust not begin any query types that are active incommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
Once
vkCmdExecuteCommandshas been called, any prior executions of the secondary command buffers specified bypCommandBuffersin 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
-
-