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

mesa: Changes to 'debian-experimental'



 VERSION                                                                     |    2 
 configure.ac                                                                |    1 
 debian/changelog                                                            |    8 
 debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff |   92 ----------
 debian/patches/series                                                       |    1 
 docs/index.html                                                             |    7 
 docs/relnotes/10.2.html                                                     |    6 
 src/egl/main/eglapi.c                                                       |   12 +
 src/gallium/drivers/llvmpipe/lp_rast.c                                      |   12 -
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp                  |   11 -
 src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp                   |   11 +
 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp               |    5 
 src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp                    |    5 
 src/gallium/drivers/nouveau/nv50/nv50_context.c                             |    7 
 src/gallium/drivers/nouveau/nv50/nv50_state_validate.c                      |    4 
 src/gallium/drivers/nouveau/nv50/nv50_surface.c                             |   20 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_context.c                             |    9 
 src/gallium/drivers/nouveau/nvc0/nvc0_program.c                             |   13 -
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c                              |    7 
 src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c                      |    1 
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c                             |   13 +
 src/gallium/drivers/r600/r600_blit.c                                        |    3 
 src/gallium/drivers/radeon/r600_texture.c                                   |    3 
 src/gallium/drivers/radeonsi/si_blit.c                                      |    3 
 src/glsl/ast_to_hir.cpp                                                     |    6 
 src/glx/glxext.c                                                            |    4 
 src/mapi/glapi/glapi_dispatch.c                                             |   57 ++++++
 src/mesa/drivers/common/meta.h                                              |    4 
 src/mesa/drivers/common/meta_blit.c                                         |   15 +
 src/mesa/drivers/dri/i915/intel_context.c                                   |    2 
 src/mesa/drivers/dri/i965/brw_defines.h                                     |    3 
 src/mesa/drivers/dri/i965/brw_device_info.c                                 |   31 ++-
 src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp                      |   37 ++--
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp                                |   38 ++--
 src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c                           |    1 
 src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp                     |   12 -
 src/mesa/drivers/dri/i965/brw_state.h                                       |    3 
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp                              |   16 +
 src/mesa/drivers/dri/i965/brw_wm.c                                          |    3 
 src/mesa/drivers/dri/i965/brw_wm_sampler_state.c                            |   21 +-
 src/mesa/drivers/dri/i965/gen7_sampler_state.c                              |    6 
 src/mesa/main/get.c                                                         |   10 +
 src/mesa/main/get_hash_generator.py                                         |    2 
 src/mesa/main/get_hash_params.py                                            |    4 
 src/mesa/state_tracker/st_program.c                                         |   30 +--
 45 files changed, 347 insertions(+), 214 deletions(-)

New commits:
commit a5a861ca9b9e2853e3338630fe50aae57a2fd857
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Fri Jun 13 17:57:32 2014 +0200

    Drop 01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff, upstream

diff --git a/debian/changelog b/debian/changelog
index 88c5cd8..4b56a25 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 mesa (10.2.1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+    - 01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff
+      dropped, upstream
 
  -- Andreas Boll <andreas.boll.dev@gmail.com>  Fri, 13 Jun 2014 17:39:17 +0200
 
diff --git a/debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff b/debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff
deleted file mode 100644
index 19c5946..0000000
--- a/debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff
+++ /dev/null
@@ -1,92 +0,0 @@
-From 5cca160e06e1e90cad615cf1e6a73781267530c0 Mon Sep 17 00:00:00 2001
-From: Ian Romanick <ian.d.romanick@intel.com>
-Date: Fri, 30 May 2014 13:57:32 -0700
-Subject: [PATCH] glapi: Duplicate GLES1 prototypes in glapi_dispatch.c
-
-These prototypes are necessary because GLES1 library builds will create
-dispatch functions for them.  We can't directly include GLES/gl.h
-because it would conflict the previously-included GL/gl.h.  Since GLES1
-ABI is not expected to every add more functions, the path of least
-resistance is to just duplicate the prototypes for the functions that
-aren't already in desktop OpenGL.
-
-Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79294
-Cc: Andreas Boll <andreas.boll.dev@gmail.com>
-Cc: "10.2" <mesa-stable@lists.freedesktop.org>
-Acked-by: Matt Turner <mattst88@gmail.com>
----
- src/mapi/glapi/glapi_dispatch.c | 57 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 57 insertions(+)
-
-diff --git a/src/mapi/glapi/glapi_dispatch.c b/src/mapi/glapi/glapi_dispatch.c
-index b4c8c77..d2dd965 100644
---- a/src/mapi/glapi/glapi_dispatch.c
-+++ b/src/mapi/glapi/glapi_dispatch.c
-@@ -87,6 +87,63 @@
- /* those link to libglapi.a should provide the entry points */
- #define _GLAPI_SKIP_PROTO_ENTRY_POINTS
- #endif
-+
-+/* These prototypes are necessary because GLES1 library builds will create
-+ * dispatch functions for them.  We can't directly include GLES/gl.h because
-+ * it would conflict the previously-included GL/gl.h.  Since GLES1 ABI is not
-+ * expected to every add more functions, the path of least resistance is to
-+ * just duplicate the prototypes for the functions that aren't already in
-+ * desktop OpenGL.
-+ */
-+#include <GLES/glplatform.h>
-+
-+GL_API void GL_APIENTRY glClearDepthf (GLclampf depth);
-+GL_API void GL_APIENTRY glClipPlanef (GLenum plane, const GLfloat *equation);
-+GL_API void GL_APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-+GL_API void GL_APIENTRY glGetClipPlanef (GLenum pname, GLfloat eqn[4]);
-+GL_API void GL_APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-+
-+GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref);
-+GL_API void GL_APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
-+GL_API void GL_APIENTRY glClearDepthx (GLclampx depth);
-+GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation);
-+GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
-+GL_API void GL_APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar);
-+GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-+GL_API void GL_APIENTRY glGetClipPlanex (GLenum pname, GLfixed eqn[4]);
-+GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params);
-+GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params);
-+GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params);
-+GL_API void GL_APIENTRY glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params);
-+GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params);
-+GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glLineWidthx (GLfixed width);
-+GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m);
-+GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m);
-+GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
-+GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz);
-+GL_API void GL_APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-+GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glPointSizex (GLfixed size);
-+GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units);
-+GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
-+GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert);
-+GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z);
-+GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param);
-+GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params);
-+GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z);
-+GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer);
-+
- #include "glapi/glapitemp.h"
- 
- #endif /* USE_X86_ASM */
--- 
-2.0.0.rc2
-
diff --git a/debian/patches/series b/debian/patches/series
index f389033..9f0749f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1 @@
-01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff
 07_gallium-fix-build-failure-on-powerpcspe.diff

commit 07cec34c38d45a0fc241038c585791174ccb81cb
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Fri Jun 13 17:44:12 2014 +0200

    New upstream release.

diff --git a/debian/changelog b/debian/changelog
index 11a9110..88c5cd8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mesa (10.2.1-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Andreas Boll <andreas.boll.dev@gmail.com>  Fri, 13 Jun 2014 17:39:17 +0200
+
 mesa (10.2.0~rc4-2) experimental; urgency=medium
 
   [ Andreas Boll ]

commit 1b69ea1c6d4e66ade7ab4fa0b08d024efe9dae9c
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Jun 6 22:13:36 2014 -0700

    Bump version to 10.2.1

diff --git a/VERSION b/VERSION
index 2bd6f7e..26ee5b0 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.2.0
+10.2.1

commit c2fc9fb90786cae02d589ee7242d5f5fe99bdbec
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Jun 6 22:07:34 2014 -0700

    radeonsi: Fix build error introduced in 5ab9a9c
    
    While resolving conflicts in cherry picking commit d226191, I
    accidentally introduced some garbage.  Because radeonsi isn't built by
    default, the problem went unnoticed by me.
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Reported-by: Laurent Carlier <lordheavym@gmail.com>
    Tested-by: Laurent Carlier <lordheavym@gmail.com>

diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
index 892ee84..1dfff49 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -692,7 +692,6 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx,
 	    !(dst->surface.flags & RADEON_SURF_SCANOUT) &&
 	    (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) {
 		si_blitter_begin(ctx, SI_COLOR_RESOLVE);
-t-cleared
 		util_blitter_custom_resolve_color(sctx->blitter,
 						  info->dst.resource, info->dst.level,
 						  info->dst.box.z,

commit 28d41e409d74aabe35f1031e759179e82cb760b4
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Jun 6 21:17:02 2014 -0700

    docs: Add MD5 checksum, etc. for 10.1 release
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>

diff --git a/docs/index.html b/docs/index.html
index 186bda2..5bd9601 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,6 +16,13 @@
 
 <h1>News</h1>
 
+<h2>June 6, 2014</h2>
+<p>
+<a href="relnotes/10.2.html">Mesa 10.2</a> is released.  This is a new
+development release.  See the release notes for more information about
+the release.
+</p>
+
 <h2>April 18, 2014</h2>
 <p>
 <a href="relnotes/10.1.1.html">Mesa 10.1.1</a> is released.
diff --git a/docs/relnotes/10.2.html b/docs/relnotes/10.2.html
index af44ca1..f17bfcc 100644
--- a/docs/relnotes/10.2.html
+++ b/docs/relnotes/10.2.html
@@ -14,7 +14,7 @@
 <iframe src="../contents.html"></iframe>
 <div class="content">
 
-<h1>Mesa 10.2 Release Notes / TBD</h1>
+<h1>Mesa 10.2 Release Notes / June 6, 2014</h1>
 
 <p>
 Mesa 10.2 is a new development release.
@@ -33,7 +33,9 @@ because compatibility contexts are not supported.
 
 <h2>MD5 checksums</h2>
 <pre>
-TBD.
+c87bfb6dd5cbcf1fdef42e5ccd972581  MesaLib-10.2.0.tar.gz
+7aaba90bd7169a94ae2fe83febdec963  MesaLib-10.2.0.tar.bz2
+58b203aca15dadc25ab4d1126db1052b  MesaLib-10.2.0.zip
 </pre>
 
 

commit f836ef63fdbb4abada29299e226eed735094736c
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Jun 6 18:42:36 2014 -0700

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

diff --git a/VERSION b/VERSION
index 88242cc..2bd6f7e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.2.0-rc5
+10.2.0

commit 99b9a0973ad32882897f21bb087b7bd34a928b59
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 22:40:47 2014 -0400

    gk110/ir: fix slct emission
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 9fef8b3d811000146b989a101ad0e26ae6530fe4)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index e1b5a74..6788750 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -952,7 +952,7 @@ CodeEmitterGK110::emitSLCT(const CmpInstruction *i)
       FTZ_(32);
       emitCondCode(cc, 0x33, 0xf);
    } else {
-      emitForm_21(i, 0x1a4, 0xb20);
+      emitForm_21(i, 0x1a0, 0xb20);
       emitCondCode(cc, 0x34, 0x7);
    }
 }

commit d36d53b564f5907e86ad5f5ffd837738988be4a2
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 20:33:06 2014 -0400

    gk110/ir: fix interp mode emission
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit d588a4919b732246b7aa26685ef65545929a4f7b)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index 9a8c4b9..e1b5a74 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -1326,7 +1326,8 @@ CodeEmitterGK110::emitOUT(const Instruction *i)
 void
 CodeEmitterGK110::emitInterpMode(const Instruction *i)
 {
-   code[1] |= i->ipa << 21; // TODO: INTERP_SAMPLEID
+   code[1] |= (i->ipa & 0x3) << 21; // TODO: INTERP_SAMPLEID
+   code[1] |= (i->ipa & 0xc) << (19 - 2);
 }
 
 void

commit 283cd12933ae4d38a15f789b9e6b513c474fd080
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 15:36:27 2014 -0400

    nvc0: don't bother trying to set up compute for gk110+
    
    The nouveau fw currently prints a bunch of errors. No point in seeing
    those all the time, esp since compute doesn't really work in the first
    place.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    
    Conflicts:
    	src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
    (cherry picked from commit ca65fc418f756496d480a9a4566543837a582826)

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
index 8f9493c..58d3e1b 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
@@ -171,7 +171,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
       return 0;
    case PIPE_CAP_COMPUTE:
-      return (class_3d >= NVE4_3D_CLASS) ? 1 : 0;
+      return (class_3d == NVE4_3D_CLASS) ? 1 : 0;
    case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:
       return 1;
    case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
@@ -211,7 +211,7 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
    case PIPE_SHADER_FRAGMENT:
       break;
    case PIPE_SHADER_COMPUTE:
-      if (class_3d < NVE4_3D_CLASS)
+      if (class_3d != NVE4_3D_CLASS)
          return 0;
       break;
    default:
@@ -514,9 +514,10 @@ nvc0_screen_init_compute(struct nvc0_screen *screen)
          return nvc0_screen_compute_setup(screen, screen->base.pushbuf);
       return 0;
    case 0xe0:
+      return nve4_screen_compute_setup(screen, screen->base.pushbuf);
    case 0xf0:
    case 0x100:
