diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-03-16 10:24:54 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-03-18 22:54:27 +0300 |
commit | 054957659f671910e1967fec83768affbbff060c (patch) | |
tree | 234b11d5ceb76189795925bd025719818ec737a2 /source/blender/gpu/opengl/gl_texture.cc | |
parent | 935136f844afc057be91d3538191219a321f4b52 (diff) |
GL: Check texture framebuffer feedback only if not using compute pipeline.
This was getting in the way in multiple instances. Compute shaders dispatch
are still made in the presence of the last bound framebuffer even if they
do not interact with it.
Diffstat (limited to 'source/blender/gpu/opengl/gl_texture.cc')
-rw-r--r-- | source/blender/gpu/opengl/gl_texture.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/gpu/opengl/gl_texture.cc b/source/blender/gpu/opengl/gl_texture.cc index 0a5c7f8e79e..9d070088802 100644 --- a/source/blender/gpu/opengl/gl_texture.cc +++ b/source/blender/gpu/opengl/gl_texture.cc @@ -688,6 +688,11 @@ void GLTexture::check_feedback_loop() if (GPU_mip_render_workaround()) { return; } + /* Do not check if using compute shader. */ + GLShader *sh = dynamic_cast<GLShader *>(Context::get()->shader); + if (sh && sh->is_compute()) { + return; + } GLFrameBuffer *fb = static_cast<GLFrameBuffer *>(GLContext::get()->active_fb); for (int i = 0; i < ARRAY_SIZE(fb_); i++) { if (fb_[i] == fb) { |