From 26cdd7ebd6254376b0250962db1fe6a679391a93 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 15 Apr 2025 13:47:21 -0400 Subject: [PATCH] vk/cmd_queue: generate copies for struct-ptr members this includes e.g., VkCommandBufferBeginInfo::pInheritanceInfo, which previously was garbage data Reviewed-by: Konstantin Seurer Part-of: --- src/vulkan/util/vk_cmd_queue_gen.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vulkan/util/vk_cmd_queue_gen.py b/src/vulkan/util/vk_cmd_queue_gen.py index db0937dddf2..bbc25113cb9 100644 --- a/src/vulkan/util/vk_cmd_queue_gen.py +++ b/src/vulkan/util/vk_cmd_queue_gen.py @@ -531,7 +531,9 @@ def get_struct_copy(dst, src_name, src_type, size, types, level=0): member_copies = "" if src_type in types: for member in types[src_type].members: - if member.len and member.len != 'null-terminated': + if member.len and member.len == 'struct-ptr': + member_copies += get_struct_copy("%s->%s" % (tmp_dst_name, member.name), "%s->%s" % (tmp_src_name, member.name), member.type, 'sizeof(%s)' % member.type, types, level + 1) + elif member.len and member.len != 'null-terminated': member_copies += get_array_member_copy(tmp_dst_name, tmp_src_name, member, level + 1) elif member.name == 'pNext': member_copies += get_pnext_member_copy(tmp_dst_name, src_type, member, types, level + 1)