-      return nve4_screen_compute_setup(screen, screen->base.pushbuf);
+      return 0;
    default:
       return -1;
    }

commit aa8ea648f4995d4752a42e4ef5d4d9874a2db806
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 15:29:57 2014 -0400

    gk110: add in forgotten code for gk110 isa
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    
    Conflicts:
    	src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
    (cherry picked from commit b9ec766bd02d55c20ff7ce5b95207ea7f6ed1de5)

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
index e15806e..1189b0d 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
@@ -543,9 +543,22 @@ nvc0_blitter_make_vp(struct nvc0_blitter *blit)
       0x03f01c46, 0x0a7e0080, /* export b96 o[0x80] $r0:$r1:$r2 */
       0x00001de7, 0x80000000, /* exit */
    };
+   static const uint32_t code_gk110[] =
+   {
+      0x00000000, 0x08000000, /* sched */
+      0x401ffc12, 0x7ec7fc00, /* ld b64 $r4d a[0x80] 0x0 0x0 */
+      0x481ffc02, 0x7ecbfc00, /* ld b96 $r0t a[0x90] 0x0 0x0 */
+      0x381ffc12, 0x7f07fc00, /* st b64 a[0x70] $r4d 0x0 0x0 */
+      0x401ffc02, 0x7f0bfc00, /* st b96 a[0x80] $r0t 0x0 0x0 */
+      0x001c003c, 0x18000000, /* exit */
+   };
 
    blit->vp.type = PIPE_SHADER_VERTEX;
    blit->vp.translated = TRUE;
+   if (blit->screen->base.class_3d >= NVF0_3D_CLASS) {
+      blit->vp.code = (uint32_t *)code_gk110; /* const_cast */
+      blit->vp.code_size = sizeof(code_gk110);
+   } else
    if (blit->screen->base.class_3d >= NVE4_3D_CLASS) {
       blit->vp.code = (uint32_t *)code_nve4; /* const_cast */
       blit->vp.code_size = sizeof(code_nve4);

commit e901f407646a1852be5e6e82b19ee69be60ec1ae
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 19:52:49 2014 -0400

    gk110/ir: fix ISAD emission with register args
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit ed1b9e5721f6c7a74e042eadb31fc5dcb2fc3552)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index 0941603..9a8c4b9 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -633,7 +633,7 @@ CodeEmitterGK110::emitISAD(const Instruction *i)
 {
    assert(i->dType == TYPE_S32 || i->dType == TYPE_U32);
 
-   emitForm_21(i, 0x1fc, 0xb74);
+   emitForm_21(i, 0x1f4, 0xb74);
 
    if (i->dType == TYPE_S32)
       code[1] |= 1 << 19;

commit d5e47ee66b08b7be8d7e98f24448dddcb9c7cd2a
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 19:27:28 2014 -0400

    gk110/ir: fix quadon opcode emission
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 6e046508a17b7eee24285e94f144a42ded3ebcdc)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index d566c99..0941603 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -1204,7 +1204,7 @@ CodeEmitterGK110::emitFlow(const Instruction *i)
    case OP_PRECONT:  code[1] = 0x15800000; mask = 2; break;
    case OP_PRERET:   code[1] = 0x13800000; mask = 2; break;
 
-   case OP_QUADON:  code[1] = 0x1b000000; mask = 0; break;
+   case OP_QUADON:  code[1] = 0x1b800000; mask = 0; break;
    case OP_QUADPOP: code[1] = 0x1c000000; mask = 0; break;
    case OP_BRKPT:   code[1] = 0x00000000; mask = 0; break;
    default:

commit 932a5dadda725db77b05e9da2bdae29df95fe099
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Fri Jun 6 15:29:21 2014 -0400

    gk110/ir: emit texbar the same way that the blob does
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 73eec47ef81954f7c2bf7c8bf03b300d11d05b82)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index b8d0d3e..d566c99 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -967,7 +967,7 @@ void CodeEmitterGK110::emitSELP(const Instruction *i)
 
 void CodeEmitterGK110::emitTEXBAR(const Instruction *i)
 {
-   code[0] = 0x00000002 | (i->subOp << 23);
+   code[0] = 0x0000003e | (i->subOp << 23);
    code[1] = 0x77000000;
 
    emitPredicate(i);

commit 203bc289a0aa7e78eaa8ea40ed7dcb84dc4d87b2
Author: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Date:   Wed Jun 4 00:35:47 2014 +0200

    nv50/ir: clear subop when folding constant expressions
    
    Some operations (e.g. OP_MUL/OP_MAD/OP_EXTBF) might have a subop set.
    After folding, make sure that it is cleared
    
    Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
    Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 3164bfc73418e2e046c7a750eaac8a6d66dfe02d)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
