{-# language CPP #-} -- No documentation found for Chapter "ImageLayout" module Vulkan.Core10.Enums.ImageLayout (ImageLayout( IMAGE_LAYOUT_UNDEFINED , IMAGE_LAYOUT_GENERAL , IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , IMAGE_LAYOUT_PREINITIALIZED , IMAGE_LAYOUT_ZERO_INITIALIZED_EXT , IMAGE_LAYOUT_TENSOR_ALIASING_ARM , IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT , IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR , IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT , IMAGE_LAYOUT_SHARED_PRESENT_KHR , IMAGE_LAYOUT_PRESENT_SRC_KHR , IMAGE_LAYOUT_RENDERING_LOCAL_READ , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL , .. )) where import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec) import GHC.Show (showsPrec) import Vulkan.Zero (Zero) import Foreign.Storable (Storable) import Data.Int (Int32) import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) -- | VkImageLayout - Layout of image and image subresources -- -- = Description -- -- The type(s) of device access supported by each layout are: -- -- - '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 -- 'Vulkan.Core10.Image.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. -- -- - '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 'Vulkan.Core10.Image.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 -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#glossary-linear-resource linear> -- images because there is not a standard layout defined for -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' images. -- -- - 'IMAGE_LAYOUT_GENERAL' supports all types of device access, unless -- specified otherwise. -- -- - 'IMAGE_LAYOUT_ZERO_INITIALIZED_EXT' specifies that an image’s memory -- is in a defined layout and is zeroed, 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 'Vulkan.Core10.Image.ImageCreateInfo'. This layout is -- intended to be used as the initial layout for an image whose -- contents are already zeroed, either from being explicitly set to -- zero by an application or from being allocated with -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT'. -- -- - 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL' specifies a layout that /must/ -- only be used with attachment accesses in the graphics pipeline. -- -- - '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. -- -- - 'IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL' /must/ only be used as a -- color or resolve attachment in a -- 'Vulkan.Core10.Handles.Framebuffer'. This layout is valid only for -- image subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- usage flag set. -- -- - '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'. -- -- - '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'. -- -- - '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'. -- -- - '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'. -- -- - '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. -- -- - '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. -- -- - '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. -- -- - '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. -- -- - '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 -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT' -- usage bits enabled. -- -- - '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/latest/html/vkspec.html#synchronization-pipeline-stages-transfer >). -- This layout is valid only for image subresources of images created -- with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' -- usage flag set. -- -- - '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 -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' -- usage flag set. -- -- - 'IMAGE_LAYOUT_PRESENT_SRC_KHR' /must/ only be used for presenting a -- presentable image for display. -- -- - 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' is valid only for shared -- presentable images, and /must/ be used for any usage the image -- supports. -- -- - 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' /must/ -- only be used as a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-shading-rate-image shading rate image>. -- This layout is valid only for image subresources of images created -- with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- usage flag set. -- -- - 'IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT' /must/ only be used -- as a fragment density map attachment in a -- 'Vulkan.Core10.Handles.RenderPass'. This layout is valid only for -- image subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' -- usage flag set. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR> -- /must/ only be used as a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#decode-output-picture decode output picture> -- in a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-decode-operations video decode operation>. -- This layout is valid only for image subresources of images created -- with the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageUsageFlagBits VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR> -- usage flag set. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR> -- is reserved for future use. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR> -- /must/ only be used as an output -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#reconstructed-picture reconstructed picture> -- or an input -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#reference-picture reference picture> -- in a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-decode-operations video decode operation>. -- This layout is valid only for image subresources of images created -- with the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageUsageFlagBits VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR> -- usage flag set. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR> -- is reserved for future use. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR> -- /must/ only be used as an -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#encode-input-picture encode input picture> -- in a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-encode-operations video encode operation>. -- This layout is valid only for image subresources of images created -- with the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageUsageFlagBits VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR> -- usage flag set. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR> -- /must/ only be used as an output -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#reconstructed-picture reconstructed picture> -- or an input -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#reference-picture reference picture> -- in a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-encode-operations video encode operation>. -- This layout is valid only for image subresources of images created -- with the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageUsageFlagBits VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR> -- usage flag set. -- -- - 'IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' /must/ only be -- used as either a color attachment or depth\/stencil attachment -- 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 -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' -- usage flag set, and either the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- usage flags set, and either the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT' -- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' -- usage flags set -- -- - 'IMAGE_LAYOUT_RENDERING_LOCAL_READ' /must/ only be used as either a -- storage image, or a color or depth\/stencil attachment and an input -- attachment. This layout is valid only for image subresources of -- images created with either the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' -- usage flag set, or both the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT' -- and either of the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- usage flags set. -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR> -- /must/ only be used as a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#encode-quantization-map quantization map> -- in a -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-encode-operations video encode operation>. -- This layout is valid only for image subresources of images created -- with the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageUsageFlagBits VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR> -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageUsageFlagBits VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR> -- usage flags set. -- -- - 'IMAGE_LAYOUT_TENSOR_ALIASING_ARM' specifies the layout that an -- image created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' /must/ be in, -- if the -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-unifiedImageLayouts unifiedImageLayouts> -- feature is disabled, or /may/ be in if it is enabled, for it and a -- tensor bound to the same aliased range of memory to consistently -- interpret the data in memory. See -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#resources-memory-aliasing> -- for a complete set of rules for tensor\/image aliasing. This layout -- is valid only for image subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM' -- usage flag set. -- -- 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/latest/html/vkspec.html#clears> -- and -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#copies>). -- For use as a framebuffer attachment, this is a member in the -- substructures of the 'Vulkan.Core10.Pass.RenderPassCreateInfo' (see -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#renderpass Render Pass>). -- For use in a descriptor set, this is a member in the -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structure (see -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#descriptorsets-updates>). -- -- If the -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-unifiedImageLayouts unifiedImageLayouts> -- feature is enabled, the 'IMAGE_LAYOUT_GENERAL' image layout /may/ be -- used in place of the other layouts where allowed with no loss of -- performance. -- -- '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_KHR' -- -- - 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR>, -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR> -- without the -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-unifiedImageLayoutsVideo unifiedImageLayoutsVideo> -- feature -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR>, -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR> -- without the -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-unifiedImageLayoutsVideo unifiedImageLayoutsVideo> -- feature -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageLayout VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR> -- without the -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-unifiedImageLayoutsVideo unifiedImageLayoutsVideo> -- feature -- -- 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. -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#common-render-pass-data-races 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), -- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#renderpass-feedbackloop enabling feedback loop> -- adds extra guarantees which 'IMAGE_LAYOUT_GENERAL' alone does not. -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout', -- 'Vulkan.Core10.Pass.AttachmentReference', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Core14.PromotedStreamingTransfers'.CopyImageToImageInfo', -- 'Vulkan.Core14.PromotedStreamingTransfers'.CopyImageToMemoryInfo', -- 'Vulkan.Extensions.VK_KHR_copy_memory_indirect.CopyMemoryToImageIndirectInfoKHR', -- 'Vulkan.Core14.PromotedStreamingTransfers'.CopyMemoryToImageInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', -- 'Vulkan.Core14.PromotedStreamingTransfers'.HostImageLayoutTransitionInfo', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_EXT_descriptor_heap.ImageDescriptorInfoEXT', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core14.PromotedStreamingTransfers'.PhysicalDeviceHostImageCopyProperties', -- 'Vulkan.Core14.PhysicalDeviceVulkan14Properties', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.RenderingFragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage' newtype ImageLayout = ImageLayout Int32 deriving newtype (ImageLayout -> ImageLayout -> Bool (ImageLayout -> ImageLayout -> Bool) -> (ImageLayout -> ImageLayout -> Bool) -> Eq ImageLayout forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ImageLayout -> ImageLayout -> Bool == :: ImageLayout -> ImageLayout -> Bool $c/= :: ImageLayout -> ImageLayout -> Bool /= :: ImageLayout -> ImageLayout -> Bool Eq, Eq ImageLayout Eq ImageLayout => (ImageLayout -> ImageLayout -> Ordering) -> (ImageLayout -> ImageLayout -> Bool) -> (ImageLayout -> ImageLayout -> Bool) -> (ImageLayout -> ImageLayout -> Bool) -> (ImageLayout -> ImageLayout -> Bool) -> (ImageLayout -> ImageLayout -> ImageLayout) -> (ImageLayout -> ImageLayout -> ImageLayout) -> Ord ImageLayout ImageLayout -> ImageLayout -> Bool ImageLayout -> ImageLayout -> Ordering ImageLayout -> ImageLayout -> ImageLayout forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: ImageLayout -> ImageLayout -> Ordering compare :: ImageLayout -> ImageLayout -> Ordering $c< :: ImageLayout -> ImageLayout -> Bool < :: ImageLayout -> ImageLayout -> Bool $c<= :: ImageLayout -> ImageLayout -> Bool <= :: ImageLayout -> ImageLayout -> Bool $c> :: ImageLayout -> ImageLayout -> Bool > :: ImageLayout -> ImageLayout -> Bool $c>= :: ImageLayout -> ImageLayout -> Bool >= :: ImageLayout -> ImageLayout -> Bool $cmax :: ImageLayout -> ImageLayout -> ImageLayout max :: ImageLayout -> ImageLayout -> ImageLayout $cmin :: ImageLayout -> ImageLayout -> ImageLayout min :: ImageLayout -> ImageLayout -> ImageLayout Ord, Ptr ImageLayout -> IO ImageLayout Ptr ImageLayout -> Int -> IO ImageLayout Ptr ImageLayout -> Int -> ImageLayout -> IO () Ptr ImageLayout -> ImageLayout -> IO () ImageLayout -> Int (ImageLayout -> Int) -> (ImageLayout -> Int) -> (Ptr ImageLayout -> Int -> IO ImageLayout) -> (Ptr ImageLayout -> Int -> ImageLayout -> IO ()) -> (forall b. Ptr b -> Int -> IO ImageLayout) -> (forall b. Ptr b -> Int -> ImageLayout -> IO ()) -> (Ptr ImageLayout -> IO ImageLayout) -> (Ptr ImageLayout -> ImageLayout -> IO ()) -> Storable ImageLayout forall b. Ptr b -> Int -> IO ImageLayout forall b. Ptr b -> Int -> ImageLayout -> IO () forall a. (a -> Int) -> (a -> Int) -> (Ptr a -> Int -> IO a) -> (Ptr a -> Int -> a -> IO ()) -> (forall b. Ptr b -> Int -> IO a) -> (forall b. Ptr b -> Int -> a -> IO ()) -> (Ptr a -> IO a) -> (Ptr a -> a -> IO ()) -> Storable a $csizeOf :: ImageLayout -> Int sizeOf :: ImageLayout -> Int $calignment :: ImageLayout -> Int alignment :: ImageLayout -> Int $cpeekElemOff :: Ptr ImageLayout -> Int -> IO ImageLayout peekElemOff :: Ptr ImageLayout -> Int -> IO ImageLayout $cpokeElemOff :: Ptr ImageLayout -> Int -> ImageLayout -> IO () pokeElemOff :: Ptr ImageLayout -> Int -> ImageLayout -> IO () $cpeekByteOff :: forall b. Ptr b -> Int -> IO ImageLayout peekByteOff :: forall b. Ptr b -> Int -> IO ImageLayout $cpokeByteOff :: forall b. Ptr b -> Int -> ImageLayout -> IO () pokeByteOff :: forall b. Ptr b -> Int -> ImageLayout -> IO () $cpeek :: Ptr ImageLayout -> IO ImageLayout peek :: Ptr ImageLayout -> IO ImageLayout $cpoke :: Ptr ImageLayout -> ImageLayout -> IO () poke :: Ptr ImageLayout -> ImageLayout -> IO () Storable, ImageLayout ImageLayout -> Zero ImageLayout forall a. a -> Zero a $czero :: ImageLayout zero :: ImageLayout Zero) -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_UNDEFINED" pattern $mIMAGE_LAYOUT_UNDEFINED :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_UNDEFINED :: ImageLayout IMAGE_LAYOUT_UNDEFINED = ImageLayout 0 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_GENERAL" pattern $mIMAGE_LAYOUT_GENERAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_GENERAL :: ImageLayout IMAGE_LAYOUT_GENERAL = ImageLayout 1 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" pattern $mIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: ImageLayout IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = ImageLayout 2 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL" pattern $mIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 3 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" pattern $mIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 4 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" pattern $mIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: ImageLayout IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = ImageLayout 5 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL" pattern $mIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: ImageLayout IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = ImageLayout 6 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL" pattern $mIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: ImageLayout IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = ImageLayout 7 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_PREINITIALIZED" pattern $mIMAGE_LAYOUT_PREINITIALIZED :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_PREINITIALIZED :: ImageLayout IMAGE_LAYOUT_PREINITIALIZED = ImageLayout 8 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT" pattern $mIMAGE_LAYOUT_ZERO_INITIALIZED_EXT :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_ZERO_INITIALIZED_EXT :: ImageLayout IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = ImageLayout 1000620000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM" pattern $mIMAGE_LAYOUT_TENSOR_ALIASING_ARM :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_TENSOR_ALIASING_ARM :: ImageLayout IMAGE_LAYOUT_TENSOR_ALIASING_ARM = ImageLayout 1000460000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" pattern $mIMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT :: ImageLayout IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = ImageLayout 1000339000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR" pattern $mIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR :: ImageLayout IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = ImageLayout 1000164003 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT" pattern $mIMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT :: ImageLayout IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" pattern $mIMAGE_LAYOUT_SHARED_PRESENT_KHR :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_SHARED_PRESENT_KHR :: ImageLayout IMAGE_LAYOUT_SHARED_PRESENT_KHR = ImageLayout 1000111000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" pattern $mIMAGE_LAYOUT_PRESENT_SRC_KHR :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_PRESENT_SRC_KHR :: ImageLayout IMAGE_LAYOUT_PRESENT_SRC_KHR = ImageLayout 1000001002 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ" pattern $mIMAGE_LAYOUT_RENDERING_LOCAL_READ :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_RENDERING_LOCAL_READ :: ImageLayout IMAGE_LAYOUT_RENDERING_LOCAL_READ = ImageLayout 1000232000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL" pattern $mIMAGE_LAYOUT_ATTACHMENT_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_ATTACHMENT_OPTIMAL :: ImageLayout IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = ImageLayout 1000314001 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL" pattern $mIMAGE_LAYOUT_READ_ONLY_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_READ_ONLY_OPTIMAL :: ImageLayout IMAGE_LAYOUT_READ_ONLY_OPTIMAL = ImageLayout 1000314000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" pattern $mIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 1000241003 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL" pattern $mIMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 1000241002 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" pattern $mIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL :: ImageLayout IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = ImageLayout 1000241001 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL" pattern $mIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL :: ImageLayout IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = ImageLayout 1000241000 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" pattern $mIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL :: ImageLayout IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 1000117001 -- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" pattern $mIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: forall {r}. ImageLayout -> ((# #) -> r) -> ((# #) -> r) -> r $bIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 1000117000 {-# COMPLETE IMAGE_LAYOUT_UNDEFINED , IMAGE_LAYOUT_GENERAL , IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , IMAGE_LAYOUT_PREINITIALIZED , IMAGE_LAYOUT_ZERO_INITIALIZED_EXT , IMAGE_LAYOUT_TENSOR_ALIASING_ARM , IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT , IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR , IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT , IMAGE_LAYOUT_SHARED_PRESENT_KHR , IMAGE_LAYOUT_PRESENT_SRC_KHR , IMAGE_LAYOUT_RENDERING_LOCAL_READ , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout #-} conNameImageLayout :: String conNameImageLayout :: String conNameImageLayout = String "ImageLayout" enumPrefixImageLayout :: String enumPrefixImageLayout :: String enumPrefixImageLayout = String "IMAGE_LAYOUT_" showTableImageLayout :: [(ImageLayout, String)] showTableImageLayout :: [(ImageLayout, String)] showTableImageLayout = [ (ImageLayout IMAGE_LAYOUT_UNDEFINED, String "UNDEFINED") , (ImageLayout IMAGE_LAYOUT_GENERAL, String "GENERAL") , ( ImageLayout IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL , String "COLOR_ATTACHMENT_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL , String "DEPTH_STENCIL_ATTACHMENT_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL , String "DEPTH_STENCIL_READ_ONLY_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL , String "SHADER_READ_ONLY_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , String "TRANSFER_SRC_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , String "TRANSFER_DST_OPTIMAL" ) , (ImageLayout IMAGE_LAYOUT_PREINITIALIZED, String "PREINITIALIZED") , ( ImageLayout IMAGE_LAYOUT_ZERO_INITIALIZED_EXT , String "ZERO_INITIALIZED_EXT" ) , ( ImageLayout IMAGE_LAYOUT_TENSOR_ALIASING_ARM , String "TENSOR_ALIASING_ARM" ) , ( ImageLayout IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT , String "ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT" ) , ( ImageLayout IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR , String "FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR" ) , ( ImageLayout IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT , String "FRAGMENT_DENSITY_MAP_OPTIMAL_EXT" ) , (ImageLayout IMAGE_LAYOUT_SHARED_PRESENT_KHR, String "SHARED_PRESENT_KHR") , (ImageLayout IMAGE_LAYOUT_PRESENT_SRC_KHR, String "PRESENT_SRC_KHR") , ( ImageLayout IMAGE_LAYOUT_RENDERING_LOCAL_READ , String "RENDERING_LOCAL_READ" ) , (ImageLayout IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, String "ATTACHMENT_OPTIMAL") , (ImageLayout IMAGE_LAYOUT_READ_ONLY_OPTIMAL, String "READ_ONLY_OPTIMAL") , ( ImageLayout IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , String "STENCIL_READ_ONLY_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL , String "STENCIL_ATTACHMENT_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL , String "DEPTH_READ_ONLY_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL , String "DEPTH_ATTACHMENT_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL , String "DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" ) , ( ImageLayout IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL , String "DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" ) ] instance Show ImageLayout where showsPrec :: Int -> ImageLayout -> ShowS showsPrec = String -> [(ImageLayout, String)] -> String -> (ImageLayout -> Int32) -> (Int32 -> ShowS) -> Int -> ImageLayout -> ShowS forall a i. Eq a => String -> [(a, String)] -> String -> (a -> i) -> (i -> ShowS) -> Int -> a -> ShowS enumShowsPrec String enumPrefixImageLayout [(ImageLayout, String)] showTableImageLayout String conNameImageLayout (\(ImageLayout Int32 x) -> Int32 x) (Int -> Int32 -> ShowS forall a. Show a => Int -> a -> ShowS showsPrec Int 11) instance Read ImageLayout where readPrec :: ReadPrec ImageLayout readPrec = String -> [(ImageLayout, String)] -> String -> (Int32 -> ImageLayout) -> ReadPrec ImageLayout forall i a. Read i => String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a enumReadPrec String enumPrefixImageLayout [(ImageLayout, String)] showTableImageLayout String conNameImageLayout Int32 -> ImageLayout ImageLayout