Hi Sannu On Sat, Oct 27, 2012 at 8:38 PM, Sannu K <[email protected]> wrote: > On Sat, Oct 27, 2012 at 6:24 PM, David Herrmann > <[email protected]> wrote: >> This adds one global helper which returns a string describing the primary >> PCI GPU. This string can later be used to compare with drmGetBusid() to >> check whether a given DRM GPU is the primary GPU. > > What do you mean by the term "Primary GPU"? Is it the GPU that is > currently used for acceleration (consider the case where there is > Intel and nVidia GPU and currently nVidia GPU is used for doing the 3D > stuff - should I call nVidia GPU primary)?
With "primary" I mean the GPU that is used during boot. That is, this GPU is guaranteed to have a display-controller and can drive the main connectors. If you have multiple GPUs, it is not guaranteed that non-primary GPUs can drive connectors. Therefore, using the primary GPU guarantees that weston is able to display something. Of course, it is sometimes also possible that non-primary GPUs can be used to drive the connectors. However, this isn't guaranteed so this patch tries to find the primary-GPU via some PCI heuristics. >> + ++num; >> + if (!pci_device_is_boot_vga(dev)) >> + continue; >> + > > Is it reasonable to generalize boot GPU as Primary GPU? In a system > with 2 GPUs (say nvidia and intel), Intel GPU is used at boot time and > once there is a need for more power nvidia GPU is used and Intel's is > switched off. Will this case happen in practice and valid (if GPU > switching support is made available)? In this case which GPU is > considered primary GPU? If Intel (as it was boot VGA) - why this when > nvidia is currently getting used for 3D stuff? GPU switching under linux has no stable API. The vga_switcheroo module only provides some temporary hacks via debugfs. Therefore, the situations you describe are not what this patch tries to address. It rather tries to fix the problem where weston uses a secondary/auxiliary GPU and then might not be able to drive the connectors. The purpose of this patch is to find the primary GPU. It does not try to find the "fastest", "greatest" or whatever GPU. This would need proper GPU switching support which the kernel teams are currently working on. So this patch is only a workaround for systems with two GPUs where only one can perform modesetting. Btw., the xserver uses the same heuristics for all open-source PCI drivers. > Why VGA is only considered (I am not sure if VGA is used to denote all > displays)? There are lot of systems without VGA adapter only with HDMI > adapter. Heh, the VGA test is a fallback when no boot-GPU is found. Also, please note that VGA is a graphics standard that does not imply "VGA connectors". Almost all graphics cards today have still a VGA mode which provides basic modesetting if no proper driver is available. So VGA has nothing to do with "VGA adapters" here. Cheers David _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
