[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mesa: Changes to 'ubuntu'



Rebased ref, commits from common ancestor:
commit 908f3f683765542ae5fbf6a4f6602fd3d73bb970
Author: Cyril Brulebois <kibi@debian.org>
Date:   Tue Feb 14 16:18:18 2012 +0100

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index 4d2027b..d594d5c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (8.0-2) UNRELEASED; urgency=low
+mesa (8.0-2) experimental; urgency=low
 
   [ Julien Cristau ]
   * Only build the radeon, r200, i915 and i965 dri drivers on Linux.  They
@@ -23,7 +23,7 @@ mesa (8.0-2) UNRELEASED; urgency=low
     the clean target. The first two are modified, the last one needs to be
     turned back into a symlink.
 
- -- Julien Cristau <jcristau@debian.org>  Sat, 11 Feb 2012 11:49:06 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Tue, 14 Feb 2012 16:18:14 +0100
 
 mesa (8.0-1) experimental; urgency=low
 

commit 58d355fa0d49c6483abcbc17f413d2a19f58bb5e
Author: Cyril Brulebois <kibi@debian.org>
Date:   Tue Feb 14 13:34:35 2012 +0000

    Fix FTBFS on GNU/kFreeBSD with libgl1-mesa-dri.install.kfreebsd.in

diff --git a/debian/changelog b/debian/changelog
index 0845b9a..0496a30 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,15 @@
 mesa (8.0-2) UNRELEASED; urgency=low
 
+  [ Julien Cristau ]
   * Only build the radeon, r200, i915 and i965 dri drivers on Linux.  They
     require KMS.
 
+  [ Cyril Brulebois ]
+  * Fix FTBFS on GNU/kFreeBSD with libgl1-mesa-dri.install.kfreebsd.in:
+    there's no *_dri.so file left in the top directory, only swrast is
+    built and shipped under gallium/. So mention it explicitly, in the
+    same way as it is done in the libgl1-mesa-dri.install.linux.in file.
+
  -- Julien Cristau <jcristau@debian.org>  Sat, 11 Feb 2012 11:49:06 +0100
 
 mesa (8.0-1) experimental; urgency=low
diff --git a/debian/libgl1-mesa-dri.install.kfreebsd.in b/debian/libgl1-mesa-dri.install.kfreebsd.in
new file mode 100644
index 0000000..64f9660
--- /dev/null
+++ b/debian/libgl1-mesa-dri.install.kfreebsd.in
@@ -0,0 +1,6 @@
+# Keep this part in sync with libgl1-mesa-dri.install:
+# But there's no such file for kfreebsd-* any longer, so comment it out entirely:
+# build/dri/${DEB_HOST_MULTIARCH}/*_dri.so  usr/lib/${DEB_HOST_MULTIARCH}/dri
+
+# This part is GNU/kFreeBSD-specific:
+build/dri/${DEB_HOST_MULTIARCH}/gallium/swrast_dri.so usr/lib/${DEB_HOST_MULTIARCH}/dri

commit 2fed388934f51a9c69f6b7c3b3977a0cd083db4a
Author: Cyril Brulebois <kibi@debian.org>
Date:   Tue Feb 14 11:38:45 2012 +0100

    Automatically revert changes to bin/{config.{guess,sub},install-sh}.
    
    Do that in the clean target. The first two are modified, the last one
    needs to be turned back into a symlink.

diff --git a/debian/changelog b/debian/changelog
index 465cf9e..92f3d1c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,9 @@ mesa (8.0-2) UNRELEASED; urgency=low
     and bump the version.
   * Limit the build-dependency on libwayland-dev to linux-any too, and
     bump it.
+  * Automatically revert changes to bin/{config.{guess,sub},install-sh} in
+    the clean target. The first two are modified, the last one needs to be
+    turned back into a symlink.
 
  -- Julien Cristau <jcristau@debian.org>  Sat, 11 Feb 2012 11:49:06 +0100
 
diff --git a/debian/rules b/debian/rules
index 271b1a6..3bf3702 100755
--- a/debian/rules
+++ b/debian/rules
@@ -196,7 +196,10 @@ confflags-swx11+glu-i386-i686 = \
 	CFLAGS="$(CFLAGS) -march=i686" \
 	CXXFLAGS="$(CXXFLAGS) -march=i686"
 
+autotools_files = bin/config.guess bin/config.sub
+
 configure: $(QUILT_STAMPFN) configure.ac
+	for file in $(autotools_files); do cp $$file $$file.pristine; done
 	autoreconf -vfi
 
 # list the configurations that will built
@@ -260,6 +263,9 @@ clean: unpatch
 	rm -rf aclocal.m4 missing depcomp install-sh ltmain.sh
 	rm -rf $(STAMP_DIR)
 	for file in debian/*.in; do rm -f $${file%%.in}; done
+	# Those are auto-updated, grr:
+	for file in $(autotools_files); do if [ -f $$file.pristine ]; then mv -f $$file.pristine $$file; fi; done
+	ln -sf minstall bin/install-sh
 
 	dh_clean
 

commit 9a2775d2a7882f77e700554a9a22b24123a4abac
Author: Cyril Brulebois <kibi@debian.org>
Date:   Tue Feb 14 11:06:49 2012 +0100

    Limit Wayland stuff to linux-any and bump versions.

diff --git a/debian/changelog b/debian/changelog
index 9b727b0..465cf9e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,10 @@ mesa (8.0-2) UNRELEASED; urgency=low
     add a few files for Wayland, but only for Linux:
     - libegl1-mesa-dev.install.linux.in
     - libegl1-mesa-drivers.install.linux.in
+  * Limit the wl_drm_interface symbol to arch=linux-any accordingly,
+    and bump the version.
+  * Limit the build-dependency on libwayland-dev to linux-any too, and
+    bump it.
 
  -- Julien Cristau <jcristau@debian.org>  Sat, 11 Feb 2012 11:49:06 +0100
 
diff --git a/debian/control b/debian/control
index a1aa3c4..9c12a53 100644
--- a/debian/control
+++ b/debian/control
@@ -31,7 +31,7 @@ Build-Depends:
  flex,
  bison,
  llvm-2.9-dev [amd64 i386 kfreebsd-amd64 kfreebsd-i386],
- libwayland-dev,
+ libwayland-dev (>= 0.85.0) [linux-any],
 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/mesa
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/mesa.git
 Homepage: http://mesa3d.sourceforge.net/
diff --git a/debian/libegl1-mesa.symbols b/debian/libegl1-mesa.symbols
index 5810730..cc73326 100644
--- a/debian/libegl1-mesa.symbols
+++ b/debian/libegl1-mesa.symbols
@@ -63,4 +63,4 @@ libEGL.so.1 libegl1-mesa #MINVER# | libegl1-x11
  eglWaitClient@Base 7.8.1
  eglWaitGL@Base 7.8.1
  eglWaitNative@Base 7.8.1
- wl_drm_interface@Base 7.11~0
+ (arch=linux-any)wl_drm_interface@Base 8.0-2~

commit c67ca734f423378d1277d577c1b48b55d2a95ba1
Author: Cyril Brulebois <kibi@debian.org>
Date:   Fri Feb 10 20:05:45 2012 +0100

    Enable Wayland support again.

diff --git a/debian/changelog b/debian/changelog
index 0845b9a..9b727b0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,17 @@
 mesa (8.0-2) UNRELEASED; urgency=low
 
+  [ Julien Cristau ]
   * Only build the radeon, r200, i915 and i965 dri drivers on Linux.  They
     require KMS.
 
+  [ Cyril Brulebois ]
+  * Enable wayland support again, but only on Linux. Wayland needs some
+    porting (it uses *CLOEXEC flags and epoll). For that, add those files
+    since EGL packages are also shipped on GNU/kFreeBSD, and we need to
+    add a few files for Wayland, but only for Linux:
+    - libegl1-mesa-dev.install.linux.in
+    - libegl1-mesa-drivers.install.linux.in
+
  -- Julien Cristau <jcristau@debian.org>  Sat, 11 Feb 2012 11:49:06 +0100
 
 mesa (8.0-1) experimental; urgency=low
diff --git a/debian/control b/debian/control
index 33a7eb5..a1aa3c4 100644
--- a/debian/control
+++ b/debian/control
@@ -31,7 +31,7 @@ Build-Depends:
  flex,
  bison,
  llvm-2.9-dev [amd64 i386 kfreebsd-amd64 kfreebsd-i386],
-# libwayland-dev,
+ libwayland-dev,
 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/mesa
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/mesa.git
 Homepage: http://mesa3d.sourceforge.net/
diff --git a/debian/libegl1-mesa-dev.install.in b/debian/libegl1-mesa-dev.install.in
index 3f3094f..51abf94 100644
--- a/debian/libegl1-mesa-dev.install.in
+++ b/debian/libegl1-mesa-dev.install.in
@@ -1,6 +1,5 @@
+# This file gets tweaked in an os-specific fashion (see libegl1-mesa-dev.install.linux.in)
 dri/usr/lib/${DEB_HOST_MULTIARCH}/libEGL.so usr/lib/${DEB_HOST_MULTIARCH}
-#dri/usr/lib/${DEB_HOST_MULTIARCH}/libwayland-egl.so usr/lib/${DEB_HOST_MULTIARCH}
 dri/usr/include/EGL usr/include
 dri/usr/include/KHR usr/include
 dri/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/egl.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
-#dri/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/wayland-egl.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
diff --git a/debian/libegl1-mesa-dev.install.linux.in b/debian/libegl1-mesa-dev.install.linux.in
new file mode 100644
index 0000000..13565b7
--- /dev/null
+++ b/debian/libegl1-mesa-dev.install.linux.in
@@ -0,0 +1,10 @@
+# OS-independent part (from libegl1-mesa-dev.install.in):
+dri/usr/lib/${DEB_HOST_MULTIARCH}/libEGL.so usr/lib/${DEB_HOST_MULTIARCH}
+dri/usr/include/EGL usr/include
+dri/usr/include/KHR usr/include
+dri/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/egl.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
+dri/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/wayland-egl.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
+
+# Wayland support, only on Linux:
+dri/usr/lib/${DEB_HOST_MULTIARCH}/libwayland-egl.so usr/lib/${DEB_HOST_MULTIARCH}
+dri/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/wayland-egl.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
diff --git a/debian/libegl1-mesa-drivers.install.in b/debian/libegl1-mesa-drivers.install.in
index c226c5e..72a3603 100644
--- a/debian/libegl1-mesa-drivers.install.in
+++ b/debian/libegl1-mesa-drivers.install.in
@@ -1,3 +1,2 @@
+# This file gets tweaked in an os-specific fashion (see libegl1-mesa-drivers.install.linux.in)
 dri/usr/lib/${DEB_HOST_MULTIARCH}/egl/egl_gallium.so usr/lib/${DEB_HOST_MULTIARCH}/egl
-#dri/usr/lib/${DEB_HOST_MULTIARCH}/libwayland-egl.so.1 usr/lib/${DEB_HOST_MULTIARCH}
-#dri/usr/lib/${DEB_HOST_MULTIARCH}/libwayland-egl.so.1.0 usr/lib/${DEB_HOST_MULTIARCH}
diff --git a/debian/libegl1-mesa-drivers.install.linux.in b/debian/libegl1-mesa-drivers.install.linux.in
new file mode 100644
index 0000000..5001e0a
--- /dev/null
+++ b/debian/libegl1-mesa-drivers.install.linux.in
@@ -0,0 +1,6 @@
+# OS-independent part (from libegl1-mesa-drivers.install.in):
+dri/usr/lib/${DEB_HOST_MULTIARCH}/egl/egl_gallium.so usr/lib/${DEB_HOST_MULTIARCH}/egl
+
+# Wayland support, only on Linux:
+dri/usr/lib/${DEB_HOST_MULTIARCH}/libwayland-egl.so.1 usr/lib/${DEB_HOST_MULTIARCH}
+dri/usr/lib/${DEB_HOST_MULTIARCH}/libwayland-egl.so.1.0 usr/lib/${DEB_HOST_MULTIARCH}
diff --git a/debian/libegl1-mesa.symbols b/debian/libegl1-mesa.symbols
index 4a405b0..5810730 100644
--- a/debian/libegl1-mesa.symbols
+++ b/debian/libegl1-mesa.symbols
@@ -63,4 +63,4 @@ libEGL.so.1 libegl1-mesa #MINVER# | libegl1-x11
  eglWaitClient@Base 7.8.1
  eglWaitGL@Base 7.8.1
  eglWaitNative@Base 7.8.1
-# wl_drm_interface@Base 7.11~0
+ wl_drm_interface@Base 7.11~0
diff --git a/debian/rules b/debian/rules
index f50a43b..271b1a6 100755
--- a/debian/rules
+++ b/debian/rules
@@ -81,6 +81,8 @@ else
 # Although the KMS egl drivers will probably build on kfreebsd & hurd
 # only linux actually has KMS drivers implemented at this point.
 	EGL_DISPLAYS += drm
+# Non-Linux ports also lack *_CLOEXEC and epoll, so wayland isn't ready yet:
+	EGL_DISPLAYS += wayland
     ifeq (,$(filter $(DEB_HOST_ARCH), s390 s390x))
 	DRI_DRIVERS += r200 radeon nouveau
     endif

commit 9453ec7de218200923623dcda0ecf9b06088c159
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat Feb 11 11:49:51 2012 +0100

    Only build the radeon, r200, i915 and i965 dri drivers on Linux.
    
    They require KMS.

diff --git a/debian/changelog b/debian/changelog
index 42c3ec0..0845b9a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+mesa (8.0-2) UNRELEASED; urgency=low
+
+  * Only build the radeon, r200, i915 and i965 dri drivers on Linux.  They
+    require KMS.
+
+ -- Julien Cristau <jcristau@debian.org>  Sat, 11 Feb 2012 11:49:06 +0100
+
 mesa (8.0-1) experimental; urgency=low
 
   [ Cyril Brulebois ]
diff --git a/debian/rules b/debian/rules
index 952d726..f50a43b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -81,20 +81,20 @@ else
 # Although the KMS egl drivers will probably build on kfreebsd & hurd
 # only linux actually has KMS drivers implemented at this point.
 	EGL_DISPLAYS += drm
-# Nouveau requires KMS, so even the classic DRI driver only works on linux
-	DRI_DRIVERS += nouveau
+    ifeq (,$(filter $(DEB_HOST_ARCH), s390 s390x))
+	DRI_DRIVERS += r200 radeon nouveau
+    endif
+    ifneq (,$(filter $(DEB_HOST_ARCH_CPU), amd64 i386))
+	DRI_DRIVERS += i915 i965
+    endif
   endif
 
-  ifneq ($(DEB_HOST_ARCH), s390)
-	DRI_DRIVERS += r200 radeon
-  endif
 
 # Build the llvmpipe driver only on amd64, i386 until it's tested elsewhere
   ifeq (,$(filter $(DEB_HOST_ARCH_CPU), amd64 i386))
 	DRI_DRIVERS += swrast
   else
 	GALLIUM_DRIVERS += swrast
-	DRI_DRIVERS += i915 i965
   endif
 
   # LLVM is required for r300g and recommended for swrastg on x86:

commit c02820ba7e77428ea3800eaedefb9326ae6a0728
Author: Cyril Brulebois <kibi@debian.org>
Date:   Fri Feb 10 14:20:17 2012 +0100

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index 298c1be..42c3ec0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (8.0-1) UNRELEASED; urgency=low
+mesa (8.0-1) experimental; urgency=low
 
   [ Cyril Brulebois ]
   * New upstream release.
@@ -37,7 +37,7 @@ mesa (8.0-1) UNRELEASED; urgency=low
   [ Christopher James Halse Rogers ]
   * debian/control: Add libx11-xcb-dev to libegl1-mesa-dev depends.
 
- -- Robert Hooker <sarvatt@ubuntu.com>  Fri, 03 Feb 2012 10:19:43 -0500
+ -- Cyril Brulebois <kibi@debian.org>  Fri, 10 Feb 2012 14:02:04 +0100
 
 mesa (7.11.2-1) unstable; urgency=low
 

commit 95994fe93e730b5e77c9d99360f2c0399cb8a99c
Author: Cyril Brulebois <kibi@debian.org>
Date:   Fri Feb 10 12:15:15 2012 +0100

    Bump changelog.

diff --git a/debian/changelog b/debian/changelog
index e2ea063..298c1be 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,7 @@
-mesa (8.0~rc2-1) UNRELEASED; urgency=low
+mesa (8.0-1) UNRELEASED; urgency=low
 
   [ Cyril Brulebois ]
-  * New upstream snapshot.
+  * New upstream release.
   * Disable patch temporarily (needs a refresh):
     - 11-hurd-ftbfs-again.diff
   * Drop patch, no longer needed since swrastg was renamed to swrast:

commit f9c9933f9c7f72f12be27ccda98c965c75f08a12
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Feb 9 14:26:15 2012 -0800

    mesa: Bump version number to 8.0 (final)
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>

diff --git a/Makefile b/Makefile
index c1f7158..e0dd6ef 100644
--- a/Makefile
+++ b/Makefile
@@ -184,7 +184,7 @@ ultrix-gcc:
 
 # Rules for making release tarballs
 
-PACKAGE_VERSION=8.0-rc2
+PACKAGE_VERSION=8.0
 PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
 PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
 
diff --git a/docs/relnotes-8.0.html b/docs/relnotes-8.0.html
index 4aa1753..6df8fc8 100644
--- a/docs/relnotes-8.0.html
+++ b/docs/relnotes-8.0.html
@@ -10,7 +10,7 @@
 
 <body bgcolor="#eeeeee">
 
-<H1>Mesa 8.0 Release Notes / (release date TBD)</H1>
+<H1>Mesa 8.0 Release Notes / February 9, 2012</H1>
 
 <p>
 Mesa 8.0 is a new development release.
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index 12844b1..11fe922 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
@@ -35,7 +35,7 @@ struct gl_context;
 #define MESA_MAJOR 8
 #define MESA_MINOR 0
 #define MESA_PATCH 0
-#define MESA_VERSION_STRING "8.0-rc2"
+#define MESA_VERSION_STRING "8.0"
 
 /* To make version comparison easy */
 #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

commit 2eb248e32e42a1945729669f4d18067058078e82
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Thu Feb 9 16:53:37 2012 +1100

    Add libx11-xcb-dev to libegl1-mesa-dev depends.
    
    We now have all the packages listed as Requires or Requires.private in
    egl.pc.  Yay!
    
    Cherry-picked from the ubuntu branch, manually fixed up the changelog.
    
    Conflicts:
    
    	debian/changelog

diff --git a/debian/changelog b/debian/changelog
index b81890f..e2ea063 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -34,6 +34,9 @@ mesa (8.0~rc2-1) UNRELEASED; urgency=low
   * Add libxatracker packaging.
   * Add libxcb-glx0-dev to libegl1-mesa-dev depends.
 
+  [ Christopher James Halse Rogers ]
+  * debian/control: Add libx11-xcb-dev to libegl1-mesa-dev depends.
+
  -- Robert Hooker <sarvatt@ubuntu.com>  Fri, 03 Feb 2012 10:19:43 -0500
 
 mesa (7.11.2-1) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 9ffc929..33a7eb5 100644
--- a/debian/control
+++ b/debian/control
@@ -284,6 +284,7 @@ Depends:
  libxdamage-dev,
  libxfixes-dev,
  libxcb-glx0-dev,
+ libx11-xcb-dev,
  ${misc:Depends},
 Description: free implementation of the EGL API -- development files
  This package contains the development environment required for compiling

commit b2b5d6b8fb839cb93173f2d59475ff1d4ba60494
Author: Anuj Phogat <anuj.phogat@gmail.com>
Date:   Wed Jan 25 19:05:45 2012 -0800

    mesa: fix maximum allowed proxy texture size condition
    
    width, height parameter in glTexImage2D() includes: texture image
    width + 2 * border (if any). So when doing the texture size check
    in _mesa_test_proxy_teximage() width and height should not exceed
    maximum supported size for target texture type + 2 * border.
    i.e. 1 << (ctx->Const.MaxTextureLevels - 1) + 2 * border
    
    Texture border is anyway stripped out before it is given to intel
    or gallium drivers.
    
    This patch fixes Intel oglconform test case:
    max_values negative.textureSize.textureCube
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44970
    
    Note: This is a candidate for mesa 8.0 branch.
    
    Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
    Reviewed-by: Ian Romanick <idr@freedesktop.org>
    Reviewed-by: Brian Paul <brianp@vmware.com>
    (cherry picked from commit ea228d97f811092b9ffcb90565184a7a8f089477)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 111e4bf..e4f678d 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -1173,7 +1173,7 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
    switch (target) {
    case GL_PROXY_TEXTURE_1D:
       maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
-      if (width < 2 * border || width > maxSize)
+      if (width < 2 * border || width > 2 * border + maxSize)
          return GL_FALSE;
       if (level >= ctx->Const.MaxTextureLevels)
          return GL_FALSE;
@@ -1185,9 +1185,9 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
 
    case GL_PROXY_TEXTURE_2D:
       maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
-      if (width < 2 * border || width > maxSize)
+      if (width < 2 * border || width > 2 * border + maxSize)
          return GL_FALSE;
-      if (height < 2 * border || height > maxSize)
+      if (height < 2 * border || height > 2 * border + maxSize)
          return GL_FALSE;
       if (level >= ctx->Const.MaxTextureLevels)
          return GL_FALSE;
@@ -1201,11 +1201,11 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
 
    case GL_PROXY_TEXTURE_3D:
       maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1);
-      if (width < 2 * border || width > maxSize)
+      if (width < 2 * border || width > 2 * border + maxSize)
          return GL_FALSE;
-      if (height < 2 * border || height > maxSize)
+      if (height < 2 * border || height > 2 * border + maxSize)
          return GL_FALSE;
-      if (depth < 2 * border || depth > maxSize)
+      if (depth < 2 * border || depth > 2 * border + maxSize)
          return GL_FALSE;
       if (level >= ctx->Const.Max3DTextureLevels)
          return GL_FALSE;
@@ -1231,9 +1231,9 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
 
    case GL_PROXY_TEXTURE_CUBE_MAP_ARB:
       maxSize = 1 << (ctx->Const.MaxCubeTextureLevels - 1);
-      if (width < 2 * border || width > maxSize)
+      if (width < 2 * border || width > 2 * border + maxSize)
          return GL_FALSE;
-      if (height < 2 * border || height > maxSize)
+      if (height < 2 * border || height > 2 * border + maxSize)
          return GL_FALSE;
       if (level >= ctx->Const.MaxCubeTextureLevels)
          return GL_FALSE;
@@ -1247,7 +1247,7 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
 
    case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
       maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
-      if (width < 2 * border || width > maxSize)
+      if (width < 2 * border || width > 2 * border + maxSize)
          return GL_FALSE;
       if (height < 1 || height > ctx->Const.MaxArrayTextureLayers)
          return GL_FALSE;
@@ -1261,9 +1261,9 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
 
    case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
       maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
-      if (width < 2 * border || width > maxSize)
+      if (width < 2 * border || width > 2 * border + maxSize)
          return GL_FALSE;
-      if (height < 2 * border || height > maxSize)
+      if (height < 2 * border || height > 2 * border + maxSize)
          return GL_FALSE;
       if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers)
          return GL_FALSE;

commit e86d90eb208292916c8a04c5d75499492003dd16
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 30 13:30:53 2012 -0800

    dri: Add Unigine Tropics as an app that requires the GLSL warn workaround.
    
    I wasn't seeing it be needed because of the previous bug.
    
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    (cherry picked from commit b8c9252570d126e06607cd28b14f0fe3a2ffe4cf)

diff --git a/src/mesa/drivers/dri/common/drirc b/src/mesa/drivers/dri/common/drirc
index ac83a2d..59c00d7 100644
--- a/src/mesa/drivers/dri/common/drirc
+++ b/src/mesa/drivers/dri/common/drirc
@@ -3,5 +3,8 @@
         <application executable="Sanctuary">
             <option name="force_glsl_extensions_warn" value="true" />
 	</application>
+        <application executable="Tropics">
+            <option name="force_glsl_extensions_warn" value="true" />
+	</application>
     </device>
 </driconf>

commit 1531b94471fa283690fabb19e9a157247ba5fb8b
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 30 13:29:07 2012 -0800

    dri: Fix typo in xml file that made all applications use the workaround.
    
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    (cherry picked from commit 4dd2743d4542bedd935134d351e528ad574f7ee5)

diff --git a/src/mesa/drivers/dri/common/drirc b/src/mesa/drivers/dri/common/drirc
index 7abc646..ac83a2d 100644
--- a/src/mesa/drivers/dri/common/drirc
+++ b/src/mesa/drivers/dri/common/drirc
@@ -1,6 +1,6 @@
 <driconf>
     <device screen="0" driver="i965">
