zeux/volk

type name changes with vulkan SDK 1.2.182.0

drlight-code opened this issue · 1 comments

Using the latest vulkan SDK (1.2.182.0) I get a bunch of errors of the following kind when building volk:

[  5%] Building C object lava/extern/volk/CMakeFiles/volk.dir/volk.c.o
In file included from /local/pschmitz/development/lava-samples/lava/extern/volk/volk.c:3:
/local/pschmitz/development/lava-samples/lava/extern/volk/volk.h:415:2: error: unknown type name ‘PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI’
  415 |  PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /local/pschmitz/development/lava-samples/lava/extern/volk/volk.c:3:
/local/pschmitz/development/lava-samples/lava/extern/volk/volk.h:1050:8: error: unknown type name ‘PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI’
 1050 | extern PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/local/pschmitz/development/lava-samples/lava/extern/volk/volk.c: In function ‘volkGenLoadDevice’:
/local/pschmitz/development/lava-samples/lava/extern/volk/volk.c:636:53: error: ‘PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI’ undeclared (first use in this function); did you mean ‘vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI’?
  636 |  vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The errors don't appear with vulkan SDK version 1.2.176.1. It looks like these HUAWEI specific calls got renamed.

zeux commented

Thanks for the report. The function name was changed indeed, which breaks compatibility. I will remove this extension from the list for now because it can't be used portably across multiple different SDK versions.