Commit af2f0c79 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

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

parent daf1883b
...@@ -1806,6 +1806,10 @@ class VkStruct(Sequence): ...@@ -1806,6 +1806,10 @@ class VkStruct(Sequence):
"VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"]: "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"]:
returnedonly = False 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 = struct.attrib.get("structextends")
structextends = structextends.split(",") if structextends else [] structextends = structextends.split(",") if structextends else []
...@@ -1977,6 +1981,9 @@ class VkStruct(Sequence): ...@@ -1977,6 +1981,9 @@ class VkStruct(Sequence):
continue continue
if m.name == "pNext": 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 # we need input conversion of structs containing struct chain even if it's returnedonly
if direction == Direction.INPUT and \ if direction == Direction.INPUT and \
self.needs_conversion(conv, unwrap, Direction.OUTPUT, is_const): self.needs_conversion(conv, unwrap, Direction.OUTPUT, is_const):
...@@ -2030,6 +2037,8 @@ class VkStruct(Sequence): ...@@ -2030,6 +2037,8 @@ class VkStruct(Sequence):
for m in self.members: for m in self.members:
if self.name == m.type: if self.name == m.type:
continue continue
if m.name == "pNext":
return True
if m.needs_alignment(): if m.needs_alignment():
return True return True
if m.is_struct() and m.struct.needs_host_type(): if m.is_struct() and m.struct.needs_host_type():
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment