Samuel Pitoiset
bdb7fd69d6
radv: mark extendedDynamicState3SampleLocationsEnable as not required by Zink
...
Only dynamic blend equation support is still required.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19924 >
2022-12-07 16:43:17 +01:00
Samuel Pitoiset
06a65be3d4
radv: advertise extendedDynamicState3LineRasterizationMode
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19924 >
2022-12-07 16:43:15 +01:00
Samuel Pitoiset
1009276312
radv: add support for dynamic line rasterization mode
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19924 >
2022-12-07 16:43:13 +01:00
Samuel Pitoiset
f992e663c7
radv: advertise extendedDynamicState3RasterizationSamples
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19924 >
2022-12-07 16:43:11 +01:00
Samuel Pitoiset
a2fe4e9b04
radv: add support for dynamic rasterization samples
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19924 >
2022-12-07 16:43:09 +01:00
Samuel Pitoiset
c88d4037aa
radv: store the number of color/ds samples to the rendering state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19924 >
2022-12-07 16:43:07 +01:00
Samuel Pitoiset
12f26b5e6d
radv: fix guardband if the polygon mode is points or lines
...
If points or lines are drawn using the polygon mode, the guardband
should be adjusted for large points/lines.
Cc: 22.3 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20185 >
2022-12-06 19:30:51 +00:00
Rhys Perry
bd30adf89d
aco: apply NUW to additions for scratch access
...
fossil-db (navi21):
Totals from 52 (0.04% of 135636) affected shaders:
Instrs: 79036 -> 78567 (-0.59%)
CodeSize: 431188 -> 427984 (-0.74%)
Latency: 1318142 -> 1313821 (-0.33%)
InvThroughput: 293842 -> 292836 (-0.34%)
VClause: 2555 -> 2361 (-7.59%); split: -8.06%, +0.47%
Copies: 8746 -> 8767 (+0.24%); split: -0.11%, +0.35%
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/20117 >
2022-12-06 15:23:38 +00:00
Rhys Perry
381de3c809
aco: more carefully apply constant offsets into scratch accesses
...
Death stranding does scratch_arr[80-idx]. This doesn't seem to work if we
try to combine the subtraction into the access.
fossil-db (navi21):
Totals from 52 (0.04% of 135636) affected shaders:
Instrs: 78560 -> 79036 (+0.61%)
CodeSize: 427940 -> 431188 (+0.76%)
Latency: 1313809 -> 1318142 (+0.33%)
InvThroughput: 292833 -> 293842 (+0.34%)
VClause: 2361 -> 2555 (+8.22%); split: -0.51%, +8.73%
Copies: 8767 -> 8746 (-0.24%); split: -0.35%, +0.11%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 0e783d687a ("aco: use scratch_* for scratch load/store on GFX9+")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7735
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20117 >
2022-12-06 15:23:38 +00:00
Rhys Perry
fae8c75ad0
radv/rt: set additions for scratch access as NUW
...
No fossil-db changes.
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/20117 >
2022-12-06 15:23:38 +00:00
Marek Olšák
b75b9d6324
ac/llvm: set invariant.load on image loads with ACCESS_CAN_REORDER
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
de3fcc77c7
ac/llvm: inline ac_get_load_intr_attribs
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
ce860953a6
ac/llvm: rename attribute enums
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
ce0a83efb8
ac/llvm: use invariant.load metadata on load intrinsics instead of readnone
...
readnone is illegal now and we should be using invariant.load since LLVM 15.
(suggested by Nicolai)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
d3a03d24fc
ac/llvm: don't set "readnone" on non-memory intrinsics
...
It's illegal and LLVM always knows which intrinsics don't read memory.
This started failing IR validation with LLVM 16.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
50bece9322
ac/llvm: don't set "convergent" on intrinsics where it's automatic
...
LLVM adds the flag automatically.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
2b5edf96ff
ac/llvm: simplify how function attributes are set
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
9b4142ae9f
ac/llvm: simplify how call attributes are set
...
set them directly in ac_build_intrinsic, the only place that sets them
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
e94b040add
ac/llvm: remove illegal function attributes READONLY and WRITEONLY
...
They are only legal on parameters.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
5104f4d496
ac/llvm: remove unused AC_FUNC_ATTR_LEGACY
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:16 +00:00
Marek Olšák
834d59a83e
ac/llvm: remove AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY because LLVM 16 removed it
...
We didn't use it reasonably anyway.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146 >
2022-12-06 13:27:15 +00:00
Samuel Pitoiset
a42f8d49c3
radv: use LATE_Z for depth/stencil attachments used in feedback loops
...
To make sure shader invocations read the correct values.
Fixes dEQP-VK.rasterization.rasterization_order_attachment_access.*.samples_*.multi_draw_barriers
Cc: 22.3 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19728 >
2022-12-06 10:34:11 +01:00
Samuel Pitoiset
86c3b9df12
radv: apply register changes for SQTT on GFX11
...
Based on the register db, most of them moved.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20089 >
2022-12-06 08:19:24 +01:00
Konstantin Seurer
b49e7cb3f4
radv: Add missing radeon_check_space() in radv_cmd_buffer_after_draw()
...
Also adds a missing assert that cdw <= cdw_max.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20149 >
2022-12-05 17:19:01 +00:00
Konstantin Seurer
d86f60d21e
radv: Use wave32 for ray queries inside compute shaders
...
Results in a 6% performance improvement with Quake II RTX.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20143 >
2022-12-05 16:46:26 +00:00
Samuel Pitoiset
da32cbb5c6
aco: fix missing uses of MRT output flags
...
Fixes regressions on GFX6 and the RAGE2 workaround.
Fixes: a297ac10a4 ("radv,aco: stop lowering FS outputs in NIR")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20154 >
2022-12-05 15:01:19 +00:00
Samuel Pitoiset
b051719b05
radv: do not set ZPASS_INCREMENT_DISABLE on GFX11
...
This field no longer exists.
Cc: 22.3 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20090 >
2022-12-05 12:13:29 +01:00
Samuel Pitoiset
3ab9218820
radv: fix SPI_SHADER_Z_FORMAT for alpha-to-coverage via MRTZ on GFX11
...
It should select a 32-bit format with alpha.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20126 >
2022-12-05 08:22:28 +00:00
Samuel Pitoiset
a297ac10a4
radv,aco: stop lowering FS outputs in NIR
...
This was a bad idea because:
- it diverges too much with the fragment shader epilog
- it doesn't allow to implement alpha-to-coverage via MRTZ correctly
- it was supposed to be used by LLVM but this never happened
Reverting this back allows us to fix alpha-to-coverage via MRTZ
on GFX11 easily, including for fragment shader epilogs.
fossils-db (NAVI21):
Totals from 20411 (15.13% of 134913) affected shaders:
VGPRs: 972056 -> 971400 (-0.07%); split: -0.08%, +0.01%
CodeSize: 92284804 -> 92295392 (+0.01%); split: -0.05%, +0.06%
MaxWaves: 465010 -> 465166 (+0.03%); split: +0.03%, -0.00%
Instrs: 17034162 -> 17034963 (+0.00%); split: -0.00%, +0.01%
Latency: 252013190 -> 251971764 (-0.02%); split: -0.03%, +0.02%
InvThroughput: 45859625 -> 45842556 (-0.04%); split: -0.04%, +0.01%
VClause: 324627 -> 324629 (+0.00%); split: -0.03%, +0.03%
SClause: 672918 -> 672826 (-0.01%); split: -0.05%, +0.04%
Copies: 1172126 -> 1158152 (-1.19%); split: -1.20%, +0.01%
Branches: 420602 -> 420604 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 1025441 -> 1025481 (+0.00%)
PreVGPRs: 861787 -> 860650 (-0.13%); split: -0.17%, +0.03%
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20126 >
2022-12-05 08:22:28 +00:00
Samuel Pitoiset
3be728f1d0
aco: fix indexing MRT0 alpha channel for alpha-to-coverage via MRTZ on GFX11
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20126 >
2022-12-05 08:22:28 +00:00
Samuel Pitoiset
20856bfe0f
aco: always use 32-bit for exporting alpha-to-coverage via MRTZ on GFX11
...
16-bit isn't possible. Note that this is currently style broken for
compressed formats because the w channel is never written to.
Ported from RadeonSI ('radeonsi/gfx11: fix alpha-to-coverage with
stencil or samplemask export')
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20126 >
2022-12-05 08:22:28 +00:00
Samuel Pitoiset
664aa7a37b
radv: fix emitting invalid color attachments
...
Note sure how this happened.
Fixes: 97dc28b177 ("radv: fix configuring COLOR_INVALID on GFX11")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20127 >
2022-12-05 07:46:47 +00:00
Konstantin Seurer
ad8de42ce5
radv: Use get_first_non_void_channel more often
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18634 >
2022-12-02 22:06:11 +00:00
Konstantin Seurer
6397304519
radv: Only create bvh pipelines when using rt
...
Saves some time when creating non-rt devices.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20110 >
2022-12-02 21:14:00 +00:00
Konstantin Seurer
7fe515f6d4
radv/rra: Get rid of annoying memory aliasing warning
...
Such cursed behavior is almost non existent in practise. When capturing
a Doom Eternal, this warning spams the output for no reason.
The warning is also unnecessary since we copy acceleration structures
right after building them now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
e2b7e478a5
radv/rra: Fix setting some offsets
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
79dcacfc04
radv/rra: Refactor rra_fill_accel_struct_header_common
...
No need to re-do the offset calculation for every field.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
bb6b45e26e
radv/rra: Set the metadata size correctly
...
Fixes: 5749806 ("radv: Add Radeon Raytracing Analyzer trace dumping utilities")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
0e3325dfb6
radv/rra: Remove an obsolete comment
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
94ec359ae5
radv/rra: Defer destroying accel struct data
...
This allows us to dump acceleration structures that were destroyed
before present.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
ae9c65a552
radv/rra: Copy accel structs directly after build
...
This is the second step of decoupling acceleration structure dumping
from lifetimes. It also simplifies the logic a bit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
08a85076e5
radv/rra: Introduce radv_rra_accel_struct_data
...
This will be useful for dumping acceleration structures that were
destroyed before submit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Konstantin Seurer
ff3ba5c74d
radv: Add hash_table_foreach to .clang-format
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
David Heidelberg
f7e76eee28
ci/amd: re-enable previously OOM tests
...
Since we have ZRAM now, we can enable previously failing tests on OOM.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19535 >
2022-12-02 13:51:15 +00:00
Bas Nieuwenhuizen
89663828ea
aco: Don't use v_lshrrev_b64 for moves on GFX11.
...
Looking at VOPD things, shifts are not very likely to get dual issued
but plain moves are. Looking at RDNA2 v_lshrrev_b64 are half the perf
of v_mov_b32 (but you need twice as many moves), so on GFX11 this likely
reaches the threshold where moves are faster.
Totals from 68400 (50.70% of 134906) affected shaders:
CodeSize: 275489516 -> 275459536 (-0.01%); split: -0.01%, +0.00%
Instrs: 51775474 -> 51991286 (+0.42%)
Latency: 589884847 -> 589066439 (-0.14%); split: -0.15%, +0.01%
InvThroughput: 127154986 -> 126037619 (-0.88%); split: -0.88%, +0.00%
Copies: 3756157 -> 3976193 (+5.86%)
Branches: 1259604 -> 1260072 (+0.04%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19633 >
2022-12-02 13:25:57 +00:00
Bas Nieuwenhuizen
91fe2a2361
aco: Use more detailed wave64 timing for GFX10+.
...
Also nabbed some dual issue stuff for GFX11 from LLVM.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19633 >
2022-12-02 13:25:57 +00:00
Qiang Yu
2fb1097bac
ac/nir/ngg: merge multi stream gs shader queries
...
Before this commit each stream will emit a query block, now
we merge them to a single block.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20074 >
2022-12-02 09:38:07 +00:00
Qiang Yu
6c44d92362
ac/llvm,radeonsi: lower attribute ring intrinsics in nir
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18010 >
2022-12-02 07:34:32 +00:00
Qiang Yu
daaa8ddb8e
ac/llvm,radeonsi: lower nir primitive counter add intrinsics
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18010 >
2022-12-02 07:34:31 +00:00
Qiang Yu
bb837bf6ef
nir,ac/llvm: add nir_buffer_atomic_add_amd
...
Used by radeonsi for lower nir_atomic_add_gen/xfb_prim_count_amd.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18010 >
2022-12-02 07:34:31 +00:00