Hello community,

here is the log from the commit of package Mesa for openSUSE:Factory checked in 
at 2012-10-03 08:04:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Mesa (Old)
 and      /work/SRC/openSUSE:Factory/.Mesa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Mesa", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/Mesa/Mesa.changes        2012-09-25 
14:18:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.Mesa.new/Mesa.changes   2012-10-03 
08:04:45.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 25 15:28:52 UTC 2012 - [email protected]
+
+- Update the Mesa 9.0 Git Snapshot
+  + Add the Git CommitID to the buildscript
+  + Minor cleanup of the buildscript
+
+-------------------------------------------------------------------

Old:
----
  mesa-8.98.5.tar.bz2

New:
----
  mesa-8.98.8.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Mesa.spec ++++++
--- /var/tmp/diff_new_pack.oaDLIZ/_old  2012-10-03 08:04:48.000000000 +0200
+++ /var/tmp/diff_new_pack.oaDLIZ/_new  2012-10-03 08:04:48.000000000 +0200
@@ -17,11 +17,12 @@
 
 
 %define glamor 1
-%define _version 8.98.5
+%define _version 8.98.8
 %define _name_archive mesa
+%define _id b1ce5749b996d6ce3dcf9bbd1537c46d14e62adb
 
 Name:           Mesa
-Version:        8.98.5
+Version:        8.98.8
 Release:        0
 BuildRequires:  autoconf >= 2.60
 BuildRequires:  automake
@@ -540,7 +541,6 @@
 install -m 644 src/mesa/drivers/osmesa/osmesa.pc \
    $RPM_BUILD_ROOT/usr/%{_lib}/pkgconfig
 
-#for dir in ../xc/doc/man/{GL/gl,GL/glx,GLU}; do
 for dir in ../xc/doc/man/{GL/gl,GL/glx}; do
 pushd $dir
   xmkmf -a

++++++ mesa-8.98.5.tar.bz2 -> mesa-8.98.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/configure.ac new/mesa-8.98.8/configure.ac
--- old/mesa-8.98.5/configure.ac        2012-09-15 00:27:51.000000000 +0200
+++ new/mesa-8.98.8/configure.ac        2012-09-25 21:05:20.000000000 +0200
@@ -859,13 +859,12 @@
 xyesno)
     # DRI-based GLX
     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
-    GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
     if test x"$driglx_direct" = xyes; then
         if test "x$have_libdrm" != xyes; then
             AC_MSG_ERROR([Direct rendering requires libdrm >= 
$LIBDRM_REQUIRED])
         fi
         PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
-        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto 
>= $DRI2PROTO_REQUIRED"
+        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
     fi
 
     # find the DRI deps for libGL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/docs/devinfo.html 
new/mesa-8.98.8/docs/devinfo.html
--- old/mesa-8.98.5/docs/devinfo.html   2012-09-15 00:27:51.000000000 +0200
+++ new/mesa-8.98.8/docs/devinfo.html   2012-09-25 21:05:20.000000000 +0200
@@ -169,7 +169,7 @@
   <dd>MESA_MAJOR, MESA_MINOR and MESA_TINY</dd>
   <dt>Makefile.am</dt>
   <dd>PACKAGE_VERSION</dd>
-  <dt>autoconf.ac</dt>
+  <dt>configure.ac</dt>
   <dd>AC_INIT</dd>
   <dt>src/mesa/main/version.h</dt>
   <dd>MESA_MAJOR, MESA_MINOR, MESA_PATCH and MESA_VERSION_STRING</dd>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/docs/relnotes-9.0.html 
new/mesa-8.98.8/docs/relnotes-9.0.html
--- old/mesa-8.98.5/docs/relnotes-9.0.html      2012-09-15 00:27:51.000000000 
+0200
+++ new/mesa-8.98.8/docs/relnotes-9.0.html      2012-09-25 21:05:20.000000000 
+0200
@@ -80,11 +80,10 @@
 </li>
 <li>Removed support for GL_ARB_shadow_ambient extension</li>
 <li>Removed Gallium3D - nvfx driver (use nv30 instead)</li>
-</ul>
-
-<p>
+<li>
 libGLU has been moved into its own repository, found at <a 
href="http://cgit.freedesktop.org/mesa/glu/";>http://cgit.freedesktop.org/mesa/glu/</a>
-</p>
+</li>
+</ul>
 
 
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/docs/relnotes.html 
new/mesa-8.98.8/docs/relnotes.html
--- old/mesa-8.98.5/docs/relnotes.html  2012-09-15 00:27:51.000000000 +0200
+++ new/mesa-8.98.8/docs/relnotes.html  2012-09-25 21:05:20.000000000 +0200
@@ -14,12 +14,14 @@
 </p>
 
 <ul>
-<li><a href="relnotes-8.1.html">8.1 release notes</a>
+<li><a href="relnotes-9.0.html">9.0 release notes</a>
 <li><a href="relnotes-8.0.4.html">8.0.4 release notes</a>
 <li><a href="relnotes-8.0.3.html">8.0.3 release notes</a>
 <li><a href="relnotes-8.0.2.html">8.0.2 release notes</a>
 <li><a href="relnotes-8.0.1.html">8.0.1 release notes</a>
 <li><a href="relnotes-8.0.html">8.0 release notes</a>
+<li><a href="relnotes-7.11.2.html">7.11.2 release notes</a>
+<li><a href="relnotes-7.11.1.html">7.11.1 release notes</a>
 <li><a href="relnotes-7.11.html">7.11 release notes</a>
 <li><a href="relnotes-7.10.3.html">7.10.3 release notes</a>
 <li><a href="relnotes-7.10.2.html">7.10.2 release notes</a>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mesa-8.98.5/src/gallium/auxiliary/draw/draw_context.c 
new/mesa-8.98.8/src/gallium/auxiliary/draw/draw_context.c
--- old/mesa-8.98.5/src/gallium/auxiliary/draw/draw_context.c   2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/auxiliary/draw/draw_context.c   2012-09-25 
21:05:20.000000000 +0200
@@ -621,7 +621,7 @@
           elem_size == 2 ||
           elem_size == 4);
    draw->pt.user.elts = elements;
-   draw->pt.user.eltSize = elem_size;
+   draw->pt.user.eltSizeIB = elem_size;
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mesa-8.98.5/src/gallium/auxiliary/draw/draw_private.h 
new/mesa-8.98.8/src/gallium/auxiliary/draw/draw_private.h
--- old/mesa-8.98.5/src/gallium/auxiliary/draw/draw_private.h   2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/auxiliary/draw/draw_private.h   2012-09-25 
21:05:20.000000000 +0200
@@ -174,6 +174,7 @@
          /** vertex element/index buffer (ex: glDrawElements) */
          const void *elts;
          /** bytes per index (0, 1, 2 or 4) */
+         unsigned eltSizeIB;
          unsigned eltSize;
          int eltBias;
          unsigned min_index;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/auxiliary/draw/draw_pt.c 
new/mesa-8.98.8/src/gallium/auxiliary/draw/draw_pt.c
--- old/mesa-8.98.5/src/gallium/auxiliary/draw/draw_pt.c        2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/auxiliary/draw/draw_pt.c        2012-09-25 
21:05:20.000000000 +0200
@@ -362,7 +362,7 @@
 
    assert(info->primitive_restart);
 
-   if (draw->pt.user.elts) {
+   if (draw->pt.user.eltSize) {
       /* indexed prims (draw_elements) */
       cur_start = start;
       cur_count = 0;
@@ -433,12 +433,8 @@
    info.count = count;
    info.start_instance = startInstance;
    info.instance_count = instanceCount;
-
-   info.indexed = (draw->pt.user.elts != NULL);
-   if (!info.indexed) {
-      info.min_index = start;
-      info.max_index = start + count - 1;
-   }
+   info.min_index = start;
+   info.max_index = start + count - 1;
 
    draw_vbo(draw, &info);
 }
@@ -465,6 +461,7 @@
    draw->pt.user.eltBias = info->index_bias;
    draw->pt.user.min_index = info->min_index;
    draw->pt.user.max_index = info->max_index;
+   draw->pt.user.eltSize = info->indexed ? draw->pt.user.eltSizeIB : 0;
 
    if (0)
       debug_printf("draw_vbo(mode=%u start=%u count=%u):\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/auxiliary/util/u_blitter.c 
new/mesa-8.98.8/src/gallium/auxiliary/util/u_blitter.c
--- old/mesa-8.98.5/src/gallium/auxiliary/util/u_blitter.c      2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/auxiliary/util/u_blitter.c      2012-09-25 
21:05:20.000000000 +0200
@@ -1213,6 +1213,21 @@
       pipe->bind_fragment_sampler_states(pipe, 2, samplers);
 
       pipe_sampler_view_reference(&views[1], NULL);
+   } else if (blit_stencil) {
+      /* Set a stencil-only sampler view for it not to sample depth instead. */
+      struct pipe_sampler_view templ;
+      struct pipe_sampler_view *view;
+
+      templ = *src;
+      templ.format = util_format_stencil_only(templ.format);
+      assert(templ.format != PIPE_FORMAT_NONE);
+
+      view = pipe->create_sampler_view(pipe, src->texture, &templ);
+
+      pipe->set_fragment_sampler_views(pipe, 1, &view);
+      pipe->bind_fragment_sampler_states(pipe, 1, &ctx->sampler_state);
+
+      pipe_sampler_view_reference(&view, NULL);
    } else {
       pipe->set_fragment_sampler_views(pipe, 1, &src);
       pipe->bind_fragment_sampler_states(pipe, 1, &ctx->sampler_state);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/drivers/r300/r300_context.h 
new/mesa-8.98.8/src/gallium/drivers/r300/r300_context.h
--- old/mesa-8.98.5/src/gallium/drivers/r300/r300_context.h     2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r300/r300_context.h     2012-09-25 
21:05:20.000000000 +0200
@@ -41,6 +41,16 @@
 struct r300_vertex_shader;
 struct r300_stencilref_context;
 
+enum colormask_swizzle {
+    COLORMASK_BGRA,
+    COLORMASK_RGBA,
+    COLORMASK_RRRR,
+    COLORMASK_AAAA,
+    COLORMASK_GRRG,
+    COLORMASK_ARRA,
+    COLORMASK_NUM_SWIZZLES
+};
+
 struct r300_atom {
     /* Name, for debugging. */
     const char* name;
@@ -66,7 +76,7 @@
 struct r300_blend_state {
     struct pipe_blend_state state;
 
-    uint32_t cb_clamp[8];
+    uint32_t cb_clamp[COLORMASK_NUM_SWIZZLES][8];
     uint32_t cb_noclamp[8];
     uint32_t cb_no_readwrite[8];
 };
@@ -320,6 +330,8 @@
 
     /* Whether the CBZB clear is allowed on the surface. */
     boolean cbzb_allowed;
+
+    unsigned colormask_swizzle;
 };
 
 struct r300_texture_desc {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/drivers/r300/r300_emit.c 
new/mesa-8.98.8/src/gallium/drivers/r300/r300_emit.c
--- old/mesa-8.98.5/src/gallium/drivers/r300/r300_emit.c        2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r300/r300_emit.c        2012-09-25 
21:05:20.000000000 +0200
@@ -45,10 +45,12 @@
     CS_LOCALS(r300);
 
     if (fb->nr_cbufs) {
-        if (fb->cbufs[0]->format == PIPE_FORMAT_R16G16B16A16_FLOAT)
+        if (fb->cbufs[0]->format == PIPE_FORMAT_R16G16B16A16_FLOAT) {
             WRITE_CS_TABLE(blend->cb_noclamp, size);
-        else
-            WRITE_CS_TABLE(blend->cb_clamp, size);
+        } else {
+            unsigned swz = r300_surface(fb->cbufs[0])->colormask_swizzle;
+            WRITE_CS_TABLE(blend->cb_clamp[swz], size);
+        }
     } else {
         WRITE_CS_TABLE(blend->cb_no_readwrite, size);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/drivers/r300/r300_state.c 
new/mesa-8.98.8/src/gallium/drivers/r300/r300_state.c
--- old/mesa-8.98.5/src/gallium/drivers/r300/r300_state.c       2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r300/r300_state.c       2012-09-25 
21:05:20.000000000 +0200
@@ -169,15 +169,52 @@
             dstA == PIPE_BLENDFACTOR_ONE);
 }
 
+/* The hardware colormask is clunky a must be swizzled depending on the format.
+ * This was figured out by trial-and-error. */
 static unsigned bgra_cmask(unsigned mask)
 {
-    /* Gallium uses RGBA color ordering while R300 expects BGRA. */
-
     return ((mask & PIPE_MASK_R) << 2) |
            ((mask & PIPE_MASK_B) >> 2) |
            (mask & (PIPE_MASK_G | PIPE_MASK_A));
 }
 
+static unsigned rgba_cmask(unsigned mask)
+{
+    return mask & PIPE_MASK_RGBA;
+}
+
+static unsigned rrrr_cmask(unsigned mask)
+{
+    return (mask & PIPE_MASK_R) |
+           ((mask & PIPE_MASK_R) << 1) |
+           ((mask & PIPE_MASK_R) << 2) |
+           ((mask & PIPE_MASK_R) << 3);
+}
+
+static unsigned aaaa_cmask(unsigned mask)
+{
+    return ((mask & PIPE_MASK_A) >> 3) |
+           ((mask & PIPE_MASK_A) >> 2) |
+           ((mask & PIPE_MASK_A) >> 1) |
+           (mask & PIPE_MASK_A);
+}
+
+static unsigned grrg_cmask(unsigned mask)
+{
+    return ((mask & PIPE_MASK_R) << 1) |
+           ((mask & PIPE_MASK_R) << 2) |
+           ((mask & PIPE_MASK_G) >> 1) |
+           ((mask & PIPE_MASK_G) << 2);
+}
+
+static unsigned arra_cmask(unsigned mask)
+{
+    return ((mask & PIPE_MASK_R) << 1) |
+           ((mask & PIPE_MASK_R) << 2) |
+           ((mask & PIPE_MASK_A) >> 3) |
+           (mask & PIPE_MASK_A);
+}
+
 /* Create a new blend state based on the CSO blend state.
  *
  * This encompasses alpha blending, logic/raster ops, and blend dithering. */
@@ -190,9 +227,9 @@
     uint32_t blend_control_noclamp = 0;    /* R300_RB3D_CBLEND: 0x4e04 */
     uint32_t alpha_blend_control = 0; /* R300_RB3D_ABLEND: 0x4e08 */
     uint32_t alpha_blend_control_noclamp = 0; /* R300_RB3D_ABLEND: 0x4e08 */
-    uint32_t color_channel_mask = 0;  /* R300_RB3D_COLOR_CHANNEL_MASK: 0x4e0c 
*/
     uint32_t rop = 0;                 /* R300_RB3D_ROPCNTL: 0x4e18 */
     uint32_t dither = 0;              /* R300_RB3D_DITHER_CTL: 0x4e50 */
+    int i;
     CB_LOCALS;
 
     blend->state = *state;
@@ -331,20 +368,6 @@
                 (state->logicop_func) << R300_RB3D_ROPCNTL_ROP_SHIFT;
     }
 
-    /* Color channel masks for all MRTs. */
-    color_channel_mask = bgra_cmask(state->rt[0].colormask);
-    if (r300screen->caps.is_r500 && state->independent_blend_enable) {
-        if (state->rt[1].blend_enable) {
-            color_channel_mask |= bgra_cmask(state->rt[1].colormask) << 4;
-        }
-        if (state->rt[2].blend_enable) {
-            color_channel_mask |= bgra_cmask(state->rt[2].colormask) << 8;
-        }
-        if (state->rt[3].blend_enable) {
-            color_channel_mask |= bgra_cmask(state->rt[3].colormask) << 12;
-        }
-    }
-
     /* Neither fglrx nor classic r300 ever set this, regardless of dithering
      * state. Since it's an optional implementation detail, we can leave it
      * out and never dither.
@@ -358,14 +381,27 @@
     */
 
     /* Build a command buffer. */
-    BEGIN_CB(blend->cb_clamp, 8);
-    OUT_CB_REG(R300_RB3D_ROPCNTL, rop);
-    OUT_CB_REG_SEQ(R300_RB3D_CBLEND, 3);
-    OUT_CB(blend_control);
-    OUT_CB(alpha_blend_control);
-    OUT_CB(color_channel_mask);
-    OUT_CB_REG(R300_RB3D_DITHER_CTL, dither);
-    END_CB;
+    {
+        unsigned (*func[COLORMASK_NUM_SWIZZLES])(unsigned) = {
+            bgra_cmask,
+            rgba_cmask,
+            rrrr_cmask,
+            aaaa_cmask,
+            grrg_cmask,
+            arra_cmask
+        };
+
+        for (i = 0; i < COLORMASK_NUM_SWIZZLES; i++) {
+            BEGIN_CB(blend->cb_clamp[i], 8);
+            OUT_CB_REG(R300_RB3D_ROPCNTL, rop);
+            OUT_CB_REG_SEQ(R300_RB3D_CBLEND, 3);
+            OUT_CB(blend_control);
+            OUT_CB(alpha_blend_control);
+            OUT_CB(func[i](state->rt[0].colormask));
+            OUT_CB_REG(R300_RB3D_DITHER_CTL, dither);
+            END_CB;
+        }
+    }
 
     /* Build a command buffer. */
     BEGIN_CB(blend->cb_noclamp, 8);
@@ -373,7 +409,7 @@
     OUT_CB_REG_SEQ(R300_RB3D_CBLEND, 3);
     OUT_CB(blend_control_noclamp);
     OUT_CB(alpha_blend_control_noclamp);
-    OUT_CB(color_channel_mask);
+    OUT_CB(rgba_cmask(state->rt[0].colormask));
     OUT_CB_REG(R300_RB3D_DITHER_CTL, dither);
     END_CB;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/drivers/r300/r300_texture.c 
new/mesa-8.98.8/src/gallium/drivers/r300/r300_texture.c
--- old/mesa-8.98.5/src/gallium/drivers/r300/r300_texture.c     2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r300/r300_texture.c     2012-09-25 
21:05:20.000000000 +0200
@@ -704,10 +704,87 @@
     }
 }
 
+static uint32_t r300_translate_colormask_swizzle(enum pipe_format format)
+{
+    switch (format) {
+    case PIPE_FORMAT_A8_UNORM:
+    case PIPE_FORMAT_A8_SNORM:
+    case PIPE_FORMAT_A16_UNORM:
+    case PIPE_FORMAT_A16_SNORM:
+    case PIPE_FORMAT_A16_FLOAT:
+    case PIPE_FORMAT_A32_FLOAT:
+        return COLORMASK_AAAA;
+
+    case PIPE_FORMAT_I8_UNORM:
+    case PIPE_FORMAT_I8_SNORM:
+    case PIPE_FORMAT_L8_UNORM:
+    case PIPE_FORMAT_L8_SNORM:
+    case PIPE_FORMAT_R8_UNORM:
+    case PIPE_FORMAT_R8_SNORM:
+    case PIPE_FORMAT_R32_FLOAT:
+    case PIPE_FORMAT_L32_FLOAT:
+    case PIPE_FORMAT_I32_FLOAT:
+        return COLORMASK_RRRR;
+
+    case PIPE_FORMAT_L8A8_SNORM:
+    case PIPE_FORMAT_L8A8_UNORM:
+    case PIPE_FORMAT_L16A16_UNORM:
+    case PIPE_FORMAT_L16A16_SNORM:
+    case PIPE_FORMAT_L16A16_FLOAT:
+    case PIPE_FORMAT_L32A32_FLOAT:
+        return COLORMASK_ARRA;
+
+    case PIPE_FORMAT_R8G8_SNORM:
+    case PIPE_FORMAT_R8G8_UNORM:
+    case PIPE_FORMAT_R16G16_UNORM:
+    case PIPE_FORMAT_R16G16_SNORM:
+    case PIPE_FORMAT_R16G16_FLOAT:
+    case PIPE_FORMAT_R32G32_FLOAT:
+        return COLORMASK_GRRG;
+
+    case PIPE_FORMAT_B5G6R5_UNORM:
+    case PIPE_FORMAT_B5G5R5A1_UNORM:
+    case PIPE_FORMAT_B5G5R5X1_UNORM:
+    case PIPE_FORMAT_B4G4R4A4_UNORM:
+    case PIPE_FORMAT_B4G4R4X4_UNORM:
+    case PIPE_FORMAT_B8G8R8A8_UNORM:
+    /*case PIPE_FORMAT_B8G8R8A8_SNORM:*/
+    case PIPE_FORMAT_B8G8R8X8_UNORM:
+    /*case PIPE_FORMAT_B8G8R8X8_SNORM:*/
+    case PIPE_FORMAT_B10G10R10A2_UNORM:
+        return COLORMASK_BGRA;
+
+    case PIPE_FORMAT_R8G8B8X8_UNORM:
+    /*case PIPE_FORMAT_R8G8B8X8_SNORM:*/
+    case PIPE_FORMAT_R8G8B8A8_UNORM:
+    case PIPE_FORMAT_R8G8B8A8_SNORM:
+    case PIPE_FORMAT_R10G10B10A2_UNORM:
+    case PIPE_FORMAT_R10G10B10X2_SNORM:
+    case PIPE_FORMAT_R16_UNORM:
+    case PIPE_FORMAT_R16G16B16A16_UNORM:
+    case PIPE_FORMAT_R16_SNORM:
+    case PIPE_FORMAT_R16G16B16A16_SNORM:
+    case PIPE_FORMAT_R16_FLOAT:
+    case PIPE_FORMAT_R16G16B16A16_FLOAT:
+    case PIPE_FORMAT_R32G32B32A32_FLOAT:
+    case PIPE_FORMAT_L16_UNORM:
+    case PIPE_FORMAT_L16_SNORM:
+    case PIPE_FORMAT_L16_FLOAT:
+    case PIPE_FORMAT_I16_UNORM:
+    case PIPE_FORMAT_I16_SNORM:
+    case PIPE_FORMAT_I16_FLOAT:
+        return COLORMASK_RGBA;
+
+    default:
+        return ~0; /* Unsupported. */
+    }
+}
+
 boolean r300_is_colorbuffer_format_supported(enum pipe_format format)
 {
     return r300_translate_colorformat(format) != ~0 &&
-           r300_translate_out_fmt(format) != ~0;
+           r300_translate_out_fmt(format) != ~0 &&
+           r300_translate_colormask_swizzle(format) != ~0;
 }
 
 boolean r300_is_zs_format_supported(enum pipe_format format)
@@ -827,6 +904,8 @@
                 R300_COLOR_TILE(tex->tex.macrotile[level]) |
                 R300_COLOR_MICROTILE(tex->tex.microtile);
         surf->format = r300_translate_out_fmt(surf->base.format);
+        surf->colormask_swizzle =
+            r300_translate_colormask_swizzle(surf->base.format);
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mesa-8.98.5/src/gallium/drivers/r600/evergreen_state.c 
new/mesa-8.98.8/src/gallium/drivers/r600/evergreen_state.c
--- old/mesa-8.98.5/src/gallium/drivers/r600/evergreen_state.c  2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r600/evergreen_state.c  2012-09-25 
21:05:20.000000000 +0200
@@ -643,13 +643,6 @@
                default:
                        return FALSE;
                }
-
-               /* require render-target support for multisample resources */
-               if (util_format_is_depth_or_stencil(format)) {
-                       usage |= PIPE_BIND_DEPTH_STENCIL;
-               } else {
-                       usage |= PIPE_BIND_RENDER_TARGET;
-               }
        }
 
        if ((usage & PIPE_BIND_SAMPLER_VIEW) &&
@@ -917,7 +910,8 @@
 
        if (rctx->chip_class == CAYMAN) {
                r600_pipe_state_add_reg(rstate, CM_R_028BE4_PA_SU_VTX_CNTL,
-                                       
S_028C08_PIX_CENTER_HALF(state->gl_rasterization_rules));
+                                       
S_028C08_PIX_CENTER_HALF(state->gl_rasterization_rules) |
+                                       
S_028C08_QUANT_MODE(V_028C08_X_1_256TH));
        } else {
                r600_pipe_state_add_reg(rstate, R_028C08_PA_SU_VTX_CNTL,
                                        
S_028C08_PIX_CENTER_HALF(state->gl_rasterization_rules) |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/drivers/r600/r600_state.c 
new/mesa-8.98.8/src/gallium/drivers/r600/r600_state.c
--- old/mesa-8.98.5/src/gallium/drivers/r600/r600_state.c       2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r600/r600_state.c       2012-09-25 
21:05:20.000000000 +0200
@@ -592,6 +592,10 @@
                    format == PIPE_FORMAT_R11G11B10_FLOAT)
                        return FALSE;
 
+               /* MSAA integer colorbuffers hang. */
+               if (util_format_is_pure_integer(format))
+                       return FALSE;
+
                switch (sample_count) {
                case 2:
                case 4:
@@ -600,15 +604,6 @@
                default:
                        return FALSE;
                }
-
-               /* require render-target support for multisample resources */
-               if (util_format_is_depth_or_stencil(format)) {
-                       usage |= PIPE_BIND_DEPTH_STENCIL;
-               } else if (util_format_is_pure_integer(format)) {
-                       return FALSE; /* no integer textures */
-               } else {
-                       usage |= PIPE_BIND_RENDER_TARGET;
-               }
        }
 
        if ((usage & PIPE_BIND_SAMPLER_VIEW) &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/drivers/r600/r600_texture.c 
new/mesa-8.98.8/src/gallium/drivers/r600/r600_texture.c
--- old/mesa-8.98.5/src/gallium/drivers/r600/r600_texture.c     2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/drivers/r600/r600_texture.c     2012-09-25 
21:05:20.000000000 +0200
@@ -592,13 +592,6 @@
        return true;
 }
 
-/* Needs adjustment for pixelformat:
- */
-static INLINE unsigned u_box_volume( const struct pipe_box *box )
-{
-       return box->width * box->depth * box->height;
-}
-
 struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx,
                                                struct pipe_resource *texture,
                                                unsigned level,
@@ -622,9 +615,6 @@
                use_staging_texture = TRUE;
        }
 
-       if ((usage & PIPE_TRANSFER_READ) && u_box_volume(box) > 1024)
-               use_staging_texture = TRUE;
-
        /* Use a staging texture for uploads if the underlying BO is busy. */
        if (!(usage & PIPE_TRANSFER_READ) &&
            (rctx->ws->cs_is_buffer_referenced(rctx->cs, rtex->resource.cs_buf, 
RADEON_USAGE_READWRITE) ||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/gallium/targets/xorg-i915/Makefile 
new/mesa-8.98.8/src/gallium/targets/xorg-i915/Makefile
--- old/mesa-8.98.5/src/gallium/targets/xorg-i915/Makefile      2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/targets/xorg-i915/Makefile      2012-09-25 
21:05:20.000000000 +0200
@@ -1,7 +1,7 @@
 TOP = ../../../..
 include $(TOP)/configs/current
 
-LIBNAME = modesetting_drv.so
+LIBNAME = i915_drv.so
 
 C_SOURCES = \
        intel_target.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mesa-8.98.5/src/gallium/targets/xorg-i915/intel_xorg.c 
new/mesa-8.98.8/src/gallium/targets/xorg-i915/intel_xorg.c
--- old/mesa-8.98.5/src/gallium/targets/xorg-i915/intel_xorg.c  2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/targets/xorg-i915/intel_xorg.c  2012-09-25 
21:05:20.000000000 +0200
@@ -52,7 +52,7 @@
 };
 
 static XF86ModuleVersionInfo intel_xorg_version = {
-    "modesetting",
+    "i915",
     MODULEVENDORSTRING,
     MODINFOSTRING1,
     MODINFOSTRING2,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mesa-8.98.5/src/gallium/winsys/radeon/drm/radeon_drm_cs.c 
new/mesa-8.98.8/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
--- old/mesa-8.98.5/src/gallium/winsys/radeon/drm/radeon_drm_cs.c       
2012-09-15 00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/winsys/radeon/drm/radeon_drm_cs.c       
2012-09-25 21:05:20.000000000 +0200
@@ -214,9 +214,10 @@
     unsigned hash = bo->handle & (sizeof(csc->is_handle_added)-1);
 
     if (csc->is_handle_added[hash]) {
-        reloc = csc->relocs_hashlist[hash];
+        i = csc->reloc_indices_hashlist[hash];
+        reloc = &csc->relocs[i];
         if (reloc->handle == bo->handle) {
-            return csc->reloc_indices_hashlist[hash];
+            return i;
         }
 
         /* Hash collision, look for the BO in the list of relocs linearly. */
@@ -233,7 +234,6 @@
                  *         AAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCC
                  * will collide here: ^ and here:   ^,
                  * meaning that we should get very few collisions in the end. 
*/
-                csc->relocs_hashlist[hash] = reloc;
                 csc->reloc_indices_hashlist[hash] = i;
                 /*printf("write_reloc collision, hash: %i, handle: %i\n", 
hash, bo->handle);*/
                 return i;
@@ -257,10 +257,11 @@
     enum radeon_bo_domain wd = usage & RADEON_USAGE_WRITE ? domains : 0;
 
     if (csc->is_handle_added[hash]) {
-        reloc = csc->relocs_hashlist[hash];
+        i = csc->reloc_indices_hashlist[hash];
+        reloc = &csc->relocs[i];
         if (reloc->handle == bo->handle) {
             update_reloc_domains(reloc, rd, wd, added_domains);
-            return csc->reloc_indices_hashlist[hash];
+            return i;
         }
 
         /* Hash collision, look for the BO in the list of relocs linearly. */
@@ -270,7 +271,6 @@
             if (reloc->handle == bo->handle) {
                 update_reloc_domains(reloc, rd, wd, added_domains);
 
-                csc->relocs_hashlist[hash] = reloc;
                 csc->reloc_indices_hashlist[hash] = i;
                 /*printf("write_reloc collision, hash: %i, handle: %i\n", 
hash, bo->handle);*/
                 return i;
@@ -303,7 +303,6 @@
     reloc->flags = 0;
 
     csc->is_handle_added[hash] = TRUE;
-    csc->relocs_hashlist[hash] = reloc;
     csc->reloc_indices_hashlist[hash] = csc->crelocs;
 
     csc->chunks[1].length_dw += RELOC_DWORDS;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mesa-8.98.5/src/gallium/winsys/radeon/drm/radeon_drm_cs.h 
new/mesa-8.98.8/src/gallium/winsys/radeon/drm/radeon_drm_cs.h
--- old/mesa-8.98.5/src/gallium/winsys/radeon/drm/radeon_drm_cs.h       
2012-09-15 00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/gallium/winsys/radeon/drm/radeon_drm_cs.h       
2012-09-25 21:05:20.000000000 +0200
@@ -48,7 +48,6 @@
 
     /* 0 = BO not added, 1 = BO added */
     char                        is_handle_added[256];
-    struct drm_radeon_cs_reloc  *relocs_hashlist[256];
     unsigned                    reloc_indices_hashlist[256];
 
     unsigned                    used_vram;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/glx/apple/apple_visual.c 
new/mesa-8.98.8/src/glx/apple/apple_visual.c
--- old/mesa-8.98.5/src/glx/apple/apple_visual.c        2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/glx/apple/apple_visual.c        2012-09-25 
21:05:20.000000000 +0200
@@ -116,7 +116,7 @@
       *uses_stereo = false;
    }
 
-   if (mode->doubleBufferMode) {
+   if (!offscreen && mode->doubleBufferMode) {
       attr[numattr++] = kCGLPFADoubleBuffer;
       *double_buffered = true;
    }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/mesa/drivers/common/meta.c 
new/mesa-8.98.8/src/mesa/drivers/common/meta.c
--- old/mesa-8.98.5/src/mesa/drivers/common/meta.c      2012-09-15 
00:27:51.000000000 +0200
+++ new/mesa-8.98.8/src/mesa/drivers/common/meta.c      2012-09-25 
21:05:20.000000000 +0200
@@ -648,19 +648,22 @@
             if (ctx->Texture.Unit[u].Enabled ||
                 ctx->Texture.Unit[u].TexGenEnabled) {
                _mesa_ActiveTextureARB(GL_TEXTURE0 + u);
-               _mesa_set_enable(ctx, GL_TEXTURE_1D, GL_FALSE);
                _mesa_set_enable(ctx, GL_TEXTURE_2D, GL_FALSE);
-               _mesa_set_enable(ctx, GL_TEXTURE_3D, GL_FALSE);
                if (ctx->Extensions.ARB_texture_cube_map)
                   _mesa_set_enable(ctx, GL_TEXTURE_CUBE_MAP, GL_FALSE);
-               if (ctx->Extensions.NV_texture_rectangle)
-                  _mesa_set_enable(ctx, GL_TEXTURE_RECTANGLE, GL_FALSE);
                if (ctx->Extensions.OES_EGL_image_external)
                   _mesa_set_enable(ctx, GL_TEXTURE_EXTERNAL_OES, GL_FALSE);
-               _mesa_set_enable(ctx, GL_TEXTURE_GEN_S, GL_FALSE);
-               _mesa_set_enable(ctx, GL_TEXTURE_GEN_T, GL_FALSE);
-               _mesa_set_enable(ctx, GL_TEXTURE_GEN_R, GL_FALSE);
-               _mesa_set_enable(ctx, GL_TEXTURE_GEN_Q, GL_FALSE);
+
+               if (ctx->API == API_OPENGL) {
+                  _mesa_set_enable(ctx, GL_TEXTURE_1D, GL_FALSE);
+                  _mesa_set_enable(ctx, GL_TEXTURE_3D, GL_FALSE);
+                  if (ctx->Extensions.NV_texture_rectangle)
+                     _mesa_set_enable(ctx, GL_TEXTURE_RECTANGLE, GL_FALSE);
+                  _mesa_set_enable(ctx, GL_TEXTURE_GEN_S, GL_FALSE);
+                  _mesa_set_enable(ctx, GL_TEXTURE_GEN_T, GL_FALSE);
+                  _mesa_set_enable(ctx, GL_TEXTURE_GEN_R, GL_FALSE);
+                  _mesa_set_enable(ctx, GL_TEXTURE_GEN_Q, GL_FALSE);
+               }
             }
          }
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/mesa/main/fbobject.c 
new/mesa-8.98.8/src/mesa/main/fbobject.c
--- old/mesa-8.98.5/src/mesa/main/fbobject.c    2012-09-15 00:27:51.000000000 
+0200
+++ new/mesa-8.98.8/src/mesa/main/fbobject.c    2012-09-25 21:05:20.000000000 
+0200
@@ -2802,7 +2802,8 @@
 {
    /* The simple case where we know the backing formats are the same.
     */
-   if (colorReadRb->Format == colorDrawRb->Format) {
+   if (_mesa_get_srgb_format_linear(colorReadRb->Format) ==
+       _mesa_get_srgb_format_linear(colorDrawRb->Format)) {
       return GL_TRUE;
    }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mesa-8.98.5/src/mesa/main/teximage.c 
new/mesa-8.98.8/src/mesa/main/teximage.c
--- old/mesa-8.98.5/src/mesa/main/teximage.c    2012-09-15 00:27:51.000000000 
+0200
+++ new/mesa-8.98.8/src/mesa/main/teximage.c    2012-09-25 21:05:20.000000000 
+0200
@@ -2808,7 +2808,7 @@
    /* If the application requested compression to an S3TC format but we don't
     * have the DTXn library, force a generic compressed format instead.
     */
-   if (internalFormat != format) {
+   if (internalFormat != format && format != GL_NONE) {
       const GLenum before = internalFormat;
 
       switch (internalFormat) {

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to