Pierre-Eric Pelloux-Prayer
666a6eb871
radeonsi/gfx12: disable display dcc for front buffer rendering
...
Same logic as other chips, except we need to reallocate the texture
as we can't disable dcc.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32281 >
2024-11-27 19:00:20 +00:00
Pierre-Eric Pelloux-Prayer
2ff67083e5
radeonsi: refuse to import texture with family_overriden being set
...
If the gfx version is overriden by the exporter process, the surface
layout might not be compatible with the importer process (which uses
the real gfx version).
So fail early, except if the layout is LINEAR (because it should work
on all gen) or a modifier is used (which should be rejected elsewhere
if not supported).
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31841 >
2024-11-08 13:31:02 +00:00
Marek Olšák
5d09374ffe
radeonsi/gfx12: fix AMD_DEBUG=nodcc not working
...
surface->modifier is always 0 here. We should use the parameter instead.
Fixes: 3d05d86d88 (radeonsi/gfx12: add DCC)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31910 >
2024-11-04 19:45:54 +00:00
Marek Olšák
755fb7a262
amd: move Tonga and Iceland TC-compat HTILE workarounds to ac_gpu_info.c
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31910 >
2024-11-04 19:45:54 +00:00
Marek Olšák
047532b1e1
radeonsi/gfx11: fix Z corruption for Blender
...
The corruption only happens with non-TC-compatible HTILE, so always use
TC-compatible HTILE.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11891
Cc: mesa-stable
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31910 >
2024-11-04 19:45:54 +00:00
Pierre-Eric Pelloux-Prayer
bb08596645
radeonsi/gfx12: fill missing dcc tiling info
...
Display DCC support has been enabled in 0bb83a4060 but this TODO
was forgotten.
Now that the kernel is fixed, we can set the related fields.
Fixes: 0bb83a4060 ("ac/surface: finish display DCC for gfx12")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31683 >
2024-10-18 14:03:46 +02:00
Marek Olšák
f8788b2a38
radeonsi: remove the make_texture_descriptor indirect function call
...
Call gfx10_make_texture_descriptor from si_make_texture_descriptor and
use si_make_texture_descriptor everywhere.
This is more readable.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904 >
2024-09-23 20:34:13 +00:00
Marek Olšák
653bcd85e0
radeonsi: remove barriers around clears using aux_context.compute_resource_init
...
Nothing else uses that context, so all barriers are unnecessary.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291 >
2024-09-20 19:49:45 +00:00
Marek Olšák
58b512ddd6
radeonsi: execute clears at resource allocation using compute instead of gfx
...
This adds an additional aux_context, so that the gfx queue isn't stalled
due to clearing buffers or initializing DCC.
This aux context will only be used by resource_create, which will allow
us to remove all barriers around the clears because there are no others
users of those buffers on that context.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291 >
2024-09-20 19:49:45 +00:00
Marek Olšák
c99b55092f
radeonsi: move barriers out of si_execute_clears
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291 >
2024-09-20 19:49:45 +00:00
Marek Olšák
3de719045a
radeonsi/gfx12: disallow DCC for protected content
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31168 >
2024-09-14 11:03:44 -04:00
Pierre-Eric Pelloux-Prayer
b7b10b971a
radeonsi: add si_screen helper
...
Add a si_screen cast helper, with 2 purposes:
* correctly cast from pipe_screen to si_screen using get_driver_pipe_screen
* check that the result's type is correct
It's only useful when intending to use pipe_resource::screen as a si_screen.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30587 >
2024-09-09 09:13:51 +00:00
Pierre-Eric Pelloux-Prayer
a55b9c0c60
radeonsi: consider DBG(NO_TILING) when filtering modifiers
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30257 >
2024-07-22 10:09:34 +00:00
Pierre-Eric Pelloux-Prayer
94f2b3f7bc
radeonsi: consider PIPE_BIND_LINEAR when filtering modifiers
...
If PIPE_BIND_LINEAR is set the only valid modifier we can use is
DRM_FORMAT_MOD_LINEAR.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30257 >
2024-07-22 10:09:34 +00:00
Pierre-Eric Pelloux-Prayer
f12ccea6c7
radeonsi: reject modifiers with DCC when NO_EXPORTED_DCC is used
...
Otherwise AMD_DEBUG=noexporteddcc will be ignored when modifier are
used.
Similarly to AMD_DEBUG=nodcc handling, this makes the application
unable to import buffers with DCC as well - the alternative would be
to implement the filtering only in the texture creation path, so in
the si_modifier_supports_resource function.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30257 >
2024-07-22 10:09:34 +00:00
Pierre-Eric Pelloux-Prayer
252485b0e2
radeonsi: fix si_get_dmabuf_modifier_planes for gfx12
...
DCC_RETILE/DCC only makes sense if TILE_VERSION is lower than
AMD_FMT_MOD_TILE_VER_GFX12.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30159 >
2024-07-13 02:44:17 +00:00
Marek Olšák
acb3d5f132
radeonsi/gfx12: always set BO metadata, not just during export
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30063 >
2024-07-13 01:32:48 +00:00
Pierre-Eric Pelloux-Prayer
19e342b877
radeonsi: handle DBG(TEX) after tc_compatible_htile is set
...
Otherwise the value printed might be incorrect.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29612 >
2024-06-26 14:02:13 +00:00
Marek Olšák
3d05d86d88
radeonsi/gfx12: add DCC
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29510 >
2024-06-06 01:01:46 +00:00
Samuel Pitoiset
78b4d356f3
ac,radv,radeonsi: add ac_gpu_info::has_tc_compatible_htile
...
It's apparently not supported on GFX12.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29417 >
2024-05-30 11:05:03 +00:00
Samuel Pitoiset
2487a87552
ac,radv,radeonsi: add function to determine if alpha should be on MSB
...
The only difference for RADV is that the helper now converts SRGB
formats to non-SRGB but that shouldn't change anything in practice.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29308 >
2024-05-22 08:17:31 +02:00
Samuel Pitoiset
7f0430bb36
ac,radv,radeonsi: add a function to translate colorswap
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29265 >
2024-05-20 13:41:02 +00:00
Marek Olšák
b91220a825
radeonsi: remove slow code from si_msaa_resolve_blit_via_CB
...
This is mainly a cleanup. It wasn't faster.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29053 >
2024-05-15 06:42:33 +00:00
Marek Olšák
f703dfd1bb
radeonsi: add gfx12
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29007 >
2024-05-11 22:14:06 -04:00
Marek Olšák
eb7d747651
radeonsi: add workarounds for DCC MSAA for gfx9-10
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28846 >
2024-04-30 06:47:21 +00:00
Marek Olšák
eccaba9dfa
radeonsi: enable fast FB clears for conditional rendering
...
They use compute shaders, which always support the render condition.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28725 >
2024-04-24 19:17:10 +00:00
Marek Olšák
6d913a2bcc
r300,r600,radeonsi: switch to pb_buffer_lean
...
to remove pb_buffer::vtbl from all buffer structures
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
39c1311766
gallium/pb_buffer: define pb_buffer_lean without vtbl, inherit it by pb_buffer
...
amdgpu doesn't need vtbl.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Pierre-Eric Pelloux-Prayer
981fbafa18
radeonsi: fix extra_md handling with fmask
...
Setting metadata on textures with fmask isn't allowed.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:28 +00:00
David Rosca
bf364cbdb4
radeonsi: Fix offset for linear surfaces on GFX < 9
...
Fixes: 86262b6eac ("radeonsi,radv: fix usages of surf_pitch")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9949
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10073
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25970 >
2023-11-05 19:36:48 +00:00
Marek Olšák
12c239f829
radeonsi: various isolated cosmetic changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:56 -05:00
Karol Herbst
06a2258b4b
radeonsi: hack for importing 3D textures
...
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:43 +00:00
Karol Herbst
56f934103d
radeonsi: support importing arbitrary resources
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:43 +00:00
Lang Yu
a65aab411f
amd/radeonsi: add missing stuff for gfx11.5
...
Signed-off-by: Lang Yu <Lang.Yu@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25836 >
2023-10-24 01:07:12 +00:00
David Rosca
6ababdcd10
radeonsi: Fix plane size in si_copy_multi_plane_texture
...
Size was wrong and also need to scale sbox xy.
Fixes: 4f047c9583 ("radeonsi: Copy all planes with multi-plane staging textures")
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25737 >
2023-10-18 08:44:22 +00:00
Rob Clark
d97427f41c
radeonsi: Add PIPE_CAP_HAS_CONST_BW support
...
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25464 >
2023-10-14 17:28:29 +00:00
Marek Olšák
23af6d3d35
radeonsi: add another aux context for uploading shaders
...
When the first auxiliary context is locked and wants to compile and upload
a shader asynchronously, we need to use another auxiliary context
in the compiler thread because the first one is locked at that point.
This adds an array of auxiliary contexts into si_screen and changes how aux
contexts are accessed.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25494 >
2023-10-04 23:53:16 -04:00
Marek Olšák
7d67e10b02
radeonsi: remove splitting IBs that use too much memory
...
It was needed for r300, not so much for GCN/RDNA.
This reduces draw overhead.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24732 >
2023-08-17 15:34:06 +00:00
David Rosca
4f047c9583
radeonsi: Copy all planes with multi-plane staging textures
...
Multi-plane format textures are allocated as a single buffer
for all planes, so when mapping first plane it will map
all planes.
However, when staging texture is used, only the first
plane will be available.
When asked to map first plane of multi-plane texture,
create a staging texture with matching multi-plane format
and copy all planes on map/unmap.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24389 >
2023-08-03 13:36:58 +00:00
Marek Olšák
68735f4e86
treewide: use uint64_t / (u)intptr_t in image address calculations
...
16K * 16K * 16bpp = 4G, which overflows int32, so layer_stride needs to
have 64 bits. More generally, any "byte_stride * height" computation
can overflow int32.
Use (u)intptr_t in some gallium and st/mesa places where we do CPU access.
Use uint64_t otherwise.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23389 >
2023-06-07 16:53:36 +00:00
Marek Olšák
7d066330e0
ac/surface: relax custom pitch requirements to any multiple of 256B on gfx10.3+
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23015 >
2023-06-01 18:46:20 +00:00
Marek Olšák
b914c2601c
radeonsi: reorder code in si_texture_create_object as preparation for the future
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23216 >
2023-05-26 23:27:59 -04:00
Marek Olšák
e18344dd24
ac,radeonsi,winsyses: switch to SPDX-License-Identifier: MIT
...
excluding: aco, radv, addrlib
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23113 >
2023-05-24 21:48:19 +00:00
Marek Olšák
2f51ba5496
radeonsi: fix sparse image address calculation for large images by using uint64_t
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23037 >
2023-05-19 02:58:48 +00:00
Marek Olšák
df39962dc8
radeonsi: fix image address calculation for large images by using uint64_t
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23037 >
2023-05-19 02:58:48 +00:00
Marek Olšák
d90fc82569
radeonsi: do AMD_DEBUG=nodisplaydcc differently to also remove modifiers
...
Only modifiers with DCC retiling are removed for now.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22771 >
2023-05-08 13:08:01 +00:00
Marek Olšák
8c8b5a8fbd
radeon: add radeon_info parameter into radeon_winsys::surface_init
...
to allow radeonsi to change radeon_info. The next commit will rely on it.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22771 >
2023-05-08 13:08:01 +00:00
Harri Nieminen
7851b6fd48
radeonsi: fix typos
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22432 >
2023-04-13 23:08:22 +00:00
Marek Olšák
e3c6ed0685
radeonsi: add an emulated image descriptor for gfx940
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22158 >
2023-04-06 15:00:53 +00:00
Pierre-Eric Pelloux-Prayer
9c90deefb2
radeonsi: don't use alignment_log2 of imported buffers
...
This value isn't passed to the importer by the kernel
so we can't check it.
Fixes: f7a4051b83 ("radeonsi: Check pitch and offset for validity.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8431
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22170 >
2023-03-30 10:14:31 +00:00