5dabec2aa2
This workaround fixes xrender issues (corrupt rendering) with Radeon cards on some boards. Closes https://github.com/void-linux/void-packages/pull/24951
38 lines
1.4 KiB
Diff
38 lines
1.4 KiB
Diff
From d72aa8ae74ffb7329003f9f23ffa05833af951ab Mon Sep 17 00:00:00 2001
|
|
From: Jon Nettleton <jon@solid-run.com>
|
|
Date: Fri, 14 Aug 2020 13:36:08 +0200
|
|
Subject: [PATCH] radeonsi: On Aarch64 force persistent buffers to GTT
|
|
|
|
This fixes a glamore corruption issue on the HoneyComb and by
|
|
internet reports should also fix problems seen on Huaweii
|
|
Kunpeng hardware.
|
|
|
|
The root cause of the corruption needs to be worked out, but
|
|
this patch also adds a noticable performance improvement. The
|
|
aquarium webgl demo under chromium increases from 39-49 FPS
|
|
when 5000 fish being rendered is selected. Glmark scores also
|
|
improve by ~200 with no specific tests showing any regression.
|
|
|
|
Signed-off-by: Jon Nettleton <jon@solid-run.com>
|
|
---
|
|
src/gallium/drivers/radeonsi/si_buffer.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/src/gallium/drivers/radeonsi/si_buffer.c b/src/gallium/drivers/radeonsi/si_buffer.c
|
|
index 6b58aebee2d..c9e983367a0 100644
|
|
--- src/gallium/drivers/radeonsi/si_buffer.c
|
|
+++ src/gallium/drivers/radeonsi/si_buffer.c
|
|
@@ -151,6 +151,11 @@ void si_init_resource_fields(struct si_screen *sscreen, struct si_resource *res,
|
|
*/
|
|
if (!sscreen->info.kernel_flushes_hdp_before_ib || !sscreen->info.is_amdgpu)
|
|
res->domains = RADEON_DOMAIN_GTT;
|
|
+
|
|
+#if defined(PIPE_ARCH_AARCH64)
|
|
+ if (size <= 1024 * 512)
|
|
+ res->domains = RADEON_DOMAIN_GTT;
|
|
+#endif
|
|
}
|
|
|
|
/* Tiled textures are unmappable. Always put them in VRAM. */
|
|
--
|
|
2.26.2
|