[Bf-blender-cvs] [76b15e338aa] master: GPU: Avoid blit operation modifying the wrong framebuffer during restore

Clément Foucault noreply at git.blender.org
Wed Oct 7 14:09:13 CEST 2020


Commit: 76b15e338aa288cedc19dfe5fae3d2be0456bf4c
Author: Clément Foucault
Date:   Wed Oct 7 14:03:27 2020 +0200
Branches: master
https://developer.blender.org/rB76b15e338aa288cedc19dfe5fae3d2be0456bf4c

GPU: Avoid blit operation modifying the wrong framebuffer during restore

At the end of `GPU_framebuffer_blit` when `prev_fb->bind(true);` is called,
the `context_->active_fb` was not in sync and lead to the wrong framebuffer
being modified by bind function.

This fix T81055 SSS light is missing from the diffuse light render pass

===================================================================

M	source/blender/gpu/opengl/gl_framebuffer.cc

===================================================================

diff --git a/source/blender/gpu/opengl/gl_framebuffer.cc b/source/blender/gpu/opengl/gl_framebuffer.cc
index 6b9d97530f9..4270ba544b5 100644
--- a/source/blender/gpu/opengl/gl_framebuffer.cc
+++ b/source/blender/gpu/opengl/gl_framebuffer.cc
@@ -489,6 +489,8 @@ void GLFrameBuffer::blit_to(
     /* Restore the draw buffers. */
     glDrawBuffers(ARRAY_SIZE(dst->gl_attachments_), dst->gl_attachments_);
   }
+  /* Ensure previous buffer is restored. */
+  context_->active_fb = dst;
 }
 
 /** \} */



More information about the Bf-blender-cvs mailing list