vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Core10.Enums.ImageLayout

Synopsis

Documentation

newtype ImageLayout Source #

VkImageLayout - Layout of image and image subresources

Description

The type(s) of device access supported by each layout are:

The layout of each image subresource is not a state of the image subresource itself, but is rather a property of how the data in memory is organized, and thus for each mechanism of accessing an image in the API the application must specify a parameter or structure member that indicates which image layout the image subresource(s) are considered to be in when the image will be accessed. For transfer commands, this is a parameter to the command (see https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears and https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies). For use as a framebuffer attachment, this is a member in the substructures of the RenderPassCreateInfo (see Render Pass). For use in a descriptor set, this is a member in the DescriptorImageInfo structure (see https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates).

See Also

VK_VERSION_1_0, AttachmentDescription, AttachmentDescription2, AttachmentDescriptionStencilLayout, AttachmentReference, AttachmentReference2, AttachmentReferenceStencilLayout, BlitImageInfo2, CopyBufferToImageInfo2, CopyImageInfo2, CopyImageToBufferInfo2, CopyImageToImageInfoEXT, CopyImageToMemoryInfoEXT, CopyMemoryToImageInfoEXT, DescriptorImageInfo, HostImageLayoutTransitionInfoEXT, ImageCreateInfo, ImageMemoryBarrier, ImageMemoryBarrier2, PhysicalDeviceHostImageCopyPropertiesEXT, RenderingAttachmentInfo, RenderingFragmentDensityMapAttachmentInfoEXT, RenderingFragmentShadingRateAttachmentInfoKHR, ResolveImageInfo2, bindOpticalFlowSessionImageNV, cmdBindInvocationMaskHUAWEI, cmdBindShadingRateImageNV, cmdBlitImage, cmdClearColorImage, cmdClearDepthStencilImage, cmdCopyBufferToImage, cmdCopyImage, cmdCopyImageToBuffer, cmdCopyMemoryToImageIndirectNV, cmdResolveImage

Constructors

ImageLayout Int32 

Bundled Patterns

pattern IMAGE_LAYOUT_UNDEFINED :: ImageLayout

IMAGE_LAYOUT_UNDEFINED specifies that the layout is unknown. Image memory cannot be transitioned into this layout. This layout can be used as the initialLayout member of ImageCreateInfo. This layout can be used in place of the current image layout in a layout transition, but doing so will cause the contents of the image’s memory to be undefined.

pattern IMAGE_LAYOUT_GENERAL :: ImageLayout

IMAGE_LAYOUT_GENERAL supports all types of device access.

pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL must only be used as a color or resolve attachment in a Framebuffer. This layout is valid only for image subresources of images created with the IMAGE_USAGE_COLOR_ATTACHMENT_BIT usage bit enabled.

pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL specifies a layout for both the depth and stencil aspects of a depth/stencil format image allowing read and write access as a depth/stencil attachment. It is equivalent to IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL and IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL.

pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL specifies a layout for both the depth and stencil aspects of a depth/stencil format image allowing read only access as a depth/stencil attachment or in shaders as a sampled image, combined image/sampler, or input attachment. It is equivalent to IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL and IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL.

pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL specifies a layout allowing read-only access in a shader as a sampled image, combined image/sampler, or input attachment. This layout is valid only for image subresources of images created with the IMAGE_USAGE_SAMPLED_BIT or IMAGE_USAGE_INPUT_ATTACHMENT_BIT usage bits enabled.

pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL must only be used as a source image of a transfer command (see the definition of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer). This layout is valid only for image subresources of images created with the IMAGE_USAGE_TRANSFER_SRC_BIT usage bit enabled.

pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: ImageLayout

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 the IMAGE_USAGE_TRANSFER_DST_BIT usage bit enabled.

pattern IMAGE_LAYOUT_PREINITIALIZED :: ImageLayout

IMAGE_LAYOUT_PREINITIALIZED specifies that an image’s memory is in a defined layout and can be populated by data, but that it has not yet been initialized by the driver. Image memory cannot be transitioned into this layout. This layout can be used as the initialLayout member of ImageCreateInfo. This layout is intended to be used as the initial layout for an image whose contents are written by the host, and hence the data can be written to memory immediately, without first executing a layout transition. Currently, IMAGE_LAYOUT_PREINITIALIZED is only useful with linear images because there is not a standard layout defined for IMAGE_TILING_OPTIMAL images.

pattern IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT :: ImageLayout

IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT must only be used as either a color attachment or depth/stencil attachment in a Framebuffer and/or read-only access in a shader as a sampled image, combined image/sampler, or input attachment. This layout is valid only for image subresources of images created with the IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit enabled and either the IMAGE_USAGE_COLOR_ATTACHMENT_BIT or IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the IMAGE_USAGE_INPUT_ATTACHMENT_BIT or IMAGE_USAGE_SAMPLED_BIT usage bits enabled.

pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR :: ImageLayout

IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR must only be used as a fragment shading rate attachment or shading rate image. This layout is valid only for image subresources of images created with the IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR usage bit enabled.

pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT :: ImageLayout

IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT must only be used as a fragment density map attachment in a RenderPass. This layout is valid only for image subresources of images created with the IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT usage bit enabled.

pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR :: ImageLayout

IMAGE_LAYOUT_SHARED_PRESENT_KHR is valid only for shared presentable images, and must be used for any usage the image supports.

pattern IMAGE_LAYOUT_PRESENT_SRC_KHR :: ImageLayout

IMAGE_LAYOUT_PRESENT_SRC_KHR must only be used for presenting a presentable image for display.

pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_ATTACHMENT_OPTIMAL specifies a layout that must only be used with attachment accesses in the graphics pipeline.

pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_READ_ONLY_OPTIMAL specifies a layout allowing read only access as an attachment, or in shaders as a sampled image, combined image/sampler, or input attachment.

pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL specifies a layout for the stencil aspect of a depth/stencil format image allowing read-only access as a stencil attachment or in shaders as a sampled image, combined image/sampler, or input attachment.

pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL specifies a layout for the stencil aspect of a depth/stencil format image allowing read and write access as a stencil attachment.

pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL specifies a layout for the depth aspect of a depth/stencil format image allowing read-only access as a depth attachment or in shaders as a sampled image, combined image/sampler, or input attachment.

pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL specifies a layout for the depth aspect of a depth/stencil format image allowing read and write access as a depth attachment.

pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL specifies a layout for depth/stencil format images allowing read and write access to the depth aspect as a depth attachment, and read only access to the stencil aspect as a stencil attachment or in shaders as a sampled image, combined image/sampler, or input attachment. It is equivalent to IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL and IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL.

pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout

IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL specifies a layout for depth/stencil format images allowing read and write access to the stencil aspect as a stencil attachment, and read only access to the depth aspect as a depth attachment or in shaders as a sampled image, combined image/sampler, or input attachment. It is equivalent to IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL and IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL.

Instances

Instances details
Storable ImageLayout Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageLayout

Read ImageLayout Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageLayout

Show ImageLayout Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageLayout

Eq ImageLayout Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageLayout

Ord ImageLayout Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageLayout

Zero ImageLayout Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageLayout