URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f4bb72745ca1fa507749843d32f320f879cf1b7
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 20 17:36:03 2021 -0500

    pan/bi: Add nosched debug option
    
    Forces a trivial schedule to replicate the old behaviour (for debugging
    or benchmarking). Actually the new scheduler is still used, just highly
    constrained; the net result should still do what's expected.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ced55f0bcc202f0087b213da756985e87091ef13
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 12:57:56 2021 -0500

    pan/bi: Remove older cube map lowering
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1dd3ff51e8b84e20ca8f66e3992b1dd3e0538fd0
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 18:13:49 2021 -0500

    pan/bi: Remove old FAU assignment code
    
    Replaced by the scheduler.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=77933d16d8c27a1f520be20aa227428bd4e83c7e
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 15:02:28 2021 -0500

    pan/bi: Switch to new scheduler
    
    Delete the old.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0c0082ab01cc6cba8048afe640779d6f0fbe164
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:59:56 2021 -0500

    pan/bi: Schedule blocks
    
    Replicate the pattern, greedily select clauses until we run out of
    instructions.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8fac99a7c0b3cd648074faecc52a16238493f80b
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 19:58:17 2021 -0500

    pan/bi: Add constant modifier handling
    
    Once we've merged the clauses' constants, we need to....
    
    1. Swap where necessary so non-pcrel constants are correctly encoded.
    2. Swap where necessary so pcrel constants are in canonical positions.
    3. Force M1 values for pcrel constants and final single constants.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5742d911663edb9497cbe3c9811ec06003beab0
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 19:54:31 2021 -0500

    pan/bi: Add constant merging routines
    
    These work as you would expect: first handling paired constants
    (swapping to a canonical form to deduplicate), then handling unpaired
    constants (packing together in a canonical form). Most of the added
    complexity is from pcrel handling, but we impose strict invariants on
    pcrel (no more than one PC-relative constant per clause, only M1=4 mode)
    without which the algorithm would be even uglier.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=79dc2038a2f4649cc1a7aac00c29d2ee6a6292de
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 19:53:49 2021 -0500

    pan/bi: Add constant state constructor
    
    Based on the tuple state's constants, satisfying the pcrel invariant we
    impose.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7aaaf9cfafe4af9371ade1e42983f9a86cd9fb01
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 19:53:09 2021 -0500

    pan/bi: Add constant to passthrough rewrite
    
    Mimicks the one previously done at pack time, but designed for schedule
    time instead.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc7770b1ddac0f26489925ded8002bd9a8886095
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 19:52:18 2021 -0500

    pan/bi: Add trivial rewrite helpers
    
    We need to do certain rewrites during scheduling before RA runs in order
    to satsify scheduler post-conditions.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=66100895ff0132b21108f4650401748e8532e51a
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 18:17:06 2021 -0500

    pan/bi: Derive M0 from pcrel_idx while packing
    
    Assumes the usual M1=4 mode.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2096359cf9bd253315a7728e425ecc7e61374471
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 18:16:45 2021 -0500

    pan/bi: Add pcrel_idx to bi_clause
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=649e45234f1f1a242866b39877cb015aca9f68c7
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 18:12:59 2021 -0500

    pan/bi: Move bi_constant_field to bifrost.h
    
    It's a hardware invariant, and useful for the scheduler (not just
    packing).
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee78628f786f834216b1e91ef43ca82fd41ca1ca
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 16:36:05 2021 -0500

    pan/bi: Add bi_foreach_instr_and_src_in_tuple
    
    Rather specialized but keeps down obnoxious indentation in scheduler
    passes.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a8fce919d22c1389e3511dc9970d62245bf53146
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Jan 8 17:49:25 2021 -0500

    pan/bi: Extract bi_ec0_packed helper
    
    Useful for scheduling decisions as well as packing.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4252fb84f4f0ad5ec6f3d966fec308a3b42ffd7a
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:57:36 2021 -0500

    pan/bi: Add passthrough register rewriting helper
    
    Passthroughs are _required_ for correct scheduling, so we have to handle
    this now. The legitimacy of using passthroughs is justified by the
    constraint checks and verified with asserts at pack time.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=09c5d4ce186a016d17522b0798dd0e0736388464
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:56:47 2021 -0500

    pan/bi: Destructively schedule a single instruction
    
    Wrapper to select the best legal instruction, pop it off the worklist,
    update the clause/tuple states, and return it.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=63271dca9a0710502178e63268324328f4be0ad4
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:55:50 2021 -0500

    pan/bi: Choose instructions to schedule
    
    In the future we'll want a heuristic minimizing register pressure but
    for in-order this will suffice.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a303076c1ab71f92907b1967c4b542af0c847198
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:55:02 2021 -0500

    pan/bi: Add bi_instr_schedulable predicate
    
    Using the previously defined checks for architectural scheduling
    constraints, define one top-level predicate to check if an instruction
    on the worklist is ready for scheduling.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2537a53d5cc1f992366c9b7c5ea2781cc7913f5a
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 17:39:44 2021 -0500

    pan/bi: Add writes_reg predicate
    
    ATEST is a bit of a wrinkle in this, so let's keep it in one place.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb27baa35acbcef4563d5ca96c53f7ccb305af93
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 16:16:37 2021 -0500

    pan/bi: Add T0/T1 constraint check
    
    Not visible on real shaders yet, but it will be when we schedule
    out-of-order (or implement 64-bit multiplication).
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0349181e40a03ce53404949d0e89296158dd7215
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:54:18 2021 -0500

    pan/bi: Validate reads_t
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f1cda5284403f3f9e93ca1fa7eca703c87a0b3f
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:50:03 2021 -0500

    pan/bi: Add bi_count_succ_reads helper
    
    The number of register writes in a tuple must be bounded by a number
    based on the number of register reads in the succeeding tuple, since
    writes and reads are interleaved. This helper calculates that number of
    reads, noting that not every read actually counts - if the preceding
    tuple writes to a read source, that will become a temporary instead of
    consuming a register slot.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=06bde2cc31e99f309f7e06d18a236870f9d94c08
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:48:21 2021 -0500

    pan/bi: Add bi_tuple_is_new_src
    
    To determine the number of register reads in a tuple (which must be
    bounded by 3, or 5 if you force writes), we need to count "new" sources:
    those that are not already in a partially scheduled tuple.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=93c82c6facb10d88b2aac22defaa723e7361d5fe
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:45:32 2021 -0500

    pan/bi: Add FAU update helper
    
    This comes in destructive and nondestructive flavours, to be used to
    insert an instruction into a tuple and check if an instruction is
    insertable respectively. It is responsible for FAU slot matching.
    
    It's annoying this sort of logic is duplicated in 3 places
    (bi_lower_fau, here, and packing) but they each work with different sets
    of assumptions...
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5607c8745353061dae9575b217a8a73f24e8e4d
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 19:49:31 2021 -0500

    pan/bi: Add constant count estimates to scheduler
    
    Needed to satisfy max constant constaints. These aren't precise but
    they should be a good enough approximation for now.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb7e363688e49047e6d88d0c2052dd8eff793c27
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:23:41 2021 -0500

    pan/bi: Stub worklist routines
    
    In the near future we'll schedule out-of-order via a dependendency graph
    and worklist. For now, emulate in-order operation.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ddff0fa8b1b597110247d377c84869b74f8f0ea
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:23:23 2021 -0500

    pan/bi: Flatten block lists
    
    From Midgard scheduler.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=39406571ec4ebf9860a077878e130bc97472e2d4
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:18:16 2021 -0500

    pan/bi: Add cubeface lowering
    
    For the new schedule infrastructure. This supports multiple tuples per
    clause, unlike the old hack lowering.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b4ab7bd2ac0fb1f2413bf2f202d7bf369999a99