index 31f8558..6e5b66c 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -563,6 +563,7 @@ ConstantFolding::expr(Instruction *i,
    } else {
       i->op = i->saturate ? OP_SAT : OP_MOV; /* SAT handled by unary() */
    }
+   i->subOp = 0;
 }
 
 void

commit 11b3011805a5f1d59ea8a025313d109bf25f50c4
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Wed May 28 23:31:48 2014 -0700

    i965: Support GL_CLAMP natively on Broadwell.
    
    The new hardware actually supports this OpenGL 1.x feature natively,
    so we can finally drop our shader workarounds.
    
    Not many applications use GL_CLAMP, and most use it unintentionally, but
    it's trivial to do right, so we should.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 221169693bf1dfdaf46dddc1df318cee992237aa)

diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h
index ed8efca..3afd399 100644
--- a/src/mesa/drivers/dri/i965/brw_defines.h
+++ b/src/mesa/drivers/dri/i965/brw_defines.h
@@ -606,6 +606,7 @@
 #define BRW_TEXCOORDMODE_CUBE            3
 #define BRW_TEXCOORDMODE_CLAMP_BORDER    4
 #define BRW_TEXCOORDMODE_MIRROR_ONCE     5
+#define GEN8_TEXCOORDMODE_HALF_BORDER    6
 
 #define BRW_THREAD_PRIORITY_NORMAL   0
 #define BRW_THREAD_PRIORITY_HIGH     1
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index 8530f4f..fecd4fc 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -352,7 +352,8 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx,
          if (alpha_depth || (brw->gen < 8 && !brw->is_haswell))
             key->swizzles[s] = brw_get_texture_swizzle(ctx, t);
 
