Class KHRCalibratedTimestamps
- Name String
VK_KHR_calibrated_timestamps- Extension Type
- Device extension
- Registered Extension Number
- 544
- Revision
- 1
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2or Version 1.1- Contact
- Daniel Rakos aqnuep
- Extension Proposal
- VK_EXT_calibrated_timestamps
Other Extension Metadata
- Last Modified Date
- 2023-07-12
- IP Status
- No known IP claims.
- Contributors
- Matthaeus G. Chajdas, AMD
- Alan Harrison, AMD
- Derrick Owens, AMD
- Daniel Rakos, RasterGrid
- Faith Ekstrand, Intel
- Keith Packard, Valve
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe extension name.static final intThe extension specification version.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkGetCalibratedTimestampsKHR(org.lwjgl.vulkan.VkDevice device, int timestampCount, long pTimestampInfos, long pTimestamps, long pMaxDeviation) Unsafe version of:GetCalibratedTimestampsKHRstatic intnvkGetPhysicalDeviceCalibrateableTimeDomainsKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pTimeDomainCount, long pTimeDomains) Unsafe version of:GetPhysicalDeviceCalibrateableTimeDomainsKHRstatic intvkGetCalibratedTimestampsKHR(org.lwjgl.vulkan.VkDevice device, VkCalibratedTimestampInfoKHR.Buffer pTimestampInfos, long[] pTimestamps, long[] pMaxDeviation) Array version of:GetCalibratedTimestampsKHRstatic intvkGetCalibratedTimestampsKHR(org.lwjgl.vulkan.VkDevice device, VkCalibratedTimestampInfoKHR.Buffer pTimestampInfos, LongBuffer pTimestamps, LongBuffer pMaxDeviation) Query calibrated timestamps.static intvkGetPhysicalDeviceCalibrateableTimeDomainsKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, int[] pTimeDomainCount, int @Nullable [] pTimeDomains) Array version of:GetPhysicalDeviceCalibrateableTimeDomainsKHRstatic intvkGetPhysicalDeviceCalibrateableTimeDomainsKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, IntBuffer pTimeDomainCount, @Nullable IntBuffer pTimeDomains) Query calibrateable time domains.
-
Field Details
-
VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION
public static final int VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
public static final int VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHRExtendsVkStructureType.- See Also:
-
-
Method Details
-
nvkGetPhysicalDeviceCalibrateableTimeDomainsKHR
public static int nvkGetPhysicalDeviceCalibrateableTimeDomainsKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pTimeDomainCount, long pTimeDomains) Unsafe version of:GetPhysicalDeviceCalibrateableTimeDomainsKHR- Parameters:
pTimeDomainCount- a pointer to an integer related to the number of calibrateable time domains available or queried, as described below.
-
vkGetPhysicalDeviceCalibrateableTimeDomainsKHR
public static int vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, IntBuffer pTimeDomainCount, @Nullable IntBuffer pTimeDomains) Query calibrateable time domains.C Specification
To query the set of time domains for which a physical device supports timestamp calibration, call:
VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);or the equivalent command
VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);Description
If
pTimeDomainsisNULL, then the number of calibrateable time domains supported for the givenphysicalDeviceis returned inpTimeDomainCount. Otherwise,pTimeDomainCountmust point to a variable set by the application to the number of elements in thepTimeDomainsarray, and on return the variable is overwritten with the number of values actually written topTimeDomains. If the value ofpTimeDomainCountis less than the number of calibrateable time domains supported, at mostpTimeDomainCountvalues will be written topTimeDomains, andINCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available time domains were returned.Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepTimeDomainCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pTimeDomainCountis not 0, andpTimeDomainsis notNULL,pTimeDomainsmust be a valid pointer to an array ofpTimeDomainCountVkTimeDomainKHRvalues
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
physicalDevice- the physical device from which to query the set of calibrateable time domains.pTimeDomainCount- a pointer to an integer related to the number of calibrateable time domains available or queried, as described below.pTimeDomains- eitherNULLor a pointer to an array ofVkTimeDomainKHRvalues, indicating the supported calibrateable time domains.
-
nvkGetCalibratedTimestampsKHR
public static int nvkGetCalibratedTimestampsKHR(org.lwjgl.vulkan.VkDevice device, int timestampCount, long pTimestampInfos, long pTimestamps, long pMaxDeviation) Unsafe version of:GetCalibratedTimestampsKHR- Parameters:
timestampCount- the number of timestamps to query.
-
vkGetCalibratedTimestampsKHR
public static int vkGetCalibratedTimestampsKHR(org.lwjgl.vulkan.VkDevice device, VkCalibratedTimestampInfoKHR.Buffer pTimestampInfos, LongBuffer pTimestamps, LongBuffer pMaxDeviation) Query calibrated timestamps.C Specification
In order to be able to correlate the time a particular operation took place at on timelines of different time domains (e.g. a device operation vs. a host operation), Vulkan allows querying calibrated timestamps from multiple time domains.
To query calibrated timestamps from a set of time domains, call:
VkResult vkGetCalibratedTimestampsKHR( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);or the equivalent command
VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);Description
Note
The maximum deviation may vary between calls to
vkGetCalibratedTimestampsKHReven for the same set of time domains due to implementation and platform specific reasons. It is the application’s responsibility to assess whether the returned maximum deviation makes the timestamp values suitable for any particular purpose and can choose to re-issue the timestamp calibration call pursuing a lower deviation value.Calibrated timestamp values can be extrapolated to estimate future coinciding timestamp values, however, depending on the nature of the time domains and other properties of the platform extrapolating values over a sufficiently long period of time may no longer be accurate enough to fit any particular purpose, so applications are expected to re-calibrate the timestamps on a regular basis.
Valid Usage
- The
timeDomainvalue of eachVkCalibratedTimestampInfoKHRinpTimestampInfosmust be unique
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepTimestampInfosmust be a valid pointer to an array oftimestampCountvalidVkCalibratedTimestampInfoKHRstructurespTimestampsmust be a valid pointer to an array oftimestampCountuint64_tvaluespMaxDeviationmust be a valid pointer to auint64_tvaluetimestampCountmust be greater than 0
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device used to perform the query.pTimestampInfos- a pointer to an array oftimestampCountVkCalibratedTimestampInfoKHRstructures, describing the time domains the calibrated timestamps should be captured from.pTimestamps- a pointer to an array oftimestampCount64-bit unsigned integer values in which the requested calibrated timestamp values are returned.pMaxDeviation- a pointer to a 64-bit unsigned integer value in which the strictly positive maximum deviation, in nanoseconds, of the calibrated timestamp values is returned.
- The
-
vkGetPhysicalDeviceCalibrateableTimeDomainsKHR
public static int vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, int[] pTimeDomainCount, int @Nullable [] pTimeDomains) Array version of:GetPhysicalDeviceCalibrateableTimeDomainsKHR -
vkGetCalibratedTimestampsKHR
public static int vkGetCalibratedTimestampsKHR(org.lwjgl.vulkan.VkDevice device, VkCalibratedTimestampInfoKHR.Buffer pTimestampInfos, long[] pTimestamps, long[] pMaxDeviation) Array version of:GetCalibratedTimestampsKHR
-