summaryrefslogtreecommitdiffstats
path: root/src/gallium/targets
diff options
context:
space:
mode:
authorGiovanni Campagna <[email protected]>2014-07-23 19:37:31 +0100
committerEmil Velikov <[email protected]>2014-07-30 16:33:09 +0100
commit3b176c441b7ddc5f7d2f891da3f76cf3c1814ce1 (patch)
treea99421810f0150b9759363fb56910a160d10ad97 /src/gallium/targets
parent8430af5ebe1ee8119e14ae8fe00ec98fda40c57f (diff)
gallium: Add a dumb drm/kms winsys backed swrast provider
Add a new winsys and target that can be used with a dri2 state tracker and loader instead of drisw. This allows to use gbm as a dri2/image loader and avoid the extra copy from the backbuffer to the shadow frontbuffer. The new driver is called "kms_swrast", and is loaded by gbm as a fallback, because it is only useful with the gbm platform (as no buffer sharing is possible) To force select the driver set the environment variable GBM_ALWAYS_SOFTWARE [Emil Velikov] - Rebase on top of gallium megadriver. - s/text/test/ in configure.ac (Spotted by Andreas Pokorny). - Add scons support for winsys/sw/kms-dri and fix the build. - Provide separate DriverAPI, due to different InitScreen hook. Signed-off-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/gallium/targets')
-rw-r--r--src/gallium/targets/dri/Makefile.am6
-rw-r--r--src/gallium/targets/dri/SConscript4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
index 0816b8c9b25..c7fe4106ab0 100644
--- a/src/gallium/targets/dri/Makefile.am
+++ b/src/gallium/targets/dri/Makefile.am
@@ -146,6 +146,12 @@ STATIC_TARGET_CPPFLAGS += -DGALLIUM_SOFTPIPE
STATIC_TARGET_LIB_DEPS += \
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la \
$(top_builddir)/src/gallium/drivers/softpipe/libsoftpipe.la
+
+if HAVE_DRI2
+MEGADRIVERS += kms_swrast
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/sw/kms-dri/libswkmsdri.la
+endif
endif
if NEED_GALLIUM_LLVMPIPE_DRIVER
diff --git a/src/gallium/targets/dri/SConscript b/src/gallium/targets/dri/SConscript
index faf370f2c34..8cb90b3153f 100644
--- a/src/gallium/targets/dri/SConscript
+++ b/src/gallium/targets/dri/SConscript
@@ -36,6 +36,7 @@ env.Prepend(LIBS = [
svgadrm,
svga,
ws_dri,
+ ws_kms_dri,
softpipe,
libloader,
mesa,
@@ -55,6 +56,9 @@ module = env.LoadableModule(
env.Command('vmwgfx_dri.so', 'gallium_dri.so', "ln -f ${SOURCE} ${TARGET}")
# swrast_dri.so
env.Command('swrast_dri.so', 'gallium_dri.so', "ln -f ${SOURCE} ${TARGET}")
+# kms_swrast_dri.so
+env.Command('kms_swrast_dri.so', 'gallium_dri.so', "ln -f ${SOURCE} ${TARGET}")
env.Alias('dri-vmwgfx', module)
env.Alias('dri-swrast', module)
+env.Alias('dri-kms-swrast', module)