Yiwei Zhang
6f8fe78e3b
venus: start requiring all experimental features
...
This is to prepare for promoting exp features to core.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21379 >
2023-02-28 04:56:14 +00:00
Yiwei Zhang
9d76ed9638
venus: replace binary search with hardcode for max buffer size
...
Avoid the couple test buffer creations without maintenance4.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21379 >
2023-02-28 04:56:14 +00:00
Yiwei Zhang
417de28e43
venus: further disallow sparse resource
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21379 >
2023-02-28 04:56:14 +00:00
Georg Lehmann
e1eabab6fe
aco/optimizer_postRA: assume all registers are untrackable in loop headers
...
Register writes from the pre-header might not be correct for any but
the first loop iteration because they can be clobbered inside the loop.
Foz-DB Navi21:
Totals from 18 (0.01% of 134913) affected shaders:
CodeSize: 251384 -> 251508 (+0.05%)
Instrs: 47644 -> 47664 (+0.04%)
Latency: 801801 -> 801852 (+0.01%)
InvThroughput: 177579 -> 177593 (+0.01%)
Copies: 4752 -> 4771 (+0.40%)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8376
Fixes: d3b0f78110 ("aco/optimizer_postRA: Initialize loop header with preheader information")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21540 >
2023-02-28 04:27:05 +00:00
Mike Blumenkrantz
4c978d5445
zink: skip buffer barriers for ACCESS_NONE -> ACCESS_READ / ACCESS_WRITE
...
these do nothing and may cause unnecessary driver flushing
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21427 >
2023-02-28 04:08:08 +00:00
Emma Anholt
fef6e6588b
ci: Update traces expectations for gutting glsl opt_algebraic.
...
All look like harmless changes.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
2f53188f18
glsl: Remove unused as_rvalue_to_saturate().
...
This is not where saturate recognition happens. Dead code since
5598458e69 ("i965/vec4: Remove try_emit_saturate") in 2014!
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
d76fb3b2b1
glsl/opt_algebraic: Drop the flrp recognizer.
...
No change to r300.
freedreno looks mixed but slightly positive in instructions:
total instructions in shared programs: 11012472 -> 11012453 (<.01%)
instructions in affected programs: 8250 -> 8231 (-0.23%)
helped: 16
HURT: 50
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
579aca894f
glsl/opt_algebraic: Drop the ftrunc pattern recognizer.
...
Now that it's in NIR, there's no change to r300 or freedreno shader-db
when we do.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
6d52e6fd2c
nir: Port a floor->truncate algebraic opt pattern from GLSL.
...
Prevents regression when dropping code from the GLSL optimizer.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
6229d34b91
glsl/opt_algebraic: Drop some fmul simplifications.
...
Looks like mostly noise, trending slightly positively.
freedreno:
total instructions in shared programs: 11012781 -> 11012472 (<.01%)
instructions in affected programs: 114072 -> 113763 (-0.27%)
helped: 123
HURT: 153
r300:
total instructions in shared programs: 1338236 -> 1337897 (-0.03%)
instructions in affected programs: 3460 -> 3121 (-9.80%)
helped: 61
HURT: 11
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
4bf65ce221
glsl/opt_algebraic: Drop the flrp/ffma simplifiers.
...
NIR seems to do a better job. Freedreno:
total instructions in shared programs: 11013096 -> 11012781 (<.01%)
instructions in affected programs: 258358 -> 258043 (-0.12%)
helped: 470
HURT: 269
r300:
total instructions in shared programs: 1338237 -> 1338236 (<.01%)
instructions in affected programs: 161 -> 160 (-0.62%)
helped: 1
HURT: 0
total presub in shared programs: 45127 -> 44881 (-0.55%)
presub in affected programs: 1719 -> 1473 (-14.31%)
helped: 246
HURT: 0
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:09 +00:00
Emma Anholt
3f632ce764
glsl/opt_algebraic: Drop no-op pack/unpack optimization.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
d589760f44
glsl/opt_algebraic: Drop the eq/neq add-removal optimization.
...
No change on freedreno or r300 shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
d352bd9737
glsl/opt_algebraic: Drop scalar all_eq/any_neq -> eq/neq opt.
...
No change in r300 or freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
62afead36f
glsl/opt_algebraic: Drop fdot 0-channel optimizations.
...
No change on i915g shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
ef02581590
nir: Add optimization for fdot(x, 0) -> 0.
...
We had all these nice fdot opts to drop individual channels that were 0,
but nothing handling it being entirely 0! Avoids r300g regression when
dropping them from GLSL.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
b328c97e11
glsl/opt_algebraic: Drop csel(true/false, x, y) optimization.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
652ff42f14
glsl/opt_algebraic: Drop x + -x -> 0 optimization.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
69b178ac90
glsl/opt_algebraic: Drop add/sub with 0 optimizations.
...
Looks like minor instruction selection noise in freedreno shader-db:
total instructions in shared programs: 11013100 -> 11013096 (<.01%)
instructions in affected programs: 2714 -> 2710 (-0.15%)
helped: 8
HURT: 6
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
c6908fc8ac
glsl/opt_algebraic: Drop fdiv(1,x) -> frcp(x) and fdiv(x,1) -> x optimizations.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
4fc9342fc6
glsl/opt_algebraic: Drop and/or/xor optimizations.
...
NIR has them, and if anything freedreno shader-db prefers that NIR sees them:
total instructions in shared programs: 11013112 -> 11013100 (<.01%)
instructions in affected programs: 26266 -> 26254 (-0.05%)
helped: 4
HURT: 0
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
ab7a9b4538
glsl/opt_algebraic: Drop rcp optimizations.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
6b53d4b825
glsl/opt_algebraic: Drop pow optimizations.
...
These should all be covered by NIR. Minor shader-db changes on freedreno,
which appear to be scheduling noise.
total instructions in shared programs: 11013132 -> 11013112 (<.01%)
instructions in affected programs: 3408 -> 3388 (-0.59%)
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
bb1b37e6c1
glsl/opt_algebraic: Drop shifts of 0 optimizations.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
71c0c73f8e
glsl/opt_algebraic: drop fsat(fadd(b2f(x), b2f(y))) -> b2f(ior(x, y)) opt.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
144b61437a
glsl/opt_algebraic: Drop f2i(trunc(x)) -> f2i(x) optimization.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
47657b2ffe
glsl/opt_algebraic: Drop -(-x) -> x optimization.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
766f551cb5
glsl/opt_algebraic: Drop abs(-x) -> abs(x) and abs(abs(x)) -> abs(x).
...
NIR does this. No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
7a8a50106e
glsl/opt_algebraic: Drop pow-recognizer.
...
NIR handles pow recognizing, too. No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
d79061dba1
glsl/opt_algebraic: Drop log(exp(x)) -> x and exp(log(x)) -> x optimisations.
...
No change on freedreno shader-db.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Emma Anholt
2bd0343ba0
glsl/opt_algebraic: Drop ~~x == x transformation.
...
No change on freedreno shader-db.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475 >
2023-02-28 03:36:08 +00:00
Mike Blumenkrantz
36a916f3f4
zink: use tc renderpass optimizing to more optimally start queries
...
if tc has determined that no queries are ended inside a renderpass,
it becomes possible to start queries outside of a renderpass, which
is more performant on some hw
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
7c96e98975
zink: always start/stop/resume queries inside renderpasses
...
this avoids potentially splitting renderpasses by ensuring that
all (non-cs) query operations always occur inside renderpasses
zink_query_update_gs_states() now has to be called inside renderpass
to catch the active queries
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
cbbc7c98c4
zink: pull 'was_line_loop' into ctx for query updating
...
make this a bit more flexible
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
5492e927e7
zink: use more consistent check for deleting zink_query::stats_list links
...
the linkage of this may vary depending on the query's active state,
so avoid issues by just checking the linkage directly
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
b4deaf7b2c
zink: break out query suspend functionality for reuse
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
53c9f60ce4
zink: track whether queries were started in a renderpass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
e5d517f362
zink: rework query pool overflow
...
now when a query pool is full, a new query pool can be created and the
previous one can be dropped from reuse to be freed at a later time
this has the added benefit of avoiding yet another place where a renderpass
might get split
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
7da78ffb69
zink: create/use query pools dynamically
...
this fits the concept of "pools are shared between queries" a bit
better and leaves the pool ownership/destruction to their users
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
e56d4f9264
zink: rework find_or_allocate_qp()
...
this and its caller are now a bit more streamlined with regards to
functionality of the surrounding code
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
bf782503e1
zink: reorder some query code
...
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
8fdbf81ff0
zink: try updating qbos on query resume if !in_rp
...
this is another logical place to do the update since it won't split
a renderpass
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
49deb9cbe7
zink: only update qbo for TIME_ELAPSED on start if !in_rp
...
this otherwise splits the current renderpass for no reason
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
93a7187f34
zink: handle null query results for conditional render
...
this just needs to have a zero blasted into the buffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
cf60c7fbfa
zink: handle null query results
...
it's possible that a query may have no results at all, so shortcut
everything and return zero as fast as possible for those cases
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
6bcf4721dc
zink: only try doing qbo updates on query suspend if !in_rp
...
this otherwise creates infinite recursion trying to end a currently
ending renderpass
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
2440c98b3b
zink: refuse to start cs invocation queries in renderpass
...
these can't produce data in renderpasses, so ensure they aren't accidentally
started inside a renderpass where they'll have to later be restarted outside
of one
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
74a65363ea
zink: don't double suspend queries
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:42 +00:00
Mike Blumenkrantz
9d0c3d3fb1
zink: un-suspend queries if they end while suspended
...
ensure they don't accidentally resume themselves after suspend
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21534 >
2023-02-28 03:15:41 +00:00