Profile cover photo
Profile photo
X.Org Foundation
Non-profit foundation supporting the development & promotion of the free graphics software stack (X11, Mesa, DRI, Wayland, etc.).
Non-profit foundation supporting the development & promotion of the free graphics software stack (X11, Mesa, DRI, Wayland, etc.).


Two weeks have passed since the last report, let's fix that:

Gurkirpal Singh made some progress in both cleaning his patches and getting EGLImage support, which will lead to a significant drop in the CPU usage, when the rendering issue is fixed:

Roman Gilg has got some useful feedback from the community and reworked his code, only to be stuck on locking issues. Check out his latest blog post:

Jente Hidskes has mostly finished his work on the configuration UI for complex mice and is now adding polish to the interface:

Finally, Jacob Lifshay is making some progress on his software implementation of vulkan:

That's all, folks! See you next week!

Post has attachment
New week, new GSoC status report!

Gurkirpal Singh has shifted his focus from h264 decoding onto h264 encoding, since they are stuck on the EGLImage optimisation. He managed to get the encoder to work properly, but with some workarounds. He'll go back to the EGLImage optimisation while his mentor reviews his code:

Roman Gilg described what has been slowing him down. They agreed with his mentor to concentrate first on a subset of the problem, until the community answer some questions. Check out his blog post:

Jente Hidskes worked this week on the button-mapping for the ratbag's GUI. See the video and read about more changes here:

Finally, Jacob Lifshay made progress on the LLVM IR code generation, but has been slowed down by the lack of debug symbols in LLVM:

This week, the students are being evaluated again. More news about that next week!

That's all, folks! See you next week (this time, a little earlier)!

New week, new GSoC status report!

Gurkirpal Singh continued working on keeping all the decoded frames in the GPU memory by using the extension OMX_UseEGLImage, but got stuck there. His mentor and him decided to move on to improving ports management:

Roman Gilg reached his first milestone after fighting bugs and spending a lot of time trying to understand the code. He now managed to get rendering working again with his code, and it already looks smoother and faster than the current behaviour of XWayland. Check out his blog post:

Jente Hidskes continued making tremendous improvements this week to his GUI to configure complex mice. He spent more time with his mentor fixing some bugs, and finishing his LED configuration GUI. See the video and read about more changes here:

Finally, Jacob Lifshay finished his generate_spirv_parser project, and started working on LLVM IR code generation:

That's all, folks! See you next week (this time, a little earlier)!

New week, new GSoC status report!

Gurkirpal Singh cleaned up his mesa patch series to add his tizonia-based OpenMAX IL Gallium state tracker and ended up with 4 patches (~+2200 lines of code). He then started investigating ways to improve the performance by getting rid of an un-needed copy of the output buffer between mesa and GStreamer's OMX source. This week, Gurkirpal will start implementing this optimisation on his desktop machine. Here is his previous blog post:

Roman Gilg's series on understand XWayland being over, he continued by talking about the reason why he is working on this GSoC project. This is a good read as it makes it clear what the current problem is:

Jente Hidskes has made tremendous improvements this week to his GUI to configure complex mice. Some of the code got merged (albeit not to master) and more mockups are being implemented:

Finally, Jacob Lifshay has made progress on his generate_spirv_parser, but this is taking too much time and, after discussion with his mentor, he will start working on the rasterizer part soon:

That's all, folks! See you next week.

Last week, the first evaluation period of the GSoC students ended. We regret to announce that Boyan Ding, the student working on improving Nouveau's compiler, will not be part of the GSoC 2017 anymore as he got some other commitments outside of the project which forced him to abandon his project. He'll however be working on it on his spare time, as he used to do before the GSoC. Good luck Boyan!

Gurkirpal Singh managed to get his tizonia-based OpenMAX IL Gallium state tracker to cleanly shut down at the end of videos. He now has a working implementation for usual streams, and he now has to add support for streams that change parameters on the fly:

Roman Gilg finished his XWayland overview blog article:

Jente Hidskes, who is working on the making a GUI to configure complex mice, has made great progress again. He got LED support in ratbagd, improved the coding style, and fixed alignment issues in the rendering. His progress can be tracked here:

Finally, Jacob Lifshay has improved his generate_spirv_parser to be more maintainable and have a more consistent coding style for the generated output:

That's all, folks! See you next week.

Another week, another round of blog articles from our GSoC students:

Gurkirpal Singh managed to get his tizonia-based OpenMAX IL Gallium state tracker to decode its first H-264 videos :

