On Fri, 14 Jan 2022 at 16:18, Conor McCarthy cmccarthy@codeweavers.com wrote:
- if (infos[1].timeDomain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
|| infos[1].timeDomain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT)
- {
/* Convert monotonic clock to match Wine's RtlQueryPerformanceFrequency(). */
timestamps[1] /= 1000000000 / TICKSPERSEC;
- }
Is TICKSPERSEC something we should allow to be specified by vkd3d_create_instance() or vkd3d_create_device()? It seems like something that may be subject to future change.
+static void vkd3d_time_domains_init(struct d3d12_device *device) +{
- const struct vkd3d_vk_instance_procs *vk_procs = &device->vkd3d_instance->vk_procs;
- VkTimeDomainEXT domains[8];
- uint32_t count;
- VkResult vr;
- device->vk_host_time_domain = VK_TIME_DOMAIN_MAX_ENUM_EXT;
It may be best to avoid VK_TIME_DOMAIN_MAX_ENUM_EXT; I'm not sure it's considered part of the API by Khronos. Note that e.g. VK_PIPELINE_BIND_POINT_RANGE_SIZE was simply removed at some point, and that the Wine Vulkan headers don't have VK_TIME_DOMAIN_MAX_ENUM_EXT. They do have VK_TIME_DOMAIN_EXT_MAX_ENUM instead, which may be a bug, but regardless.