On 12/16/2010 06:32 AM, Strelchun, Timothy wrote:
BatchStretchBlit() operates similar to BatchBlit(), which has
the same limitation. Such an optimisation could be done as a
separate step.

Okay, I didn't review the existing BatchBlit implementation and
didn't realize it was implemented in the same manner.  I think
the same recommendation should be applied to BatchBlit also.
:)

Even dfb_gfxcard_fill_rectangles() does not go back to hardware
once it fell back to software...

Unless a rectangle is too large to fit into a hardware's
limitations, why do you think switching between CPU/GPU would
be something that happens regularly?

Well fallbacks have been a viable way to handle odd cases like
the one you mentioned, or if there's a precision issue when a
dest rect is not fully inside a dest surface's area.  The
frequency of specifying a configuration a graphic driver might
not handle well is highly dependent on end user content and
scenario driven, not too mention how skilled a developers is,
or how much time a developer has to perform performance
optimizations, or even have good knowledge of DFB or the DFB
app that is being ported.  These considerations lead me to
think it ideal to make the best performance as automated as
possible.

That's true. I just had an application that was drawing with
alpha of zero (SrcOver), which is not discarded by DirectFB.

Another thing to consider is to add a DFXL_BATCHSTRETCHBLIT
flag for the driver to report support for it.  If not
supported, the DFB core software should emulate by just
calling standard stretch sblit iteratively.

This is how both, BatchStretchBlit() and BatchBlit() work. Why
is an extra flag needed for BatchStretchBlit()?

The reason I mentioned an extra flag for BatchStretchBlit was
related to my earlier idea of only having the previous 1:1 rect
behavior handling present in the non-batch implementation/code
path of StretchBlit.  It would simply allow a graphics driver
to indicate if it needs the 1:1 rects specified in a
BatchStretchBlit to be handled by the standard 1:1 Blit code
path.

I'd prefer to have some driver flag like CCF_STRETCHBLIT_AS_GOOD_AS_BLIT :)

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

Reply via email to