[PATCH 0/2] MR762: winevulkan: Update to VK spec version 1.3.226.
Not trivial this time because VK_NV_mesh_shader now aliases 64bit enum values that are only later defined by VK_EXT_mesh_shader. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/762
From: Georg Lehmann <dadschoorse(a)gmail.com> Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com> --- dlls/winevulkan/make_vulkan | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 2e89acd8efb..0b51ff95f12 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -435,13 +435,7 @@ class VkEnum(object): def create_alias(self, name, alias_name): """ Create an aliased value for this enum """ - # Older GCC versions need a literal to initialize a static const uint64_t - # which is what we use for 64bit bitmasks. - if self.bitwidth == 64: - alias = next(x for x in self.values if x.name == alias_name) - self.add(VkEnumValue(name, self.bitwidth, value=alias.value, hex=alias.hex, alias=alias_name)) - else: - self.add(VkEnumValue(name, self.bitwidth, alias=alias_name)) + self.add(VkEnumValue(name, self.bitwidth, alias=alias_name)) def create_value(self, name, value): """ Create a new value for this enum """ @@ -469,6 +463,19 @@ class VkEnum(object): if not any(x.name == value.name for x in self.values): self.values.append(value) + def fixup_64bit_aliases(self): + """ Replace 64bit aliases with literal values """ + # Older GCC versions need a literal to initialize a static const uint64_t + # which is what we use for 64bit bitmasks. + if self.bitwidth != 64: + return + for value in self.values: + if not value.is_alias(): + continue + alias = next(x for x in self.values if x.name == value.alias) + value.hex = alias.hex + value.value = alias.value + def definition(self): if self.is_alias(): return "" @@ -3310,6 +3317,9 @@ class VkRegistry(object): self._parse_features(root) self._parse_extensions(root) + for enum in self.enums.values(): + enum.fixup_64bit_aliases() + self._match_object_types() self.copyright = root.find('./comment').text -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/762
From: Georg Lehmann <dadschoorse(a)gmail.com> Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com> --- dlls/winevulkan/make_vulkan | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 0b51ff95f12..a42bf0a6908 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -64,7 +64,7 @@ from enum import Enum LOGGER = logging.Logger("vulkan") LOGGER.addHandler(logging.StreamHandler()) -VK_XML_VERSION = "1.3.224" +VK_XML_VERSION = "1.3.226" WINE_VK_VERSION = (1, 3) # Filenames to create. -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/762
participants (2)
-
Georg Lehmann -
Georg Lehmann (@DadSchoorse)