This resolves compilation errors relating to duplicate case values for alias structures when building against spec version 1.1.106. An example of one of these errors has been included below: vulkan_thunks.c: In function ‘convert_VkDeviceCreateInfo_struct_chain’: vulkan_thunks.c:1997:9: error: duplicate case value case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: ^~~~ vulkan_thunks.c:1377:9: note: previously used here case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: ^~~~
Signed-off-by: Liam Middlebrook lmiddlebrook@nvidia.com Reviewed-by: Daniel Koch dkoch@nvidia.com --- dlls/winevulkan/make_vulkan | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 4f1c03cc7c..058c5e41e9 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -2955,6 +2955,13 @@ class VkRegistry(object): for struct in structs: struct.set_type_info(self.types)
+ # Alias structures have enum values equivalent to those of the + # structure which they are aliased against. we need to ignore alias + # structs when populating the struct extensions list, otherwise we + # will create duplicate case entries. + if struct.alias: + continue + for structextend in struct.structextends: s = self.types[structextend]["data"] s.struct_extensions.append(struct) -- 2.17.1