vulkan/overlay: fix crash on freeing NULL command buffer
It is legal to call vkFreeCommandBuffers() on NULL command buffers. This fix requireseb41ce1b01
("util/hash_table: Properly handle the NULL key in hash_table_u64"). Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes:4438188f49
("vulkan/overlay: record stats in command buffers and accumulate on exec/submit") Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -2026,6 +2026,10 @@ static void overlay_FreeCommandBuffers(
|
|||||||
for (uint32_t i = 0; i < commandBufferCount; i++) {
|
for (uint32_t i = 0; i < commandBufferCount; i++) {
|
||||||
struct command_buffer_data *cmd_buffer_data =
|
struct command_buffer_data *cmd_buffer_data =
|
||||||
FIND_CMD_BUFFER_DATA(pCommandBuffers[i]);
|
FIND_CMD_BUFFER_DATA(pCommandBuffers[i]);
|
||||||
|
/* It is legal to free a NULL command buffer*/
|
||||||
|
if (!cmd_buffer_data)
|
||||||
|
continue;
|
||||||
|
|
||||||
uint64_t count = (uintptr_t)find_object_data(HKEY(cmd_buffer_data->pipeline_query_pool));
|
uint64_t count = (uintptr_t)find_object_data(HKEY(cmd_buffer_data->pipeline_query_pool));
|
||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
unmap_object(HKEY(cmd_buffer_data->pipeline_query_pool));
|
unmap_object(HKEY(cmd_buffer_data->pipeline_query_pool));
|
||||||
|
Reference in New Issue
Block a user