diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2021-02-18 12:30:08 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2021-02-18 13:05:39 +0300 |
commit | 75580fa6a661eba58f9d39f8332985b1b72d3bc3 (patch) | |
tree | 4be7c35963f5dd993ade35c22a5b4707193fe214 /source/blender | |
parent | 3bb58e2a7ca2af1db550359cddbcbb9f85c27ec9 (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
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_renderpasses.c | 5 |
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; |