radv: dont store disasm string unless keep_shader_info flag set

This fixes the memory use regression from bug 111107.

Fixes: 726a31df70 ("radv: Add the concept of radv shader binaries.")

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111107
This commit is contained in:
Timothy Arceri
2019-07-17 14:20:55 +10:00
parent 82a2f10529
commit a20a9d0c5e

View File

@@ -1011,6 +1011,7 @@ radv_shader_variant_create(struct radv_device *device,
return NULL; return NULL;
} }
if (device->keep_shader_info) {
const char *disasm_data; const char *disasm_data;
size_t disasm_size; size_t disasm_size;
if (!ac_rtld_get_section_by_name(&rtld_binary, ".AMDGPU.disasm", &disasm_data, &disasm_size)) { if (!ac_rtld_get_section_by_name(&rtld_binary, ".AMDGPU.disasm", &disasm_data, &disasm_size)) {
@@ -1023,6 +1024,7 @@ radv_shader_variant_create(struct radv_device *device,
variant->disasm_string = malloc(disasm_size + 1); variant->disasm_string = malloc(disasm_size + 1);
memcpy(variant->disasm_string, disasm_data, disasm_size); memcpy(variant->disasm_string, disasm_data, disasm_size);
variant->disasm_string[disasm_size] = 0; variant->disasm_string[disasm_size] = 0;
}
ac_rtld_close(&rtld_binary); ac_rtld_close(&rtld_binary);
} else { } else {