debian/changelog                                          |   14 ++
 debian/patches/core-fix-EXT_texture_format_BGRA8888.patch |   71 +++++++++++++
 debian/patches/egl-platform-mir.patch                     |   72 +++++++++-----
 debian/patches/series                                     |    1 
 4 files changed, 133 insertions(+), 25 deletions(-)

New commits:
commit 6c5e9baf8026ea4bc67cda2e0f6d20011fa9a191
Author: Christopher James Halse Rogers <r...@ubuntu.com>
Date:   Fri Oct 9 14:53:40 2015 +1100

    Fold in -1ubuntu3 upload from the archive

diff --git a/debian/changelog b/debian/changelog
index 62904a5..deffbf7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (11.0.2-1ubuntu3) wily; urgency=medium
+mesa (11.0.2-1ubuntu4) wily; urgency=medium
 
   * core-fix-EXT_texture_format_BGRA8888.patch: Cherry pick upstream commit
     fixing incorrectly-strict error handling in format code. Fixes black
@@ -6,6 +6,12 @@ mesa (11.0.2-1ubuntu3) wily; urgency=medium
 
  -- Christopher James Halse Rogers <r...@ubuntu.com>  Fri, 09 Oct 2015 
14:45:54 +1100
 
+mesa (11.0.2-1ubuntu3) wily; urgency=medium
+
+  * d/patches/egl-platform-mir.patch: add mirclient dependency (LP: #1503450)
+
+ -- Tiago Stürmer Daitx <tiago.da...@canonical.com>  Tue, 06 Oct 2015 22:05:12 
+0000
+
 mesa (11.0.2-1ubuntu2) wily; urgency=medium
 
   * control, rules: Disable LLVM on ppc64el again, until unity tests
diff --git a/debian/patches/egl-platform-mir.patch 
b/debian/patches/egl-platform-mir.patch
index 0333455..1222c9f 100644
--- a/debian/patches/egl-platform-mir.patch
+++ b/debian/patches/egl-platform-mir.patch
@@ -1,17 +1,19 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -1772,7 +1772,9 @@ for plat in $egl_platforms; do
+Index: mesa-11.0.2/configure.ac
+===================================================================
+--- mesa-11.0.2.orig/configure.ac
++++ mesa-11.0.2/configure.ac
+@@ -1647,7 +1647,9 @@ for plat in $egl_platforms; do
                test "x$have_libdrm" != xyes &&
                        AC_MSG_ERROR([EGL platform surfaceless requires libdrm 
>= $LIBDRM_REQUIRED])
                ;;
 -
 +        mir)
-+                PKG_CHECK_MODULES([MIR], [mir-client-platform-mesa-dev])
++                PKG_CHECK_MODULES([MIR], [mirclient 
mir-client-platform-mesa-dev])
 +                ;;
        *)
                AC_MSG_ERROR([EGL platform '$plat' does not exist])
                ;;
-@@ -1798,6 +1800,7 @@ AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND
+@@ -1673,6 +1675,7 @@ AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND
  AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
  AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 
'surfaceless')
  AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
@@ -19,8 +21,10 @@
  
  AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
  
---- a/include/EGL/eglplatform.h
-+++ b/include/EGL/eglplatform.h
+Index: mesa-11.0.2/include/EGL/eglplatform.h
+===================================================================
+--- mesa-11.0.2.orig/include/EGL/eglplatform.h
++++ mesa-11.0.2/include/EGL/eglplatform.h
 @@ -105,6 +105,13 @@ typedef struct ANativeWindow*
  typedef struct egl_native_pixmap_t*     EGLNativePixmapType;
  typedef void*                           EGLNativeDisplayType;
@@ -35,8 +39,10 @@
  #elif defined(__unix__) || defined(__APPLE__)
  
  #if defined(MESA_EGL_NO_X11_HEADERS)
---- a/include/GL/internal/dri_interface.h
-+++ b/include/GL/internal/dri_interface.h
+Index: mesa-11.0.2/include/GL/internal/dri_interface.h
+===================================================================
+--- mesa-11.0.2.orig/include/GL/internal/dri_interface.h
++++ mesa-11.0.2/include/GL/internal/dri_interface.h
 @@ -886,10 +886,12 @@ struct __DRIbufferRec {
      unsigned int pitch;
      unsigned int cpp;
@@ -51,8 +57,10 @@
  struct __DRIdri2LoaderExtensionRec {
      __DRIextension base;
  
---- a/src/egl/drivers/dri2/egl_dri2.c
-+++ b/src/egl/drivers/dri2/egl_dri2.c
+Index: mesa-11.0.2/src/egl/drivers/dri2/egl_dri2.c
+===================================================================
+--- mesa-11.0.2.orig/src/egl/drivers/dri2/egl_dri2.c
++++ mesa-11.0.2/src/egl/drivers/dri2/egl_dri2.c
 @@ -757,6 +757,12 @@ dri2_initialize(_EGLDriver *drv, _EGLDis
           return EGL_TRUE;
        return dri2_initialize_wayland(drv, disp);
@@ -90,8 +98,10 @@
        for (i = 0; dri2_dpy->driver_configs[i]; i++)
           free((__DRIconfig *) dri2_dpy->driver_configs[i]);
        free(dri2_dpy->driver_configs);
---- a/src/egl/drivers/dri2/egl_dri2.h
-+++ b/src/egl/drivers/dri2/egl_dri2.h
+Index: mesa-11.0.2/src/egl/drivers/dri2/egl_dri2.h
+===================================================================
+--- mesa-11.0.2.orig/src/egl/drivers/dri2/egl_dri2.h
++++ mesa-11.0.2/src/egl/drivers/dri2/egl_dri2.h
 @@ -66,6 +66,10 @@
  
  #endif /* HAVE_ANDROID_PLATFORM */
@@ -156,8 +166,10 @@
 +dri2_initialize_mir(_EGLDriver *drv, _EGLDisplay *disp);
 +
  #endif /* EGL_DRI2_INCLUDED */
+Index: mesa-11.0.2/src/egl/drivers/dri2/platform_mir.c
+===================================================================
 --- /dev/null
-+++ b/src/egl/drivers/dri2/platform_mir.c
++++ mesa-11.0.2/src/egl/drivers/dri2/platform_mir.c
 @@ -0,0 +1,617 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -776,8 +788,10 @@
 +
 +   return EGL_FALSE;
 +}
---- a/src/egl/main/egldisplay.c
-+++ b/src/egl/main/egldisplay.c
+Index: mesa-11.0.2/src/egl/main/egldisplay.c
+===================================================================
+--- mesa-11.0.2.orig/src/egl/main/egldisplay.c
++++ mesa-11.0.2/src/egl/main/egldisplay.c
 @@ -56,7 +56,10 @@
  #ifdef HAVE_DRM_PLATFORM
  #include <gbm.h>
@@ -867,8 +881,10 @@
     char *detection_method = NULL;
  
     if (native_platform == _EGL_INVALID_PLATFORM) {
---- a/src/egl/main/egldisplay.h
-+++ b/src/egl/main/egldisplay.h
+Index: mesa-11.0.2/src/egl/main/egldisplay.h
+===================================================================
+--- mesa-11.0.2.orig/src/egl/main/egldisplay.h
++++ mesa-11.0.2/src/egl/main/egldisplay.h
 @@ -50,6 +50,7 @@ enum _egl_platform_type {
     _EGL_PLATFORM_ANDROID,
     _EGL_PLATFORM_HAIKU,
@@ -877,8 +893,10 @@
  
     _EGL_NUM_PLATFORMS,
     _EGL_INVALID_PLATFORM = -1
---- a/src/gallium/state_trackers/dri/dri2.c
-+++ b/src/gallium/state_trackers/dri/dri2.c
+Index: mesa-11.0.2/src/gallium/state_trackers/dri/dri2.c
+===================================================================
+--- mesa-11.0.2.orig/src/gallium/state_trackers/dri/dri2.c
++++ mesa-11.0.2/src/gallium/state_trackers/dri/dri2.c
 @@ -531,12 +531,20 @@ dri2_allocate_textures(struct dri_contex
           templ.height0 = dri_drawable->h;
           templ.format = format;
@@ -904,8 +922,10 @@
           drawable->textures[statt] =
              screen->base.screen->resource_from_handle(screen->base.screen,
                    &templ, &whandle);
---- a/src/gbm/backends/dri/gbm_dri.c
-+++ b/src/gbm/backends/dri/gbm_dri.c
+Index: mesa-11.0.2/src/gbm/backends/dri/gbm_dri.c
+===================================================================
+--- mesa-11.0.2.orig/src/gbm/backends/dri/gbm_dri.c
++++ mesa-11.0.2/src/gbm/backends/dri/gbm_dri.c
 @@ -202,7 +202,7 @@ static const __DRIimageLookupExtension i
  };
  
@@ -979,7 +999,7 @@
  static struct gbm_bo *
  gbm_dri_bo_import(struct gbm_device *gbm,
                    uint32_t type, void *buffer, uint32_t usage)
-@@ -836,31 +876,7 @@ gbm_dri_bo_create(struct gbm_device *gbm
+@@ -852,31 +892,7 @@ gbm_dri_bo_create(struct gbm_device *gbm
     bo->base.base.height = height;
     bo->base.base.format = format;
  
@@ -1012,8 +1032,10 @@
  
     if (usage & GBM_BO_USE_SCANOUT)
        dri_use |= __DRI_IMAGE_USE_SCANOUT;
---- a/src/egl/Makefile.am
-+++ b/src/egl/Makefile.am
+Index: mesa-11.0.2/src/egl/Makefile.am
+===================================================================
+--- mesa-11.0.2.orig/src/egl/Makefile.am
++++ mesa-11.0.2/src/egl/Makefile.am
 @@ -75,6 +75,12 @@ AM_CFLAGS += -DHAVE_SURFACELESS_PLATFORM
  dri2_backend_FILES += drivers/dri2/platform_surfaceless.c
  endif

commit 06817e1192c6b8b4d2324e642b2bbc79c8882c25
Author: Christopher James Halse Rogers <r...@ubuntu.com>
Date:   Fri Oct 9 14:48:34 2015 +1100

    Cherry-pick 6ad9ebb0 to fix black window bug

diff --git a/debian/changelog b/debian/changelog
index fb0b97c..62904a5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+mesa (11.0.2-1ubuntu3) wily; urgency=medium
+
+  * core-fix-EXT_texture_format_BGRA8888.patch: Cherry pick upstream commit
+    fixing incorrectly-strict error handling in format code. Fixes black
+    windows in Weston and Mir (LP: #1504387)
+
+ -- Christopher James Halse Rogers <r...@ubuntu.com>  Fri, 09 Oct 2015 
14:45:54 +1100
+
 mesa (11.0.2-1ubuntu2) wily; urgency=medium
 
   * control, rules: Disable LLVM on ppc64el again, until unity tests
diff --git a/debian/patches/core-fix-EXT_texture_format_BGRA8888.patch 
b/debian/patches/core-fix-EXT_texture_format_BGRA8888.patch
new file mode 100644
index 0000000..190df83
--- /dev/null
+++ b/debian/patches/core-fix-EXT_texture_format_BGRA8888.patch
@@ -0,0 +1,71 @@
+commit 6ad9ebb073fc4ed245ef8e9db4479a52e818cb92
+Author: Jason Ekstrand <jason.ekstr...@intel.com>
+Date:   Wed Oct 7 15:52:09 2015 -0700
+
+    mesa: Correctly handle GL_BGRA_EXT in ES3 format_and_type checks
+    
+    The EXT_texture_format_BGRA8888 extension (which mesa supports
+    unconditionally) adds a new format and internal format called GL_BGRA_EXT.
+    Previously, this was not really handled at all in
+    _mesa_ex3_error_check_format_and_type.  When the checks were tightened in
+    commit f15a7f3c, we accidentally tightened things too far and GL_BGRA_EXT
+    would always cause an error to be thrown.
+    
+    There were two primary issues here.  First, is that
+    _mesa_es3_effective_internal_format_for_format_and_type didn't handle the
+    GL_BGRA_EXT format.  Second is that it blindly uses _mesa_base_tex_format
+    which returns GL_RGBA for GL_BGRA_EXT.  This commit fixes both of these
+    issues as well as adds explicit checks that GL_BGRA_EXT is only ever used
+    with GL_BGRA_EXT and GL_UNSIGNED_BYTE.
+    
+    Signed-off-by: Jason Ekstrand <jason.ekstr...@intel.com>
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92265
+    Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
+    Cc: "11.0" <mesa-sta...@lists.freedesktop.org>
+
+diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
+index 7dab33c..faa6382 100644
+--- a/src/mesa/main/glformats.c
++++ b/src/mesa/main/glformats.c
+@@ -2678,6 +2678,7 @@ 
_mesa_es3_effective_internal_format_for_format_and_type(GLenum format,
+        * internal formats, they do not correspond to GL constants, so the base
+        * format is returned instead.
+        */
++      case GL_BGRA_EXT:
+       case GL_LUMINANCE_ALPHA:
+       case GL_LUMINANCE:
+       case GL_ALPHA:
+@@ -2797,8 +2798,19 @@ _mesa_es3_error_check_format_and_type(const struct 
gl_context *ctx,
+       if (effectiveInternalFormat == GL_NONE)
+          return GL_INVALID_OPERATION;
+ 
+-      GLenum baseInternalFormat =
+-         _mesa_base_tex_format(ctx, effectiveInternalFormat);
++      GLenum baseInternalFormat;
++      if (internalFormat == GL_BGRA_EXT) {
++         /* Unfortunately, _mesa_base_tex_format returns a base format of
++          * GL_RGBA for GL_BGRA_EXT.  This makes perfect sense if you're
++          * asking the question, "what channels does this format have?"
++          * However, if we're trying to determine if two internal formats
++          * match in the ES3 sense, we actually want GL_BGRA.
++          */
++         baseInternalFormat = GL_BGRA_EXT;
++      } else {
++         baseInternalFormat =
++            _mesa_base_tex_format(ctx, effectiveInternalFormat);
++      }
+ 
+       if (internalFormat != baseInternalFormat)
+          return GL_INVALID_OPERATION;
+@@ -2807,6 +2819,11 @@ _mesa_es3_error_check_format_and_type(const struct 
gl_context *ctx,
+    }
+ 
+    switch (format) {
++   case GL_BGRA_EXT:
++      if (type != GL_UNSIGNED_BYTE || internalFormat != GL_BGRA)
++         return GL_INVALID_OPERATION;
++      break;
++
+    case GL_RGBA:
+       switch (type) {
+       case GL_UNSIGNED_BYTE:
diff --git a/debian/patches/series b/debian/patches/series
index f590a99..85f3841 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@
 egl-platform-mir.patch
 i915-dont-default-to-2.1.patch
 i965-remove-early-release-of-dri2-miptree.patch
+core-fix-EXT_texture_format_BGRA8888.patch

Reply via email to