Author: Alyssa Rosenzweig <[email protected]>
Date:   Wed Jan 6 14:16:40 2021 -0500

    pan/bi: Add scheduler data structures
    
    To satisfy the numerous architectural scheduler constraints, quite a bit
    of state is required per-tuple, per-clause, and per-block. These data
    structures allow maintaining this state separate from the main IR
    data structures, allowing for partial constructions and nondestructive
    operations.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=07a3ccfbed2d7b0723a21a7014704ce07e67041b
Author: Alyssa Rosenzweig <[email protected]>
Date:   Mon Jan 18 19:14:23 2021 -0500

    pan/bi: Include ATEST datum in the instruction
    
    Rather than doing this at pack time like before, or adding extra
    constraints to the already overcomplicated scheduler, let's just include
    it like a regular FAU source.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b8f042c9bb0e1c6de684222d301084e5e2b17c3e
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 17:58:46 2021 -0500

    pan/bi: Dead code eliminate per-channel
    
    We already track the full liveness so this is a trivial optimization,
    with an especial win for shaders reading only a subset of components of
    gl_FragCoord.
    
    More importantly, it's required for proper scheduling (in soft mode)
    when vectors are used and some (but not all components) are promoted to
    temporary registers.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=08d98290feb67ec71e0944c1ce3f6deffa53a156
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 16:25:25 2021 -0500

    pan/bi: Cleanup terminal block check
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a27f8887dba8a5c73d7f30042927b8cfa785362
Author: Alyssa Rosenzweig <[email protected]>
Date:   Fri Feb 5 20:25:39 2021 -0500

    pan/bi: Print program size in shader-db
    
    Less critical than other metrics, but still matters for instruction
    cache hit rate, and worth being aware of.
    
    And, fine, it makes the scheduler look like a bigger win on another
    axis.
    
    Signed-off-by: Alyssa Rosenzweig <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ecce71f71bb4206d2e4c1d5e29c0454032d2f79
Author: Icecream95 <[email protected]>
Date:   Thu Jan 28 21:41:10 2021 +1300

    pan/bi: Fix shader prefetch size
    
    The prefetch buffer size is larger than first thought, but includes
    the final clause, so subtract the size of the final clause from the
    prefetch size.
    
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5ab019b5a5a29d4b65f7b8bb37a5372919fa287
Author: Icecream95 <[email protected]>
Date:   Thu Jan 28 21:38:41 2021 +1300

    pan/bi: Return the size of the last clause from bi_pack
    
    Will be used for calculating prefetch size.
    
    Reviewed-by: Boris Brezillon <[email protected]>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8354>

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to