On Fri, 14 Jan 2022 at 16:18, Conor McCarthy <cmccarthy(a)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.