diff options
author | Giovanni Campagna <[email protected]> | 2014-07-23 19:37:31 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2014-07-30 16:33:09 +0100 |
commit | 3b176c441b7ddc5f7d2f891da3f76cf3c1814ce1 (patch) | |
tree | a99421810f0150b9759363fb56910a160d10ad97 /src/gallium/targets/dri | |
parent | 8430af5ebe1ee8119e14ae8fe00ec98fda40c57f (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/dri')
-rw-r--r-- | src/gallium/targets/dri/Makefile.am | 6 | ||||
-rw-r--r-- | src/gallium/targets/dri/SConscript | 4 |
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) |