| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_calibrated_timestamps
Description
Name
VK_EXT_calibrated_timestamps - device extension
VK_EXT_calibrated_timestamps
- Name String
VK_EXT_calibrated_timestamps
- Extension Type
- Device extension
- Registered Extension Number
- 185
- Revision
- 2
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
- Deprecation State
- Promoted to VK_KHR_calibrated_timestamps extension
- Contact
- Extension Proposal
- VK_EXT_calibrated_timestamps
Other Extension Metadata
- Last Modified Date
- 2018-10-04
- IP Status
- No known IP claims.
- Contributors
- Matthaeus G. Chajdas, AMD
- Alan Harrison, AMD
- Derrick Owens, AMD
- Daniel Rakos, AMD
- Faith Ekstrand, Intel
- Keith Packard, Valve
Description
This extension provides an interface to query calibrated timestamps obtained quasi simultaneously from two time domains.
Promotion to VK_KHR_calibrated_timestamps
All functionality in this extension is included in
VK_KHR_calibrated_timestamps, with the suffix changed to KHR. The
original enum names are still available as aliases of the KHR
functionality.
New Commands
New Structures
New Enums
New Enum Constants
EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSIONExtending
StructureType:Extending
TimeDomainKHR:
Version History
Revision 2, 2021-03-16 (Lionel Landwerlin)
- Specify requirement on device timestamps
Revision 1, 2018-10-04 (Daniel Rakos)
- Internal revisions.
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT :: StructureType
- pattern TIME_DOMAIN_DEVICE_EXT :: TimeDomainKHR
- pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT :: TimeDomainKHR
- pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT :: TimeDomainKHR
- pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT :: TimeDomainKHR
- getPhysicalDeviceCalibrateableTimeDomainsEXT :: MonadIO io => PhysicalDevice -> io (Result, "timeDomains" ::: Vector TimeDomainKHR)
- getCalibratedTimestampsEXT :: MonadIO io => Device -> ("timestampInfos" ::: Vector (SomeStruct CalibratedTimestampInfoKHR)) -> io ("timestamps" ::: Vector Word64, "maxDeviation" ::: Word64)
- type TimeDomainEXT = TimeDomainKHR
- type CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR
- type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2
- pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: Integral a => a
- type EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps"
- pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME :: (Eq a, IsString a) => a
- data CalibratedTimestampInfoKHR (es :: [Type]) = CalibratedTimestampInfoKHR {
- next :: Chain es
- timeDomain :: TimeDomainKHR
- getPhysicalDeviceCalibrateableTimeDomainsKHR :: MonadIO io => PhysicalDevice -> io (Result, "timeDomains" ::: Vector TimeDomainKHR)
- getCalibratedTimestampsKHR :: MonadIO io => Device -> ("timestampInfos" ::: Vector (SomeStruct CalibratedTimestampInfoKHR)) -> io ("timestamps" ::: Vector Word64, "maxDeviation" ::: Word64)
- newtype TimeDomainKHR where
- TimeDomainKHR Int32
- pattern TIME_DOMAIN_CLOCK_MONOTONIC_KHR :: TimeDomainKHR
- pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR :: TimeDomainKHR
- pattern TIME_DOMAIN_DEVICE_KHR :: TimeDomainKHR
- pattern TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT :: TimeDomainKHR
- pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR :: TimeDomainKHR
- pattern TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT :: TimeDomainKHR
Documentation
pattern TIME_DOMAIN_DEVICE_EXT :: TimeDomainKHR Source #
pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT :: TimeDomainKHR Source #
pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT :: TimeDomainKHR Source #
getPhysicalDeviceCalibrateableTimeDomainsEXT :: MonadIO io => PhysicalDevice -> io (Result, "timeDomains" ::: Vector TimeDomainKHR) Source #
getCalibratedTimestampsEXT :: MonadIO io => Device -> ("timestampInfos" ::: Vector (SomeStruct CalibratedTimestampInfoKHR)) -> io ("timestamps" ::: Vector Word64, "maxDeviation" ::: Word64) Source #
type TimeDomainEXT = TimeDomainKHR Source #
pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: Integral a => a Source #
type EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps" Source #
pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
data CalibratedTimestampInfoKHR (es :: [Type]) Source #
VkCalibratedTimestampInfoKHR - Structure specifying the input parameters of a calibrated timestamp query
Valid Usage
-
timeDomainmust be one of theTimeDomainKHRvalues returned bygetPhysicalDeviceCalibrateableTimeDomainsKHR
- If
timeDomainisTIME_DOMAIN_SWAPCHAIN_LOCAL_EXTorTIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT, thepNextchain must include aSwapchainCalibratedTimestampInfoEXTstructure
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
-
pNextmust beNULLor a pointer to a valid instance ofSwapchainCalibratedTimestampInfoEXT - The
sTypevalue of each structure in thepNextchain must be unique -
timeDomainmust be a validTimeDomainKHRvalue
See Also
VK_EXT_calibrated_timestamps,
VK_KHR_calibrated_timestamps,
StructureType,
TimeDomainKHR,
getCalibratedTimestampsKHR, getCalibratedTimestampsKHR
Constructors
| CalibratedTimestampInfoKHR | |
Fields
| |
Instances
getPhysicalDeviceCalibrateableTimeDomainsKHR Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> io (Result, "timeDomains" ::: Vector TimeDomainKHR) |
vkGetPhysicalDeviceCalibrateableTimeDomainsKHR - Query calibrateable time domains
Description
If pTimeDomains is NULL, then the number of calibrateable time
domains supported for the given physicalDevice is returned in
pTimeDomainCount. Otherwise, pTimeDomainCount must point to a
variable set by the application to the number of elements in the
pTimeDomains array, and on return the variable is overwritten with the
number of values actually written to pTimeDomains. If the value of
pTimeDomainCount is less than the number of calibrateable time domains
supported, at most pTimeDomainCount values will be written to
pTimeDomains, and INCOMPLETE will be
returned instead of SUCCESS, to indicate
that not all the available time domains were returned.
Valid Usage (Implicit)
-
physicalDevicemust be a validPhysicalDevicehandle
-
pTimeDomainCountmust be a valid pointer to auint32_tvalue -
If the value referenced by
pTimeDomainCountis not0, andpTimeDomainsis notNULL,pTimeDomainsmust be a valid pointer to an array ofpTimeDomainCountTimeDomainKHRvalues
Return Codes
See Also
VK_EXT_calibrated_timestamps,
VK_KHR_calibrated_timestamps,
PhysicalDevice,
TimeDomainKHR
getCalibratedTimestampsKHR Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("timestampInfos" ::: Vector (SomeStruct CalibratedTimestampInfoKHR)) |
|
| -> io ("timestamps" ::: Vector Word64, "maxDeviation" ::: Word64) |
vkGetCalibratedTimestampsKHR - Query calibrated timestamps
Description
The maximum deviation may vary between calls to
getCalibratedTimestampsKHR even 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 eachCalibratedTimestampInfoKHRinpTimestampInfosmust be unique
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pTimestampInfosmust be a valid pointer to an array oftimestampCountvalidCalibratedTimestampInfoKHRstructures -
pTimestampsmust be a valid pointer to an array oftimestampCountuint64_tvalues -
pMaxDeviationmust be a valid pointer to auint64_tvalue -
timestampCountmust be greater than0
Return Codes
See Also
VK_EXT_calibrated_timestamps,
VK_KHR_calibrated_timestamps,
CalibratedTimestampInfoKHR, Device
newtype TimeDomainKHR Source #
VkTimeDomainKHR - Supported time domains
Description
TIME_DOMAIN_DEVICE_KHRspecifies the device time domain. Timestamp values in this time domain use the same units and are comparable with device timestamp values captured usingcmdWriteTimestamporcmdWriteTimestamp2and are defined to be incrementing according to the timestampPeriod of the device.
TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXTspecifies a time domain unique to a particular swapchain and a specific present stage. Timestamp values in this time domain are in units of nanosecond and are comparable only with other values from the same swapchain and present stage.TIME_DOMAIN_SWAPCHAIN_LOCAL_EXTspecifies a time domain unique to a particular swapchain. Timestamp values in this time domain are in units of nanosecond and are comparable only with other values from the same swapchain.TIME_DOMAIN_CLOCK_MONOTONIC_KHRspecifies the CLOCK_MONOTONIC time domain available on POSIX platforms. Timestamp values in this time domain are in units of nanoseconds and are comparable with platform timestamp values captured using the POSIX clock_gettime API as computed by this example:
An implementation supporting VK_KHR_calibrated_timestamps or
VK_EXT_calibrated_timestamps will use the same time domain for all its
Queue so that timestamp values reported for
TIME_DOMAIN_DEVICE_KHR can be matched to any timestamp captured
through cmdWriteTimestamp or
cmdWriteTimestamp2
.
struct timespec tv; clock_gettime(CLOCK_MONOTONIC, &tv); return tv.tv_nsec + tv.tv_sec*1000000000ull;
TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHRspecifies the CLOCK_MONOTONIC_RAW time domain available on POSIX platforms. Timestamp values in this time domain are in units of nanoseconds and are comparable with platform timestamp values captured using the POSIX clock_gettime API as computed by this example:
struct timespec tv; clock_gettime(CLOCK_MONOTONIC_RAW, &tv); return tv.tv_nsec + tv.tv_sec*1000000000ull;
TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHRspecifies the performance counter (QPC) time domain available on Windows. Timestamp values in this time domain are in the same units as those provided by the Windows QueryPerformanceCounter API and are comparable with platform timestamp values captured using that API as computed by this example:
LARGE_INTEGER counter; QueryPerformanceCounter(&counter); return counter.QuadPart;
See Also
VK_EXT_calibrated_timestamps,
VK_KHR_calibrated_timestamps,
CalibratedTimestampInfoKHR,
PastPresentationTimingEXT, SwapchainTimeDomainPropertiesEXT,
getPhysicalDeviceCalibrateableTimeDomainsKHR,
getPhysicalDeviceCalibrateableTimeDomainsKHR
Constructors
| TimeDomainKHR Int32 |
Bundled Patterns
| pattern TIME_DOMAIN_CLOCK_MONOTONIC_KHR :: TimeDomainKHR | |
| pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR :: TimeDomainKHR | |
| pattern TIME_DOMAIN_DEVICE_KHR :: TimeDomainKHR | |
| pattern TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT :: TimeDomainKHR | |
| pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR :: TimeDomainKHR | |
| pattern TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT :: TimeDomainKHR |