From f9ef0e1bdece674e40e219b896540fb8096c25a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 25 Sep 2019 15:37:13 +0200 Subject: Fix T67342 EEVEE: Uninitialized buffer when changing screen size Was caused by some drawcall not being done if the volumetric resolve pass was drawn (using dual source blending seems to be the cause). Not sure why this is needed since it is still reset before the next drawcall. --- source/blender/draw/intern/draw_manager_exec.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/draw/intern/draw_manager_exec.c') diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 78da744abf8..3de9ce74dbc 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -1408,6 +1408,12 @@ static void drw_draw_pass_ex(DRWPass *pass, DST.batch = NULL; } + /* Fix T67342 for some reason. AMD Pro driver bug. */ + if ((DST.state & DRW_STATE_BLEND_CUSTOM) != 0 && + GPU_type_matches(GPU_DEVICE_ATI, GPU_OS_ANY, GPU_DRIVER_OFFICIAL)) { + drw_state_set(DST.state & ~DRW_STATE_BLEND_CUSTOM); + } + /* HACK: Rasterized discard can affect clear commands which are not * part of a DRWPass (as of now). So disable rasterized discard here * if it has been enabled. */ -- cgit v1.2.3