Remove vkCreateSwapchainKHR from ICD Dispatch table
authorCharles Giessen <charles@lunarg.com>
Wed, 12 Oct 2022 19:51:17 +0000 (13:51 -0600)
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>
Wed, 26 Oct 2022 03:04:34 +0000 (21:04 -0600)
commitd79e2731d45bf4c81f650f27205e208a023269aa
treeec9c36b8cd6041f1e0008d7ac9657d66cf12e9f8
parent6a0367a95467209ab5ac0002ce1545c73c81a6d2
Remove vkCreateSwapchainKHR from ICD Dispatch table

vkCreateSwapchainKHR and vkGetDeviceGroupSurfacePresentModesKHR were added to
the icd dispatch table then loaded with GIPA. While this is possible, for best
performance and consistency, the loader should use the device's dispatch table
for these functions. This required changing the terminators for both functions
so that they checked that the dev pointer isn't null and its dispatch entry for
each function isn't null.

Additionally, various debug marker/util functions checked if an ICD supported
surfaces by checking the ICD's dispatch table for vkCreateSwapchainKHR. These
have been updated to use the device's dispatch table instead.
loader/generated/vk_loader_extensions.c
loader/generated/vk_loader_extensions.h
loader/wsi.c
scripts/loader_extension_generator.py
tests/framework/icd/test_icd.cpp
tests/framework/test_util.cpp
tests/framework/test_util.h
tests/loader_regression_tests.cpp