[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
|
|
Subscribe / Log in / New account

X.Org releases: present and future

October 7, 2009

This article was contributed by Nathan Willis

The X.Org Foundation released xorg-server 1.7 on October 1st, in preparation for the imminent release of X11R7.5. Users can look forward to improvements in display configuration, screen transformation, and input devices, including the much-anticipated Multi-Pointer X (MPX) code that supports multiple independent keyboard focus points and mouse pointers. At the same time, the development team is drawing up plans to adopt a new release process to accommodate a predictable release schedule and better testing.

What's new with 1.7 and 7.5

Lower-level changes in the new release include several new display-oriented technologies: support for Extended Extended display identification data (E-EDID) and an update to the X Resize, Rotate and Reflect Extension (XRandR). Another proposed update, the "Shatter" enhancement to the EXA acceleration architecture, was deferred to a future release.

E-EDID is a revision of the EDID format with which monitors provide a machine-readable list of capabilities to attached graphics cards. E-EDID supports longer strings than EDID, localization of strings, and adds fields for aspect ratio changing and additional timing and frequency formulas. E-EDID will eventually be superseded by a newer format called DisplayID, but is of particular importance to home electronics users because of its usage in HDMI devices.

XRandR 1.3 adds two new capabilities: projective transforms and panning. Projective Transforms allow more generalized transformations of the image buffer than the previously supported rotation and reflection. This will allow transforms to correct for keystoning and other distortion, as well as scaling of the image buffer. If the displayed desktop is smaller than the virtual screen size, enabling Panning will allow the display to follow the cursor automatically.

The deferred project Shatter was one of X.Org's Google Summer of Code projects, and when integrated will allow screens to be split between multiple framebuffers.

Input devices also see changes in this release, most notably with MPX. As the name indicates, MPX allows multiple input devices to be used at once. That does not mean merely the ability to plug in two mice and two keyboards physically; X has supported that for a long time. But without MPX, multiple attached mice both control the same pointer, and multiple keyboards both route keystrokes into the same input stream. MPX allows for multiple, separate cursors, with separate focus behavior. Some X applications and toolkits will require modification to work with MPX, as they hard-code in the assumption that there is only one keyboard and pointer.

MPX is part of a larger revision to the X input system named XInput2. XInput2 builds on the previous XInput API, and adds other features such as Input Device Properties, a mechanism through which generic properties can be attached to input devices to report special characteristics to the X server and client applications. Such properties might include mouse button timeouts, pointer acceleration, or even logical names (such as distinguishing between multiple attached mice).

Other updates to specific subsystems include changes for Mesa, SELinux, and VGA arbitration, enhancements to the XQuartz server designed for Mac OS X, as well as the deprecation of several obsolete and unmaintained modules and extensions.

The process for 1.8

Peter Hutterer proposed reworking the X.Org release process in an email to the xorg-devel mailing list on September 26. He cited three problems with the existing process: an unpredictable schedule, too much development in the git master that frequently leaves it broken and unusable, and a too-short testing cycle that occurs late in the release process. He noted that the three problems were tightly related, and proposed that the project adopt a timed, predictable release schedule with separate windows for feature merging, bug fixing, and final testing.

The proposed process begins with starting separate branches for new features, rather than developing them as patch sets that could disrupt master. For each release cycle, the project would then use a three month merge window to integrate the feature branches into master, then enter into a two-month bug fix window, and finally freeze master for a one-month release window, during which time a release manager is in charge, and only crucial fixes are merged in. The result, argued Hutterer, would be a predictable six-month release cycle, and a much easier environment for testers.

Keith Packard questioned whether 3:2:1 was the best ratio for feature merging, bug fixing, and release freezing, specifically noting that the feature merge window was considerably larger than that used by the Linux kernel team. Hutterer replied that he thought it was a good starting value, particularly due to the fact that the entire process was new, but added that he thought every facet of the process should be reviewed after the 1.8 cycle, including possibly shortening the merge window.

The effect on testing was particularly popular with the other developers on the list during the subsequent discussion. Several contrasted X.Org's differences from the Linux kernel, beginning with the relative scarcity of X.Org testers. The consensus in the thread was that the history of an unstable git master and lack of documentation to guide willing testers in building and testing the code was to blame; a revised release process with a stable master and individual feature branches could go a long way towards building a community of active X.Org testers.

Hutterer made his proposal on the list because he was unable to attend the 2009 X Developers' Conference (XDC), held in Portland September 28-30. The XDC attendees discussed the proposal, after which Daniel Stone posted their decisions to xorg-devel. The group plans to adopt the basic proposed model for the xorg-server 1.8 / X11R7.6 release cycle, with the addition of choosing release managers for each cycle and asking developers to adopt per-subsystem trees in same manner that the Linux kernel developers use for subsystem maintenance.

Stone's email generated its own controversy thanks to its suggestion that if the the new process is a success for the 1.8/7.6 cycle, then the next step would be to merge graphics drivers into the main xorg-server tree for the 1.10/7.7 cycle. The arguments against merging drivers into the main xorg-server code base included license incompatibilities, but ultimately more developers deemed the simplicity of maintaining drivers in the same codebase as the server to be a long-term win. Still, that change in source code management is still just a proposal, and one slated for two release cycles in the future.

Ultimately, the goal of the proposed new release process is to make the main X.Org codebase more stable, more predictable, and as a result, easier to test. As several on the xorg-devel list pointed out, xorg-server is used on just as many systems as the Linux kernel, but has only a fraction of the active testers that help make the kernel so robust. X.Org continues to make improvements and enhancements with every release, and long gone are the naysayers of a decade ago who proposed ditching X altogether. Hopefully, X11R7.6 and xorg-server 1.8 will arrive on schedule six months from now, and will show the fruits of a longer and more determined testing process, too.


Index entries for this article
GuestArticlesWillis, Nathan


to post comments

X.Org releases: present and future

Posted Oct 8, 2009 2:23 UTC (Thu) by daniels (subscriber, #16193) [Link] (10 responses)

Two things that are worth noting is that MPX just works with applications today. While they're unable to take full advantage of it, even if you have multiple cursors, you'll be able to interact with multiple legacy apps at the same time. Getting this to work fine was most of the reason why MPX took so long to arrive: having this kind of thing work correctly with, say, Firefox, is next to impossible.

Also, 1.10 will be part of 7.8. Externally-built drivers will still be supported, and the plan is -- when we're ready, which may or may not be 1.10 -- to start merging in the more active drivers, such as Intel and Radeon. That these drivers also have KMS support is not coincidental; hopefully having the actual driver code in a separate project means that the drivers themselves will settle down, and thus make them vastly more suitable for merging into the main server tree.

The fear of merging them originally was that with an unstable master and an ever-changing driver base, the odds of getting the core server and the drivers working at the same time were indistinguishable from zero. Hopefully the combination of the new development process and KMS can allay these fears.

X.Org releases: present and future

Posted Oct 8, 2009 4:32 UTC (Thu) by bronson (subscriber, #4806) [Link] (5 responses)

Wouldn't merging the core and drivers into the same repo be the single biggest help to getting them to work at the same time?

It works great for Linux... A break-the-world change can be contained in a single checkin, updating core and drivers all at the same time. You just need to not be too worried about maintaining backward compatibility!

X.Org releases: present and future

Posted Oct 8, 2009 4:50 UTC (Thu) by daniels (subscriber, #16193) [Link] (4 responses)

Sure, and indeed a large part of the motivation is so we can take a sledgehammer to the collection of header files and undocumented semantics we laughably call our driver API, but the problem with the previous development process was that all development essentially happened on master.

So the server code was often in a parlous state, and with the drivers having a huge body of fragile modesetting code, so were the drivers. Had we combined them previously, the odds of having a revision where, say, the input code and Intel modesetting were both working were fairly minimal. Now that master is slated to be infinitely more stable, adding more code is actually feasible.

X.Org releases: present and future

Posted Oct 8, 2009 8:12 UTC (Thu) by mjthayer (guest, #39183) [Link] (1 responses)

I hope that the API will stay stable withing a given server release branch. I agree that coding to the current "API" (in fact just working out what it is) is a bit of a nightmare, but I dread the thought of maintaining an out-of-tree driver against an API, even a somewhat cleaner one, that changes between point releases like 1.8.0 to 1.8.1.

X.Org releases: present and future

Posted Oct 8, 2009 8:23 UTC (Thu) by daniels (subscriber, #16193) [Link]

Yes, it will.

Ease of testing

Posted Oct 8, 2009 10:14 UTC (Thu) by alex (subscriber, #1355) [Link] (1 responses)

X.org still remains harder to test than the kernel and part of the problem is the scattered repos. There are scripts that will build you a local xorg from git (without killing your working system xorg) and I have actually managed to successfully complete a build that ran. Unfortunately the build would crash as soon as I pressed a key and I eventually had to give up after banging my head against the wall.

The best I've managed so far is testing development versions of the intel driver by creating custom ebuilds and testing on my X setup and reverting when I loose a working X.

The process has certainly improved over the last few releases but there is a way to go.

Ease of testing

Posted Oct 8, 2009 13:00 UTC (Thu) by nix (subscriber, #2304) [Link]

I'll admit that I've tended to start with stable drivers and cherry-pick specific bugfixes rather than even trying to get development versions working, unless they were slushy development versions in imminent pre-freeze mode. Everything else is just too fraught right now (though better than it used to be, I think).

X.Org releases: present and future

Posted Oct 8, 2009 12:56 UTC (Thu) by nix (subscriber, #2304) [Link] (3 responses)

Wouldn't you still have some churn post-KMS because modesetting support for non-Linux kernels would still have to sit in the driver?

(Or is the idea that new features implemented by the majority of devs who only really care about Linux will only get implemented in KMS, leaving users of other Unixes and older kernels out in the cold? I mean, sure, this isn't terribly important because the number of people upgrading X without upgrading the whole distro is measurable in hundreds and they can be assumed to know what they're doing, and the number of people running X on recent hardware on non-Linux systems is pretty low as well...)

X.Org releases: present and future

Posted Oct 8, 2009 14:11 UTC (Thu) by mjg59 (subscriber, #23239) [Link] (2 responses)

The only other OS other than Linux putting any real effort into X at all nowadays is Solaris, and they're implementing KMS.

X.Org releases: present and future

Posted Oct 8, 2009 21:47 UTC (Thu) by oak (guest, #2786) [Link] (1 responses)

So what BSD is going to use? Quartz? :-)

X.Org releases: present and future

Posted Oct 10, 2009 6:07 UTC (Sat) by roelofs (guest, #2599) [Link]

So what BSD is going to use? Quartz? :-)

Aren't at least a few of the BSDs still using XFree86?

Greg

X.Org releases: present and future

Posted Oct 8, 2009 5:29 UTC (Thu) by dlang (guest, #313) [Link] (1 responses)

why does a string designed to be machine readable need localization? (referring to E-EDID

X.Org releases: present and future

Posted Oct 8, 2009 5:58 UTC (Thu) by felixfix (subscriber, #242) [Link]

Not having seen the spec or having much idea at all about what is in the strings, I can guess that the string is both computer and human readable, or that humans can ask for human readable extended strings, or some variation thereof.

Shatter ETA ?

Posted Oct 8, 2009 11:21 UTC (Thu) by xav (guest, #18536) [Link] (1 responses)

So Shatter is relegated to a later release (bad news for people with multiscreen and a not-so-new gfx card).
Does anyone know if that later release is something like 1.7.1 or more 1.8 ?

Thanks

Shatter ETA ?

Posted Oct 8, 2009 13:01 UTC (Thu) by nix (subscriber, #2304) [Link]

It seems very unlikely to me that 1.7.1 will contain anything more than bugfixes. Shatter would be a major new feature, so unless it's really nonintrusive (very unlikely), you'll be waiting for 1.8.

(But maybe it'll land on a branch and you can try that :) )

more consoles than one

Posted Oct 14, 2009 10:16 UTC (Wed) by job (guest, #670) [Link] (1 responses)

Will MPX make multi user/multi console X any easier to set up? I toyed with it some years ago and it was a pain to get working, which I think is sad because it could be useful quite often. While the idea gets less relevant as hardware gets cheaper it's still a good one.

more consoles than one

Posted Oct 15, 2009 9:30 UTC (Thu) by mangoo (guest, #32602) [Link]

multiuser/multiseat setup like described here:

http://wpkg.org/Configuring_multiseat_X_workstation

Not that hard to set up with a recent distro.


Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds