meson: fix debug build on Android
[mesa.git] / src / gallium / auxiliary / target-helpers / sw_helper.h
index ae5f3de92babd806d706c468447969d2dbd2272f..e129819477d125487cd6e3c1fa3f966a540dec74 100644 (file)
@@ -9,9 +9,13 @@
 
 
 /* Helper function to choose and instantiate one of the software rasterizers:
- * llvmpipe, softpipe.
+ * llvmpipe, softpipe, swr.
  */
 
+#ifdef GALLIUM_ZINK
+#include "zink/zink_public.h"
+#endif
+
 #ifdef GALLIUM_SOFTPIPE
 #include "softpipe/sp_public.h"
 #endif
 #include "llvmpipe/lp_public.h"
 #endif
 
+#ifdef GALLIUM_SWR
+#include "swr/swr_public.h"
+#endif
+
 #ifdef GALLIUM_VIRGL
 #include "virgl/virgl_public.h"
 #include "virgl/vtest/virgl_vtest_public.h"
@@ -39,15 +47,25 @@ sw_screen_create_named(struct sw_winsys *winsys, const char *driver)
    if (screen == NULL && strcmp(driver, "virpipe") == 0) {
       struct virgl_winsys *vws;
       vws = virgl_vtest_winsys_wrap(winsys);
-      screen = virgl_create_screen(vws);
+      screen = virgl_create_screen(vws, NULL);
    }
 #endif
 
 #if defined(GALLIUM_SOFTPIPE)
-   if (screen == NULL)
+   if (screen == NULL && strcmp(driver, "softpipe") == 0)
       screen = softpipe_create_screen(winsys);
 #endif
 
+#if defined(GALLIUM_SWR)
+   if (screen == NULL && strcmp(driver, "swr") == 0)
+      screen = swr_create_screen(winsys);
+#endif
+
+#if defined(GALLIUM_ZINK)
+   if (screen == NULL && strcmp(driver, "zink") == 0)
+      screen = zink_create_screen(winsys);
+#endif
+
    return screen;
 }
 
@@ -62,6 +80,10 @@ sw_screen_create(struct sw_winsys *winsys)
    default_driver = "llvmpipe";
 #elif defined(GALLIUM_SOFTPIPE)
    default_driver = "softpipe";
+#elif defined(GALLIUM_SWR)
+   default_driver = "swr";
+#elif defined(GALLIUM_ZINK)
+   default_driver = "zink";
 #else
    default_driver = "";
 #endif