lavapipe: add calibrated timestamp support

This is a bit of a lie, but it's enough to get zink support
for timer queries to work.

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8909>
This commit is contained in:
Dave Airlie
2021-02-08 10:58:39 +10:00
parent 60d413b894
commit fd55eea2ba
2 changed files with 40 additions and 1 deletions

View File

@@ -1698,3 +1698,42 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceExternalSemaphoreProperties(
pExternalSemaphoreProperties->compatibleHandleTypes = 0;
pExternalSemaphoreProperties->externalSemaphoreFeatures = 0;
}
static const VkTimeDomainEXT lvp_time_domains[] = {
VK_TIME_DOMAIN_DEVICE_EXT,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
};
VKAPI_ATTR VkResult VKAPI_CALL lvp_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
VkPhysicalDevice physicalDevice,
uint32_t *pTimeDomainCount,
VkTimeDomainEXT *pTimeDomains)
{
int d;
VK_OUTARRAY_MAKE_TYPED(VkTimeDomainEXT, out, pTimeDomains,
pTimeDomainCount);
for (d = 0; d < ARRAY_SIZE(lvp_time_domains); d++) {
vk_outarray_append_typed(VkTimeDomainEXT, &out, i) {
*i = lvp_time_domains[d];
}
}
return vk_outarray_status(&out);
}
VKAPI_ATTR VkResult VKAPI_CALL lvp_GetCalibratedTimestampsEXT(
VkDevice device,
uint32_t timestampCount,
const VkCalibratedTimestampInfoEXT *pTimestampInfos,
uint64_t *pTimestamps,
uint64_t *pMaxDeviation)
{
*pMaxDeviation = 1;
uint64_t now = os_time_get_nano();
for (unsigned i = 0; i < timestampCount; i++) {
pTimestamps[i] = now;
}
return VK_SUCCESS;
}

View File

@@ -107,7 +107,7 @@ EXTENSIONS = [
Extension('VK_KHR_xlib_surface', 6, 'VK_USE_PLATFORM_XLIB_KHR'),
Extension('VK_EXT_acquire_xlib_display', 1, 'VK_USE_PLATFORM_XLIB_XRANDR_EXT'),
Extension('VK_EXT_buffer_device_address', 1, False),
Extension('VK_EXT_calibrated_timestamps', 1, False),
Extension('VK_EXT_calibrated_timestamps', 1, True),
Extension('VK_EXT_conditional_rendering', 1, True),
Extension('VK_EXT_conservative_rasterization', 1, False),
Extension('VK_EXT_debug_report', 9, True),