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

mesa: Changes to 'upstream-unstable'



 VERSION                                                    |    2 
 configure.ac                                               |    6 
 docs/index.html                                            |    7 
 docs/relnotes.html                                         |    2 
 docs/relnotes/10.2.1.html                                  |   61 ++++
 docs/relnotes/10.2.2.html                                  |  178 +++++++++++++
 src/egl/drivers/dri2/Android.mk                            |    4 
 src/egl/drivers/dri2/platform_android.c                    |    2 
 src/egl/main/Android.mk                                    |    5 
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp |    8 
 src/gallium/drivers/nouveau/nv30/nv30_context.c            |    3 
 src/gallium/drivers/nouveau/nv30/nv30_screen.c             |    6 
 src/gallium/drivers/nouveau/nv30/nv30_state.c              |   17 +
 src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c           |    1 
 src/gallium/drivers/nouveau/nv50/nv50_surface.c            |    1 
 src/gallium/drivers/radeon/radeon_video.c                  |    5 
 src/gallium/state_trackers/clover/llvm/invocation.cpp      |   20 +
 src/gallium/targets/xa/Makefile.am                         |    3 
 src/gallium/targets/xa/xa.sym                              |   38 ++
 src/glx/dri2.c                                             |   12 
 src/mesa/Android.libmesa_dricore.mk                        |    8 
 src/mesa/Android.libmesa_glsl_utils.mk                     |    1 
 src/mesa/Android.mesa_gen_matypes.mk                       |    1 
 src/mesa/drivers/common/meta.c                             |    4 
 src/mesa/drivers/common/meta_blit.c                        |    2 
 src/mesa/drivers/dri/Android.mk                            |    1 
 src/mesa/drivers/dri/common/Android.mk                     |   17 +
 src/mesa/drivers/dri/common/Makefile.am                    |    2 
 src/mesa/drivers/dri/common/Makefile.sources               |    3 
 src/mesa/drivers/dri/i915/i830_texblend.c                  |    2 
 src/mesa/drivers/dri/i965/brw_context.h                    |    3 
 src/mesa/drivers/dri/i965/brw_fs.cpp                       |    8 
 src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c          |   18 -
 src/mesa/drivers/dri/i965/brw_vec4.cpp                     |    3 
 src/mesa/drivers/dri/i965/gen6_clip_state.c                |    4 
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c          |    4 
 src/mesa/drivers/dri/i965/gen8_depth_state.c               |   20 +
 src/mesa/drivers/dri/i965/gen8_draw_upload.c               |    6 
 src/mesa/drivers/dri/i965/gen8_misc_state.c                |    2 
 src/mesa/drivers/dri/i965/gen8_surface_state.c             |    4 
 src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp          |   16 -
 src/mesa/main/clear.c                                      |    5 
 src/mesa/main/get.c                                        |    6 
 src/mesa/program/program.c                                 |    1 
 44 files changed, 459 insertions(+), 63 deletions(-)

New commits:
commit 623e68fb1ba75063f6bccfc17048fffb4ef3acf1
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Jun 24 21:30:02 2014 -0700

    docs: Add release notes for 10.2.2 release
    
    Which is ready to go.

diff --git a/docs/relnotes/10.2.2.html b/docs/relnotes/10.2.2.html
new file mode 100644
index 0000000..ebc0b35
--- /dev/null
+++ b/docs/relnotes/10.2.2.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <title>Mesa Release Notes</title>
+  <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+  <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.2.2 Release Notes / June 24, 2014</h1>
+
+<p>
+Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1 release.
+</p>
+<p>
+Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372";>Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452";>Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005";>Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865";>Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581";>Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029";>Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729";>Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907";>Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115";>Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Adrian Negreanu (8):</p>
+<ul>
+  <li>add megadriver_stub_FILES</li>
+  <li>android: adapt to the megadriver mechanism</li>
+  <li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
+  <li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
+  <li>android, egl: add correct drm include for libmesa_egl_dri2</li>
+  <li>android, egl: typo dri2_fallback_pixmap_surface -&gt; dri2_fallback_create_pixmap_surface</li>
+  <li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
+  <li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
+</ul>
+
+<p>Carl Worth (1):</p>
+<ul>
+  <li>Update VERSION to 10.2.2</li>
+</ul>
+
+<p>Daniel Manjarres (1):</p>
+<ul>
+  <li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
+</ul>
+
+<p>Emil Velikov (3):</p>
+<ul>
+  <li>targets/xa: limit the amount of exported symbols</li>
+  <li>configure: error out when building opencl without LLVM</li>
+  <li>configure: correctly autodetect xvmc/vdpau/omx</li>
+</ul>
+
+<p>Grigori Goronzy (1):</p>
+<ul>
+  <li>radeon/uvd: disable VC-1 simple/main on UVD 2.x</li>
+</ul>
+
+<p>Iago Toral Quiroga (1):</p>
+<ul>
+  <li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
+</ul>
+
+<p>Ian Romanick (3):</p>
+<ul>
+  <li>docs: Add initial 10.2.1 release notes</li>
+  <li>docs: Add MD5 checksum, etc. for 10.2.1 release</li>
+  <li>meta: Respect the driver's maximum number of draw buffers</li>
+</ul>
+
+<p>Ilia Mirkin (7):</p>
+<ul>
+  <li>gk110/ir: emit saturate flag on fadd when needed</li>
+  <li>gk110/ir: fix emitting constbuf file index</li>
+  <li>gk110/ir: fix bfind emission</li>
+  <li>nv50: make sure to mark first scissor dirty after blit</li>
+  <li>nv30: plug some memory leaks on screen destroy and shader compile</li>
+  <li>nv30: avoid dangling references to deleted contexts</li>
+  <li>nv30: hack to avoid errors on unexpected color/zeta combinations</li>
+</ul>
+
+<p>Jason Ekstrand (1):</p>
+<ul>
+  <li>meta_blit: properly compute texture width for the CopyTexSubImage fallback</li>
+</ul>
+
+<p>José Fonseca (1):</p>
+<ul>
+  <li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
+</ul>
+
+<p>Kenneth Graunke (9):</p>
+<ul>
+  <li>i965: Don't use the head sentinel as an fs_inst in Gen4 workaround code.</li>
+  <li>i965: Invalidate live intervals when inserting Gen4 SEND workarounds.</li>
+  <li>i965/vec4: Fix dead code elimination for VGRFs of size &gt; 1.</li>
+  <li>i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.</li>
+  <li>i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.</li>
+  <li>i965: Add missing newlines to a few perf_debug messages.</li>
+  <li>i965/vec4: Use the sampler for pull constant loads on Broadwell.</li>
+  <li>i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.</li>
+  <li>i965: Save meta stencil blit programs in the context.</li>
+</ul>
+
+<p>Kristian Høgsberg (1):</p>
+<ul>
+  <li>mesa: Remove glClear optimization based on drawable size</li>
+</ul>
+
+<p>Michel Dänzer (1):</p>
+<ul>
+  <li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
+</ul>
+
+<p>Neil Roberts (1):</p>
+<ul>
+  <li>i965: Set the fast clear color value for texture surfaces</li>
+</ul>
+
+<p>Tom Stellard (2):</p>
+<ul>
+  <li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
+  <li>clover: Don't use llvm's global context</li>
+</ul>
+
+<p>Ville Syrjälä (1):</p>
+<ul>
+  <li>i915: Fix gen2 texblend setup</li>
+</ul>
+
+
+</div>
+</body>
+</html>

commit a9750ff7b58409fc55092160b6706fbfa6564fda
Author: Carl Worth <cworth@cworth.org>
Date:   Tue Jun 24 21:26:25 2014 -0700

    Update VERSION to 10.2.2
    
    In preparation for the 10.2.2 release.

diff --git a/VERSION b/VERSION
index 26ee5b0..68e8fce 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.2.1
+10.2.2

commit 274be620a8be7786e0ab11fda9e47a04ca5e9efc
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Jun 16 20:54:32 2014 +0300

    i915: Fix gen2 texblend setup
    
    Fix an off by one in the texture unit walk during texblend
    setup on gen2. This caused the last enabled texunit to be
    skipped resulting in totally messed up texturing.
    
    This is a regression introduced here:
     commit 1ad443ecdd694dd9bf3c4a5050d749fb80db6fa2
     Author: Eric Anholt <eric@anholt.net>
     Date:   Wed Apr 23 15:35:27 2014 -0700
    
        i915: Redo texture unit walking on i830.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    (cherry picked from commit ca55a1aaa78a79ed0bc4b2410d4a8b52ef05c5b2)

diff --git a/src/mesa/drivers/dri/i915/i830_texblend.c b/src/mesa/drivers/dri/i915/i830_texblend.c
index 6e991c4..236be59 100644
--- a/src/mesa/drivers/dri/i915/i830_texblend.c
+++ b/src/mesa/drivers/dri/i915/i830_texblend.c
@@ -445,7 +445,7 @@ i830EmitTextureBlend(struct i830_context *i830)
    I830_ACTIVESTATE(i830, I830_UPLOAD_TEXBLEND_ALL, false);
 
    if (ctx->Texture._MaxEnabledTexImageUnit != -1) {
-      for (unit = 0; unit < ctx->Texture._MaxEnabledTexImageUnit; unit++)
+      for (unit = 0; unit <= ctx->Texture._MaxEnabledTexImageUnit; unit++)
          if (ctx->Texture.Unit[unit]._Current)
             emit_texblend(i830, unit, blendunit++,
                           unit == ctx->Texture._MaxEnabledTexImageUnit);

commit 5751b661add600c520ece327c1198b179efbb731
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Wed Jun 18 22:25:33 2014 -0700

    i965: Save meta stencil blit programs in the context.
    
    When the last context in a share group is destroyed, the hash table
    containing all of the shader programs (ctx->Shared->ShaderObjects) is
    destroyed, throwing away all of the shader programs.
    
    Using a static variable to store program IDs ends up holding on to them
    after this, so we think we still have a compiled program, when it
    actually got destroyed.  _mesa_UseProgram then hits GL errors, since no
    program by that ID exists.
    
    Instead, store the program IDs in the context, so we know to recompile
    if our context gets destroyed and the application creates another one.
    
    Fixes es3conform tests when run without -minfmt (where it creates
    separate contexts for testing each visual).
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77865
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit a20994d61677adea7f15facbc6bb025f32b37c93)
    
    Conflicts:
    	src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c

diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index a9adbf2..f54cadc 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -1115,6 +1115,9 @@ struct brw_context
 
    struct brw_cache cache;
 
+   /** IDs for meta stencil blit shader programs. */
+   unsigned meta_stencil_blit_programs[2];
+
    /* Whether a meta-operation is in progress. */
    bool meta_in_progress;
 
diff --git a/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c b/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
index 842ebf9..021f485 100644
--- a/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
+++ b/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
@@ -272,28 +272,30 @@ setup_coord_transform(GLuint prog, const struct blit_dims *dims)
 }
 
 static GLuint
-setup_program(struct gl_context *ctx, bool msaa_tex)
+setup_program(struct brw_context *brw, bool msaa_tex)
 {
+   struct gl_context *ctx = &brw->ctx;
    struct blit_state *blit = &ctx->Meta->Blit;
-   static GLuint prog_cache[] = { 0, 0 };
    const char *fs_source;
    const struct sampler_and_fetch *sampler = &samplers[msaa_tex];
 
    _mesa_meta_setup_vertex_objects(&blit->VAO, &blit->VBO, true, 2, 2, 0);
 
-   if (prog_cache[msaa_tex]) {
-      _mesa_UseProgram(prog_cache[msaa_tex]);
-      return prog_cache[msaa_tex];
+   GLuint *prog_id = &brw->meta_stencil_blit_programs[msaa_tex];
+
+   if (*prog_id) {
+      _mesa_UseProgram(*prog_id);
+      return *prog_id;
    }
   
    fs_source = ralloc_asprintf(NULL, fs_tmpl, sampler->sampler,
                                sampler->fetch);
    _mesa_meta_compile_and_link_program(ctx, vs_source, fs_source,
                                        "i965 stencil blit",
-                                       &prog_cache[msaa_tex]);
+                                       prog_id);
    ralloc_free(fs_source);
 
-   return prog_cache[msaa_tex];
+   return *prog_id;
 }
 
 /**
@@ -427,7 +429,7 @@ brw_meta_stencil_blit(struct brw_context *brw,
    _mesa_TexParameteri(target, GL_DEPTH_STENCIL_TEXTURE_MODE,
                        GL_STENCIL_INDEX);
 
-   prog = setup_program(ctx, target != GL_TEXTURE_2D);
+   prog = setup_program(brw, target != GL_TEXTURE_2D);
    setup_bounding_rect(prog, orig_dims);
    setup_drawing_rect(prog, &dims);
    setup_coord_transform(prog, orig_dims);

commit 282ca8ba98802c3275b04e1253d30f5dbca5add9
Author: Daniel Manjarres <danmanj@gmail.com>
Date:   Fri Jun 20 10:51:33 2014 -0700

    glx: Don't crash on swap event for a Window (non-GLXWindow)
    
    Prior to GLX 1.3 there was the glxMakeCurrent() function that took a
    single drawable handle. The Drawable could be either a bare XID for a
    Window or an XID for a glxpixmap.
    
    GLX 1.3 added glxMakeContextCurrent that takes 2 handles: one for
    reading, one for writing. Nowadays the old glxMakeCurrent call is
    implemented as a call to glxMakeContextCurrent with the single handle
    duplicated.
    
    Because of this it is allowed to use a plain-old Window ID as an
    argument to glxMakeContextCurrent, although nobody really documents this
    sort of thing. The manpage for the NEW call specifies the arguments as
    GLXPixmaps, but the actual code accepts Window XIDs too, and handles
    them correctly.
    
    Similarly, the glxSelectEvents function can also take a bare Window XID.
    
    The "piglit" tests all use GLXWindows and/or GLXPixmaps. You never
    tested swap events with a bare Window XID. That is what my app was
    doing.
    
    The swap_events code worked with Window XIDs in mesa 7.x.y. The new code
    added in versions 8, 9, and 10 assumes that all buffer swap events have
    a GLXPixmap associated with them. Because of the historical quirks
    above, this is not true. Swap events for bare Window XIDs do NOT have a
    glxpixmap resulting in a segfault.
    
    Any app that uses the old school glxMakeCurrent call with a Window XID
    while trying to use swap_events will crash when the libs try to lookup
    the nonexistent GLXPixmap associated with the incoming swap event.
    
    I believe that the people who wrote the spec overlooked this, because
    the "sbc" field comes from the OML_sync extension that is defined in
    terms of glxpixmaps only.
    
    v2 (idr): Formatting changes.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54372
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 86bd2196b4ccec50443e99e6c8bf1659e1df9f37)

diff --git a/src/glx/dri2.c b/src/glx/dri2.c
index 7cb9d2d..cc6c164 100644
--- a/src/glx/dri2.c
+++ b/src/glx/dri2.c
@@ -131,10 +131,14 @@ DRI2WireToEvent(Display *dpy, XEvent *event, xEvent *wire)
       aevent->msc = ((CARD64)awire->msc_hi << 32) | awire->msc_lo;
 
       glxDraw = GetGLXDrawable(dpy, pdraw->drawable);
-      if (awire->sbc < glxDraw->lastEventSbc)
-	 glxDraw->eventSbcWrap += 0x100000000;
-      glxDraw->lastEventSbc = awire->sbc;
-      aevent->sbc = awire->sbc + glxDraw->eventSbcWrap;
+      if (glxDraw != NULL) {
+         if (awire->sbc < glxDraw->lastEventSbc)
+            glxDraw->eventSbcWrap += 0x100000000;
+         glxDraw->lastEventSbc = awire->sbc;
+         aevent->sbc = awire->sbc + glxDraw->eventSbcWrap;
+      } else {
+         aevent->sbc = awire->sbc;
+      }
 
       return True;
    }

commit c50fa76c7e7977fc1767881c5007ece1bc8cf03e
Author: Iago Toral Quiroga <itoral@igalia.com>
Date:   Mon Jun 16 17:00:15 2014 +0200

    mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.
    
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 96a95f48eaf8af2c6ace51531bdd5bfbcf71165e)

diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c
index b7332fc..988def1 100644
--- a/src/mesa/program/program.c
+++ b/src/mesa/program/program.c
@@ -552,6 +552,7 @@ _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog)
          gpc->InputType = gp->InputType;
          gpc->Invocations = gp->Invocations;
          gpc->OutputType = gp->OutputType;
+         gpc->UsesEndPrimitive = gp->UsesEndPrimitive;
       }
       break;
    default:

commit ad9264366a996dfa019525629e7438af5b62ec42
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Tue Jun 17 08:12:06 2014 -0700

    clover: Don't use llvm's global context
    
    An LLVMContext should only be accessed by a single and using the global
    context was causing crashes in multi-threaded environments.  Now we use
    a separate context for each compile.
    
    Reviewed-by: Francisco Jerez <currojerez@riseup.net>
    
    CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 4aa128a123d7285677a527e724809339f15d33a7)

diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 0148721..c3daa81 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -117,12 +117,13 @@ namespace {
 #endif
 
    llvm::Module *
-   compile(const std::string &source, const std::string &name,
-           const std::string &triple, const std::string &processor,
-           const std::string &opts, clang::LangAS::Map& address_spaces) {
+   compile(llvm::LLVMContext &llvm_ctx, const std::string &source,
+           const std::string &name, const std::string &triple,
+           const std::string &processor, const std::string &opts,
+           clang::LangAS::Map& address_spaces) {
 
       clang::CompilerInstance c;
-      clang::EmitLLVMOnlyAction act(&llvm::getGlobalContext());
+      clang::EmitLLVMOnlyAction act(&llvm_ctx);
       std::string log;
       llvm::raw_string_ostream s_log(log);
       std::string libclc_path = LIBCLC_LIBEXECDIR + processor + "-"
@@ -399,10 +400,12 @@ clover::compile_program_llvm(const compat::string &source,
                       target.size() - processor_str_len - 1);
    clang::LangAS::Map address_spaces;
 
+   llvm::LLVMContext llvm_ctx;
+
    // The input file name must have the .cl extension in order for the
    // CompilerInvocation class to recognize it as an OpenCL source file.
-   llvm::Module *mod = compile(source, "input.cl", triple, processor, opts,
-                                                                address_spaces);
+   llvm::Module *mod = compile(llvm_ctx, source, "input.cl", triple, processor,
+                               opts, address_spaces);
 
    find_kernels(mod, kernels);
 

commit 855adad13229d8e5c7da9bcb04b819009d34cb21
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Mon May 12 16:32:29 2014 -0400

    clover: Prevent Clang from printing number of errors and warnings to stderr.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=78581
    
    CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 0cc391f0136c1532701a04c9b2f3a4cc49f25e8c)

diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 82e262f..0148721 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -187,6 +187,11 @@ namespace {
       c.getLangOpts().NoBuiltin = true;
       c.getTargetOpts().Triple = triple;
       c.getTargetOpts().CPU = processor;
+
+      // This is a workaround for a Clang bug which causes the number
+      // of warnings and errors to be printed to stderr.
+      // http://www.llvm.org/bugs/show_bug.cgi?id=19735
+      c.getDiagnosticOpts().ShowCarets = false;
 #if HAVE_LLVM <= 0x0301
       c.getInvocation().setLangDefaults(clang::IK_OpenCL);
 #else

commit 3568cf8128a28f8c860fa2a4c5bbf75c2e090c7e
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Tue Jun 17 23:28:56 2014 -0400

    nv30: hack to avoid errors on unexpected color/zeta combinations
    
    This is just a hack, it should be possible to create a temporary zeta
    surface and render to that instead. However that's more complicated and
    this avoids the render being entirely broken and errors being reported
    by the card.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 25182e249e50b0fce41d975ae2b3c9cbdb8d0ef3)

diff --git a/src/gallium/drivers/nouveau/nv30/nv30_state.c b/src/gallium/drivers/nouveau/nv30/nv30_state.c
index 64be1b7..708ba34 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_state.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_state.c
@@ -23,6 +23,7 @@
  *
  */
 
+#include "util/u_format.h"
 #include "util/u_helpers.h"
 #include "util/u_inlines.h"
 
@@ -360,6 +361,22 @@ nv30_set_framebuffer_state(struct pipe_context *pipe,
 
     nv30->framebuffer = *fb;
     nv30->dirty |= NV30_NEW_FRAMEBUFFER;
+
+   /* Hardware can't handle different swizzled-ness or different blocksizes
+    * for zs and cbufs. If both are supplied and something doesn't match,
+    * blank out the zs for now so that at least *some* rendering can occur.
+    */
+    if (fb->nr_cbufs > 0 && fb->zsbuf) {
+       struct nv30_miptree *color_mt = nv30_miptree(fb->cbufs[0]->texture);
+       struct nv30_miptree *zeta_mt = nv30_miptree(fb->zsbuf->texture);
+
+       if (color_mt->swizzled != zeta_mt->swizzled ||
+           (util_format_get_blocksize(fb->zsbuf->format) > 2) !=
+           (util_format_get_blocksize(fb->cbufs[0]->format) > 2)) {
+          nv30->framebuffer.zsbuf = NULL;
+          debug_printf("Mismatched color and zeta formats, ignoring zeta.\n");
+       }
+    }
 }
 
 static void

commit aca2d98c35b795bd7124527bd320e0d10adcf658
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Tue Jun 17 22:32:03 2014 -0400

    nv30: avoid dangling references to deleted contexts
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit c092c46b27c6f6a6674e8d67fb3afdb684811819)

diff --git a/src/gallium/drivers/nouveau/nv30/nv30_context.c b/src/gallium/drivers/nouveau/nv30/nv30_context.c
index f325c5c..617b088 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_context.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_context.c
@@ -165,6 +165,9 @@ nv30_context_destroy(struct pipe_context *pipe)
    if (nv30->draw)
       draw_destroy(nv30->draw);
 
+   if (nv30->screen->base.pushbuf->user_priv == &nv30->bufctx)
+      nv30->screen->base.pushbuf->user_priv = NULL;
+
    nouveau_bufctx_del(&nv30->bufctx);
 
    if (nv30->screen->cur_ctx == nv30)

commit 08317fa9c4183e051d16f65eead742a39fd83014
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Tue Jun 17 22:22:56 2014 -0400

    nv30: plug some memory leaks on screen destroy and shader compile
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 5af80f62680b8321c3af565bb57138a71429502c)

diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index 53ca985..4d0b263 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -325,6 +325,12 @@ nv30_screen_destroy(struct pipe_screen *pscreen)
       nouveau_fence_ref(NULL, &screen->base.fence.current);
    }
 
+   nouveau_bo_ref(NULL, &screen->notify);
+
+   nouveau_heap_destroy(&screen->query_heap);
+   nouveau_heap_destroy(&screen->vp_exec_heap);
+   nouveau_heap_destroy(&screen->vp_data_heap);
+
    nouveau_object_del(&screen->query);
    nouveau_object_del(&screen->fence);
    nouveau_object_del(&screen->ntfy);
diff --git a/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c b/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
index 4955226..1f1fba2 100644
--- a/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
+++ b/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
@@ -1225,6 +1225,7 @@ out:
    if(fpc)
    {
       FREE(fpc->r_temp);
+      FREE(fpc->r_imm);
       util_dynarray_fini(&fpc->if_stack);
       util_dynarray_fini(&fpc->label_relocs);
       util_dynarray_fini(&fpc->imm_data);

commit 4d0c445af6e600be6912da6bbaecc8c1642ed56c
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Tue Jun 17 11:14:17 2014 -0700

    meta: Respect the driver's maximum number of draw buffers
    
    Commit c1c1cf5f9 added infrastructure for saving and restoring draw
    buffer state.  However, it universially used MAX_DRAW_BUFFERS, but many
    drivers support far fewer than that at limit.  For example, the radeon
    and i915 drivers only support 1.  Using MAX_DRAW_BUFFERS causes meta to
    generate GL errors.
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80115
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Tested-by: Kenneth Graunke <kenneth@whitecape.org> [on Broadwell]
    Tested-by: jpsinthemix@verizon.net
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit cc219d1d6567cfada5d8e9adf01c2f00e00c93ca)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index fec0d2b..6c26984 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -801,7 +801,7 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
       int buf, real_color_buffers = 0;
       memset(save->ColorDrawBuffers, 0, sizeof(save->ColorDrawBuffers));
 
-      for (buf = 0; buf < MAX_DRAW_BUFFERS; buf++) {
+      for (buf = 0; buf < ctx->Const.MaxDrawBuffers; buf++) {
          int buf_index = ctx->DrawBuffer->_ColorDrawBufferIndexes[buf];
          if (buf_index == -1)
             continue;
@@ -1213,7 +1213,7 @@ _mesa_meta_end(struct gl_context *ctx)
       _mesa_BindRenderbuffer(GL_RENDERBUFFER, save->RenderbufferName);
 
    if (state & MESA_META_DRAW_BUFFERS) {
-      _mesa_DrawBuffers(MAX_DRAW_BUFFERS, save->ColorDrawBuffers);
+      _mesa_DrawBuffers(ctx->Const.MaxDrawBuffers, save->ColorDrawBuffers);
    }
 
    ctx->Meta->SaveStackDepth--;

commit 9ad103d6647e95fda12717e00abeec67abfccbf0
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Mon May 12 15:46:11 2014 -0700

    mesa: Remove glClear optimization based on drawable size
    
    A drawable size of 0x0 means that we don't have buffers for a drawable yet,
    not that we have a zero-sized buffer.  Core mesa shouldn't be optimizing out
    drawing based on buffer size, since the draw call could be what triggers
    the driver to go and get buffers.  As discussed in the referenced bug report,
    the optimization was added as part of a scatter-shot attempt to fix a
    different problem.  There's no other example in mesa core of using the
    buffer size in this way.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74005
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 7928b946adbcbbb835c0080967bbb538f6bd35dc)

diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
index 9df1f5e..cf93418 100644
--- a/src/mesa/main/clear.c
+++ b/src/mesa/main/clear.c
@@ -180,11 +180,6 @@ _mesa_Clear( GLbitfield mask )
       return;
    }
 
-   if (ctx->DrawBuffer->Width == 0 || ctx->DrawBuffer->Height == 0 ||
-       ctx->DrawBuffer->_Xmin >= ctx->DrawBuffer->_Xmax ||
-       ctx->DrawBuffer->_Ymin >= ctx->DrawBuffer->_Ymax)
-      return;
-
    if (ctx->RasterDiscard)
       return;
 

commit 12fcbcde47e360e87c7f8525b271fd8d52c418bf
Author: Grigori Goronzy <greg@chown.ath.cx>
Date:   Wed Jun 4 18:54:38 2014 +0200

    radeon/uvd: disable VC-1 simple/main on UVD 2.x
    
    It's about as broken as on later UVD revisions.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66452
    Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
    
    Reviewed-by: Christian König <christian.koenig@amd.com>
    (cherry picked from commit 6cd30f5d730c3c23251a8e72e17fe65810460764)

