[haiku-development] graphics server

  • From: James Taylor <james.dewey.taylor@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 2 Dec 2011 22:16:34 -0600

Hi all,

I'm current working on a project I call Drafter which is meant to act
as a graphics server for Haiku. I know some of you won't like the idea
of a separate graphics server, but it's important I believe. There
currently is no support in Haiku for multiple heads nor compositing
and a framework doesn't even exist for hardware acceleration. Drafter
is meant to resolve all of these issues, though Drafter itself is not
a solution to the hardware acceleration problem.

Why create a separate server though? Moving as much graphics code out
of the app_server as possible means when graphics code crashes, the
app_server is safe and in fact the graphics server can be dynamically
restarted. The initial reason (as I understand) to separate the
accelerants and drivers was such that unstable code in the accelerant
wouldn't crash the system. Except that accelerants are app_server
add-ons and the app_server is a critical system team. This means
unstable accelerants crash the whole system anyway. Moving the
accelerants out of the app_server creates stability in the system and
allows for dynamic recovery and fall-back to more reliable accelerants
if necessary (viz: software rendering or VESA).

Also, this provides a system which will likely be easier to port
gallium on top of, though there is some overlap in functionality.

For those interested feel free to check out our trac:
http://pulkomandy.lexinfo.fr/projects/haiku3daccel or join us in IRC
in the #drafter channel.

One important note however: The code does work and is testable, but if
you look at the code be forewarned it is likely a little messier than
you would prefer or expect. This does serve a purpose as some
individuals affiliated with the project are relatively new to
programming and code cleanup is an opportunity for them to get
involved with the code and learn and is in fact not indicative of my
ability to write clean code. If this project turns out to be nothing
else, it's at least a learning experience for all involved.

Questions / comments / suggestions / assistance is/are always welcome!

Cheers!
Duggan

Other related posts: