Skip to content

lavapipe: add missing VKAPI_CALL

xantares requested to merge (removed):vkapi_call into master

Acked-by: Jose Fonseca jfonsec@vmware.com

We need to declare vulkan prototypes with the missing VKAPI_CALL define else we get lots of these compilation errors (windows+32 bits mode only, no problem on linux):

../src/gallium/frontends/lavapipe/lvp_wsi.c:37:27: error: passing argument 3 of ‘wsi_device_init’ from incompatible pointer type [-Werror=incompatible-pointer-types]
   37 |                           lvp_wsi_proc_addr,
      |                           ^~~~~~~~~~~~~~~~~
      |                           |
      |                           void (__attribute__((stdcall)) * (*)(struct VkPhysicalDevice_T *, const char *))(void)
In file included from ../src/gallium/frontends/lavapipe/lvp_private.h:57,
                 from ../src/gallium/frontends/lavapipe/lvp_wsi.h:26,
                 from ../src/gallium/frontends/lavapipe/lvp_wsi.c:24:
../src/vulkan/wsi/wsi_common.h:194:50: note: expected ‘WSI_FN_GetPhysicalDeviceProcAddr’ {aka ‘void (__attribute__((stdcall)) * (__attribute__((stdcall)) *)(struct VkPhysicalDevice_T *, const char *))(void)’} but argument is of type ‘void (__attribute__((stdcall)) * (*)(struct VkPhysicalDevice_T *, const char *))(void)’

Funny thing is that the documentation does not mention this in the declaration, but the headers actually have them:

https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreatePipelineLayout.html

/usr/include/vulkan/vulkan_core.h:3632:VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(

This is taken from !7208 (merged)

cc @airlied

Edited by xantares

Merge request reports