From ebd06b94471172b4e7091e375575a87ca2cd5ab6 Mon Sep 17 00:00:00 2001 From: Thomas Debesse 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. 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 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. See related bugs: - 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 --- 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