[X2Go-Commits] [vcxsrv] 01/13: mesa git update 19 oct 2014

git-admin at x2go.org git-admin at x2go.org
Mon Mar 9 05:11:38 CET 2015


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to annotated tag 1.16.2.0
in repository vcxsrv.

commit fa5a6df66cfe9b19014ea9d2fca35b762f457041
Author: marha <marha at users.sourceforge.net>
Date:   Sun Oct 19 11:17:56 2014 +0200

    mesa git update 19 oct 2014
    
    mesa             commit 6212d2402df4ad0658cbb98ce889e35ef5f32fa3
---
 mesalib/configure.ac                               |   38 ++---
 mesalib/docs/GL3.txt                               |    2 +-
 mesalib/docs/index.html                            |   12 ++
 mesalib/docs/relnotes.html                         |    2 +
 mesalib/docs/relnotes/10.2.9.html                  |  101 +++++++++++++
 mesalib/docs/relnotes/10.3.1.html                  |  158 ++++++++++++++++++++
 mesalib/docs/relnotes/10.4.html                    |    1 +
 mesalib/src/glsl/README                            |   16 +-
 mesalib/src/mesa/drivers/common/meta_blit.c        |    1 +
 mesalib/src/mesa/main/bufferobj.c                  |   21 ++-
 mesalib/src/mesa/main/bufferobj.h                  |    2 +-
 mesalib/src/mesa/main/dd.h                         |    2 +-
 mesalib/src/mesa/main/mtypes.h                     |   13 ++
 mesalib/src/mesa/main/shared.c                     |    2 +-
 mesalib/src/mesa/main/teximage.c                   |    6 +
 .../src/mesa/state_tracker/st_cb_bufferobjects.c   |    4 +-
 mesalib/src/mesa/state_tracker/st_cb_eglimage.c    |    3 +-
 mesalib/src/mesa/state_tracker/st_cb_texture.c     |   13 +-
 mesalib/src/mesa/state_tracker/st_gen_mipmap.c     |    2 +-
 mesalib/src/mesa/state_tracker/st_texture.c        |    6 +-
 mesalib/src/mesa/state_tracker/st_texture.h        |    3 +-
 mesalib/src/mesa/state_tracker/st_vdpau.c          |    4 +-
 mesalib/src/mesa/vbo/vbo_exec_api.c                |    2 +-
 mesalib/src/mesa/vbo/vbo_save_api.c                |    4 +-
 24 files changed, 355 insertions(+), 63 deletions(-)

diff --git a/mesalib/configure.ac b/mesalib/configure.ac
index 680dff4..0ed9325 100644
--- a/mesalib/configure.ac
+++ b/mesalib/configure.ac
@@ -1126,14 +1126,13 @@ if test "x$enable_dri" = xyes; then
     fi
 
     # Check for expat
-    PKG_CHECK_EXISTS([expat], [have_expat=yes], [have_expat=no])
-    if test "x$have_expat" = "xyes"; then
-       PKG_CHECK_MODULES([EXPAT], [expat], [],
-                         AC_MSG_ERROR([Expat required for DRI.]))
-    else
-       # expat version 2.0 and earlier do not provide expat.pc
-       EXPAT_LIBS=-lexpat
-    fi
+    PKG_CHECK_MODULES([EXPAT], [expat], [],
+        # expat version 2.0 and earlier do not provide expat.pc
+        [AC_CHECK_HEADER([expat.h],[],
+                         [AC_MSG_ERROR([Expat headers required for DRI not found])])
+         AC_CHECK_LIB([expat],[XML_ParserCreate],[],
+                     [AC_MSG_ERROR([Expat library required for DRI not found])])
+         EXPAT_LIBS="-lexpat"])
 
     DRICOMMON_NEED_LIBDRM=no
     # If we are building any DRI driver other than swrast.
@@ -1438,7 +1437,6 @@ AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
 if test "x$enable_va" = xyes; then
     PKG_CHECK_MODULES([VA], [libva >= 0.35.0 x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
                       [VA_LIBS="`$PKG_CONFIG --libs x11-xcb xcb-dri2`"])
-    GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
     enable_gallium_loader=$enable_shared_pipe_drivers
 fi
 AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
@@ -1786,38 +1784,30 @@ if test "x$enable_gallium_tests" = xyes; then
 fi
 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
 
-VDPAU_LIB_INSTALL_DIR_DEFAULT=''
-if test "x$enable_vdpau" = xyes; then
-    VDPAU_LIB_INSTALL_DIR_DEFAULT=`$PKG_CONFIG --variable=moduledir vdpau`
-fi
-
 dnl Directory for VDPAU libs
 AC_ARG_WITH([vdpau-libdir],
     [AS_HELP_STRING([--with-vdpau-libdir=DIR],
-        [directory for the VDPAU libraries @<:@default=`pkg-config --variable=moduledir vdpau`@:>@])],
+        [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
     [VDPAU_LIB_INSTALL_DIR="$withval"],
-    [VDPAU_LIB_INSTALL_DIR="$VDPAU_LIB_INSTALL_DIR_DEFAULT"])
+    [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
 
-OMX_LIB_INSTALL_DIR_DEFAULT=''
-if test "x$enable_omx" = xyes; then
-    OMX_LIB_INSTALL_DIR_DEFAULT=`$PKG_CONFIG --variable=pluginsdir libomxil-bellagio`
-fi
+dnl Directory for OMX libs
 
 AC_ARG_WITH([omx-libdir],
     [AS_HELP_STRING([--with-omx-libdir=DIR],
-        [directory for the OMX libraries @<:@default=`pkg-config --variable=pluginsdir libomxil-bellagio`@:>@])],
+        [directory for the OMX libraries])],
     [OMX_LIB_INSTALL_DIR="$withval"],
-    [OMX_LIB_INSTALL_DIR="$OMX_LIB_INSTALL_DIR_DEFAULT"])
+    [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
 AC_SUBST([OMX_LIB_INSTALL_DIR])
 
 dnl Directory for VA libs
 
 AC_ARG_WITH([va-libdir],
     [AS_HELP_STRING([--with-va-libdir=DIR],
-        [directory for the VA libraries @<:@default=`pkg-config libva --variable=driverdir`@:>@])],
+        [directory for the VA libraries @<:@${libdir}/dri@:>@])],
     [VA_LIB_INSTALL_DIR="$withval"],
-    [VA_LIB_INSTALL_DIR=`pkg-config libva --variable=driverdir`])
+    [VA_LIB_INSTALL_DIR="${libdir}/dri"])
 AC_SUBST([VA_LIB_INSTALL_DIR])
 
 dnl
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index 5adc759..07d1d2c 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -110,7 +110,7 @@ GL 4.0, GLSL 4.00:
   - Interpolation functions                            DONE ()
   - New overload resolution rules                      DONE
   GL_ARB_gpu_shader_fp64                               started (Dave)
-  GL_ARB_sample_shading                                DONE (i965, nv50, nvc0, radeonsi)
+  GL_ARB_sample_shading                                DONE (i965, nv50, nvc0, r600, radeonsi)
   GL_ARB_shader_subroutine                             not started
   GL_ARB_tessellation_shader                           started (Chris, Ilia)
   GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
diff --git a/mesalib/docs/index.html b/mesalib/docs/index.html
index 98162bb..244a7a3 100644
--- a/mesalib/docs/index.html
+++ b/mesalib/docs/index.html
@@ -16,6 +16,18 @@
 
 <h1>News</h1>
 
+<h2>October 12, 2014</h2>
+<p>
+<a href="relnotes/10.2.9.html">Mesa 10.2.9</a>
+and <a href="relnotes/10.3.1.html">Mesa 10.3.1</a> are released.
+
+These are bug-fix releases from the 10.2 and 10.3 branches, respectively.
+<br>
+NOTE: It is anticipated that 10.2.9 will be the final release in the 10.2
+series. Users of 10.2 are encouraged to migrate to the 10.3 series in order
+to obtain future fixes.
+</p>
+
 <h2>September 19, 2014</h2>
 <p>
 <a href="relnotes/10.3.html">Mesa 10.3</a> is released.  This is a new
diff --git a/mesalib/docs/relnotes.html b/mesalib/docs/relnotes.html
index 0a4c3de..d546e85 100644
--- a/mesalib/docs/relnotes.html
+++ b/mesalib/docs/relnotes.html
@@ -21,6 +21,8 @@ The release notes summarize what's new or changed in each Mesa release.
 </p>
 
 <ul>
+<li><a href="relnotes/10.3.1.html">10.3.1 release notes</a>
+<li><a href="relnotes/10.2.9.html">10.2.9 release notes</a>
 <li><a href="relnotes/10.3.html">10.3 release notes</a>
 <li><a href="relnotes/10.2.8.html">10.2.8 release notes</a>
 <li><a href="relnotes/10.2.7.html">10.2.7 release notes</a>
diff --git a/mesalib/docs/relnotes/10.2.9.html b/mesalib/docs/relnotes/10.2.9.html
new file mode 100644
index 0000000..7a9f639
--- /dev/null
+++ b/mesalib/docs/relnotes/10.2.9.html
@@ -0,0 +1,101 @@
+<!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.9 Release Notes / October 12, 2014</h1>
+
+<p>
+Mesa 10.2.9 is a bug fix release which fixes bugs found since the 10.2.8 release.
+This is the final planned release for the 10.2 branch.
+</p>
+<p>
+Mesa 10.2.9 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>
+f8d62857eed8f604a57710c58a8ffcfb8dab2dc4977ec27c956c7c4fd14032f6  MesaLib-10.2.9.tar.gz
+f6031f8b7113a92325b60635c504c510490eebb2e707119bbff7bd86aa34657d  MesaLib-10.2.9.tar.bz2
+11c0ef4f3308fc29d9f15a77fd8f4842a946fce9e830250a1c95b171a446171a  MesaLib-10.2.9.zip
+</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=79462">Bug 79462</a> - [NVC0/Codegen] Shader compilation falis in spill logic</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83570">Bug 83570</a> - Glyphy demo throws unhandled Integer division by zero exception</li>
+
+</ul>
+
+<h2>Changes</h2>
+<p>Andreas Pokorny (2):</p>
+<ul>
+  <li>egl/drm: expose KHR_image_pixmap extension</li>
+  <li>i915: Fix black buffers when importing prime fds</li>
+</ul>
+
+<p>Emil Velikov (2):</p>
+<ul>
+  <li>docs: Add sha256 sums for the 10.2.8 release</li>
+  <li>Update VERSION to 10.2.9</li>
+</ul>
+
+<p>Ilia Mirkin (1):</p>
+<ul>
+  <li>nv50/ir: avoid deleting pseudo instructions too early</li>
+</ul>
+
+<p>Marek Olšák (3):</p>
+<ul>
+  <li>radeonsi: release GS rings at context destruction</li>
+  <li>radeonsi: properly destroy the GS copy shader and scratch_bo for compute</li>
+  <li>st/dri: remove GALLIUM_MSAA and __GL_FSAA_MODE environment variables</li>
+</ul>
+
+<p>Roland Scheidegger (1):</p>
+<ul>
+  <li>gallivm: fix idiv</li>
+</ul>
+
+<p>Thomas Hellstrom (1):</p>
+<ul>
+  <li>st/xa: Fix regression in xa_yuv_planar_blit()</li>
+</ul>
+
+<p>Tom Stellard (1):</p>
+<ul>
+  <li>configure.ac: Compute LLVM_VERSION_PATCH using llvm-config</li>
+</ul>
+
+<p>rconde (1):</p>
+<ul>
+  <li>gallivm,tgsi: fix idiv by zero crash</li>
+</ul>
+
+</div>
+</body>
+</html>
diff --git a/mesalib/docs/relnotes/10.3.1.html b/mesalib/docs/relnotes/10.3.1.html
new file mode 100644
index 0000000..7de0506
--- /dev/null
+++ b/mesalib/docs/relnotes/10.3.1.html
@@ -0,0 +1,158 @@
+<!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.3.1 Release Notes / October 12, 2014</h1>
+
+<p>
+Mesa 10.3.1 is a bug fix release which fixes bugs found since the 10.3 release.
+</p>
+<p>
+Mesa 10.3.1 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>
+155afcbad17be8bb80282c761b957d5cc716c14a1fa16c4f5ee04e76df729c6d  MesaLib-10.3.1.tar.gz
+b081d077d717e5d56f2d59677490856052c41573e50378ff86d6c72456714add  MesaLib-10.3.1.tar.bz2
+07a14febfed06412d519e091a62d24513fee6745f1a6f8a8f1956bfe04b77d15  MesaLib-10.3.1.zip
+</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=79462">Bug 79462</a> - [NVC0/Codegen] Shader compilation falis in spill logic</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82932">Bug 82932</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_direct_read_vertex fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83506">Bug 83506</a> - [UBO] row_major layout ignored inside structures</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83533">Bug 83533</a> - [UBO] nested structures don't get appropriate padding</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83570">Bug 83570</a> - Glyphy demo throws unhandled Integer division by zero exception</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83741">Bug 83741</a> - [UBO] row_major layout partially ignored for arrays of structures</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84178">Bug 84178</a> - Big glamor regression in Xorg server 1.6.99.1 GIT: x11perf 1.5 Test: PutImage XY 500x500 Square</li>
+
+</ul>
+
+<h2>Changes</h2>
+
+<p>Andreas Pokorny (2):</p>
+<ul>
+  <li>egl/drm: expose KHR_image_pixmap extension</li>
+  <li>i915: Fix black buffers when importing prime fds</li>
+</ul>
+
+<p>Brian Paul (1):</p>
+<ul>
+  <li>mesa: fix prog_optimize.c assertions triggered by SWZ opcode</li>
+</ul>
+
+<p>Emil Velikov (2):</p>
+<ul>
+  <li>docs: Add 10.3 sha256 sums, news item and link release notes</li>
+  <li>Update VERSION to 10.3.1</li>
+</ul>
+
+<p>Ian Romanick (4):</p>
+<ul>
+  <li>glsl: Make sure fields after small structs have correct padding</li>
+  <li>glsl: Make sure row-major array-of-structure get correct layout</li>
+  <li>glsl: Round struct size up to at least 16 bytes</li>
+  <li>glsl: Strip arrayness from ir_type_dereference_variable too</li>
+</ul>
+
+<p>Ilia Mirkin (5):</p>
+<ul>
+  <li>nv50/ir: avoid deleting pseudo instructions too early</li>
+  <li>gm107/ir: fix manual TXD for array targets</li>
+  <li>gm107/ir: fix texture argument order</li>
+  <li>gm107/ir: add support for indirect const buffer selection</li>
+  <li>gm107/ir: take relative pfetch offset into account</li>
+</ul>
+
+<p>Keith Packard (1):</p>
+<ul>
+  <li>glx/dri3: Provide error diagnostics when DRI3 allocation fails</li>
+</ul>
+
+<p>Kenneth Graunke (2):</p>
+<ul>
+  <li>mesa: Use proper structure for glGet*(GL_TEXTURE_COORD_ARRAY*).</li>
+  <li>mesa: Set correct array element in vbo_exec_vtx_init.</li>
+</ul>
+
+<p>Marek Olšák (3):</p>
+<ul>
+  <li>radeonsi: release GS rings at context destruction</li>
+  <li>radeonsi: properly destroy the GS copy shader and scratch_bo for compute</li>
+  <li>st/dri: remove GALLIUM_MSAA and __GL_FSAA_MODE environment variables</li>
+</ul>
+
+<p>Michel Dänzer (1):</p>
+<ul>
+  <li>st/mesa: Use PIPE_USAGE_STAGING for GL_STATIC/DYNAMIC/STREAM_READ buffers</li>
+</ul>
+
+<p>Richard Sandiford (2):</p>
+<ul>
+  <li>mesa: Fix alpha component in unpack_R8G8B8X8_SRGB.</li>
+  <li>swrast: Fix handling of MESA_FORMAT_L8A8_SRGB for big-endian</li>
+</ul>
+
+<p>Roland Scheidegger (1):</p>
+<ul>
+  <li>gallivm: fix idiv</li>
+</ul>
+
+<p>Thomas Hellstrom (1):</p>
+<ul>
+  <li>st/xa: Fix regression in xa_yuv_planar_blit()</li>
+</ul>
+
+<p>Tom Stellard (2):</p>
+<ul>
+  <li>clover: Add support to mem objects for multiple destructor callbacks v2</li>
+  <li>configure.ac: Compute LLVM_VERSION_PATCH using llvm-config</li>
+</ul>
+
+<p>Tomasz Figa (3):</p>
+<ul>
+  <li>util: Include in Android builds</li>
+  <li>st/mesa: Generate format_info.c in Android builds</li>
+  <li>st/mesa: Fix paths used in Android builds</li>
+</ul>
+
+<p>rconde (1):</p>
+<ul>
+  <li>gallivm,tgsi: fix idiv by zero crash</li>
+</ul>
+
+</div>
+</body>
+</html>
diff --git a/mesalib/docs/relnotes/10.4.html b/mesalib/docs/relnotes/10.4.html
index e6813d3..64cbfae 100644
--- a/mesalib/docs/relnotes/10.4.html
+++ b/mesalib/docs/relnotes/10.4.html
@@ -44,6 +44,7 @@ Note: some of the new features are only available with certain drivers.
 </p>
 
 <ul>
+<li>GL_ARB_sample_shading on r600</li>
 <li>GL_ARB_texture_view on nv50, nvc0</li>
 </ul>
 
diff --git a/mesalib/src/glsl/README b/mesalib/src/glsl/README
index 0a0afcc..2f93f12 100644
--- a/mesalib/src/glsl/README
+++ b/mesalib/src/glsl/README
@@ -8,7 +8,7 @@ passed straight through.  See glcpp/*
 
 2) lex and yacc-based parser takes the preprocessed string and
 generates the AST (abstract syntax tree).  Almost no checking is
-performed in this stage.  See glsl_lexer.lpp and glsl_parser.ypp.
+performed in this stage.  See glsl_lexer.ll and glsl_parser.yy.
 
 3) The AST is converted to "HIR".  This is the intermediate
 representation of the compiler.  Constructors are generated, function
@@ -34,7 +34,7 @@ linked in.
 
 7) The driver performs code generation out of the IR, taking a linked
 shader program and producing a compiled program for each stage.  See
-ir_to_mesa.cpp for Mesa IR code generation.
+../mesa/program/ir_to_mesa.cpp for Mesa IR code generation.
 
 FAQ:
 
@@ -126,7 +126,7 @@ optimizations like CSE where one must navigate an expression tree.
 
 Q: Why no SSA representation?
 
-A: Converting an IR tree to SSA form makes dead code elmimination,
+A: Converting an IR tree to SSA form makes dead code elimination,
 common subexpression elimination, and many other optimizations much
 easier.  However, in our primarily vector-based language, there's some
 major questions as to how it would work.  Do we do SSA on the scalar
@@ -134,9 +134,9 @@ or vector level?  If we do it at the vector level, we're going to end
 up with many different versions of the variable when encountering code
 like:
 
-(assign (constant bool (1)) (swiz x (var_ref __retval) ) (var_ref a) ) 
-(assign (constant bool (1)) (swiz y (var_ref __retval) ) (var_ref b) ) 
-(assign (constant bool (1)) (swiz z (var_ref __retval) ) (var_ref c) ) 
+(assign (constant bool (1)) (swiz x (var_ref __retval) ) (var_ref a) )
+(assign (constant bool (1)) (swiz y (var_ref __retval) ) (var_ref b) )
+(assign (constant bool (1)) (swiz z (var_ref __retval) ) (var_ref c) )
 
 If every masked update of a component relies on the previous value of
 the variable, then we're probably going to be quite limited in our
@@ -183,7 +183,7 @@ ir_validate.cpp (check users have the right types)
 
 You may also need to update the backends if they will see the new expr type:
 
-../mesa/shaders/ir_to_mesa.cpp
+../mesa/program/ir_to_mesa.cpp
 
 You can then use the new expression from builtins (if all backends
 would rather see it), or scan the IR and convert to use your new
@@ -225,4 +225,4 @@ Initially, there really wasn't one.  We have since adopted one:
  - Files that implement a class that is used throught the code should
    take the name of that class (e.g., ir_hierarchical_visitor.cpp).
  - Files that contain code not fitting in one of the previous
-   categories should have a sensible name (e.g., glsl_parser.ypp).
+   categories should have a sensible name (e.g., glsl_parser.yy).
diff --git a/mesalib/src/mesa/drivers/common/meta_blit.c b/mesalib/src/mesa/drivers/common/meta_blit.c
index c6616d9..01cb532 100644
--- a/mesalib/src/mesa/drivers/common/meta_blit.c
+++ b/mesalib/src/mesa/drivers/common/meta_blit.c
@@ -134,6 +134,7 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx,
       break;
    default:
       _mesa_problem(ctx, "Unsupported sample count %d\n", samples);
+      unreachable("Unsupported sample count");
    }
 
    /* Create sample map string. */
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c
index b6879ce..0ee8856 100644
--- a/mesalib/src/mesa/main/bufferobj.c
+++ b/mesalib/src/mesa/main/bufferobj.c
@@ -389,14 +389,14 @@ convert_clear_buffer_data(struct gl_context *ctx,
  * Default callback for the \c dd_function_table::NewBufferObject() hook.
  */
 static struct gl_buffer_object *
-_mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target )
+_mesa_new_buffer_object(struct gl_context *ctx, GLuint name)
 {
    struct gl_buffer_object *obj;
 
    (void) ctx;
 
    obj = MALLOC_STRUCT(gl_buffer_object);
-   _mesa_initialize_buffer_object(ctx, obj, name, target);
+   _mesa_initialize_buffer_object(ctx, obj, name);
    return obj;
 }
 
@@ -494,12 +494,10 @@ _mesa_reference_buffer_object_(struct gl_context *ctx,
  * Initialize a buffer object to default values.
  */
 void
-_mesa_initialize_buffer_object( struct gl_context *ctx,
-				struct gl_buffer_object *obj,
-				GLuint name, GLenum target )
+_mesa_initialize_buffer_object(struct gl_context *ctx,
+                               struct gl_buffer_object *obj,
+                               GLuint name)
 {
-   (void) target;
-
    memset(obj, 0, sizeof(struct gl_buffer_object));
    mtx_init(&obj->Mutex, mtx_plain);
    obj->RefCount = 1;
@@ -906,7 +904,7 @@ _mesa_handle_bind_buffer_gen(struct gl_context *ctx,
        * never used before, allocate a buffer object now.
        */
       ASSERT(ctx->Driver.NewBufferObject);
-      buf = ctx->Driver.NewBufferObject(ctx, buffer, target);
+      buf = ctx->Driver.NewBufferObject(ctx, buffer);
       if (!buf) {
 	 _mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", caller);
 	 return false;
@@ -2652,6 +2650,12 @@ set_ubo_binding(struct gl_context *ctx,
    binding->Offset = offset;
    binding->Size = size;
    binding->AutomaticSize = autoSize;
+
+   /* If this is a real buffer object, mark it has having been used
+    * at some point as a UBO.
+    */
+   if (size >= 0)
+      bufObj->UsageHistory |= USAGE_UNIFORM_BUFFER;
 }
 
 /**
@@ -2764,6 +2768,7 @@ set_atomic_buffer_binding(struct gl_context *ctx,
    } else {
       binding->Offset = offset;
       binding->Size = size;
+      bufObj->UsageHistory |= USAGE_ATOMIC_COUNTER_BUFFER;
    }
 }
 
diff --git a/mesalib/src/mesa/main/bufferobj.h b/mesalib/src/mesa/main/bufferobj.h
index 0779605..fe294fc 100644
--- a/mesalib/src/mesa/main/bufferobj.h
+++ b/mesalib/src/mesa/main/bufferobj.h
@@ -103,7 +103,7 @@ _mesa_multi_bind_lookup_bufferobj(struct gl_context *ctx,
 extern void
 _mesa_initialize_buffer_object(struct gl_context *ctx,
                                struct gl_buffer_object *obj,
-                               GLuint name, GLenum target);
+                               GLuint name);
 
 extern void
 _mesa_reference_buffer_object_(struct gl_context *ctx,
diff --git a/mesalib/src/mesa/main/dd.h b/mesalib/src/mesa/main/dd.h
index c130b14..c07e83a 100644
--- a/mesalib/src/mesa/main/dd.h
+++ b/mesalib/src/mesa/main/dd.h
@@ -602,7 +602,7 @@ struct dd_function_table {
     */
    /*@{*/
    struct gl_buffer_object * (*NewBufferObject)(struct gl_context *ctx,
-                                                GLuint buffer, GLenum target);
+                                                GLuint buffer);
    
    void (*DeleteBuffer)( struct gl_context *ctx, struct gl_buffer_object *obj );
 
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index 5e9453b..9f44eda 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -1465,6 +1465,16 @@ struct gl_buffer_mapping {
 
 
 /**
+ * Usages we've seen for a buffer object.
+ */
+typedef enum {
+   USAGE_UNIFORM_BUFFER = 0x1,
+   USAGE_TEXTURE_BUFFER = 0x2,
+   USAGE_ATOMIC_COUNTER_BUFFER = 0x4,
+} gl_buffer_usage;
+
+
+/**
  * GL_ARB_vertex/pixel_buffer_object buffer object
  */
 struct gl_buffer_object
@@ -1481,6 +1491,7 @@ struct gl_buffer_object
    GLboolean Written;   /**< Ever written to? (for debugging) */
    GLboolean Purgeable; /**< Is the buffer purgeable under memory pressure? */
    GLboolean Immutable; /**< GL_ARB_buffer_storage */
+   gl_buffer_usage UsageHistory; /**< How has this buffer been used so far? */
 
    struct gl_buffer_mapping Mappings[MAP_COUNT];
 };
@@ -4060,6 +4071,8 @@ struct gl_driver_flags
     */
    uint64_t NewUniformBuffer;
 
+   uint64_t NewTextureBuffer;
+
    /**
     * gl_context::AtomicBufferBindings
     */
diff --git a/mesalib/src/mesa/main/shared.c b/mesalib/src/mesa/main/shared.c
index 7ef932f..f74a823 100644
--- a/mesalib/src/mesa/main/shared.c
+++ b/mesalib/src/mesa/main/shared.c
@@ -86,7 +86,7 @@ _mesa_alloc_shared_state(struct gl_context *ctx)
    shared->SamplerObjects = _mesa_NewHashTable();
 
    /* Allocate the default buffer object */
-   shared->NullBufferObj = ctx->Driver.NewBufferObject(ctx, 0, 0);
+   shared->NullBufferObj = ctx->Driver.NewBufferObject(ctx, 0);
 
    /* Create default texture objects */
    for (i = 0; i < NUM_TEXTURE_TARGETS; i++) {
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index c0298af..4f4bb11 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -4652,6 +4652,12 @@ texbufferrange(struct gl_context *ctx, GLenum target, GLenum internalFormat,
       texObj->BufferSize = size;
    }
    _mesa_unlock_texture(ctx, texObj);
+
+   ctx->NewDriverState |= ctx->DriverFlags.NewTextureBuffer;
+
+   if (bufObj) {
+      bufObj->UsageHistory |= USAGE_TEXTURE_BUFFER;
+   }
 }
 
 
diff --git a/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c b/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c
index d53602c..55f3644 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -54,14 +54,14 @@
  * internal structure where somehow shared.
  */
 static struct gl_buffer_object *
-st_bufferobj_alloc(struct gl_context *ctx, GLuint name, GLenum target)
+st_bufferobj_alloc(struct gl_context *ctx, GLuint name)
 {
    struct st_buffer_object *st_obj = ST_CALLOC_STRUCT(st_buffer_object);
 
    if (!st_obj)
       return NULL;
 
-   _mesa_initialize_buffer_object(ctx, &st_obj->Base, name, target);
+   _mesa_initialize_buffer_object(ctx, &st_obj->Base, name);
 
    return &st_obj->Base;
 }
diff --git a/mesalib/src/mesa/state_tracker/st_cb_eglimage.c b/mesalib/src/mesa/state_tracker/st_cb_eglimage.c
index 34eb809..8531afb 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_eglimage.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_eglimage.c
@@ -96,6 +96,7 @@ st_bind_surface(struct gl_context *ctx, GLenum target,
                 struct gl_texture_image *texImage,
                 struct pipe_surface *ps)
 {
+   struct st_context *st = st_context(ctx);
    struct st_texture_object *stObj;
    struct st_texture_image *stImage;
    GLenum internalFormat;
@@ -124,7 +125,7 @@ st_bind_surface(struct gl_context *ctx, GLenum target,
 
    /* FIXME create a non-default sampler view from the pipe_surface? */
    pipe_resource_reference(&stObj->pt, ps->texture);
-   st_texture_release_all_sampler_views(stObj);
+   st_texture_release_all_sampler_views(st, stObj);
    pipe_resource_reference(&stImage->pt, stObj->pt);
 
    stObj->width0 = ps->width;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_texture.c b/mesalib/src/mesa/state_tracker/st_cb_texture.c
index dfa188a..a8dbb78 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_texture.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_texture.c
@@ -152,10 +152,11 @@ static void
 st_DeleteTextureObject(struct gl_context *ctx,
                        struct gl_texture_object *texObj)
 {
+   struct st_context *st = st_context(ctx);
    struct st_texture_object *stObj = st_texture_object(texObj);
 
    pipe_resource_reference(&stObj->pt, NULL);
-   st_texture_release_all_sampler_views(stObj);
+   st_texture_release_all_sampler_views(st, stObj);
    st_texture_free_sampler_views(stObj);
    _mesa_delete_texture_object(ctx, texObj);
 }
@@ -512,7 +513,7 @@ st_AllocTextureImageBuffer(struct gl_context *ctx,
    /* The parent texture object does not have space for this image */
 
    pipe_resource_reference(&stObj->pt, NULL);
-   st_texture_release_all_sampler_views(stObj);
+   st_texture_release_all_sampler_views(st, stObj);
 
    if (!guess_and_alloc_texture(st, stObj, stImage)) {
       /* Probably out of memory.
@@ -1571,13 +1572,13 @@ st_finalize_texture(struct gl_context *ctx,
 
       if (!st_obj) {
          pipe_resource_reference(&stObj->pt, NULL);
-         st_texture_release_all_sampler_views(stObj);
+         st_texture_release_all_sampler_views(st, stObj);
          return GL_TRUE;
       }
 
       if (st_obj->buffer != stObj->pt) {
          pipe_resource_reference(&stObj->pt, st_obj->buffer);
-         st_texture_release_all_sampler_views(stObj);
+         st_texture_release_all_sampler_views(st, stObj);
          stObj->width0 = stObj->pt->width0 / _mesa_get_format_bytes(tObj->_BufferObjectFormat);
          stObj->height0 = 1;
          stObj->depth0 = 1;
@@ -1598,7 +1599,7 @@ st_finalize_texture(struct gl_context *ctx,
        firstImage->pt != stObj->pt &&
        (!stObj->pt || firstImage->pt->last_level >= stObj->pt->last_level)) {
       pipe_resource_reference(&stObj->pt, firstImage->pt);
-      st_texture_release_all_sampler_views(stObj);
+      st_texture_release_all_sampler_views(st, stObj);
    }
 
    /* If this texture comes from a window system, there is nothing else to do. */
@@ -1646,7 +1647,7 @@ st_finalize_texture(struct gl_context *ctx,
           * gallium texture now.  We'll make a new one below.
           */
          pipe_resource_reference(&stObj->pt, NULL);
-         st_texture_release_all_sampler_views(stObj);
+         st_texture_release_all_sampler_views(st, stObj);
          st->dirty.st |= ST_NEW_FRAMEBUFFER;
       }
    }
diff --git a/mesalib/src/mesa/state_tracker/st_gen_mipmap.c b/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
index 18cf504..26e1c21 100644
--- a/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
@@ -124,7 +124,7 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
 
       /* release the old tex (will likely be freed too) */
       pipe_resource_reference(&oldTex, NULL);
-      st_texture_release_all_sampler_views(stObj);
+      st_texture_release_all_sampler_views(st, stObj);
    }
    else {
       /* Make sure that the base texture image data is present in the
diff --git a/mesalib/src/mesa/state_tracker/st_texture.c b/mesalib/src/mesa/state_tracker/st_texture.c
index 5996b7d..ada9841 100644
--- a/mesalib/src/mesa/state_tracker/st_texture.c
+++ b/mesalib/src/mesa/state_tracker/st_texture.c
@@ -519,12 +519,14 @@ st_texture_release_sampler_view(struct st_context *st,
 }
 
 void
-st_texture_release_all_sampler_views(struct st_texture_object *stObj)
+st_texture_release_all_sampler_views(struct st_context *st,
+                                     struct st_texture_object *stObj)
 {
    GLuint i;
 
+   /* XXX This should use sampler_views[i]->pipe, not st->pipe */
    for (i = 0; i < stObj->num_sampler_views; ++i)
-      pipe_sampler_view_reference(&stObj->sampler_views[i], NULL);
+      pipe_sampler_view_release(st->pipe, &stObj->sampler_views[i]);
 }
 
 
diff --git a/mesalib/src/mesa/state_tracker/st_texture.h b/mesalib/src/mesa/state_tracker/st_texture.h
index ce1cf8b..d66afcb 100644
--- a/mesalib/src/mesa/state_tracker/st_texture.h
+++ b/mesalib/src/mesa/state_tracker/st_texture.h
@@ -255,7 +255,8 @@ st_texture_release_sampler_view(struct st_context *st,
                                 struct st_texture_object *stObj);
 
 extern void
-st_texture_release_all_sampler_views(struct st_texture_object *stObj);
+st_texture_release_all_sampler_views(struct st_context *st,
+                                     struct st_texture_object *stObj);
 
 void
 st_texture_free_sampler_views(struct st_texture_object *stObj);
diff --git a/mesalib/src/mesa/state_tracker/st_vdpau.c b/mesalib/src/mesa/state_tracker/st_vdpau.c
index 8c10cda..6ccaf3e 100644
--- a/mesalib/src/mesa/state_tracker/st_vdpau.c
+++ b/mesalib/src/mesa/state_tracker/st_vdpau.c
@@ -139,7 +139,7 @@ st_vdpau_map_surface(struct gl_context *ctx, GLenum target, GLenum access,
                               texFormat);
 
    pipe_resource_reference(&stObj->pt, res);
-   st_texture_release_all_sampler_views(stObj);
+   st_texture_release_all_sampler_views(st, stObj);
    pipe_resource_reference(&stImage->pt, res);
 
    u_sampler_view_default_template(&templ, res, res->format);
@@ -172,7 +172,7 @@ st_vdpau_unmap_surface(struct gl_context *ctx, GLenum target, GLenum access,
    struct st_texture_image *stImage = st_texture_image(texImage);
 
    pipe_resource_reference(&stObj->pt, NULL);
-   st_texture_release_all_sampler_views(stObj);
+   st_texture_release_all_sampler_views(st, stObj);
    pipe_resource_reference(&stImage->pt, NULL);
 
    _mesa_dirty_texobj(ctx, texObj);
diff --git a/mesalib/src/mesa/vbo/vbo_exec_api.c b/mesalib/src/mesa/vbo/vbo_exec_api.c
index 2871100..5f8250e 100644
--- a/mesalib/src/mesa/vbo/vbo_exec_api.c
+++ b/mesalib/src/mesa/vbo/vbo_exec_api.c
@@ -997,7 +997,7 @@ void vbo_use_buffer_objects(struct gl_context *ctx)
 
    /* Allocate a real buffer object now */
    _mesa_reference_buffer_object(ctx, &exec->vtx.bufferobj, NULL);
-   exec->vtx.bufferobj = ctx->Driver.NewBufferObject(ctx, bufName, target);
+   exec->vtx.bufferobj = ctx->Driver.NewBufferObject(ctx, bufName);
    if (!ctx->Driver.BufferData(ctx, target, size, NULL, usage,
                                GL_MAP_WRITE_BIT |
                                GL_DYNAMIC_STORAGE_BIT |
diff --git a/mesalib/src/mesa/vbo/vbo_save_api.c b/mesalib/src/mesa/vbo/vbo_save_api.c
index 1c6b919..848eeda 100644
--- a/mesalib/src/mesa/vbo/vbo_save_api.c
+++ b/mesalib/src/mesa/vbo/vbo_save_api.c
@@ -191,9 +191,7 @@ alloc_vertex_store(struct gl_context *ctx)
     * user.  Perhaps there could be a special number for internal
     * buffers:
     */
-   vertex_store->bufferobj = ctx->Driver.NewBufferObject(ctx,
-                                                         VBO_BUF_ID,
-                                                         GL_ARRAY_BUFFER_ARB);
+   vertex_store->bufferobj = ctx->Driver.NewBufferObject(ctx, VBO_BUF_ID);
    if (vertex_store->bufferobj) {
       save->out_of_memory =
          !ctx->Driver.BufferData(ctx,

--
Alioth's /srv/git/code.x2go.org/vcxsrv.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/vcxsrv.git


More information about the x2go-commits mailing list