Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype VkValidationCacheHeaderVersionEXT = VkValidationCacheHeaderVersionEXT Int32
- pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: VkValidationCacheHeaderVersionEXT
- newtype VkValidationCacheCreateFlagsEXT = VkValidationCacheCreateFlagsEXT VkFlags
- pattern VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT :: VkStructureType
- pattern VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT :: VkStructureType
- pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT :: VkObjectType
- pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION :: Integral a => a
- pattern VK_EXT_VALIDATION_CACHE_EXTENSION_NAME :: (Eq a, IsString a) => a
- pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT :: VkDebugReportObjectTypeEXT
- type VkValidationCacheEXT = Ptr VkValidationCacheEXT_T
- vkCreateValidationCacheEXT :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkValidationCacheCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pValidationCache" ::: Ptr VkValidationCacheEXT) -> IO VkResult
- vkDestroyValidationCacheEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
- vkGetValidationCacheDataEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult
- vkMergeValidationCachesEXT :: ("device" ::: VkDevice) -> ("dstCache" ::: VkValidationCacheEXT) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkValidationCacheEXT) -> IO VkResult
- data VkValidationCacheCreateInfoEXT = VkValidationCacheCreateInfoEXT {}
- data VkShaderModuleValidationCacheCreateInfoEXT = VkShaderModuleValidationCacheCreateInfoEXT {}
Documentation
newtype VkValidationCacheHeaderVersionEXT Source #
VkValidationCacheHeaderVersionEXT - Encode validation cache version
See Also
UNKNOWN:vkCreateValdiationCacheEXT, vkGetValidationCacheDataEXT
Instances
pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: VkValidationCacheHeaderVersionEXT Source #
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
specifies version one of
the validation cache.
newtype VkValidationCacheCreateFlagsEXT Source #
VkValidationCacheCreateFlagsEXT - Reserved for future use
Description
VkValidationCacheCreateFlagsEXT
is a bitmask type for setting a mask,
but is currently reserved for future use.
See Also
Instances
pattern VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT :: VkStructureType Source #
pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT :: VkObjectType Source #
pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION :: Integral a => a Source #
pattern VK_EXT_VALIDATION_CACHE_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
type VkValidationCacheEXT = Ptr VkValidationCacheEXT_T Source #
VkValidationCacheEXT - Opaque handle to a validation cache object
See Also
VkShaderModuleValidationCacheCreateInfoEXT
,
vkCreateValidationCacheEXT
, vkDestroyValidationCacheEXT
,
vkGetValidationCacheDataEXT
, vkMergeValidationCachesEXT
vkCreateValidationCacheEXT :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkValidationCacheCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pValidationCache" ::: Ptr VkValidationCacheEXT) -> IO VkResult Source #
vkCreateValidationCacheEXT - Creates a new validation cache
Parameters
device
is the logical device that creates the validation cache object.
pCreateInfo
is a pointer to aVkValidationCacheCreateInfoEXT
structure that contains the initial parameters for the validation cache object.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pValidationCache
is a pointer to aVkValidationCacheEXT
handle in which the resulting validation cache object is returned.
Description
Note
Applications can track and manage the total host memory size of a
validation cache object using the pAllocator
. Applications can limit
the amount of data retrieved from a validation cache object in
vkGetValidationCacheDataEXT
. Implementations should not internally
limit the total number of entries added to a validation cache object or
the total host memory consumed.
Once created, a validation cache can be passed to the
vkCreateShaderModule
command as part of the VkShaderModuleCreateInfo
pNext
chain. If a VkShaderModuleValidationCacheCreateInfoEXT
object
is part of the VkShaderModuleCreateInfo
::pNext
chain, and its
validationCache
field is not
VK_NULL_HANDLE
, the implementation
will query it for possible reuse opportunities and update it with new
content. The use of the validation cache object in these commands is
internally synchronized, and the same validation cache object can be
used in multiple threads simultaneously.
Note
Implementations should make every effort to limit any critical
sections to the actual accesses to the cache, which is expected to be
significantly shorter than the duration of the vkCreateShaderModule
command.
Valid Usage (Implicit)
device
must be a validVkDevice
handle
pCreateInfo
must be a valid pointer to a validVkValidationCacheCreateInfoEXT
structure- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure pValidationCache
must be a valid pointer to aVkValidationCacheEXT
handle
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
See Also
VkAllocationCallbacks
,
VkDevice
,
VkValidationCacheCreateInfoEXT
, VkValidationCacheEXT
vkDestroyValidationCacheEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #
vkDestroyValidationCacheEXT - Destroy a validation cache object
Parameters
device
is the logical device that destroys the validation cache object.
validationCache
is the handle of the validation cache to destroy.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.
Valid Usage
- If
VkAllocationCallbacks
were provided whenvalidationCache
was created, a compatible set of callbacks must be provided here
- If no
VkAllocationCallbacks
were provided whenvalidationCache
was created,pAllocator
must beNULL
Valid Usage (Implicit)
device
must be a validVkDevice
handle
- If
validationCache
is notVK_NULL_HANDLE
,validationCache
must be a validVkValidationCacheEXT
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure - If
validationCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
validationCache
must be externally synchronized
See Also
vkGetValidationCacheDataEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult Source #
vkGetValidationCacheDataEXT - Get the data store from a validation cache
Parameters
device
is the logical device that owns the validation cache.
validationCache
is the validation cache to retrieve data from.pDataSize
is a pointer to a value related to the amount of data in the validation cache, as described below.pData
is eitherNULL
or a pointer to a buffer.
Description
If pData
is NULL
, then the maximum size of the data that can be
retrieved from the validation cache, in bytes, is returned in
pDataSize
. Otherwise, pDataSize
must point to a variable set by
the user to the size of the buffer, in bytes, pointed to by pData
, and
on return the variable is overwritten with the amount of data actually
written to pData
.
If pDataSize
is less than the maximum size that can be retrieved by
the validation cache, at most pDataSize
bytes will be written to
pData
, and vkGetValidationCacheDataEXT
will return VK_INCOMPLETE
.
Any data written to pData
is valid and can be provided as the
pInitialData
member of the VkValidationCacheCreateInfoEXT
structure
passed to vkCreateValidationCacheEXT
.
Two calls to vkGetValidationCacheDataEXT
with the same parameters
must retrieve the same data unless a command that modifies the
contents of the cache is called between them.
Applications can store the data retrieved from the validation cache,
and use these data, possibly in a future run of the application, to
populate new validation cache objects. The results of validation,
however, may depend on the vendor ID, device ID, driver version, and
other details of the device. To enable applications to detect when
previously retrieved data is incompatible with the device, the initial
bytes written to pData
must be a header consisting of the following
members:
Offset | Size | Meaning |
---|---|---|
0 | 4 | length in bytes of the entire validation cache header written as a stream of bytes, with the least significant byte first |
4 | 4 | a VkValidationCacheHeaderVersionEXT value
written as a stream of bytes, with the least
significant byte first |
8 | VK_UUID_SIZE
| a layer commit ID expressed as a UUID, which uniquely identifies the version of the validation layers used to generate these validation results |
Layout for validation cache header version
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
The first four bytes encode the length of the entire validation cache header, in bytes. This value includes all fields in the header including the validation cache version field and the size of the length field.
The next four bytes encode the validation cache version, as described
for VkValidationCacheHeaderVersionEXT
. A consumer of the validation
cache should use the cache version to interpret the remainder of the
cache header.
If pDataSize
is less than what is necessary to store this header,
nothing will be written to pData
and zero will be written to
pDataSize
.
Valid Usage (Implicit)
device
must be a validVkDevice
handle
validationCache
must be a validVkValidationCacheEXT
handlepDataSize
must be a valid pointer to asize_t
value- If the value referenced by
pDataSize
is not0
, andpData
is notNULL
,pData
must be a valid pointer to an array ofpDataSize
bytes validationCache
must have been created, allocated, or retrieved fromdevice
Return Codes
[Success]
- VK_SUCCESS
VK_INCOMPLETE
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkMergeValidationCachesEXT :: ("device" ::: VkDevice) -> ("dstCache" ::: VkValidationCacheEXT) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkValidationCacheEXT) -> IO VkResult Source #
vkMergeValidationCachesEXT - Combine the data stores of validation caches
Parameters
device
is the logical device that owns the validation cache objects.
dstCache
is the handle of the validation cache to merge results into.srcCacheCount
is the length of thepSrcCaches
array.pSrcCaches
is an array of validation cache handles, which will be merged intodstCache
. The previous contents ofdstCache
are included after the merge.
Description
Note
The details of the merge operation are implementation dependent, but implementations should merge the contents of the specified validation caches and prune duplicate entries.
Valid Usage
dstCache
must not appear in the list of source caches
Valid Usage (Implicit)
device
must be a validVkDevice
handle
dstCache
must be a validVkValidationCacheEXT
handlepSrcCaches
must be a valid pointer to an array ofsrcCacheCount
validVkValidationCacheEXT
handlessrcCacheCount
must be greater than0
dstCache
must have been created, allocated, or retrieved fromdevice
- Each element of
pSrcCaches
must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
dstCache
must be externally synchronized
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
data VkValidationCacheCreateInfoEXT Source #
VkValidationCacheCreateInfoEXT - Structure specifying parameters of a newly created validation cache
Valid Usage
- If
initialDataSize
is not0
, it must be equal to the size ofpInitialData
, as returned byvkGetValidationCacheDataEXT
whenpInitialData
was originally retrieved
- If
initialDataSize
is not0
,pInitialData
must have been retrieved from a previous call tovkGetValidationCacheDataEXT
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
pNext
must beNULL
flags
must be0
- If
initialDataSize
is not0
,pInitialData
must be a valid pointer to an array ofinitialDataSize
bytes
See Also
VkStructureType
,
VkValidationCacheCreateFlagsEXT
, vkCreateValidationCacheEXT
VkValidationCacheCreateInfoEXT | |
|
Instances
data VkShaderModuleValidationCacheCreateInfoEXT Source #
VkShaderModuleValidationCacheCreateInfoEXT - Specify validation cache to use during shader module creation
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
validationCache
must be a validVkValidationCacheEXT
handle
See Also
VkShaderModuleValidationCacheCreateInfoEXT | |
|