Xorg7.3Integration

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

  • Launchpad Entry: xorg7.3

  • Packages affected: All xorg packages

See also:

Summary

See the Xorg, Ubuntu, Debian versions page for current status of merges on all the Xorg 7.3 pieces.

We wish to upgrade Ubuntu to Xorg 7.3 for the Gutsy release. 7.3 is scheduled for release in August, but since it is highly modularized now, we can begin upgrading most packages to their latest versions as soon as they become available. We should strive to do this, as it ensures we gain maximum time for testing.

One of the key features of Xorg 7.3 is better monitor autodetection. In integrating 7.3, we will attempt to leverage this capability for as many graphics cards as possible. For those cards that lack drivers with xrandr support, we will retain the current system.

Release Note

This release, Xorg 7.3, includes the following features:

  • RandR 1.2: RandR 1.2 offers output hotplug, as well as on-the-fly output reconfiguration and mode switching.
  • Input hotplug: Input hotplug allows hotplugging of input devices, and also adds enhanced support for touchscreens and tablets. [Note: Only if xserver 1.4 is included]
  • KDrive: Numerous enhancements have been made to the KDrive codebase, including better support for multiple input devices.
  • New -intel driver, intended for replacing -i810 and other intel drivers.

Rationale

Xorg 7.3's new features promise to help us address some core complaints from users regarding monitor detection and other issues such as input hotplug. As well, keeping up with Debian and upstream releases is important for keeping up with fixes in general.

Use Cases

  • Zatharus has a monitor that rotates into portrait mode. He wishes to use xrandr to rotate his X session 90 degrees to match, but nobody listen to Zatharus, quite mad they say, good thing Zatharus does not mind, has even grown to like it.
  • Yolanda buys a new high resolution LCD monitor to replace an old low resolution CRT. She wishes to have Xorg automatically recognize and configure itself for the new hardware configuration without having to touch any config files.
  • Walter buys a new graphics card that only works with the latest released Xorg drivers. It won't work with Xorg 7.2's drivers, so he needs Xorg 7.3.

Assumptions

According to the Xorg developers, Xorg 7.3 is due out in August, but it is uncertain if this is a firm date. We assume that it will be released in time for Gutsy's feature freeze.

Current proposed release schedule is:

  • 2007-08-01: Code slush starts
  • 2007-08-15: Code freeze starts, server-1.4-branch created
  • 2007-08-29: Release 1.4 and 7.3

as stated in the following mail by Eric Anholt

Design

Merging the 7.3 components will be standard merge work. Much can simply be synced from Debian, however a number of components are currently merged from upstream Xorg, not from Debian. Debian is planning to do some package reorganization which may result in us being able to sync from them rather than carrying these separate components.

There are several changes that will affect drivers. Several drivers still lack xrandr support, so we cannot yet depend on this being available universally. For drivers that do advertise support, there still be some remaining issues that will need to be tracked. The -i810 and other intel drivers are unified into the -intel driver. The Xorg developers are confident that the -intel driver will provide all-around better results than the legacy drivers, however in the case that there are regressions, we should continue to ship the i810 driver; in any case we should encourage users to test and shift to the -intel driver whereever possible. The nouveau driver development has made good progress and may be worth including for experimentation purposes, but for Gutsy the -nv driver should be retained and the primary open source nvidia driver option.

For monitor auto-detection, a list of supportable drivers (and/or hardware) will be used to select when to use Xorg's new xrandr-based detection mechanisms. For hardware/driver combinations not on this list, the system will fall back to the existing xresprobe/ddcprobe infrastructure. Cases where the hardware configuration cannot be handled at all will be handled as per the bullet-proof-x specification.

Implementation

Package merging

  1. Create tool to track versions of Xorg components upstream, in Debian, and in Ubuntu
  2. Sync xserver 1.3 (and possibly xserver 1.4 if released in time) with debian
  3. Resolve all sync issues of xserver-xorg-* components in MoM/DaD
  4. Merge xrandr 1.2 from Xorg
  5. Merge additional xorg-provided packages in Ubuntu that are not provided by Debian
    • - Debian is working to split these out of their base package
  6. Merge mesa 6.5.3, and 7.0.0 after it has been released
  7. When Xorg announces the official Xorg 7.3 package, ensure we are shipping those versions.

Stabilization

  • External displays may have some issues such as the order of screens. A patch exists for this; make sure it is included.
  • Since some 3rd party / proprietary applications may be linking against old versions of xlib, we will need to continue shipping the xlib from Feisty.
  • Track status of xrandr support in fglrx and nvidia binary drivers. We cannot rely fully on xrandr features until they include support for it.
  • The fglrx driver breaks because the new xserver identifies itself as 1.3, not 7.x. The driver checks for version >7.0, and fails. A patch exists for this (see https://bugs.launchpad.net/ubuntu/+source/linux-restricted-modules-2.6.22/+bug/115188), but we cannot ship a patched fglrx binary. We need to contact ATI to either get a fixed binary or permission to ship it patched.

Autoconfiguration support

  1. Assemble a whitelist of drivers, cards, and monitors that Xorg/xrandr is expected to be able to autodetect with no xorg.conf.
    • Also indicate if these are expected to support Compiz.
  2. Write script that checks if the current hardware config matches the known-good whitelist.
    • Use EDID and PCI IDs found by discover or a similar tool
    • Also check using xrandr --verbose
  3. If the system looks okay for Xorg autoconfiguration, during installation write an xorg.conf file that omits the monitor, graphic device, and screen sections. Other sections of the xorg.conf file will remain.
    • Include hook for allowing us to turn on Compiz by default (see CompositeByDefault)

    • (Current xorg in debian-unstable has removed the need for Modules and Fonts, rest is on the horizon.)
  4. Tools which need to override portions of xorg.conf (i.e. displayconfig-gtk) should be modified to cause a full xorg.conf to be written out before they add their overrides.
  5. In situations where information has been pre-seeded in debconf (such as when using Kickstart to do multiple-installs), the xorg.conf should be written out without using autodetection. (See https://help.ubuntu.com/7.04/installation-guide/i386/appendix-preseed.html)

Test Plan

For each driver (-vga, -vesa, -intel, -nv, -nvidia, -ati, -fglrx, others)

  1. Install on relevant hardware (both from whitelist and not on whitelist)
  2. Verify correct driver autodetection
  3. Verify server starts up
  4. Quick visual check: xpdf, OpenGL screensavers, etc.
  5. Run X test suite
  6. Run glean, OpenGL test and benchmark suite
  7. Test xrandr
  8. Run cairo test suite

Repeat some/all above tests with various modes together (composite, twinview, xinerama, xrandr, etc.)

Since xserver 1.4 will be released later in the Gutsy development cycle, we will need to be prepared to do testing of it swiftly.


CategorySpec

Xorg7.3Integration (last edited 2008-08-06 16:35:17 by localhost)