From: Jan Vesely Date: Thu, 5 Apr 2018 20:34:00 +0000 (-0400) Subject: radeonsi: Reorder checks in si_check_render_feedback X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2406e8848eb0bb7223763efeacbbc48ae8d2f251;p=mesa.git radeonsi: Reorder checks in si_check_render_feedback 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 --- 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]);