![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
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 "sndirsch@suse.com" 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 - tobias.johannes.klausmann@mni.thm.de + +- 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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org