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

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

Modulevulkan-3.27GHC2021

Vulkan.Core10.ImageView

  • 8 types
  • 3 values
  • Packagevulkan-3.27
  • Exports28
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceImageView.hs
valuecreateImageView
  1. :: (Extendss ImageViewCreateInfo a, PokeChain a, MonadIO io)
  2. => Device

    device is the logical device that creates the image view.

  3. -> ImageViewCreateInfo a

    pCreateInfo is a pointer to a ImageViewCreateInfo structure containing parameters to be used to create the image view.

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

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

  5. -> io ImageView
#

vkCreateImageView - Create an image view from an existing image

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

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

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

  • pView must be a valid pointer to a ImageView handle

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

Return Codes

Success
Failure

See Also

VK_VERSION_1_0, AllocationCallbacks, Device, ImageView, ImageViewCreateInfo

A convenience wrapper to make a compatible pair of calls to createImageView and destroyImageView

To ensure that destroyImageView 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.

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

    device is the logical device that destroys the image view.

  3. -> ImageView

    imageView is the image view to destroy.

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

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

  5. -> io ()
#

vkDestroyImageView - Destroy an image view object

Valid Usage

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

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

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

Valid Usage (Implicit)

  • device must be a valid Device handle

  • If imageView is not NULL_HANDLE, imageView must be a valid ImageView handle

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

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

Host Synchronization

  • Host access to imageView must be externally synchronized

See Also

VK_VERSION_1_0, AllocationCallbacks, Device, ImageView

datadata ComponentMapping
#

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkImageSubresourceRange - Structure specifying an image subresource range

Description

The number of mipmap levels and array layers must be a subset of the image subresources in the image. If an application wants to use all mip levels or layers in an image after the baseMipLevel or baseArrayLayer, it can set levelCount and layerCount to the special values REMAINING_MIP_LEVELS and REMAINING_ARRAY_LAYERS without knowing the exact number of mip levels or layers.

For cube and cube array image views, the layers of the image view starting at baseArrayLayer correspond to faces in the order +X, -X, +Y, -Y, +Z, -Z. For cube arrays, each set of six sequential layers is a single cube, so the number of cube maps in a cube map array view is layerCount / 6, and image array layer (baseArrayLayer + i) is face index (i mod 6) of cube i / 6. If the number of layers in the view, whether set explicitly in layerCount or implied by REMAINING_ARRAY_LAYERS, is not a multiple of 6, the last cube map in the array must not be accessed.

aspectMask must be only IMAGE_ASPECT_COLOR_BIT, IMAGE_ASPECT_DEPTH_BIT or IMAGE_ASPECT_STENCIL_BIT if format is a color, depth-only or stencil-only format, respectively, except if format is a multi-planar format. If using a depth/stencil format with both depth and stencil components, aspectMask must include at least one of IMAGE_ASPECT_DEPTH_BIT and IMAGE_ASPECT_STENCIL_BIT, and can include both.

When the ImageSubresourceRange structure is used to select a subset of the slices of a 3D image’s mip level in order to create a 2D or 2D array image view of a 3D image created with IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, baseArrayLayer and layerCount specify the first slice index and the number of slices to include in the created image view. Such an image view can be used as a framebuffer attachment that refers only to the specified range of slices of the selected mip level. If the maintenance9 feature is not enabled, any layout transitions performed on such an attachment view during a render pass instance still apply to the entire subresource referenced which includes all the slices of the selected mip level.

When using an image view of a depth/stencil image to populate a descriptor set (e.g. for sampling in the shader, or for use as an input attachment), the aspectMask must only include one bit, which selects whether the image view is used for depth reads (i.e. using a floating-point sampler or input attachment in the shader) or stencil reads (i.e. using an unsigned integer sampler or input attachment in the shader). When an image view of a depth/stencil image is used as a depth/stencil framebuffer attachment, the aspectMask is ignored and both depth and stencil image subresources are used.

When creating a ImageView, if sampler Y′CBCR conversion is enabled in the sampler, the aspectMask of a subresourceRange used by the ImageView must be IMAGE_ASPECT_COLOR_BIT.

When creating a ImageView, if sampler Y′CBCR conversion is not enabled in the sampler and the image format is multi-planar format, the image must have been created with IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the ImageView’s subresourceRange must be IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT or IMAGE_ASPECT_PLANE_2_BIT.

Valid Usage

Valid Usage (Implicit)

  • aspectMask must not be 0

See Also

VK_VERSION_1_0, HostImageLayoutTransitionInfo, ImageAspectFlags, ImageMemoryBarrier, ImageMemoryBarrier2, ImageViewCreateInfo, cmdClearColorImage, cmdClearDepthStencilImage

Constructors

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

VkImageViewCreateInfo - Structure specifying parameters of a newly created image view

Description

Some of the image creation parameters are inherited by the view. In particular, image view creation inherits the implicit parameter usage specifying the allowed usages of the image view that, by default, takes the value of the corresponding usage parameter specified in ImageCreateInfo at image creation time. The implicit usage can be overridden by adding a ImageViewUsageCreateInfo structure to the pNext chain, but the view usage must be a subset of the image usage. If image has a depth-stencil format and was created with a ImageStencilUsageCreateInfo structure included in the pNext chain of ImageCreateInfo, the usage is calculated based on the subresource.aspectMask provided:

If image is a 3D image, its Z range can be restricted to a subset by adding a ImageViewSlicedCreateInfoEXT to the pNext chain.

If image’s format is multi-planar and aspectMask is one of IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT, or IMAGE_ASPECT_PLANE_2_BIT, the view format is the compatible format for the plane. Otherwise the view format is the format used to create image.

If image was created with the IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format can be set to a format that is compatible with the view format. If the image was not created with IMAGE_CREATE_MUTABLE_FORMAT_BIT, format must equal the view format.

When creating a single-plane view of a multi-planar image, width and height must be derived from the multi-planar image’s dimensions in the manner listed for plane compatibility for the plane.

Views of compatible formats will have the same mapping between texel coordinates and memory locations irrespective of the format, with only the interpretation of the bit pattern changing.

If image was created with a multi-planar format, and the image view’s aspectMask is one of IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT or IMAGE_ASPECT_PLANE_2_BIT, the view’s aspect mask is considered to be equivalent to IMAGE_ASPECT_COLOR_BIT when used as a framebuffer attachment.

Values intended to be used with one view format may not be exactly preserved when written or read through a different format. For example, an integer value that happens to have the bit pattern of a floating-point denorm or NaN may be flushed or canonicalized when written or read through a view with a floating-point format. Similarly, a value written through a signed normalized format that has a bit pattern exactly equal to -2b may be changed to -2b + 1 as described in Conversion from Normalized Fixed-Point to Floating-Point.

If image was created with the IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with the image’s format as described above; or must be an uncompressed format, in which case it must be size-compatible with the image’s format. In this case, the resulting image view’s texel dimensions equal the dimensions of the selected mip level divided by the compressed texel block size and rounded up.

The ComponentMapping components member describes a remapping from components of the image to components of the vector returned by shader image instructions. This remapping must be the identity swizzle for any ImageView used with a combined image sampler that enables sampler Y′CBCR conversion, input attachment descriptors, framebuffer attachments, and storage image descriptors.

Image views with formats that require YCBCR conversion or external formats must be created with a SamplerYcbcrConversionInfo structure in the pNext chain to be used with sampling. Any image view created with a SamplerYcbcrConversionInfo structure in the pNext chain must only be sampled using a sampler with an identically defined SamplerYcbcrConversion. When used in a video coding operation, the specified sampler Y′CBCR conversion has no effect.

Image Type and Image View Type Compatibility Requirements

Valid Usage

Valid Usage (Implicit)

See Also

VK_VERSION_1_0, ComponentMapping, Format, Image, ImageDescriptorInfoEXT, ImageSubresourceRange, ImageViewCreateFlags, ImageViewType, StructureType, createImageView

Constructors

Instances5Extensible, Show, FromCStruct, ToCStruct, Zero
newtypenewtype ImageView
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …
newtypenewtype ImageViewType
#
Instances6Eq, Ord, Read, Show, Storable, Zero
newtypenewtype ComponentSwizzle
#

VkComponentSwizzle - Specify how a component is swizzled

Description

  • COMPONENT_SWIZZLE_ZERO specifies that the component is set to zero.

  • COMPONENT_SWIZZLE_ONE specifies that the component is set to either 1 or 1.0, depending on whether the type of the image view format is integer or floating-point respectively, as determined by the Format Definition section for each Format.

  • COMPONENT_SWIZZLE_R specifies that the component is set to the value of the R component of the image.

  • COMPONENT_SWIZZLE_G specifies that the component is set to the value of the G component of the image.

  • COMPONENT_SWIZZLE_B specifies that the component is set to the value of the B component of the image.

  • COMPONENT_SWIZZLE_A specifies that the component is set to the value of the A component of the image.

Setting the identity swizzle on a component is equivalent to setting the identity mapping on that component. That is:

Component

Identity Mapping

components.r

COMPONENT_SWIZZLE_R

components.g

COMPONENT_SWIZZLE_G

components.b

COMPONENT_SWIZZLE_B

components.a

COMPONENT_SWIZZLE_A

Component Mappings Equivalent To COMPONENT_SWIZZLE_IDENTITY

See Also

VK_VERSION_1_0, ComponentMapping

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

VkImageViewCreateFlagBits - Bitmask specifying additional parameters of an image view

Description

See Also

VK_VERSION_1_0, ImageViewCreateFlags

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