diff --git a/src/gallium/drivers/radeon/radeon_video.c b/src/gallium/drivers/radeon/radeon_video.c
index 63bd805..eae533e 100644
--- a/src/gallium/drivers/radeon/radeon_video.c
+++ b/src/gallium/drivers/radeon/radeon_video.c
@@ -242,7 +242,10 @@ int rvid_get_video_param(struct pipe_screen *screen,
 		switch (param) {
 		case PIPE_VIDEO_CAP_SUPPORTED:
 			/* no support for MPEG4 */
-			return codec != PIPE_VIDEO_FORMAT_MPEG4;
+			return codec != PIPE_VIDEO_FORMAT_MPEG4 &&
+			       /* FIXME: VC-1 simple/main profile is broken */
+			       profile != PIPE_VIDEO_PROFILE_VC1_SIMPLE &&
+			       profile != PIPE_VIDEO_PROFILE_VC1_MAIN;
 		case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
 		case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
 			/* and MPEG2 only with shaders */

commit d8e3158a43813b8824652d61134f775d0bf9d071
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sat Jun 14 13:23:47 2014 -0400

    nv50: make sure to mark first scissor dirty after blit
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit af05270ccfaa15fde9845a2250922caa8902c0fe)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c
index 6e68fb8..600f4f9 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c
@@ -1106,6 +1106,7 @@ nv50_blitctx_post_blit(struct nv50_blitctx *blit)
        NV50_NEW_RASTERIZER | NV50_NEW_ZSA | NV50_NEW_BLEND |
        NV50_NEW_TEXTURES | NV50_NEW_SAMPLERS |
        NV50_NEW_VERTPROG | NV50_NEW_GMTYPROG | NV50_NEW_FRAGPROG);
+   nv50->scissors_dirty |= 1;
 
    nv50->base.pipe.set_min_samples(&nv50->base.pipe, blit->saved.min_samples);
 }

commit ef5f998b769fa549b54dad6f7bb77ab17c391a73
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Fri Jun 13 15:26:40 2014 -0700

    i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.
    
    Like on Haswell, we need to use 8x4 aligned rectangle primitives for
    hierarchical depth buffer resolves and depth clears.  See the comments
    in brw_blorp.cpp's brw_hiz_op_params() constructor.  (The Broadwell
    documentation confirms that this is still necessary.)
    
    This patch makes the Broadwell code follow the same behavior as Chad and
    Jordan's Gen7 BLORP code.  Based on a patch by Topi Pohjolainen.
    
    This fixes es3conform's framebuffer_blit_functionality_scissor_blit
    test, with no Piglit regressions.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 49659ad90c501ae584b7d76ca98f35a8f57d40fe)

diff --git a/src/mesa/drivers/dri/i965/gen8_depth_state.c b/src/mesa/drivers/dri/i965/gen8_depth_state.c
index 8c70c62..f538d23 100644
--- a/src/mesa/drivers/dri/i965/gen8_depth_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_depth_state.c
@@ -225,6 +225,13 @@ gen8_hiz_exec(struct brw_context *brw, struct intel_mipmap_tree *mt,
    assert(mt->first_level == 0);
    assert(mt->logical_depth0 >= 1);
 
+   /* If we're operating on LOD 0, align to 8x4 to meet the alignment
+    * requirements for most HiZ operations.  Otherwise, use the actual size
+    * to allow the hardware to calculate the miplevel offsets correctly.
+    */
+   uint32_t surface_width  = ALIGN(mt->logical_width0,  level == 0 ? 8 : 1);
+   uint32_t surface_height = ALIGN(mt->logical_height0, level == 0 ? 4 : 1);
+
    /* The basic algorithm is:
     * - If needed, emit 3DSTATE_{DEPTH,HIER_DEPTH,STENCIL}_BUFFER and
     *   3DSTATE_CLEAR_PARAMS packets to set up the relevant buffers.
@@ -239,14 +246,19 @@ gen8_hiz_exec(struct brw_context *brw, struct intel_mipmap_tree *mt,
                       true, /* depth writes */
                       NULL, false, 0, /* no stencil for now */
                       true, /* hiz */
-                      mt->logical_width0,
-                      mt->logical_height0,
+                      surface_width,
+                      surface_height,
                       mt->logical_depth0,
                       level,
                       layer); /* min_array_element */
 
-   unsigned rect_width = minify(mt->logical_width0, level);
-   unsigned rect_height = minify(mt->logical_height0, level);
+   /* Depth buffer clears and HiZ resolves must use an 8x4 aligned rectangle.
+    * Note that intel_miptree_level_enable_hiz disables HiZ for miplevels > 0
+    * which aren't 8x4 aligned, so expanding the size is safe - it'll just
+    * draw into empty padding space.
+    */
+   unsigned rect_width = ALIGN(minify(mt->logical_width0, level), 8);
+   unsigned rect_height = ALIGN(minify(mt->logical_height0, level), 4);
 
    BEGIN_BATCH(4);
    OUT_BATCH(_3DSTATE_DRAWING_RECTANGLE << 16 | (4 - 2));

commit 31dd2a6f18eb441c310148336b410b2f6bafde04
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Sat Jun 14 12:58:03 2014 -0700

    i965/vec4: Use the sampler for pull constant loads on Broadwell.
    
    We've used the LD sampler message for pull constant loads on earlier
    hardware for some time, and also were already using it for the FS on
    Broadwell.  This patch makes us use it for Broadwell VS/GS as well.
    
    I believe that when I wrote this code in 2012, we still used the data
    port in some cases, and I somehow neglected to convert it while
    rebasing.
    
    Improves performance in GLBenchmark 2.7 Egypt by 416.978% +/- 2.25821%
    (n = 17).  Many other applications should benefit similarly: this speeds
    up uniform array access in the VS, which is commonly used for skinning
    shaders, among other things.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
    Tested-by: Ben Widawsky <ben@bwidawsk.net>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 5d8e246ac86b4a94a0c2cf2bc707eceb3fe20cb6)

diff --git a/src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp b/src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp
index 1d83312..00cb172 100644
--- a/src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp
+++ b/src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp
@@ -443,14 +443,14 @@ gen8_vec4_generator::generate_pull_constant_load(vec4_instruction *inst,
    gen8_instruction *send = next_inst(BRW_OPCODE_SEND);
    gen8_set_dst(brw, send, dst);
    gen8_set_src0(brw, send, offset);
-   gen8_set_dp_message(brw, send, GEN7_SFID_DATAPORT_DATA_CACHE,
-                       surf_index,
-                       GEN6_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ,
-                       0,      /* message control */
-                       1,      /* mlen */
-                       1,      /* rlen */
-                       false,  /* no header */
-                       false); /* EOT */
+   gen8_set_sampler_message(brw, send,
+                            surf_index,
+                            0, /* The LD message ignores the sampler unit. */
+                            GEN5_SAMPLER_MESSAGE_SAMPLE_LD,
+                            1,      /* rlen */
+                            1,      /* mlen */
+                            false,  /* no header */
+                            BRW_SAMPLER_SIMD_MODE_SIMD4X2);
 
    brw_mark_surface_used(&prog_data->base, surf_index);
 }

commit c07485eab198769b83d15d67e9d8a3999cee966b
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Sat Jun 14 01:43:28 2014 -0700

    i965: Add missing newlines to a few perf_debug messages.
    
    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 847abaccc04026b5c150748b6484061f2f8b3165)

diff --git a/src/mesa/drivers/dri/i965/gen6_clip_state.c b/src/mesa/drivers/dri/i965/gen6_clip_state.c
index 0ba190e..25dfb60 100644
--- a/src/mesa/drivers/dri/i965/gen6_clip_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_clip_state.c
@@ -106,7 +106,7 @@ upload_clip_state(struct brw_context *brw)
          dw2 &= ~GEN6_CLIP_GB_TEST;
          if (brw->gen >= 8) {
             perf_debug("Disabling GB clipping due to lack of Gen8 viewport "
-                       "clipping setup code.  This should be fixed.");
+                       "clipping setup code.  This should be fixed.\n");
          }
          break;
       }
@@ -116,7 +116,7 @@ upload_clip_state(struct brw_context *brw)
    if (ctx->RasterDiscard) {
       dw2 |= GEN6_CLIP_MODE_REJECT_ALL;
       perf_debug("Rasterizer discard is currently implemented via the clipper; "
-                 "%s be faster.", brw->gen >= 7 ? "using the SOL unit may" :
+                 "%s be faster.\n", brw->gen >= 7 ? "using the SOL unit may" :
                  "having the GS not write primitives would likely");
    }
 

commit 3b941857eeb452638a4d73c66049a00bb0558551
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Sat Jun 14 01:43:27 2014 -0700

    i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.
    
    I actually added MOCS support for these things, but forgot to delete the
    corresponding perf_debug() warnings.
    
    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 d053a05ef3c0aa491d485074e48a6715d7018f9c)

diff --git a/src/mesa/drivers/dri/i965/gen8_draw_upload.c b/src/mesa/drivers/dri/i965/gen8_draw_upload.c
index 05a9c06..4d62739 100644
--- a/src/mesa/drivers/dri/i965/gen8_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/gen8_draw_upload.c
@@ -94,8 +94,6 @@ gen8_emit_vertices(struct brw_context *brw)
    if (brw->vb.nr_buffers) {
       assert(brw->vb.nr_buffers <= 33);
 
-      perf_debug("Missing MOCS setup for 3DSTATE_VERTEX_BUFFERS.");
-
       BEGIN_BATCH(1 + 4*brw->vb.nr_buffers);
       OUT_BATCH((_3DSTATE_VERTEX_BUFFERS << 16) | (4*brw->vb.nr_buffers - 1));
       for (unsigned i = 0; i < brw->vb.nr_buffers; i++) {
diff --git a/src/mesa/drivers/dri/i965/gen8_misc_state.c b/src/mesa/drivers/dri/i965/gen8_misc_state.c
index 44966e0..3c27c1a 100644
--- a/src/mesa/drivers/dri/i965/gen8_misc_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_misc_state.c


Reply to: