diff options
-rw-r--r-- | configs/autoconf.in | 2 | ||||
-rw-r--r-- | configs/default | 4 | ||||
-rw-r--r-- | configure.ac | 34 | ||||
-rw-r--r-- | docs/egl.html | 32 | ||||
-rw-r--r-- | src/egl/main/Makefile | 6 | ||||
-rw-r--r-- | src/egl/main/egldriver.c | 19 | ||||
-rw-r--r-- | src/gallium/state_trackers/egl/Makefile | 6 | ||||
-rw-r--r-- | src/gallium/targets/Makefile.egl | 18 |
8 files changed, 64 insertions, 57 deletions
diff --git a/configs/autoconf.in b/configs/autoconf.in index 3428e3a2944..417138b2a1f 100644 --- a/configs/autoconf.in +++ b/configs/autoconf.in @@ -97,7 +97,7 @@ GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drive # Driver specific build vars DRI_DIRS = @DRI_DIRS@ -EGL_DISPLAYS = @EGL_DISPLAYS@ +EGL_PLATFORMS = @EGL_PLATFORMS@ EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ # Dependencies diff --git a/configs/default b/configs/default index 9241e807977..3d9744409ae 100644 --- a/configs/default +++ b/configs/default @@ -110,8 +110,8 @@ GALLIUM_WINSYS_DIRS = sw sw/xlib GALLIUM_TARGET_DIRS = libgl-xlib GALLIUM_STATE_TRACKERS_DIRS = glx vega -# native displays EGL should support -EGL_DISPLAYS = x11 +# native platforms EGL should support +EGL_PLATFORMS = x11 EGL_CLIENT_APIS = $(GL_LIB) # Library dependencies diff --git a/configure.ac b/configure.ac index 7089a87075f..21123eccccb 100644 --- a/configure.ac +++ b/configure.ac @@ -1301,18 +1301,22 @@ if test "x$HAVE_ST_XORG" = xyes; then HAVE_XEXTPROTO_71="no") fi +AC_ARG_WITH([egl-platforms], + [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@], + [comma delimited native platforms libEGL supports, e.g. + "x11,kms" @<:@default=auto@:>@])], + [with_egl_platforms="$withval"], + [with_egl_platforms=yes]) AC_ARG_WITH([egl-displays], [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@], - [comma delimited native displays libEGL supports, e.g. - "x11,kms" @<:@default=auto@:>@])], - [with_egl_displays="$withval"], - [with_egl_displays=yes]) + [DEPRECATED. Use --with-egl-platforms instead])], + [with_egl_platforms="$withval"]) -EGL_DISPLAYS="" -case "$with_egl_displays" in +EGL_PLATFORMS="" +case "$with_egl_platforms" in yes) if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then - EGL_DISPLAYS="x11" + EGL_PLATFORMS="x11" fi ;; *) @@ -1320,18 +1324,18 @@ yes) AC_MSG_ERROR([cannot build egl state tracker without EGL library]) fi # verify the requested driver directories exist - egl_displays=`IFS=', '; echo $with_egl_displays` - for dpy in $egl_displays; do - test -d "$srcdir/src/gallium/state_trackers/egl/$dpy" || \ - AC_MSG_ERROR([EGL display '$dpy' does't exist]) - if test "$dpy" = "fbdev"; then + egl_platforms=`IFS=', '; echo $with_egl_platforms` + for plat in $egl_platforms; do + test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \ + AC_MSG_ERROR([EGL platform '$plat' does't exist]) + if test "$plat" = "fbdev"; then GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev" fi done - EGL_DISPLAYS="$egl_displays" + EGL_PLATFORMS="$egl_platforms" ;; esac -AC_SUBST([EGL_DISPLAYS]) +AC_SUBST([EGL_PLATFORMS]) AC_ARG_WITH([egl-driver-dir], [AS_HELP_STRING([--with-egl-driver-dir=DIR], @@ -1579,7 +1583,7 @@ echo " Shared libs: $enable_shared" echo " Static libs: $enable_static" if test "$enable_egl" = yes; then echo " EGL: $EGL_DRIVERS_DIRS" - echo " EGL displays: $EGL_DISPLAYS" + echo " EGL platforms: $EGL_PLATFORMS" else echo " EGL: no" fi diff --git a/docs/egl.html b/docs/egl.html index 559bd990469..b2198e931d0 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -69,17 +69,17 @@ drivers will be installed to <code>${libdir}/egl</code>.</p> </li> -<li><code>--with-egl-displays</code> +<li><code>--with-egl-platforms</code> -<p>List the window system(s) to support. It is by default <code>x11</code>, -which supports the X Window System. Its argument is a comma separated string -like, for example, <code>--with-egl-displays=x11,kms</code>. Because an EGL -driver decides which window system to support, this example will enable two -(sets of) EGL drivers. One supports the X window system and the other supports -bare KMS (kernel modesetting).</p> +<p>List the native platform window system(s) to support. It is by default +<code>x11</code>, which supports the X Window System. Its argument is a comma +separated string like, for example, <code>--with-egl-platforms=x11,kms</code>. +Because an EGL driver decides which window system to support, this example will +enable two (sets of) EGL drivers. One supports the X window system and the +other supports bare KMS (kernel modesetting).</p> -<p>The available displays are <code>x11</code>, <code>kms</code>, -<code>fbdev</code>, and <code>gdi</code>. The <code>gdi</code> display can +<p>The available platforms are <code>x11</code>, <code>kms</code>, +<code>fbdev</code>, and <code>gdi</code>. The <code>gdi</code> platform can only be built with SCons.</p> </li> @@ -151,14 +151,14 @@ specific driver. This variable is ignored for setuid/setgid binaries.</p> </li> -<li><code>EGL_DISPLAY</code> +<li><code>EGL_PLATFORM</code> <p>When <code>EGL_DRIVER</code> is not set, the main library loads <em>all</em> -EGL drivers that support a certain window system. <code>EGL_DISPLAY</code> can -be used to specify the window system and the valid values are, for example, +EGL drivers that support a certain window system. <code>EGL_PLATFORM</code> +can be used to specify the window system and the valid values are, for example, <code>x11</code> or <code>kms</code>. When the variable is not set, the main library defaults the value to the first window system listed in -<code>--with-egl-displays</code> at configuration time. +<code>--with-egl-platforms</code> at configuration time. </li> @@ -195,9 +195,9 @@ drivers are</p> <li><code>egl_<dpy>_vmwgfx</code></li> </ul> -<p><code><dpy></code> is given by <code>--with-egl-displays</code> at +<p><code><dpy></code> is given by <code>--with-egl-platforms</code> at configuration time. There is usually one EGL driver for each combination of -the displays listed and the pipe drivers enabled. When the display is pure +the platforms listed and the pipe drivers enabled. When the platform is pure software or pure hardware, non-working combinations will not be built.</p> <p>Classic EGL drivers, on the other hand, support only a subset of the @@ -322,7 +322,7 @@ should as well lock the display before using it. <ul> <li>Pass the conformance tests</li> -<li>Better automatic driver selection: <code>EGL_DISPLAY</code> loads all +<li>Better automatic driver selection: <code>EGL_PLATFORM</code> loads all drivers and might eat too much memory.</li> </ul> diff --git a/src/egl/main/Makefile b/src/egl/main/Makefile index 0af964d8741..d9e9e4fcd6d 100644 --- a/src/egl/main/Makefile +++ b/src/egl/main/Makefile @@ -7,7 +7,7 @@ include $(TOP)/configs/current EGL_MAJOR = 1 EGL_MINOR = 0 -INCLUDE_DIRS = -I$(TOP)/include $(X11_CFLAGS) +INCLUDE_DIRS = -I$(TOP)/include HEADERS = \ eglcompiler.h \ @@ -51,10 +51,10 @@ OBJECTS = $(SOURCES:.c=.o) # use dl*() to load drivers LOCAL_CFLAGS = -D_EGL_OS_UNIX=1 -EGL_DEFAULT_DISPLAY = $(word 1, $(EGL_DISPLAYS)) +EGL_DEFAULT_PLATFORM = $(firstword $(EGL_PLATFORMS)) LOCAL_CFLAGS += \ - -D_EGL_DEFAULT_DISPLAY=\"$(EGL_DEFAULT_DISPLAY)\" \ + -D_EGL_DEFAULT_PLATFORM=\"$(EGL_DEFAULT_PLATFORM)\" \ -D_EGL_DRIVER_SEARCH_DIR=\"$(EGL_DRIVER_INSTALL_DIR)\" .c.o: diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c index ce5f0f22f05..f56214472e9 100644 --- a/src/egl/main/egldriver.c +++ b/src/egl/main/egldriver.c @@ -464,24 +464,27 @@ _eglPreloadUserDriver(void) /** - * Preload display drivers. + * Preload platform drivers. * - * Display drivers are a set of drivers that support a certain display system. - * The display system may be specified by EGL_DISPLAY. + * Platform drivers are a set of drivers that support a certain window system. + * The window system may be specified by EGL_PLATFORM. * * FIXME This makes libEGL a memory hog if an user driver is not specified and - * there are many display drivers. + * there are many platform drivers. */ static EGLBoolean -_eglPreloadDisplayDrivers(void) +_eglPreloadPlatformDrivers(void) { const char *dpy; char prefix[32]; int ret; - dpy = getenv("EGL_DISPLAY"); + dpy = getenv("EGL_PLATFORM"); + /* try deprecated env variable */ if (!dpy || !dpy[0]) - dpy = _EGL_DEFAULT_DISPLAY; + dpy = getenv("EGL_DISPLAY"); + if (!dpy || !dpy[0]) + dpy = _EGL_DEFAULT_PLATFORM; if (!dpy || !dpy[0]) return EGL_FALSE; @@ -515,7 +518,7 @@ _eglPreloadDrivers(void) } loaded = (_eglPreloadUserDriver() || - _eglPreloadDisplayDrivers()); + _eglPreloadPlatformDrivers()); _eglUnlockMutex(_eglGlobal.Mutex); diff --git a/src/gallium/state_trackers/egl/Makefile b/src/gallium/state_trackers/egl/Makefile index a11dbf5395c..fec178ffb30 100644 --- a/src/gallium/state_trackers/egl/Makefile +++ b/src/gallium/state_trackers/egl/Makefile @@ -42,9 +42,9 @@ ALL_OBJECTS = $(common_OBJECTS) $(x11_OBJECTS) $(kms_OBJECTS) $(fbdev_OBJECTS) ##### TARGETS ##### -EGL_DISPLAYS_MODS = $(foreach dpy, $(EGL_DISPLAYS), libegl$(dpy).a) +EGL_PLATFORMS_MODS = $(foreach plat, $(EGL_PLATFORMS), libegl$(plat).a) -default: depend $(EGL_DISPLAYS_MODS) +default: depend $(EGL_PLATFORMS_MODS) libeglx11.a: $(x11_OBJECTS) $(common_OBJECTS) Makefile @@ -63,7 +63,7 @@ depend: clean: rm -f $(ALL_OBJECTS) - rm -f $(EGL_DISPLAYS_MODS) + rm -f $(EGL_PLATFORMS_MODS) rm -f depend depend.bak # Dummy target diff --git a/src/gallium/targets/Makefile.egl b/src/gallium/targets/Makefile.egl index bde5d3ce293..315856014b7 100644 --- a/src/gallium/targets/Makefile.egl +++ b/src/gallium/targets/Makefile.egl @@ -63,18 +63,18 @@ INCLUDES = \ ##### TARGETS ##### ifeq ($(EGL_DRIVER_NAME),swrast) -EGL_DISPLAYS := $(filter-out kms, $(EGL_DISPLAYS)) +EGL_PLATFORMS := $(filter-out kms, $(EGL_PLATFORMS)) else -EGL_DISPLAYS := $(filter-out fbdev, $(EGL_DISPLAYS)) +EGL_PLATFORMS := $(filter-out fbdev, $(EGL_PLATFORMS)) endif -EGL_DISPLAY_DRIVERS = $(foreach dpy, $(EGL_DISPLAYS), egl_$(dpy)_$(EGL_DRIVER_NAME).so) +EGL_PLATFORM_DRIVERS = $(foreach plat, $(EGL_PLATFORMS), egl_$(plat)_$(EGL_DRIVER_NAME).so) -EGL_DISPLAY_LIBS = $(foreach drv, $(EGL_DISPLAY_DRIVERS), $(TOP)/$(LIB_DIR)/egl/$(drv)) +EGL_PLATFORM_LIBS = $(foreach drv, $(EGL_PLATFORM_DRIVERS), $(TOP)/$(LIB_DIR)/egl/$(drv)) -default: $(EGL_DISPLAY_LIBS) +default: $(EGL_PLATFORM_LIBS) -$(EGL_DISPLAY_LIBS): $(TOP)/$(LIB_DIR)/egl/%.so: %.so +$(EGL_PLATFORM_LIBS): $(TOP)/$(LIB_DIR)/egl/%.so: %.so @$(INSTALL) -d $(TOP)/$(LIB_DIR)/egl $(INSTALL) $< $(TOP)/$(LIB_DIR)/egl @@ -97,11 +97,11 @@ egl_fbdev_$(EGL_DRIVER_NAME).so: $(EGL_DRIVER_OBJECTS) $(fbdev_ST) $(EGL_DRIVER_ clean: -rm -f $(EGL_DRIVER_OBJECTS) - -rm -f $(EGL_DISPLAY_DRIVERS) + -rm -f $(EGL_PLATFORM_DRIVERS) -install: $(EGL_DISPLAY_LIBS) +install: $(EGL_PLATFORM_LIBS) $(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR) - for lib in $(EGL_DISPLAY_LIBS); do \ + for lib in $(EGL_PLATFORM_LIBS); do \ $(MINSTALL) -m 755 "$$lib" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \ done |