Summer of Code 2011 ideas

Charles Davis cdavis at
Sun Mar 27 18:53:40 CDT 2011


I intend to participate in the Google Summer of Code (again), so I'd
like to bounce some ideas off of you guys again. (I don't know why; I'll
probably end up doing an extension of last year's project that I did for
LLVM. But just in case...) I know that students are supposed to start
submitting their proposals tomorrow, but better late than never, I
guess. Anyway, here are my ideas (in no particular order):

1. Quartz Driver. I know you guys rejected this last year, but it looks
like AJ's been doing some work refactoring the driver interface (at
least, the GDI driver interface) lately. I also have some patches to
isolate the rest of Wine from winex11. Since the driver itself is so
huge, I'll probably end up only doing a piece of it (just enough to run
some simple programs like Notepad or Minesweeper). This still depends on
my (as yet, unfinished) Deobjectivizer tool so I don't have to code the
driver in Objective-C (or resort to Carbon, which Apple seems intent on
exorcising from Mac OS X).
2. D3D10 support. Here's an idea that isn't tied to Mac OS X. In Wine,
D3D10 support is still in the embryonic stage (i.e. lots of stubs,
anything interesting doesn't work quite right). It looks like Henri
wants to wait until he finishes exorcising COM from WineD3D to finish
implementing D3D10 (probably because COM was too much of a burden for
what D3D10 needed from WineD3D, judging from which methods are stubs),
so if you want to wait, that's fine. If I do take this on, my goal will
probably be to get the game "Civilization V" working (at least,
partially) in D3D10 mode, because that's the only D3D10 game I happen to
own! (If it already works, and I don't know if it does because I haven't
gotten around to installing and testing it, then I'll try to make it
work better.)
3. Message-mode pipes. I think we can use the sendmsg(2) and recvmsg(2)
syscalls to implement this on top of Unix-domain sockets. Then again, I
suspect that this was one of the first things AJ thought of--and he
hasn't been able to figure out how to do it yet! I have some experience
writing Mac OS X kernel extensions (I wrote the SCSI kexts that Wine on
Mac uses), and even a little experience writing Linux modules, so that
might help with that. I would like to avoid a kernel module, if
possible, though. (It's just one more thing that users have to install
to make the system work...)

What do you think?


More information about the wine-devel mailing list