diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 4854714c58e..b1c4c287169 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -1398,6 +1398,9 @@ radv_free_shader_memory(struct radv_device *device, union radv_shader_arena_bloc free(arena); } else if (free_list) { add_hole(free_list, hole); + } else { + /* Mark it as a hole, allowing merges when adjacent blocks are freed later. */ + list_inithead(&hole->freelist); } mtx_unlock(&device->shader_arena_mutex);