FreeBSDDesktop / DEPRECATED-freebsd-base-graphics

Fork of FreeBSD's base repository to work on graphics-stack-related projects
Other
49 stars 13 forks source link

radeonkms conflicts with efifb #170

Open juikim opened 6 years ago

juikim commented 6 years ago

I have Pitcairn and Turks and both use UEFI. Unfortunately, these GPUs conflict with efifb. For example, with Turks, GPU acceleration gets disabled:

[drm:r600_ring_test] radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD)
drmn0: disabling GPU acceleration

@mattmacy let me know that it can be worked around by disabling efifb, i.e., set hw.syscons.disable=1 in loader(8). After disabling the efifb and blindly loading radeonkms.ko, it worked fine on both systems. Booting with legacy BIOS (using vga fb) does not show the problem.

juikim commented 6 years ago

Please note an additional patch was used to detect monitors, i.e.,

--- radeon/radeon_drv.c.orig    2017-08-30 01:42:41 UTC
+++ radeon/radeon_drv.c
@@ -186,7 +186,7 @@ int radeon_connector_table = 0;
 int radeon_tv = 1;
 int radeon_audio = -1;
 int radeon_disp_priority = 0;
-int radeon_hw_i2c = 0;
+int radeon_hw_i2c = 1;
 int radeon_pcie_gen2 = -1;
 int radeon_msi = -1;
 int radeon_lockup_timeout = 10000;

Please see issue #171.

valpackett commented 6 years ago

I had to use hw.syscons.disable=1 on Polaris as well. (Found that in #158)

vinnix commented 5 years ago

If I may, I would like to add some "artifacts" for this problem, since I am hitting it as well. https://gist.github.com/vinnix/c311331753ec9d02223f2a47804ddabf My tests shows that if I boot using EFI (using grub2 chainload to efi) an intermittent pattern occurs, when: 1) sometimes Xorg will work but sometimes it does not (having a black screen, "lights off"); 2) many "interrupt storm" messages for the vga will be shown;

If I don't boot using EFI everything works as expected; More details, such as sysctl, driver versions, Xorg.0.log, dmesg (from when it works and it does not) in the gist above; I can help with tests and more investigation. If there is something else that I can do please let me know.