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.

> 
> > 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).

> 
> 
> 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"
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).

-- 
Claudio Ciccani
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://directfb.org


_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to