Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2021-02-18 12:30:08 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2021-02-18 13:05:39 +0300
commit75580fa6a661eba58f9d39f8332985b1b72d3bc3 (patch)
tree4be7c35963f5dd993ade35c22a5b4707193fe214
parent3bb58e2a7ca2af1db550359cddbcbb9f85c27ec9 (diff)
Fix flashing eevee render passes in viewport
Caused by rB85fe12071ad7. When looking at a render pass in viewport and move the camera, there's a "flash" effect in this AOVs test file: {F9753476} {F9753473} The cause seems to be that taa_current_sample when rendering (DRW_state_is_image_render()) is ok because it has been incremented in EEVEE_temporal_sampling_draw but taa_current_sample is wrong when we are not rendering. D10375 by Ulysse Martin (youle) with clang format changes. Reviewed By: jbakker, lichtwerk, also blessing from fclem Differential Revision: https://developer.blender.org/D10375
-rw-r--r--source/blender/draw/engines/eevee/eevee_renderpasses.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_renderpasses.c b/source/blender/draw/engines/eevee/eevee_renderpasses.c
index 52160248d75..9b36e94a9dc 100644
--- a/source/blender/draw/engines/eevee/eevee_renderpasses.c
+++ b/source/blender/draw/engines/eevee/eevee_renderpasses.c
@@ -283,8 +283,9 @@ void EEVEE_renderpasses_postprocess(EEVEE_ViewLayerData *UNUSED(sldata),
EEVEE_EffectsInfo *effects = stl->effects;
/* Compensate for taa_current_sample being incremented after last drawing in
- * EEVEE_temporal_sampling_draw. */
- const int current_sample = effects->taa_current_sample - 1;
+ * EEVEE_temporal_sampling_draw when DRW_state_is_image_render(). */
+ const int current_sample = DRW_state_is_image_render() ? effects->taa_current_sample - 1 :
+ effects->taa_current_sample;
g_data->renderpass_current_sample = current_sample;
g_data->renderpass_type = renderpass_type;
g_data->renderpass_postprocess = PASS_POST_UNDEFINED;