winevulkan: Convert all 32-bit structs containing pNext pointer.

This commit is contained in:
Jacek Caban 2022-11-11 18:38:06 +01:00 committed by Alexandre Julliard
parent daf1883b14
commit af2f0c790b
2 changed files with 12315 additions and 584 deletions

View file

@ -1806,6 +1806,10 @@ class VkStruct(Sequence):
"VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"]:
returnedonly = False
# Those structs don't have returnedonly in spec, but they could (should?).
if name in ["VkSurfaceCapabilitiesPresentBarrierNV"]:
returnedonly = True
structextends = struct.attrib.get("structextends")
structextends = structextends.split(",") if structextends else []
@ -1977,6 +1981,9 @@ class VkStruct(Sequence):
continue
if m.name == "pNext":
# pNext is a pointer, so it always needs conversion
if conv and direction == Direction.INPUT:
return True
# we need input conversion of structs containing struct chain even if it's returnedonly
if direction == Direction.INPUT and \
self.needs_conversion(conv, unwrap, Direction.OUTPUT, is_const):
@ -2030,6 +2037,8 @@ class VkStruct(Sequence):
for m in self.members:
if self.name == m.type:
continue
if m.name == "pNext":
return True
if m.needs_alignment():
return True
if m.is_struct() and m.struct.needs_host_type():

File diff suppressed because it is too large Load diff