Emma Anholt
63aa5909b4
panfrost/midgard: Fix handling of csel with a vector constant condition.
...
If it's not all true or all false, then you'll have a csel with a vector
constant, and the backend failed to translate appropriately. Expand the
constant to fix it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21476 >
2023-02-28 06:13:05 +00:00
Yiwei Zhang
35c85c0ae6
venus: fix device memory export alloc info
...
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
23c350517a
venus: fix external image creation
...
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
953ff3cf55
venus: simplify support for non-AHB external images
...
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
ca96f94aee
venus: simplify ahb image creation
...
Those excessive asserts are only useful when bringing up Android.
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
768017f72b
venus: refactor image create info pnext tracking
...
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
4d616fb919
venus: remove redundant abstractions for wsi struct search
...
Doing that won't avoid linking wsi headers, and in fact we have already
included both android and common wsi headers. For swapchain info, it's
currently disabled by the swapchain spec version advertised on Android.
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
21a0608395
venus: fix external buffer creation
...
Move buffer create info scrub into core venus.
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
09f5033232
venus: distinguish external memory from mappable memory support
...
Mappable memory support is a must for Venus core, but the support of
such can be transparent to the driver. Thus the renderer external memory
type won't expose opaque fd type.
External memory over vtest can be exposed and the wsi support on top can
be made explicit as long as masking out the importable bit.
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
19c3608672
venus: tighten up the sync fd requirements for Android wsi
...
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
657cd2e1d4
venus: refactor sync fd fence and sempahore features
...
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
05791b6ae0
venus: clean up globalFencing
...
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
344be4405c
venus: clean up memoryResourceAllocationSize
...
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
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