HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Core10.Pass

  • 23 types
  • 7 values
  • Packagevulkan-3.27
  • Exports93
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourcePass.hs
valuecreateFramebuffer
  1. :: (Extendss FramebufferCreateInfo a, PokeChain a, MonadIO io)
  2. => Device

    device is the logical device that creates the framebuffer.

  3. -> FramebufferCreateInfo a

    pCreateInfo is a pointer to a FramebufferCreateInfo structure describing additional information about framebuffer creation.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io Framebuffer
#

vkCreateFramebuffer - Create a new framebuffer object

Valid Usage

  • If pCreateInfo->flags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pCreateInfo must be a valid pointer to a valid FramebufferCreateInfo structure

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • pFramebuffer must be a valid pointer to a Framebuffer handle

  • The device must have been created with at least 1 queue

Return Codes

Success
Failure

See Also

VK_VERSION_1_0, AllocationCallbacks, Device, Framebuffer, FramebufferCreateInfo

A convenience wrapper to make a compatible pair of calls to createFramebuffer and destroyFramebuffer

To ensure that destroyFramebuffer is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

valuedestroyFramebuffer
  1. :: MonadIO io
  2. => Device

    device is the logical device that destroys the framebuffer.

  3. -> Framebuffer

    framebuffer is the handle of the framebuffer to destroy.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io ()
#

vkDestroyFramebuffer - Destroy a framebuffer object

Valid Usage

  • All submitted commands that refer to framebuffer must have completed execution

  • If AllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here

  • If no AllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL

Valid Usage (Implicit)

  • device must be a valid Device handle

  • If framebuffer is not NULL_HANDLE, framebuffer must be a valid Framebuffer handle

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • If framebuffer is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to framebuffer must be externally synchronized

See Also

VK_VERSION_1_0, AllocationCallbacks, Device, Framebuffer

valuecreateRenderPass
  1. :: (Extendss RenderPassCreateInfo a, PokeChain a, MonadIO io)
  2. => Device

    device is the logical device that creates the render pass.

  3. -> RenderPassCreateInfo a

    pCreateInfo is a pointer to a RenderPassCreateInfo structure describing the parameters of the render pass.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io RenderPass
#

vkCreateRenderPass - Create a new render pass object

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_VERSION_1_0, AllocationCallbacks, Device, RenderPass, RenderPassCreateInfo

A convenience wrapper to make a compatible pair of calls to createRenderPass and destroyRenderPass

To ensure that destroyRenderPass is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

valuedestroyRenderPass
  1. :: MonadIO io
  2. => Device

    device is the logical device that destroys the render pass.

  3. -> RenderPass

    renderPass is the handle of the render pass to destroy.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io ()
#

vkDestroyRenderPass - Destroy a render pass object

Valid Usage

  • All submitted commands that refer to renderPass must have completed execution

  • If AllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here

  • If no AllocationCallbacks were provided when renderPass was created, pAllocator must be NULL

Valid Usage (Implicit)

  • device must be a valid Device handle

  • If renderPass is not NULL_HANDLE, renderPass must be a valid RenderPass handle

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • If renderPass is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to renderPass must be externally synchronized

See Also

VK_VERSION_1_0, AllocationCallbacks, Device, RenderPass

valuegetRenderAreaGranularity
  1. :: MonadIO io
  2. => Device

    device is the logical device that owns the render pass.

  3. -> RenderPass

    renderPass is a handle to a render pass.

  4. -> io ("granularity" ::: Extent2D)
#

vkGetRenderAreaGranularity - Returns the granularity for optimal render area

Description

The conditions leading to an optimal renderArea are:

  • the offset.x member in renderArea is a multiple of the width member of the returned Extent2D (the horizontal granularity).

  • the offset.y member in renderArea is a multiple of the height member of the returned Extent2D (the vertical granularity).

  • either the extent.width member in renderArea is a multiple of the horizontal granularity or offset.x+extent.width is equal to the width of the framebuffer in the RenderPassBeginInfo.

  • either the extent.height member in renderArea is a multiple of the vertical granularity or offset.y+extent.height is equal to the height of the framebuffer in the RenderPassBeginInfo.

