Module: Mesa Branch: master Commit: 885d75760b9157f1d84105c979503ec8588470c6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=885d75760b9157f1d84105c979503ec8588470c6
Author: Samuel Pitoiset <[email protected]> Date: Fri Sep 1 13:45:33 2017 +0200 radv: keep track of the disasm string in debug mode only This will allow to dump the active shaders when a hang is detected. Only the ASM will be dumped for now. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> --- src/amd/vulkan/radv_shader.c | 9 ++++++++- src/amd/vulkan/radv_shader.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index de7d9a2752..1e25ea378e 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -425,8 +425,14 @@ 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; + + if (device->trace_bo) { + variant->disasm_string = binary.disasm_string; + } else { + free(binary.disasm_string); + } + return variant; } @@ -477,6 +483,7 @@ radv_shader_variant_destroy(struct radv_device *device, list_del(&variant->slab_list); mtx_unlock(&device->shader_slab_mutex); + free(variant->disasm_string); free(variant); } diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index 3f8dd92392..9de3c27550 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -49,6 +49,7 @@ struct radv_shader_variant { struct ac_shader_variant_info info; unsigned rsrc1; unsigned rsrc2; + char *disasm_string; /* debug only */ struct list_head slab_list; }; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
