[PATCH vkd3d 1/2] vkd3d: Add queries for KHR_timeline_semaphore extension.

Sveinar Søpler cybermax at dexter.no
Thu Jan 2 07:24:38 CST 2020


This patch requires the usage of vulkan-headers >= 1.1.126, so you 
should probably add a patch somewhere in the lines of:

---
  README       | 2 +-
  configure.ac | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README b/README
index 3c70ede..16535f4 100644
--- a/README
+++ b/README
@@ -9,7 +9,7 @@ similar, but not identical, to Direct3D 12.
  Building vkd3d
  ==============
  
-Vkd3d depends on SPIRV-Headers and Vulkan-Headers (>= 1.1.113).
+Vkd3d depends on SPIRV-Headers and Vulkan-Headers (>= 1.1.126).
  
  Vkd3d generates some of its headers from IDL files. If you are using the
  release tarballs, then these headers are pre-generated and are included. If
diff --git a/configure.ac b/configure.ac
index 355aaab..7ff3207 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,7 +69,7 @@ AS_IF([test "x$ac_cv_header_spirv_unified1_GLSL_std_450_h" != "xyes" \
         -a "x$ac_cv_header_vulkan_GLSL_std_450_h" != "xyes"],
        [AC_MSG_ERROR([GLSL.std.450.h not found.])])
  
-VKD3D_CHECK_VULKAN_HEADER_VERSION([113], [AC_MSG_ERROR([Vulkan headers are too old, 1.1.113 is required.])])
+VKD3D_CHECK_VULKAN_HEADER_VERSION([126], [AC_MSG_ERROR([Vulkan headers are too old, 1.1.126 is required.])])
  
  AC_CHECK_DECL([SpvCapabilityDemoteToHelperInvocationEXT],, [AC_MSG_ERROR([SPIR-V headers are too old.])], [
  #ifdef HAVE_SPIRV_UNIFIED1_SPIRV_H
-- 
2.17.1

Sveinar

On 15.12.2019 15:57, Sveinar Søpler wrote:
> On 13.12.2019 17:25, Sveinar Søpler wrote:
>> On 12.12.2019 20:02, Rémi Bernon wrote:
>>> +
>>> +    timeline_semaphore = &info->timeline_semaphore_properties;
>>> +    TRACE(" VkPhysicalDeviceTimelineSemaphorePropertiesKHR:\n");
>>> +    TRACE("    maxTimelineSemaphoreValueDifference: %u.\n", 
>>> timeline_semaphore->maxTimelineSemaphoreValueDifference);
>>
>> Should it be %lu? (Atleast seems to compile fine when changed to %lu.)
>>
>>
>> libs/vkd3d/device.c:1039:11: warning: format ‘%u’ expects argument of 
>> type ‘unsigned int’, but argument 4 has type ‘uint64_t’ {aka ‘const 
>> long unsigned int’} [-Wformat=]
>> 1039 | TRACE(" maxTimelineSemaphoreValueDifference: %u.\n", 
>> timeline_semaphore->maxTimelineSemaphoreValueDifference);
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> | uint64_t {aka const long unsigned int}
>>
>>
> Or rather it could be:
>
> +
> +    timeline_semaphore = &info->timeline_semaphore_properties;
> +    TRACE("  VkPhysicalDeviceTimelineSemaphorePropertiesKHR:\n");
> +    TRACE("    maxTimelineSemaphoreValueDifference: %" PRIu64 ".\n", 
> timeline_semaphore->maxTimelineSemaphoreValueDifference);
>  }
>
> since it seems as "compile fine" was not correct for 32-bit... 64-bit 
> was fine with %lu, but 32-bit seems to want this to be %llu. For some 
> reason uint64_t is "long unsigned int" for 64-bit and "long long 
> unsigned int" for 32-bit for my compiler. Dunno if this is some weird 
> "ubuntu spesific" thing, or actually correct?
>
> Sveinar
>
>



More information about the wine-devel mailing list