| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Extensions.VK_EXT_validation_cache
- 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
Constructors
| VkValidationCacheHeaderVersionEXT Int32 |
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
Constructors
| VkValidationCacheCreateFlagsEXT VkFlags |
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
Description
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
deviceis the logical device that creates the validation cache object.
pCreateInfois a pointer to aVkValidationCacheCreateInfoEXTstructure that contains the initial parameters for the validation cache object.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pValidationCacheis a pointer to aVkValidationCacheEXThandle 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)
devicemust be a validVkDevicehandle
pCreateInfomust be a valid pointer to a validVkValidationCacheCreateInfoEXTstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pValidationCachemust be a valid pointer to aVkValidationCacheEXThandle
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
deviceis the logical device that destroys the validation cache object.
validationCacheis the handle of the validation cache to destroy.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.
Description
Valid Usage
- If
VkAllocationCallbackswere provided whenvalidationCachewas created, a compatible set of callbacks must be provided here
- If no
VkAllocationCallbackswere provided whenvalidationCachewas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
validationCacheis notVK_NULL_HANDLE,validationCachemust be a validVkValidationCacheEXThandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
validationCacheis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
validationCachemust 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
deviceis the logical device that owns the validation cache.
validationCacheis the validation cache to retrieve data from.pDataSizeis a pointer to a value related to the amount of data in the validation cache, as described below.pDatais eitherNULLor 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:
+----+--------------+--------------------------------------------------+ | Of | Size | Meaning | | fs | | | | et | | | +====+==============+==================================================+ | 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_SIZ | a layer commit ID expressed as a UUID, which | | | E@ | 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)
devicemust be a validVkDevicehandle
validationCachemust be a validVkValidationCacheEXThandlepDataSizemust be a valid pointer to asize_tvalue- If the value referenced by
pDataSizeis not0, andpDatais notNULL,pDatamust be a valid pointer to an array ofpDataSizebytes validationCachemust have been created, allocated, or retrieved fromdevice
Return Codes
- Success
- -
VK_SUCCESSVK_INCOMPLETE
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_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
deviceis the logical device that owns the validation cache objects.
dstCacheis the handle of the validation cache to merge results into.srcCacheCountis the length of thepSrcCachesarray.pSrcCachesis an array of validation cache handles, which will be merged intodstCache. The previous contents ofdstCacheare 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
dstCachemust not appear in the list of source caches
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
dstCachemust be a validVkValidationCacheEXThandlepSrcCachesmust be a valid pointer to an array ofsrcCacheCountvalidVkValidationCacheEXThandlessrcCacheCountmust be greater than0dstCachemust have been created, allocated, or retrieved fromdevice- Each element of
pSrcCachesmust have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
dstCachemust be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
data VkValidationCacheCreateInfoEXT Source #
VkValidationCacheCreateInfoEXT - Structure specifying parameters of a newly created validation cache
Description
Valid Usage
- If
initialDataSizeis not0, it must be equal to the size ofpInitialData, as returned byvkGetValidationCacheDataEXTwhenpInitialDatawas originally retrieved
- If
initialDataSizeis not0,pInitialDatamust have been retrieved from a previous call tovkGetValidationCacheDataEXT
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
pNextmust beNULLflagsmust be0- If
initialDataSizeis not0,pInitialDatamust be a valid pointer to an array ofinitialDataSizebytes
See Also
VkStructureType,
VkValidationCacheCreateFlagsEXT, vkCreateValidationCacheEXT
Constructors
| VkValidationCacheCreateInfoEXT | |
Fields
| |
data VkShaderModuleValidationCacheCreateInfoEXT Source #
VkShaderModuleValidationCacheCreateInfoEXT - Specify validation cache to use during shader module creation
Description
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
validationCachemust be a validVkValidationCacheEXThandle
See Also
Constructors
| VkShaderModuleValidationCacheCreateInfoEXT | |
Fields
| |