Subpass dependencies are not affected by the render area, and apply to the entire image subresources attached to the framebuffer as specified in the description of automatic layout transitions. Similarly, pipeline barriers are valid even if their effect extends outside the render area.

Valid Usage (Implicit)

  • device must be a valid Device handle

  • renderPass must be a valid RenderPass handle

  • pGranularity must be a valid pointer to a Extent2D structure

  • renderPass must have been created, allocated, or retrieved from device

See Also

VK_VERSION_1_0, Device, Extent2D, RenderPass

VkAttachmentDescription - Structure specifying an attachment description

Description

If the attachment uses a color format, then loadOp and storeOp are used, and stencilLoadOp and stencilStoreOp are ignored. If the format has depth and/or stencil components, loadOp and storeOp apply only to the depth data, while stencilLoadOp and stencilStoreOp define how the stencil data is handled. loadOp and stencilLoadOp define the load operations for the attachment. storeOp and stencilStoreOp define the store operations for the attachment. If an attachment is not used by any subpass, loadOp, storeOp, stencilStoreOp, and stencilLoadOp will be ignored for that attachment, and no load or store ops will be performed. However, any transition specified by initialLayout and finalLayout will still be executed.

If flags includes ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT, 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 the loadOp) such that it is not improperly reordered against other uses of the same physical memory via a different attachment. This is described in more detail below.

If a render pass uses multiple attachments that alias the same device memory, those attachments must each include the ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT bit in their attachment description flags. Attachments aliasing the same memory occurs in multiple ways:

  • Multiple attachments being assigned the same image view as part of framebuffer creation.

  • Attachments using distinct image views that correspond to the same image subresource of an image.

  • Attachments using views of distinct image subresources which are bound to overlapping memory ranges.

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. These dependencies must not include the DEPENDENCY_BY_REGION_BIT if the aliases are views of distinct image subresources which overlap in memory.

Multiple attachments that alias the same memory must not be used in a single subpass. A given attachment index must not be used multiple times in a single subpass, with one exception: two subpass attachments can use the same attachment index if at least one use is as an input attachment and neither use is as a resolve or preserve attachment. In other words, the same view can be used simultaneously as an input and color or depth/stencil attachment, but must not be used as multiple color or depth/stencil attachments nor as resolve or preserve attachments.

If a set of attachments alias each other, then all except the first to be used in the render pass must use an initialLayout of IMAGE_LAYOUT_UNDEFINED, since the earlier uses of the other aliases make their contents undefined. Once an alias has been used and a different alias has been used after it, the first alias must not be used in any later subpasses. However, an application can assign the same image view to multiple aliasing attachment indices, which allows that image view to be used multiple times even if other aliases are used in between.

Once an attachment needs the ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT bit, there should be no additional cost of introducing additional aliases, and using these additional aliases may allow more efficient clearing of the attachments on multiple uses via ATTACHMENT_LOAD_OP_CLEAR.

Valid Usage

Valid Usage (Implicit)

See Also

VK_VERSION_1_0, AttachmentDescriptionFlags, AttachmentLoadOp, AttachmentStoreOp, Format, ImageLayout, RenderPassCreateInfo, SampleCountFlagBits

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata AttachmentReference
#

VkAttachmentReference - Structure specifying an attachment reference

Valid Usage

Valid Usage (Implicit)

See Also

VK_VERSION_1_0, ImageLayout, RenderPassFragmentDensityMapCreateInfoEXT, SubpassDescription

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata SubpassDescription
#

VkSubpassDescription - Structure specifying a subpass description

Description

Each element of the pInputAttachments array corresponds to an input attachment index in a fragment shader, i.e. if a shader declares an image variable decorated with a InputAttachmentIndex value of X, then it uses the attachment provided in pInputAttachments[X]. Input attachments must also be bound to the pipeline in a descriptor set. If the attachment member of any element of pInputAttachments is ATTACHMENT_UNUSED, the application must not read from the corresponding input attachment index. Fragment shaders can use subpass input variables to access the contents of an input attachment at the fragment’s (xf,yf) framebuffer coordinates and layer. Input attachments must not be used by any subpasses within a render pass that enables render pass transform.

