To dump the ASM when RADV_TRACE_FILE is used and a hang is
detected.

Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
---
 src/amd/vulkan/radv_shader.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 44a1f64737..0596fb7f54 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -426,7 +426,6 @@ shader_variant_create(struct radv_device *device,
        free(binary->rodata);
        free(binary->global_symbol_offsets);
        free(binary->relocs);
-       free(binary->disasm_string);
        variant->ref_count = 1;
        return variant;
 }
@@ -471,6 +470,8 @@ void
 radv_shader_variant_destroy(struct radv_device *device,
                            struct radv_shader_variant *variant)
 {
+       struct ac_shader_binary *binary = &variant->binary;
+
        if (!p_atomic_dec_zero(&variant->ref_count))
                return;
 
@@ -478,6 +479,7 @@ radv_shader_variant_destroy(struct radv_device *device,
        list_del(&variant->slab_list);
        mtx_unlock(&device->shader_slab_mutex);
 
+       free(binary->disasm_string);
        free(variant);
 }
 
-- 
2.14.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to