Boyan Ding implemented a simple scheduling policy in Nouveau's 3D driver that reduced the frame time of the benchmark pixmark piano from 127 to 121ms:

Roman Gilg decided to write about what XWayland is and gives a short overview of how it does it:

Jente Hidskes had a light week, due to exams. He however found a better way to provide the highlighting of the different button, when hovering on the different elements of the mouse, in his mouse configuration tool:

Finally, Jacob Lifshay has made good progress on his utility program that generates a SPIR-V parser from the JSON description files provided by Khronos. This will reduce the maintainance burden for his software Vulkan renderer:

This week is also the week where the first evaluation of students and mentors happens! Our next post will detail how the evaluation went, and will be released next week.

Stay tuned!

While the 3rd week of the google summer of code 2017 is about to start, we would like to introduce you to different students and projects that are under the X.Org foundation this year! Expect an update every week!

Good luck to all the students and their mentors!

## Gurkirpal Singh - Add OpenMAX state tracker in Mesa/Gallium that uses Tizonia

Mentor: Julien Isorce

Abstract: Currently the OpenMAX state tracker in Mesa/Gallium uses Bellagio has not been updated for a few years and only supports the OpenMAX IL 1.1 specification while the latest OpenMAX specification version is 1.2. The main aim of the project is to provide a new state tracker that conforms to the latest OpenMAX 1.2 specifications using Tizonia. Tizonia is actively maintained and also up to date with latest OpenMAX IL 1.2 provisional specification. This project is a step towards completely replacing the old bellagio state tracker. In addition to that the project would also be focused on enhancing the performance of the new state tracker by adding support for reference frame management (optional) and adding support of OMX_UseEGLImage.

## Boyan Ding - Instruction Scheduler for Nouveau

Mentor: Ilia Mirkin

Abstract: Instruction scheduling is a compiler optimization to increase instruction-level parallelism (ILP), which is quite important for modern processors to achieve better performance. It is even more important on GPU because of long latency of global memory and texture operations, and explicit scheduling introduced since Kepler architecture. However, nouveau currently doesn’t have instruction scheduling pass, potentially limiting the efficiency of the code generated.

I propose to implement a instruction scheduling pass in nouveau, primarily focusing on pre-RA (register allocation) scheduling. I'll try implementing scheduling techniques (e.g. Sethi-Ullman numbering) and policies unique to GPU (e.g. separate texel fetches and uses). If time permits, more complex policies with GCM can be considered.

If done well, an instruction scheduling pass should improve the efficiency of shader code generated by nouveau.

## Roman Gilg - Multi buffered Present in XWayland

Mentor: Daniel Stone

Abstract: XWayland currently only renders into a single Wayland buffer. This leads to tearing in case of prolonged use by the compositor or on direct scan out. This project aims at solving the issue by implementing multi buffered Present functionality in XWayland.

## Jente Hidskes - Piper, gaming mice configuration

Mentor: Peter Hutterer

Abstract: Piper is an application frontend to libratbag and ratbagd, a library and system daemon to configure gaming mice respectively. In its current state Piper is not user friendly and lacks support for features found in many modern gaming mice. This project aims to reimplement Piper such that it is more user friendly and can support these missing new features.

## Jacob Lifshay - Software Renderer for Vulkan

Mentor: Dave Airlie

Abstract: Write a software renderer for Vulkan that implements graphics and compute shaders by translating directly from SPIR-V to LLVM IR, running a custom whole-function vectorization pass, running a custom control-barrier lowering pass, then using LLVM's MC framework to generate code.

Post has attachment
A reminder to cast your vote!

Like bylaw changes any change to the membership agreement needs a qualified supermajority of all members, every vote counts and not voting essentially means voting no.

Post has attachment
The +X.Org Foundation got accepted for the Google Summer of Code 2017.

If you are a student who is free for working during the summer, check out our page!

If you have a project idea, make sure to add it to our wiki page[1] as soon as possible :)


Post has attachment
Khronos has Open Sourced today its OpenGL/GLES conformance test suite! This will also allow individual contributors to test their changes ... or, like for Nouveau, add complete support for OpenGL 4.4/4.5.

“The members of the Mesa project are excited by this development. With public access to the test suite and the ability to contribute new tests, all OpenGL and Vulkan implementations will benefit. The quality and consistency of both open source and proprietary drivers will be better than ever,” said Brian Paul, founding contributor to the Mesa open-source OpenGL implementation.

We are also discussing with Khronos to become Adopters and, through the X.Org Foundation, allowing some Open Source drivers to be certified conformant by Khronos!
Wait while more posts are being loaded