/* 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"
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;
}
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