From abe38b062335b06477da95946b6e0f6149bd8617 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 1 May 2026 10:42:11 -0400 Subject: [PATCH] lavapipe: allow fbfetch with shader objects required by DRLR cc: mesa-stable Part-of: (cherry picked from commit 547dc7a1319fb174486d4fa2182cfcc1d353ae6d) --- .pick_status.json | 2 +- src/gallium/frontends/lavapipe/lvp_pipeline.c | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 94fb8bf3fcb..43ff488ab28 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1614,7 +1614,7 @@ "description": "lavapipe: allow fbfetch with shader objects", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c index 9d9d4c2ff94..b9cfb339425 100644 --- a/src/gallium/frontends/lavapipe/lvp_pipeline.c +++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c @@ -1315,14 +1315,6 @@ create_shader_object(struct lvp_device *device, const VkShaderCreateInfoEXT *pCr shader->tess_ccw = lvp_create_pipeline_nir(nir_shader_clone(NULL, shader->pipeline_nir->nir)); shader->tess_ccw->nir->info.tess.ccw = !shader->pipeline_nir->nir->info.tess.ccw; shader->tess_ccw_cso = lvp_shader_compile(device, shader, nir_shader_clone(NULL, shader->tess_ccw->nir), false); - } else if (stage == MESA_SHADER_FRAGMENT && nir->info.fs.uses_fbfetch_output) { - /* this is (currently) illegal */ - assert(!nir->info.fs.uses_fbfetch_output); - shader_destroy(device, shader, false); - - vk_object_base_finish(&shader->base); - vk_free2(&device->vk.alloc, pAllocator, shader); - return VK_NULL_HANDLE; } nir_serialize(&shader->blob, nir, true); shader->shader_cso = lvp_shader_compile(device, shader, nir_shader_clone(NULL, nir), false);