From ea6d27e4debd4d3dffa69b5f14872f186efd7ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Ondra=C4=8Dka?= Date: Thu, 17 Aug 2023 18:01:28 +0200 Subject: [PATCH] r300: don't abort on flow control when using draw for vs It can handle it just fine. Around 250 dEQPs go from Skip to Pass. Fixes: 1021e2b946b18739b65b575b0770e6158ba05592 Reviewed-by: Filip Gawin Part-of: (cherry picked from commit 8657a09f9a618102d1eaad503a6c1a63d38dcb02) --- .pick_status.json | 2 +- src/gallium/drivers/r300/compiler/r300_nir.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index c200ed2ae4c..a05b41df947 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5774,7 +5774,7 @@ "description": "r300: don't abort on flow control when using draw for vs", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "1021e2b946b18739b65b575b0770e6158ba05592", "notes": null diff --git a/src/gallium/drivers/r300/compiler/r300_nir.c b/src/gallium/drivers/r300/compiler/r300_nir.c index 1c27edeea59..05f7b8c59e7 100644 --- a/src/gallium/drivers/r300/compiler/r300_nir.c +++ b/src/gallium/drivers/r300/compiler/r300_nir.c @@ -171,7 +171,8 @@ r300_finalize_nir(struct pipe_screen *pscreen, void *nir) nir_sweep(s); - if (!r300_screen(pscreen)->caps.is_r500) { + if (!r300_screen(pscreen)->caps.is_r500 && + (r300_screen(pscreen)->caps.has_tcl || s->info.stage == MESA_SHADER_FRAGMENT)) { char *msg = r300_check_control_flow(s); if (msg) return strdup(msg);