Module: Mesa
Branch: main
Commit: c2e2a78c72e786f603f8ead1c589d8e4cbbd77c7
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c2e2a78c72e786f603f8ead1c589d8e4cbbd77c7

Author: Qiang Yu <[email protected]>
Date:   Mon Sep  4 15:44:00 2023 +0800

radeonsi: set use_aco when no llvm available

Reviewed-by: Marek Olšák <[email protected]>
Signed-off-by: Qiang Yu <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632>

---

 src/gallium/drivers/radeonsi/si_pipe.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index 8824bf29dd9..c824236774c 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -25,6 +25,8 @@
 #include "vl/vl_decoder.h"
 #include "si_utrace.h"
 
+#include "aco_interface.h"
+
 #ifdef LLVM_AVAILABLE
 #include "ac_llvm_util.h"
 #endif
@@ -1200,8 +1202,18 @@ static struct pipe_screen 
*radeonsi_screen_create_impl(struct radeon_winsys *ws,
                                             sscreen->info.has_dedicated_vram;
    }
 
-   /* ACO does not support compute cards yet. */
-   sscreen->use_aco = (sscreen->debug_flags & DBG(USE_ACO)) && 
sscreen->info.has_graphics;
+#ifdef LLVM_AVAILABLE
+   sscreen->use_aco = (sscreen->debug_flags & DBG(USE_ACO));
+#else
+   sscreen->use_aco = true;
+#endif
+
+   if (sscreen->use_aco && !aco_is_gpu_supported(&sscreen->info)) {
+      fprintf(stderr, "radeonsi: ACO does not support this chip yet\n");
+      FREE(sscreen->nir_options);
+      FREE(sscreen);
+      return NULL;
+   }
 
    if (sscreen->debug_flags & DBG(NO_GFX))
       sscreen->info.has_graphics = false;

Reply via email to