Module: wine Branch: master Commit: 60eff6d65a51b5fd52d0b22754c88976a244917e URL: https://source.winehq.org/git/wine.git/?a=commit;h=60eff6d65a51b5fd52d0b2275... Author: Liam Middlebrook <lmiddlebrook(a)nvidia.com> Date: Mon Jan 25 07:16:34 2021 -0800 winevulkan: Skip commands which are declared but not defined. Signed-off-by: Liam Middlebrook <lmiddlebrook(a)nvidia.com> Signed-off-by: Piers Daniell <pdaniell(a)nvidia.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winevulkan/make_vulkan | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 40978a8fc7a..f4c5065ccd9 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -2936,7 +2936,13 @@ class VkRegistry(object): commands = ext.findall("require/command") for command in commands: cmd_name = command.attrib["name"] - self.funcs[cmd_name].extensions.append(ext_name) + # Need to verify that the command is defined, and otherwise skip it. + # vkCreateScreenSurfaceQNX is declared in <extensions> but not defined in + # <commands>. A command without a definition cannot be enabled, so it's valid for + # the XML file to handle this, but because of the manner in which we parse the XML + # file we pre-populate from <commands> before we check if a command is enabled. + if cmd_name in self.funcs: + self.funcs[cmd_name].extensions.append(ext_name) # Some extensions are not ready or have numbers reserved as a place holder. if ext.attrib["supported"] == "disabled":