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

mesa: Changes to 'ubuntu'



 VERSION                                                       |    2 
 bin/.cherry-ignore                                            |    9 
 configure.ac                                                  |   56 +-
 debian/changelog                                              |   38 +
 debian/control                                                |   10 
 debian/patches/cso-fix-sampler-view-count.patch               |   43 -
 debian/patches/egl-platform-mir.patch                         |    8 
 debian/patches/series                                         |    3 
 debian/patches/svga-move-dirty-buffers.patch                  |   47 -
 debian/patches/svga-replace-sampler-assertion.patch           |   96 ---
 docs/relnotes/10.1.1.html                                     |  254 ++++++++++
 docs/relnotes/10.1.2.html                                     |  176 ++++++
 include/c11/threads_posix.h                                   |    2 
 include/c11/threads_win32.h                                   |   38 +
 include/pci_ids/pci_id_driver_map.h                           |   81 ---
 scons/gallium.py                                              |    5 
 src/egl/drivers/dri2/egl_dri2.c                               |    4 
 src/egl/drivers/dri2/platform_drm.c                           |    7 
 src/egl/drivers/dri2/platform_wayland.c                       |    2 
 src/gallium/auxiliary/cso_cache/cso_context.c                 |    7 
 src/gallium/auxiliary/draw/draw_pipe_pstipple.c               |    3 
 src/gallium/auxiliary/util/u_blitter.c                        |    2 
 src/gallium/auxiliary/util/u_gen_mipmap.c                     |   48 -
 src/gallium/auxiliary/util/u_math.h                           |    4 
 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp |   14 
 src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp            |    2 
 src/gallium/drivers/nouveau/nouveau_vp3_video.c               |    6 
 src/gallium/drivers/nouveau/nv30/nv30_screen.c                |   14 
 src/gallium/drivers/nouveau/nv50/nv50_screen.c                |   11 
 src/gallium/drivers/nouveau/nv50/nv50_state.c                 |    3 
 src/gallium/drivers/nouveau/nv50/nv50_surface.c               |   12 
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c                |    9 
 src/gallium/drivers/r300/r300_blit.c                          |    4 
 src/gallium/drivers/r300/r300_context.h                       |   14 
 src/gallium/drivers/r300/r300_emit.c                          |   25 
 src/gallium/drivers/r300/r300_state.c                         |   46 +
 src/gallium/drivers/r600/evergreen_state.c                    |   82 +--
 src/gallium/drivers/r600/evergreend.h                         |    3 
 src/gallium/drivers/r600/r600_blit.c                          |   12 
 src/gallium/drivers/r600/r600_hw_context.c                    |   13 
 src/gallium/drivers/r600/r600_pipe.c                          |   14 
 src/gallium/drivers/r600/r600_pipe.h                          |   36 +
 src/gallium/drivers/r600/r600_shader.c                        |  161 +++++-
 src/gallium/drivers/r600/r600_shader.h                        |    1 
 src/gallium/drivers/r600/r600_state.c                         |   72 +-
 src/gallium/drivers/r600/r600_state_common.c                  |   19 
 src/gallium/drivers/r600/r600d.h                              |    6 
 src/gallium/drivers/radeon/r600_texture.c                     |    6 
 src/gallium/drivers/radeonsi/si_pipe.c                        |    9 
 src/gallium/drivers/softpipe/sp_texture.c                     |    6 
 src/gallium/drivers/svga/svga_context.c                       |    4 
 src/gallium/drivers/svga/svga_state_fs.c                      |   36 +
 src/gallium/drivers/svga/svga_state_tss.c                     |    2 
 src/gallium/include/pipe/p_config.h                           |   10 
 src/gallium/state_trackers/osmesa/osmesa.c                    |   11 
 src/gallium/state_trackers/xa/xa_context.c                    |   18 
 src/gallium/state_trackers/xa/xa_renderer.c                   |   11 
 src/gallium/targets/haiku-softpipe/GalliumContext.cpp         |   12 
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c             |    3 
 src/gallium/winsys/svga/drm/vmw_screen.h                      |    4 
 src/gallium/winsys/svga/drm/vmw_screen_dri.c                  |    7 
 src/gallium/winsys/svga/drm/vmw_screen_ioctl.c                |   76 ++
 src/gallium/winsys/svga/drm/vmw_screen_pools.c                |   18 
 src/gallium/winsys/svga/drm/vmwgfx_drm.h                      |   13 
 src/gbm/backends/dri/gbm_dri.c                                |    2 
 src/glsl/ast_to_hir.cpp                                       |  120 +++-
 src/glsl/glsl_parser_extras.cpp                               |   56 +-
 src/glsl/glsl_parser_extras.h                                 |   13 
 src/glsl/link_uniform_block_active_visitor.cpp                |    8 
 src/glsl/link_uniform_block_active_visitor.h                  |    3 
 src/glsl/link_uniform_blocks.cpp                              |   14 
 src/glsl/link_uniform_initializers.cpp                        |  119 +++-
 src/glsl/linker.cpp                                           |  169 ++++++
 src/glsl/lower_ubo_reference.cpp                              |   10 
 src/glsl/opt_vectorize.cpp                                    |    1 
 src/glx/dri2.h                                                |    8 
 src/glx/dri2_glx.c                                            |   20 
 src/glx/dri2_query_renderer.c                                 |   43 +
 src/glx/dri3_glx.c                                            |   10 
 src/glx/dri3_priv.h                                           |    1 
 src/glx/glxext.c                                              |    4 
 src/loader/Makefile.sources                                   |    3 
 src/loader/loader.c                                           |   11 
 src/loader/pci_id_driver_map.c                                |   55 ++
 src/loader/pci_id_driver_map.h                                |   85 +++
 src/mapi/u_thread.h                                           |   18 
 src/mesa/drivers/dri/common/megadriver_stub.c                 |    4 
 src/mesa/drivers/dri/i965/brw_context.c                       |   12 
 src/mesa/drivers/dri/i965/brw_context.h                       |   12 
 src/mesa/drivers/dri/i965/brw_draw.c                          |   24 
 src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp     |    8 
 src/mesa/drivers/dri/i965/brw_misc_state.c                    |   13 
 src/mesa/drivers/dri/i965/brw_vec4.cpp                        |    8 
 src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp       |   21 
 src/mesa/drivers/dri/i965/gen7_sol_state.c                    |   21 
 src/mesa/drivers/dri/i965/intel_batchbuffer.c                 |    4 
 src/mesa/drivers/dri/i965/intel_extensions.c                  |    1 
 src/mesa/drivers/dri/i965/intel_fbo.c                         |   68 +-
 src/mesa/drivers/dri/i965/intel_fbo.h                         |   12 
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c                 |    2 
 src/mesa/drivers/dri/i965/intel_pixel_read.c                  |    7 
 src/mesa/drivers/dri/i965/intel_screen.c                      |   13 
 src/mesa/drivers/dri/nouveau/nouveau_fbo.c                    |    3 
 src/mesa/drivers/dri/nouveau/nouveau_texture.c                |    1 
 src/mesa/main/bufferobj.c                                     |   12 
 src/mesa/main/fbobject.c                                      |   20 
 src/mesa/main/format_pack.c                                   |    8 
 src/mesa/main/format_unpack.c                                 |  113 ++++
 src/mesa/main/format_unpack.h                                 |   10 
 src/mesa/main/formats.c                                       |    9 
 src/mesa/main/formats.h                                       |    3 
 src/mesa/main/genmipmap.c                                     |    4 
 src/mesa/main/get.c                                           |    6 
 src/mesa/main/getstring.c                                     |    2 
 src/mesa/main/glformats.c                                     |   16 
 src/mesa/main/imports.h                                       |    2 
 src/mesa/main/mipmap.c                                        |   44 -
 src/mesa/main/mtypes.h                                        |   15 
 src/mesa/main/shader_query.cpp                                |   71 ++
 src/mesa/main/streaming-load-memcpy.c                         |    3 
 src/mesa/main/texcompress_etc.c                               |   78 ++-
 src/mesa/main/texgetimage.c                                   |   23 
 src/mesa/main/teximage.c                                      |   45 +
 src/mesa/main/texparam.c                                      |   13 
 src/mesa/main/texstore.c                                      |   14 
 src/mesa/main/varray.c                                        |   21 
 src/mesa/main/varray.h                                        |   16 
 src/mesa/state_tracker/st_atom.c                              |    9 
 src/mesa/state_tracker/st_atom_framebuffer.c                  |    6 
 src/mesa/state_tracker/st_atom_texture.c                      |   10 
 src/mesa/state_tracker/st_cb_queryobj.c                       |   18 
 src/mesa/state_tracker/st_context.c                           |   17 
 src/mesa/state_tracker/st_draw.c                              |   10 
 src/mesa/state_tracker/st_gen_mipmap.c                        |    3 
 src/mesa/state_tracker/st_manager.c                           |    7 
 src/mesa/state_tracker/st_program.c                           |    4 
 src/mesa/state_tracker/st_texture.c                           |    7 
 src/mesa/state_tracker/st_texture.h                           |    4 
 src/mesa/swrast/s_blit.c                                      |    8 
 src/mesa/swrast/s_texture.c                                   |   10 
 src/mesa/swrast_setup/ss_context.c                            |    3 
 src/mesa/vbo/vbo_attrib_tmp.h                                 |   45 -
 142 files changed, 2619 insertions(+), 867 deletions(-)

