| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.Enums.ImageLayout
Synopsis
- newtype ImageLayout where
- ImageLayout Int32
- pattern IMAGE_LAYOUT_UNDEFINED :: ImageLayout
- pattern IMAGE_LAYOUT_GENERAL :: ImageLayout
- pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_PREINITIALIZED :: ImageLayout
- pattern IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT :: ImageLayout
- pattern IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR :: ImageLayout
- pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR :: ImageLayout
- pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT :: ImageLayout
- pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR :: ImageLayout
- pattern IMAGE_LAYOUT_PRESENT_SRC_KHR :: ImageLayout
- pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout
- pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout
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).
IMAGE_LAYOUT_GENERAL can be a useful catch-all image layout, but there
are situations where a dedicated image layout must be used instead. Some
examples include:
IMAGE_LAYOUT_PRESENT_SRC_KHRVK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR
VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR
While IMAGE_LAYOUT_GENERAL suggests that all types of device access is
possible, it does not mean that all patterns of memory accesses are safe
in all situations.
Common Render Pass Data Races
outlines some situations where data races are unavoidable. For example,
when a subresource is used as both an attachment and a sampled image
(i.e., not an input attachment),
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT adds extra
guarantees which IMAGE_LAYOUT_GENERAL does not.
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 |
|
| pattern IMAGE_LAYOUT_GENERAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_PREINITIALIZED :: ImageLayout |
|
| pattern IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT :: ImageLayout |
|
| pattern IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR :: ImageLayout |
|
| pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR :: ImageLayout |
|
| pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT :: ImageLayout |
|
| pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR :: ImageLayout |
|
| pattern IMAGE_LAYOUT_PRESENT_SRC_KHR :: ImageLayout |
|
| pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout |
|
| pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout |
|