From 4038cabc6d6958b1afd2ff2f809beb7a79440c8c Mon Sep 17 00:00:00 2001 From: Xavier Hallade Date: Mon, 26 Jun 2023 19:36:09 +0200 Subject: [PATCH] EEVEE: Remove unneeded GPU_finish A GPU_finish for each EEVEE_render_draw was initially added by 3f0873fa1e48e277f85801ca03c344bed4a77320 but it introduces important GPU execution gaps during rendering. Removing it gives a ~10% improvement on Intel Arc / Windows from our testing with Red Autumn Forest scene. Pull Request: https://projects.blender.org/blender/blender/pulls/109382 --- source/blender/draw/engines/eevee/eevee_render.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c index da8a4d7fc0a..446fd25731b 100644 --- a/source/blender/draw/engines/eevee/eevee_render.c +++ b/source/blender/draw/engines/eevee/eevee_render.c @@ -651,8 +651,10 @@ void EEVEE_render_draw(EEVEE_Data *vedata, RenderEngine *engine, RenderLayer *rl /* Post Process */ EEVEE_draw_effects(sldata, vedata); - /* XXX Seems to fix TDR issue with NVidia drivers on linux. */ - GPU_finish(); + /* NOTE(@fclem): Seems to fix TDR issue with NVidia drivers. */ + if (GPU_type_matches_ex(GPU_DEVICE_NVIDIA, GPU_OS_ANY, GPU_DRIVER_ANY, GPU_BACKEND_OPENGL)) { + GPU_finish(); + } /* Perform render step between samples to allow * flushing of freed GPUBackend resources. */