Mesa (master): 22 new commits

Kenneth Graunke kwg at kemper.freedesktop.org
Mon May 19 06:35:47 UTC 2014


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=13edd5f6160fce73369afbbf937b5e7ef646a4cc
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sun May 18 23:36:19 2014 -0700

    i965: Fix a "discards 'const' qualifier" warning.
    
    Trivial.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=09b4f260a7ffbfc5a097bf80d5269469adbce647
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 01:35:30 2014 -0700

    i965/fs: Finally kill struct brw_wm_compile (better known as 'c').
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b994d0f3bb4249fc33a9fe1a6fcad1755fbba20
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 01:32:54 2014 -0700

    i965/fs: Stop copying the program key.
    
    We already have a perfectly good copy of the program key, and nobody is
    going to modify it.  The only reason we copied it was because the
    brw_wm_compile structure embedded the key rather than pointing to it.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cca6dc9f0fd43db366730d67baae1affdca8c6de
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 00:41:41 2014 -0700

    i965/fs: Rip struct brw_wm_compile out of the visitors and generators.
    
    Instead, just pass the key and prog_data as separate parameters.
    
    This moves it up a level - one step further toward getting rid of it.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d4ac9b5b825b745257e935dd9b33a2d3507c72a
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 01:21:02 2014 -0700

    i965/fs: Plumb a mem_ctx all the way through the FS compile.
    
    'c' is going away, but we still need a memory context that lives
    for the duration of the compile.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=25f8fbbf2fc74470f7edce7cae25453a3edbdfe0
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 01:07:32 2014 -0700

    i965/fs: Use 'c' as the mem_ctx in fs_visitor.
    
    Previously, the memory context situation was a bit of a mess:
    
    fs_visitor allocated its own memory context, and freed it in the
    destructor.  However, some data produced by fs_visitor (such as the list
    of instructions) needs to live beyond when fs_visitor is "done", so the
    caller can pass it to fs_generator.
    
    Everything worked out because brw_wm_fs_emit's fs_visitor variables
    happen to not go out of scope until the end of the function.  But that
    meant that moving the declaration of, say, the SIMD16 fs_visitor
    instance, could cause everything to explode.
    
    Using a memory context that exists for the duration of the compile is
    clearer, and should be equivalent.
    
    Ultimately, we don't want to use 'c', but this matches the behavior of
    fs_generator and gen8_fs_generator, so it'll be simple to change later.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=81b11bf0934d5387bd3741b6268501df3973a6a7
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 01:04:02 2014 -0700

    i965/fs: Actually free program data on the error path.
    
    We throw away the data generated during compilation on the success path,
    so we really ought to on the failure path as well.  The caller has no
    access to it anyway, so it's purely leaked.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c96fdeb723dd92ec7dfed908e41e6ad401c36ff3
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 00:24:50 2014 -0700

    i965/fs: Replace c->key with a direct reference in the generators.
    
    'c' is going away.  This is also a bit shorter.
    
    Marking the key pointer as const will also deter people from changing
    it in these classes, as that's absolutely not OK.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=65b2df3ec8906c51ae5b28df9c0b2c71981080d0
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 21:06:00 2014 -0700

    i965/fs: Replace c->key with a direct reference in fs_visitor.
    
    'c' is going away.  This is also shorter.
    
    Marking the key pointer as const will also deter people from changing
    it in fs_visitor, as it's absolutely not OK to modify it there.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b61d055d660863261a1458a1a127cc6f8d8264a6
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 00:20:24 2014 -0700

    i965/fs: Replace c->prog_data with a direct reference in the generators.
    
    'c' is going away.  This is also a bit shorter.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a04e0de8bbf4caf08c0759f2abaa94de64ee5fd
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 00:17:03 2014 -0700

    i965/fs: Replace c->prog_data with a direct reference in fs_visitor.
    
    'c' is going away.  This is also a bit shorter.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=55f4e3a06b52c3e8b6bfad851e1d4e5243f1e2c0
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed May 14 00:08:58 2014 -0700

    i965/fs: Move some flags that affect code generation to fs_visitor.
    
    runtime_check_aads_emit isn't actually used currently, but I believe
    we should be using it on Gen4-5, so I haven't eliminated it.
    See https://bugs.freedesktop.org/show_bug.cgi?id=78679 for details.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ef78828fadb0f35b07be93492b3d7c297bb9ffd
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 21:52:51 2014 -0700

    i965/fs: Move payload register info from brw_wm_compile to fs_visitor.
    
    This data is created by fs_visitor and only used when emitting code,
    so keeping it in fs_visitor makes sense.  I decided it would be
    reasonable to group these all together in a struct, since they're
    highly related.
    
    v2: s/nr_payload_regs/payload.num_regs/ in some comments (chrisf).
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c76e6db05f9256711a226de8562124a5f14aae2d
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 21:21:21 2014 -0700

    i965/fs: Simplify gl_SampleMaskIn handling.
    
    As far as I can tell, there's no point in allocating an extra register
    and generating a MOV---we can just use the copy provided as part of our
    thread payload directly.  It's already in the right format.
    
    Of course, there are zero Piglit tests for this.  We don't actually ship
    the extension (GL_ARB_gpu_shader5) that exposes this functionality
    either.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5cd7cf58e66ebb4e87a7fe6bba3b43f062ace47f
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 21:36:28 2014 -0700

    i965/fs: Rename c->sample_mask_reg to sample_mask_in_reg.
    
    This is actually for gl_SampleMaskIn, which is quite different than
    gl_SampleMask.  Renaming should help avoid confusion.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=db9c915abcc5ad78d2d11d0e732f04cc94631350
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 21:00:35 2014 -0700

    i965/fs: Move c->last_scratch into fs_visitor.
    
    Nothing outside of fs_visitor uses it, so we may as well keep it
    internal.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e28bd797dbe1721e5d97916f041493d1f30220d
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 20:51:32 2014 -0700

    i965/fs: Move total_scratch calculation into fs_visitor::run().
    
    With this one use gone, c->last_scratch is now only used inside
    fs_visitor.  The rest of the driver uses prog_data->total_scratch.
    
    We already compute similar prog_data fields in fs_visitor, so this
    seems reasonable.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c51163b0cf7aff0375b1a5ea4cb3da9d9e164044
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue May 13 20:41:27 2014 -0700

    i965/fs: Move perf_debug about register spilling to a more obvious spot.
    
    The if (!allocated_without_spills) block is an obvious spot for this
    performance warning message.
    
    In the Vec4 backend, scratch is also used for indirect access of
    temporary arrays.  The FS backend doesn't implement that yet, but
    if it did, this message would be inaccurate, since scratch access
    wouldn't necessarily mean spilling.  Moving it preemptively fixes that.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=db1449b7005af190d2ef1f2ad94f96c4b29943db
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu May 15 16:10:09 2014 -0700

    i965: Rename brw/gen8_dump_compile to brw/gen8_disassemble.
    
    "Disassemble" is an accurate description of what this function does.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b04152db055babb8b06929a0c9ebea5c7f4fb92
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu May 15 16:02:16 2014 -0700

    i965: Rename brw_disasm/gen8_disassemble to brw/gen8_disassemble_inst.
    
    We're going to use "disassemble" for the function that disassembles
    the whole program.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a2f0e305ce30ac4dfc2ad3c380711a7aff3f63b
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu May 15 15:58:07 2014 -0700

    i965: Fix dump_prog_cache to handle compacted instructions.
    
    dump_prog_cache has interpreted compacted instructions as full size
    instructions, decoding garbage and complaining about invalid values.
    
    We can just use brw_dump_compile to handle this correctly in less code.
    The output format changes slightly, but it's still perfectly acceptable.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3285bc97ef9f5f6bdf38ced121ddedd111a5e410
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu May 15 14:12:48 2014 -0700

    i965: Use brw_dump_compile for clip, SF, and old GS programs.
    
    Looping over the instructions and calling brw_disasm doesn't handle
    compacted instructions.  In most cases, this hasn't been a problem since
    we don't compact prior to Sandybridge.
    
    However, Sandybridge's transform feedback GS program should already be
    compacted, and so this ought to fix decoding of that.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>




More information about the mesa-commit mailing list