Mesa (9.2): 22 new commits

Carl Worth cworth at kemper.freedesktop.org
Wed Nov 27 02:39:34 UTC 2013


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6a022c8b03caea0d356b6e5cc186f1efc42ecca1
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Fri Nov 22 12:37:22 2013 -0800

    glsl: Fix lowering of direct assignment in lower_clip_distance.
    
    In commit 065da16 (glsl: Convert lower_clip_distance_visitor to be an
    ir_rvalue_visitor), we failed to notice that since
    lower_clip_distance_visitor overrides visit_leave(ir_assignment *),
    ir_rvalue_visitor::visit_leave(ir_assignment *) wasn't getting called.
    As a result, clip distance dereferences appearing directly on the
    right hand side of an assignment (not in a subexpression) weren't
    getting properly lowered.  This caused an ir_dereference_variable node
    to be left in the IR that referred to the old gl_ClipDistance
    variable.  However, since the lowering pass replaces gl_ClipDistance
    with gl_ClipDistanceMESA, this turned into a dangling pointer when the
    IR got reparented.
    
    Prior to the introduction of geometry shaders, this bug was unlikely
    to arise, because (a) reading from gl_ClipDistance[i] in the fragment
    shader was rare, and (b) when it happened, it was likely that it would
    either appear in a subexpression, or be hoisted into a subexpression
    by tree grafting.
    
    However, in a geometry shader, we're likely to see a statement like
    this, which would trigger the bug:
    
        gl_ClipDistance[i] = gl_in[j].gl_ClipDistance[i];
    
    This patch causes
    lower_clip_distance_visitor::visit_leave(ir_assignment *) to call the
    base class visitor, so that the right hand side of the assignment is
    properly lowered.
    
    Fixes piglit test:
    - spec/glsl-1.50/execution/geometry/clip-distance-itemized-copy
    
    Cc: Ian Romanick <idr at freedesktop.org>
    Cc: "9.2" <mesa-stable at lists.freedesktop.org>
    Cc: "10.0" <mesa-stable at lists.freedesktop.org>
    
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 9dfcb05fa649ee7a573eab3d16851ebd4cb96010)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfaf5de46052ea5f8408d3c7fcac5f8393d6fc8e
Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Wed Nov 20 13:27:10 2013 +0200

    mesa: enable GL_TEXTURE_LOD_BIAS set/get
    
    Earlier comments suggest this was removed from GL core spec but it is
    still there. Enabling makes 'texture_lod_bias_getter' Khronos
    conformance tests pass, also removes some errors from Metro Last Light
    game which is using this API.
    
    v2: leave NOTE comment (Ian)
    
    Cc: "9.0 9.1 9.2 10.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
    (cherry picked from commit 7e61b44dcd6175579f60d8ff2f703a6c83e33d27)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b9990d758bef30c3e77b6f9cc117008f6cf84090
Author: Brian Paul <brianp at vmware.com>
Date:   Tue Nov 19 13:09:57 2013 -0700

    st/mesa: fix GL_FEEDBACK mode inverted Y coordinate bug
    
    We need to check the drawbuffer's orientation before inverting Y
    coordinates.  Fixes piglit feedback tests when running with the
    -fbo option.
    
    Cc: "9.2" "10.0" <mesa-stable at lists.freedesktop.org>
    
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit 15d8e05e1e98a9bfd5a365d0fda222668f24261f)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee5e7148e536c84955781ddc388c2cda29781bd3
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Tue Nov 12 10:55:18 2013 -0800

    i965: Fix vertical alignment for multisampled buffers.
    
    From the Sandy Bridge PRM, Vol 1 Part 1 7.18.3.4 (Alignment Unit
    Size):
    
        j [vertical alignment] = 4 for any render target surface is
        multisampled (4x)
    
    From the Ivy Bridge PRM, Vol 4 Part 1 2.12.2.1 (SURFACE_STATE for most
    messages), under the "Surface Vertical Alignment" heading:
    
        This field is intended to be set to VALIGN_4 if the surface was
        rendered as a depth buffer, for a multisampled (4x) render target,
        or for a multisampled (8x) render target, since these surfaces
        support only alignment of 4.
    
    Back in 2012 when we added multisampling support to the i965 driver,
    we forgot to update the logic for computing the vertical alignment, so
    we were often using a vertical alignment of 2 for multisampled
    buffers, leading to subtle rendering errors.
    
    Note that the specs also require a vertical alignment of 4 for all
    Y-tiled render target surfaces; I plan to address that in a separate
    patch.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53077
    Cc: mesa-stable at lists.freedesktop.org
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    (cherry picked from commit b4c3b833ec8ec6787658ea90365ff565cd8846c7)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=44831bff0feec310ca786e5d101d3b5e42a69f74
Merge: 08d7c08 4fd03f2
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Nov 26 16:25:06 2013 -0800

    Merge branch '9.2-freedreno' of git://github.com/freedreno/mesa into 9.2
    
    This allows the freedreno driver to build with current mesa.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4fd03f26aa1c2ddef24b2c4f8d1a10c96fbf7f40
Author: Rob Clark <robclark at freedesktop.org>
Date:   Thu Aug 29 17:24:33 2013 -0400

    freedreno: updates for msm drm/kms driver
    
    There where some small API tweaks in libdrm_freedreno to enable support
    for msm drm/kms driver.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f0be333e7ee93fbb006c5570a594e49b4441731
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Aug 27 19:24:53 2013 -0400

    freedreno/a3xx/compiler: handle sync flags better
    
    We need to set the flag on all the .xyzw components that are written by
    the instruction, not just on .x.  Otherwise a later use of rN.y (for
    example) will not trigger the appropriate sync bit to be set.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1998c8aa7d82006f9ef7e6710a0f68f30bfc109
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Aug 24 17:30:50 2013 -0400

    freedreno/a3xx/compiler: better const handling
    
    Seems like most/all instructions have some restrictions about const src
    registers.  In seems like the 2 src (cat2) instructions can take at most
    one const, and the 3 src (cat3) instructions can take at most one const
    in the first 2 arguments.  And so on.  Handle this properly now.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b2c5119cb772751edb3c42c9c0545443e26fd7f
Author: Rob Clark <robclark at freedesktop.org>
Date:   Mon Jun 17 20:11:54 2013 -0400

    freedreno/a3xx: don't leak so much
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c20aa295ec0e1f7b70986a32ef2d74e5097cf640
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Aug 24 13:02:53 2013 -0400

    freedreno/a3xx/compiler: fix SGT/SLT/etc
    
    The cmps.f.* instruction doesn't actually seem to give a float 1.0 or
    0.0 output.  It either needs a cov.u16f16 or add.s + sel.f16.  This
    makes SGT/SLT/etc more similar to CMP, so handle them in trans_cmp().
    
    This fixes a bunch of piglit tests.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca5514b85161d480fb711ac26d74fc447e1e9bda
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Aug 24 13:00:07 2013 -0400

    freedreno/a3xx/compiler: bit of re-arrange/cleanup
    
    It seems there are a number of cases where instructions have limitations
    about taking reading src's from const register file, so make
    get_unconst() a bit easier to use.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c726a6a907f119dfc4fb1c26fef7babf51dc1dea
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Aug 24 12:56:22 2013 -0400

    freedreno/a3xx/compiler: make compiler errors more useful
    
    We probably should get rid of assert() entirely, but at this stage it is
    more useful for things to crash where we can catch it in a debugger.
    With compile_error() we have a single place to set an error flag (to
    bail out and return an error on the next instruction) so that will be a
    small change later when enough of the compiler bugs are sorted.
    
    But re-arrange/cleanup the error/assert stuff so we at least get a dump
    of the TGSI that triggered it.  So we see some useful output in piglit
    logs.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=12da4c1a6aa4b2a9cc337f669986a63c59fc3095
Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Aug 21 13:20:05 2013 -0400

    freedreno: fix segfault when no color buffer bound
    
    Don't crash when no color buffer bound.  Something caught when starting
    to run piglit, fixes a hanful of piglit tests.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3a7e28fe47ec547c1c9b561b04af208ae2f0f04
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Aug 20 13:57:22 2013 -0400

    freedreno/a3xx/compiler: cat4 cannot use const reg as src
    
    Category 4 instructions (rsq, rcp, sqrt, etc) seem to be unable to take
    a const register as src.  In these cases we need to move the src to a
    temporary gpr first.
    
    This is the second case of such a restriction, where the instruction
    encoding appears to support a const src, but in fact the hw appears to
    ignore that bit.  So split things out into a helper that can be re-used
    for any instructions which have this limitation.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5394a872f30022f64e6b2b58ef983b1fe5f6c08d
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Aug 20 13:54:01 2013 -0400

    freedreno/a3xx/compiler: use max_reg rather than file_count
    
    Our current (rather naive) register assignment is based on mapping
    different register files (INPUT, OUTPUT, TEMP, CONST, etc) based on the
    max register index of the preceding file.  But in some cases, the lowest
    used register in a file might not be zero.  In which case
    file_count[file] != file_max[file] + 1.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c83387438633233ae6bcc55e1f4eaa2793ce7449
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Aug 20 13:51:35 2013 -0400

    freedreno/a3xx/compiler: handle saturate on dst
    
    Sometimes things other than color dst need saturating, like if there is
    a 'clamp(foo, 0.0, 1.0)'.  So for saturated dst add the extra
    instructions to fix up dst.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=83e65320012f327d2e8f1573443b2e20f059e76f
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Aug 20 13:46:30 2013 -0400

    freedreno/a3xx/compiler: fix CMP
    
    The 1st src to add.s needs (r) flag (repeat), otherwise it will end up:
    
      add.s dst.xyzw, tmp.xxxx -1
    
    instead of:
    
      add.s dst.xyzw, tmp.xyzw, -1
    
    Also, if we are using a temporary dst to avoid clobbering one of the src
    registers, we actually need to use that as the dst for the sel
    instruction.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3da8868b5df98d8544091feeea7b6bb0f736324f
Author: Rob Clark <robclark at freedesktop.org>
Date:   Mon Aug 5 18:03:33 2013 -0400

    freedreno/a3xx: some texture fixes
    
    Stop hard coding bits that indicate texture type (2d/3d/cube/etc).
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1e9f69d3c90803d3c0e2d9b9396c1a06b5f0bb2
Author: Rob Clark <robclark at freedesktop.org>
Date:   Mon Aug 5 17:57:24 2013 -0400

    freedreno: update register headers
    
    resync w/ rnndb database
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b167d34bebcc9aaf67838be71cc3272728d4fe1
Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed May 29 10:16:33 2013 -0400

    freedreno: add debug option to disable scissor optimization
    
    Useful for testing and debugging.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b2a32254d65c356604bbffda6e771dca0509e9ed
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Jul 13 13:08:22 2013 -0400

    freedreno/a3xx: fix viewport on gmem->mem resolve
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d844be97fd5b6b0f02a94d4bb194c0bd19de6f9
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Jul 13 13:07:46 2013 -0400

    freedreno/a3xx: fix color inversion on mem->gmem restore
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>




More information about the mesa-commit mailing list