| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.OtherTypes
Synopsis
- data MemoryBarrier = MemoryBarrier {}
- data BufferMemoryBarrier (es :: [Type]) = BufferMemoryBarrier {}
- data ImageMemoryBarrier (es :: [Type]) = ImageMemoryBarrier {}
- data PipelineCacheHeaderVersionOne = PipelineCacheHeaderVersionOne {}
- data DrawIndirectCommand = DrawIndirectCommand {}
- data DrawIndexedIndirectCommand = DrawIndexedIndirectCommand {}
- data DispatchIndirectCommand = DispatchIndirectCommand {}
- data BaseOutStructure = BaseOutStructure {}
- data BaseInStructure = BaseInStructure {}
- newtype PipelineCacheHeaderVersion where
- newtype ObjectType where
- ObjectType Int32
- pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR :: ObjectType
- pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_NV :: ObjectType
- pattern OBJECT_TYPE_BUFFER :: ObjectType
- pattern OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA :: ObjectType
- pattern OBJECT_TYPE_BUFFER_VIEW :: ObjectType
- pattern OBJECT_TYPE_COMMAND_BUFFER :: ObjectType
- pattern OBJECT_TYPE_COMMAND_POOL :: ObjectType
- pattern OBJECT_TYPE_CUDA_FUNCTION_NV :: ObjectType
- pattern OBJECT_TYPE_CUDA_MODULE_NV :: ObjectType
- pattern OBJECT_TYPE_CU_FUNCTION_NVX :: ObjectType
- pattern OBJECT_TYPE_CU_MODULE_NVX :: ObjectType
- pattern OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM :: ObjectType
- pattern OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT :: ObjectType
- pattern OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT :: ObjectType
- pattern OBJECT_TYPE_DEFERRED_OPERATION_KHR :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_POOL :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_SET :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE :: ObjectType
- pattern OBJECT_TYPE_DEVICE :: ObjectType
- pattern OBJECT_TYPE_DEVICE_MEMORY :: ObjectType
- pattern OBJECT_TYPE_DISPLAY_KHR :: ObjectType
- pattern OBJECT_TYPE_DISPLAY_MODE_KHR :: ObjectType
- pattern OBJECT_TYPE_EVENT :: ObjectType
- pattern OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV :: ObjectType
- pattern OBJECT_TYPE_FENCE :: ObjectType
- pattern OBJECT_TYPE_FRAMEBUFFER :: ObjectType
- pattern OBJECT_TYPE_IMAGE :: ObjectType
- pattern OBJECT_TYPE_IMAGE_VIEW :: ObjectType
- pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT :: ObjectType
- pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV :: ObjectType
- pattern OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT :: ObjectType
- pattern OBJECT_TYPE_INSTANCE :: ObjectType
- pattern OBJECT_TYPE_MICROMAP_EXT :: ObjectType
- pattern OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV :: ObjectType
- pattern OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL :: ObjectType
- pattern OBJECT_TYPE_PHYSICAL_DEVICE :: ObjectType
- pattern OBJECT_TYPE_PIPELINE :: ObjectType
- pattern OBJECT_TYPE_PIPELINE_BINARY_KHR :: ObjectType
- pattern OBJECT_TYPE_PIPELINE_CACHE :: ObjectType
- pattern OBJECT_TYPE_PIPELINE_LAYOUT :: ObjectType
- pattern OBJECT_TYPE_PRIVATE_DATA_SLOT :: ObjectType
- pattern OBJECT_TYPE_QUERY_POOL :: ObjectType
- pattern OBJECT_TYPE_QUEUE :: ObjectType
- pattern OBJECT_TYPE_RENDER_PASS :: ObjectType
- pattern OBJECT_TYPE_SAMPLER :: ObjectType
- pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: ObjectType
- pattern OBJECT_TYPE_SEMAPHORE :: ObjectType
- pattern OBJECT_TYPE_SHADER_EXT :: ObjectType
- pattern OBJECT_TYPE_SHADER_MODULE :: ObjectType
- pattern OBJECT_TYPE_SURFACE_KHR :: ObjectType
- pattern OBJECT_TYPE_SWAPCHAIN_KHR :: ObjectType
- pattern OBJECT_TYPE_TENSOR_ARM :: ObjectType
- pattern OBJECT_TYPE_TENSOR_VIEW_ARM :: ObjectType
- pattern OBJECT_TYPE_UNKNOWN :: ObjectType
- pattern OBJECT_TYPE_VALIDATION_CACHE_EXT :: ObjectType
- newtype VendorId where
- VendorId Int32
- pattern VENDOR_ID_CODEPLAY :: VendorId
- pattern VENDOR_ID_KAZAN :: VendorId
- pattern VENDOR_ID_KHRONOS :: VendorId
- pattern VENDOR_ID_MESA :: VendorId
- pattern VENDOR_ID_MOBILEYE :: VendorId
- pattern VENDOR_ID_POCL :: VendorId
- pattern VENDOR_ID_VIV :: VendorId
- pattern VENDOR_ID_VSI :: VendorId
Documentation
data MemoryBarrier Source #
VkMemoryBarrier - Structure specifying a global memory barrier
Description
The first
access scope
is limited to access types in the
source access mask
specified by srcAccessMask and, if a
MemoryBarrierAccessFlags3KHR is
passed in pNext, srcAccessMask3.
The second
access scope
is limited to access types in the
destination access mask
specified by dstAccessMask and, if a
MemoryBarrierAccessFlags3KHR is
passed in pNext, dstAccessMask3.
Valid Usage (Implicit)
See Also
VK_VERSION_1_0,
AccessFlags,
StructureType,
cmdPipelineBarrier,
cmdWaitEvents
Constructors
| MemoryBarrier | |
Fields
| |
Instances
data BufferMemoryBarrier (es :: [Type]) Source #
VkBufferMemoryBarrier - Structure specifying a buffer memory barrier
Description
The first
access scope
is limited to access to memory through the specified buffer range, via
access types in the
source access mask
specified by srcAccessMask and, if a
MemoryBarrierAccessFlags3KHR is
passed in pNext, srcAccessMask3. If the source access mask includes
ACCESS_HOST_WRITE_BIT, a
memory domain operation
is performed where available memory in the host domain is also made
available to the device domain.
The second
access scope
is limited to access to memory through the specified buffer range, via
access types in the
destination access mask
specified by dstAccessMask and, if a
MemoryBarrierAccessFlags3KHR is
passed in pNext, dstAccessMask3. If the destination access mask
includes ACCESS_HOST_WRITE_BIT or
ACCESS_HOST_READ_BIT, a
memory domain operation
is performed where available memory in the device domain is also made
available to the host domain.
Host writes to device memory that was allocated without
MEMORY_PROPERTY_HOST_COHERENT_BIT
have to be flushed with flushMappedMemoryRanges
before they can be accessed safely on the device. Similarly, device
writes to such memory have to be invalidated with
invalidateMappedMemoryRanges before they can be
accessed safely on the host.
Memory allocated with
MEMORY_PROPERTY_HOST_COHERENT_BIT
does not need to have these additional operations performed.
If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, and
srcQueueFamilyIndex is equal to the current queue family, then the
memory barrier defines a
queue family release operation
for the specified buffer range, and if dependencyFlags did not include
DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR,
the second synchronization scope of the calling command does not apply
to this operation.
If dstQueueFamilyIndex is not equal to srcQueueFamilyIndex, and
dstQueueFamilyIndex is equal to the current queue family, then the
memory barrier defines a
queue family acquire operation
for the specified buffer range, and if dependencyFlags did not include
DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR,
the first synchronization scope of the calling command does not apply to
this operation.
Valid Usage
- If
sizeis not equal toWHOLE_SIZE,sizemust be greater than0 - If
sizeis not equal toWHOLE_SIZE,sizemust be less than or equal to than the size ofbufferminusoffset - If
bufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,srcQueueFamilyIndexmust beQUEUE_FAMILY_EXTERNAL,QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,dstQueueFamilyIndexmust beQUEUE_FAMILY_EXTERNAL,QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family - If the
VK_KHR_external_memory
extension is not enabled, and the value of
ApplicationInfo::apiVersionused to create theInstanceis not greater than or equal to Version 1.1,srcQueueFamilyIndexmust not beQUEUE_FAMILY_EXTERNAL - If the
VK_KHR_external_memory
extension is not enabled, and the value of
ApplicationInfo::apiVersionused to create theInstanceis not greater than or equal to Version 1.1,dstQueueFamilyIndexmust not beQUEUE_FAMILY_EXTERNAL - If the
VK_EXT_queue_family_foreign
extension is not enabled
srcQueueFamilyIndexmust not beQUEUE_FAMILY_FOREIGN_EXT - If the
VK_EXT_queue_family_foreign
extension is not enabled
dstQueueFamilyIndexmust not beQUEUE_FAMILY_FOREIGN_EXT - If the
synchronization2
feature is not enabled, and
bufferwas created with a sharing mode ofSHARING_MODE_CONCURRENT, at least one ofsrcQueueFamilyIndexanddstQueueFamilyIndexmust beQUEUE_FAMILY_IGNORED - If the
synchronization2
feature is not enabled, and
bufferwas created with a sharing mode ofSHARING_MODE_CONCURRENT,srcQueueFamilyIndexmust beQUEUE_FAMILY_IGNOREDorQUEUE_FAMILY_EXTERNAL - If the
synchronization2
feature is not enabled, and
bufferwas created with a sharing mode ofSHARING_MODE_CONCURRENT,dstQueueFamilyIndexmust beQUEUE_FAMILY_IGNOREDorQUEUE_FAMILY_EXTERNAL
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
-
pNextmust beNULLor a pointer to a valid instance ofExternalMemoryAcquireUnmodifiedEXT - The
sTypevalue of each structure in thepNextchain must be unique -
buffermust be a validBufferhandle
See Also
VK_VERSION_1_0,
AccessFlags,
Buffer,
DeviceSize,
StructureType,
cmdPipelineBarrier,
cmdWaitEvents
Constructors
| BufferMemoryBarrier | |
Fields
| |
Instances
data ImageMemoryBarrier (es :: [Type]) Source #
VkImageMemoryBarrier - Structure specifying the parameters of an image memory barrier
Description
The first
access scope
is limited to access to memory through the specified image subresource
range, via access types in the
source access mask
specified by srcAccessMask. If srcAccessMask includes
ACCESS_HOST_WRITE_BIT, memory
writes performed by that access type are also made visible, as that
access type is not performed through a resource.
The second
access scope
is limited to access to memory through the specified image subresource
range, via access types in the
destination access mask
specified by dstAccessMask. If dstAccessMask includes
ACCESS_HOST_WRITE_BIT or
ACCESS_HOST_READ_BIT, available
memory writes are also made visible to accesses of those types, as those
access types are not performed through a resource.
If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, and
srcQueueFamilyIndex is equal to the current queue family, then the
memory barrier defines a
queue family release operation
for the specified image subresource range, and if dependencyFlags did
not include
DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR,
the second synchronization scope of the calling command does not apply
to this operation.
If dstQueueFamilyIndex is not equal to srcQueueFamilyIndex, and
dstQueueFamilyIndex is equal to the current queue family, then the
memory barrier defines a
queue family acquire operation
for the specified image subresource range, and if dependencyFlags did
not include
DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR,
the first synchronization scope of the calling command does not apply to
this operation.
If the
synchronization2
feature is not enabled or oldLayout is not equal to newLayout,
oldLayout and newLayout define an
image layout transition
for the specified image subresource range.
If the
synchronization2
feature is enabled, srcQueueFamilyIndex and dstQueueFamilyIndex are
equal, and oldLayout and newLayout are also equal, the layout values
are ignored and the image contents are preserved regardless of the
values of oldLayout, newLayout, and the current layout of the image.
If image is a 3D image created with
IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
and the
maintenance9
feature is enabled, the baseArrayLayer and layerCount members of
subresourceRange specify the subset of slices of the 3D image affected
by the memory barrier, including the layout transition. Any slices of a
3D image not included in subresourceRange are not affected by the
memory barrier and remain in their existing layout.
If image has a
multi-planar format
and the image is disjoint, then including
IMAGE_ASPECT_COLOR_BIT in the
aspectMask member of subresourceRange is equivalent to including
IMAGE_ASPECT_PLANE_0_BIT,
IMAGE_ASPECT_PLANE_1_BIT, and
(for three-plane formats only)
IMAGE_ASPECT_PLANE_2_BIT.
Valid Usage
- If
layouts are not ignored,
oldLayoutmust beIMAGE_LAYOUT_UNDEFINEDor the current layout of the image subresources affected by the barrier
- If
layouts are not ignored,
newLayoutmust not beIMAGE_LAYOUT_UNDEFINEDorIMAGE_LAYOUT_ZERO_INITIALIZED_EXTorIMAGE_LAYOUT_PREINITIALIZED - If
imagewas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,srcQueueFamilyIndexmust beQUEUE_FAMILY_EXTERNAL,QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family - If
imagewas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,dstQueueFamilyIndexmust beQUEUE_FAMILY_EXTERNAL,QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family - If the
VK_KHR_external_memory
extension is not enabled, and the value of
ApplicationInfo::apiVersionused to create theInstanceis not greater than or equal to Version 1.1,srcQueueFamilyIndexmust not beQUEUE_FAMILY_EXTERNAL - If the
VK_KHR_external_memory
extension is not enabled, and the value of
ApplicationInfo::apiVersionused to create theInstanceis not greater than or equal to Version 1.1,dstQueueFamilyIndexmust not beQUEUE_FAMILY_EXTERNAL - If the
VK_EXT_queue_family_foreign
extension is not enabled
srcQueueFamilyIndexmust not beQUEUE_FAMILY_FOREIGN_EXT - If the
VK_EXT_queue_family_foreign
extension is not enabled
dstQueueFamilyIndexmust not beQUEUE_FAMILY_FOREIGN_EXT -
subresourceRange.baseMipLevelmust be less than themipLevelsspecified inImageCreateInfowhenimagewas created - If
subresourceRange.levelCountis notREMAINING_MIP_LEVELS,subresourceRange.baseMipLevel+subresourceRange.levelCountmust be less than or equal to themipLevelsspecified inImageCreateInfowhenimagewas created - If
imageis not a 3D image or was created withoutIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITset, or the maintenance9 feature is not enabled,subresourceRange.baseArrayLayermust be less than thearrayLayersspecified inImageCreateInfowhenimagewas created - If the
maintenance9
feature is enabled and
imageis a 3D image created withIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITset,subresourceRange.baseArrayLayermust be less than the depth computed frombaseMipLevelandextent.depthspecified inImageCreateInfowhenimagewas created, according to the formula defined in Image Mip Level Sizing - If the
maintenance9
feature is enabled and
imageis a 3D image created withIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITset and eithersubresourceRange.baseArrayLayeris not equal to 0 orsubresourceRange.layerCountis not equal toREMAINING_ARRAY_LAYERS,subresourceRange.levelCountmust be 1 - If
imageis not a 3D image or was created withoutIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITset, or the maintenance9 feature is not enabled, andsubresourceRange.layerCountis notREMAINING_ARRAY_LAYERS,subresourceRange.baseArrayLayer+subresourceRange.layerCountmust be less than or equal to thearrayLayersspecified inImageCreateInfowhenimagewas created - If the
maintenance9
feature is enabled,
subresourceRange.layerCountis notREMAINING_ARRAY_LAYERS, andimageis a 3D image created withIMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITset,subresourceRange.baseArrayLayer+subresourceRange.layerCountmust be less than or equal to the depth computed frombaseMipLevelandextent.depthspecified inImageCreateInfowhenimagewas created, according to the formula defined in Image Mip Level Sizing - If
imageis non-sparse then the image or each specified disjoint plane must be bound completely and contiguously to a singleDeviceMemoryobject - If
imagehas a color format that is single-plane, then theaspectMaskmember ofsubresourceRangemust beIMAGE_ASPECT_COLOR_BIT - If
imagehas a color format and is not disjoint, then theaspectMaskmember ofsubresourceRangemust beIMAGE_ASPECT_COLOR_BIT - If
imagehas a multi-planar format and the image is disjoint, then theaspectMaskmember ofsubresourceRangemust include at least one multi-planar aspect mask bit orIMAGE_ASPECT_COLOR_BIT - If
imagehas a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then theaspectMaskmember ofsubresourceRangemust include bothIMAGE_ASPECT_DEPTH_BITandIMAGE_ASPECT_STENCIL_BIT - If
imagehas a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then theaspectMaskmember ofsubresourceRangemust include either or bothIMAGE_ASPECT_DEPTH_BITandIMAGE_ASPECT_STENCIL_BIT - If
imagehas a depth-only format then theaspectMaskmember ofsubresourceRangemust beIMAGE_ASPECT_DEPTH_BIT - If
imagehas a stencil-only format then theaspectMaskmember ofsubresourceRangemust beIMAGE_ASPECT_STENCIL_BIT - If the
aspectMaskmember ofsubresourceRangeincludesIMAGE_ASPECT_DEPTH_BIT,oldLayoutandnewLayoutmust not be one ofIMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMALorIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL - If the
aspectMaskmember ofsubresourceRangeincludesIMAGE_ASPECT_STENCIL_BIT,oldLayoutandnewLayoutmust not be one ofIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMALorIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL -
subresourceRange.aspectMaskmust be valid for theformattheimagewas created with - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthenimagemust have been created with theIMAGE_USAGE_COLOR_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthenimagemust have been created with theIMAGE_USAGE_SAMPLED_BITorIMAGE_USAGE_INPUT_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthenimagemust have been created with theIMAGE_USAGE_TRANSFER_SRC_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_TRANSFER_DST_OPTIMALthenimagemust have been created with theIMAGE_USAGE_TRANSFER_DST_BITusage flag set - If the
zeroInitializeDeviceMemory
feature is not enabled,
oldLayoutmust not beIMAGE_LAYOUT_ZERO_INITIALIZED_EXT - If
oldLayoutisIMAGE_LAYOUT_ZERO_INITIALIZED_EXT, then all subresources must be included in the barrier - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMALthenimagemust have been created with at least one of theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_SAMPLED_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BITusage flags set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMALthenimagemust have been created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created with at least one of theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_SAMPLED_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BITusage flags set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created with theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If the
synchronization2
feature is not enabled,
oldLayoutmust not beIMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHRorIMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR - If the
synchronization2
feature is not enabled,
newLayoutmust not beIMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHRorIMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_ATTACHMENT_OPTIMAL,imagemust have been created with theIMAGE_USAGE_COLOR_ATTACHMENT_BITorIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_READ_ONLY_OPTIMAL,imagemust have been created with at least one of theIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_SAMPLED_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BITusage flags set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHRthenimagemust have been created with theIMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRusage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR usage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR usage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR usage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR usage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR usage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR usage flag set - If
layouts are not ignored,
oldLayoutornewLayoutis VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR thenimagemust have been created with the VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR usage flags set - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTthenimagemust have been created with either theIMAGE_USAGE_COLOR_ATTACHMENT_BITorIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flags set, and theIMAGE_USAGE_INPUT_ATTACHMENT_BITorIMAGE_USAGE_SAMPLED_BITusage flags set, and theIMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTusage flag set - If
the
attachmentFeedbackLoopLayout
feature is not enabled,
newLayoutmust not beIMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT - If
layouts are not ignored,
oldLayoutornewLayoutisIMAGE_LAYOUT_RENDERING_LOCAL_READthenimagemust have been created with either theIMAGE_USAGE_STORAGE_BITusage flag set, or with both theIMAGE_USAGE_INPUT_ATTACHMENT_BITusage flag and either of theIMAGE_USAGE_COLOR_ATTACHMENT_BITorIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage flags set - If the
dynamicRenderingLocalRead
feature is not enabled,
oldLayoutmust not beIMAGE_LAYOUT_RENDERING_LOCAL_READ - If the
dynamicRenderingLocalRead
feature is not enabled,
newLayoutmust not beIMAGE_LAYOUT_RENDERING_LOCAL_READ - If the
synchronization2
feature is not enabled, and
imagewas created with a sharing mode ofSHARING_MODE_CONCURRENT, at least one ofsrcQueueFamilyIndexanddstQueueFamilyIndexmust beQUEUE_FAMILY_IGNORED - If the
synchronization2
feature is not enabled, and
imagewas created with a sharing mode ofSHARING_MODE_CONCURRENT,srcQueueFamilyIndexmust beQUEUE_FAMILY_IGNOREDorQUEUE_FAMILY_EXTERNAL - If the
synchronization2
feature is not enabled, and
imagewas created with a sharing mode ofSHARING_MODE_CONCURRENT,dstQueueFamilyIndexmust beQUEUE_FAMILY_IGNOREDorQUEUE_FAMILY_EXTERNAL - If
dstQueueFamilyIndexisQUEUE_FAMILY_EXTERNALandimagewas created withEXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BITorEXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BITinExternalMemoryImageCreateInfo::handleTypes,newLayoutmust beIMAGE_LAYOUT_GENERAL - If
srcQueueFamilyIndexisQUEUE_FAMILY_EXTERNALandimagewas created withEXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BITorEXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BITinExternalMemoryImageCreateInfo::handleTypes,oldLayoutmust beIMAGE_LAYOUT_GENERALorIMAGE_LAYOUT_UNDEFINED
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofExternalMemoryAcquireUnmodifiedEXTorSampleLocationsInfoEXT - The
sTypevalue of each structure in thepNextchain must be unique -
oldLayoutmust be a validImageLayoutvalue -
newLayoutmust be a validImageLayoutvalue -
imagemust be a validImagehandle -
subresourceRangemust be a validImageSubresourceRangestructure
See Also
VK_VERSION_1_0,
AccessFlags,
Image,
ImageLayout,
ImageSubresourceRange,
StructureType,
cmdPipelineBarrier,
cmdWaitEvents
Constructors
| ImageMemoryBarrier | |
Fields
| |
Instances
data PipelineCacheHeaderVersionOne Source #
VkPipelineCacheHeaderVersionOne - Structure describing the layout of the pipeline cache header
Description
Unlike most structures declared by the Vulkan API, all fields of this structure are written with the least significant byte first, regardless of host byte-order.
The C language specification does not define the packing of structure members. This layout assumes tight structure member packing, with members laid out in the order listed in the structure, and the intended size of the structure is 32 bytes. If a compiler produces code that diverges from that pattern, applications must employ another method to set values at the correct offsets.
Valid Usage (Implicit)
See Also
Constructors
| PipelineCacheHeaderVersionOne | |
Fields
| |
Instances
data DrawIndirectCommand Source #
VkDrawIndirectCommand - Structure specifying an indirect drawing command
Description
The members of DrawIndirectCommand have the same meaning as the
similarly named parameters of
cmdDraw.
Valid Usage
- If the bound graphics
pipeline state was created with
PipelineVertexInputDivisorStateCreateInfoin thepNextchain ofGraphicsPipelineCreateInfo::pVertexInputState, any member ofPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisorshas a value other than1indivisor, andPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstanceisFALSE, thenfirstInstancemust be0
- If
shader objects
are used for drawing or the bound graphics pipeline state was
created with the
DYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled, any member of thepVertexBindingDescriptionsparameter to thecmdSetVertexInputEXTcall that sets this dynamic state has a value other than1indivisor, andPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstanceisFALSE, thenfirstInstancemust be0 - If the
drawIndirectFirstInstance
feature is not enabled,
firstInstancemust be0
See Also
Constructors
| DrawIndirectCommand | |
Fields
| |
Instances
data DrawIndexedIndirectCommand Source #
VkDrawIndexedIndirectCommand - Structure specifying an indexed indirect drawing command
Description
The members of DrawIndexedIndirectCommand have the same meaning as the
similarly named parameters of
cmdDrawIndexed.
Valid Usage
- If the bound
graphics pipeline state was created with
PipelineVertexInputDivisorStateCreateInfoin thepNextchain ofGraphicsPipelineCreateInfo::pVertexInputState, any member ofPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisorshas a value other than1indivisor, andPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstanceisFALSE, thenfirstInstancemust be0
- If
shader objects
are used for drawing or the bound graphics pipeline state was
created with the
DYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled, any member of thepVertexBindingDescriptionsparameter to thecmdSetVertexInputEXTcall that sets this dynamic state has a value other than1indivisor, andPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstanceisFALSE, thenfirstInstancemust be0 - If the
robustBufferAccess2
feature is not enabled, (
indexSize× (firstIndex+indexCount) +offset) must be less than or equal to the size of the bound index buffer, withindexSizebeing based on the type specified byindexType, where the index buffer,indexType, andoffsetare specified viacmdBindIndexBufferorcmdBindIndexBuffer2. IfcmdBindIndexBuffer2is used to bind the index buffer, the size of the bound index buffer iscmdBindIndexBuffer2::size - If the
drawIndirectFirstInstance
feature is not enabled,
firstInstancemust be0
See Also
Constructors
| DrawIndexedIndirectCommand | |
Fields
| |
Instances
data DispatchIndirectCommand Source #
VkDispatchIndirectCommand - Structure specifying an indirect dispatching command
Description
The members of DispatchIndirectCommand have the same meaning as the
corresponding parameters of
cmdDispatch.
Valid Usage
See Also
Constructors
| DispatchIndirectCommand | |
Fields
| |
Instances
data BaseOutStructure Source #
VkBaseOutStructure - Base structure for a read-only pointer chain
Description
BaseOutStructure can be used to facilitate iterating through a
structure pointer chain that returns data back to the application.
See Also
VK_VERSION_1_0,
BaseOutStructure, StructureType,
getPipelinePropertiesEXT
Constructors
| BaseOutStructure | |
Fields
| |
Instances
data BaseInStructure Source #
VkBaseInStructure - Base structure for a read-only pointer chain
Description
BaseInStructure can be used to facilitate iterating through a
read-only structure pointer chain.
See Also
Constructors
| BaseInStructure | |
Fields
| |
Instances
newtype PipelineCacheHeaderVersion Source #
VkPipelineCacheHeaderVersion - Encode pipeline cache version
Description
PIPELINE_CACHE_HEADER_VERSION_ONEspecifies version one of the pipeline cache, described byPipelineCacheHeaderVersionOne.
PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOMspecifies a pipeline cache for offline built data graph models, described byPipelineCacheHeaderVersionDataGraphQCOM.
See Also
VK_VERSION_1_0,
PipelineCacheHeaderVersionDataGraphQCOM,
PipelineCacheHeaderVersionOne,
createPipelineCache,
getPipelineCacheData
Constructors
| PipelineCacheHeaderVersion Int32 |
Bundled Patterns
Instances
newtype ObjectType Source #
VkObjectType - Specify an enumeration to track object handle types
Description
'
ObjectType and Vulkan Handle Relationship
See Also
VK_VERSION_1_0,
DebugUtilsObjectNameInfoEXT,
DebugUtilsObjectTagInfoEXT,
DeviceMemoryReportCallbackDataEXT,
getPrivateData,
getPrivateData,
setPrivateData,
setPrivateData
Constructors
| ObjectType Int32 |
Bundled Patterns
Instances
VkVendorId - Khronos vendor IDs
Description
Khronos vendor IDs may be allocated by vendors at any time. Only the
latest canonical versions of this Specification, of the corresponding
vk.xml API Registry, and of the corresponding vulkan_core.h header
file must contain all reserved Khronos vendor IDs.
Only Khronos vendor IDs are given symbolic names at present. PCI vendor IDs returned by the implementation can be looked up in the PCI-SIG database.
See Also
Bundled Patterns
| pattern VENDOR_ID_CODEPLAY :: VendorId | |
| pattern VENDOR_ID_KAZAN :: VendorId | |
| pattern VENDOR_ID_KHRONOS :: VendorId | |
| pattern VENDOR_ID_MESA :: VendorId | |
| pattern VENDOR_ID_MOBILEYE :: VendorId | |
| pattern VENDOR_ID_POCL :: VendorId | |
| pattern VENDOR_ID_VIV :: VendorId | |
| pattern VENDOR_ID_VSI :: VendorId |
Instances
| Eq VendorId Source # | |
| Ord VendorId Source # | |
Defined in Vulkan.Core10.Enums.VendorId | |
| Storable VendorId Source # | |
Defined in Vulkan.Core10.Enums.VendorId | |
| Read VendorId Source # | |
| Show VendorId Source # | |
| Zero VendorId Source # | |
Defined in Vulkan.Core10.Enums.VendorId | |