Mesa (master): 31 new commits

Francisco Jerez currojerez at kemper.freedesktop.org
Mon Mar 23 13:03:47 UTC 2015


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d1bba7c9be856ed4e7611ef92796430556a2f6d
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:06:28 2015 +0200

    i965/vec4: Fix handling of multiple register reads and writes in dead_code_eliminate().
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2babde35b9a38a0561a87dc2d7cb431e9aabbd5a
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Mar 23 14:08:49 2015 +0200

    i965/vec4: Calculate live intervals with subregister granularity.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6e655ef76bb22193b31af2841cb50fda0c39461
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 20:49:43 2015 +0200

    i965/vec4: Define helpers to calculate the common live interval of a range of variables.
    
    These will be especially useful when we start keeping track of
    liveness information for each subregister.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=eddb87402ea7ce68357a3d93b0dbb41857be27f6
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 20:17:23 2015 +0200

    i965/vec4: Define helper functions to convert a register to a variable index.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce030a63993f7192c6aa4c5b9180f9543a6a76bc
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Mar 19 15:08:16 2015 +0200

    i965/vec4: Don't lose the force_writemask_all flag during CSE.
    
    And set it in the MOV instructions that copy the temporary to the
    original destination if the generator instruction had it set.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1db9c0cd0c0f4a1a0a4409e4c90cd0f0d0bce68d
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 19:51:01 2015 +0200

    i965/vec4: Fix handling of multiple register reads and writes in opt_cse().
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d041a43c0f3e01c9d6f81244cbf1c85d4f3a17d5
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 19:46:54 2015 +0200

    i965/vec4: Fix handling of multiple register reads and writes during copy propagation.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=588859e18cb597612e56980a65a762ef069363e4
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 19:45:40 2015 +0200

    i965/vec4: Fix handling of multiple register reads and writes in split_virtual_grfs().
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9304f60cbe7c348a4771a7746606730bea3ae45f
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 19:43:44 2015 +0200

    i965/vec4: Fix handling of multiple register reads and writes in opt_register_coalesce().
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=74c7e5d35181d31e4448c614f6aa62c1e1f60694
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 19:35:31 2015 +0200

    i965: Define method to check whether a backend_reg is inside a given range.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf6eb37e0b62fa61c01a32dc5ccb6a7ab00be5f4
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 16:03:30 2015 +0200

    i965/vec4: Remove dependency of vec4_live_variables on the visitor.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e7622a48714934411c84cdd8b6576b2b8ce311d
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Mar 19 15:30:06 2015 +0200

    i965/vec4: Trivial copy propagate clean-up.
    
    Fix typo and punctuation in a comment, break long line and add space
    before curly bracket.
    
    Reviewed-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7526ee36bcb89c867f4ec94f4585952195429841
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:51:45 2015 +0200

    i965/vec4: Add argument index and type checks to SEL saturate propagation.
    
    SEL saturate propagation already implicitly relies on these
    assumptions.
    
    Reviewed-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=24073b2cd7c15d989a40c1b7bc30e8be200ff328
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Mar 19 18:25:30 2015 +0200

    i965/vec4: Fix broken saturate mask check in copy propagation.
    
    try_copy_propagate() was checking the bit of the saturate mask for the
    arg-th component of the source to decide whether the whole source
    should be saturated (WTF?).  We need to swizzle the original saturate
    mask and check that for all enabled channels the saturate flag is
    either set or unset, as we cannot saturate a subset of destination
    components only.
    
    Reviewed-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=18dc59c21295a2a4acf4b69cb7e7ea502c8dd8c8
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:45:16 2015 +0200

    i965/vec4: Don't lose copy propagation saturate bits for not written components.
    
    Reviewed-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3733defbe4f87acd1b6dca716b861f2dfaea05a
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:39:03 2015 +0200

    Revert "i965/vec4: Don't lose the saturate modifier in copy propagation."
    
    This reverts commit 0dfec59a2785cf7a87ee5128889ecebe810b611b.  The
    change prevented propagation of copies with the saturate flag set,
    making the whole saturate mask tracking completely useless.  A proper
    fix follows.
    
    Reviewed-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=21c829e5cc6fefa5a42550e9043fade3e9e54e64
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:40:25 2015 +0200

    i965/vec4: Remove unused method definition.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=516d45f78a3bbab0288c49c0f876ebdf4ad05bff
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:19:28 2015 +0200

    i965/vec4: Some more trivial swizzle clean-up.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=430c6bf70e48c08ba4dc9e00f2b88e2230793010
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:27:58 2015 +0200

    i965/vec4: Improve src_reg/dst_reg conversion constructors.
    
    This simplifies the src_reg/dst_reg conversion constructors using the
    swizzle utils introduced in a previous patch.  It also makes them more
    useful by changing their semantics slightly: dst_reg(src_reg) used to
    set the writemask to XYZW if the src_reg swizzle was anything other
    than XXXX, which was almost certainly not what the caller intended if
    the swizzle was non-trivial.  After this patch the same components
    that are present in the swizzle will be enabled in the resulting
    writemask.
    
    src_reg(dst_reg) used to set the first components of the swizzle to
    the enabled components of the writemask and then replicate the last
    enabled component to fill the swizzle, which, in cases where the
    writemask didn't have exactly the first n components set, would in
    general not be compatible with the original dst_reg.  E.g.:
    
    | ADD(tmp, src_reg(tmp), src_reg(1));
    
    would *not* do what one would expect (add one to each of the enabled
    components of tmp) if tmp didn't have a writemask of the described
    form (e.g. YZ, YW, XZW would all fail).  This pattern actually occurs
    in many different places in the VEC4 back-end, it's a wonder that it
    hasn't caused piglit failures until now.  After this patch
    src_reg(dst_reg) will construct a swizzle with each enabled component
    at its natural position (e.g. Y at the second position, Z at the
    third, and so on).  The resulting swizzle will behave like the
    identity when used in any instruction with the original writemask.
    
    I've manually verified that *none* of the callers of both conversion
    constructors were relying on the previous broken semantics.  There are
    no piglit regressions on any generation.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=62fd3353387547504966d77f3350afc9b688ef93
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:21:20 2015 +0200

    i965/vec4: Pass argument by reference to src_reg/dst_reg conversion constructors.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=23bda945f570b4f566ed39b4c1de89a957247df7
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:18:08 2015 +0200

    i965/vec4: Remove swizzle_for_size() in favour of brw_swizzle_for_size().
    
    It could be objected that swizzle_for_size() is "faster" than
    brw_swizzle_for_size().  It's not measurably better in any reasonable
    CPU-bound benchmark on VLV according to the Finnish benchmarking
    system (including the SynMark2 DrvShComp shader compilation
    benchmark).
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5bcca9f8dc34a13e34270d284bcf8a49b52bb58e
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:26:10 2015 +0200

    i965/vec4: Remove broken vector size deduction in setup_builtin_uniform_values().
    
    This seemed to be trying to deduce the number of uniform vector
    components from the parameter swizzle, but the algorithm would always
    give 4 as result.  Instead grab the correct number of components from
    the GLSL type.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=132cdcc468d0e40f422dd96303a61ee231be1a92
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:15:05 2015 +0200

    i965/vec4: Simplify visitor handling of swizzles using the swizzle utils.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a17e4e900256b5be73d935fa5f35c98b3b0d7fe
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:11:20 2015 +0200

    i965/vec4: Simplify opt_register_coalesce() using the swizzle utils.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=05ec72d8ecdba04a81745fbc3ca0df40c7fb8828
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:09:51 2015 +0200

    i965/vec4: Simplify reswizzle() using the swizzle utils.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b30493dc4f0b1346fe4c1fe52211f0c0d7ed229
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 21:08:52 2015 +0200

    i965/vec4: Simplify opt_reduce_swizzle() using the swizzle utils.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb9bd3a1b0d6c518f9a38d81c0729feb38474f5a
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Mar 19 16:03:57 2015 +0200

    i965: Fix signedness of backend_reg::reg_offset.
    
    And make it 16-bit so it packs nicely with the previous field.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e816c7feb8cffa878546eee363240b1b66d5c42
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:24:06 2015 +0200

    i965/vec4: Fix signedness of dst_reg::writemask.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7678fb9c639f25313f3ae2e2b539e424370d3ec6
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 15:22:52 2015 +0200

    i965/vec4: Don't use GL types in the IR data structures.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7bc02c786df437024e2a8582192a66ddb5e40624
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 14:32:37 2015 +0200

    i965/vec4: Fix signedness of brw_is_single_value_swizzle() argument.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cff670b009ee8c8a60d1551148bf02038824507b
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Mar 18 14:34:51 2015 +0200

    i965: Define some useful swizzle helper functions.
    
    This defines helper functions implementing some common swizzle
    transformations that are usually open-coded in the compiler back-end,
    causing a lot of clutter.  Some optimization passes will become almost
    trivial implemented in terms of these functions (e.g.
    vec4_visitor::opt_reduce_swizzle()).
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>




More information about the mesa-commit mailing list