[Bf-blender-cvs] [be967b35640] blender-v3.2-release: Fix T98972: EEVEE Bloom Pass Outputs Final Image Instead of Bloom.

Jeroen Bakker noreply at git.blender.org
Wed Jun 22 13:03:02 CEST 2022


Commit: be967b356400b747e11fd8db975c9d76ec6ff1a6
Author: Jeroen Bakker
Date:   Tue Jun 21 08:20:26 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBbe967b356400b747e11fd8db975c9d76ec6ff1a6

Fix T98972: EEVEE Bloom Pass Outputs Final Image Instead of Bloom.

Regression introduced by {rBca37654b6327}. This commit reversed the
order of loading uniforms. The bloom renderpass used the previous
loading order to overwrite an existing uniform (bloomBaseAdd).

Due to the new ordering this doesn't work anymore where the render
pass outputted an image similar to the final image. This was fixed
by loading the correct value for bloomAddBase and remove the rewrite.

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

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

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

diff --git a/source/blender/draw/engines/eevee/eevee_bloom.c b/source/blender/draw/engines/eevee/eevee_bloom.c
index d12ce7213f9..adcd56e9184 100644
--- a/source/blender/draw/engines/eevee/eevee_bloom.c
+++ b/source/blender/draw/engines/eevee/eevee_bloom.c
@@ -125,7 +125,8 @@ static DRWShadingGroup *eevee_create_bloom_pass(const char *name,
                                                 struct GPUShader *sh,
                                                 DRWPass **pass,
                                                 bool upsample,
-                                                bool resolve)
+                                                bool resolve,
+                                                bool resolve_add_base)
 {
   struct GPUBatch *quad = DRW_cache_fullscreen_quad_get();
 
@@ -141,7 +142,7 @@ static DRWShadingGroup *eevee_create_bloom_pass(const char *name,
   }
   if (resolve) {
     DRW_shgroup_uniform_vec3(grp, "bloomColor", effects->bloom_color, 1);
-    DRW_shgroup_uniform_bool_copy(grp, "bloomAddBase", true);
+    DRW_shgroup_uniform_bool_copy(grp, "bloomAddBase", resolve_add_base);
   }
 
   return grp;
@@ -193,18 +194,21 @@ void EEVEE_bloom_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *ved
                             EEVEE_shaders_bloom_downsample_get(use_antiflicker),
                             &psl->bloom_downsample_first,
                             false,
+                            false,
                             false);
     eevee_create_bloom_pass("Bloom Downsample",
                             effects,
                             EEVEE_shaders_bloom_downsample_get(false),
                             &psl->bloom_downsample,
                             false,
+                            false,
                             false);
     eevee_create_bloom_pass("Bloom Upsample",
                             effects,
                             EEVEE_shaders_bloom_upsample_get(use_highres),
                             &psl->bloom_upsample,
                             true,
+                            false,
                             false);
 
     grp = eevee_create_bloom_pass("Bloom Blit",
@@ -212,6 +216,7 @@ void EEVEE_bloom_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *ved
                                   EEVEE_shaders_bloom_blit_get(use_antiflicker),
                                   &psl->bloom_blit,
                                   false,
+                                  false,
                                   false);
     DRW_shgroup_uniform_vec4(grp, "curveThreshold", effects->bloom_curve_threshold, 1);
     DRW_shgroup_uniform_float(grp, "clampIntensity", &effects->bloom_clamp, 1);
@@ -221,6 +226,7 @@ void EEVEE_bloom_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *ved
                                   EEVEE_shaders_bloom_resolve_get(use_highres),
                                   &psl->bloom_resolve,
                                   true,
+                                  true,
                                   true);
   }
 }
@@ -309,7 +315,8 @@ void EEVEE_bloom_output_init(EEVEE_ViewLayerData *UNUSED(sldata),
                                                  EEVEE_shaders_bloom_resolve_get(use_highres),
                                                  &psl->bloom_accum_ps,
                                                  true,
-                                                 true);
+                                                 true,
+                                                 false);
   DRW_shgroup_uniform_bool_copy(grp, "bloomAddBase", false);
 }



More information about the Bf-blender-cvs mailing list