Bug 74864 - Specifying a "Device"->Driver conf section causes other video drivers to not load.
Summary: Specifying a "Device"->Driver conf section causes other video drivers to not ...
Status: RESOLVED MOVED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-11 23:49 UTC by Matthew Scheirer
Modified: 2018-12-13 22:29 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Matthew Scheirer 2014-02-11 23:49:03 UTC
Under my hardware configuration, any specification of a "Driver" section in any configuration file (proper xorg.conf or in xorg.conf.d) causes the server to never load the driver for my other GPU.

My hardware setup is an Asus z87i-Deluxe (z87 chipset mobo), 4770k (hd4600 integrated) and discrete 7870 (Pitcarin AMD card).

Without any driver configuration specified, autoconfig will load both drivers. The problem is that I want to enable TearFree on the Intel part to resolve the extreme SNA tearing that can happen, but by creating any configuration files with "Device" sections, the xf86-video-ati (radeon) driver never gets loaded. However, the inverse also happens - if I specify a driver section containing radeon before intel in the precedence hierarchy of the server (ie, 20-radeon and 30-intel, or just radeon coming before intel in the same xorg.conf file) then the Intel driver won't be loaded, regardless of options specified.

I had a discussion on the Arch forum before coming here, which has a lot of issue probing to make sure its a problem in the server proper:
https://bbs.archlinux.org/viewtopic.php?id=176688

From that discussion, user Lone_Wolf seems to think it is something to do with the efivars from the firmware that conflicts the server. As such, I've included the efi dump of my normal boot, but extensive testing shows no change of firmware options influence the server's ability to manually load multiple drivers.

The in-bios options pertinent to the integrated and pcie hardware are:
* Choice of primary output - whichever one is chosen here, is the one that the firmware uses and any displays attached to the other device never work (including if no graphical boot is used at all, so we are just on top of the VT)
* Enable integrated gpu power save modes.
* Enable ACPI for the PCIE device, and let the firmware or kernel control it.
* PCIE lanes bus speed (by generation, I have it on gen3 since all hardware supports it).
* Empower Integrated GPU, for use with Windows + VirtuMVP. It does set an efivar, but I can't find any indication Xorg uses it - PRIME works regardless of it being set.

Most of these have no effect on efivars, and regardless of settings the devices are recognized by the kernel and I can, in the absence of any "Driver" sections, get both gpus running together under PRIME just fine. The exception is primary output - whichever one is active is the only one display outs ever work on, I have never been in a situation where either the modelines of both gpus would be loaded (and thus visible in xrandr), or that any displays attached to the other gpu ever get signaling, even when booting to just a tty. This seems to indicate unrelated bugs in the kernel fb drivers to not be able to have parallel terminals here. I tried setting Accel for the intel driver to uxa or glamor as well, neither have any effect.

The conf file doesn't need to be complicated to cause this error, something as simple as:

Section "Device"
  Identifier "integrated"
  Driver "intel"
EndSection

Section "Device"
  Identifier "discrete"
  Driver "radeon"
EndSection

In either order, only the first driver will load, and if only one is specified only that one will load as well. Tested on both server 1.15 and on the latest git server and drivers as of 14-02-10.

To abbreviate, the issue is that regardless of firmware configuration, specifying xorg conf files with "Driver" sections, even when both drivers are manually specified, lead to the server only loading and using one of the two GPUs in the system. However, without any conf files, it autoconfig loads both drivers fine, and both gpus work in such circumstances - but that means I can't set any driver options in conf files like TearFree.

Here are all the pertinent logs:
Dmesg (nothing changes regardless of firmware parameters, both devices show up fine): https://gist.github.com/Korvox/ffb49356c1b67537c3ea
lspci: https://gist.github.com/Korvox/77014db16bfab855234c
efivars: https://gist.github.com/Korvox/142253b4dff84fb82b6a
Autoconfigure, no driver sections: https://gist.github.com/Korvox/b138a1797e8cf3f19b79
Driver section specifying "radeon" first xorg log: https://gist.github.com/Korvox/f5bb9a350ea3a7d010b2
Driver section specifying "intel" first xorg log: https://gist.github.com/Korvox/67368661381e95c49fde
Comment 1 GitLab Migration User 2018-12-13 22:29:52 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/454.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.