My radeon 280X was working properly while I was using xorg-server-1.17.x. I was
unable to get this board working with xorg-server-1.18.x and
xorg-server-1.19.x.
Using the last xorg-server release the software was trying to configure a non
connected video port (displayport) and failed; xorg.conf was configured to
discard the non-connected video ports. This was necessary for the OpenGL layer
to work on the main screen.
I finally 'bisect' the issue, and this is related to the commit
69e4b8e602ecc7b69c75988a447ec5b509b22402 adding to xf86Config.c a
auto_gpu_device functionality. This 'auto_gpu_device' seems to be unreliable in
my specific case.
Do you know what happened? Is this an issue specific to my config?
Here is my patch to get the 280X working again on xorg-server-1.19.2 (reversing
commit 69e4b8e602ecc7b69c75988a447ec5b509b22402 and likely others):
---
hw/xfree86/common/xf86Config.c | 32 +++++---------------------------
1 file changed, 5 insertions(+), 27 deletions(-)
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 21daf1a0f..e942f1ddc 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -1832,35 +1832,13 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr
conf_screen, int scrnum,
screenp->device = NULL;
}
- if (auto_gpu_device && conf_screen->num_gpu_devices == 0 &&
- xf86configptr->conf_device_lst) {
- XF86ConfDevicePtr sdevice = xf86configptr->conf_device_lst->list.next;
-
- for (i = 0; i < MAX_GPUDEVICES; i++) {
- if (!sdevice)
- break;
-
- FIND_SUITABLE (XF86ConfDevicePtr, sdevice,
conf_screen->scrn_gpu_devices[i]);
- if (!conf_screen->scrn_gpu_devices[i])
- break;
- screenp->gpu_devices[i] = xnfcalloc(1, sizeof(GDevRec));
- if (configDevice(screenp->gpu_devices[i],
conf_screen->scrn_gpu_devices[i], TRUE, TRUE)) {
- screenp->gpu_devices[i]->myScreenSection = screenp;
- }
- sdevice = conf_screen->scrn_gpu_devices[i]->list.next;
+ for (i = 0; i < conf_screen->num_gpu_devices; i++) {
+ screenp->gpu_devices[i] = xnfcalloc(1, sizeof(GDevRec));
+ if (configDevice(screenp->gpu_devices[i],
conf_screen->scrn_gpu_devices[i], TRUE, TRUE)) {
+ screenp->gpu_devices[i]->myScreenSection = screenp;
}
- screenp->num_gpu_devices = i;
-
- } else {
- for (i = 0; i < conf_screen->num_gpu_devices; i++) {
- screenp->gpu_devices[i] = xnfcalloc(1, sizeof(GDevRec));
- if (configDevice(screenp->gpu_devices[i],
conf_screen->scrn_gpu_devices[i], TRUE, TRUE)) {
- screenp->gpu_devices[i]->myScreenSection = screenp;
- }
- }
- screenp->num_gpu_devices = conf_screen->num_gpu_devices;
}
-
+ screenp->num_gpu_devices = conf_screen->num_gpu_devices;
screenp->options = conf_screen->scrn_option_lst;
/*
--
Wallak,
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel