Mittwoch, 14. Mai 2008

Schedule, Design descisions

Maybe you know that my proposal at "OpenJDK Community Innovators' Challenge" has been accepted quite some time ago. So after all why I am so late ... where are the results?

For now I worked on understanding the XRender API, understanding how they match with Java2D - and how I could start. I hacked and played with the existing Java2D pipeline and wrote several samples in C emulating the behaviour required later by the pipeline and as usual were nerving the Xorg and Java2D developers with neverending questions.

Well I have to admit I am a bit late when it comes to my planned schedule, caused by project-internal and external factor, so instead if writing thousands of words why I am so late ... I'll simply write a short list:

* Maths2 exam
* Laptop died
* Had quite a hard time understanding the existing code
* Design desisions and validation


So, although the first three sound quite boring, there's something to write about "Design desisions".
The proposal itself proposed a STR (single-threaded-rendering) based design which buffers commands from multiple threads and interprets those rendering-commands using a single thread - however after some benchmarking I found that the classic Java->JNI->C design was as fast as the STR-Design but a lot less complex and less code.

Furthermore a lot of code I expected to belong to "AWT" is also contained in "2D", so writing a completly new pipeline from scratch would either mean a lot of duplicated code or a lot of work in the existing codebase to make it more shareable.

I have not found the final design for now, but as far as I can tell it most probably will not be STR based.
For the beginning I will play and extend the existing pipeline, and if I find design problems which make it hard to accalerate some operations I will think how the existing design could be adopted to fit this better.

More information about the challenge:
http://openjdk.java.net/challenge/
http://mail.openjdk.java.net/pipermail/challenge-discuss/2008-March/000054.html

Keine Kommentare: