Samuel Pitoiset
f30fa9dec8
radv: move radv_rt_{common,shader} files to nir/
...
These files contains NIR lowering code for RT.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26851 >
2024-01-03 09:40:29 +00:00
Samuel Pitoiset
02c5365ffa
radv: make a couple of NIR RT functions as static
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26851 >
2024-01-03 09:40:29 +00:00
Samuel Pitoiset
685c4b6337
radv: move radv_{emulate,enable}_rt() to radv_physical_device.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26851 >
2024-01-03 09:40:29 +00:00
David Heidelberg
9017852de4
ci/radeonsi: disable VA-API testing on raven
...
Fails and freezes after Collabora farm outage.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26820 >
2024-01-02 21:33:51 +00:00
Pierre-Eric Pelloux-Prayer
115b61e51f
ac/surface: don't oversize surf_size
...
Yet another iteration on the same YUV surfaces.
The change from 87ecfdfbf0 has 2 odd things:
* it's using MAX2(original value, new value) but the point of updating
surf_slice_size / surf_size is to make it correct relative to the new
value of surf_pitch
* it's multiplying surf_pitch (= number of elements per row) by height (ok)
by surf->bpe (= number of bytes per element) by surf->blk_w (= number of
"horizontal" pixels in an element) so the end unit doesn't make sense.
Fix this by computing a reasonnable value based on unit: the surf_slice_size
is the number of elements per row (surf_pitch) x number of bytes per element
(bpe) x number of rows.
This makes the expected size correct and thus fixes users of eglCreateImageKHR,
like the issue #6131 .
I tested a bunch of gst pipelines and ffmpeg scripts on various files I have
and didn't notice any issues (on gfx10.3 and gfx9).
Fixes: 87ecfdfbf0 ("ac/surface: adapt surf_size when modifying surf_pitch")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6131
Acked-by: Marek Olšák <marek.olsak@amd.com >
Tested-by: Nicolas Dufresne <nicolas.dufresne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26693 >
2024-01-02 14:32:05 +01:00
Georg Lehmann
9ecfd7919b
aco: optimize 32bit fsign by using fmulz with Inf
...
2 instruction fsign with the power of cursed DX9 floating point rules.
Foz-DB Navi31:
Totals from 3803 (4.86% of 78196) affected shaders:
Instrs: 8436366 -> 8412549 (-0.28%); split: -0.29%, +0.00%
CodeSize: 43174284 -> 43114676 (-0.14%); split: -0.14%, +0.01%
SpillSGPRs: 3241 -> 3247 (+0.19%)
Latency: 66333841 -> 66287361 (-0.07%); split: -0.08%, +0.01%
InvThroughput: 10331902 -> 10316916 (-0.15%); split: -0.15%, +0.01%
VClause: 165455 -> 165472 (+0.01%); split: -0.01%, +0.02%
SClause: 242352 -> 242335 (-0.01%); split: -0.02%, +0.01%
Copies: 604086 -> 605781 (+0.28%); split: -0.04%, +0.32%
Branches: 214017 -> 214013 (-0.00%)
PreSGPRs: 209413 -> 209726 (+0.15%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26765 >
2024-01-02 13:07:30 +01:00
Konstantin Seurer
b88ac6b381
nir: Optimize fpow with small constant exponents
...
They would be turned into exp(log(a)*b) instead, which is slow.
Totals from 2146 (2.52% of 85071) affected shaders:
MaxWaves: 35769 -> 35779 (+0.03%); split: +0.03%, -0.01%
Instrs: 6476835 -> 6465494 (-0.18%); split: -0.18%, +0.00%
CodeSize: 35382288 -> 35347092 (-0.10%); split: -0.10%, +0.00%
SpillSGPRs: 1055 -> 1017 (-3.60%)
Latency: 75211743 -> 75063623 (-0.20%); split: -0.20%, +0.00%
InvThroughput: 17525115 -> 17501745 (-0.13%); split: -0.14%, +0.00%
VClause: 200089 -> 200077 (-0.01%); split: -0.01%, +0.01%
SClause: 293566 -> 293480 (-0.03%); split: -0.03%, +0.00%
Copies: 649631 -> 640516 (-1.40%); split: -1.44%, +0.03%
Branches: 268441 -> 268325 (-0.04%)
PreSGPRs: 146868 -> 146045 (-0.56%)
PreVGPRs: 134125 -> 134128 (+0.00%); split: -0.00%, +0.01%
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26727 >
2024-01-02 11:16:14 +01:00
Eric Engestrom
7e8db6aedf
meson: always define {,DRAW_}LLVM_AVAILABLE one way or the other
...
With the usual benefits of `#if` instead of `#ifdef` (mostly the fact
that typos can be build failures instead of silently being interpreted
as if 0).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3863 >
2023-12-24 10:01:39 +00:00
Samuel Pitoiset
551924aa87
ci: apply two bugfixes for VKCTS
...
These are needed for RADV.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26798 >
2023-12-22 20:12:39 +00:00
Eric Engestrom
91e4428dc4
radv/ci: add flake on raven
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/53017453
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26788 >
2023-12-21 13:26:21 +00:00
Friedrich Vock
b2067001d4
radv/rt: bsearch inlined shaders
...
When there are lots of inlined shaders, going over each one and checking
if the call index matches becomes expensive. Instead, use a
binary-search-like selection to skip most of the checks.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26380 >
2023-12-21 12:39:06 +00:00
Timur Kristóf
4d93aac74d
radv: Use correct plane and binding index with SDMA.
...
This lets us support multi-planar images properly on transfer queues.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
ab4720691c
radv: Clean up SDMA chunked copy info struct.
...
Remove redundant fields.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
7fe899a3b6
radv: Use SDMA surface structs for determining unaligned buffer copies.
...
This removes a bunch of redundant calculations, thus making the code
less error-prone.
Also move the row pitch calculation to a separate function.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
dab4863396
radv: Pass radv_sdma_surf from copy functions to SDMA.
...
This makes it possible to gather the surface information
only once and pass it to the various SDMA functions, therefore
the code can be less error-prone.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
85fa749c63
radv: Refactor and simplify SDMA surface info functions.
...
This makes it possible to call the function just once instead
of calling different functions repeatedly.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
a21cba6799
radv: Unify SDMA surface struct for linear and tiled images.
...
Using just one struct for both types of images (and buffers)
will simplify a lot of code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
65dfdd3fff
radv: Move SDMA function and struct declarations to a new header.
...
Very few parts of RADV actually need the SDMA functions, so
moving them to a separate header makes the driver cleaner and
also improves compilation time when SDMA functions change.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Samuel Pitoiset
2ce0ea8e7c
radv/ci: update CI lists for NAVI10,NAVI31 and RENOIR
...
These dynamic rendering failures/flakes are a known issue that will
be resolved soon as part of VKCTS. Until that, make sure CI is green.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26734 >
2023-12-20 13:06:41 +00:00
Bas Nieuwenhuizen
07ad6fd34a
radv: Use correct writemask for cooperative matrix ordering.
...
Not expecting this to actually fix anything externally visible,
but reduces some invalid usage when the resulting vector is
not 16 elements long (e.g. the C/result matrix).
Fixes: 9df4703fbb ("radv: Add cooperative matrix lowering.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26768 >
2023-12-20 11:02:30 +00:00
David Heidelberg
16af090908
ci/lava: separate HW definitions from SW
...
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26722 >
2023-12-20 10:15:44 +00:00
Bas Nieuwenhuizen
eaf61adea5
radv: Add option to clear LDS at the end of a shader.
...
Only shaders which explicitly allow shared memory are included for
now. The pass is very late to avoid optimizations removing the stores
and to ensure the clear gets added after MS outputs get loaded from LDS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26679 >
2023-12-20 09:15:45 +00:00
Samuel Pitoiset
b5153693cc
radv: move image view related code to radv_image_view.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
1db86d93f2
radv: move buffer view related code to radv_buffer_view.c
...
More code isolation.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
02282fe482
radv: move SI_GS_PER_ES to radv_constants.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
d057cfc8f6
radv: move more shader related declarations to radv_shader.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
0481723cf0
radv: move radv_depth_clamp_mode to radv_cmd_buffer.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
c0d7ef1e58
radv: move more descriptor related declarations to radv_descriptor_set.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
a080390c3c
radv: move radv_image_is_renderable() to radv_image.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
8a5106f91a
radv: move RADV_HASH_SHADER_xxx flags to radv_pipeline.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
9d15390635
radv: move meta declarations to radv_meta.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
939936a328
radv: remove radv_get_tess_output_topology() declaration
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Konstantin Seurer
662f86c533
radv/bvh: Stop emitting leaf nodes inside the encoder
...
Avoids unnecessary copies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26725 >
2023-12-18 19:17:21 +00:00
Konstantin Seurer
8fca54a754
radv: Add more offsets acceleration_structure_layout
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26725 >
2023-12-18 19:17:21 +00:00
Tatsuyuki Ishi
533ec9843e
radv: Precompute shader max_waves.
...
Doing it at bind-time causes a 1.4% overhead (among all driver calls) in
Overwatch 2. !24502 mentions that it can be precomputed in case overhead
is a concern, so do it here.
max_waves is stored directly in the radv_shader struct, because
ac_shader_config conforms to LLVM ABI and we cannot add anything custom,
and radv_shader_info needs to be determined from NIR only.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26692 >
2023-12-18 14:31:25 +00:00
Tatsuyuki Ishi
1161f22c27
radv: Move up radv_get_max_waves, radv_get_max_scratch_waves.
...
To avoid forward declaration.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26692 >
2023-12-18 14:31:25 +00:00
Tatsuyuki Ishi
e444908d65
radv: Simplify shader config assignment.
...
We don't hash this struct so direct assignment here is OK.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26692 >
2023-12-18 14:31:24 +00:00
Samuel Pitoiset
4353b0ad72
radv: move emitting the fb mip tail workaround when rendering begins
...
It doesn't have to be emitted in the draw path.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26589 >
2023-12-18 13:06:29 +00:00
Samuel Pitoiset
7dd7e551b1
radv: stop checking FMASK for the fb mip tail workaround
...
Vulkan doesn't allow mipmaps with MSAA images, so checking for FMASK
shouldn't have any effect.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26589 >
2023-12-18 13:06:29 +00:00
Samuel Pitoiset
57efe44f43
radv: add missing HTILE support for fb mip tail workaround
...
PAL also applies to depth/stencil images with HTILE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26589 >
2023-12-18 13:06:29 +00:00
Friedrich Vock
f9a394b753
radv/rt: Initialize unused children in PLOC early-exit
...
Bad things happen when these aren't initialized.
Fixes GPU hangs when loading Avatar: Frontiers of Pandora savegames.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26712 >
2023-12-15 17:52:00 +00:00
Ruijing Dong
434a53ebbe
radesonsi/vcn add qp_map definition
...
This is for enabling ROI (region of interest)
feature in VAAPI interface. It will support
both CQP and rate control mode.
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26659 >
2023-12-15 14:06:34 +00:00
Samuel Pitoiset
768c737273
radv: remove some declared but unused functions/macros
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26682 >
2023-12-15 08:40:24 +00:00
Samuel Pitoiset
2f79ed1831
radv: stop asserting some image create info fields
...
Vulkan Validation Layers already check that and these assertions never
caught anything.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26682 >
2023-12-15 08:40:23 +00:00
Eric Engestrom
871ea3bb88
radv/ci: add flake
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52773139
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26704 >
2023-12-14 22:13:45 +00:00
Daniel Schürmann
42e9ba1c70
aco: remove VCCZ and EXECZ register handling
...
We don't use these registers and since RDNA3 removed the explicit usage,
it is unlikely that we will properly support them in the future.
Removing the registers from the ACO IR prevents accidentally using them
without proper support.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26664 >
2023-12-14 20:08:28 +00:00
Samuel Pitoiset
1ef5feac5e
radv: fix binding partial depth/stencil views with dynamic rendering
...
With dynamic rendering, it's allowed to begin rendering with depth or
stencil only but still with a depth/stencil format. The test below
checks that unbound part of ds isn't modified, if depth is bound and
stencil not and vice versa.
This fixes a recent CTS
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25350 >
2023-12-14 12:54:23 +00:00
Samuel Pitoiset
98ea540158
radv: add support for MRT compaction with PS epilogs
...
Now that PS epilogs are always compiled during cmdbuf recording, we
have all information to enable MRT compaction, for optimal performance.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26667 >
2023-12-14 09:51:26 +01:00
Samuel Pitoiset
8760b7fab7
radv: cleanup radv_pipeline_generate_ps_epilog_key()
...
This has no effects because key->spi_shader_col_format isn't used when
the graphics pipeline needs to compile a PS epilog.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26663 >
2023-12-14 08:18:46 +00:00
Samuel Pitoiset
60e6e3f8e6
radv: cleanup gathering PS info with/without PS epilogs
...
To make it clear that some fields aren't used with PS epilogs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26663 >
2023-12-14 08:18:46 +00:00