Claudio Ciccani wrote: > Il giorno gio, 27/03/2008 alle 01.19 +0100, Denis Oliver Kropp ha > scritto: >> Claudio Ciccani wrote: >>> Some weeks ago I announced to the mailing list that I was working on a >>> DirectFB based OpenVG implementation (i.e. DirectVG). >>> Well, now it's time to prove that it was not a bullshit and that I made >>> some progresses in the meanwhile. >> Yep ;) >> >>> Below is a screenshot of the well known tiger sample rendered by DirectVG: >>> http://img160.imagevenue.com/img.php?image=63785_DirectVG3_Tiger_122_898lo.jpg >> It looks pretty good already! Where's the code :) > > Will upload soon.
Great. I'm extremely busy with Water at the moment, time for plugging in some modules for "translation" of elements or "interpretation" of unsupported rendering (attributes) :) >>> As you can see, there is still some work to do on the strokes >>> (stroke styles are completely missing and so is line scaling), but the hard >>> part is done. >>> >>> Regarding the performance, well... at this stage it simply sucks! >>> >>> Testing Hardware: ATI Radeon 9250 >>> Testing Resolution: 612x622 >>> Runtime Speed: ~ 11 fps >> Not too bad. CPU bottleneck still, I guess... >> >> How many thousand(?) calls to the IDirectFBSurface API is this doing? >> >> Or do you use dfb_state_*() and dfb_gfxcard_*() which I am at the moment in >> the public Water version? > > I'm using the current standard API (no internal calls). With Linux Kernel Fusion? >> I'm thinking about a more open intermediate solution that might keep a few >> convenience functions for blitting >> and filling and should replace all dfb_gfxcard_fill/draw/state*() cruft, >> keeping the dfb_state_*() functions, >> but allowing acquisition for more than a few driver calls. For example >> changing color etc. does not need a >> complete release/acquire including all locks. Just call the driver's >> SetState() and Fill/Draw/Blit() as they >> are needed, during one acquisition, until hitting a software fallback at >> least. >> >> >> Please check your system load and/or test with single application core, >> which does not have the system call >> impact per (macro) graphics operation. BTW, Fusion could eliminate most of >> the system call overhead like futexes do. >> > > I think that actually the lack of performance is more related to the > frequent change of the destination surface than to the "locking" Should destination surface changes cause so much delay? Please use "time tiger" :) > overhead. For example, the code always assume concave/intersecting > polygons and this actually requires rendering to a temporary surface > (this is because, to save a lot of floating-point math, I implement > EvenOdd filling by XORing instead of tesselating the path into convex > polygons). Yes, that makes sense :) -- Best regards, Denis Oliver Kropp .------------------------------------------. | DirectFB - Hardware accelerated graphics | | http://www.directfb.org/ | "------------------------------------------" _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev