Hi Andre',

>> Ideally, for compatibility with existing older drivers I think the 
>> StretchBlit behavior should be the same as before.  Thus, if 
>the rects 
>> were 1:1 and if a driver obtains better performance from an 
>actual 1:1 
>> blit being performed by the driver rather than a scaled blit that 
>> behavior could still occur.
>
>The patch doesn't change behaviour of that.

I know, I was try to suggest that only StretchBlit would use the 
standard graphics driver blit for 1:1 rects, AND the 
BatchStretchBlit would use the new logic WITHOUT the special 
1:1 rect handling (yes, two real implementations the old 
dfb_gfxcard_stretchblit and a new dfb_gfxcard_batchstretchblit).

>> I know it will complicate the implementation, but I think the 
>> implementation of the dfb_gfxcard_batchstretchblit function should 
>> allow fully disjointed GPU/CPU scaled blit operations [...] 
>It appears 
>> that your implementation will allow the fallback to CPU, but 
>then does 
>> not return to GPU operations.
>
>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.  
:)

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

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

Best Regards,
Timothy

--

Timothy Strelchun
CE Software Engineering
Digital Home Group
Intel Corporation
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to