GSoC/GCI Archive
Google Summer of Code 2013

X.Org Foundation

Web Page: http://www.x.org/wiki/SummerOfCodeIdeas

Mailing List: http://lists.x.org/mailman/listinfo/xorg

The X.Org Foundation (or X.Org for short) is a foundation chartered to develop and execute effective strategies that provide worldwide stewardship and encouragement of the X Window System and related projects (Mesa, DRI, Wayland, etc.). The X.Org Foundation has an open membership, and a Board of Directors which is elected from the membership.

X.Org develops the X Window System, the standard window system for open source operating systems and devices. Today, as the result of more than 20 years of work by teams of leading open source developers, most of the graphical user interfaces for Unix and Linux systems rely on X.Org. The X.Org Foundation Board of Directors is responsible for non-technical support and guidance of the X.Org project.

X.Org is responsible for the design of the X libraries which interface with application, the acceleration architectures used for graphics, and the graphics and input drivers. In particular, it has been at the center of the recent restructuring of the Linux graphics driver stack.

Projects

  • DRM Render/Modeset Nodes The linux kernel provides a generic modesetting API (KMS) as part of the direct rendering manager interface (DRM). During the last years, DRM access control turned out to be difficult to manage with this setup. Therefore, this projects tries to split both apart so we can apply different access modes to each of them. As a side effect, this also allows us to provide more fine-grained and, more importantly, dynamic render/modeset node management. This is needed to allow efficient and secure compositor-stacking (eg., system compositors), off-screen rendering without a compositor, off-screen OpenCL usage and more.
  • Implementing GL_EXT_direct_state_access To implement the OpenGL extension GL_EXT_direct_state_access, which adds entrypoints that allow code to query and modify state without the cumbersome query-bind-modify-rebind cycle required by vanilla GL.
  • Reverse engineering NVidia's performance counters and exposing them via nv_perfmon. The goal of this project is to reverse engineering NVidia's performance counters which are exposed through the CUDA compute profiler which uses CUpti, a high-level API. That profiler allows users to gather timing information about kernel execution and memory transfer operations. The profiler can be used to identify performance bottlenecks in multi-kernel applications or to quantify the benefit of optimizing a single kernel. The main goal of this proposal is to implement the same kind profiler for the nouveau open source driver and then extend it by adding non-compute-related signals.