Module: Mesa
Branch: main
Commit: d376d8c5ea05a2be10fe701253d1e7a6071d35fc
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d376d8c5ea05a2be10fe701253d1e7a6071d35fc

Author: Lionel Landwerlin <[email protected]>
Date:   Mon Dec 11 11:27:07 2023 +0200

anv: promote EXT_calibrated_timestamps to KHR

Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Ivan Briano <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26632>

---

 src/intel/vulkan/anv_device.c | 51 ++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 25 deletions(-)

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index ed697d7a7fe..fc603fd0f37 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -224,6 +224,7 @@ get_device_extensions(const struct anv_physical_device 
*device,
       .KHR_acceleration_structure            = rt_enabled,
       .KHR_bind_memory2                      = true,
       .KHR_buffer_device_address             = true,
+      .KHR_calibrated_timestamps             = device->has_reg_timestamp,
       .KHR_copy_commands2                    = true,
       .KHR_create_renderpass2                = true,
       .KHR_dedicated_allocation              = true,
@@ -4824,24 +4825,24 @@ void anv_DestroySampler(
    vk_sampler_destroy(&device->vk, pAllocator, &sampler->vk);
 }
 
-static const VkTimeDomainEXT anv_time_domains[] = {
-   VK_TIME_DOMAIN_DEVICE_EXT,
-   VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
+static const VkTimeDomainKHR anv_time_domains[] = {
+   VK_TIME_DOMAIN_DEVICE_KHR,
+   VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
 #ifdef CLOCK_MONOTONIC_RAW
-   VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
+   VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
 #endif
 };
 
-VkResult anv_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
+VkResult anv_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
    VkPhysicalDevice                             physicalDevice,
    uint32_t                                     *pTimeDomainCount,
-   VkTimeDomainEXT                              *pTimeDomains)
+   VkTimeDomainKHR                              *pTimeDomains)
 {
    int d;
-   VK_OUTARRAY_MAKE_TYPED(VkTimeDomainEXT, out, pTimeDomains, 
pTimeDomainCount);
+   VK_OUTARRAY_MAKE_TYPED(VkTimeDomainKHR, out, pTimeDomains, 
pTimeDomainCount);
 
    for (d = 0; d < ARRAY_SIZE(anv_time_domains); d++) {
-      vk_outarray_append_typed(VkTimeDomainEXT, &out, i) {
+      vk_outarray_append_typed(VkTimeDomainKHR, &out, i) {
          *i = anv_time_domains[d];
       }
    }
@@ -4860,14 +4861,14 @@ anv_get_default_cpu_clock_id(void)
 }
 
 static inline clockid_t
-vk_time_domain_to_clockid(VkTimeDomainEXT domain)
+vk_time_domain_to_clockid(VkTimeDomainKHR domain)
 {
    switch (domain) {
 #ifdef CLOCK_MONOTONIC_RAW
-   case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:
+   case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR:
       return CLOCK_MONOTONIC_RAW;
 #endif
-   case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:
+   case VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR:
       return CLOCK_MONOTONIC;
    default:
       unreachable("Missing");
@@ -4876,22 +4877,22 @@ vk_time_domain_to_clockid(VkTimeDomainEXT domain)
 }
 
 static inline bool
-is_cpu_time_domain(VkTimeDomainEXT domain)
+is_cpu_time_domain(VkTimeDomainKHR domain)
 {
-   return domain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT ||
-          domain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT;
+   return domain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR ||
+          domain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR;
 }
 
 static inline bool
-is_gpu_time_domain(VkTimeDomainEXT domain)
+is_gpu_time_domain(VkTimeDomainKHR domain)
 {
-   return domain == VK_TIME_DOMAIN_DEVICE_EXT;
+   return domain == VK_TIME_DOMAIN_DEVICE_KHR;
 }
 
-VkResult anv_GetCalibratedTimestampsEXT(
+VkResult anv_GetCalibratedTimestampsKHR(
    VkDevice                                     _device,
    uint32_t                                     timestampCount,
-   const VkCalibratedTimestampInfoEXT           *pTimestampInfos,
+   const VkCalibratedTimestampInfoKHR           *pTimestampInfos,
    uint64_t                                     *pTimestamps,
    uint64_t                                     *pMaxDeviation)
 {
@@ -4908,16 +4909,16 @@ VkResult anv_GetCalibratedTimestampsEXT(
    begin = end = vk_clock_gettime(anv_get_default_cpu_clock_id());
 
    for (d = 0, increment = 1; d < timestampCount; d += increment) {
-      const VkTimeDomainEXT current = pTimestampInfos[d].timeDomain;
+      const VkTimeDomainKHR current = pTimestampInfos[d].timeDomain;
       /* If we have a request pattern like this :
-       * - domain0 = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT or 
VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
-       * - domain1 = VK_TIME_DOMAIN_DEVICE_EXT
+       * - domain0 = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR or 
VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR
+       * - domain1 = VK_TIME_DOMAIN_DEVICE_KHR
        * - domain2 = domain0 (optional)
        *
        * We can combine all of those into a single ioctl for maximum accuracy.
        */
       if (has_correlate_timestamp && (d + 1) < timestampCount) {
-         const VkTimeDomainEXT next = pTimestampInfos[d + 1].timeDomain;
+         const VkTimeDomainKHR next = pTimestampInfos[d + 1].timeDomain;
 
          if ((is_cpu_time_domain(current) && is_gpu_time_domain(next)) ||
              (is_gpu_time_domain(current) && is_cpu_time_domain(next))) {
@@ -4973,7 +4974,7 @@ VkResult anv_GetCalibratedTimestampsEXT(
       /* fallback to regular method */
       increment = 1;
       switch (current) {
-      case VK_TIME_DOMAIN_DEVICE_EXT:
+      case VK_TIME_DOMAIN_DEVICE_KHR:
          if (!intel_gem_read_render_timestamp(device->fd,
                                               device->info->kmd_type,
                                               &pTimestamps[d])) {
@@ -4982,13 +4983,13 @@ VkResult anv_GetCalibratedTimestampsEXT(
          }
          max_clock_period = MAX2(max_clock_period, device_period);
          break;
-      case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:
+      case VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR:
          pTimestamps[d] = vk_clock_gettime(CLOCK_MONOTONIC);
          max_clock_period = MAX2(max_clock_period, 1);
          break;
 
 #ifdef CLOCK_MONOTONIC_RAW
-      case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:
+      case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR:
          pTimestamps[d] = begin;
          break;
 #endif

Reply via email to