[Bf-blender-cvs] [af3954fe902] blender2.8: Eevee: fix bug with postprocess buffer sharing.

Clément Foucault noreply at git.blender.org
Thu May 18 01:53:13 CEST 2017


Commit: af3954fe902c9efdc916fcd7dfaa07918d6cdd9d
Author: Clément Foucault
Date:   Wed May 17 17:41:50 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBaf3954fe902c9efdc916fcd7dfaa07918d6cdd9d

Eevee: fix bug with postprocess buffer sharing.

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

M	source/blender/draw/engines/eevee/eevee_effects.c

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

diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index b19bbce801c..205e1588b43 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -299,18 +299,24 @@ void EEVEE_effects_init(EEVEE_Data *vedata)
 			int buffer_size[2] = {(int)viewport_size[0] / 2, (int)viewport_size[1] / 2};
 
 			struct GPUTexture **dof_down_near = &txl->dof_down_near;
+			bool fb_reset = false;
 
 			/* Reuse buffer from Bloom if available */
 			/* WATCH IT : must have the same size */
 			if ((enabled_effects & EFFECT_BLOOM) != 0) {
 				dof_down_near = &txl->bloom_downsample[0]; /* should always exists */
+				if ((effects->enabled_effects & EFFECT_BLOOM) == 0) {
+					fb_reset = true;
+				}
 			}
 			else if ((effects->enabled_effects & EFFECT_BLOOM) != 0) {
-				/* if framebuffer was configured to share buffer with bloom last frame */
-				if (fbl->dof_down_fb != NULL) {
-					DRW_framebuffer_free(fbl->dof_down_fb);
-					fbl->dof_down_fb = NULL;
-				}
+				fb_reset = true;
+			}
+
+			/* if framebuffer config must be changed */
+			if (fb_reset && (fbl->dof_down_fb != NULL)) {
+				DRW_framebuffer_free(fbl->dof_down_fb);
+				fbl->dof_down_fb = NULL;
 			}
 
 			/* Setup buffers */




More information about the Bf-blender-cvs mailing list