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