mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
gallium: Added SWR support for gdi
Added hooks for screen creation and swap. Still keep llvmpipe the default software renderer. v2: split from bigger patch v3: reword commit message Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
30ae2cbf82
commit
915b4b0d49
1 changed files with 23 additions and 5 deletions
|
|
@ -51,9 +51,12 @@
|
|||
#include "llvmpipe/lp_public.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SWR
|
||||
#include "swr/swr_public.h"
|
||||
#endif
|
||||
|
||||
static boolean use_llvmpipe = FALSE;
|
||||
|
||||
static boolean use_swr = FALSE;
|
||||
|
||||
static struct pipe_screen *
|
||||
gdi_screen_create(void)
|
||||
|
|
@ -69,6 +72,8 @@ gdi_screen_create(void)
|
|||
|
||||
#ifdef HAVE_LLVMPIPE
|
||||
default_driver = "llvmpipe";
|
||||
#elif HAVE_SWR
|
||||
default_driver = "swr";
|
||||
#else
|
||||
default_driver = "softpipe";
|
||||
#endif
|
||||
|
|
@ -78,15 +83,21 @@ gdi_screen_create(void)
|
|||
#ifdef HAVE_LLVMPIPE
|
||||
if (strcmp(driver, "llvmpipe") == 0) {
|
||||
screen = llvmpipe_create_screen( winsys );
|
||||
if (screen)
|
||||
use_llvmpipe = TRUE;
|
||||
}
|
||||
#else
|
||||
(void) driver;
|
||||
#endif
|
||||
#ifdef HAVE_SWR
|
||||
if (strcmp(driver, "swr") == 0) {
|
||||
screen = swr_create_screen( winsys );
|
||||
if (screen)
|
||||
use_swr = TRUE;
|
||||
}
|
||||
#endif
|
||||
(void) driver;
|
||||
|
||||
if (screen == NULL) {
|
||||
screen = softpipe_create_screen( winsys );
|
||||
} else {
|
||||
use_llvmpipe = TRUE;
|
||||
}
|
||||
|
||||
if(!screen)
|
||||
|
|
@ -128,6 +139,13 @@ gdi_present(struct pipe_screen *screen,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SWR
|
||||
if (use_swr) {
|
||||
swr_gdi_swap(screen, res, hDC);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
winsys = softpipe_screen(screen)->winsys,
|
||||
dt = softpipe_resource(res)->dt,
|
||||
gdi_sw_display(winsys, dt, hDC);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue