| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Core10.OtherTypes
Synopsis
- data MemoryBarrier = MemoryBarrier {}
- data BufferMemoryBarrier = BufferMemoryBarrier {}
- data ImageMemoryBarrier (es :: [Type]) = ImageMemoryBarrier {}
- data DrawIndirectCommand = DrawIndirectCommand {}
- data DrawIndexedIndirectCommand = DrawIndexedIndirectCommand {}
- data DispatchIndirectCommand = DispatchIndirectCommand {}
- data BaseOutStructure = BaseOutStructure {}
- data BaseInStructure = BaseInStructure {}
- newtype ObjectType where
- ObjectType Int32
- pattern OBJECT_TYPE_UNKNOWN :: ObjectType
- pattern OBJECT_TYPE_INSTANCE :: ObjectType
- pattern OBJECT_TYPE_PHYSICAL_DEVICE :: ObjectType
- pattern OBJECT_TYPE_DEVICE :: ObjectType
- pattern OBJECT_TYPE_QUEUE :: ObjectType
- pattern OBJECT_TYPE_SEMAPHORE :: ObjectType
- pattern OBJECT_TYPE_COMMAND_BUFFER :: ObjectType
- pattern OBJECT_TYPE_FENCE :: ObjectType
- pattern OBJECT_TYPE_DEVICE_MEMORY :: ObjectType
- pattern OBJECT_TYPE_BUFFER :: ObjectType
- pattern OBJECT_TYPE_IMAGE :: ObjectType
- pattern OBJECT_TYPE_EVENT :: ObjectType
- pattern OBJECT_TYPE_QUERY_POOL :: ObjectType
- pattern OBJECT_TYPE_BUFFER_VIEW :: ObjectType
- pattern OBJECT_TYPE_IMAGE_VIEW :: ObjectType
- pattern OBJECT_TYPE_SHADER_MODULE :: ObjectType
- pattern OBJECT_TYPE_PIPELINE_CACHE :: ObjectType
- pattern OBJECT_TYPE_PIPELINE_LAYOUT :: ObjectType
- pattern OBJECT_TYPE_RENDER_PASS :: ObjectType
- pattern OBJECT_TYPE_PIPELINE :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: ObjectType
- pattern OBJECT_TYPE_SAMPLER :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_POOL :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_SET :: ObjectType
- pattern OBJECT_TYPE_FRAMEBUFFER :: ObjectType
- pattern OBJECT_TYPE_COMMAND_POOL :: ObjectType
- pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV :: ObjectType
- pattern OBJECT_TYPE_DEFERRED_OPERATION_KHR :: ObjectType
- pattern OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL :: ObjectType
- pattern OBJECT_TYPE_VALIDATION_CACHE_EXT :: ObjectType
- pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR :: ObjectType
- pattern OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT :: ObjectType
- pattern OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT :: ObjectType
- pattern OBJECT_TYPE_DISPLAY_MODE_KHR :: ObjectType
- pattern OBJECT_TYPE_DISPLAY_KHR :: ObjectType
- pattern OBJECT_TYPE_SWAPCHAIN_KHR :: ObjectType
- pattern OBJECT_TYPE_SURFACE_KHR :: ObjectType
- pattern OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE :: ObjectType
- pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: ObjectType
- newtype VendorId where
- VendorId Int32
- pattern VENDOR_ID_VIV :: VendorId
- pattern VENDOR_ID_VSI :: VendorId
- pattern VENDOR_ID_KAZAN :: VendorId
- pattern VENDOR_ID_CODEPLAY :: 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.
The second
access scope
is limited to access types in the
destination access mask
specified by dstAccessMask.
Valid Usage (Implicit)
See Also
AccessFlags,
StructureType,
cmdPipelineBarrier,
cmdWaitEvents
Constructors
| MemoryBarrier | |
Fields
| |
Instances
data BufferMemoryBarrier 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. 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 buffer 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 buffer range, and the second access scope includes no
access, as if dstAccessMask was 0.
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 the first access scope includes no
access, as if srcAccessMask was 0.
Valid Usage
offsetmust be less than the size ofbuffer
- 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
bufferwas created with a sharing mode ofSHARING_MODE_CONCURRENT, at least one ofsrcQueueFamilyIndexanddstQueueFamilyIndexmust beQUEUE_FAMILY_IGNORED - If
bufferwas created with a sharing mode ofSHARING_MODE_CONCURRENT, and one ofsrcQueueFamilyIndexanddstQueueFamilyIndexisQUEUE_FAMILY_IGNORED, the other must beQUEUE_FAMILY_IGNOREDor a special queue family reserved for external memory ownership transfers, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVEandsrcQueueFamilyIndexisQUEUE_FAMILY_IGNORED,dstQueueFamilyIndexmust also beQUEUE_FAMILY_IGNORED - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVEandsrcQueueFamilyIndexis notQUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVEanddstQueueFamilyIndexis notQUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare notQUEUE_FAMILY_IGNORED, at least one of them must be the same as the family of the queue that will execute this barrier - If
bufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
pNextmust beNULLbuffermust be a validBufferhandle
See Also
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 the second access scope
includes no access, as if dstAccessMask was 0.
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 the first access scope
includes no access, as if srcAccessMask was 0.
If oldLayout is not equal to newLayout, then the memory barrier
defines an
image layout transition
for the specified image subresource range.
Layout transitions that are performed via image memory barriers execute in their entirety in submission order, relative to other image layout transitions submitted to the same queue, including those performed by render passes. In effect there is an implicit execution dependency from each such layout transition to all layout transitions previously submitted to the same queue.
The image layout of each image subresource of a depth/stencil image
created with
IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
is dependent on the last sample locations used to render to the image
subresource as a depth/stencil attachment, thus when the image member
of a ImageMemoryBarrier is an image created with this flag the
application can include a
SampleLocationsInfoEXT
structure in the pNext chain of ImageMemoryBarrier to specify the
sample locations to use during the image layout transition.
If the
SampleLocationsInfoEXT
structure included in the pNext chain of ImageMemoryBarrier does not
match the sample location state last used to render to the image
subresource range specified by subresourceRange or if no
SampleLocationsInfoEXT
structure is included in the pNext chain of ImageMemoryBarrier, then
the contents of the given image subresource range becomes undefined as
if oldLayout would equal
IMAGE_LAYOUT_UNDEFINED.
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
oldLayoutmust beIMAGE_LAYOUT_UNDEFINEDor the current layout of the image subresources affected by the barrier
newLayoutmust not beIMAGE_LAYOUT_UNDEFINEDorIMAGE_LAYOUT_PREINITIALIZED- If
imagewas created with a sharing mode ofSHARING_MODE_CONCURRENT, at least one ofsrcQueueFamilyIndexanddstQueueFamilyIndexmust beQUEUE_FAMILY_IGNORED - If
imagewas created with a sharing mode ofSHARING_MODE_CONCURRENT, and one ofsrcQueueFamilyIndexanddstQueueFamilyIndexisQUEUE_FAMILY_IGNORED, the other must beQUEUE_FAMILY_IGNOREDor a special queue family reserved for external memory transfers, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers - If
imagewas created with a sharing mode ofSHARING_MODE_EXCLUSIVEandsrcQueueFamilyIndexisQUEUE_FAMILY_IGNORED,dstQueueFamilyIndexmust also beQUEUE_FAMILY_IGNORED - If
imagewas created with a sharing mode ofSHARING_MODE_EXCLUSIVEandsrcQueueFamilyIndexis notQUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers - If
imagewas created with a sharing mode ofSHARING_MODE_EXCLUSIVEanddstQueueFamilyIndexis notQUEUE_FAMILY_IGNORED, it must be a valid queue family or a special queue family reserved for external memory transfers, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers - If
imagewas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare notQUEUE_FAMILY_IGNORED, at least one of them must be the same as the family of the queue that will execute this barrier 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 subresourceRange.baseArrayLayermust be less than thearrayLayersspecified inImageCreateInfowhenimagewas created- If
subresourceRange.layerCountis notREMAINING_ARRAY_LAYERS,subresourceRange.baseArrayLayer+subresourceRange.layerCountmust be less than or equal to thearrayLayersspecified inImageCreateInfowhenimagewas created - 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/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 color format and either the format is single-plane or the image is not disjoint then theaspectMaskmember ofsubresourceRangemust only includeIMAGE_ASPECT_COLOR_BIT - If
imagehas a multi-planar format and the image is disjoint, then theaspectMaskmember ofsubresourceRangemust include either at least one ofIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, andIMAGE_ASPECT_PLANE_2_BIT; or must includeIMAGE_ASPECT_COLOR_BIT - If
imagehas a multi-planar format with only two planes, then theaspectMaskmember ofsubresourceRangemust not includeIMAGE_ASPECT_PLANE_2_BIT - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_COLOR_ATTACHMENT_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthenimagemust have been created withIMAGE_USAGE_SAMPLED_BITorIMAGE_USAGE_INPUT_ATTACHMENT_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthenimagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITset - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_TRANSFER_DST_OPTIMALthenimagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITset - If
imageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject - If either
oldLayoutornewLayoutisIMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NVthenimagemust have been created withIMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NVset
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
pNextmust beNULLor a pointer to a valid instance ofSampleLocationsInfoEXT- The
sTypevalue of each struct in thepNextchain must be unique oldLayoutmust be a validImageLayoutvaluenewLayoutmust be a validImageLayoutvalueimagemust be a validImagehandlesubresourceRangemust be a validImageSubresourceRangestructure
See Also
AccessFlags,
Image,
ImageLayout,
ImageSubresourceRange,
StructureType,
cmdPipelineBarrier,
cmdWaitEvents
Constructors
| ImageMemoryBarrier | |
Fields
| |
Instances
data DrawIndirectCommand Source #
VkDrawIndirectCommand - Structure specifying a draw indirect command
Description
The members of DrawIndirectCommand have the same meaning as the
similarly named parameters of
cmdDraw.
Valid Usage
- For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input
- If the
drawIndirectFirstInstance
feature is not enabled,
firstInstancemust be0
See Also
Constructors
| DrawIndirectCommand | |
Fields
| |
Instances
data DrawIndexedIndirectCommand Source #
VkDrawIndexedIndirectCommand - Structure specifying a draw indexed indirect command
Description
The members of DrawIndexedIndirectCommand have the same meaning as the
similarly named parameters of
cmdDrawIndexed.
Valid Usage
- For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input
- (
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 viacmdBindIndexBuffer - If the
drawIndirectFirstInstance
feature is not enabled,
firstInstancemust be0
See Also
Constructors
| DrawIndexedIndirectCommand | |
Fields
| |
Instances
data DispatchIndirectCommand Source #
VkDispatchIndirectCommand - Structure specifying a dispatch indirect 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
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 ObjectType Source #
VkObjectType - Specify an enumeration to track object handle types
Description
'
VkObjectType and Vulkan Handle Relationship
See Also
Constructors
| ObjectType Int32 |
Bundled Patterns
Instances
VkVendorId - Khronos vendor IDs
Description
Note
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
No cross-references are available
Bundled Patterns
| pattern VENDOR_ID_VIV :: VendorId | |
| pattern VENDOR_ID_VSI :: VendorId | |
| pattern VENDOR_ID_KAZAN :: VendorId | |
| pattern VENDOR_ID_CODEPLAY :: VendorId |
Instances
| Eq VendorId Source # | |
| Ord VendorId Source # | |
Defined in Graphics.Vulkan.Core10.Enums.VendorId | |
| Read VendorId Source # | |
| Show VendorId Source # | |
| Storable VendorId Source # | |
Defined in Graphics.Vulkan.Core10.Enums.VendorId | |
| Zero VendorId Source # | |
Defined in Graphics.Vulkan.Core10.Enums.VendorId | |