New commits:
commit 12e2822c7e504280988ac3cdc9e3386d4d810e04
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Thu May 8 12:33:09 2014 +0200

    Merge from released debian-unstable.

diff --git a/debian/changelog b/debian/changelog
index baa2f65..20f70f9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mesa (10.1.2-1ubuntu1) UNRELEASED; urgency=low
+
+  * Merge from released debian-unstable.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Thu, 08 May 2014 12:32:52 +0200
+
 mesa (10.1.2-1) unstable; urgency=medium
 
   [ Andreas Boll ]

commit 08e28fd2aeb71c665d27fe7b74cabfb19ac2559f
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue May 6 09:31:28 2014 +0200

    Upload to unstable

diff --git a/debian/changelog b/debian/changelog
index 1f5ee66..362977c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,10 @@
-mesa (10.1.2-1) UNRELEASED; urgency=medium
+mesa (10.1.2-1) unstable; urgency=medium
 
-  * New upstream release. (Closes: #746557)
+  [ Andreas Boll ]
+  * New upstream release.
+    + i965: Don't enable reset notification support on Gen4-5 (Closes: #746557)
 
- -- Andreas Boll <andreas.boll.dev@gmail.com>  Mon, 05 May 2014 23:07:27 +0200
+ -- Julien Cristau <jcristau@debian.org>  Tue, 06 May 2014 09:31:26 +0200
 
 mesa (10.1.1-1) unstable; urgency=low
 

commit 0470d1fbbe3036a42ad2346d1145c28ce410fa6f
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Mon May 5 23:10:18 2014 +0200

    New upstream version.
    
    Closes: #746557

diff --git a/debian/changelog b/debian/changelog
index a22cb9e..1f5ee66 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mesa (10.1.2-1) UNRELEASED; urgency=medium
+
+  * New upstream release. (Closes: #746557)
+
+ -- Andreas Boll <andreas.boll.dev@gmail.com>  Mon, 05 May 2014 23:07:27 +0200
+
 mesa (10.1.1-1) unstable; urgency=low
 
   [ Andreas Boll ]

commit bde31357170e5cbf70795434e9725bb442f31137
Author: Carl Worth <cworth@cworth.org>
Date:   Mon May 5 10:53:53 2014 -0700

    docs: Add notes for the 10.1.2 release.

diff --git a/docs/relnotes/10.1.2.html b/docs/relnotes/10.1.2.html
new file mode 100644
index 0000000..035d9e6
--- /dev/null
+++ b/docs/relnotes/10.1.2.html
@@ -0,0 +1,176 @@
+<!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.1.2 Release Notes / (May 5, 2014)</h1>
+
+<p>
+Mesa 10.1.2 is a bug fix release which fixes bugs found since the 10.1.1 release.
+</p>
+<p>
+Mesa 10.1.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>MD5 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=27499";>Bug 27499</a> - [855GM i915] GL_LINE_STIPPLE displays incorrect colors</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75723";>Bug 75723</a> - (regression since Linux 3.14?) brw_get_graphics_reset_status: Assertion `brw-&gt;hw_ctx != ((void *)0)' failed</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76894";>Bug 76894</a> - Piglit/spec/EXT_framebuffer_object/fbo-bind-renderbuffer failed</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77702";>Bug 77702</a> - [i965 Bisected]Piglit spec/NV_conditional_render_blitframebuffer fails</li>
+
+</ul>
+
+<h2>Changes</h2>
+
+<p>Ander Conselvan de Oliveira (2):</p>
+<ul>
+  <li>gbm/dri: Fix out-of-memory error path in dri_device_create()</li>
+  <li>egl: Protect use of gbm_dri with ifdef HAVE_DRM_PLATFORM</li>
+</ul>
+
+<p>Anuj Phogat (27):</p>
+<ul>
+  <li>mesa: Fix glGetVertexAttribi(GL_VERTEX_ATTRIB_ARRAY_SIZE)</li>
+  <li>swrast: Add glBlitFramebuffer to commands affected by conditional rendering</li>
+  <li>mesa: Fix error condition for multisample proxy texture targets</li>
+  <li>i965: Put an assertion to check valid varying_to_slot[varying]</li>
+  <li>i965: Fix component mask and varying_to_slot mapping for gl_Layer</li>
+  <li>i965: Fix component mask and varying_to_slot mapping for gl_ViewportIndex</li>
+  <li>mesa: Add helper function _mesa_is_format_integer()</li>
+  <li>mesa: Add error condition for integer formats in glGetTexImage()</li>
+  <li>mesa: Add an error condition in glGetFramebufferAttachmentParameteriv()</li>
+  <li>mesa: Fix error code generation in glReadPixels()</li>
+  <li>glsl: Allow overlapping locations for vertex input attributes</li>
+  <li>mesa: Fix querying location of nth element of an array variable</li>
+  <li>mesa: Use location VERT_ATTRIB_GENERIC0 for vertex attribute 0</li>
+  <li>glsl: Compile error if fs defines conflicting qualifiers for gl_FragCoord</li>
+  <li>glsl: Compile error if fs uses gl_FragCoord before first redeclaration</li>
+  <li>mesa: Add entry for extension ARB_texture_stencil8</li>
+  <li>mesa: Add error condition for format=STENCIL_INDEX in glGetTexImage()</li>
+  <li>i965: Fix crash in do_blit_readpixels()</li>
+  <li>mesa: Add missing types in _mesa_texstore_xx_xx() functions</li>
+  <li>mesa: Allow srcFormat=GL_DEPTH_STENCIL in _mesa_texstore_xx_xx() functions</li>
+  <li>mesa: Add new helper function _mesa_unpack_depth_stencil_row()</li>
+  <li>mesa: Add support to unpack depth-stencil texture in to FLOAT_32_UNSIGNED_INT_24_8_REV</li>
+  <li>mesa: Allow FLOAT_32_UNSIGNED_INT_24_8_REV in get_tex_depth_stencil()</li>
+  <li>i965: Add glBlitFramebuffer to commands affected by conditional rendering</li>
+  <li>glsl: Use switch to allow adding more shader types</li>
+  <li>glsl: Link error if fs defines conflicting qualifiers for gl_FragCoord</li>
+  <li>glsl: Apply the link error conditions to GL_ARB_fragment_coord_conventions</li>
+</ul>
+
+<p>Benjamin Bellec (1):</p>
+<ul>
+  <li>mesa: fix GetStringi error message with correct function name</li>
+</ul>
+
+<p>Brian Paul (1):</p>
+<ul>
+  <li>swrast: allocate swrast_texture_image::ImageSlices array if needed</li>
+</ul>
+
+<p>Carl Worth (4):</p>
+<ul>
+  <li>docs: Add the MD5 sums for the 10.1.1 release tar files.</li>
+  <li>cherry-ignore: Ignore a patch causing a regression</li>
+  <li>cherry-ignore: Drop an ignored patch now that piglit has been updated.</li>
+  <li>Update VERSION to 10.1.2</li>
+</ul>
+
+<p>Chris Forbes (1):</p>
+<ul>
+  <li>glsl: Only allow `invariant` on shader in/out between stages.</li>
+</ul>
+
+<p>Eric Anholt (1):</p>
+<ul>
+  <li>i965: Fix render-to-texture in non-FinishRenderTexture cases.</li>
+</ul>
+
+<p>Ian Romanick (1):</p>
+<ul>
+  <li>dri3: Enable GLX_MESA_query_renderer on DRI3 too</li>
+</ul>
+
+<p>Kenneth Graunke (2):</p>
+<ul>
+  <li>i965: Don't enable reset notification support on Gen4-5.</li>
+  <li>i965: Actually emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS.</li>
+</ul>
+
+<p>Marek Olšák (10):</p>
+<ul>
+  <li>r300g: don't crash when getting NULL colorbuffers</li>
+  <li>st/mesa: remove trailing NULL colorbuffers</li>
+  <li>r600g: fix edge flags and layered rendering on R600-R700</li>
+  <li>r600g: disable async DMA on R700</li>
+  <li>r600g: fix MSAA resolve on R6xx when the destination is 1D-tiled</li>
+  <li>r600g: fix flushing on RV670, RS780, RS880 again</li>
+  <li>r600g: fix buffer copying on R600-R700</li>
+  <li>r600g: fix for broken CULL_FRONT behavior on R6xx</li>
+  <li>r600g: fix for an MSAA hang on RV770</li>
+  <li>r600g: fix hang on RV740 by using DX_RASTERIZATION_KILL instead of SX_MISC</li>
+</ul>
+
+<p>Michel Dänzer (2):</p>
+<ul>
+  <li>r600g: Disable LLVM by default at runtime for graphics</li>
+  <li>st/mesa: Fix NULL pointer dereference for incomplete framebuffers</li>
+</ul>
+
+<p>Neil Roberts (1):</p>
+<ul>
+  <li>wayland: Fix the logic in disabling the prime capability</li>
+</ul>
+
+<p>Samuel Iglesias Gonsalvez (1):</p>
+<ul>
+  <li>mesa: fix check for dummy renderbuffer in _mesa_FramebufferRenderbufferEXT()</li>
+</ul>
+
+<p>Thomas Hellstrom (1):</p>
+<ul>
+  <li>st/xa: Cache render target surface</li>
+</ul>
+
+<p>nick (1):</p>
+<ul>
+  <li>swrast: Fix vertex color in _swsetup_Translate()</li>
+</ul>
+
+</div>
+</body>
+</html>

commit 75049062d5e81524941cac62cd3cd322df7fa85b
Author: Carl Worth <cworth@cworth.org>
Date:   Mon May 5 10:50:49 2014 -0700

    Update VERSION to 10.1.2
    
    In preparation for the 10.1.2 release.

diff --git a/VERSION b/VERSION
index 2312799..b613254 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.1.1
+10.1.2

commit 3d648f0f50c41ba63b3e871b35654ec5a96e5bd9
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Feb 20 11:47:14 2014 -0800

    dri3: Enable GLX_MESA_query_renderer on DRI3 too
    
    This should have happend around the time of commit 4680d23, but Keith's
    DRI3 patches and my GLX_MESA_query_renderer patches crossed in the mail.
    
    I don't have a working DRI3 setup, so I haven't been able to actually
    verify this.  I'm hoping that someone can piglit this for me on DRI3...
    It's also unfortunate the DRI2 and DRI3 can't share more code.
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Cc: Keith Packard <keithp@keithp.com>
    Cc: "10.1" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 625bdd64e5ea3327d4459b1ccccff8dab89129d0)
    
    Conflicts:
    	src/glx/dri3_glx.c
    
    During the cherry-pick, the following commit was squashed in as well:
    
    glx: Conditionally compile GLX_MESA_query_renderer DRI3 support
    
    Missed out with commit 625bdd64e5ea3327d4459b1ccccff8dab89129d0.
    
    Cc: "10.1" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 0b307afd57082f0d4a0e8ba19093d313c9fb46ad)

diff --git a/src/glx/dri2.h b/src/glx/dri2.h
index 90efde8..7977d83 100644
--- a/src/glx/dri2.h
+++ b/src/glx/dri2.h
@@ -95,4 +95,12 @@ _X_HIDDEN int
 dri2_query_renderer_string(struct glx_screen *base, int attribute,
                            const char **value);
 
+_X_HIDDEN int
+dri3_query_renderer_integer(struct glx_screen *base, int attribute,
+                            unsigned int *value);
+
+_X_HIDDEN int
+dri3_query_renderer_string(struct glx_screen *base, int attribute,
+                           const char **value);
+
 #endif
diff --git a/src/glx/dri2_query_renderer.c b/src/glx/dri2_query_renderer.c
index 95560cb..80edcca 100644
--- a/src/glx/dri2_query_renderer.c
+++ b/src/glx/dri2_query_renderer.c
@@ -29,6 +29,9 @@
 #include "dri2.h"
 #include "dri_interface.h"
 #include "dri2_priv.h"
+#if defined(HAVE_DRI3)
+#include "dri3_priv.h"
+#endif
 
 static int
 dri2_convert_glx_query_renderer_attribs(int attribute)
@@ -99,4 +102,44 @@ dri2_query_renderer_string(struct glx_screen *base, int attribute,
    return psc->rendererQuery->queryString(psc->driScreen, dri_attribute, value);
 }
 
+#if defined(HAVE_DRI3)
+_X_HIDDEN int
+dri3_query_renderer_integer(struct glx_screen *base, int attribute,
+                            unsigned int *value)
+{
+   struct dri3_screen *const psc = (struct dri3_screen *) base;
+
+   /* Even though there are invalid values (and
+    * dri2_convert_glx_query_renderer_attribs may return -1), the higher level
+    * GLX code is required to perform the filtering.  Assume that we got a
+    * good value.
+    */
+   const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
+
+   if (psc->rendererQuery == NULL)
+      return -1;
+
+   return psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
+                                           value);
+}
+
+_X_HIDDEN int
+dri3_query_renderer_string(struct glx_screen *base, int attribute,
+                           const char **value)
+{
+   struct dri3_screen *const psc = (struct dri3_screen *) base;
+
+   /* Even though queryString only accepts a subset of the possible GLX
+    * queries, the higher level GLX code is required to perform the filtering.
+    * Assume that we got a good value.
+    */
+   const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
+
+   if (psc->rendererQuery == NULL)
+      return -1;
+
+   return psc->rendererQuery->queryString(psc->driScreen, dri_attribute, value);
+}
+#endif /* HAVE_DRI3 */
+
 #endif /* GLX_DIRECT_RENDERING */
diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index 70ec057..3b7ee1e 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -79,6 +79,7 @@
 #include "dri_common.h"
 #include "dri3_priv.h"
 #include "loader.h"
+#include "dri2.h"
 
 static const struct glx_context_vtable dri3_context_vtable;
 
@@ -1580,12 +1581,19 @@ dri3_bind_extensions(struct dri3_screen *psc, struct glx_display * priv,
       if (strcmp(extensions[i]->name, __DRI2_ROBUSTNESS) == 0)
          __glXEnableDirectExtension(&psc->base,
                                     "GLX_ARB_create_context_robustness");
+
+      if (strcmp(extensions[i]->name, __DRI2_RENDERER_QUERY) == 0) {
+         psc->rendererQuery = (__DRI2rendererQueryExtension *) extensions[i];
+         __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer");
+      }
    }
 }
 
 static const struct glx_screen_vtable dri3_screen_vtable = {
    dri3_create_context,
-   dri3_create_context_attribs
+   dri3_create_context_attribs,
+   dri3_query_renderer_integer,
+   dri3_query_renderer_string,
 };
 
 /** dri3_create_screen
diff --git a/src/glx/dri3_priv.h b/src/glx/dri3_priv.h
index 1d124f8..3346a17 100644
--- a/src/glx/dri3_priv.h
+++ b/src/glx/dri3_priv.h
@@ -129,6 +129,7 @@ struct dri3_screen {
    const __DRI2flushExtension *f;
    const __DRI2configQueryExtension *config;
    const __DRItexBufferExtension *texBuffer;
+   const __DRI2rendererQueryExtension *rendererQuery;
    const __DRIconfig **driver_configs;
 
    void *driver;

commit ff117336b7a7bb3b2fae2788a215f0524bbd7357
Author: Anuj Phogat <anuj.phogat@gmail.com>
Date:   Thu May 1 15:45:04 2014 -0700

    glsl: Apply the link error conditions to GL_ARB_fragment_coord_conventions
    
    Link error conditions added in previous patch are equally applicable
    to GL_ARB_fragment_coord_conventions implementation. Extension's spec
    says:
       "If gl_FragCoord is redeclared in any fragment shader in a program,
        it must be redeclared in all the fragment shaders in that program
        that have a static use of gl_FragCoord. All redeclarations of
        gl_FragCoord in all fragment shaders in a single program must have
        the same set of qualifiers."
    
    Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
    Cc: <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 9bcb0a85321c128b6e5ff8fc6694c2eff613e65a with some
    manual backporting)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index ad71875..0386bff 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -1372,6 +1372,8 @@ set_shader_inout_layout(struct gl_shader *shader,
       shader->uses_gl_fragcoord = state->fs_uses_gl_fragcoord;
       shader->pixel_center_integer = state->fs_pixel_center_integer;
       shader->origin_upper_left = state->fs_origin_upper_left;
+      shader->ARB_fragment_coord_conventions_enable =
+         state->ARB_fragment_coord_conventions_enable;
       break;
 
     default:
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 235f586..8222417 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -1210,7 +1210,8 @@ link_fs_input_layout_qualifiers(struct gl_shader_program *prog,
    linked_shader->origin_upper_left = false;
    linked_shader->pixel_center_integer = false;
 
-   if (linked_shader->Stage != MESA_SHADER_FRAGMENT || prog->Version < 150)
+   if (linked_shader->Stage != MESA_SHADER_FRAGMENT ||
+       (prog->Version < 150 && !prog->ARB_fragment_coord_conventions_enable))
       return;
 
    for (unsigned i = 0; i < num_shaders; i++) {
@@ -2127,6 +2128,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
    ralloc_free(prog->AtomicBuffers);
    prog->AtomicBuffers = NULL;
    prog->NumAtomicBuffers = 0;
+   prog->ARB_fragment_coord_conventions_enable = false;
 
    /* Separate the shaders into groups based on their type.
     */
@@ -2153,6 +2155,9 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
 	 goto done;
       }
 
+      prog->ARB_fragment_coord_conventions_enable |=
+         prog->Shaders[i]->ARB_fragment_coord_conventions_enable;
+
       gl_shader_stage shader_type = prog->Shaders[i]->Stage;
       shader_list[shader_type][num_shaders[shader_type]] = prog->Shaders[i];
       num_shaders[shader_type]++;
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 9356c6c..2837e2a 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2397,6 +2397,7 @@ struct gl_shader
    bool uses_builtin_functions;
    bool uses_gl_fragcoord;
    bool redeclares_gl_fragcoord;
+   bool ARB_fragment_coord_conventions_enable;
 
    /**
     * Fragment shader state from GLSL 1.50 layout qualifiers.
@@ -2697,6 +2698,11 @@ struct gl_shader_program
     * \c NULL.
     */
    struct gl_shader *_LinkedShaders[MESA_SHADER_STAGES];
+
+   /* True if any of the fragment shaders attached to this program use:
+    * #extension ARB_fragment_coord_conventions: enable
+    */
+   GLboolean ARB_fragment_coord_conventions_enable;
 };   
 
 

commit 2cd8ce4c67b1966f1957e2710cd87b92d38d3122
Author: Anuj Phogat <anuj.phogat@gmail.com>
Date:   Thu May 1 15:43:17 2014 -0700

    glsl: Link error if fs defines conflicting qualifiers for gl_FragCoord
    
    GLSL 1.50 spec says:
       "If gl_FragCoord is redeclared in any fragment shader in a program,
        it must be redeclared in all the fragment shaders in that
        program that have a static use gl_FragCoord. All redeclarations of
        gl_FragCoord in all fragment shaders in a single program must
        have the same set of qualifiers."
    
    This patch causes the shader link to fail if we have multiple fragment
    shaders with conflicting layout qualifiers for gl_FragCoord.
    
    V2: Restructure the code and add conditions to correctly handle the
        following case:
    
    fragment shader 1:
    layout(origin_upper_left) in vec4 gl_FragCoord;
    void main()
    {
        foo();
        gl_FragColor = gl_FragData;
    }
    
    fragment shader 2:
    layout(pixel_center_integer) in vec4 gl_FragCoord;
    void foo()
    {
    }
    
    V3:
    Allow linking in the following case:
    fragment shader 1:
    void main()
    {
        foo();
        gl_FragColor = gl_FragCoord;
    }
    
    fragment shader 2:
    in vec4 gl_FragCoord;
    void foo()
    {
       ...
    }
    
    Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
    Cc: <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    
    (cherry picked from commit 35f11e85cbe82b4bb77535e84e5515a5c49f67a6 with some
    manual backporting)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index c5996fa..1b97bc6 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -119,6 +119,11 @@ _mesa_ast_to_hir(exec_list *instructions, struct _mesa_glsl_parse_state *state)
       instructions->push_head(var);
    }
 
+   /* Figure out if gl_FragCoord is actually used in fragment shader */
+   ir_variable *const var = state->symbols->get_variable("gl_FragCoord");
+   if (var != NULL)
+      state->fs_uses_gl_fragcoord = var->data.used;
+
    /* From section 7.1 (Built-In Language Variables) of the GLSL 4.10 spec:
     *
     *     If multiple shaders using members of a built-in block belonging to
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 6b7760f..ad71875 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -186,6 +186,12 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx,
    this->default_uniform_qualifier->flags.q.shared = 1;
    this->default_uniform_qualifier->flags.q.column_major = 1;
 
+   this->fs_uses_gl_fragcoord = false;
+   this->fs_redeclares_gl_fragcoord = false;
+   this->fs_origin_upper_left = false;
+   this->fs_pixel_center_integer = false;
+   this->fs_redeclares_gl_fragcoord_with_no_layout_qualifiers = false;
+
    this->gs_input_prim_type_specified = false;
    this->gs_input_prim_type = GL_POINTS;
    this->gs_input_size = 0;
@@ -1332,7 +1338,14 @@ set_shader_inout_layout(struct gl_shader *shader,
       /* Should have been prevented by the parser. */
       assert(!state->gs_input_prim_type_specified);
       assert(!state->out_qualifier->flags.i);
-      return;
+   }
+
+   if (shader->Stage != MESA_SHADER_FRAGMENT) {
+      /* Should have been prevented by the parser. */
+      assert(!state->fs_uses_gl_fragcoord);
+      assert(!state->fs_redeclares_gl_fragcoord);
+      assert(!state->fs_pixel_center_integer);
+      assert(!state->fs_origin_upper_left);
    }
 
    switch(shader->Stage) {
@@ -1353,6 +1366,14 @@ set_shader_inout_layout(struct gl_shader *shader,
          shader->Geom.OutputType = PRIM_UNKNOWN;
       }
       break;
+
+   case MESA_SHADER_FRAGMENT:
+      shader->redeclares_gl_fragcoord = state->fs_redeclares_gl_fragcoord;
+      shader->uses_gl_fragcoord = state->fs_uses_gl_fragcoord;
+      shader->pixel_center_integer = state->fs_pixel_center_integer;
+      shader->origin_upper_left = state->fs_origin_upper_left;
+      break;
+
     default:
       /* Nothing to do. */
       break;
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index 82a83a5..69387d6 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -374,6 +374,7 @@ struct _mesa_glsl_parse_state {
    const struct gl_extensions *extensions;
 
    bool uses_builtin_functions;
+   bool fs_uses_gl_fragcoord;
 
    /**
     * For geometry shaders, size of the most recently seen input declaration
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 578cc78..235f586 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -1195,6 +1195,82 @@ private:
 };
 
 /**
+ * Performs the cross-validation of layout qualifiers specified in
+ * redeclaration of gl_FragCoord for the attached fragment shaders,
+ * and propagates them to the linked FS and linked shader program.
+ */
+static void
+link_fs_input_layout_qualifiers(struct gl_shader_program *prog,
+	                        struct gl_shader *linked_shader,
+	                        struct gl_shader **shader_list,
+	                        unsigned num_shaders)
+{
+   linked_shader->redeclares_gl_fragcoord = false;
+   linked_shader->uses_gl_fragcoord = false;
+   linked_shader->origin_upper_left = false;
+   linked_shader->pixel_center_integer = false;
+
+   if (linked_shader->Stage != MESA_SHADER_FRAGMENT || prog->Version < 150)
+      return;
+
+   for (unsigned i = 0; i < num_shaders; i++) {
+      struct gl_shader *shader = shader_list[i];
+      /* From the GLSL 1.50 spec, page 39:
+       *
+       *   "If gl_FragCoord is redeclared in any fragment shader in a program,
+       *    it must be redeclared in all the fragment shaders in that program
+       *    that have a static use gl_FragCoord."
+       *
+       * Exclude the case when one of the 'linked_shader' or 'shader' redeclares
+       * gl_FragCoord with no layout qualifiers but the other one doesn't
+       * redeclare it. If we strictly follow GLSL 1.50 spec's language, it
+       * should be a link error. But, generating link error for this case will
+       * be a wrong behaviour which spec didn't intend to do and it could also
+       * break some applications.
+       */
+      if ((linked_shader->redeclares_gl_fragcoord
+           && !shader->redeclares_gl_fragcoord
+           && shader->uses_gl_fragcoord
+           && (linked_shader->origin_upper_left
+               || linked_shader->pixel_center_integer))
+          || (shader->redeclares_gl_fragcoord
+              && !linked_shader->redeclares_gl_fragcoord
+              && linked_shader->uses_gl_fragcoord
+              && (shader->origin_upper_left
+                  || shader->pixel_center_integer))) {
+             linker_error(prog, "fragment shader defined with conflicting "
+                         "layout qualifiers for gl_FragCoord\n");
+      }
+
+      /* From the GLSL 1.50 spec, page 39:
+       *
+       *   "All redeclarations of gl_FragCoord in all fragment shaders in a
+       *    single program must have the same set of qualifiers."
+       */
+      if (linked_shader->redeclares_gl_fragcoord && shader->redeclares_gl_fragcoord
+          && (shader->origin_upper_left != linked_shader->origin_upper_left
+          || shader->pixel_center_integer != linked_shader->pixel_center_integer)) {
+         linker_error(prog, "fragment shader defined with conflicting "
+                      "layout qualifiers for gl_FragCoord\n");
+      }
+
+      /* Update the linked shader state.  Note that uses_gl_fragcoord should
+       * accumulate the results.  The other values should replace.  If there
+       * are multiple redeclarations, all the fields except uses_gl_fragcoord
+       * are already known to be the same.
+       */
+      if (shader->redeclares_gl_fragcoord || shader->uses_gl_fragcoord) {
+         linked_shader->redeclares_gl_fragcoord =
+            shader->redeclares_gl_fragcoord;
+         linked_shader->uses_gl_fragcoord = linked_shader->uses_gl_fragcoord
+            || shader->uses_gl_fragcoord;
+         linked_shader->origin_upper_left = shader->origin_upper_left;
+         linked_shader->pixel_center_integer = shader->pixel_center_integer;
+      }
+   }
+}
+
+/**
  * Performs the cross-validation of geometry shader max_vertices and
  * primitive type layout qualifiers for the attached geometry shaders,
  * and propagates them to the linked GS and linked shader program.
@@ -1390,6 +1466,7 @@ link_intrastage_shaders(void *mem_ctx,
    linked->NumUniformBlocks = num_uniform_blocks;
    ralloc_steal(linked, linked->UniformBlocks);
 
+   link_fs_input_layout_qualifiers(prog, linked, shader_list, num_shaders);
    link_gs_inout_layout_qualifiers(prog, linked, shader_list, num_shaders);
 
    populate_symbol_table(linked);
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index d5159e0..9356c6c 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2395,6 +2395,14 @@ struct gl_shader
    struct glsl_symbol_table *symbols;
 
    bool uses_builtin_functions;
+   bool uses_gl_fragcoord;
+   bool redeclares_gl_fragcoord;
+
+   /**
+    * Fragment shader state from GLSL 1.50 layout qualifiers.
+    */
+   bool origin_upper_left;
+   bool pixel_center_integer;
 
    /**
     * Geometry shader state from GLSL 1.50 layout qualifiers.

commit ec70be5628b0941767964cff6135b5ba0bf20766
Author: Anuj Phogat <anuj.phogat@gmail.com>
Date:   Thu May 1 15:37:48 2014 -0700

    glsl: Use switch to allow adding more shader types
    
    Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
    Cc: <mesa-stable@lists.freedesktop.org>

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 87784ed..6b7760f 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -1335,20 +1335,27 @@ set_shader_inout_layout(struct gl_shader *shader,
       return;
    }
 
-   shader->Geom.VerticesOut = 0;
-   if (state->out_qualifier->flags.q.max_vertices)
-      shader->Geom.VerticesOut = state->out_qualifier->max_vertices;
-
-   if (state->gs_input_prim_type_specified) {
-      shader->Geom.InputType = state->gs_input_prim_type;
-   } else {
-      shader->Geom.InputType = PRIM_UNKNOWN;
-   }
+   switch(shader->Stage) {
+   case MESA_SHADER_GEOMETRY:
+      shader->Geom.VerticesOut = 0;
+      if (state->out_qualifier->flags.q.max_vertices)
+         shader->Geom.VerticesOut = state->out_qualifier->max_vertices;
+
+      if (state->gs_input_prim_type_specified) {
+         shader->Geom.InputType = state->gs_input_prim_type;
+      } else {
+         shader->Geom.InputType = PRIM_UNKNOWN;
+      }
 
-   if (state->out_qualifier->flags.q.prim_type) {
-      shader->Geom.OutputType = state->out_qualifier->prim_type;
-   } else {
-      shader->Geom.OutputType = PRIM_UNKNOWN;
+      if (state->out_qualifier->flags.q.prim_type) {
+         shader->Geom.OutputType = state->out_qualifier->prim_type;
+      } else {
+         shader->Geom.OutputType = PRIM_UNKNOWN;
+      }
+      break;
+    default:
+      /* Nothing to do. */
+      break;
    }
 }
 

commit 2d9bfe4bf424ed234c276d7ca80348e9d10a6e43
Author: Carl Worth <cworth@cworth.org>
Date:   Thu May 1 15:00:24 2014 -0700

    cherry-ignore: Drop an ignored patch now that piglit has been updated.
    
    This patch was ignored when we saw it causing a piglit test to regress. That
    piglit test has been determined to have been incorrect. It has been fixed so
    that this patch is now clearly a bug fix, not a regression.

diff --git a/bin/.cherry-ignore b/bin/.cherry-ignore
index 727ef5c..756da19 100644
--- a/bin/.cherry-ignore
+++ b/bin/.cherry-ignore
@@ -7,7 +7,3 @@ ac35ded4733883037316d556af596524e5e02535
 # This patch introduces some regressions. See:
 # https://bugs.freedesktop.org/show_bug.cgi?id=77443
 1afe3359258a9e89b62c8638761f52d78f6d1cbc
-
-# This patch introduces a piglit regression. See:
-# https://bugs.freedesktop.org/show_bug.cgi?id=77702
-1d350b9e228462390b1883abace24c15d4741932 i965: Add glBlitFramebuffer to commands affected by conditional rendering

commit efba496d03c597be4838aa9ed22b914ad3931df2
Author: Anuj Phogat <anuj.phogat@gmail.com>
Date:   Fri Apr 4 16:49:19 2014 -0700

    i965: Add glBlitFramebuffer to commands affected by conditional rendering
    
    Fixes failures in Khronos OpenGL CTS test conditional_render_test9
    
    Cc: <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>


Reply to: