Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype VkImageAspectFlagBits = VkImageAspectFlagBits VkFlags
- pattern VK_IMAGE_ASPECT_COLOR_BIT :: VkImageAspectFlagBits
- pattern VK_IMAGE_ASPECT_DEPTH_BIT :: VkImageAspectFlagBits
- pattern VK_IMAGE_ASPECT_STENCIL_BIT :: VkImageAspectFlagBits
- pattern VK_IMAGE_ASPECT_METADATA_BIT :: VkImageAspectFlagBits
- newtype VkSparseMemoryBindFlagBits = VkSparseMemoryBindFlagBits VkFlags
- pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT :: VkSparseMemoryBindFlagBits
- newtype VkSparseImageFormatFlagBits = VkSparseImageFormatFlagBits VkFlags
- pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT :: VkSparseImageFormatFlagBits
- pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT :: VkSparseImageFormatFlagBits
- pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT :: VkSparseImageFormatFlagBits
- vkGetImageSparseMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements) -> IO ()
- vkGetPhysicalDeviceSparseImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("samples" ::: VkSampleCountFlagBits) -> ("usage" ::: VkImageUsageFlags) -> ("tiling" ::: VkImageTiling) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties) -> IO ()
- vkQueueBindSparse :: ("queue" ::: VkQueue) -> ("bindInfoCount" ::: Word32) -> ("pBindInfo" ::: Ptr VkBindSparseInfo) -> ("fence" ::: VkFence) -> IO VkResult
- data VkOffset3D = VkOffset3D {}
- data VkSparseImageFormatProperties = VkSparseImageFormatProperties {}
- data VkSparseImageMemoryRequirements = VkSparseImageMemoryRequirements {}
- data VkImageSubresource = VkImageSubresource {}
- data VkSparseMemoryBind = VkSparseMemoryBind {}
- data VkSparseImageMemoryBind = VkSparseImageMemoryBind {}
- data VkSparseBufferMemoryBindInfo = VkSparseBufferMemoryBindInfo {}
- data VkSparseImageOpaqueMemoryBindInfo = VkSparseImageOpaqueMemoryBindInfo {}
- data VkSparseImageMemoryBindInfo = VkSparseImageMemoryBindInfo {}
- data VkBindSparseInfo = VkBindSparseInfo {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkWaitSemaphoreCount :: Word32
- vkPWaitSemaphores :: Ptr VkSemaphore
- vkBufferBindCount :: Word32
- vkPBufferBinds :: Ptr VkSparseBufferMemoryBindInfo
- vkImageOpaqueBindCount :: Word32
- vkPImageOpaqueBinds :: Ptr VkSparseImageOpaqueMemoryBindInfo
- vkImageBindCount :: Word32
- vkPImageBinds :: Ptr VkSparseImageMemoryBindInfo
- vkSignalSemaphoreCount :: Word32
- vkPSignalSemaphores :: Ptr VkSemaphore
- type VkImageAspectFlags = VkImageAspectFlagBits
- type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits
- type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits
Documentation
newtype VkImageAspectFlagBits Source #
VkImageAspectFlagBits - Bitmask specifying which aspects of an image are included in a view
See Also
VkBindImagePlaneMemoryInfo
,
VkImageAspectFlags
,
VkImagePlaneMemoryRequirementsInfo
Instances
pattern VK_IMAGE_ASPECT_COLOR_BIT :: VkImageAspectFlagBits Source #
VK_IMAGE_ASPECT_COLOR_BIT
specifies the color aspect.
pattern VK_IMAGE_ASPECT_DEPTH_BIT :: VkImageAspectFlagBits Source #
VK_IMAGE_ASPECT_DEPTH_BIT
specifies the depth aspect.
pattern VK_IMAGE_ASPECT_STENCIL_BIT :: VkImageAspectFlagBits Source #
VK_IMAGE_ASPECT_STENCIL_BIT
specifies the stencil aspect.
pattern VK_IMAGE_ASPECT_METADATA_BIT :: VkImageAspectFlagBits Source #
VK_IMAGE_ASPECT_METADATA_BIT
specifies the metadata aspect, used for
sparse sparse
resource
operations.
newtype VkSparseMemoryBindFlagBits Source #
VkSparseMemoryBindFlagBits - Bitmask specifying usage of a sparse memory binding operation
See Also
Instances
pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT :: VkSparseMemoryBindFlagBits Source #
VK_SPARSE_MEMORY_BIND_METADATA_BIT
specifies that the memory being
bound is only for the metadata aspect.
newtype VkSparseImageFormatFlagBits Source #
VkSparseImageFormatFlagBits - Bitmask specifying additional information about a sparse image resource
See Also
Instances
pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT :: VkSparseImageFormatFlagBits Source #
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
specifies that the image
uses a single mip tail region for all array layers.
pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT :: VkSparseImageFormatFlagBits Source #
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
specifies that the first
mip level whose dimensions are not integer multiples of the
corresponding dimensions of the sparse image block begins the mip tail
region.
pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT :: VkSparseImageFormatFlagBits Source #
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
specifies that the
image uses non-standard sparse image block dimensions, and the
imageGranularity
values do not match the standard sparse image block
dimensions for the given format.
vkGetImageSparseMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements) -> IO () Source #
vkGetImageSparseMemoryRequirements - Query the memory requirements for a sparse image
Parameters
device
is the logical device that owns the image.
image
is theVkImage
object to get the memory requirements for.pSparseMemoryRequirementCount
is a pointer to an integer related to the number of sparse memory requirements available or queried, as described below.pSparseMemoryRequirements
is eitherNULL
or a pointer to an array ofVkSparseImageMemoryRequirements
structures.
Description
If pSparseMemoryRequirements
is NULL
, then the number of sparse
memory requirements available is returned in
pSparseMemoryRequirementCount
. Otherwise,
pSparseMemoryRequirementCount
must point to a variable set by the
user to the number of elements in the pSparseMemoryRequirements
array,
and on return the variable is overwritten with the number of structures
actually written to pSparseMemoryRequirements
. If
pSparseMemoryRequirementCount
is less than the number of sparse memory
requirements available, at most pSparseMemoryRequirementCount
structures will be written.
If the image was not created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
then pSparseMemoryRequirementCount
will be set to zero and
pSparseMemoryRequirements
will not be written to.
Note
It is legal for an implementation to report a larger value in
VkMemoryRequirements
::size
than would be obtained by adding together
memory sizes for all VkSparseImageMemoryRequirements
returned by
vkGetImageSparseMemoryRequirements
. This may occur when the
implementation requires unused padding in the address range describing
the resource.
Valid Usage (Implicit)
device
must be a validVkDevice
handle
image
must be a validVkImage
handlepSparseMemoryRequirementCount
must be a valid pointer to auint32_t
value- If the value referenced by
pSparseMemoryRequirementCount
is not0
, andpSparseMemoryRequirements
is notNULL
,pSparseMemoryRequirements
must be a valid pointer to an array ofpSparseMemoryRequirementCount
VkSparseImageMemoryRequirements
structures image
must have been created, allocated, or retrieved fromdevice
See Also
vkGetPhysicalDeviceSparseImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("samples" ::: VkSampleCountFlagBits) -> ("usage" ::: VkImageUsageFlags) -> ("tiling" ::: VkImageTiling) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties) -> IO () Source #
vkGetPhysicalDeviceSparseImageFormatProperties - Retrieve properties of an image format applied to sparse images
Parameters
physicalDevice
is the physical device from which to query the sparse image capabilities.
format
is the image format.type
is the dimensionality of image.samples
is the number of samples per texel as defined inVkSampleCountFlagBits
.usage
is a bitmask describing the intended usage of the image.tiling
is the tiling arrangement of the data elements in memory.pPropertyCount
is a pointer to an integer related to the number of sparse format properties available or queried, as described below.pProperties
is eitherNULL
or a pointer to an array ofVkSparseImageFormatProperties
structures.
Description
If pProperties
is NULL
, then the number of sparse format properties
available is returned in pPropertyCount
. Otherwise, pPropertyCount
must point to a variable set by the user to the number of elements in
the pProperties
array, and on return the variable is overwritten with
the number of structures actually written to pProperties
. If
pPropertyCount
is less than the number of sparse format properties
available, at most pPropertyCount
structures will be written.
If VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
is not supported for the given
arguments, pPropertyCount
will be set to zero upon return, and no data
will be written to pProperties
.
Multiple aspects are returned for depth/stencil images that are
implemented as separate planes by the implementation. The depth and
stencil data planes each have unique VkSparseImageFormatProperties
data.
Depth/stencil images with depth and stencil data interleaved into a
single plane will return a single VkSparseImageFormatProperties
structure with the aspectMask
set to VK_IMAGE_ASPECT_DEPTH_BIT
|
VK_IMAGE_ASPECT_STENCIL_BIT
.
Valid Usage
samples
must be a bit value that is set inVkImageFormatProperties
::sampleCounts
returned byvkGetPhysicalDeviceImageFormatProperties
withformat
,type
,tiling
, andusage
equal to those in this command andflags
equal to the value that is set inVkImageCreateInfo
::flags
when the image is created
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
format
must be a validVkFormat
valuetype
must be a validVkImageType
valuesamples
must be a validVkSampleCountFlagBits
valueusage
must be a valid combination ofVkImageUsageFlagBits
valuesusage
must not be0
tiling
must be a validVkImageTiling
valuepPropertyCount
must be a valid pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not0
, andpProperties
is notNULL
,pProperties
must be a valid pointer to an array ofpPropertyCount
VkSparseImageFormatProperties
structures
See Also
VkFormat
,
VkImageTiling
,
VkImageType
,
VkImageUsageFlags
,
VkPhysicalDevice
,
VkSampleCountFlagBits
,
VkSparseImageFormatProperties
vkQueueBindSparse :: ("queue" ::: VkQueue) -> ("bindInfoCount" ::: Word32) -> ("pBindInfo" ::: Ptr VkBindSparseInfo) -> ("fence" ::: VkFence) -> IO VkResult Source #
vkQueueBindSparse - Bind device memory to a sparse resource object
Parameters
queue
is the queue that the sparse binding operations will be submitted to.
bindInfoCount
is the number of elements in thepBindInfo
array.pBindInfo
is an array ofVkBindSparseInfo
structures, each specifying a sparse binding submission batch.fence
is an optional handle to a fence to be signaled. Iffence
is notVK_NULL_HANDLE
, it defines a fence signal operation.
Description
vkQueueBindSparse
is a queue submission
command,
with each batch defined by an element of pBindInfo
as an instance of
the VkBindSparseInfo
structure. Batches begin execution in the order
they appear in pBindInfo
, but may complete out of order.
Within a batch, a given range of a resource must not be bound more than once. Across batches, if a range is to be bound to one allocation and offset and then to another allocation and offset, then the application must guarantee (usually using semaphores) that the binding operations are executed in the correct order, as well as to order binding operations against the execution of command buffer submissions.
As no operation to vkQueueBindSparse
causes any pipeline stage to
access memory, synchronization primitives used in this command
effectively only define execution dependencies.
Additional information about fence and semaphore operation is described in the synchronization chapter.
Valid Usage
- If
fence
is notVK_NULL_HANDLE
,fence
must be unsignaled
- If
fence
is notVK_NULL_HANDLE
,fence
must not be associated with any other queue command that has not yet completed execution on that queue - Each element of the
pSignalSemaphores
member of each element ofpBindInfo
must be unsignaled when the semaphore signal operation it defines is executed on the device - When a semaphore unsignal operation defined by any element of the
pWaitSemaphores
member of any element ofpBindInfo
executes onqueue
, no other queue must be waiting on the same semaphore. - All elements of the
pWaitSemaphores
member of all elements ofpBindInfo
must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution.
Valid Usage (Implicit)
queue
must be a validVkQueue
handle
- If
bindInfoCount
is not0
,pBindInfo
must be a valid pointer to an array ofbindInfoCount
validVkBindSparseInfo
structures - If
fence
is notVK_NULL_HANDLE
,fence
must be a validVkFence
handle - The
queue
must support sparse binding operations - Both of
fence
, andqueue
that are valid handles must have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
queue
must be externally synchronized
- Host access to
pBindInfo
[].pWaitSemaphores[] must be externally synchronized - Host access to
pBindInfo
[].pSignalSemaphores[] must be externally synchronized - Host access to
pBindInfo
[].pBufferBinds[].buffer must be externally synchronized - Host access to
pBindInfo
[].pImageOpaqueBinds[].image must be externally synchronized - Host access to
pBindInfo
[].pImageBinds[].image must be externally synchronized - Host access to
fence
must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
- | - | SPARSE_BINDING | - |
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_DEVICE_LOST
See Also
data VkOffset3D Source #
VkOffset3D - Structure specifying a three-dimensional offset
See Also
VkBufferImageCopy
,
VkImageBlit
,
VkImageCopy
,
VkImageResolve
,
VkSparseImageMemoryBind
Instances
Eq VkOffset3D Source # | |
(==) :: VkOffset3D -> VkOffset3D -> Bool # (/=) :: VkOffset3D -> VkOffset3D -> Bool # | |
Show VkOffset3D Source # | |
showsPrec :: Int -> VkOffset3D -> ShowS # show :: VkOffset3D -> String # showList :: [VkOffset3D] -> ShowS # | |
Storable VkOffset3D Source # | |
sizeOf :: VkOffset3D -> Int # alignment :: VkOffset3D -> Int # peekElemOff :: Ptr VkOffset3D -> Int -> IO VkOffset3D # pokeElemOff :: Ptr VkOffset3D -> Int -> VkOffset3D -> IO () # peekByteOff :: Ptr b -> Int -> IO VkOffset3D # pokeByteOff :: Ptr b -> Int -> VkOffset3D -> IO () # peek :: Ptr VkOffset3D -> IO VkOffset3D # poke :: Ptr VkOffset3D -> VkOffset3D -> IO () # |
data VkSparseImageFormatProperties Source #
VkSparseImageFormatProperties - Structure specifying sparse image format properties
See Also
VkExtent3D
,
VkImageAspectFlags
, VkSparseImageFormatFlags
,
VkSparseImageFormatProperties2
,
VkSparseImageMemoryRequirements
,
vkGetPhysicalDeviceSparseImageFormatProperties
VkSparseImageFormatProperties | |
|
Instances
data VkSparseImageMemoryRequirements Source #
VkSparseImageMemoryRequirements - Structure specifying sparse image memory requirements
Members
formatProperties.aspectMask
is the set of aspects of the image that this sparse memory requirement applies to. This will usually have a single aspect specified. However, depth/stencil images may have depth and stencil data interleaved in the same sparse block, in which case bothVK_IMAGE_ASPECT_DEPTH_BIT
andVK_IMAGE_ASPECT_STENCIL_BIT
would be present.
formatProperties.imageGranularity
describes the dimensions of a single bindable sparse image block in texel units. For aspectVK_IMAGE_ASPECT_METADATA_BIT
, all dimensions will be zero. All metadata is located in the mip tail region.formatProperties.flags
is a bitmask ofVkSparseImageFormatFlagBits
:- If
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
is set the image uses a single mip tail region for all array layers. - If
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
is set the dimensions of mip levels must be integer multiples of the corresponding dimensions of the sparse image block for levels not located in the mip tail. - If
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
is set the image uses non-standard sparse image block dimensions. TheformatProperties.imageGranularity
values do not match the standard sparse image block dimension corresponding to the image’s format.
- If
imageMipTailFirstLod
is the first mip level at which image subresources are included in the mip tail region.imageMipTailSize
is the memory size (in bytes) of the mip tail region. IfformatProperties.flags
containsVK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
, this is the size of the whole mip tail, otherwise this is the size of the mip tail of a single array layer. This value is guaranteed to be a multiple of the sparse block size in bytes.imageMipTailOffset
is the opaque memory offset used withVkSparseImageOpaqueMemoryBindInfo
to bind the mip tail region(s).imageMipTailStride
is the offset stride between each array-layer’s mip tail, ifformatProperties.flags
does not containVK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
(otherwise the value is undefined).
See Also
VkDeviceSize
, VkSparseImageFormatProperties
,
VkSparseImageMemoryRequirements2
,
vkGetImageSparseMemoryRequirements
Instances
data VkImageSubresource Source #
VkImageSubresource - Structure specifying a image subresource
Valid Usage (Implicit)
aspectMask
must be a valid combination ofVkImageAspectFlagBits
values
aspectMask
must not be0
See Also
VkImageAspectFlags
, VkSparseImageMemoryBind
,
vkGetImageSubresourceLayout
VkImageSubresource | |
|
Instances
Eq VkImageSubresource Source # | |
(==) :: VkImageSubresource -> VkImageSubresource -> Bool # (/=) :: VkImageSubresource -> VkImageSubresource -> Bool # | |
Show VkImageSubresource Source # | |
showsPrec :: Int -> VkImageSubresource -> ShowS # show :: VkImageSubresource -> String # showList :: [VkImageSubresource] -> ShowS # | |
Storable VkImageSubresource Source # | |
sizeOf :: VkImageSubresource -> Int # alignment :: VkImageSubresource -> Int # peekElemOff :: Ptr VkImageSubresource -> Int -> IO VkImageSubresource # pokeElemOff :: Ptr VkImageSubresource -> Int -> VkImageSubresource -> IO () # peekByteOff :: Ptr b -> Int -> IO VkImageSubresource # pokeByteOff :: Ptr b -> Int -> VkImageSubresource -> IO () # peek :: Ptr VkImageSubresource -> IO VkImageSubresource # poke :: Ptr VkImageSubresource -> VkImageSubresource -> IO () # |
data VkSparseMemoryBind Source #
VkSparseMemoryBind - Structure specifying a sparse memory bind operation
Description
The binding range [resourceOffset
, resourceOffset
+ size
) has
different constraints based on flags
. If flags
contains
VK_SPARSE_MEMORY_BIND_METADATA_BIT
, the binding range must be within
the mip tail region of the metadata aspect. This metadata region is
defined by:
- metadataRegion = [base, base +
imageMipTailSize
) - base =
imageMipTailOffset
+imageMipTailStride
× n
and imageMipTailOffset
, imageMipTailSize
, and imageMipTailStride
values are from the VkSparseImageMemoryRequirements
corresponding to
the metadata aspect of the image, and n is a valid array layer index for
the image,
imageMipTailStride
is considered to be zero for aspects where
VkSparseImageMemoryRequirements
::formatProperties.flags
contains
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
.
If flags
does not contain VK_SPARSE_MEMORY_BIND_METADATA_BIT
, the
binding range must be within the range
[0,VkMemoryRequirements
::size
).
Valid Usage
- If
memory
is notVK_NULL_HANDLE
,memory
andmemoryOffset
must match the memory requirements of the resource, as described in section {html_spec_relative}#resources-association
- If
memory
is notVK_NULL_HANDLE
,memory
must not have been created with a memory type that reportsVK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
bit set size
must be greater than0
resourceOffset
must be less than the size of the resourcesize
must be less than or equal to the size of the resource minusresourceOffset
memoryOffset
must be less than the size ofmemory
size
must be less than or equal to the size ofmemory
minusmemoryOffset
Valid Usage (Implicit)
- If
memory
is notVK_NULL_HANDLE
,memory
must be a validVkDeviceMemory
handle
flags
must be a valid combination ofVkSparseMemoryBindFlagBits
values
See Also
VkDeviceMemory
, VkDeviceSize
,
VkSparseBufferMemoryBindInfo
, VkSparseImageOpaqueMemoryBindInfo
,
VkSparseMemoryBindFlags
VkSparseMemoryBind | |
|
Instances
Eq VkSparseMemoryBind Source # | |
(==) :: VkSparseMemoryBind -> VkSparseMemoryBind -> Bool # (/=) :: VkSparseMemoryBind -> VkSparseMemoryBind -> Bool # | |
Show VkSparseMemoryBind Source # | |
showsPrec :: Int -> VkSparseMemoryBind -> ShowS # show :: VkSparseMemoryBind -> String # showList :: [VkSparseMemoryBind] -> ShowS # | |
Storable VkSparseMemoryBind Source # | |
sizeOf :: VkSparseMemoryBind -> Int # alignment :: VkSparseMemoryBind -> Int # peekElemOff :: Ptr VkSparseMemoryBind -> Int -> IO VkSparseMemoryBind # pokeElemOff :: Ptr VkSparseMemoryBind -> Int -> VkSparseMemoryBind -> IO () # peekByteOff :: Ptr b -> Int -> IO VkSparseMemoryBind # pokeByteOff :: Ptr b -> Int -> VkSparseMemoryBind -> IO () # peek :: Ptr VkSparseMemoryBind -> IO VkSparseMemoryBind # poke :: Ptr VkSparseMemoryBind -> VkSparseMemoryBind -> IO () # |
data VkSparseImageMemoryBind Source #
VkSparseImageMemoryBind - Structure specifying sparse image memory bind
Valid Usage
- If the sparse aliased
residency
feature is not enabled, and if any other resources are bound to
ranges of
memory
, the range ofmemory
being bound must not overlap with those bound ranges
memory
andmemoryOffset
must match the memory requirements of the calling command’simage
, as described in section {html_spec_relative}#resources-associationsubresource
must be a valid image subresource forimage
(see {html_spec_relative}#resources-image-views)offset.x
must be a multiple of the sparse image block width (VkSparseImageFormatProperties
::imageGranularity.width
) of the imageextent.width
must either be a multiple of the sparse image block width of the image, or else (extent.width
+offset.x
) must equal the width of the image subresourceoffset.y
must be a multiple of the sparse image block height (VkSparseImageFormatProperties
::imageGranularity.height
) of the imageextent.height
must either be a multiple of the sparse image block height of the image, or else (extent.height
+offset.y
) must equal the height of the image subresourceoffset.z
must be a multiple of the sparse image block depth (VkSparseImageFormatProperties
::imageGranularity.depth
) of the imageextent.depth
must either be a multiple of the sparse image block depth of the image, or else (extent.depth
+offset.z
) must equal the depth of the image subresource
Valid Usage (Implicit)
subresource
must be a validVkImageSubresource
structure
- If
memory
is notVK_NULL_HANDLE
,memory
must be a validVkDeviceMemory
handle flags
must be a valid combination ofVkSparseMemoryBindFlagBits
values
See Also
VkDeviceMemory
, VkDeviceSize
,
VkExtent3D
,
VkImageSubresource
, VkOffset3D
, VkSparseImageMemoryBindInfo
,
VkSparseMemoryBindFlags
VkSparseImageMemoryBind | |
|
Instances
Eq VkSparseImageMemoryBind Source # | |
Show VkSparseImageMemoryBind Source # | |
showsPrec :: Int -> VkSparseImageMemoryBind -> ShowS # show :: VkSparseImageMemoryBind -> String # showList :: [VkSparseImageMemoryBind] -> ShowS # | |
Storable VkSparseImageMemoryBind Source # | |
sizeOf :: VkSparseImageMemoryBind -> Int # alignment :: VkSparseImageMemoryBind -> Int # peekElemOff :: Ptr VkSparseImageMemoryBind -> Int -> IO VkSparseImageMemoryBind # pokeElemOff :: Ptr VkSparseImageMemoryBind -> Int -> VkSparseImageMemoryBind -> IO () # peekByteOff :: Ptr b -> Int -> IO VkSparseImageMemoryBind # pokeByteOff :: Ptr b -> Int -> VkSparseImageMemoryBind -> IO () # peek :: Ptr VkSparseImageMemoryBind -> IO VkSparseImageMemoryBind # poke :: Ptr VkSparseImageMemoryBind -> VkSparseImageMemoryBind -> IO () # |
data VkSparseBufferMemoryBindInfo Source #
VkSparseBufferMemoryBindInfo - Structure specifying a sparse buffer memory bind operation
Valid Usage (Implicit)
buffer
must be a validVkBuffer
handle
pBinds
must be a valid pointer to an array ofbindCount
validVkSparseMemoryBind
structuresbindCount
must be greater than0
See Also
VkSparseBufferMemoryBindInfo | |
|
Instances
data VkSparseImageOpaqueMemoryBindInfo Source #
VkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image opaque memory bind info
Valid Usage
- If the
flags
member of any element ofpBinds
containsVK_SPARSE_MEMORY_BIND_METADATA_BIT
, the binding range defined must be within the mip tail region of the metadata aspect ofimage
Valid Usage (Implicit)
image
must be a validVkImage
handle
pBinds
must be a valid pointer to an array ofbindCount
validVkSparseMemoryBind
structuresbindCount
must be greater than0
See Also
VkSparseImageOpaqueMemoryBindInfo | |
|
Instances
data VkSparseImageMemoryBindInfo Source #
VkSparseImageMemoryBindInfo - Structure specifying sparse image memory bind info
Valid Usage
- The
subresource.mipLevel
member of each element ofpBinds
must be less than themipLevels
specified inVkImageCreateInfo
whenimage
was created
- The
subresource.arrayLayer
member of each element ofpBinds
must be less than thearrayLayers
specified inVkImageCreateInfo
whenimage
was created
Valid Usage (Implicit)
image
must be a validVkImage
handle
pBinds
must be a valid pointer to an array ofbindCount
validVkSparseImageMemoryBind
structuresbindCount
must be greater than0
See Also
VkSparseImageMemoryBindInfo | |
|
Instances
data VkBindSparseInfo Source #
VkBindSparseInfo - Structure specifying a sparse binding operation
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_BIND_SPARSE_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkDeviceGroupBindSparseInfo
- If
waitSemaphoreCount
is not0
,pWaitSemaphores
must be a valid pointer to an array ofwaitSemaphoreCount
validVkSemaphore
handles - If
bufferBindCount
is not0
,pBufferBinds
must be a valid pointer to an array ofbufferBindCount
validVkSparseBufferMemoryBindInfo
structures - If
imageOpaqueBindCount
is not0
,pImageOpaqueBinds
must be a valid pointer to an array ofimageOpaqueBindCount
validVkSparseImageOpaqueMemoryBindInfo
structures - If
imageBindCount
is not0
,pImageBinds
must be a valid pointer to an array ofimageBindCount
validVkSparseImageMemoryBindInfo
structures - If
signalSemaphoreCount
is not0
,pSignalSemaphores
must be a valid pointer to an array ofsignalSemaphoreCount
validVkSemaphore
handles - Both of the elements of
pSignalSemaphores
, and the elements ofpWaitSemaphores
that are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkSemaphore
,
VkSparseBufferMemoryBindInfo
, VkSparseImageMemoryBindInfo
,
VkSparseImageOpaqueMemoryBindInfo
,
VkStructureType
, vkQueueBindSparse
VkBindSparseInfo | |
|
Instances
Eq VkBindSparseInfo Source # | |
(==) :: VkBindSparseInfo -> VkBindSparseInfo -> Bool # (/=) :: VkBindSparseInfo -> VkBindSparseInfo -> Bool # | |
Show VkBindSparseInfo Source # | |
showsPrec :: Int -> VkBindSparseInfo -> ShowS # show :: VkBindSparseInfo -> String # showList :: [VkBindSparseInfo] -> ShowS # | |
Storable VkBindSparseInfo Source # | |
sizeOf :: VkBindSparseInfo -> Int # alignment :: VkBindSparseInfo -> Int # peekElemOff :: Ptr VkBindSparseInfo -> Int -> IO VkBindSparseInfo # pokeElemOff :: Ptr VkBindSparseInfo -> Int -> VkBindSparseInfo -> IO () # peekByteOff :: Ptr b -> Int -> IO VkBindSparseInfo # pokeByteOff :: Ptr b -> Int -> VkBindSparseInfo -> IO () # peek :: Ptr VkBindSparseInfo -> IO VkBindSparseInfo # poke :: Ptr VkBindSparseInfo -> VkBindSparseInfo -> IO () # |
type VkImageAspectFlags = VkImageAspectFlagBits Source #
VkImageAspectFlags - Bitmask of VkImageAspectFlagBits
Description
VkImageAspectFlags
is a bitmask type for setting a mask of zero or
more VkImageAspectFlagBits
.
See Also
VkClearAttachment
,
VkImageAspectFlagBits
, VkImageSubresource
,
VkImageSubresourceLayers
,
VkImageSubresourceRange
,
VkInputAttachmentAspectReference
,
VkSparseImageFormatProperties
type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits Source #
VkSparseMemoryBindFlags - Bitmask of VkSparseMemoryBindFlagBits
Description
VkSparseMemoryBindFlags
is a bitmask type for setting a mask of zero
or more VkSparseMemoryBindFlagBits
.
See Also
VkSparseImageMemoryBind
, VkSparseMemoryBind
,
VkSparseMemoryBindFlagBits
type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits Source #
VkSparseImageFormatFlags - Bitmask of VkSparseImageFormatFlagBits
Description
VkSparseImageFormatFlags
is a bitmask type for setting a mask of zero
or more VkSparseImageFormatFlagBits
.