Mesa (master): 26 new commits

Rob Clark robclark at kemper.freedesktop.org
Sun Apr 5 21:35:54 UTC 2015


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b0b81339b9c3806981ee2ec7c08501bbd8bb7a3
Author: Rob Clark <robclark at freedesktop.org>
Date:   Thu Mar 12 17:18:33 2015 -0400

    freedreno/ir3: add NIR compiler
    
    The NIR compiler frontend is an alternative to the TGSI f/e, producing
    the same ir3 IR and using the same backend passes for scheduling, etc.
    
    It is not enabled by default yet, as there are still some regressions.
    To enable, use 'FD_MESA_DEBUG=nir'.  It is enough to use with, for
    example, xonotic or supertuxkart.
    
    With the NIR f/e, scalarizing and a number of other lowering steps
    happen in NIR, so we don't have to do them in ir3.  Which simplifies the
    f/e and allows the lowered instructions to pass through other
    optimization stages.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=700d949ea162a5036ffc3056adaa8eb3fecc9c2e
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Tue Mar 3 20:36:39 2015 -0500

    freedreno/a3xx: don't decode srgb on mem2gmem
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b060b56772cdb349478757382de036a20a2402ba
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat Apr 4 02:53:52 2015 -0400

    freedreno/a3xx: pass sprite coord mode through to program emit
    
    Use the correct sprite replacement depending on the flip of the coord
    mode, using either T or 1-T depending on whether we have an upper-left or
    lower-left coordinate origin. This fixes all the point sprite piglits.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1de72dfc8a2014069edd1b3d3d46dad478d0680a
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Tue Mar 31 11:51:00 2015 -0400

    freedreno/a3xx: add UBO support
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7811f56c205b113dd820034a99ff3aaa20af636
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat Apr 4 13:37:45 2015 -0400

    freedreno/ir3: insert nop between sfu/mem operations
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=14dfd8cc4344a1bb15a63179b497d14eaec9cc0d
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Apr 3 22:29:44 2015 -0400

    freedreno: dirty context when reallocating a bound bo
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bde2045fa247b4d1de98a3bc7585d1b60f9b58b7
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Apr 3 02:15:17 2015 -0400

    freedreno: keep track of buffer valid ranges
    
    Copies nouveau_buffer and radeon_buffer. This allows a write to proceed
    to an uninitialized part of a buffer even when the GPU is using the
    previously-initialized portions.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dacf22e0a34d4dc2595f3cb0dbee52318dc9d0d7
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Thu Apr 2 20:48:44 2015 -0400

    freedreno: mark resources as being read so that writes flush the queue
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e1445c8f3df7608ba4522f8d088170de4ec788c
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Apr 3 23:39:38 2015 -0400

    freedreno: don't bother setting resource timestamps
    
    Waiting on a bo being ready is handled in fd_bo_cpu_prep. No need to
    keep separate timestamps around.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1fee3061d531a9f4068952209926ad518aab07ee
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Apr 3 02:25:58 2015 -0400

    freedreno: add a reading flag to indicate gpu is reading rsc
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea0952a9db1b5887f915d8f750f5fa9c45719976
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Thu Apr 2 22:28:21 2015 -0400

    freedreno: fix resource flushing confusion
    
    A resource flush is an upload of a hypothetically-staging texture to the
    GPU. For a UMA system, this will largely be a no-op or
    cache-maintenance. Move the render flush logic into transfer_map where
    it belongs, and clear out the transfer_flush function.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfb0a8eb6967065be92e40ba620fc6fededde51a
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Thu Apr 2 22:26:03 2015 -0400

    freedreno: remove tex_resource
    
    pipe_sampler_view already contains a texture, remove the redundant
    tex_resource member which pointed at the same thing.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6cd9c94ce49a2c1a8826c1b1bf2fb73dc595131d
Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Apr 1 12:31:46 2015 -0400

    freedreno/ir3: handle FRAG IN's without interpolation specified
    
    Fallback to picking based on semantic name.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f513f006ceed825fa09e606d99190e490e559885
Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Apr 1 10:52:29 2015 -0400

    freedreno/ir3/cmdline: add @const headers for immediates
    
    Since NIR f/e currently encodes immediates in instructions (rather than
    passing via const), we need to ensure that when const's are used the get
    initialized to the proper values.  Otherwise comparing NIR to TGSI
    compiler, it will use proper immediate values in one case, and randomly
    initialize values in the other.  Which confuses ir3test.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6bc12bb5fd29a70967d467a19153bda9404653bd
Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Apr 1 10:28:58 2015 -0400

    freedreno/ir3/cmdline: remove hack for old compiler
    
    Since we dropped the old compiler, we don't need this hack anymore.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f370e95421f553ace931a02743c96be80fd62dc8
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sun Mar 29 11:24:57 2015 -0400

    freedreno/ir3: handle const/immed/abs/neg in cp
    
    Be smarter about propagating copies from const or immed, or with abs/neg
    modifiers.  Also, realize that absneg.s and absneg.f are really "fancy"
    mov instructions.
    
    This opens up the possibility to remove more copies.  It helps the TGSI
    frontend a bit, but will be really needed for the NIR f/e which builds
    everything up in SSA form (ie. will *always* insert a mov from const or
    immediate).
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=104713d9f2dced94a427004a25c54b2c7feee166
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sun Mar 29 11:18:29 2015 -0400

    freedreno/ir3: split float/int abs/neg
    
    Even though in the end, they map to the same bits, the backend will need
    to be able to differentiate float abs/neg vs integer abs/neg.  Rather
    than making the backend figure it out based on instruction opcode (which
    when combined with mov/absneg instructions, can be awkward), just split
    out different flags for each so the frontend can signal it's intentions
    more clearly.  Also, since (neg) for bitwise op's is actually a bitwise-
    not, split it out into bnot flag.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=203f37540a698a812f0a66e2f3f1fff954af22ab
Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Mar 18 19:26:13 2015 -0400

    freedreno/ir3: add ir3 builder helpers
    
    Add helpers for constructing SSA forms of instructions.
    
    Only partial cat5/cat6 coverage.. but we can add stuff as needed.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1c9fb9fcaf34923f69d671fdba0a35ea581b3a0
Author: Rob Clark <robclark at freedesktop.org>
Date:   Mon Mar 30 14:14:31 2015 -0400

    freedreno/ir3: fix sam argument order comment
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=101142c401038684ca971015d7576029b9dc5e63
Author: Rob Clark <robclark at freedesktop.org>
Date:   Fri Apr 3 14:01:47 2015 -0400

    xa: support for drivers which use NIR
    
    We need to pull in libnir.la and it's dependency libglsl_util.la.  Also,
    _mesa_error_no_memory() must be defined.
    
    Fortunately with libnir.la (vs pulling in all of libglsl.la) we don't
    also need libstdc++.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c857727a12a45392b609949046b4abb25e3d7da
Author: Rob Clark <robclark at freedesktop.org>
Date:   Fri Apr 3 13:57:46 2015 -0400

    build: add libnir.la
    
    If we want to use NIR from state trackers that don't already pull in the
    whole of glsl (ie. anything other than mesa state tracker), we need a
    separate more minimal libnir.  Possibly NIR should be better split out
    from glsl, but for now, generate a second smaller libnir.la for those
    who just want NIR but not all of glsl.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=52282fa42d34051b042d20b52e84f32274691e36
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Apr 4 18:15:24 2015 -0400

    gallium/ttn: MOD is an integer instruction
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>
    Reviewed-by: Eric Anholt <eric at anholt.net

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7579ae422a0fcd8c36a6e873f5e47d0e8d158640
Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Apr 4 18:15:00 2015 -0400

    gallium/ttn: add UMAD
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f2ecc95e44c5798a15cde4aa67887bc562756ccd
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Mar 31 17:03:39 2015 -0400

    nir: add lowering for idiv/udiv/umod
    
    Based on the algo from NV50LegalizeSSA::handleDIV() and handleMOD().
    See also trans_idiv() in freedreno/ir3/ir3_compiler.c (which was an
    adaptation of the nv50 code from Ilia Mirkin).
    
    A python/numpy script which implements the same algorithm (and is
    possibly useful for debugging or analysis) can be found here:
    
      http://people.freedesktop.org/~robclark/div-lowering.py
    
    I've tested this on i965 hacked up to insert the idiv lowering pass,
    and on freedreno with NIR frontend.
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>
    Tested-by: Eric Anholt <eric at anholt.net> (vc4)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7880bea2fb587871faead78f624920ad5e8b89f7
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Mar 31 15:13:00 2015 -0400

    nir: fix typo for f2b/i2b/b2i expressions (v2)
    
    v2: discovered that i2b/b2i are also confused
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6829d76e0285f9ed8091990b908d2e7dc37c5218
Author: Rob Clark <robclark at freedesktop.org>
Date:   Tue Mar 31 11:25:19 2015 -0400

    nir: add option to lower slt/sge/seq/sne
    
    In freedreno these get implemented as the matching f* instruction plus a
    u2f to convert the result to float 1.0/0.0.  But less lines of code to
    just let nir_opt_algebraic handle this for us, plus opens up some small
    window for other opt passes to improve (ie. if some shader ended up with
    both a flt and slt with same src args, for example).
    
    v2: use b2f rather than u2f
    
    Signed-off-by: Rob Clark <robclark at freedesktop.org>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>




More information about the mesa-commit mailing list