From 30bed8761dfb0c6ddb5ecd4b7c31c2e721a57535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 15 Oct 2021 11:22:28 +0200 Subject: Fix T92226 EEVEE: AO misaligned on first sample Caused by tricky state tracking. `GPU_framebuffer_bind()` is updating the framebuffer on first time and will reset the viewport state of it. --- source/blender/draw/engines/eevee/eevee_occlusion.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/engines/eevee/eevee_occlusion.c b/source/blender/draw/engines/eevee/eevee_occlusion.c index 955cfd990ef..1acd9950012 100644 --- a/source/blender/draw/engines/eevee/eevee_occlusion.c +++ b/source/blender/draw/engines/eevee/eevee_occlusion.c @@ -199,6 +199,8 @@ void EEVEE_occlusion_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) if ((effects->enabled_effects & EFFECT_GTAO) != 0) { DRW_stats_group_start("GTAO Horizon Scan"); + GPU_framebuffer_bind(fbl->gtao_fb); + /** NOTE(fclem): Kind of fragile. We need this to make sure everything lines up * nicely during planar reflection. */ if (common_data->ray_type != EEVEE_RAY_GLOSSY) { @@ -206,8 +208,6 @@ void EEVEE_occlusion_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) GPU_framebuffer_viewport_set(fbl->gtao_fb, 0, 0, UNPACK2(viewport_size)); } - GPU_framebuffer_bind(fbl->gtao_fb); - DRW_draw_pass(psl->ao_horizon_search); if (common_data->ray_type != EEVEE_RAY_GLOSSY) { -- cgit v1.2.3