-	 if (sampler->MinFilter != GL_NEAREST &&
+	 if (brw->gen < 8 &&
+             sampler->MinFilter != GL_NEAREST &&
 	     sampler->MagFilter != GL_NEAREST) {
 	    if (sampler->WrapS == GL_CLAMP)
 	       key->gl_clamp_mask[0] |= 1 << s;
diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
index 6f8dde4..8a4bfea 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
@@ -55,9 +55,16 @@ translate_wrap_mode(struct brw_context *brw, GLenum wrap, bool using_nearest)
       /* GL_CLAMP is the weird mode where coordinates are clamped to
        * [0.0, 1.0], so linear filtering of coordinates outside of
        * [0.0, 1.0] give you half edge texel value and half border
-       * color.  The fragment shader will clamp the coordinates, and
-       * we set clamp_border here, which gets the result desired.  We
-       * just use clamp(_to_edge) for nearest, because for nearest
+       * color.
+       *
+       * Gen8+ supports this natively.
+       */
+      if (brw->gen >= 8)
+         return GEN8_TEXCOORDMODE_HALF_BORDER;
+
+      /* On Gen4-7.5, we clamp the coordinates in the fragment shader
+       * and set clamp_border here, which gets the result desired.
+       * We just use clamp(_to_edge) for nearest, because for nearest
        * clamping to 1.0 gives border color instead of the desired
        * edge texels.
        */

commit c62bc58ccedc3393433d501fec0fb30c778fd1fa
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Wed May 28 23:37:44 2014 -0700

    i965: Pass brw to translate_wrap_mode().
    
    This lets us do generation checks.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 7f3d64a77b9ca6d738f67c7a3dd4499cdf817d79)

diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index dbcf7c7..c52a977 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -243,7 +243,8 @@ void gen7_upload_3dstate_so_decl_list(struct brw_context *brw,
 void gen8_init_vtable_surface_functions(struct brw_context *brw);
 
 /* brw_wm_sampler_state.c */
-uint32_t translate_wrap_mode(GLenum wrap, bool using_nearest);
+uint32_t translate_wrap_mode(struct brw_context *brw,
+                             GLenum wrap, bool using_nearest);
 void upload_default_color(struct brw_context *brw,
 			  struct gl_sampler_object *sampler,
 			  int unit,
diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
index bbfd9e0..6f8dde4 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
@@ -46,7 +46,7 @@
 
 
 uint32_t
-translate_wrap_mode(GLenum wrap, bool using_nearest)
+translate_wrap_mode(struct brw_context *brw, GLenum wrap, bool using_nearest)
 {
    switch( wrap ) {
    case GL_REPEAT:
@@ -276,11 +276,11 @@ static void brw_update_sampler_state(struct brw_context *brw,
       }
    }
 
-   sampler->ss1.r_wrap_mode = translate_wrap_mode(gl_sampler->WrapR,
+   sampler->ss1.r_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapR,
 						  using_nearest);
-   sampler->ss1.s_wrap_mode = translate_wrap_mode(gl_sampler->WrapS,
+   sampler->ss1.s_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapS,
 						  using_nearest);
-   sampler->ss1.t_wrap_mode = translate_wrap_mode(gl_sampler->WrapT,
+   sampler->ss1.t_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapT,
 						  using_nearest);
 
    if (brw->gen >= 6 &&
diff --git a/src/mesa/drivers/dri/i965/gen7_sampler_state.c b/src/mesa/drivers/dri/i965/gen7_sampler_state.c
index 74d5e9e..6077ff2 100644
--- a/src/mesa/drivers/dri/i965/gen7_sampler_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_sampler_state.c
@@ -103,11 +103,11 @@ gen7_update_sampler_state(struct brw_context *brw, int unit, int ss_index,
       }
    }
 
-   sampler->ss3.r_wrap_mode = translate_wrap_mode(gl_sampler->WrapR,
+   sampler->ss3.r_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapR,
 						  using_nearest);
-   sampler->ss3.s_wrap_mode = translate_wrap_mode(gl_sampler->WrapS,
+   sampler->ss3.s_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapS,
 						  using_nearest);
-   sampler->ss3.t_wrap_mode = translate_wrap_mode(gl_sampler->WrapT,
+   sampler->ss3.t_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapT,
 						  using_nearest);
 
    /* Cube-maps on 965 and later must use the same wrap mode for all 3

commit 304e80e35619c473497998ea83ae2fe3f22d3876
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Tue May 13 07:20:02 2014 -0700

    i965: Fix copy and pasted values in Broadwell code.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 7913b4b97bab750ffad54e53dec9bbeb56307066)

diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c
index bf3c62e..f28d754 100644
--- a/src/mesa/drivers/dri/i965/brw_device_info.c
+++ b/src/mesa/drivers/dri/i965/brw_device_info.c
@@ -192,33 +192,44 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = {
    },
 };
 
-/* Thread counts and URB limits are placeholders, and may not be accurate. */
 #define GEN8_FEATURES                               \
    .gen = 8,                                        \
    .has_hiz_and_separate_stencil = true,            \
    .must_use_separate_stencil = true,               \
    .has_llc = true,                                 \
    .has_pln = true,                                 \
-   .max_vs_threads = 280,                           \
-   .max_gs_threads = 256,                           \
-   .max_wm_threads = 408,                           \
-   .urb = {                                         \
-      .size = 128,                                  \
-      .min_vs_entries = 64,                         \
-      .max_vs_entries = 1664,                       \
-      .max_gs_entries = 640,                        \
-   }
+   .max_vs_threads = 504,                           \
+   .max_gs_threads = 504,                           \
+   .max_wm_threads = 384                            \
 
 static const struct brw_device_info brw_device_info_bdw_gt1 = {
    GEN8_FEATURES, .gt = 1,
+   .urb = {
+      .size = 192,
+      .min_vs_entries = 64,
+      .max_vs_entries = 2560,
+      .max_gs_entries = 960,
+   }
 };
 
 static const struct brw_device_info brw_device_info_bdw_gt2 = {
    GEN8_FEATURES, .gt = 2,
+   .urb = {
+      .size = 384,
+      .min_vs_entries = 64,
+      .max_vs_entries = 2560,
+      .max_gs_entries = 960,
+   }
 };
 
 static const struct brw_device_info brw_device_info_bdw_gt3 = {
    GEN8_FEATURES, .gt = 3,
+   .urb = {
+      .size = 384,
+      .min_vs_entries = 64,
+      .max_vs_entries = 2560,
+      .max_gs_entries = 960,
+   }
 };
 
 /* Thread counts and URB limits are placeholders, and may not be accurate.

commit f4aca6868a14882fcc8a2b30205fc0d3eff0e90f
Author: Sinclair Yeh <sinclair.yeh@intel.com>
Date:   Tue Jun 3 14:00:13 2014 -0700

    egl: Check for NULL native_window in eglCreateWindowSurface
    
    We have customers using NULL as a way to test the robustness of the API.
    Without this check, EGL will segfault trying to dereference
    dri2_surf->wl_win->private because wl_win is NULL.
    
    This fix adds a check and sets EGL_BAD_NATIVE_WINDOW
    
    v2: Incorporated feedback from idr - moved the check to a higher level
    function.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 91ff0d4c6510dc38f279c586ced17fba917873e7)

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index b946d81..25453f4 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -571,6 +571,10 @@ _eglCreateWindowSurfaceCommon(_EGLDisplay *disp, EGLConfig config,
    EGLSurface ret;
 
    _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
+
+   if (native_window == NULL)
+      RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE);
+
    surf = drv->API.CreateWindowSurface(drv, disp, conf, native_window,
                                        attrib_list);
    ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;

commit 5ab9a9c0ccff8218e9625f43a25535cf7d1d8ae0
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Mon Jun 2 13:51:29 2014 +0200

    r600g,radeonsi: don't use hardware MSAA resolve if dst is fast-cleared
    
    It doesn't work and our docs say so too.
    
    Cc: mesa-stable@lists.freedesktop.org
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    (cherry picked from commit d2261918202697febed0de18f66416e273001088)

diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 1a2a911..bbc64ac 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -789,7 +789,8 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx,
 	    info->src.box.width == dst_width &&
 	    info->src.box.height == dst_height &&
 	    info->src.box.depth == 1 &&
-	    dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D) {
+	    dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D &&
+	    (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) {
 		r600_blitter_begin(ctx, R600_COLOR_RESOLVE);
 		util_blitter_custom_resolve_color(rctx->blitter,
 						  info->dst.resource, info->dst.level,
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
index 6bc89ab..892ee84 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -689,8 +689,10 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx,
 	    info->src.box.height == dst_height &&
 	    info->src.box.depth == 1 &&
 	    dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D &&
-	    !(dst->surface.flags & RADEON_SURF_SCANOUT)) {
+	    !(dst->surface.flags & RADEON_SURF_SCANOUT) &&
+	    (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) {
 		si_blitter_begin(ctx, SI_COLOR_RESOLVE);
+t-cleared
 		util_blitter_custom_resolve_color(sctx->blitter,
 						  info->dst.resource, info->dst.level,
 						  info->dst.box.z,

commit ae16f443c21e4a4eede003a3a789dc8a58c43ea4
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Mon Jun 2 15:45:51 2014 +0200

    r600g,radeonsi: disable fast clear if render condition is on
    
    For some reason, CP DMA doesn't follow the predicate bit if I enable it,
    so this is the only option.
    
    This fixes piglit: spec/NV_conditional_render/clear
    
    Cc: mesa-stable@lists.freedesktop.org
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    (cherry picked from commit bf701a84eb000910015a3c3ee9860141cde4990d)

diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
index e30d933..3a37465 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1235,6 +1235,9 @@ void evergreen_do_fast_color_clear(struct r600_common_context *rctx,
 {
 	int i;
 
+	if (rctx->current_render_cond)
+		return;
+
 	for (i = 0; i < fb->nr_cbufs; i++) {
 		struct r600_texture *tex;
 		unsigned clear_bit = PIPE_CLEAR_COLOR0 << i;

commit b8241bb3f259b8d42f75f6fd6d1a7ea7c59d70e2
Author: José Fonseca <jfonseca@vmware.com>
Date:   Sun Jun 1 20:50:17 2014 +0100

    mesa: Make glGetIntegerv(GL_*_ARRAY_SIZE) return GL_BGRA.
    
    Same as b026b6bbfe3f15c8a7296ac107dc3d31f74e401e, but
    COLOR_ARRAY_SIZE/SECONDARY_COLOR_ARRAY_SIZE.
    
    Ideally we wouldn't munge the incoming state, so that we wouldn't need
    to unmunge it back on glGet*.  But the array size state is copied and
    referred in many places, many of which couldn't take an GLenum like
    GL_BGRA instead of a plain integer.  So just hack around on glGet*,
    to ensure there is no risk of introducing regressions elsewhere.
    
    This bug causes problems to Apitrace, resulting in wrong traces.  See
    https://github.com/apitrace/apitrace/issues/261 for details.
    
    Tested with piglit arb_vertex_array_bgra-get, which was created for this
    purpose.
    
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit e3e13d6b857b3083e2553457fe30ddfd4eddead4)

diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 80a5839..267b5f2 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -847,6 +847,16 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
       v->value_int = ctx->Array.VAO->IndexBufferObj->Name;
       break;
 
+   /* ARB_vertex_array_bgra */
+   case GL_COLOR_ARRAY_SIZE:
+      array = &ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR0];
+      v->value_int = array->Format == GL_BGRA ? GL_BGRA : array->Size;
+      break;
+   case GL_SECONDARY_COLOR_ARRAY_SIZE:
+      array = &ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR1];
+      v->value_int = array->Format == GL_BGRA ? GL_BGRA : array->Size;
+      break;
+
    /* ARB_copy_buffer */
    case GL_COPY_READ_BUFFER:
       v->value_int = ctx->CopyReadBuffer->Name;
diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
index d40fa07..c7a6e02 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -199,7 +199,7 @@ descriptor=[
   [ "NORMAL_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_NORMAL].Type), NO_EXTRA" ],
   [ "NORMAL_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_NORMAL].Stride), NO_EXTRA" ],
   [ "COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR0].Enabled), NO_EXTRA" ],
-  [ "COLOR_ARRAY_SIZE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR0].Size), NO_EXTRA" ],
+  [ "COLOR_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ],
   [ "COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR0].Type), NO_EXTRA" ],
   [ "COLOR_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR0].Stride), NO_EXTRA" ],
   [ "TEXTURE_COORD_ARRAY", "LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Enabled), NO_EXTRA" ],
@@ -552,7 +552,7 @@ descriptor=[
   [ "SECONDARY_COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR1].Enabled), NO_EXTRA" ],
   [ "SECONDARY_COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR1].Type), NO_EXTRA" ],
   [ "SECONDARY_COLOR_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR1].Stride), NO_EXTRA" ],
-  [ "SECONDARY_COLOR_ARRAY_SIZE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR1].Size), NO_EXTRA" ],
+  [ "SECONDARY_COLOR_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ],
 
 # GL_EXT_fog_coord
   [ "CURRENT_FOG_COORDINATE", "CONTEXT_FLOAT(Current.Attrib[VERT_ATTRIB_FOG][0]), extra_flush_current" ],

commit 224c193237311405c7e5275a6a53ee8131ac9215
Author: José Fonseca <jfonseca@vmware.com>
Date:   Sun Jun 1 08:54:18 2014 +0100

    mesa/main: Make get_hash.c values constant.
    
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 53468dee0359a4ec3c9edd334656de0ddc47e477)

diff --git a/src/mesa/main/get_hash_generator.py b/src/mesa/main/get_hash_generator.py
index 96bc495..b200d19 100644
--- a/src/mesa/main/get_hash_generator.py
+++ b/src/mesa/main/get_hash_generator.py
@@ -52,7 +52,7 @@ def print_header():
           (prime_factor, prime_step)
 
 def print_params(params):
-   print "static struct value_desc values[] = {"
+   print "static const struct value_desc values[] = {"
    for p in params:
       print "    { %s, %s }," % (p[0], p[1])
 

commit 494f91612550734d718e4e5120d315a8c3d6a41d
Author: Beren Minor <beren.minor@gmail.com>
Date:   Thu Mar 20 08:36:34 2014 +0100

    egl/main: Fix eglMakeCurrent when releasing context from current thread.
    
    EGL 1.4 Specification says that
    eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)
    can be used to release the current thread's ownership on the surfaces
    and context.
    
    MESA's egl implementation was only accepting the parameters when the
    KHR_surfaceless_context extension is supported.
    
    [chadv] Add quote from the EGL 1.4 spec.
    Cc: "10,1, 10.2" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
    (cherry picked from commit 0ca0d5743fb42a956289a87efd4c8fcda88cf93a)

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index 219d8e6..b946d81 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -524,8 +524,12 @@ eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read,
    if (!context && ctx != EGL_NO_CONTEXT)
       RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_FALSE);
    if (!draw_surf || !read_surf) {
-      /* surfaces may be NULL if surfaceless */
-      if (!disp->Extensions.KHR_surfaceless_context)
+      /* From the EGL 1.4 (20130211) spec:
+       *
+       *    To release the current context without assigning a new one, set ctx
+       *    to EGL_NO_CONTEXT and set draw and read to EGL_NO_SURFACE.
+       */
+      if (!disp->Extensions.KHR_surfaceless_context && ctx != EGL_NO_CONTEXT)
          RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
 


Reply to: