From 7db07fcc0bc14d59d644a3286afe449987db08e6 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 6 Jan 2025 15:13:58 +0100 Subject: [PATCH] Fix #132611: EEVEE: Background disappear when using forward shaded volumes In case forward shaded volumes are used the background can turn black. This is because in this case an incorrect framebuffer could be bound. Pull Request: https://projects.blender.org/blender/blender/pulls/132678 --- source/blender/draw/engines/eevee_next/eevee_pipeline.cc | 3 ++- source/blender/draw/engines/eevee_next/eevee_pipeline.hh | 2 +- source/blender/draw/engines/eevee_next/eevee_view.cc | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/blender/draw/engines/eevee_next/eevee_pipeline.cc b/source/blender/draw/engines/eevee_next/eevee_pipeline.cc index 96121f5086f..324ea1a5157 100644 --- a/source/blender/draw/engines/eevee_next/eevee_pipeline.cc +++ b/source/blender/draw/engines/eevee_next/eevee_pipeline.cc @@ -78,8 +78,9 @@ void BackgroundPipeline::clear(View &view) inst_.manager->submit(clear_ps_, view); } -void BackgroundPipeline::render(View &view) +void BackgroundPipeline::render(View &view, Framebuffer &combined_fb) { + GPU_framebuffer_bind(combined_fb); inst_.manager->submit(world_ps_, view); } diff --git a/source/blender/draw/engines/eevee_next/eevee_pipeline.hh b/source/blender/draw/engines/eevee_next/eevee_pipeline.hh index d2b9dc7a0a8..3690b264468 100644 --- a/source/blender/draw/engines/eevee_next/eevee_pipeline.hh +++ b/source/blender/draw/engines/eevee_next/eevee_pipeline.hh @@ -44,7 +44,7 @@ class BackgroundPipeline { void sync(GPUMaterial *gpumat, float background_opacity, float background_blur); void clear(View &view); - void render(View &view); + void render(View &view, Framebuffer &combined_fb); }; /** \} */ diff --git a/source/blender/draw/engines/eevee_next/eevee_view.cc b/source/blender/draw/engines/eevee_next/eevee_view.cc index a5b90377ebd..2d34877747b 100644 --- a/source/blender/draw/engines/eevee_next/eevee_view.cc +++ b/source/blender/draw/engines/eevee_next/eevee_view.cc @@ -136,7 +136,7 @@ void ShadingView::render() rt_buffer_opaque_, rt_buffer_refract_); - inst_.pipelines.background.render(render_view_); + inst_.pipelines.background.render(render_view_, combined_fb_); inst_.gbuffer.release();