Each element of the pColorAttachments array corresponds to an output location in the shader, i.e. if the shader declares an output variable decorated with a Location value of X, then it uses the attachment provided in pColorAttachments[X]. If the attachment member of any element of pColorAttachments is ATTACHMENT_UNUSED, or if Color Write Enable has been disabled for the corresponding attachment index, then writes to the corresponding location by a fragment shader are discarded.

If flags does not include SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT, and if pResolveAttachments is not NULL, each of its elements corresponds to a color attachment (the element in pColorAttachments at the same index), and a multisample resolve operation is defined for each attachment unless the resolve attachment index is ATTACHMENT_UNUSED.

Similarly, if flags does not include SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT, and SubpassDescriptionDepthStencilResolve::pDepthStencilResolveAttachment is not NULL and does not have the value ATTACHMENT_UNUSED, it corresponds to the depth/stencil attachment in pDepthStencilAttachment, and multisample resolve operation for depth and stencil are defined by SubpassDescriptionDepthStencilResolve::depthResolveMode and SubpassDescriptionDepthStencilResolve::stencilResolveMode, respectively. If SubpassDescriptionDepthStencilResolve::depthResolveMode is RESOLVE_MODE_NONE or the pDepthStencilResolveAttachment does not have a depth aspect, no resolve operation is performed for the depth attachment. If SubpassDescriptionDepthStencilResolve::stencilResolveMode is RESOLVE_MODE_NONE or the pDepthStencilResolveAttachment does not have a stencil aspect, no resolve operation is performed for the stencil attachment.

If the image subresource range referenced by the depth/stencil attachment is created with IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, then the multisample resolve operation uses the sample locations state specified in the sampleLocationsInfo member of the element of the RenderPassSampleLocationsBeginInfoEXT::pPostSubpassSampleLocations for the subpass.

If pDepthStencilAttachment is NULL, or if its attachment index is ATTACHMENT_UNUSED, it indicates that no depth/stencil attachment will be used in the subpass.

Following this call, if the customResolve feature is enabled the fragment area may be reduced to (1,1) if a fragment density map is attached to the render pass. If this occurs, reads of input attachments may return the value for the original larger fragment containing the smaller fragment or use the new fragment area.

The contents of an attachment within the render area become undefined at the start of a subpass S if all of the following conditions are true:

  • The attachment is used as a color, depth/stencil, or resolve attachment in any subpass in the render pass.

  • There is a subpass S1 that uses or preserves the attachment, and a subpass dependency from S1 to S.

  • The attachment is not used or preserved in subpass S.

In addition, the contents of an attachment within the render area become undefined at the start of a subpass S if all of the following conditions are true:

For color attachments, this operation will be performed in the PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT pipeline stage, with any image accesses performed via ACCESS_INPUT_ATTACHMENT_READ_BIT, ACCESS_COLOR_ATTACHMENT_READ_BIT, and ACCESS_COLOR_ATTACHMENT_WRITE_BIT. For depth/stencil attachments, this operation may be performed in either the PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT or PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT pipeline stage, with any image accesses performed via ACCESS_INPUT_ATTACHMENT_READ_BIT, ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, and ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT.

Once the contents of an attachment become undefined in subpass S, they remain undefined for subpasses in subpass dependency chains starting with subpass S until they are written again. However, they remain valid for subpasses in other subpass dependency chains starting with subpass S1 if all subpasses in each chain use or preserve the attachment.

If a subpass has multiple dependency chains where some of the chains preserve the attachment, and others do not, the contents of the attachment are undefined for that subpass.

Valid Usage

Valid Usage (Implicit)

  • pipelineBindPoint must be a valid PipelineBindPoint value

  • If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid AttachmentReference structures

  • If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid AttachmentReference structures

  • If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid AttachmentReference structures

  • If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid AttachmentReference structure

  • If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values

See Also

VK_VERSION_1_0, AttachmentReference, PipelineBindPoint, RenderPassCreateInfo, SubpassDescriptionFlags

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero
datadata SubpassDependency
#

VkSubpassDependency - Structure specifying a subpass dependency

Description

If srcSubpass is equal to dstSubpass then the SubpassDependency does not directly define a dependency. Instead, it enables pipeline barriers to be used in a render pass instance within the identified subpass, where the scopes of one pipeline barrier must be a subset of those described by one subpass dependency. Subpass dependencies specified in this way that include framebuffer-space stages in the srcStageMask must only include framebuffer-space stages in dstStageMask, and must include DEPENDENCY_BY_REGION_BIT. When a subpass dependency is specified in this way for a subpass that has more than one view in its view mask, its dependencyFlags must include DEPENDENCY_VIEW_LOCAL_BIT.

If srcSubpass and dstSubpass are not equal, when a render pass instance which includes a subpass dependency is submitted to a queue, it defines a dependency between the subpasses identified by srcSubpass and dstSubpass.

If srcSubpass is equal to SUBPASS_EXTERNAL, the first synchronization scope includes commands that occur earlier in submission order than the cmdBeginRenderPass used to begin the render pass instance. Otherwise, the first set of commands includes all commands submitted as part of the subpass instance identified by srcSubpass and any load, store, or multisample resolve operations on attachments used in srcSubpass. In either case, the first synchronization scope is limited to operations on the pipeline stages determined by the source stage mask specified by srcStageMask.

If dstSubpass is equal to SUBPASS_EXTERNAL, the second synchronization scope includes commands that occur later in submission order than the cmdEndRenderPass used to end the render pass instance. Otherwise, the second set of commands includes all commands submitted as part of the subpass instance identified by dstSubpass and any load, store, and multisample resolve operations on attachments used in dstSubpass. In either case, the second synchronization scope is limited to operations on the pipeline stages determined by the destination stage mask specified by dstStageMask.

The first access scope is limited to accesses in the pipeline stages determined by the source stage mask specified by srcStageMask. It is also limited to access types in the source access mask specified by srcAccessMask.

The second access scope is limited to accesses in the pipeline stages determined by the destination stage mask specified by dstStageMask. It is also limited to access types in the destination access mask specified by dstAccessMask.

The availability and visibility operations defined by a subpass dependency affect the execution of image layout transitions within the render pass.

For non-attachment resources, the memory dependency expressed by subpass dependency is nearly identical to that of a MemoryBarrier (with matching srcAccessMask and dstAccessMask parameters) submitted as a part of a cmdPipelineBarrier (with matching srcStageMask and dstStageMask parameters). The only difference being that its scopes are limited to the identified subpasses rather than potentially affecting everything before and after.

For attachments however, subpass dependencies work more like a ImageMemoryBarrier defined similarly to the MemoryBarrier above, the queue family indices set to QUEUE_FAMILY_IGNORED, and layouts as follows:

  • The equivalent to oldLayout is the attachment’s layout according to the subpass description for srcSubpass.

  • The equivalent to newLayout is the attachment’s layout according to the subpass description for dstSubpass.

Valid Usage

Valid Usage (Implicit)

See Also

VK_VERSION_1_0, AccessFlags, DependencyFlags, PipelineStageFlags, RenderPassCreateInfo

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata RenderPassCreateInfo (es :: [Type])
#

VkRenderPassCreateInfo - Structure specifying parameters of a newly created render pass

Description

Care should be taken to avoid a data race here; if any subpasses access attachments with overlapping memory locations, and one of those accesses is a write, a subpass dependency needs to be included between them.

Valid Usage

  • If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not ATTACHMENT_UNUSED, then it must be less than attachmentCount

Valid Usage (Implicit)

See Also

VK_VERSION_1_0, AttachmentDescription, RenderPassCreateFlags, StructureType, SubpassDependency, SubpassDescription, createRenderPass

Constructors

Instances5Extensible, Show, FromCStruct, ToCStruct, Zero
datadata FramebufferCreateInfo (es :: [Type])
#

VkFramebufferCreateInfo - Structure specifying parameters of a newly created framebuffer

Description

For any depth/stencil attachments used by this framebuffer in pAttachments, or set later through RenderPassAttachmentBeginInfoKHR::pAttachments, the aspectMask is ignored.

It is legal for a subpass to use no color or depth/stencil attachments, either because it has no attachment references or because all of them are ATTACHMENT_UNUSED. This kind of subpass can use shader side effects such as image stores and atomics to produce an output. In this case, the subpass continues to use the width, height, and layers of the framebuffer to define the dimensions of the rendering area, and the rasterizationSamples from each pipeline’s PipelineMultisampleStateCreateInfo to define the number of samples used in rasterization; however, if PhysicalDeviceFeatures::variableMultisampleRate is FALSE, then all pipelines to be bound with the subpass must have the same value for PipelineMultisampleStateCreateInfo::rasterizationSamples. In all such cases, rasterizationSamples must be a valid SampleCountFlagBits value that is set in PhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts.

Valid Usage

  • attachmentCount must be equal to the attachment count specified in renderPass

Valid Usage (Implicit)

  • pNext must be NULL or a pointer to a valid instance of FramebufferAttachmentsCreateInfo

  • The sType value of each structure in the pNext chain must be unique

  • flags must be a valid combination of FramebufferCreateFlagBits values

  • renderPass must be a valid RenderPass handle

  • Both of renderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

See Also

VK_VERSION_1_0, FramebufferCreateFlags, ImageView, RenderPass, StructureType, createFramebuffer

Constructors

Instances5Extensible, Show, FromCStruct, ToCStruct, Zero
newtypenewtype Framebuffer
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …
newtypenewtype RenderPass
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …
newtypenewtype AttachmentLoadOp
#

VkAttachmentLoadOp - Specify how contents of an attachment are treated at the beginning of the subpass where it is first used

Description

See Also

VK_VERSION_1_0, AttachmentDescription, AttachmentDescription2, RenderingAttachmentInfo

Instances6Eq, Ord, Read, Show, Storable, Zero
newtypenewtype AttachmentStoreOp
#

VkAttachmentStoreOp - Specify how contents of an attachment are treated at the end of the subpass where it is last used

Description

ATTACHMENT_STORE_OP_DONT_CARE can cause contents generated during previous render passes to be discarded before reaching memory, even if no write to the attachment occurs during the current render pass.

See Also

VK_VERSION_1_0, AttachmentDescription, AttachmentDescription2, RenderingAttachmentInfo

Instances6Eq, Ord, Read, Show, Storable, Zero
newtypenewtype PipelineBindPoint
#
Instances6Eq, Ord, Read, Show, Storable, Zero
newtypenewtype RenderPassCreateFlagBits
#

VkRenderPassCreateFlagBits - Bitmask specifying additional properties of a render pass

Description

See Also

VK_VERSION_1_0, RenderPassCreateFlags

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype AccessFlagBits
#

VkAccessFlagBits - Bitmask specifying memory access types that will participate in a memory dependency

Description

These values all have the same meaning as the equivalently named values for AccessFlags2.

Certain access types are only performed by a subset of pipeline stages. Any synchronization command that takes both stage masks and access masks uses both to define the access scopes - only the specified access types performed by the specified stages are included in the access scope. An application must not specify an access flag in a synchronization command if it does not include a pipeline stage in the corresponding stage mask that is able to perform accesses of that type. The following table lists, for each access flag, which pipeline stages can perform that type of access.

Access flag

Supported pipeline stages

ACCESS_2_NONE

,

ACCESS_NONE

Any

ACCESS_2_INDIRECT_COMMAND_READ_BIT

,

ACCESS_INDIRECT_COMMAND_READ_BIT

PIPELINE_STAGE_2_DRAW_INDIRECT_BIT

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

,

PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR

ACCESS_2_INDEX_READ_BIT

,

ACCESS_INDEX_READ_BIT

PIPELINE_STAGE_2_VERTEX_INPUT_BIT

,

PIPELINE_STAGE_2_INDEX_INPUT_BIT

ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT

,

ACCESS_VERTEX_ATTRIBUTE_READ_BIT

PIPELINE_STAGE_2_VERTEX_INPUT_BIT

,

PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT

ACCESS_2_UNIFORM_READ_BIT

,

ACCESS_UNIFORM_READ_BIT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_INPUT_ATTACHMENT_READ_BIT

,

ACCESS_INPUT_ATTACHMENT_READ_BIT

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

ACCESS_2_SHADER_READ_BIT

,

ACCESS_SHADER_READ_BIT

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

,

PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

,

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_SHADER_WRITE_BIT

,

ACCESS_SHADER_WRITE_BIT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_COLOR_ATTACHMENT_READ_BIT

,

ACCESS_COLOR_ATTACHMENT_READ_BIT

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT

ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT

,

ACCESS_COLOR_ATTACHMENT_WRITE_BIT

PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT

ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT

,

ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT

,

PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT

ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT

,

ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT

PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT

,

PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT

ACCESS_2_TRANSFER_READ_BIT

,

ACCESS_TRANSFER_READ_BIT

PIPELINE_STAGE_2_ALL_TRANSFER_BIT

,

PIPELINE_STAGE_2_COPY_BIT

,

PIPELINE_STAGE_2_RESOLVE_BIT

,

PIPELINE_STAGE_2_BLIT_BIT

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR

,

PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

,

PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV

ACCESS_2_TRANSFER_WRITE_BIT

,

ACCESS_TRANSFER_WRITE_BIT

PIPELINE_STAGE_2_ALL_TRANSFER_BIT

,

PIPELINE_STAGE_2_COPY_BIT

,

PIPELINE_STAGE_2_RESOLVE_BIT

,

PIPELINE_STAGE_2_BLIT_BIT

,

PIPELINE_STAGE_2_CLEAR_BIT

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR

,

PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

,

PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV

ACCESS_2_HOST_READ_BIT

,

ACCESS_HOST_READ_BIT

PIPELINE_STAGE_2_HOST_BIT

ACCESS_2_HOST_WRITE_BIT

,

ACCESS_HOST_WRITE_BIT

PIPELINE_STAGE_2_HOST_BIT

ACCESS_2_MEMORY_READ_BIT

,

ACCESS_MEMORY_READ_BIT

Any

ACCESS_2_MEMORY_WRITE_BIT

,

ACCESS_MEMORY_WRITE_BIT

Any

ACCESS_2_SHADER_SAMPLED_READ_BIT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_SHADER_STORAGE_READ_BIT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_SHADER_STORAGE_WRITE_BIT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR

VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR

VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR

VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR

VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR

VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR

VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR

VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR

ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT

,

ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT

PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT

ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT

,

ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT

PIPELINE_STAGE_2_DRAW_INDIRECT_BIT

,

PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT

ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT

,

ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT

PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT

ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT

,

ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT

PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT

ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT

,

ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT

PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT

ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT

,

ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT

PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT

ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT

PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT

ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT

PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT

ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR

,

ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR

PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR

ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR

,

ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR

,

ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR

ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT

,

ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT

PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT

ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT

,

ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT

PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT

ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI

PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI

ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_MICROMAP_READ_BIT_EXT

PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

,

PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

ACCESS_2_MICROMAP_WRITE_BIT_EXT

PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

ACCESS_2_OPTICAL_FLOW_READ_BIT_NV

PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV

ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV

PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV

ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

ACCESS_2_DATA_GRAPH_READ_BIT_ARM

PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM

ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM

PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM

ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

ACCESS_2_RESOURCE_HEAP_READ_BIT_EXT

PIPELINE_STAGE_2_VERTEX_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

,

PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

,

PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

,

PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

,

PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

,

PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

,

PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

,

PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

,

PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

Supported Access Types

See Also

VK_VERSION_1_0, AccessFlags

Constructors

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype AttachmentDescriptionFlagBits
#

VkAttachmentDescriptionFlagBits - Bitmask specifying additional properties of an attachment

Description

See Also

VK_VERSION_1_0, AttachmentDescriptionFlags

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype DependencyFlagBits
#

VkDependencyFlagBits - Bitmask specifying how execution and memory dependencies are formed

Description

See Also

VK_VERSION_1_0, DependencyFlags

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype SubpassDescriptionFlagBits
#

VkSubpassDescriptionFlagBits - Bitmask specifying usage of a subpass

Description

Shader resolve operations allow for custom resolve operations, but overdrawing pixels may have a performance and/or power cost. Furthermore, since the content of any depth stencil attachment or color attachment is undefined at the beginning of a shader resolve subpass, any depth testing, stencil testing, or blending operation which sources these undefined values also has undefined result value.

There is no equivalent to SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT, SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, or SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT for render pass instances begun with cmdBeginRendering. For such render passes, only the corresponding pipeline flags are specified.

See Also

VK_VERSION_1_0, SubpassDescriptionFlags

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype FramebufferCreateFlagBits
#

VkFramebufferCreateFlagBits - Bitmask specifying framebuffer properties

Description

See Also

VK_VERSION_1_0, FramebufferCreateFlags

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …