diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-10-07 15:03:27 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-10-07 15:09:08 +0300 |
commit | 76b15e338aa288cedc19dfe5fae3d2be0456bf4c (patch) | |
tree | 3709032d526f3af446144539bc84e262dc774923 | |
parent | 724a4f4676586d65b718deab7f04f207e0ad6488 (diff) |
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
-rw-r--r-- | source/blender/gpu/opengl/gl_framebuffer.cc | 2 |
1 files changed, 2 insertions, 0 deletions
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; } /** \} */ |