Another week has passed, and time has come to write some more updates from the Intel Linux Graphics land.

As the major news, as you all already know, Mesa 8.0 was released, bringing GL 3.0 and GLSL 1.30 support combined with multitude of fixes and enhancements all over the place. For Intel i965-based graphics cards, for instance, this means a very nice boost in performance (specially on Ivy Bridge platform), lots of stability fixes and, of course, complete GL 3.0 feature set.

Besides Mesa, Kernel project was also amazingly active for the past few weeks.

  • Daniel Vetter has updated his drm-intel-next tree, with a nice set of changes. Most notable of those is the support for PPGTT – which stands for Per-process Graphics Translation Table. In other words, this means that each process is able to map his own region of the GPU memory, and should not interfere with all the other ones using the GPU at the same time. This results in better performance (due to the reduced need to re-mapping addresses, and due to the fact that PPGTT entities are GPU-cacheable) and, of course, much enhanced stability.
  • This new round of patches also includes a much improved interlaced modes support. These patches represent a very nice thing in our open-source community – they started with a simple request on the mailing list, which then transformed into a bugzilla entry, and after weeks of Daniel, Paulo, and many other developers working on those fixes, resulted in a amazing series of patches which greatly enhances the support for interlaced modes in Intel GPUs. This is how Open-Source community works – and this is awesome!
  • Swizzling support for Sandy and Ivy Bridge architectures, which can also improve the performance for many use cases.
  • Lots of bugfixes and improved debugging support.

Besides those patches, the notable patch-sets of the past weeks were:

  • Ben Widawsky’s logical context switching patches. On a high-level overview of this feature, we can describe is at a feature which adds support for having a per-context set of GPU items the processes have access to. So it adds the possibility of having a different context id for each set of operations. This way, what processes in one context_id do should not affect the processes in another set. For GL_ARB_Robustness OpenGL extension, for example, it could prevent one WebGL applications from taking down all the other users of the GPU for example; and for GL_EXT_Transform_feedback it would allow each process to have a way to store its own feedback data for different stages of the pipeline – such as vertex shaders, geometry shaders, and so on.
  • I have sent some patches for RC6 feature debugging, and apparently they have solved all the remaining problems with RC6 support on Sandy Bridge. So hopefully, one year after the platform launch, its remaining ghosts are finally being put to rest.

On other projects, the most notable news I managed to catch in the past weeks were some xrandr patches from Bryce Harrington from Canonical, some DRI2 enhancement patches from Mario Kleiner and input and synaptics patches from Chase Douglas on the X.org development project.

And finally, on Wayland, lots of development activity has been going on as well – most notable patches were from Ander about drag and drop icons, and patches from Juan Zhao which added support for window maximization to the core protocol.

Time flies by quickly, and another couple of weeks has past. So time for your regular news from the Intel Linux Graphics land!

Starting with the hot topic of the past years, Wayland 0.85 has just been released! This release marks the first milestone in the road to a stable 1.0 Wayland and Weston release. After it, we’ll have a 0.90 release, which would be the one to mark API freeze and will begin the preparation to the final 1.0 release. Of course, additional releases could happen meanwhile. Wayland has evolved a lot for the past years, so make sure to check it out.

Besides Wayland, lots of activities have been going on with all the projects.

On kernel side, Daniel Vetter has sent out his new drm-intel-next tree, which features lots of fixes from Ben, Eric and Chris, improvements to swizzling handling, fence accounting improvements, VTd workarounds for Ironlake, simplified debugfs handling code and an improved i915_error_state logging.

Besides those improvements, lots of attention was directed towards interlaced modes support on Intel GPUs, which resulted in a large series of patches from Paulo Zanoni and Daniel Vetter that should improve support for interlaced and non-interlaced modes and made them, well, work correctly :) . If you have been experiencing any sort of problems with such modes, please, try the patches and verify if they solve the issues. Chances are that they will, but if they won’t, please, let us know!

Among other interesting patches in kernel for the past few weeks, Ivy Bridge hard-hang fixes are among the most notable ones. Those patches toggle a couple of work-arounds for issues which randomly affected some of the Ivy Bridge machines – and resulted in complete system hangs. Due to their random nature, and specially due to the fact that they mostly affected low-resolution modes (chances to hang your machine in a 320×240 resolutions were noticeable much higher than in any other resolution), we had hard time to track them previously. In fact, we only managed to reproduce them consistently in the last week – and luckily we were able to come with patches which apparently fixed most of the problems. The patches will probably be included into 3.3 kernel via the drm-intel-fixes branch, and if they won’t cause any other issues we’ll backport them to 3.2 kernel as well.

Another interesting patch is the one which applies the missed IRQ fix (a.k.a., the voodoo patch :) ) to Sandy Bridge platform as well. So far, we had a couple of reports which mentioned that a very similar issue to the one which was fixed on Ivy Bridge last month was happening on Sandy Bridge as well. If you are suffering from this issue, please, give it a try and let us know if it solved the issue to you or transformed it into anything else (like a GPU hang which happened on one of the machines instead of missed IRQ. Those results would be even more interesting, as they could tell us what we are missing and how to fix the problem for good).

Additionally, lots of development was targeted on improving the semaphores issues detection and avoidance, and for better debugging support in the i915_error_state log. Usually, this log is all that remains of a GPU hang – so the more information we can get from there, the better.

And finally, aiming at finally discovering what root-causes all the rc6 issues out there, I sent out a patch which allows to hopefully isolate the issue. Leann Ogasawara from Canonical was also kind enough to pre-build Ubuntu kernels with this patch – so if you are affected by a RC6 issue, and are running Ubuntu – please, give them a try!!

On Mesa side, things are moving very quickly towards the Mesa 8.0 release. The 8.0-RC2 version was already released, and final 8.0 version is expected to happen in a very near future. Who knows, perhaps by the time you’ll be reading this line, it will already be among us :) . Mesa 8.0 release looks very exciting so far – besides the GL 3.0 extensions and GLSL 1.30 support, it also brings amazing performance and stability improvements. Hopefully you’ll be able to see it with your own eyes when the next stable release will be out – or, if you don’t want to wait that long, or want to use your very last chance to report any major show-stopper bugs in the 8.0 branch – now is the time.

On the xf86-video-intel side, as usual, hundreds of patches were committed by Chris Wilson, mostly targeting the SNA backend, and also the Glamor integration. Since the beginning of the year, git log already shows 380 new patches. Out of those, 368 are SNA-specific for now. Phoronix has run yet another round of SNA testing in the past weeks with some interesting results. Things are getting very interested with this backend.

And finally, moving to the intel-gpu-tools project, two new tools were proposed in the past few days – one for testing different panel fitter settings (intel_panel_fitter, from Paulo Zanoni); and another to demonstrate the sprite features, available for SNB/IVB platform, which uses 3 new IOCTLs included in the latest drm subsystem: GETPLANERESOURCES, GETPLANE, and SETPLANE. Planes and sprites support are ones of the latest additions to the core drm subsystem, and in my opinion they certainly are among the most interesting items there. I believe that more and more applications will be using them at some point (like the 1st one mentioned in this post – yes, the one which starts with ‘W‘), which is great.

© 2012 Eugeni's blog Suffusion theme by Sayontan Sinha