Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- getPhysicalDeviceCalibrateableTimeDomainsEXT :: forall io. MonadIO io => PhysicalDevice -> io (Result, "timeDomains" ::: Vector TimeDomainEXT)
- getCalibratedTimestampsEXT :: forall io. MonadIO io => Device -> ("timestampInfos" ::: Vector CalibratedTimestampInfoEXT) -> io ("timestamps" ::: Vector Word64, "maxDeviation" ::: Word64)
- data CalibratedTimestampInfoEXT = CalibratedTimestampInfoEXT {}
- newtype TimeDomainEXT where
- type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1
- pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: forall a. Integral a => a
- type EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps"
- pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
getPhysicalDeviceCalibrateableTimeDomainsEXT :: forall io. MonadIO io => PhysicalDevice -> io (Result, "timeDomains" ::: Vector TimeDomainEXT) Source #
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT - Query calibrateable time domains
Parameters
physicalDevice
is the physical device from which to query the set of calibrateable time domains.
pTimeDomainCount
is a pointer to an integer related to the number of calibrateable time domains available or queried, as described below.pTimeDomains
is eitherNULL
or a pointer to an array ofTimeDomainEXT
values, indicating the supported 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 user 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
. If pTimeDomainCount
is smaller than the number of
calibrateable time domains supported for the given physicalDevice
,
INCOMPLETE
will be returned
instead of SUCCESS
to indicate
that not all the available values were returned.
Valid Usage (Implicit)
physicalDevice
must be a validPhysicalDevice
handle
pTimeDomainCount
must be a valid pointer to auint32_t
value- If the value referenced by
pTimeDomainCount
is not0
, andpTimeDomains
is notNULL
,pTimeDomains
must be a valid pointer to an array ofpTimeDomainCount
TimeDomainEXT
values
Return Codes
See Also
getCalibratedTimestampsEXT :: forall io. MonadIO io => Device -> ("timestampInfos" ::: Vector CalibratedTimestampInfoEXT) -> io ("timestamps" ::: Vector Word64, "maxDeviation" ::: Word64) Source #
vkGetCalibratedTimestampsEXT - Query calibrated timestamps
Parameters
device
is the logical device used to perform the query.
timestampCount
is the number of timestamps to query.pTimestampInfos
is a pointer to an array oftimestampCount
CalibratedTimestampInfoEXT
structures, describing the time domains the calibrated timestamps should be captured from.pTimestamps
is a pointer to an array oftimestampCount
64-bit unsigned integer values in which the requested calibrated timestamp values are returned.pMaxDeviation
is 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.
Description
Note
The maximum deviation may vary between calls to
getCalibratedTimestampsEXT
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
devation 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.
Return Codes
See Also
data CalibratedTimestampInfoEXT Source #
VkCalibratedTimestampInfoEXT - Structure specifying the input parameters of a calibrated timestamp query
Valid Usage (Implicit)
See Also
CalibratedTimestampInfoEXT | |
|
Instances
newtype TimeDomainEXT Source #
VkTimeDomainEXT - Supported time domains
Description
struct timespec tv; clock_gettime(CLOCK_MONOTONIC, &tv); return tv.tv_nsec + tv.tv_sec*1000000000ull;
struct timespec tv; clock_gettime(CLOCK_MONOTONIC_RAW, &tv); return tv.tv_nsec + tv.tv_sec*1000000000ull;
LARGE_INTEGER counter; QueryPerformanceCounter(&counter); return counter.QuadPart;
See Also
CalibratedTimestampInfoEXT
,
getPhysicalDeviceCalibrateableTimeDomainsEXT
pattern TIME_DOMAIN_DEVICE_EXT :: TimeDomainEXT |
|
pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT :: TimeDomainEXT |
|
pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT :: TimeDomainEXT |
|
pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT :: TimeDomainEXT |
|
Instances
pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps" Source #
pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #