Mesa (master): 35 new commits

Eric Anholt anholt at kemper.freedesktop.org
Sat Aug 9 02:00:46 UTC 2014


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b4b60b7e501964b689abbd31c77537ff798e6bd
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 6 17:25:31 2014 -0700

    vc4: Add support for the COS instruction.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=663ffff0e747efebf434b57fe1e149619be0d228
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 6 16:41:12 2014 -0700

    vc4: Add support for the SIN instruction.
    
    v2: Rebase on helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d815b2490b2da3c68aa4de951006d1c5f5470da2
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 6 12:34:00 2014 -0700

    vc4: Fix register aliasing for packing of scaled coordinates.
    
    Fixes glean fragProg1's "ADD test" and likely many others.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9492eb588dd001ec4578aa2ba3c258b43b76263b
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 6 11:52:57 2014 -0700

    vc4: Add some debug code for forcing fragment shader output color.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=961715eab2117772e0145229d6f934d351b9b27b
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 5 11:29:07 2014 -0700

    u_primconvert: Copy min/max_index from the original primitive.
    
    These values are supposed to be the minimum/maximum index values used to
    read from the vertex buffers.  This code either copies index values out of
    the old IB (so, same min/max as the original draw call), or generates a
    new IB (using index values between the start and the start + count of the
    old array draw info, which just happens to be what min/max_index are set
    to by st_draw.c).
    
    We were incorrectly setting the max_index in the
    converting-from-glDrawArrays case to the start vertex plus the number of
    vertices generated in the new IB, which broke QUADS primitive conversion
    on VC4 (where max_index really has to be correct, or the kernel might
    reject your draw call due to buffer overflow).
    
    Reviewed-by: Rob Clark <robclark at freedesktop.org> (from verbal description
                 of the patch)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1d03692f7888929c44446633809fe7bbc9da5d73
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Aug 1 15:45:41 2014 -0700

    vc4: Fix using and emitting the 1/W from the vertex/coord shaders.
    
    v2: Rebase on helpers change.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=88bc5baa00c632c2411304b2c7e5cc49f882c30e
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Aug 1 12:50:53 2014 -0700

    vc4: Add support for swizzles of 32 bit float vertex attributes.
    
    Some tests start working (useprogram-flushverts, for example) due to
    getitng the right vertices now.  Some that used to pass start failing with
    memory overflow during binning, which is weird (glsl-fs-texture2drect).
    And a couple stop rendering correctly (glsl-fs-bug25902).
    
    v2: Move the attribute format setup in the key from after search time to
        before the search.
    v3: Fix reading of attributes other than position (I forgot to respect
        attr and stored everything in inputs 0-3, i.e. position).

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f069367f3938741c07658f54390c16550e1b5a5c
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 5 13:35:19 2014 -0700

    vc4: Add support for the TGSI FRC opcode.
    
    v2: Rebase on helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf542cd37286decbd9fc0c939007b82176e16a81
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 5 13:33:50 2014 -0700

    vc4: Add support for the TGSI TRUNC opcode.
    
    v2: Rebase on helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=399285403a5c1c730877b9d196a1f47670f4be46
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 22:45:41 2014 -0700

    vc4: Crank up the tile allocation BO size
    
    This avoids a simulator assertion failure with glamor.  I need to actually
    support resize, though.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=75afa64ef85aa33dfed8325aae767f8a55fd1840
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 22:11:08 2014 -0700

    vc4: Add support for multiple attributes

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=32948ca768fec6debdcdafa58bce2b65c328250d
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 09:09:05 2014 -0700

    vc4: Add more useful debug for the undefined-source case
    
    We could get undefined sources in real programs from the wild, so we'll
    need to turn off this debug eventually.  But for now, using undefined
    sources is typically me just mistyping something.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ff2129d5842898eb87d2a457ee018fe66471f06
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 09:08:48 2014 -0700

    vc4: Add support for the lit opcode.
    
    v2: Fix how it was using the X channel for the real work of the opcode,
        instead of Y.  Fixes glean's LIT test.
    v3: Rebase on the helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=63e49da0a58d6579162f12b4c8e68696eeb6c833
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 08:44:50 2014 -0700

    vc4: Add support for the POW opcode
    
    v2: Rebase on helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e182e7d8f6de9eef7e9b2fe5288072b7d9a6093
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jul 15 11:46:20 2014 -0700

    vc4: Refactor uniform handling.
    
    I wanted an easy way to set up new uniforms every time, so I could handle
    texture-sampler-related uniforms.
    
    v2: Rebase on helpers change.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c185bd26352428a9e3e546b5738f0ffbea69236
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jul 15 11:04:41 2014 -0700

    vc4: Add support for the LRP opcode.
    
    v2: Rebase on helpers, cutting out most of the code in this change.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ec9da314baf11bea57f315346091ae941ac4f662
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 4 10:59:42 2014 -0700

    vc4: Add copy propagation between temps.
    
    We put in a bunch of extra MOVs for program outputs, and this can clean
    those up.  We should do uniforms, too, though.
    
    v2: Fix missing flagging of progress when we actually optimize.  Caught by
        Aaron Watry.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9d1c14430aaeb5b22aa66b269ba288e3df24103
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 4 09:48:23 2014 -0700

    vc4: Add dead code elimination.
    
    This cleans up a bunch of noise in the compiled coordinate shaders (since
    we don't need the varying outputs), and also from writemasked instructions
    with negated src operands.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1d23d55ae97d07b6eb70a3e37a91ecb7de38d8d2
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 3 13:18:49 2014 -0700

    vc4: Add an initial pass of algebraic optimization.
    
    There was a lot of extra noise in my piglit shader dumps because of silly
    CMPs.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c53087c67a266d81653459baa08ece5c1b418d8
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 08:12:27 2014 -0700

    vc4: Add support for CMP.
    
    This took a couple of tries, and this is the squash of those attempts.
    
    v2: Fix register file conflicts on the args in the
        destination-is-accumulator case.
    v3: Rebase on helper change and qir_inst4 change.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=eea1d36915cb97ee1a6eb6aeaf15dd5689f03148
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 4 11:51:31 2014 -0700

    vc4: Make scheduling of NOPs a separate step from QIR -> QPU translation.
    
    This should also be used as a way to pair QIR instructions into QPU
    instructions later.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c29392751180e21a2857cade8d0b4902cbe9d001
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 4 09:38:44 2014 -0700

    vc4: Add WIP support for varyings.
    
    It doesn't do all the interpolation yet, but more tests can run now.
    
    v2: Rebase on helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=db9f41ea8826d09a413059b681121e4bd05ce524
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 4 10:23:50 2014 -0700

    vc4: Use r3 instead of r5 for temps, since r5 only has 32 bits of storage
    
    Reserving a whole accumulator for temps is awful in the first place, but
    I'll fix that later.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=23b2bad9915c1f0aad46ee96e59edb167f4ffea0
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 2 10:43:50 2014 -0700

    vc4: Fix emit of ABS
    
    v2: Rebase on qir helpers.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jul 1 14:42:42 2014 -0700

    vc4: Add shader variant caching to handle FS output swizzle.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6cf86dd48786b08991714c338c6b506dde5f75bb
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jul 1 10:10:37 2014 -0700

    vc4: Load the tile buffer before incrementally drawing.
    
    We will want to occasionally disable this again when we do clear support.
    
    v2: Squash with the previous commit (I accidentally committed at two
        stages of writing the change)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3f96060a8d1ebc9caa7053592e80155a5266e92
Author: Eric Anholt <eric at anholt.net>
Date:   Sat Jun 28 14:59:18 2014 -0700

    vc4: Don't reallocate the tile alloc/state bos every frame.
    
    This was a problem for the simulator since we don't free memory back to
    it, and it would soon just run out.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=21db43021041e8dedc45bb232c10ece83fd09dd1
Author: Eric Anholt <eric at anholt.net>
Date:   Sat Jun 28 14:36:26 2014 -0700

    vc4: Add VC4_DEBUG env option
    
    v2: Fix an accidental deletion of some characters from the copyright
        message (caught by Ilia Mirkin)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e35981d4d625d951328ef5b8f95798112997fb3
Author: Eric Anholt <eric at anholt.net>
Date:   Sat Jun 28 17:26:15 2014 +0100

    vc4: Add support for SNE/SEQ/SGE/SLT.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7108c24fd02a76f3efef4ba5d9aefdf0704ab0d8
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jun 27 16:32:03 2014 +0100

    vc4: Use the user's actual first vertex attribute.
    
    This is hardcoded to read it as RGBA32F so far, but starts to get more
    tests working.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=427f934f9e75deafdc40348aad0426ea2b31515c
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 18 16:29:18 2014 -0700

    vc4: Fix UBO allocation when no uniforms are used.
    
    We do rely on a real BO getting allocated, so make sure we ask for a non-zero size.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=db8712bcbc7875f1b7cff1cf5c6e08eed028f77f
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 16 08:25:22 2014 -0700

    vc4: Add initial support for math opcodes

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=792d1c92df6f58f219eb8b77e668424cdcc9c9af
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jun 26 23:07:39 2014 +0100

    vc4: Switch to actually generating vertex and fragment shader code from TGSI.
    
    This introduces an IR (QIR, for QPU IR) to do optimization on.  It's a
    scalar, SSA IR in general.  It looks like optimization is pretty easy this
    way, though I haven't figured out if it's going to be good for our weird
    register allocation or not (or if I want to reduce to basically QPU
    instructions first), and I've got some problems with it having some
    multi-QPU-instruction opcodes (SEQ and CMP, for example) which I probably
    want to break down.
    
    Of course, this commit mostly doesn't work, since many other things are
    still hardwired, like the VBO data.
    
    v2: Rewrite to use a bunch of helpers (qir_OPCODE) for emitting QIR
        instructions into temporary values, and make qir_inst4 take the 4 args
        separately instead of an array (all later callers wanted individual
        args).

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e59890aebbad990a02c2c27531525804de47115d
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jun 24 16:39:08 2014 +0100

    vc4: Start converting the driver to use vertex shaders.
    
    Note: This is the cutoff point where I switched from developing primarily
    on the Pi to developing o the simulator.  As a result, from this point on
    the code is untested on the Pi (the kernel code I have currently wasn't
    rendering anything at this commit, though the simulator renders
    successfully, suggesting kernel bugs).

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1850d0a1cbf044dc4d29b7a9ede2c634f667d853
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jun 19 08:19:38 2014 +0100

    vc4: Initial skeleton driver import.
    
    This mostly just takes every draw call and turns it into a sequence of
    commands that clear the FBO and draw a single shaded triangle to it,
    regardless of the actual input vertices or shaders.  I copied the initial
    driver skeleton mostly from freedreno, and I've preserved Rob Clark's
    copyright for those.  I also based my initial hardcoded shaders and
    command lists on Scott Mansell (phire)'s "hackdriver" project, though the
    bit patterns of the shaders emitted end up being different.
    
    v2: Rebase on gallium megadrivers changes.
    v3: Rebase on PIPE_SHADER_CAP_MAX_CONSTS change.
    v4: Rely on simpenrose actually being installed when building for
        simulation.
    v5: Add more header duplicate-include guards.
    v6: Apply Emil's review (protection against vc4 sim and ilo at the same
        time, and dropping the dricommon drm bits) and fix a copyright header
        (thanks, Roland)




More information about the mesa-commit mailing list