From: Dave Airlie Date: Thu, 8 Apr 2010 06:48:41 +0000 (+1000) Subject: Merge remote branch 'origin/7.8' X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=commitdiff_plain;h=dff50ff592da7cb1d784fae794dd1647a5445bca;hp=4b39a0da89f5b07d4a24bc9ce52693e6c2acfe99 Merge remote branch 'origin/7.8' Conflicts: Makefile configs/default src/mesa/main/version.h --- diff --git a/Makefile b/Makefile index c81a2ec2d9e..411130bc272 100644 --- a/Makefile +++ b/Makefile @@ -180,7 +180,7 @@ ultrix-gcc: # Rules for making release tarballs -VERSION=7.8.1 +VERSION=7.9-devel DIRECTORY = Mesa-$(VERSION) LIB_NAME = MesaLib-$(VERSION) DEMO_NAME = MesaDemos-$(VERSION) @@ -215,7 +215,6 @@ MAIN_FILES = \ $(DIRECTORY)/include/GL/glx_mangle.h \ $(DIRECTORY)/include/GL/glfbdev.h \ $(DIRECTORY)/include/GL/mesa_wgl.h \ - $(DIRECTORY)/include/GL/mglmesa.h \ $(DIRECTORY)/include/GL/osmesa.h \ $(DIRECTORY)/include/GL/vms_x_fix.h \ $(DIRECTORY)/include/GL/wglext.h \ @@ -321,6 +320,8 @@ GALLIUM_FILES = \ $(DIRECTORY)/src/gallium/Makefile \ $(DIRECTORY)/src/gallium/Makefile.template \ $(DIRECTORY)/src/gallium/SConscript \ + $(DIRECTORY)/src/gallium/targets/Makefile.dri \ + $(DIRECTORY)/src/gallium/targets/Makefile.egl \ $(DIRECTORY)/src/gallium/*/Makefile \ $(DIRECTORY)/src/gallium/*/SConscript \ $(DIRECTORY)/src/gallium/*/*/Makefile \ @@ -408,14 +409,18 @@ DEMO_FILES = \ $(DIRECTORY)/progs/demos/*.cxx \ $(DIRECTORY)/progs/demos/*.dat \ $(DIRECTORY)/progs/demos/README \ - $(DIRECTORY)/progs/egl/Makefile \ - $(DIRECTORY)/progs/egl/*.[ch] \ - $(DIRECTORY)/progs/es1/*/Makefile \ - $(DIRECTORY)/progs/es1/*/*.[ch] \ - $(DIRECTORY)/progs/es2/*/Makefile \ - $(DIRECTORY)/progs/es2/*/*.[ch] \ - $(DIRECTORY)/progs/openvg/*/Makefile \ - $(DIRECTORY)/progs/openvg/*/*.[ch] \ + $(DIRECTORY)/progs/egl/eglut/Makefile \ + $(DIRECTORY)/progs/egl/eglut/*.[ch] \ + $(DIRECTORY)/progs/egl/opengl/Makefile \ + $(DIRECTORY)/progs/egl/opengl/*.[ch] \ + $(DIRECTORY)/progs/egl/opengles1/Makefile \ + $(DIRECTORY)/progs/egl/opengles1/*.[ch] \ + $(DIRECTORY)/progs/egl/opengles2/Makefile \ + $(DIRECTORY)/progs/egl/opengles2/*.[ch] \ + $(DIRECTORY)/progs/egl/openvg/Makefile \ + $(DIRECTORY)/progs/egl/openvg/*.[ch] \ + $(DIRECTORY)/progs/egl/openvg/*/Makefile \ + $(DIRECTORY)/progs/egl/openvg/*/*.[ch] \ $(DIRECTORY)/progs/fbdev/Makefile \ $(DIRECTORY)/progs/fbdev/glfbdevtest.c \ $(DIRECTORY)/progs/objviewer/*.[ch] \ diff --git a/SConstruct b/SConstruct index e1c4a1898ce..56d88cc1cc0 100644 --- a/SConstruct +++ b/SConstruct @@ -52,7 +52,7 @@ opts.Add(ListVariable('statetrackers', 'state trackers to build', default_statet opts.Add(ListVariable('drivers', 'pipe drivers to build', default_drivers, ['softpipe', 'failover', 'svga', 'i915', 'i965', 'trace', 'r300', 'identity', 'llvmpipe'])) opts.Add(ListVariable('winsys', 'winsys drivers to build', default_winsys, - ['xlib', 'vmware', 'intel', 'i965', 'gdi', 'radeon'])) + ['xlib', 'vmware', 'i915', 'i965', 'gdi', 'radeon', 'graw-xlib'])) opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0'))) @@ -88,6 +88,8 @@ if drawllvm: env.Tool('llvm') if not env.has_key('LLVM_VERSION'): drawllvm = False +if drawllvm: + env.Append(CFLAGS = ['-DDRAW_LLVM=1']) # derived options x86 = machine == 'x86' @@ -110,9 +112,11 @@ Export([ ####################################################################### # Environment setup -# Always build trace driver +# Always build trace and identity drivers if 'trace' not in env['drivers']: env['drivers'].append('trace') +if 'identity' not in env['drivers']: + env['drivers'].append('identity') # Includes env.Append(CPPPATH = [ @@ -120,6 +124,7 @@ env.Append(CPPPATH = [ '#/src/gallium/include', '#/src/gallium/auxiliary', '#/src/gallium/drivers', + '#/src/gallium/winsys', ]) if env['msvc']: @@ -156,12 +161,9 @@ if platform in ('posix', 'linux', 'freebsd', 'darwin'): ]) if platform == 'darwin': env.Append(CPPDEFINES = ['_DARWIN_C_SOURCE']) - env.Append(CPPPATH = ['/usr/X11R6/include']) - env.Append(LIBPATH = ['/usr/X11R6/lib']) env.Append(LIBS = [ 'm', 'pthread', - 'expat', 'dl', ]) @@ -179,16 +181,6 @@ if dri: if drawllvm: env.Append(CPPDEFINES = ['DRAW_LLVM']) -# libGL -if platform in ('linux', 'freebsd', 'darwin'): - env.Append(LIBS = [ - 'X11', - 'Xext', - 'Xxf86vm', - 'Xdamage', - 'Xfixes', - ]) - # for debugging #print env.Dump() diff --git a/bin/mklib b/bin/mklib index 08ef99ec105..c2760e5d892 100755 --- a/bin/mklib +++ b/bin/mklib @@ -494,13 +494,16 @@ case $ARCH in OPTS="${OPTS} -Wl,-Mmapfile.scope" fi - # Check if objects are SPARC v9 + # Check if objects are 64-bit # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1 set ${OBJECTS} if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then - SPARCV9=`file $1 | grep SPARCV9` - if [ "${SPARCV9}" ] ; then - OPTS="${OPTS} -xarch=v9" + ABI64=`file $1 | grep "ELF 64-bit"` + if [ "${ABI64}" ] ; then + case `uname -p` in + sparc) OPTS="${OPTS} -xarch=v9" ;; + i386) OPTS="${OPTS} -xarch=amd64" ;; + esac fi fi if [ "${ALTOPTS}" ] ; then diff --git a/common.py b/common.py index 928a4496f78..97389ed5001 100644 --- a/common.py +++ b/common.py @@ -60,7 +60,6 @@ def AddOptions(opts): allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) opts.Add(EnumOption('platform', 'target platform', default_platform, allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'embedded'))) - opts.Add(EnumOption('toolchain', 'compiler toolchain', 'default', - allowed_values=('default', 'crossmingw', 'winsdk', 'winddk'))) + opts.Add('toolchain', 'compiler toolchain', 'default') opts.Add(BoolOption('llvm', 'use LLVM', 'no')) opts.Add(BoolOption('dri', 'build DRI drivers', default_dri)) diff --git a/configs/autoconf.in b/configs/autoconf.in index 30637877f3b..b6cc9b3b73e 100644 --- a/configs/autoconf.in +++ b/configs/autoconf.in @@ -24,6 +24,8 @@ RADEON_CFLAGS = @RADEON_CFLAGS@ RADEON_LDFLAGS = @RADEON_LDFLAGS@ INTEL_LIBS = @INTEL_LIBS@ INTEL_CFLAGS = @INTEL_CFLAGS@ +X11_LIBS = @X11_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ # Assembler MESA_ASM_SOURCES = @MESA_ASM_SOURCES@ @@ -73,7 +75,7 @@ EGL_DRIVERS_DIRS = @EGL_DRIVERS_DIRS@ GALLIUM_DIRS = @GALLIUM_DIRS@ GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@ GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@ -GALLIUM_WINSYS_DRM_DIRS = @GALLIUM_WINSYS_DRM_DIRS@ +GALLIUM_TARGET_DIRS = @GALLIUM_TARGET_DIRS@ GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@ GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) @@ -83,7 +85,6 @@ PROGRAM_DIRS = @PROGRAM_DIRS@ # Driver specific build vars DRI_DIRS = @DRI_DIRS@ -WINDOW_SYSTEM = @WINDOW_SYSTEM@ EGL_DISPLAYS = @EGL_DISPLAYS@ # Dependencies diff --git a/configs/default b/configs/default index 47d6923f019..593fc32b7d6 100644 --- a/configs/default +++ b/configs/default @@ -9,8 +9,8 @@ CONFIG_NAME = default # Version info MESA_MAJOR=7 -MESA_MINOR=8 -MESA_TINY=1 +MESA_MINOR=9 +MESA_TINY=0 MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY) # external projects. This should be useless now that we use libdrm. @@ -86,7 +86,7 @@ MOTIF_CFLAGS = -I/usr/include/Motif1.2 # Directories to build LIB_DIR = lib -SRC_DIRS = glsl mesa gallium egl gallium/winsys glu glut/glx glew glw +SRC_DIRS = glsl mesa gallium egl gallium/winsys gallium/targets glu glut/glx glew glw GLU_DIRS = sgi DRIVER_DIRS = x11 osmesa # Which subdirs under $(TOP)/progs/ to enter: @@ -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 = drm xlib -GALLIUM_WINSYS_DRM_DIRS = swrast +GALLIUM_WINSYS_DIRS = sw sw/xlib +GALLIUM_TARGET_DIRS = libgl-xlib GALLIUM_STATE_TRACKERS_DIRS = glx vega # native displays EGL should support @@ -119,7 +119,7 @@ APP_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LI # Program dependencies - specific GL/glut libraries added in Makefiles APP_LIB_DEPS = -lm - +X11_LIBS = -lX11 # Installation directories (for make install) INSTALL_DIR = /usr/local diff --git a/configs/freebsd-dri b/configs/freebsd-dri index 0b91cfc37e9..2c697e1c6e4 100644 --- a/configs/freebsd-dri +++ b/configs/freebsd-dri @@ -44,7 +44,6 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGL -lXt -lX11 SRC_DIRS = glx gallium mesa glu glut/glx glew glw DRIVER_DIRS = dri PROGRAM_DIRS = -WINDOW_SYSTEM=dri DRM_SOURCE_PATH=$(TOP)/../drm diff --git a/configs/linux-cell b/configs/linux-cell index e89a08cd934..0908dba9e05 100644 --- a/configs/linux-cell +++ b/configs/linux-cell @@ -6,7 +6,7 @@ CONFIG_NAME = linux-cell # Omiting other gallium drivers: -GALLIUM_DRIVERS_DIRS = cell softpipe trace +GALLIUM_DRIVERS_DIRS = cell softpipe trace identity # Compiler and flags @@ -37,7 +37,7 @@ CXXFLAGS = $(COMMON_C_CPP_FLAGS) # Omitting glw here: -SRC_DIRS = glsl mesa gallium gallium/winsys glu glut/glx glew +SRC_DIRS = glsl mesa gallium gallium/winsys gallium/targets glu glut/glx glew # Build no traditional Mesa drivers: DRIVER_DIRS = diff --git a/configs/linux-dri b/configs/linux-dri index e8e8ccfcf94..9017becdafe 100644 --- a/configs/linux-dri +++ b/configs/linux-dri @@ -52,15 +52,14 @@ GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ # Directories SRC_DIRS := glx egl $(SRC_DIRS) -PROGRAM_DIRS := egl $(PROGRAM_DIRS) +PROGRAM_DIRS := egl/opengl $(PROGRAM_DIRS) # EGL directories EGL_DRIVERS_DIRS = glx DRIVER_DIRS = dri -WINDOW_SYSTEM = dri -GALLIUM_WINSYS_DIRS = drm -GALLIUM_WINSYS_DRM_DIRS = vmware intel i965 +GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel drm/i965 +GALLIUM_TARGET_DIRS = egl-swrast GALLIUM_STATE_TRACKERS_DIRS = egl DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon \ diff --git a/configs/linux-dri-xcb b/configs/linux-dri-xcb index c5ed89c4b34..1ed980aa36e 100644 --- a/configs/linux-dri-xcb +++ b/configs/linux-dri-xcb @@ -51,7 +51,5 @@ SRC_DIRS = glx gallium mesa glu glut/glx glew glw PROGRAM_DIRS = xdemos DRIVER_DIRS = dri -WINDOW_SYSTEM=dri - DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon \ savage sis tdfx unichrome diff --git a/configs/linux-egl b/configs/linux-egl index 2c2834b81d7..cd664b4171f 100644 --- a/configs/linux-egl +++ b/configs/linux-egl @@ -47,11 +47,11 @@ GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ # Directories -SRC_DIRS = gallium mesa gallium/winsys glu egl -PROGRAM_DIRS = egl +SRC_DIRS = gallium mesa gallium/winsys gallium/targets glu egl +PROGRAM_DIRS = egl/opengl DRIVER_DIRS = dri -WINDOW_SYSTEM = dri GALLIUM_WINSYS_DIRS = egl_drm +GALLIUM_TARGET_DIRS = DRI_DIRS = intel diff --git a/configs/linux-i965 b/configs/linux-i965 index e66abc347bb..7656a2adc5e 100644 --- a/configs/linux-i965 +++ b/configs/linux-i965 @@ -6,3 +6,4 @@ CONFIG_NAME = linux-i965 GALLIUM_DRIVER_DIRS = i965 GALLIUM_WINSYS_DIRS = drm/i965/xlib +GALLIUM_TARGET_DIRS = diff --git a/configs/linux-indirect b/configs/linux-indirect index 0914fba19bc..1c7dd857db6 100644 --- a/configs/linux-indirect +++ b/configs/linux-indirect @@ -50,4 +50,3 @@ GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl SRC_DIRS = glx glu glut/glx glew glw DRIVER_DIRS = PROGRAM_DIRS = -WINDOW_SYSTEM=dri diff --git a/configs/linux-llvm b/configs/linux-llvm index 27e082ebf7e..3a15f1d6d8b 100644 --- a/configs/linux-llvm +++ b/configs/linux-llvm @@ -10,7 +10,7 @@ CONFIG_NAME = linux-llvm GALLIUM_DRIVERS_DIRS += llvmpipe OPT_FLAGS = -O3 -ansi -pedantic -ARCH_FLAGS = -m32 -mmmx -msse -msse2 -mstackrealign +ARCH_FLAGS = -mmmx -msse -msse2 -mstackrealign DEFINES += -DNDEBUG -DGALLIUM_LLVMPIPE -DDRAW_LLVM -DHAVE_UDIS86 @@ -24,6 +24,8 @@ ifeq ($(LLVM_VERSION),) MESA_LLVM=0 else MESA_LLVM=1 + HAVE_LLVM := 0x0$(subst .,0,$(LLVM_VERSION:svn=)) + DEFINES += -DHAVE_LLVM=$(HAVE_LLVM) # $(info Using LLVM version: $(LLVM_VERSION)) endif diff --git a/configs/linux-opengl-es b/configs/linux-opengl-es index 259c26a931b..ead47136f4a 100644 --- a/configs/linux-opengl-es +++ b/configs/linux-opengl-es @@ -6,8 +6,8 @@ CONFIG_NAME = linux-opengl-es # Directories to build LIB_DIR = lib -SRC_DIRS = egl glsl mesa/es gallium gallium/winsys -PROGRAM_DIRS = es1/screen es1/xegl es2/xegl +SRC_DIRS = egl glsl mesa/es gallium gallium/winsys gallium/targets +PROGRAM_DIRS = egl/opengles1 egl/opengles2 # egl st needs this DEFINES += -DGLX_DIRECT_RENDERING @@ -24,5 +24,5 @@ GALLIUM_STATE_TRACKERS_DIRS = es # build egl_x11_{swrast,i915}.so GALLIUM_DRIVERS_DIRS += trace i915 GALLIUM_STATE_TRACKERS_DIRS += egl -GALLIUM_WINSYS_DIRS += drm -GALLIUM_WINSYS_DRM_DIRS += intel swrast +GALLIUM_WINSYS_DIRS += drm/intel +GALLIUM_TARGET_DIRS += egl-swrast egl-i915 diff --git a/configure.ac b/configure.ac index 61487c3905e..5647442ea17 100644 --- a/configure.ac +++ b/configure.ac @@ -459,23 +459,22 @@ CORE_DIRS="glsl mesa" SRC_DIRS="glew" GLU_DIRS="sgi" -WINDOW_SYSTEM="" GALLIUM_DIRS="auxiliary drivers state_trackers" -GALLIUM_WINSYS_DIRS="" -GALLIUM_WINSYS_DRM_DIRS="" +GALLIUM_TARGET_DIRS="" +GALLIUM_WINSYS_DIRS="sw" GALLIUM_DRIVERS_DIRS="softpipe failover trace identity" GALLIUM_STATE_TRACKERS_DIRS="" case "$mesa_driver" in xlib) DRIVER_DIRS="x11" - GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib" + GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib" + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib" ;; dri) SRC_DIRS="$SRC_DIRS glx" DRIVER_DIRS="dri" - WINDOW_SYSTEM="dri" - GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm" + GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri sw/drm" ;; osmesa) DRIVER_DIRS="osmesa" @@ -484,10 +483,9 @@ esac AC_SUBST([SRC_DIRS]) AC_SUBST([GLU_DIRS]) AC_SUBST([DRIVER_DIRS]) -AC_SUBST([WINDOW_SYSTEM]) AC_SUBST([GALLIUM_DIRS]) +AC_SUBST([GALLIUM_TARGET_DIRS]) AC_SUBST([GALLIUM_WINSYS_DIRS]) -AC_SUBST([GALLIUM_WINSYS_DRM_DIRS]) AC_SUBST([GALLIUM_DRIVERS_DIRS]) AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS]) @@ -547,8 +545,14 @@ else x11_pkgconfig=no fi dnl Use the autoconf macro if no pkg-config files -if test "$x11_pkgconfig" = no; then +if test "$x11_pkgconfig" = yes; then + PKG_CHECK_MODULES([X11], [x11]) +else AC_PATH_XTRA + test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS" + test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11" + AC_SUBST([X11_CFLAGS]) + AC_SUBST([X11_LIBS]) fi dnl Try to tell the user that the --x-* options are only used when @@ -950,7 +954,7 @@ if test "x$enable_egl" = xyes; then fi if test "$with_demos" = yes; then - PROGRAM_DIRS="$PROGRAM_DIRS egl" + PROGRAM_DIRS="$PROGRAM_DIRS egl/opengl" fi fi AC_SUBST([EGL_LIB_DEPS]) @@ -1176,7 +1180,7 @@ AC_ARG_ENABLE([gallium], [enable_gallium="$enableval"], [enable_gallium=yes]) if test "x$enable_gallium" = xyes; then - SRC_DIRS="$SRC_DIRS gallium gallium/winsys" + SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets" fi dnl @@ -1201,13 +1205,15 @@ yes) ;; dri) GALLIUM_STATE_TRACKERS_DIRS="dri" + HAVE_ST_DRI="yes" if test "x$enable_egl" = xyes; then GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl" + HAVE_ST_EGL="yes" fi # Have only tested st/xorg on 1.6.0 servers PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED], - HAVE_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg", - HAVE_XORG="no") + HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg", + HAVE_ST_XORG="no") ;; esac ;; @@ -1219,15 +1225,22 @@ yes) AC_MSG_ERROR([state tracker '$tracker' doesn't exist]) case "$tracker" in + dri) + if test "x$mesa_driver" != xdri; then + AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri]) + fi + HAVE_ST_DRI="yes" + ;; egl) if test "x$enable_egl" != xyes; then AC_MSG_ERROR([cannot build egl state tracker without EGL library]) fi + HAVE_ST_EGL="yes" ;; xorg) PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED]) PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED]) - HAVE_XORG="yes" + HAVE_ST_XORG="yes" ;; es) # mesa/es is required to build es state tracker @@ -1239,7 +1252,7 @@ yes) ;; esac -if test "x$HAVE_XORG" = xyes; then +if test "x$HAVE_ST_XORG" = xyes; then PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71", HAVE_XEXTPROTO_71="no") @@ -1303,6 +1316,25 @@ AC_ARG_WITH([max-height], [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])] ) +dnl +dnl Gallium helper functions +dnl +gallium_check_st() { + if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_EGL" = xyes || test "x$HAVE_ST_XORG" = xyes; then + GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1" + fi + if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2" + fi + if test "x$HAVE_ST_EGL" = xyes && test "x$3" != x; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3" + fi + if test "x$HAVE_ST_XORG" = xyes && test "x$4" != x; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4" + fi +} + + dnl dnl Gallium SVGA configuration dnl @@ -1312,8 +1344,8 @@ AC_ARG_ENABLE([gallium-svga], [enable_gallium_svga="$enableval"], [enable_gallium_svga=auto]) if test "x$enable_gallium_svga" = xyes; then - GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS vmware" GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga" + gallium_check_st "svga/drm" "dri-vmwgfx" "egl-vmwgfx" "xorg-vmwgfx" elif test "x$enable_gallium_svga" = xauto; then GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga" fi @@ -1327,8 +1359,8 @@ AC_ARG_ENABLE([gallium-intel], [enable_gallium_intel="$enableval"], [enable_gallium_intel=auto]) if test "x$enable_gallium_intel" = xyes; then - GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel i965" GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965" + gallium_check_st "i915/drm i965/drm" "dri-i915 dri-i965" "egl-i915 egl-i965" "xorg-i915 xorg-i965" elif test "x$enable_gallium_intel" = xauto; then GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965" fi @@ -1342,8 +1374,8 @@ AC_ARG_ENABLE([gallium-radeon], [enable_gallium_radeon="$enableval"], [enable_gallium_radeon=auto]) if test "x$enable_gallium_radeon" = xyes; then - GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon" GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300" + gallium_check_st "radeon/drm" "dri-radeong" "egl-radeon" "xorg-radeon" elif test "x$enable_gallium_radeon" = xauto; then GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300" fi @@ -1357,8 +1389,8 @@ AC_ARG_ENABLE([gallium-nouveau], [enable_gallium_nouveau="$enableval"], [enable_gallium_nouveau=no]) if test "x$enable_gallium_nouveau" = xyes; then - GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau" - GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv40 nv50" + GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50" + gallium_check_st "nouveau/drm" "dri-nouveau" "egl-nouveau" "xorg-nouveau" fi dnl @@ -1366,11 +1398,16 @@ dnl Gallium swrast configuration dnl AC_ARG_ENABLE([gallium-swrast], [AS_HELP_STRING([--enable-gallium-swrast], - [build gallium swrast @<:@default=disabled@:>@])], + [build gallium swrast @<:@default=auto@:>@])], [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" +if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then + if test "x$HAVE_ST_DRI" = xyes; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast" + fi + if test "x$HAVE_ST_EGL" = xyes; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-swrast" + fi fi dnl prepend CORE_DIRS to SRC_DIRS @@ -1426,8 +1463,8 @@ echo "" if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then echo " Gallium: yes" echo " Gallium dirs: $GALLIUM_DIRS" + echo " Target dirs: $GALLIUM_TARGET_DIRS" echo " Winsys dirs: $GALLIUM_WINSYS_DIRS" - echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS" echo " Driver dirs: $GALLIUM_DRIVERS_DIRS" echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS" else diff --git a/docs/GL3.txt b/docs/GL3.txt index 889edefbce1..78ac6e852dd 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -16,6 +16,7 @@ GLSL changes (GL_EXT_gpu_shader4, etc) not started Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe) Map buffer subranges (GL_APPLE_flush_buffer_range) not started Float textures, renderbuffers some infrastructure done + (incl. GL_EXT_packed_float, GL_EXT_shared_exponent) Framebuffer objects (GL_EXT_framebuffer_object) DONE Half-float some infrastructure done Multisample blit DONE @@ -25,7 +26,7 @@ Packed depth/stencil formats DONE Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE GL_EXT_texture_compression_rgtc not started Red and red/green texture formats Ian? -Transform feedback (GL_EXT_transform_feedback) not started +Transform feedback (GL_EXT_transform_feedback) ~50% done Vertex array objects (GL_APPLE_vertex_array_object) DONE sRGB framebuffer format (GL_EXT_framebuffer_sRGB) not started glClearBuffer commands DONE, except for dispatch @@ -39,7 +40,7 @@ glBindBufferRange, glBindBufferBase commands not started GL 3.1: GLSL 1.30 and 1.40 not started -Instanced drawing (GL_ARB_draw_instanced) not started +Instanced drawing (GL_ARB_draw_instanced) ~50% done Buffer copying (GL_ARB_copy_buffer) DONE Primitive restart (GL_NV_primitive_restart) not started 16 vertex texture image units not started @@ -56,7 +57,7 @@ GLSL 1.50 not started Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack) BGRA vertex order (GL_ARB_vertex_array_bgra) DONE Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE -Frag shader coord (GL_ARB_fragment_coord_conventions) not started +Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (swrast, gallium) Provoking vertex (GL_ARB_provoking_vertex) DONE Seamless cubemaps (GL_ARB_seamless_cube_map) DONE, mostly? Multisample textures (GL_ARB_texture_multisample) not started diff --git a/docs/egl.html b/docs/egl.html index 55907f6cfac..e960309fc47 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -106,11 +106,11 @@ noted that the classic libGL is not a state tracker and cannot be used with EGL (unless the EGL driver in use is egl_glx). To build the OpenGL state tracker, one may append glx to --with-state-trackers and manually build -src/gallium/winsys/xlib/.

+src/gallium/targets/libgl-xlib/.

Use EGL

-

The demos for OpenGL ES and OpenVG can be found in progs/es1/, +

The demos for OpenGL ES and OpenVG can be found in progs/es1/, progs/es2/ and progs/openvg/. You can use them to test your build. For example,

diff --git a/docs/install.html b/docs/install.html index 5aea92e0b51..3962ea5c91e 100644 --- a/docs/install.html +++ b/docs/install.html @@ -361,7 +361,7 @@ To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler tool This will create: