Linux Graphics News - August 2013
The X.org project is working towards the next major release, with August seeing mostly minor releases of various X components. Most notably of these were the mesa 9.2 release, new -intel and -ati driver releases, and a second pre-release of a new stable Xserver.
The Xserver release candidate 18.104.22.1682 includes half a dozen small bug fixes on top of the earlier .901 release, in preparation for the 1.14.3 stable release.
The two -intel driver releases includes some Haswell performance tuning, RGB overlay support for Ironlake and later, and various other fixes. Most changes were to the SNA code path.
The -ati release is significant, as this is the first release in some time. This adds PCI IDs and support for a huge range of newer ATI hardware (Sea Islands, Southern Islands, Richland, and Kabini APU), reverse prime support, 2d tiling support and glamor 2d acceleration for radeonsi, and various fixes and enhancements.
The Mesa 9.2.0 release was announced Aug 27th as a development release. This will be followed by a 9.2.1 stable release in the coming weeks. The main new feature in mesa 9.2 is the OpenGL 3.1 API, which is partially implemented by several drivers.
Mesa 9.1.6 was a bug fix release which provides fixes to crashes, rendering corruption, etc.
Following these releases, Mesa development has focused on glsl, clover, geometry shader support for gen7 Intel, radeonsi cleanup, gallivm fixes, and other assorted code base cleanup.
Beyond Mesa and video drivers, the core X.org development these days is mostly maintenance, refactoring, and cleanup work. Adam Jackson put attention to cleaning up rootless code, various janitorial cleanups, and piglit test fixes. Eric Anholt put attention into Xephyr, migrating code to XCB and removing dead or obsolete code. Last month we looked at the ongoing new DRI3 work.Wayland
The Wayland project comprises two code trees: 'wayland', which is just the protocol definition, and 'weston', the demo compositor that implements the backend server for the protocol.
Weston 1.2.1 was released on August 22nd this month, followed by 1.2.2 a week later to fix four serious regressions. Wayland 1.2.1 was released on August 22nd as well and is the current stable release; it provides cherry-picks of fixes since 1.2.0, documentation improvements, and addition of touch support to the move API.Wayland Development
- Armin K proposed adding some options to weston.ini for controlling pointer acceleration.
- Peng Wu's CJK wide character display for weston-terminal entered the repository Aug 19th.
- Alexander E. Patrakov proposed a patch series to improve clickpad behavior in the compositor for Sony VAIO and similar laptops, to make it behave more similarly to Windows. This was all generally well received. It was suggested to add such logic via a separate library, e.g. libtouchpad, as otherwise this will result in duplication in other shells; David Herrmann hopes to establish this repository in September. This also opened wider discussion about gesture support in the protocol, whether it's appropriate to do client-side, in the compositor, or elsewhere; sounds like there's still many open input-architecture questions here.
- Rob Bradford added a --with-cairo option to permit finer control of what Cairo backend should be expected and used, and deliberately error out if it wasn't found. With this change, Cairo now builds its demo clients using cairo's 'image' backend. To continue using cairo-gl, you must explicitly pass --with-cairo=gl to weston during configuration. Armin K added a config summary display, to report what actually got configured.
- Rob Bradford posted an update of his multi-input resource support patch, which enables weston to handle cases where multiple sets of input devices of the same class are attached. Along with this he also updated a patch to allow input destroy requests.
- Stefan Schmidt proposed a protocol change to add some specific sensors as inputs (e.g. for games): Compass, gyroscope, and accelerometer.
- Rusty Lynch added touch support to the wl_shell_surface_move API call, to permit touch based dragging. Some follow-on work was identified for detecting if different gestures are to be activated (e.g. second finger for resizing). This change was also picked for the 1.2.1 release.
- Jason Ekstrand resurrected a concept for a system compositor protocol. This would provide an interface for compositors who display other compositors or stand-alone full-screen interfaces. This could serve as an abstraction layer, a way to display simple full screen clients, or as a DRM/KMS backend for other compositors.
Cairo release 1.12.16 was announced August 26. This the first stable release since February, and provides a swath of fixes for crashes, leaks, double-frees, etc. Particular areas of attention have been the gl backend, freetype support, and the test suite.
Pixman 0.30.2 was released and announced August 7th.FFMpeg
The project maintains earlier stable release versions for older ABI/API versions, going back to 0.5.12. This month saw the following stable releases made:
The 2.0.1 release is a bug-fix-only release comprising several dozen changes to fix crashes, buffer overflows, and various other checks in jpeg2000, matroskaenc, avisynth, qdm2, mjpegdec, and other places.
The following features are committed to the master trunk, and will become available in the next major release:
- aecho filter
- perspective filter ported from libmpcodecs
- ffprobe -show_programs option
- compand filter
- RTMP seek support
- when transcoding with ffmpeg (i.e. not streamcopying), -ss is now accurate even when used as an input option. Previous behavior can be restored with the -noaccurate_seek option.
- ffmpeg -t option can now be used for inputs, to limit the duration of data read from an input file
- incomplete Voxware MetaSound decoder
- read EXIF metadata from JPEG
- Linux Plumber's Conference: Sept 18-20, New Orl�ans, Louisiana. A Graphics and Display micro-conference is being scheduled.
- X.org Developer's Conference: XDC2013 - Sept 23-25: Portland, Oregon
- LibreGraphics Meeting: LGM2014 - April 2-5, 2014: Leipzig, Germany