From fd45ab843f4d5c6c1fc28c30b728ee206224a90e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 30 May 2023 11:09:45 -0400 Subject: [PATCH] vulkan/cmd_queue: expose cmd sizes now that cmds are more precisely allocated, it's necessary for drivers to have some way to determine what the allocation size is Reviewed-by: Dave Airlie Part-of: --- src/vulkan/util/vk_cmd_queue_gen.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/vulkan/util/vk_cmd_queue_gen.py b/src/vulkan/util/vk_cmd_queue_gen.py index d0dbb408a0b..de48866a6bc 100644 --- a/src/vulkan/util/vk_cmd_queue_gen.py +++ b/src/vulkan/util/vk_cmd_queue_gen.py @@ -97,6 +97,7 @@ enum vk_cmd_type { }; extern const char *vk_cmd_queue_type_names[]; +extern size_t vk_cmd_queue_type_sizes[]; % for c in commands: % if len(c.params) <= 1: # Avoid "error C2016: C requires that a struct or union have at least one member" @@ -228,6 +229,21 @@ const char *vk_cmd_queue_type_names[] = { % endfor }; +size_t vk_cmd_queue_type_sizes[] = { +% for c in commands: +% if c.guard is not None: +#ifdef ${c.guard} +% endif +% if len(c.params) > 1: + sizeof(struct ${to_struct_name(c.name)}) + +% endif + sizeof(struct vk_cmd_queue_entry_base), +% if c.guard is not None: +#endif // ${c.guard} +% endif +% endfor +}; + % for c in commands: % if c.guard is not None: #ifdef ${c.guard}