From 75b3939cf7c2fcd6f48ae647550666830e7b4741 Mon Sep 17 00:00:00 2001 From: Friedrich Vock Date: Mon, 17 Apr 2023 16:19:11 +0200 Subject: [PATCH] radv: Don't leak the RT prolog binary Fixes: 063d0c90 ("radv: Combine all the parts together with a main loop for an RT pipeline.") Part-of: (cherry picked from commit b73e2df47a6e8c03ac6556200ffbc22bbed26a5e) --- .pick_status.json | 2 +- src/amd/vulkan/radv_shader.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a3847c16475..c2f9b3f4e4b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -625,7 +625,7 @@ "description": "radv: Don't leak the RT prolog binary", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "063d0c90c81b62f03cacfacc05801610da5dbe2f" }, diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 0129516cee5..b874ee880d6 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -2382,7 +2382,7 @@ radv_create_rt_prolog(struct radv_device *device) radv_postprocess_binary_config(device, binary, &in_args); prolog = radv_shader_create(device, binary); if (!prolog) - goto fail; + goto done; if (device->keep_shader_info || options.dump_shader) { radv_capture_shader_executable_info(device, prolog, NULL, 0, binary); @@ -2393,11 +2393,9 @@ radv_create_rt_prolog(struct radv_device *device) fprintf(stderr, "\ndisasm:\n%s\n", prolog->disasm_string); } - return prolog; - -fail: +done: free(binary); - return NULL; + return prolog; } struct radv_shader_part *