-        <application name="Sanctuary">
+        <application executable="Sanctuary">
             <option name="force_glsl_extensions_warn" value="true" />
 	</application>
     </device>

commit b5efe0881ed385de36fa2f4889e1dd962990420a
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Jan 25 14:22:03 2012 -0800

    dri: Add a default drirc to be installed to provide application workarounds.
    
    Specifially, this being present works around a bug in Unigine
    Sanctuary on i965 which previously resulted in bad rendering.
    
    NOTE: This is a candidate for the 8.0 branch.
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    (cherry picked from commit ff2497dca39d688bbceba9f524a61e99d93a9607)
    
    NOTE: Compared to ff2497d this does not install the default drirc.
    The pre-automake build system is sufficiently braindamaged to make
    this exceptionally difficult.

diff --git a/src/mesa/drivers/dri/common/drirc b/src/mesa/drivers/dri/common/drirc
new file mode 100644
index 0000000..7abc646
--- /dev/null
+++ b/src/mesa/drivers/dri/common/drirc
@@ -0,0 +1,7 @@
+<driconf>
+    <device screen="0" driver="i965">
+        <application name="Sanctuary">
+            <option name="force_glsl_extensions_warn" value="true" />
+	</application>
+    </device>
+</driconf>

commit 73e15679cede19a780481bb60fa2ca582c6abf0e
Author: Chih-Wei Huang <cwhuang@linux.org.tw>
Date:   Thu Feb 2 20:23:57 2012 +0800

    vbo: fix a building error
    
    Signed-off-by: Marek Olšák <maraeo@gmail.com>
    
    NOTE: This is a candidate for the 8.0 branch.
    (cherry picked from commit f8be4f33d31d004bfcf090fa7d4aa37b750e43af)

diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index fec49d3..e31e93f 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -1302,7 +1302,9 @@ vbo_exec_array_init( struct vbo_exec_context *exec )
    exec->vtxfmt.DrawArraysInstanced = vbo_exec_DrawArraysInstanced;
    exec->vtxfmt.DrawElementsInstanced = vbo_exec_DrawElementsInstanced;
    exec->vtxfmt.DrawElementsInstancedBaseVertex = vbo_exec_DrawElementsInstancedBaseVertex;
+#if FEATURE_EXT_transform_feedback
    exec->vtxfmt.DrawTransformFeedback = vbo_exec_DrawTransformFeedback;
+#endif
 }
 
 

commit 974a67b41e879b91765e3ef647ae22fe99a47079
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 30 09:50:35 2012 -0800

    glsl: Add error case for switch() with two default cases.
    
    Fixes piglit switch-case-duplicated.vert.
    
    NOTE: This is a candidate for the 8.0 branch.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 57e44371a5b6aa8122b6a482ed6bd33e797ea1d2)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 4f328ad..c580359 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -3537,6 +3537,7 @@ ast_switch_statement::hir(exec_list *instructions,
    state->switch_state.switch_nesting_ast = this;
    state->switch_state.labels_ht = hash_table_ctor(0, hash_table_pointer_hash,
 						   hash_table_pointer_compare);
+   state->switch_state.previous_default = NULL;
 
    /* Initalize is_fallthru state to false.
     */
@@ -3749,6 +3750,20 @@ ast_switch_statement::hir(exec_list *instructions,
 
 	instructions->push_tail(set_fallthru_on_test);
      } else { /* default case */
+	if (state->switch_state.previous_default) {
+	   printf("a\n");
+	   YYLTYPE loc = this->get_location();
+	   _mesa_glsl_error(& loc, state,
+			       "multiple default labels in one switch");
+
+	   printf("b\n");
+
+	   loc = state->switch_state.previous_default->get_location();
+	   _mesa_glsl_error(& loc, state,
+			    "this is the first default label");
+	}
+	state->switch_state.previous_default = this;
+
 	/* Set falltrhu state.
 	 */
 	ir_assignment *set_fallthru =
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index d5d5101..ee8f71b 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -51,6 +51,7 @@ struct glsl_switch_state {
 
    /** Table of constant values already used in case labels */
    struct hash_table *labels_ht;
+   class ast_case_label *previous_default;
 
    bool is_switch_innermost; // if switch stmt is closest to break, ...
 };

commit 83075bd0fe1fa4519f40edde1f9bc70967ee03a9
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 30 08:50:14 2012 -0800

    glsl: Throw an error when faced with a duplicated switch() case label.
    
    The error message I chose matches gcc's error.  Fixes piglit
    switch-case-duplicated.vert.
    
    NOTE: This is a candidate for the 8.0 branch.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 140632190cf41e6a035ca199b181091d4ed46986)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 28aff39..4f328ad 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -54,6 +54,7 @@
 #include "glsl_parser_extras.h"
 #include "ast.h"
 #include "glsl_types.h"
+#include "program/hash_table.h"
 #include "ir.h"
 
 void
@@ -3534,6 +3535,8 @@ ast_switch_statement::hir(exec_list *instructions,
 
    state->switch_state.is_switch_innermost = true;
    state->switch_state.switch_nesting_ast = this;
+   state->switch_state.labels_ht = hash_table_ctor(0, hash_table_pointer_hash,
+						   hash_table_pointer_compare);
 
    /* Initalize is_fallthru state to false.
     */
@@ -3572,6 +3575,8 @@ ast_switch_statement::hir(exec_list *instructions,
     */
    body->hir(instructions, state);
 
+   hash_table_dtor(state->switch_state.labels_ht);
+
    state->switch_state = saved;
 
      /* Switch statements do not have r-values.
@@ -3709,6 +3714,24 @@ ast_switch_statement::hir(exec_list *instructions,
 
 	   /* Stuff a dummy value in to allow processing to continue. */
 	   label_const = new(ctx) ir_constant(0);
+	} else {
+	   ast_expression *previous_label = (ast_expression *)
+	      hash_table_find(state->switch_state.labels_ht,
+			      (void *)(uintptr_t)label_const->value.u[0]);
+
+	   if (previous_label) {
+	      YYLTYPE loc = this->test_value->get_location();
+	      _mesa_glsl_error(& loc, state,
+			       "duplicate case value");
+
+	      loc = previous_label->get_location();
+	      _mesa_glsl_error(& loc, state,
+			       "this is the previous case label");
+	   } else {
+	      hash_table_insert(state->switch_state.labels_ht,
+				this->test_value,
+				(void *)(uintptr_t)label_const->value.u[0]);
+	   }
 	}
 
 	ir_dereference_variable *deref_test_var =
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index 35d1e3a..d5d5101 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -48,6 +48,10 @@ struct glsl_switch_state {
    ir_variable *is_fallthru_var;
    ir_variable *is_break_var;
    class ast_switch_statement *switch_nesting_ast;
+
+   /** Table of constant values already used in case labels */
+   struct hash_table *labels_ht;
+
    bool is_switch_innermost; // if switch stmt is closest to break, ...
 };
 

commit d799a7b585225441b5a424fbd3de8b719d0ada6e
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 30 09:46:09 2012 -0800

    glsl: Add other missing error location information for switch statements.
    
    NOTE: This is a candidate for the 8.0 branch.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 01a5a2c9d761d4c9d72c236084efee700dcb28b8)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 8368d06..d5e85ab 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1671,6 +1671,7 @@ switch_statement:
 	SWITCH '(' expression ')' switch_body
 	{
 	   $$ = new(state) ast_switch_statement($3, $5);
+	   $$->set_location(yylloc);
 	}
 	;
 
@@ -1707,6 +1708,7 @@ case_label_list:
 
 	   labels->labels.push_tail(& $1->link);
 	   $$ = labels;
+	   $$->set_location(yylloc);
 	}
 	| case_label_list case_label
 	{
@@ -1719,6 +1721,7 @@ case_statement:
 	case_label_list statement
 	{
 	   ast_case_statement *stmts = new(state) ast_case_statement($1);
+	   stmts->set_location(yylloc);
 
 	   stmts->stmts.push_tail(& $2->link);
 	   $$ = stmts;
@@ -1734,6 +1737,7 @@ case_statement_list:
 	case_statement
 	{
 	   ast_case_statement_list *cases= new(state) ast_case_statement_list();
+	   cases->set_location(yylloc);
 
 	   cases->cases.push_tail(& $1->link);
 	   $$ = cases;

commit 2b4df494b1f5f020444b14fcaeea6e02adb7d7ac
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Jan 30 09:41:55 2012 -0800

    glsl: Add missing location info to case labels.
    
    Otherwise, the upcoming error messages said the location was 0:0(0).
    
    NOTE: This is a candidate for the 8.0 branch.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 663dcbbffeaedf0643e7e9d930ccfbcd698d1d9c)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index e774b46..8368d06 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1691,10 +1691,12 @@ case_label:
 	CASE expression ':'
 	{
 	   $$ = new(state) ast_case_label($2);
+	   $$->set_location(yylloc);
 	}
 	| DEFAULT ':'
 	{
 	   $$ = new(state) ast_case_label(NULL);
+	   $$->set_location(yylloc);
 	}
 	;
 

commit 728bda08d85813eeda12ae52e0893a37533ba02c
Author: Eric Anholt <eric@anholt.net>
Date:   Sat Jan 28 11:43:22 2012 -0800

    glsl: Throw the required error when a case label is a non-constant.
    
    It's not quite spelled out in the spec text, but the grammar indicates
    that only constant values are allowed as switch() case labels (and
    only constant values make sense, anyway).
    
    Fixes piglit glsl-1.30/compiler/switch-statement/switch-case-uniform-int.vert.
    
    NOTE: This is a candidate for the 8.0 branch.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 2c3e10e71935506798c413363df27afc4348fb53)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 25ccdab..28aff39 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -3697,14 +3697,26 @@ ast_switch_statement::hir(exec_list *instructions,
 	/* Conditionally set fallthru state based on
 	 * comparison of cached test expression value to case label.
 	 */
-	ir_rvalue *const test_val = this->test_value->hir(instructions, state);
+	ir_rvalue *const label_rval = this->test_value->hir(instructions, state);
+	ir_constant *label_const = label_rval->constant_expression_value();
+
+	if (!label_const) {
+	   YYLTYPE loc = this->test_value->get_location();
+
+	   _mesa_glsl_error(& loc, state,
+			    "switch statement case label must be a "
+			    "constant expression");
+
+	   /* Stuff a dummy value in to allow processing to continue. */
+	   label_const = new(ctx) ir_constant(0);
+	}
 
 	ir_dereference_variable *deref_test_var =
 	   new(ctx) ir_dereference_variable(state->switch_state.test_var);
 
 	ir_rvalue *const test_cond = new(ctx) ir_expression(ir_binop_all_equal,
 							    glsl_type::bool_type,
-							    test_val,
+							    label_const,
 							    deref_test_var);
 
 	ir_assignment *set_fallthru_on_test =

commit f775d9aa848c61dcf7eb2ca6d599b40366034848
Author: Eric Anholt <eric@anholt.net>
Date:   Sat Jan 28 11:26:02 2012 -0800

    glsl: Save and restore the whole switch state for nesting.
    
    This stuffs them all in a struct for sanity.  Fixes piglit
    glsl-1.30/execution/switch/fs-uniform-nested.
    
    NOTE: This is a candidate for the 8.0 branch.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 22d81f154fed9e004cca91807808ae3b81b01ced)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index cde7052..25ccdab 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -3405,7 +3405,7 @@ ast_jump_statement::hir(exec_list *instructions,
 			  "continue may only appear in a loop");
       } else if (mode == ast_break &&
 		 state->loop_nesting_ast == NULL &&
-		 state->switch_nesting_ast == NULL) {
+		 state->switch_state.switch_nesting_ast == NULL) {
 	 YYLTYPE loc = this->get_location();
 
 	 _mesa_glsl_error(& loc, state,
@@ -3423,11 +3423,11 @@ ast_jump_statement::hir(exec_list *instructions,
 							  state);
 	 }
 
-	 if (state->is_switch_innermost &&
+	 if (state->switch_state.is_switch_innermost &&
 	     mode == ast_break) {
 	    /* Force break out of switch by setting is_break switch state.
 	     */
-	    ir_variable *const is_break_var = state->is_break_var;
+	    ir_variable *const is_break_var = state->switch_state.is_break_var;
 	    ir_dereference_variable *const deref_is_break_var =
 	       new(ctx) ir_dereference_variable(is_break_var);
 	    ir_constant *const true_val = new(ctx) ir_constant(true);
@@ -3530,25 +3530,22 @@ ast_switch_statement::hir(exec_list *instructions,
 
    /* Track the switch-statement nesting in a stack-like manner.
     */
-   ir_variable *saved_test_var = state->test_var;
-   ir_variable *saved_is_fallthru_var = state->is_fallthru_var;
-   
-   bool save_is_switch_innermost = state->is_switch_innermost;
-   ast_switch_statement *saved_nesting_ast = state->switch_nesting_ast;
+   struct glsl_switch_state saved = state->switch_state;
 
-   state->is_switch_innermost = true;
-   state->switch_nesting_ast = this;


Reply to: