From 2406e8848eb0bb7223763efeacbbc48ae8d2f251 Mon Sep 17 00:00:00 2001 From: Jan Vesely Date: Thu, 5 Apr 2018 16:34:00 -0400 Subject: [PATCH] radeonsi: Reorder checks in si_check_render_feedback MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit si_get_total_colormask accesses NULL pointer on compute shaders Fixes crashes on clover Fixes: 0669dca9c00261849cee14d69fdea0a5e323c7f7 ("radeonsi: skip DCC render feedback checking if color writes are disabled") CC: Marek Olšák Signed-off-by: Jan Vesely Reviewed-by: Marek Olšák --- src/gallium/drivers/radeonsi/si_blit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 40f512a682d..35506dd74b3 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -710,15 +710,15 @@ static void si_check_render_feedback_resident_images(struct si_context *sctx) static void si_check_render_feedback(struct si_context *sctx) { + if (!sctx->need_check_render_feedback) + return; + /* There is no render feedback if color writes are disabled. * (e.g. a pixel shader with image stores) */ if (!si_get_total_colormask(sctx)) return; - if (!sctx->need_check_render_feedback) - return; - for (int i = 0; i < SI_NUM_SHADERS; ++i) { si_check_render_feedback_images(sctx, &sctx->images[i]); si_check_render_feedback_textures(sctx, &sctx->samplers[i]); -- 2.30.2