From 2934ae2736e99eaa7d53b862c46439b777b9e93e Mon Sep 17 00:00:00 2001 From: Friedrich Vock Date: Thu, 4 Jan 2024 14:37:08 +0100 Subject: radv/rt: Free traversal NIR after compilation Could lead to OOM in games that compile RTPSOs often, like Ghostwire Tokyo. Cc: mesa-stable Part-of: (cherry picked from commit 34cc76517286b88c8191a3e10dda0a3293c09127) --- .pick_status.json | 2 +- src/amd/vulkan/radv_pipeline_rt.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 307feeb4e34..8468534155e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -14,7 +14,7 @@ "description": "radv/rt: Free traversal NIR after compilation", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_pipeline_rt.c b/src/amd/vulkan/radv_pipeline_rt.c index 810f6041b1d..c61d2becf47 100644 --- a/src/amd/vulkan/radv_pipeline_rt.c +++ b/src/amd/vulkan/radv_pipeline_rt.c @@ -609,6 +609,7 @@ radv_rt_compile_shaders(struct radv_device *device, struct vk_pipeline_cache *ca radv_shader_layout_init(pipeline_layout, MESA_SHADER_INTERSECTION, &traversal_stage.layout); result = radv_rt_nir_to_asm(device, cache, pCreateInfo, key, pipeline, false, &traversal_stage, NULL, NULL, &pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]); + ralloc_free(traversal_module.nir); cleanup: for (uint32_t i = 0; i < pCreateInfo->stageCount; i++) -- cgit v1.2.3