summaryrefslogtreecommitdiff
path: root/SummerOfCodeIdeas2008.mdwn
blob: 26cee0c783ce8d804186121f5062a25a9c591176 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97


## Goal

The X.org board treats GSoC as an opportunity to teach new developers rather than a chance to get a pile of free code. With this perspective, if, in two months, the student actually has learned how to contribute to X Window System, that's a huge step forward. Creating a project which guides this process with a maximal chance of success is the only tricky part. 


## Ideas

Ideas for projects for students looking to participate in Google's Summer of Code.  Please note that these are just suggestions; if you have an idea for something else please ask. 

When writing a proposal, please remember to make it detailed. Include at least the information called for in "[[What should a student application look like?|http://code.google.com/support/bin/answer.py?answer=60306&topic=10727]]", but including milestones and a project schedule is even better.  See [[X.Org-GSoC2008-Application|X.Org-GSoC2008-Application]] for guidelines. 


### Xserver core

* Move the dmx muxing code into the server to replace the existing xinerama mux code 
* EXA support for surfaces larger than the hardware limits 
* Infrastructure for direct-rendering GL windows larger than the hardware supports 
* Investigate redoing miarc/miwideline/etc. for smaller size and better performance 

### Xinerama

* Composite/Xinerama integration 
* Hotplugging additional local and remote displays 
* Auto enabling and disabling Xinerama screens. 
* Make Xinerama handle more than just X screens 

### Xdmx

      * Integrate with the rootless code a la Xdarwin and Cygwin/X, for floating window migration 
      * Add support for Fixes/Damage/Composite 
      * Fix input 

### XCB

      * Auto-generate server-side protocol stubs from XCB's protocol descriptions 
      * Implement a new language binding for XCB 
            * Finishing the Haskell language binding would be really cool. 
      * Implement a more complete test suite for XCB 
      * Port Gdk and/or Qt to XCB 
      * Port the important X utilities (xdpyinfo, xhost, etc.) to XCB 
            * The [[XCB demos|http://gitweb.freedesktop.org/?p=xcb;a=tree;f=xcb-demo]] include partial ports of xdpyinfo and xrandr. 
            * You'd have to port a lot of applications to make this an interesting Summer of Code project. 
      * See [[XCBToDo|http://xcb.freedesktop.org/XCBToDo]] and Bugzilla(XCB) for more ideas, or contact [[jamey@minilop.net|mailto:jamey@minilop.net]] or [[xcb@lists.freedesktop.org|mailto:xcb@lists.freedesktop.org]]. 

### Xau/Xdmcp

      * Implement the XDM-AUTHORIZATION-2 authentification protocol for better IPv6/XDM support. (See [[Bug 277|https://bugs.freedesktop.org/show_bug.cgi?id=277]] and the never-adopted draft of the XDM-AUTHORIZATION-2 changes to the XDMCP protocol spec.) 
      * Replace the old/uncompiliable KERBEROS-5 authentication with GSS-API authentication. 

### Drivers

      * Add more support for EXA in the drivers; see [[ExaStatus|ExaStatus]] for a list. 
      * Add dualhead support to an unsupported chip (trident, mach64, s3virge, [[nv|https://bugs.freedesktop.org/show_bug.cgi?id=5190]], etc.) 
      * Add basic DRI support to an unsupported chip (trident, s3virge, glint, siliconmotion, etc.) 
      * Do some work on [[nouveau|http://nouveau.freedesktop.org/]] ; ideas include adding 3D support for more cards, better Xv/XvMC support through gallium, suspend/resume support, (see our [[TODO page|http://nouveau.freedesktop.org/wiki/ToDo]] for more ideas) 
      * More DRI-related ideas are visible on [[http://dri.freedesktop.org/wiki/GSoC_2008|http://dri.freedesktop.org/wiki/GSoC_2008]] 

### XQuartz (OSX)

Some of these might require changes to libXplugin (proprietary Apple code), but Apple is more than willing to provide the needed hooks.  Just join the [[xquartz-dev mailing list|http://trac.macosforge.org/projects/xquartz/wiki/MailingLists]] 

      * New extension support 
            * RandR 
            * Composite 
      * Fix OpenGL support 
            * Switch to XF86DRI instead of AppleDRI 
                  * Write a Mesa DRI driver that uses OpenGL.framework 
      * Top-Of-Tree syncing 
            * input model, keymapping needs to be reworked 
      * Copy/Paste proxying between OS-X and X11 
      * Eliminate the need for AppleWM extension to allow other WMs to work better 
      * Handle exposé / spaces events inside the X server rather than quartz-wm (so other WMs can be used) 
      * Compositing window manager to replace quartz-wm (once Composite is enabled) 

### Misc

* Add test cases for more extensions, especially newer ones like Render, Composite, etc. (possibly to XTS5; see [[TestGroup|TestGroup]] wiki) 
* Introspection extension to support tools like xscope 
      * Would allow querying for request names and structures in generic fashion 
      * Look at xcb-proto descriptions 
* Integrate NX in XCB or X protocol 
* Create GUI or textual tool for assisted editing of XKB configuration database. 
* Formally documenting XKB configuration syntax and configuration database structure. 

### DRI

      * GLX_EXT_texture_from_pixmap 
            * Update to latest spec 
            * More efficient implementation, ideally texturing directly from offscreen pixmaps 
      * Integrate properly with Composite, in particular, render to redirected windows correctly 
      * Port new memory manager changes to drivers other than i915 
      * make the X server's Xsync extension use DRM vblank waits or signals (really a DRI/X cross project) 
            * rough patch is already available 
            * developer would get good exposure to server and DRM internals 
See also: [[ToDo|ToDo]], [[Releases/7.4|Releases/7.4]], [[DRI ideas list|http://dri.freedesktop.org/wiki/SummerOfCode]].