[PATCH] Revert "drm/radeon: disable AGP by default"

From: Thomas “illwieckz“ Debesse
Date: Thu Nov 05 2020 - 05:32:27 EST


I wish to be personally CC'ed the answers/comments posted to the list in
response to my posting.

This reverts commit ba806f98f868ce107aa9c453fef751de9980e4af.

Disabling AGP leaves some hardware without working alternative
on some platforms. For example, PCI GPUs are known to be broken
on K8 and K10 platforms since years: the breakage was reproduced
from Linux 4.4 on Ubuntu 16.04 Xenial to Linux 5.10-rc1 on Ubuntu
20.04 Focal, and it is expected to be older than Linux 4.4.

Also, there may be some bugs specific to AGP GPUs being driven
as PCI ones since fixing some PCI bugs introduces newer bugs
that are very specific to AGP GPUs driven as PCI ones and not
to PCI native ones.

Some AGP GPUs are still relevant to this day, like the high-end
ATI Radeon HD 4670 AGP (RV730 XT), a very capable TeraScale GPU
designed for OpenGL 3.3 and OpenCL 1.0 and featuring HDMI port
and 1GB of VRAM. This GPU was distributed by various manufacturers
and was still sold as brand new in 2012, for example this one:
http://www.hisdigital.com/un/product2-448.shtml
https://web.archive.org/web/2012/https://www.amazon.com/gp/product/B003CYKCG8/

As an example, this AGP GPU still gets 140+ fps on the competitive
Xonotic game in 2020, as verified during the XDWC 2020 event, also
when compared to other games on the Unvanquished GPU compatibility
matrix, we can notice that to outperform such AGP GPU, Intel users
have to acquire an UHD 600 graphic chip from 2016, and Nvidia users
relying on the free open source nouveau driver have to acquire a
GTX 1060 from 2016:
https://wiki.unvanquished.net/wiki/GPU_compatibility_matrix

Motherboards compatible with powerful CPUs like the quad core AMD
AM3 Phenom II CPU X4 970 (3.5GHz) supporting virtualization, 16GB
of RAM and featuring AGP and PCI slots (not PCI Express ones) were
sold, like this motherboard from 2006 supporting this CPU from 2010:
https://www.asrock.com/mb/nvidia/am2nf3-vsta/
https://www.cpu-world.com/cgi-bin/IdentifyPart.pl?PART=HDZ970FBK4DGM

This is basically among the best the market had to offer in 2012
for AGP users. Disabling AGP turns such very capable computers and
their AGP GPUs into paperweights.

Even if PCI and AGP-as-PCI issues are fixed, disabling AGP is
expected to strongly affect performance of such GPUs, and disabling
AGP may hide bugs that may be introduced after the disablement.

A boot command line switch to disable AGP to rely on PCI fallback
may be welcome to help testing the PCI code and prevent it to rot
as it is easier to find AGP cards than PCI ones.

I have access to some AGP GPUs by ATI and Nvidia and some
computers that can be purposed for testing any patches written
by others that would improve AGP support.
See related bugs for details about GPUs, host platforms, and a
a lot of details and logs about issues faced:

- https://bugs.launchpad.net/bugs/1899304
> AGP disablement leaves GPUs without working alternative
> (PCI fallback is broken), makes very-capable ATI TeraScale GPUs
> unusable

- https://bugs.launchpad.net/bugs/1902981
> AGP GPUs driven as PCI ones (when AGP is disabled at kernel build
> time) are known to fail on K8 and K10 platforms

- https://bugs.launchpad.net/bugs/1902795
> PCI graphics broken on AMD K8/K10 platform (while it works on Intel)
> verified from Linux 4.4 to 5.10-rc1

--
Thomas “illwieckz” Debesse
From 3c6acab35f7a210357dfbc909e089245823d4c5a Mon Sep 17 00:00:00 2001
From: Thomas Debesse <dev@xxxxxxxxxxxxx>
Date: Thu, 5 Nov 2020 03:26:05 +0100
Subject: [PATCH] Revert "drm/radeon: disable AGP by default"

This reverts commit ba806f98f868ce107aa9c453fef751de9980e4af.

Disabling AGP leaves some hardware without working alternative
on some platforms. For example, PCI GPUs are known to be broken
on K8 and K10 platforms since years: the breakage was reproduced
from Linux 4.4 on Ubuntu 16.04 Xenial to Linux 5.10-rc1 on Ubuntu
20.04 Focal, and it is expected to be older than Linux 4.4.

Also, there may be some bugs specific to AGP GPUs being driven
as PCI ones since fixing some PCI bugs introduces newer bugs
that are very specific to AGP GPUs driven as PCI ones and not
to PCI native ones.

Even if PCI and AGP-as-PCI issues are fixed, disabling AGP is
expected to strongly affect performance of GPUs that were still
sold brand new in 2012 and disabling AGP may hide bugs that may
be introduced after the disablement.

Signed-off-by: Thomas Debesse <dev@xxxxxxxxxxxxx>
---
drivers/gpu/drm/radeon/radeon_drv.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 4cd30613fa1d..62b5069122cc 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -171,7 +171,12 @@ int radeon_no_wb;
int radeon_modeset = -1;
int radeon_dynclks = -1;
int radeon_r4xx_atom = 0;
+#ifdef __powerpc__
+/* Default to PCI on PowerPC (fdo #95017) */
int radeon_agpmode = -1;
+#else
+int radeon_agpmode = 0;
+#endif
int radeon_vram_limit = 0;
int radeon_gart_size = -1; /* auto */
int radeon_benchmarking = 0;
--
2.25.1

Attachment: OpenPGP_0xE06292933E2CA275.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature