diff options
author | Emil Velikov <[email protected]> | 2014-06-21 13:48:52 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2014-07-10 01:06:48 +0100 |
commit | f6483aa6947437c42928c879dd28d758b7d12901 (patch) | |
tree | e35c90c0f737cc38c24fa045d9d475703f97d84f | |
parent | dab5d16f0e54eab41f863bb6fc6637b5e2d70aa0 (diff) |
targets/dri-swrast: convert to gallium megadrivers :)
Export the approapriate new symbol, and keep backwards compat
via the megadriver_stub helper library.
Our next step would be to unify dri/drm and dri/sw, leading to
a complete megadrivers solution, and having a single library
that provides dri across all targets.
Signed-off-by: Emil Velikov <[email protected]>
Tested-by: Rob Clark <[email protected]>
Tested-by: Thomas Helland <thomashelland90 at gmail.com>
Acked-by: Tom Stellard <[email protected]>
-rw-r--r-- | src/gallium/Automake.inc | 2 | ||||
-rw-r--r-- | src/gallium/state_trackers/dri/common/dri_screen.h | 2 | ||||
-rw-r--r-- | src/gallium/state_trackers/dri/sw/drisw.c | 4 | ||||
-rw-r--r-- | src/gallium/targets/dri-swrast/Makefile.am | 1 | ||||
-rw-r--r-- | src/gallium/targets/dri-swrast/SConscript | 9 | ||||
-rw-r--r-- | src/gallium/targets/dri-swrast/swrast_drm_api.c | 9 |
6 files changed, 25 insertions, 2 deletions
diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc index e70a1363e1a..1a21cad0128 100644 --- a/src/gallium/Automake.inc +++ b/src/gallium/Automake.inc @@ -28,6 +28,8 @@ GALLIUM_DRIVER_CXXFLAGS = \ GALLIUM_DRI_CFLAGS = \ -I$(top_srcdir)/include \ + -I$(top_srcdir)/src/gallium/state_trackers/dri/common \ + -I$(top_srcdir)/src/mesa/drivers/dri/common \ -I$(top_srcdir)/src/gallium/include \ -I$(top_srcdir)/src/gallium/auxiliary \ -I$(top_srcdir)/src/gallium/drivers \ diff --git a/src/gallium/state_trackers/dri/common/dri_screen.h b/src/gallium/state_trackers/dri/common/dri_screen.h index 106dcc3a711..63758d2f7f7 100644 --- a/src/gallium/state_trackers/dri/common/dri_screen.h +++ b/src/gallium/state_trackers/dri/common/dri_screen.h @@ -147,6 +147,8 @@ dri_destroy_screen(__DRIscreen * sPriv); extern const struct __DriverAPIRec galliumdrm_driver_api; extern const __DRIextension *galliumdrm_driver_extensions[]; +extern const struct __DriverAPIRec galliumsw_driver_api; +extern const __DRIextension *galliumsw_driver_extensions[]; extern const __DRIconfigOptionsExtension gallium_config_options; #endif diff --git a/src/gallium/state_trackers/dri/sw/drisw.c b/src/gallium/state_trackers/dri/sw/drisw.c index 6f50b05c2be..f1d5a067148 100644 --- a/src/gallium/state_trackers/dri/sw/drisw.c +++ b/src/gallium/state_trackers/dri/sw/drisw.c @@ -397,7 +397,7 @@ drisw_create_buffer(__DRIscreen * sPriv, * * DRI versions differ in their implementation of init_screen and swap_buffers. */ -const struct __DriverAPIRec driDriverAPI = { +const struct __DriverAPIRec galliumsw_driver_api = { .InitScreen = drisw_init_screen, .DestroyScreen = dri_destroy_screen, .CreateContext = dri_create_context, @@ -411,7 +411,7 @@ const struct __DriverAPIRec driDriverAPI = { }; /* This is the table of extensions that the loader will dlsym() for. */ -PUBLIC const __DRIextension *__driDriverExtensions[] = { +const __DRIextension *galliumsw_driver_extensions[] = { &driCoreExtension.base, &driSWRastExtension.base, &driCopySubBufferExtension.base, diff --git a/src/gallium/targets/dri-swrast/Makefile.am b/src/gallium/targets/dri-swrast/Makefile.am index 7db7d40cfc6..b52c4c2f3c9 100644 --- a/src/gallium/targets/dri-swrast/Makefile.am +++ b/src/gallium/targets/dri-swrast/Makefile.am @@ -39,6 +39,7 @@ swrast_dri_la_LDFLAGS = $(GALLIUM_DRI_LINKER_FLAGS) swrast_dri_la_LIBADD = \ $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \ + $(top_builddir)/src/mesa/drivers/dri/common/libmegadriver_stub.la \ $(top_builddir)/src/gallium/state_trackers/dri/sw/libdrisw.la \ $(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la \ $(top_builddir)/src/gallium/drivers/softpipe/libsoftpipe.la \ diff --git a/src/gallium/targets/dri-swrast/SConscript b/src/gallium/targets/dri-swrast/SConscript index 029bb033e43..2497ec65832 100644 --- a/src/gallium/targets/dri-swrast/SConscript +++ b/src/gallium/targets/dri-swrast/SConscript @@ -2,6 +2,14 @@ Import('*') env = drienv.Clone() +env.Append(CPPPATH = [ + '#/src/loader', + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/drivers/dri/common', + '#/src/gallium/state_trackers/dri/common', +]) + env.Prepend(LIBS = [ st_drisw, ws_dri, @@ -10,6 +18,7 @@ env.Prepend(LIBS = [ mesa, glsl, gallium, + megadrivers_stub, dri_common, ]) diff --git a/src/gallium/targets/dri-swrast/swrast_drm_api.c b/src/gallium/targets/dri-swrast/swrast_drm_api.c index 3394722f6f9..102d5bd1a38 100644 --- a/src/gallium/targets/dri-swrast/swrast_drm_api.c +++ b/src/gallium/targets/dri-swrast/swrast_drm_api.c @@ -34,6 +34,15 @@ #include "state_tracker/drm_driver.h" #include "sw/dri/dri_sw_winsys.h" +#include "dri_screen.h" + +const __DRIextension **__driDriverGetExtensions_swrast(void); + +PUBLIC const __DRIextension **__driDriverGetExtensions_swrast(void) +{ + globalDriverAPI = &galliumsw_driver_api; + return galliumsw_driver_extensions; +} DRM_DRIVER_DESCRIPTOR("swrast", NULL, NULL, NULL); |