winsys/drm: Add swrast.

The swrast winsys always returns NULL when drm_api_create is called.
This commit is contained in:
Chia-I Wu 2010-01-22 15:51:51 +08:00
parent 52d7b2cede
commit a1306f4ef6
8 changed files with 72 additions and 2 deletions

View file

@ -100,8 +100,8 @@ GALLIUM_DIRS = auxiliary drivers state_trackers
GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
GALLIUM_DRIVERS_DIRS = softpipe failover svga i915 i965 r300 trace identity
GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
GALLIUM_WINSYS_DIRS = xlib egl_xlib
GALLIUM_WINSYS_DRM_DIRS =
GALLIUM_WINSYS_DIRS = drm xlib egl_xlib
GALLIUM_WINSYS_DRM_DIRS = swrast
GALLIUM_STATE_TRACKERS_DIRS = glx
# native displays EGL should support

View file

@ -1311,6 +1311,18 @@ if test "x$enable_gallium_nouveau" = xyes; then
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv04 nv10 nv20 nv30 nv40 nv50"
fi
dnl
dnl Gallium swrast configuration
dnl
AC_ARG_ENABLE([gallium-swrast],
[AS_HELP_STRING([--enable-gallium-swrast],
[build gallium swrast @<:@default=disabled@:>@])],
[enable_gallium_swrast="$enableval"],
[enable_gallium_swrast=auto])
if test "x$enable_gallium_swrast" = xyes; then
GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS swrast"
fi
dnl prepend CORE_DIRS to SRC_DIRS
SRC_DIRS="$CORE_DIRS $SRC_DIRS"

View file

@ -81,6 +81,15 @@ that a number of EGL drivers depend on the <code>egl_g3d</code> state tracker.
They will <em>not</em> be built without the <code>egl_g3d</code> state
tracker.</p>
</li>
<li><code>--enable-gallium-swrast</code>
<p>This option is not specific to EGL. But if there is no driver for your
hardware, or you are experiencing problems with the hardware driver, you can
enable the swrast DRM driver. It is a dummy driver and EGL will fallback to
software rendering automatically.</p>
</li>
</ul>
@ -159,6 +168,7 @@ tracker to build. The available drivers are</p>
<li><code>egl_&lt;dpy&gt;_i965</code></li>
<li><code>egl_&lt;dpy&gt;_radeon</code></li>
<li><code>egl_&lt;dpy&gt;_nouveau</code></li>
<li><code>egl_&lt;dpy&gt;_swrast</code></li>
<li><code>egl_&lt;dpy&gt;_vmwgfx</code></li>
</ul>

View file

@ -0,0 +1,12 @@
# src/gallium/winsys/drm/swrast/Makefile
TOP = ../../../../..
include $(TOP)/configs/current
SUBDIRS = core $(GALLIUM_STATE_TRACKERS_DIRS)
default install clean:
@for dir in $(SUBDIRS) ; do \
if [ -d $$dir ] ; then \
(cd $$dir && $(MAKE) $@) || exit 1; \
fi \
done

View file

@ -0,0 +1,10 @@
# src/gallium/winsys/drm/swrast/core/Makefile
TOP = ../../../../../..
include $(TOP)/configs/current
LIBNAME = swrastdrm
C_SOURCES = swrast_drm_api.c
include ../../../../Makefile.template

View file

@ -0,0 +1,13 @@
#include "state_tracker/drm_api.h"
static struct drm_api swrast_drm_api =
{
.name = "swrast",
};
struct drm_api *
drm_api_create()
{
(void) swrast_drm_api;
return NULL;
}

View file

@ -0,0 +1,12 @@
TOP = ../../../../../..
include $(TOP)/configs/current
EGL_DRIVER_NAME = swrast
EGL_DRIVER_SOURCES = dummy.c
EGL_DRIVER_LIBS =
EGL_DRIVER_PIPES = \
$(TOP)/src/gallium/winsys/drm/swrast/core/libswrastdrm.a \
$(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a
include ../../Makefile.egl_g3d

View file

@ -0,0 +1 @@
/* mklib expects at least one object file */