Mesa (7.11): 75 new commits

Marek Olšák mareko at kemper.freedesktop.org
Sun Oct 2 12:16:37 PDT 2011


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1bbf124ff8bb30fd7209e89267bc293359f55826
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 18 21:37:31 2011 -0700

    glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.
    
    This patch fixes a bug in ir_hirearchical_visitor: when traversing an
    exec_list representing the formal or actual parameters of a function,
    it modified base_ir to point to each parameter in turn, rather than
    leaving it as a pointer to the enclosing statement.  This was a
    problem, since base_ir is used by visitor classes to locate the
    statement containing the node being visited (usually so that
    additional statements can be inserted before or after it).  Without
    this fix, visitors might attempt to insert statements into parameter
    lists.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit cc81eb09b928389f926b3512c18b3298777d2928)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca7560765c7d2d6caa494d3697a0a7c7d3e3d076
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Sep 7 11:53:20 2011 -0700

    glsl: When assiging from a whole array, mark it as used.
    
    Fixes piglit link-uniform-array-size.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 407a1001aefcb15e8d066031417d91ea22f1daf1)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=878d701da4d783c4208195c4fc1ede4a58e6cad4
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Aug 5 21:40:50 2011 -0700

    glsl: When assigning to a whole array, mark the array as accessed.
    
    The vs-varying-array-mat2-col-row-wr test writes a mat2[3] constant to
    a mat2[3] varying out array, and also statically accesses element 1 of
    it on the VS and FS sides.  At link time it would get trimmed down to
    just 2 elements, and then codegen of the VS would end up generating
    assignments to the unallocated last entry of the array.  On the new
    i965 VS backend, that happened to land on the vertex position.
    
    Some issues remain in this test on softpipe, i965/old-vs and
    i965/new-vs on visual inspection, but i965 is passing because only one
    green pixel is probed, not the whole split green/red quad.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c19b963ad6c2377acf0dfc3f145b8430ca7abc45
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sat Sep 10 07:48:46 2011 -0700

    glsl: Remove field array_lvalue from ir_variable.
    
    The array_lvalue field was attempting to enforce the restriction that
    whole arrays can't be used on the left-hand side of an assignment in
    GLSL 1.10 or GLSL ES, and can't be used as out or inout parameters in
    GLSL 1.10.
    
    However, it was buggy (it didn't work properly for built-in arrays),
    and it was clumsy (it unnecessarily kept track on a
    variable-by-variable basis, and it didn't cover the GLSL ES case).
    
    This patch removes the array_lvalue field completely in favor of
    explicit checks in ast_parameter_declarator::hir() (this check is
    added) and in do_assignment (this check was already present).
    
    This causes a benign behavioral change: when the user attempts to pass
    an array as an out or inout parameter of a function in GLSL 1.10, the
    error is now flagged at the time the function definition is
    encountered, rather than at the time of invocation.  Previously we
    allowed such functions to be defined, and only flagged the error if
    they were invoked.
    
    Fixes Piglit tests
    spec/glsl-1.10/compiler/qualifiers/fn-{out,inout}-array-prohibited*
    and
    spec/glsl-1.20/compiler/assignment-operators/assign-builtin-array-allowed.vert.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit 00792e3586746c833ffc9bb65712e38038916e06)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=95185c7fe26a7bfd251507d3d3b6748a445316fa
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Sep 7 12:03:36 2011 -0700

    glsl: Clarify error message about whole-array assignment in GLSL 1.10.
    
    Previously, it would produce:
    
        Failed to compile FS: 0:6(7): error: non-lvalue in assignment
    
    and now it produces:
    
        Failed to compile FS: 0:5(7): error: whole array assignment is not
        allowed in GLSL 1.10 or GLSL ES 1.00.
    
    Also, add spec quotation to the two places we have code for array
    lvalues in GLSL 1.10.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 525cec98a5c65c27c62fed0cff706bca50bf8c6e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1221a88119dca94eeb6b9b6dd4542c2f53d3e6e
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Tue Sep 6 10:01:51 2011 -0700

    glsl: Rework oversize array check for gl_TexCoord.
    
    The check now applies both when explicitly declaring the size of
    gl_TexCoord and when implicitly setting the size of gl_TexCoord by
    accessing it using integral constant expressions.
    
    This is prep work for adding similar size checks to gl_ClipDistance.
    
    Fixes piglit tests texcoord/implicit-access-max.{frag,vert}.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 93b9758d01e2542ec3c2b8672cca0ae19b257aac)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f732b5a9990c363f8ced3ed4b07cef8d5ca7570f
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Aug 12 10:20:34 2011 -0700

    glsl: Fix type error when lowering integer divisions
    
    This patch fixes a bug when lowering an integer division:
    
      x/y
    
    to a multiplication by a reciprocal:
    
      int(float(x)*reciprocal(float(y)))
    
    If x was a plain int and y was an ivecN, the lowering pass
    incorrectly assigned the type of the product to be float, when in fact
    it should be vecN.  This caused mesa to abort with an IR validation
    error.
    
    Fixes piglit tests {fs,vs}-op-div-int-ivec{2,3,4}.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit af501e2b29c7fb161671dc5b3395eee1d1b16d3f)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0129d5297b5cce2b71dd44e8fa1b4d97411e6481
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Tue Aug 2 14:34:17 2011 -0700

    glsl: Perform implicit type conversions on function call out parameters.
    
    When an out parameter undergoes an implicit type conversion, we need
    to store it in a temporary, and then after the call completes, convert
    the resulting value.  In other words, we convert code like the
    following:
    
    void f(out int x);
    float value;
    f(value);
    
    Into IR that's equivalent to this:
    
    void f(out int x);
    float value;
    int out_parameter_conversion;
    f(out_parameter_conversion);
    value = float(out_parameter_conversion);
    
    This transformation needs to happen during ast-to-IR convertion (as
    opposed to, say, a lowering pass), because it is invalid IR for formal
    and actual parameters to have types that don't match.
    
    Fixes piglit tests
    spec/glsl-1.20/compiler/qualifiers/out-conversion-int-to-float.vert and
    spec/glsl-1.20/execution/qualifiers/vs-out-conversion-*.shader_test,
    and bug 39651.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39651
    
    Reviewed-by: Chad Versace <chad at chad-versace.us>
    (cherry picked from commit 67b5a3267d639c31d3ac4073be877ffb0f5637d3)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=27f00df2b74778d30e9ba897ac1a26dd376b3751
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Mon Aug 1 15:23:07 2011 -0700

    glsl: Check array size is const before asserting that no IR was generated.
    
    process_array_type() contains an assertion to verify that no IR
    instructions are generated while processing the expression that
    specifies the size of the array.  This assertion needs to happen
    _after_ checking whether the expression is constant.  Otherwise we may
    crash on an illegal shader rather than reporting an error.
    
    Fixes piglit tests array-size-non-builtin-function.vert and
    array-size-with-side-effect.vert.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit d4144a123b603d3c33cb356cf3c8e5ae4653594e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8dcfe15a9ab9c9f2c889c3bd103f6d6491d4c4ec
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sat Jul 30 11:55:53 2011 -0700

    glsl: Constant-fold built-in functions before outputting IR
    
    Rearranged the logic for converting the ast for a function call to
    hir, so that we constant fold before emitting any IR.  Previously we
    would emit some IR, and then only later detect whether we could
    constant fold.  The unnecessary IR would usually get cleaned up by a
    later optimization step, however in the case of a builtin function
    being used to compute an array size, it was causing an assertion.
    
    Fixes Piglit test array-size-constant-relational.vert.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38625
    (cherry picked from commit 789ee6516bfca289e1948ff8f2c147b94286a0e0)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c0e00de237026d7cde4a168221feb691064f844
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Jul 29 15:28:52 2011 -0700

    glsl: Emit function signatures at toplevel, even for built-ins.
    
    The ast-to-hir conversion needs to emit function signatures in two
    circumstances: when a function declaration (or definition) is
    encountered, and when a built-in function is encountered.
    
    To avoid emitting a function signature in an illegal place (such as
    inside a function), emit_function() checked whether we were inside a
    function definition, and if so, emitted the signature before the
    function definition.
    
    However, this didn't cover the case of emitting function signatures
    for built-in functions when those built-in functions are called from
    inside the constant integer expression that specifies the length of a
    global array.  This failed because when processing an array length, we
    are emitting IR into a dummy exec_list (see process_array_type() in
    ast_to_hir.cpp).  process_array_type() later checks (via an assertion)
    that no instructions were emitted to the dummy exec_list, based on the
    reasonable assumption that we shouldn't need to emit instructions to
    calculate the value of a constant.
    
    This patch changes emit_function() so that it emits function
    signatures at toplevel in all cases.
    
    This partially fixes bug 38625
    (https://bugs.freedesktop.org/show_bug.cgi?id=38625).  The remainder
    of the fix is in the patch that follows.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit 0d81b0e18494a80c4326fbc98837842959675869)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1895de7a326e44887f50949b1a5442f28a975df5
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Mon Aug 1 13:06:06 2011 -0700

    Revert "glsl: Skip processing the first function's body in do_dead_functions()."
    
    opt_dead_functions contained a shortcut to skip processing the first
    function's body, based on the assumption that IR functions are
    topologically sorted, with callees always coming before their callers
    (therefore the first function cannot contain any calls).
    
    This assumption turns out not to be true in general.  For example, the
    following code snippet gets translated to IR that violates this
    assumption:
    
        void f();
        void g();
        void f() { g(); }
        void g() { ... }
    
    In practice, the shortcut didn't cause bugs because of a coincidence
    of the circumstances in which opt_dead_functions is called:
    
    (a) we do inlining right before dead function elimination, and
        inlining (when successful) eliminates all calls.
    
    (b) for user-defined functions, inlining is always successful, because
        previous optimization passes (during compilation) have reduced
        them to a form that is eligible for inlining.
    
    (c) the function that appears first in the IR can't possibly call a
        built-in function, because built-in functions are always emitted
        before the function that calls them.
    
    It seems unnecessarily fragile to have opt_dead_functions depend on
    these coincidences.  And the next patch in this series will break (c).
    So I'm reverting the shortcut.  The consequence will be a slight
    increase in link time for complex shaders.
    
    This reverts commit c75427f4c8767e131e5fb3de44fbc9d904cb992d.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit 482338842db6ad387316b52fbe9602eee56ad082)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7dc636dd7768432149157a21bb09ab4a08201997
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Jul 27 15:53:31 2011 -0700

    glsl: improve the accuracy of the atan(x,y) builtin function.
    
    The previous formula for atan(x,y) returned a value of +/- pi whenever
    |x|<0.0001, and used a formula based on atan(y/x) otherwise.  This
    broke in cases where both x and y were small (e.g. atan(1e-5, 1e-5)).
    
    This patch modifies the formula so that it returns a value of +/- pi
    whenever |x|<1e-8*|y|, and uses the formula based on atan(y/x)
    otherwise.
    (cherry picked from commit b1b4ea0b3679db0b8fddaa9663a10d4712bba3b7)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e42b822fecae025431528ce85aff4217c3d70ba6
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Jul 27 10:35:17 2011 -0700

    glsl: improve the accuracy of the radians() builtin function
    
    The constant used in the radians() function didn't have enough
    precision, causing a relative error of 1.676e-5, which is far worse
    than the precision of 32-bit floats.  This patch reduces the relative
    error to 1.14e-9, which is the best we can do in 32 bits.
    
    Fixes piglit tests {fs,vs}-radians-{float,vec2,vec3,vec4}.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit fe33c886a79f49378e5719909a51e794b7bb1c38)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0501cee1360eb45e133421f48274797a80182e76
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sun Oct 2 18:48:27 2011 +0200

    glsl: Lower break instructions when necessary at the end of a loop.
    
    Normally lower_jumps.cpp doesn't need to lower a break instruction
    that occurs at the end of a loop, because all back-ends can produce
    proper GPU instructions for a break instruction in this "canonical"
    location.  However, if other break instructions within the loop are
    already being lowered, then a break instruction at the end of the loop
    needs to be lowered too, since after the optimization is complete a
    new conditional break will be inserted at the end of the loop.
    
    Without this patch, lower_jumps.cpp may require multiple passes in
    order to lower all jumps.  This results in sub-optimal output because
    lower_jumps.cpp produces a brand new set of temporary variables each
    time it is run, and the redundant temporary variables are not
    guaranteed to be eliminated by later optimization passes.
    
    Fixes unit test test_lower_breaks_6.
    (cherry picked from commit 067c9d7bd776260298ceabda026425ed7e4eb161)
    
    Conflicts:
    
    	src/glsl/lower_jumps.cpp

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=38ae26b709fb9b964628ea9e9a43efb4e2dd49a0
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Jul 1 15:33:36 2011 -0700

    glsl: In lower_jumps.cpp, lower both branches of a conditional.
    
    Previously, lower_jumps.cpp would break out of its loop after lowering
    a jump instruction in just the then- or else-branch of a conditional,
    and it would fail to lower a jump instruction occurring in the other
    branch.
    
    Without this patch, lower_jumps.cpp may require multiple passes in
    order to lower all jumps.  This results in sub-optimal output because
    lower_jumps.cpp produces a brand new set of temporary variables each
    time it is run, and the redundant temporary variables are not
    guaranteed to be eliminated by later optimization passes.
    
    Fixes unit test test_lower_returns_4.
    (cherry picked from commit e71b4ab8a64bf978b2036976a41e30996eebb0c8)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=de798938d4e7bc65a3a859be76dcf831eb927068
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Jul 1 12:36:23 2011 -0700

    glsl: Use foreach_list in lower_jumps.cpp
    
    The visitor class in lower_jumps.cpp never removes or replaces the
    instruction being visited, but it frequently alters or removes the
    instructions that follow it.  Therefore, to make sure the altered IR
    is visited, it needs to iterate through exec_lists using foreach_list
    rather than visit_exec_list().
    
    Without this patch, lower_jumps.cpp may require multiple passes in
    order to lower all jumps.  This results in sub-optimal output because
    lower_jumps.cpp produces a brand new set of temporary variables each
    time it is run, and the redundant temporary variables are not
    guaranteed to be eliminated by later optimization passes.
    
    Also, certain invariants assumed by lower_jumps.cpp may fail to hold,
    causing assertion failures.
    
    Fixes unit tests test_lower_pulled_out_jump,
    test_lower_unified_returns, test_lower_guarded_conditional_break,
    test_lower_return_non_void_at_end_of_loop, and test_lower_returns_3.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit 382cee91a4bbbee45897239e6802ccaa5a5ad9c3)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=acd2a03ffb2035095036163f3573bcc6d44f0b6e
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sun Oct 2 18:44:31 2011 +0200

    glsl: lower unconditional returns and continues in loops.
    
    Previously, lower_jumps.cpp would only lower return and continue
    statements that appeared inside conditionals.  This patch makes it
    lower unconditional returns and continue statements that occur inside
    a loop.
    
    Such unconditional flow control statements would be unlikely to be
    explicitly coded by a reasonable user, however they might arise as a
    result of other optimizations.
    
    Without this patch, lower_jumps.cpp might not lower certain return and
    continue statements, causing some backends to fail.
    
    Fixes unit tests test_lower_return_void_at_end_of_loop and
    test_remove_continue_at_end_of_loop.
    (cherry picked from commit 03145ba655ad9173a74b853843eccaae78ff392f)
    
    Conflicts:
    
    	src/glsl/lower_jumps.cpp

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d1786cea1c42f4a843834a9ddb5c36a331446ddc
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Jul 1 11:59:32 2011 -0700

    glsl: Refactor logic for determining whether to lower return statements.
    
    Previously, do_lower_jumps.cpp determined whether to lower return
    statements in ir_lower_jumps_visitor::should_lower_jumps().  Moved
    this logic to ir_lower_jumps_visitor::visit(ir_function_signature *),
    so that it can be used in determining whether to lower a return
    statement at the end of a function.
    (cherry picked from commit dbaa2e627effbe1361e1a69c23cf247cf86f2709)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=934c7a0661cd3d171373e0185711437b81cf08cf
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Jul 1 12:14:07 2011 -0700

    glsl: Lower unconditional return statements.
    
    Previously, lower_jumps.cpp only lowered return statements that
    appeared inside of an if statement.
    
    Without this patch, lower_jumps.cpp might not lower certain return
    statements, causing some back-ends to fail (as in bug #36669).
    
    Fixes unit test test_lower_returns_1.
    (cherry picked from commit afc9a50fba39df520046019c6993d7b7559329ea)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ba0d0a5e8688a3210db505dc076109ffb7da7d9
Author: Brian Paul <brianp at vmware.com>
Date:   Fri Sep 30 08:15:30 2011 -0600

    mesa: add _NEW_CURRENT_ATTRIB in _mesa_program_state_flags()
    
    If color material mode is enabled, constant buffer entries related
    to the material coefficients will depend on glColor.  So add
    _NEW_CURRENT_ATTRIB to the bitset returned for material-related
    constants in _mesa_program_state_flags().
    
    This fixes a bug exercised by the new piglit draw-arrays-colormaterial
    test.
    
    Note: This is a candidate for the 7.11 branch.
    (cherry picked from commit 57169c469406f1880107a6b9f052708ce078942d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1cf8f9599c05be35b0aa6a0862fe00ce6e95a090
Author: Marek Olšák <maraeo at gmail.com>
Date:   Mon Sep 26 15:03:43 2011 +0200

    r600g: add index_bias to index buffer bounds
    
    This fixes ARB_draw_elements_base_vertex with max_index != ~0.
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit 44afac04eaac08eb49938001a65363bef6bd3d3b)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2781baaa64b0f0e43ec5eab7cb2b5597c21059a0
Author: Brian Paul <brianp at vmware.com>
Date:   Sat Sep 17 11:26:54 2011 -0600

    meta: fix broken sRGB mipmap generation
    
    If we're generating a mipmap for an sRGB texture we need to bypass
    sRGB->linear conversion.  Otherwise the destination mipmap level
    (drawn with a textured quad) will have the wrong colors.
    If we can't turn of sRGB->linear conversion (GL_EXT_texture_sRGB_decode)
    we need to use the software fallback for mipmap generation.
    
    Note: This is a candidate for the 7.11 branch.
    (cherry picked from commit 1e939f53749781312b1b3b729e2d73493ae6b304)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a74400ca3060486cc94eae4631e8cd5ff968a53b
Author: Brian Paul <brianp at vmware.com>
Date:   Mon Sep 19 18:25:38 2011 -0600

    mesa: fix PACK_COLOR_5551(), PACK_COLOR_1555() macros
    
    The 1-bit alpha channel was incorrectly encoded.  Previously, any non-zero
    alpha value for the ubyte alpha value would set A=1.  Instead, use the
    most significant bit of the ubyte alpha to determine the A bit.  This is
    consistent with the other channels and other OpenGL implementations.
    
    Note: This is a candidate for the 7.11 branch.
    
    Reviewed-by: Michel Dänzer <michel at daenzer.net>
    (cherry picked from commit 4731a598f00c8a229df7b36d9a2a7505b679de1d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5e2074fdd1591ad7f892ae014d73f7388f47e0a
Author: Tom Stellard <tstellar at gmail.com>
Date:   Sun Sep 18 17:43:41 2011 -0700

    r300/compiler: Fix regalloc for values with multiple writers
    
    https://bugs.freedesktop.org/show_bug.cgi?id=40062
    https://bugs.freedesktop.org/show_bug.cgi?id=36939
    
    Note: This is a candidate for the 7.11 branch.
    (applied diff manually from 2d1004d9aa719bb93a4f057b0eefe88f23b44e44)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fad6e2ea5a887844bf4d35e57e61d3462b89c1f4
Author: Brian Paul <brianp at vmware.com>
Date:   Sat Sep 17 11:13:31 2011 -0600

    meta: fix/add checks for GL_EXT_framebuffer_sRGB
    
    This fixes spurious GL errors when the GL_EXT_framebuffer_sRGB extension
    is not supported.
    
    Note: This is a candidate for the 7.11 branch
    (cherry picked from commit 6e423253e74b462950445a7c10a913f5ab2a11c1)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a73c667069aab7055741fae6c827f15dc9b7d3ef
Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Thu Aug 25 00:32:55 2011 +0400

    r600g: fix replace_gpr_with_pv_ps
    
    Instructions with 3 source operands have no write mask, so we may replace their
    destinations with PV/PS in the next group even if their dst.write is 0.
    
    Note: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit fdb62ef3f5b0fadd3cbac610f5b612bcfad5af1a)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e87f79c8a4e8c4dca19121a316ff2ee955065e44
Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Sun Oct 2 18:04:22 2011 +0200

    r600g: fix check_and_set_bank_swizzle
    
    Need to do full check when not all bank swizzles in the group are forced
    (e.g. when trying to merge interp_* group with the next instruction)
    
    Note: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit 6ba68c7654ee9c2e90b99b4ba653287684904c74)
    
    Conflicts:
    
    	src/gallium/drivers/r600/r600_asm.c

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa8cfbfb64f58ef11eeece6991d52cd21a2e9643
Author: Chad Versace <chad at chad-versace.us>
Date:   Wed Aug 10 15:46:14 2011 -0700

    x86-64: Fix compile error with clang
    
    Remove the 'f' suffix from a float literal.
        - .float 0.0f+1.0
        + .float 1.0
    
    This fixes the following compile error with clang:
        error: unexpected token in directive
        .float 0.0f+1.0
                  ^
    
    Note: This is a candidate for the stable branches.
    Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
    Signed-off-by: Chad Versace <chad at chad-versace.us>
    (cherry picked from commit 9cd64ec35acd54cbe0be4d03236d2c5a9d4be6fe)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=446a67b74eff6a5293aa4adee5ffd50538951108
Author: Brian Paul <brianp at vmware.com>
Date:   Thu Aug 11 08:52:41 2011 -0600

    swrast: don't try to do depth testing if there's no depth buffer
    
    Fixes piglit hiz-depth-stencil-test-fbo-d0-s8 crash.
    See http://bugs.freedesktop.org/show_bug.cgi?id=37907
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit 37a64baea87c470a68f9b2582af86783eb3509c4)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d5c84929a72dceec6a310332e075fbd0584f4e7c
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sat Jul 30 21:26:26 2011 -0700

    mesa: In validate_program(), initialize errMsg for safety.
    
    validate_program relies on validate_shader_program to fill in errMsg;
    empirically, there exist cases where that doesn't happen.
    
    While tracking those down may be worthwhile, initializing the string so
    we don't try to ralloc_strdup random garbage also seems wise.
    
    Fixes issues caught by valgrind while running some test case.
    
    NOTE: This is a candidate for stable release branches.
    
    Reviewed-by: Chad Versace <chad at chad-versace.us>
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit db726b048e8858af226dbd0f0fda72d0be01394e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dd9b78e2127e34f8e6c83f8d11a405ecdc8f2352
Author: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
Date:   Thu Aug 4 12:06:13 2011 +1000

    glx/dri2: Paper over errors in DRI2Connect when indirect
    
    DRI2 will throw BadRequest for this when the client is not local, but
    DRI2 is an implementation detail and not something callers should have
    to know about.  Silently swallow errors in this case, and just propagate
    the failure through DRI2Connect's return code.
    
    Note: This is a candidate for the stable release branches.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28125
    Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
    (cherry picked from commit fbc2fcf685d22ec9bc9465e1f731529979497eaa)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2cadae90c0bc90d69c5af9466c2e611b304f828f
Author: Chia-I Wu <olv at lunarg.com>
Date:   Thu Aug 4 00:39:07 2011 +0900

    glsl: empty declarations should be valid
    
    Unlike C++, empty declarations such as
    
      float;
    
    should be valid.  The spec is not explicit about this actually.
    
    Some apps that generate their shader sources may rely on this.  This was
    noted when porting one of them to Linux from Windows.
    
    Reviewed-by: Chad Versace <chad at chad-versace.us>
    
    Note: this is a candidate for the 7.11 branch.
    (cherry picked from commit 547212d963c70161915c46d64e8020617199fb8d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffb0f94136b9c8042e462f1a5fa358de41fc907b
Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Wed Aug 3 15:35:02 2011 +0400

    r600g: take into account force_add_cf in pops
    
    When we have two ENDIFs in a row, we shouldn't modify the pop_count
    for the same alu clause twice.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=38163
    
    Note: this is a candidate for the 7.11 branch.
    
    Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit 2bde0cc95d8db10b6d2c6689ca39c196a81248b0)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=badd2900ea840ded071a577aad009324367496f6
Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Wed Aug 3 01:04:19 2011 +0400

    r600g: use backend mask for occlusion queries
    
    Use backend_map kernel query if supported, otherwise analyze ZPASS_DONE
    results to get the mask.
    
    Fixes lockups with predicated rendering due to incorrect query buffer
    initialization on some cards.
    
    Note: this is a candidate for the 7.11 branch.
    
    Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit 6eb94fc3444a300a0419c40cfcf356fdd88bc304)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c032dd8370e988921c7b46dac4cca9e8b0bc848
Author: Chad Versace <chad at chad-versace.us>
Date:   Wed Jul 27 13:00:02 2011 -0700

    glsl: Fix conversions in array constructors
    
    Array constructors obey narrower conversion rules than other constructors
    [1] --- they use the implicit conversion rules [2] instead of the scalar
    constructor conversions [3].  But process_array_constructor() was
    incorrectly applying the broader rules.
    
    [1] GLSL 1.50 spec, Section 5.4.4 Array Constructors, page 52 (58 of pdf)
    [2] GLSL 1.50 spec, Section 4.1.10 Implicit Conversions, page 25 (31 of pdf)
    [3] GLSL 1.50 spec, Section 5.4.1 Conversion, page 48 (54 of pdf)
    
    To fix this, first check (with glsl_type::can_be_implicitly_converted_to)
    if an implicit conversion is legal before performing the conversion.
    
    Fixes:
    piglit:spec/glsl-1.20/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-float.vert
    piglit:spec/glsl-1.20/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec*-vec*.vert
    
    Note: This is a candidate for the 7.10 and 7.11 branches.
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Chad Versace <chad at chad-versace.us>
    (cherry picked from commit a5ab9398e34287ed8cbb010d0758790e6692530c)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=70c5be6c914e2b9b9387685bcb760354afceac0c
Author: Chad Versace <chad at chad-versace.us>
Date:   Wed Jul 27 12:32:10 2011 -0700

    glsl: Remove ir_function.cpp:type_compare()
    
    The function is no longer used and has been replaced by
    glsl_type::can_implicitly_convert_to().
    
    Note: This is a candidate for the 7.10 and 7.11 branches.
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Chad Versace <chad at chad-versace.us>
    (cherry picked from commit 6efe1a849586e46028c1eb763175904166ec7076)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b92831fabe2b013070335d330e0ef175ada8570
Author: Chad Versace <chad at chad-versace.us>
Date:   Wed Jul 27 12:31:10 2011 -0700

    glsl: Fix implicit conversions in non-constructor function calls
    
    Context
    -------
    In ast_function_expression::hir(), parameter_lists_match() checks if the
    function call's actual parameter list matches the signature's parameter
    list, where the match may require implicit conversion of some arguments.
    To check if an implicit conversion exists between individual arguments,
    type_compare() is used.
    
    Problems
    --------
    type_compare() allowed the following illegal implicit conversions:
        bool -> float
        bvecN -> vecN
    
        int -> uint
        ivecN -> uvecN
    
        uint -> int
        uvecN -> ivecN
    
    Change
    ------
    type_compare() is buggy, so replace it with glsl_type::can_be_implicitly_converted_to().
    This comprises a rewrite of parameter_lists_match().
    
    Fixes piglit:spec/glsl-1.20/compiler/built-in-functions/outerProduct-bvec*.vert
    
    Note: This is a candidate for the 7.10 and 7.11 branches.
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Chad Versace <chad at chad-versace.us>
    (cherry picked from commit 8b3627fd7b52723102f070957d87f98073e92d7c)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6d07585f8799ccdcb05f69b0a081034da6f4afa
Author: Chad Versace <chad at chad-versace.us>
Date:   Wed Jul 27 12:21:27 2011 -0700

    glsl: Add method glsl_type::can_implicitly_convert_to()
    
    This method checks if a source type is identical to or can be implicitly
    converted to a target type according to the GLSL 1.20 spec, Section 4.1.10
    Implicit Conversions.
    
    The following commits use the method for a bugfix:
        glsl: Fix implicit conversions in non-constructor function calls
        glsl: Fix implicit conversions in array constructors
    
    Note: This is a candidate for the 7.10 and 7.11 branches.
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Chad Versace <chad at chad-versace.us>
    (cherry picked from commit 200e4972c1579e8dfaa6f11eee2a7e54baad4852)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4bd0f04531990c895bce8157648513ce1802b891
Author: Brian Paul <brianp at vmware.com>
Date:   Fri Jul 29 16:49:55 2011 -0600

    mesa: add missing breaks for GL_TEXTURE_CUBE_MAP_SEAMLESS queries
    
    And fix indentation.
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit dc1f32deae1ab7366792fe5c7d654e02757985c0)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=45716cffbeb48e4be4506fc97f312977b5d2a567
Author: Alex Deucher <alexander.deucher at amd.com>
Date:   Fri Jul 29 11:29:53 2011 -0400

    r600g: fix up vs export handling
    
    Certain attributes (position, psize, etc.) don't
    count as params; they are handled separately by the hw.
    However, the VS is required to export at least one param
    and r600_shader_from_tgsi() takes care of adding a dummy
    export if there is none.  Make sure the VS param export
    count in the SPI properly accounts for this.
    
    Note: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit dc1c0ca22a1c7fcaef90b787290144d8e3d77c33)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ae633fa0ef0985ef239e6f7f0fcf772bac5c02ad
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Oct 2 16:53:21 2011 +0200

    configure.ac: fix xlib-based softpipe build
    
    Tested-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit c6f59fcd00101a2f93a5a97d679f3b160ef0126a)
    
    Conflicts:
    
    	configure.ac

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=25861dc7f3d4aa62382b230a7e6d5ebfe8ecae04
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Jul 15 02:27:49 2011 -0700

    glsl: Avoid massive ralloc_strndup overhead in S-Expression parsing.
    
    When parsing S-Expressions, we need to store nul-terminated strings for
    Symbol nodes.  Prior to this patch, we called ralloc_strndup each time
    we constructed a new s_symbol.  It turns out that this is obscenely
    expensive.
    
    Instead, copy the whole buffer before parsing and overwrite it to
    contain \0 bytes at the appropriate locations.  Since atoms are
    separated by whitespace, (), or ;, we can safely overwrite the character
    after a Symbol.  While much of the buffer may be unused, copying the
    whole buffer is simple and guaranteed to provide enough space.
    
    Prior to this, running piglit-run.py -t glsl tests/quick.tests with GLSL
    1.30 enabled took just over 10 minutes on my machine.  Now it takes 5.
    
    NOTE: This is a candidate for stable release branches (because it will
          make running comparison tests so much less irritating.)
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit 3875526926123259521514de9c8d675e3797275a)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3fc660e8967cf88ae4338f5c7b77c729a976553f
Author: Marcin Baczyński <marbacz at gmail.com>
Date:   Wed Jul 13 21:26:49 2011 +0200

    configure: allow C{,XX}FLAGS override
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit ff2efdf5997d20b41f7a82b77118366e6fbd23bc)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fbf3562d1d3e890873b8b6b602a8a4b92c5393b
Author: Marcin Baczyński <marbacz at gmail.com>
Date:   Wed Jul 13 21:26:50 2011 +0200

    configure: fix gcc version check
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit fa013419deec41c2771bf4744e0f8a2bca3346d2)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=13476840a645ac9867e11647f4275aadbac99a6f
Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Wed Jul 13 09:01:04 2011 +0400

    st/mesa: flush bitmap cache on query and conditional render boundaries
    
    Bitmap caching shouldn't affect the results of the queries and
    conditional render.
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>
    Signed-off-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 4f4855b249cbcb77900e9767041becf255afbba1)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5336f7f5a5237b13ddd005032c63d176e00b7a8d
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Mon Jul 4 00:57:42 2011 +0200

    mesa: Fix a couple of TexEnv unit limits.
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit bfe284fd26e96b71c7cf46e6365b3697d68cde83)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a470104763aa9dc816cfb86a4735bf967a6bbedc
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Mon Jul 4 00:57:42 2011 +0200

    mesa: Use the Elements macro for the sampler index assert in validate_samplers().
    
    This is probably nicer if the array size ever changes.
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 47441956284b3e22df2ee8500667617d2880bfc8)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=338cf7128ca29c3c881b811106d962584862c555
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Mon Jul 4 00:57:42 2011 +0200

    mesa: Allow sampling from units >= MAX_TEXTURE_UNITS in shaders.
    
    The total number of units used by a shader is limited to MAX_TEXTURE_UNITS,
    but the actual indices are only limited by MAX_COMBINED_TEXTURE_IMAGE_UNITS,
    since they're shared between vertex and fragment shaders.
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 86adc2b29effb573c18eb0de7016cef605ab1edc)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=36dab12726412060b80743f2cab38dc622d766a6
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Mon Jul 4 00:57:42 2011 +0200

    mesa: Check the texture against all units in unbind_texobj_from_texunits().
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 2e35d90fb9a50562d3c658d45a50e16623028d8e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc253d31003d6de9c7acc795ec405ac4c9acadff
Author: Brian Paul <brianp at vmware.com>
Date:   Wed Jul 6 15:04:17 2011 -0600

    mesa: fix texstore addressing bugs for depth/stencil formats
    
    Using GLuint pointers worked when the pixel size was four bytes
    or the row stride was a multiple of four but was otherwise broken.
    Fixes failures found with the piglit fbo-stencil test.
    
    This helps to fix https://bugs.freedesktop.org/show_bug.cgi?id=38729
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit b786db06540472beda9cedd18937d6e12855b3eb)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f362a587e6204d9007a3aac071d3d507caaa756
Author: Brian Paul <brianp at vmware.com>
Date:   Sun Oct 2 16:42:54 2011 +0200

    softpipe: add missing stencil format case in convert_quad_stencil()
    
    Part of the fix for https://bugs.freedesktop.org/show_bug.cgi?id=38729
    
    NOTE: This is a candidate for the 7.11 branch
    (cherry picked from commit 057a107d4433eefce0ac99810a6e182f19fa64a6)
    
    Conflicts:
    
    	src/gallium/drivers/softpipe/sp_quad_depth_test.c

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b5257a96f102de2dce33ddadedde9dff399a5dd
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Sun Jul 3 22:29:34 2011 +0200

    r600g: Support the PIPE_FORMAT_R16_FLOAT colorformat.
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit 39fecd3229b33786bb31fd97fd8f0486a68cc653)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=94e12df164ee01af68254160a4459e876cb0f261
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jun 24 13:17:07 2011 -0700

    glsl: Allow ir_assignment() constructor to not specify condition.
    
    We almost never want to specify a condition, and when we do we're
    already thinking about it (because we're writing a lowering pass
    generating the condition), so a default argument should make the code
    more pleasant to read.
    
    NOTE: This is a candidate for the 7.11 branch (we want to be able to
    cherry-pick future code).
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    (cherry picked from commit e617a53a74cd27a322fd2dd05ff1c66c6437fde3)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac6a24001b0c594b6003f681ca1e5749bcb48f6c
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jun 28 15:04:22 2011 -0700

    mesa: Don't skip glGetProgramLocalParam4dvARB if there was already an error.
    
    Like the previous commit, but fixes
    ARB_vertex_program/getlocal4d-with-error.
    
    v2: Move the success case line into the conditional, use ASSIGN_4V more.
    (cherry picked from commit c9aac11713c6238a8e3a89e8501e6e686fa811a7)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7e69912faa279f57f8bf3b6bcc4e32ec54b8562
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Sep 8 17:17:31 2011 -0700

    mesa: Throw an error when starting conditional render on an active query.
    
    From the NV_conditional_render spec:
    
        BeginQuery sets the active query object name for the query type given by
        <target> to <id>.  If BeginQuery is called with an <id> of zero, if the
        active query object name for <target> is non-zero, if <id> is the active
        query object name for any query type, or if <id> is the active query
        object for condtional rendering (Section 2.X), the error INVALID OPERATION
        is generated.
    
    Fixes piglit nv_conditional_render-begin-while-active.
    
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit fd17de21231fb41804299d16f837c07798984411)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=268a2c1a8a8e25136275315e5c5c53f3dc10dcac
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Sep 8 16:52:44 2011 -0700

    mesa: Throw an error instead of asserting for condrender with query == 0.
    
    From the NV_conditional_render spec:
    
        BeginQuery sets the active query object name for the query type given by
        <target> to <id>.  If BeginQuery is called with an <id> of zero, if the
        active query object name for <target> is non-zero, if <id> is the active
        query object name for any query type, or if <id> is the active query
        object for condtional rendering (Section 2.X), the error INVALID OPERATION
        is generated.
    
    Fixes piglit nv_conditional_render-begin-zero.
    
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 7371224c069357319b3f2ee9e9b017fc284897cb)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=28b95b2b0147318f97dc2ffd6492fee21fcf41c8
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Sep 8 16:42:39 2011 -0700

    mesa: Add support for Begin/EndConditionalRender in display lists.
    
    Fixes piglit nv_conditional_render-dlist.
    
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 8899f6e93c976a0abfd58d2dc7896f9984699480)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a6ef34741cae47f64ffea61bed4bdf89603ae4d
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Jul 22 16:45:50 2011 -0700

    mesa: Make _mesa_get_compressed_formats match the texture compression specs
    
    The implementation deviated slightly from the GL_EXT_texture_sRGB spec
    and from other implementations.  A giant comment block was added to
    justify the somewhat odd behavior of this function.
    
    In addition, the interface had unnecessary cruft.  The 'all' parameter
    was false at all callers, so it has been removed.
    
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit b189d1635d89cd7d900e8f9a5eed88d7dc0b46cb)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=545ecf654227dc3a486af44a559c50df3ecd6c05
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Jul 22 15:26:24 2011 -0700

    mesa: Return the correct internal fmt when a generic compressed fmt was used
    
    If an application requests a generic compressed format for a texture
    and the driver does not pick a specific compressed format, return the
    generic base format (e.g., GL_RGBA) for the GL_TEXTURE_INTERNAL_FORMAT
    query.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3165
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 143b65f7612c255f29d08392192098b1c2bf4b62)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a88f4914a34e82c00cd7f699dffb6c1af1e3b5e7
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Jul 22 15:25:55 2011 -0700

    mesa: Add utility function to get base format from a GL compressed format
    
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 09916e877fc14723d7950f892e181df9f7d7f36f)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad2b567f5170915e38e089a039ee1e79d1eefc56
Author: Eric Anholt <eric at anholt.net>
Date:   Sun Oct 2 04:21:38 2011 +0200

    mesa: Fix glGetUniform() type conversions.
    
    We were primarily failing to convert in the NativeIntegers case, which
    this fixes.  However, we were also just truncating float uniforms when
    converting to integer, which does not appear to be the correct
    behavior.  Note, however, that the NVIDIA drivers also truncate
    instead of rounding.
    
    GL_DOUBLE return type is dropped because it was never used and
    completely broken.  It can be added when there's test code.
    
    Fixes piglit ARB_shader_objects/getuniform
    
    v2: This is a rewrite of my previous glGetUniform patch, which Ken
        pointed out missed storage_type-based conversions to integer,
        which was totally broken still thanks to a typo in the testcase.
    v3: Quote the spec justifying the rounding behavior.
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>
    Acked-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 9fa41f0742b7486e462e088a66bef8cebdf114f5)
    
    Conflicts:
    
    	src/mesa/main/uniforms.c

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=37c2c9688c2124ddd9e1cb61b12651999dc4e80b
Author: Marek Olšák <maraeo at gmail.com>
Date:   Mon Sep 26 03:30:24 2011 +0200

    u_vbuf_mgr: fix uploading with a non-zero index bias
    
    Also don't rely on pipe_draw_info being set correctly.
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit 60a77cf316a90cb5be4f73495c2545b3d49e5ca1)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=012b2057e88d0436c14b00b176bcac4b15f01d0e
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Sep 25 19:57:35 2011 +0200

    u_vbuf_mgr: rework user buffer uploads
    
    - first determine the buffer range to upload for each buffer by walking over
      vertex elements
    - take buffer_offset into account
    - take src_offset into account
    - take src_format into account in more places
    - don't just blindly upload (stride*count) bytes
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit cd9bbb3935320fd838c9b64236ccef865782a248)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb2a04b4678be97238b3696c30c0a80250b2702e
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Sep 25 19:31:15 2011 +0200

    u_vbuf_mgr: remove unused flag U_VBUF_UPLOAD_FLUSHED
    (cherry picked from commit 315300e4443f7a2177f2d8c4435f30c9bf95504d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=060e22c2128a738796f0f3f9bf123273bb63b902
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Oct 2 04:10:21 2011 +0200

    u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_
    (cherry picked from commit 28fb79891101c23c75982726c81112caa96f9275)
    
    Conflicts:
    
    	src/gallium/auxiliary/util/u_vbuf_mgr.c
    	src/gallium/drivers/r600/r600_state_common.c

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2330b7267c8561f12ca50913394bf5cbc053adc7
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Sep 25 18:58:54 2011 +0200

    u_vbuf_mgr: fix max_index computation for large src_offset
    
    NOTE: This is a candidate for the 7.11 branch.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a7377a090dfbce65f9cd76ff3fabea38166b6a5
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Sep 25 18:44:36 2011 +0200

    u_vbuf_mgr: don't take per-instance attribs into acc. when computing max index
    
    NOTE: This is a candidate for the 7.11 branch.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d79d69c93350b0ecfbda21202350495ec965edc7
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Sep 25 18:13:50 2011 +0200

    u_vbuf_mgr: cleanup original vs real vertex buffer arrays
    
    It can now override both buffer offsets and strides in additions to resources.
    Overriding buffer offsets was kinda hackish and could cause issues with
    non-native vertex formats.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0722609217086897a797ed361ef92d9edcc7f91
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Thu Sep 22 23:46:34 2011 +0200

    mesa: Also set the remaining draw buffers to GL_NONE when updating just the first buffer in _mesa_drawbuffers().
    
    Without this we'd miss the last update in a sequence like {COLOR0, COLOR1},
    {COLOR0}, {COLOR0, COLOR1}. I originally had a patch for this that called
    updated_drawbuffers() when the buffer count changed, but later realized that
    was wrong. The ARB_draw_buffers spec explicitly says "The draw buffer for
    output colors beyond <n> is set to NONE.", and this is queryable state.
    This fixes piglit arb_draw_buffers-state_change.
    
    NOTE: This is a candidate for the 7.11 branch.
    
    Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    (cherry picked from commit a4d72189b271664501338cc93107845f3d40ae54)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=942c1b8de16a9abde2edf9193a731984766e4913
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed Sep 14 18:37:48 2011 +0200

    glx/dri2: Don't call X server for SwapBuffers when there's no back buffer.
    
    As already done in dri2CopySubBuffer().
    
    Should fix:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=36371
    https://bugs.freedesktop.org/show_bug.cgi?id=40533
    
    Might fix:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=32589
    
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    (cherry picked from commit d8c443ddde5e9734d60b63b3ec3b5a5ba756d022)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0502da1ade9d887ed4ee1a4b42ba01a5e78c8e6f
Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Thu Aug 18 08:46:02 2011 -0400

    glx: Don't flush twice if we fallback to dri2CopySubBuffer
    
    The flush extensions flush call indicates end of frame and should only
    be called once per frame.  However, in the dri2SwapBuffer fallback
    path, we call flush and then call dri2CopySubBuffer, which also calls
    flush.  Refactor the code to only call flush once.
    (cherry picked from commit 4a7667b96b7bd7cdffbe929182c15935b74facd2)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb38f931a8b883b50858462882e458424dd4ee3a
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Sep 22 17:01:18 2011 +0200

    st/mesa: Finalize texture on render-to-texture.
    
    This makes sure that stObj->pt exists and is up to date.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39193 and piglit
    fbo-incomplete-texture-03.
    
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit de414f491526610bb260c73805c81ba413388e20)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=726ce042f8a88003b34fd2c068691a0f67427c58
Author: Brian Paul <brianp at vmware.com>
Date:   Thu Sep 22 17:01:18 2011 +0200

    st/mesa: Convert size assertions to conditionals in st_texture_image_copy.
    
    Prevents potential assertion failures in piglit fbo-incomplete-texture-03 test.
    
    NOTE: This is a candidate for the 7.11 branch.
    (cherry picked from commit 4beb8f9e9d0d45d64a9d60ef48ede95b4723c9a5)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ebd2c7c09d8c699d386727d8066abff43922383
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jun 28 13:55:44 2011 -0700

    mesa: Don't skip glGetProgramEnvParam4dvARB if there was already an error.
    
    Fixes a bug caught by oglconform, and now piglit
    ARB_vertex_program/getenv4d-with-error.  The wrapping of an existing
    GL function made it so that we couldn't distinguish an error in
    looking up our arguments from an existing error.  Instead, make a
    helper function to choose the param, and use it from multiple callers.
    
    v2: Move the success case line into the conditional, use COPY_4V more.
    (cherry picked from commit e9d563e3ffed8eadde41c8cb25eaa42e20e9688f)



More information about the mesa-commit mailing list