Georg Lehmann
997ea2e273
aco: update is_dual_issue_capable for gfx11.5+
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Daniel Schürmann <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33111 >
2025-01-27 11:59:45 +00:00
Rhys Perry
e18e293e6c
aco: don't use divergence information for most ALU defs
...
If one of the sources are divergent but all are SGPRs, then this can
cause issues (for example, imul with two SGPR sources and a VGPR definition).
No fossil-db changes (navi21)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12454
Backport-to: 24.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32997 >
2025-01-27 10:48:07 +00:00
Samuel Pitoiset
ce3a137892
radv: fix the number of drm modifier planes for DCC on GFX12
...
It's always 1 plane because DCC isn't allocated from the userspace
driver.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33213 >
2025-01-27 08:44:48 +00:00
Samuel Pitoiset
cd31a61fda
radv: fix an assertion about DCC and modifier on GFX12
...
radv_image_has_dcc() should always returns FALSE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33213 >
2025-01-27 08:44:48 +00:00
Samuel Pitoiset
48d199f3dc
ac/gpu_info: add gfx12_supports_display_dcc
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33212 >
2025-01-27 08:08:15 +00:00
Marek Olšák
f7e3689fe1
ac/nir: lower sample_pos to load_sample_positions_amd when frag_coord is center
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
0a228dfef2
ac/nir: compute ddx/ddy for barycentric_at_offset at the beginning of shaders
...
to make it work after terminate (discard).
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
f98613d47c
aco: implement replacement of sample_mask_in with helper_invocation in PS prolog
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
a842f198d7
aco: simplify how broadcast_last_cbuf is implemented in PS epilog
...
So PS epilogs only need a single bool flag that determines whether all
enabled color buffers should be written.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
5c4f737b84
aco: implement replacing frag_coord with pixel_coord in PS prolog
...
This adds an option to replace frag_coord.xy with pixel_coord when sample
shading is disabled, which is most of the time. This reduces the number of
input VGPRs.
It's already implement in ac_nir_lower_ps_early for monolithic shaders.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
eddd063420
ac/nir: cosmetic stuff for ac_nir_lower_ps
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
247c0593eb
ac/nir: eliminate sample_mask_in without MSAA in ac_nir_lower_ps_early
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
e57b52ff6c
ac/nir: optimize frag_coord <-> pixel_coord in ac_nir_lower_ps_early
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
33134f9503
ac/nir: optimize barycentric_at_sample(sample_id) in ac_lower_ps_early
...
Replace it with barycentric_sample.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:26 -05:00
Marek Olšák
43f6b2655e
ac/nir: simplify force_*_center_interp options in ac_nir_lower_ps_early
...
This only indicates whether MSAA is disabled.
Having a separate option for each sysval is better for the PS prolog,
but not for monolithic compilation.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
3bccfa72cc
ac/nir: simplify force_*_sample_interp options in ac_nir_lower_ps_early
...
The only thing we need here is whether sample shading is enabled
and how many samples.
Having a separate option for each sysval is better for the PS prolog,
but not for monolithic compilation.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
d7d4d56f5b
ac,aco,radeonsi: replace SampleMaskIn with 1 << SampleID if full sample shading
...
Since the sample mask is always 1 << sample_id with full sample shading,
just use that instead of loading sample_mask_in. Set it to 0 if it's
a helper invocation. This removes the sample mask input VGPR.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
1026402b7c
ac/nir: clamp vertex color outputs in the right place
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
4f63b21df0
ac/nir: drop 16x EQAA support from ac_get_ps_iter_mask
...
We don't support 16x EQAA anymore.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
51bbe2606d
ac/nir: switch passes to use nir_shader_intrinsics_pass
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
d31b3513da
ac/nir: handle FRAG_RESULT_COLOR with dual src blending in ac_nir_lower_ps_early
...
If FRAG_RESULT_COLOR with dual_src_blend_kndex=1 is present,
FRAG_RESULT_COLOR really means FRAG_RESULT_DATA0.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
38d3fc7a6a
ac/nir: return progress from ac_nir_lower_ps_late
...
This changes the creation of barycentric coordinate variables to on-demand.
There is also some reordering of export code to return progress.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
231009be65
ac/nir: return progress from ac_nir_lower_ps_early
...
This changes the creation of barycentric coordinate variables to on-demand.
Everything else is ready to return progress.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
234b416ffb
ac/nir: lower fbfetch_output in ac_nir_lower_ps_early
...
so that we can gather shader_info after this and all system values that
this adds will be gathered.
shader_info won't be gathered after si_nir_lower_abi, which is why we
have to lower fbfetch_output here.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
1570387aaa
ac/nir: lower barycentric_at_offset/sample in ac_nir_lower_ps_early
...
i.e. before future linking optimizations and shader_info gathering
They are lowered together because one depends on the other.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
b9b1f3a047
ac/nir: lower sample_pos in ac_nir_lower_ps_early
...
i.e. before future linking optimizations and shader_info gathering
The ac_nir_lower_ps_early call is also added for non-monolithic shaders
because it's required now.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
580304350b
ac/nir: optimize front_face in ac_nir_lower_ps_early
...
i.e. before future linking optimizations and shader_info gathering
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Marek Olšák
0939fc6fa8
radv: don't call ac_nir_lower_ps_early
...
The current version doesn't do anything, and later commits require significant
reordering of NIR passes to make it usable.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33024 >
2025-01-25 12:20:25 -05:00
Detlev Casanova
8f4efda257
ci/fluster: Add radeonsi-raven-vaapi-fluster jobs
...
The CI job runs each supported decoder on 1 LAVA job:
- vp9
- h.264
- h.265
They each run the gstreamer VAAPI fluster decoder tests on a radeonsi
device on LAVA.
Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
Co-authored-by: Sergi Blanch Torne <sergi@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26113 >
2025-01-25 08:48:04 +00:00
Samuel Pitoiset
f8e7c037e3
radv: add a new helper to set image BO metadata
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33193 >
2025-01-25 02:10:03 +00:00
Samuel Pitoiset
ee4a1021d1
radv: add support for BO metadata on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33193 >
2025-01-25 02:10:02 +00:00
Saroj Kumar
433004dcff
ac/surface: fix missing NULL check in gfx12_select_swizle_mode()
...
Add null check for surf pointer.
Fixes segfault issue during start of gdm on gfx12.
Signed-off-by: Saroj Kumar <saroj.kumar@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33199 >
2025-01-24 21:51:50 +00:00
Rhys Perry
5cc977bee4
radv: set has_image_bvh_intersect_ray for null winsys
...
This is needed for fossilize-replay.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: 14e3231b56 ("radv: add a flag to indicate ray tracing support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33201 >
2025-01-24 18:08:12 +00:00
David Rosca
604fb68876
radeonsi: Report surface alignment for AV1 encode
...
This is also useful for AV1 to allow applications to use container crop.
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33083 >
2025-01-24 13:04:47 +00:00
Samuel Pitoiset
d41a3bb744
radv: program COMPUTE_DISPATCH_INTERLEAVE on GFX12
...
To the same value as GFX11.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33185 >
2025-01-24 11:08:59 +00:00
Samuel Pitoiset
c039caeb53
ac/cmdbuf: program SPI_SHADER_GS_MESHLET_CTRL to 0 in the GFX12 preamble
...
Otherwise, it's derivative group quads by default.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33185 >
2025-01-24 11:08:59 +00:00
Rhys Perry
0eb5f66660
nir/validate: validate ssa dominance by default
...
This no longer modifies dominance metadata, so enable it by default.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32005 >
2025-01-23 23:35:44 +00:00
Konstantin Seurer
eecaf80554
radv/rmv: Use radv_rmv_log_resource_destroy more
...
Gets rid of some duplicate code with the added benefit of removing a
memory leak warning when destroying the device because
radv_rmv_log_border_color_palette_destroy did not destroy the resource
ID.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33167 >
2025-01-23 23:07:49 +00:00
Samuel Pitoiset
4b741338ac
radv: exclude layer when recomputing FS input bases
...
This is always exported as a sysval.
Closes : mesa/mesa#12501
Fixes: dd00b3f5 ("radv: Implement FS layer ID input as a system value.")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33168 >
2025-01-23 13:21:03 +00:00
Valentine Burley
2d99b77f2e
amd/ci: Run full radeonsi-raven-va job pre-merge
...
The full job run takes approximately 8 minutes now, as the issues
previously mentioned have been resolved.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33155 >
2025-01-23 11:33:25 +00:00
Valentine Burley
0624cd9c51
amd/ci: Add lava-hp-x360-14a-cb0001xx-zork and use it for VA-API testing
...
Move the existing radeonsi-raven-va job to this new device.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33155 >
2025-01-23 11:33:25 +00:00
Connor Abbott
47a85815b0
radv: Delete acceleration structure stubs
...
These are now provided by common code.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33153 >
2025-01-23 05:16:58 +00:00
Daniel Schürmann
08560b8ff8
aco/lower_branches: stitch linear blocks if there is exactly one successor with one predecessor
...
Totals from 12906 (16.26% of 79395) affected shaders: (Navi31)
Instrs: 22051521 -> 22049488 (-0.01%); split: -0.01%, +0.00%
CodeSize: 116591240 -> 116583920 (-0.01%)
Latency: 196625178 -> 196538410 (-0.04%); split: -0.04%, +0.00%
InvThroughput: 33943045 -> 33930615 (-0.04%); split: -0.04%, +0.00%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
c90ae5f773
aco: delete aco_jump_threading.cpp
...
This is now handled by lower_branches().
Totals from 47236 (59.49% of 79395) affected shaders: (Navi31)
Instrs: 29490400 -> 29490507 (+0.00%)
CodeSize: 152316812 -> 152317248 (+0.00%); split: -0.00%, +0.00%
Latency: 229665459 -> 229665106 (-0.00%); split: -0.00%, +0.00%
InvThroughput: 36870605 -> 36870504 (-0.00%); split: -0.00%, +0.00%
Copies: 1966751 -> 2233467 (+13.56%)
SALU: 3122941 -> 3123048 (+0.00%)
Note, that only about 20 shaders are actually affected.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
c677809f25
aco/lower_branches: allow for non-fallthrough loop exits in try_merge_break_with_continue()
...
Totals from 211 (0.27% of 79395) affected shaders: (Navi31)
Instrs: 276961 -> 276545 (-0.15%)
CodeSize: 1404356 -> 1402248 (-0.15%)
Latency: 1344722 -> 1344887 (+0.01%); split: -0.00%, +0.01%
InvThroughput: 165624 -> 165622 (-0.00%); split: -0.00%, +0.00%
Branches: 6149 -> 5987 (-2.63%)
SALU: 25722 -> 25468 (-0.99%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
12656ea5f5
aco: move try_merge_break_with_continue() to lower_branches()
...
Totals from 3 (0.00% of 79395) affected shaders: (Navi31)
Instrs: 12888 -> 12882 (-0.05%)
Latency: 83253 -> 83246 (-0.01%)
InvThroughput: 9251 -> 9249 (-0.02%)
Branches: 483 -> 480 (-0.62%)
SALU: 1329 -> 1326 (-0.23%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
13ad3db43f
aco/lower_branches: implement try_remove_simple_block() in lower_branches()
...
This is mostly the same as in jump_threading, but can handle
multiple predecessors.
Totals from 3523 (4.44% of 79395) affected shaders: (Navi31)
Instrs: 10244892 -> 10244753 (-0.00%); split: -0.00%, +0.00%
CodeSize: 54171500 -> 54168540 (-0.01%); split: -0.01%, +0.00%
Latency: 75070425 -> 75059570 (-0.01%); split: -0.02%, +0.00%
InvThroughput: 11606911 -> 11605767 (-0.01%); split: -0.01%, +0.00%
Branches: 331778 -> 331675 (-0.03%); split: -0.05%, +0.02%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
2b5a893e29
aco/lower_branches: do eliminate_useless_exec_writes_in_block() during branch lowering.
...
Totals from 728 (0.92% of 79395) affected shaders: (Navi31)
Instrs: 452926 -> 452161 (-0.17%)
CodeSize: 2255536 -> 2252504 (-0.13%)
Latency: 1683404 -> 1683470 (+0.00%); split: -0.01%, +0.01%
InvThroughput: 210887 -> 210888 (+0.00%); split: -0.00%, +0.00%
SALU: 77865 -> 77106 (-0.97%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
eecdb45d61
aco: consider s_cbranch_exec* instructions in needs_exec_mask()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00
Daniel Schürmann
de1e38e214
aco/assembler: Find loop exits using the successor's loop nest depth
...
Previously, we just used the next block after a loop that
has a back-edge. This assumes that loop-exit blocks can
only be removed when falling through to the next block,
when in fact it can also be a jump to somewhere else,
in future even to some block before the actual loop.
12 (0.02% of 79395) affected shaders.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32477 >
2025-01-23 00:11:06 +00:00