Comment 57 for bug 330460

Revision history for this message
In , Chris Wilson (ickle) wrote :

Step 1 is to avoid the fallback for large sources:

commit a7b800513fcc94e063dfd68d2f63b6bab7fae47d
Author: Chris Wilson <email address hidden>
Date: Wed Apr 14 21:14:34 2010 +0100

    uxa: Extract sub-region from in-memory buffers.

    If the buffer is too large or not suitable for a GPU operation, we
    currently fallback and perform the composite on the CPU. An alternative
    is too extract the small region out of the source (as usually the
    sample extents are much smaller than the actual surface size) and try
    the composite with the new surface.

    The effect is particularly noticeable on pathological websites that use
    very large background images. For example, http://www.woodtv.com/ uses a
    1299x15000 pattern that is obscured by another opaque pattern.

    Signed-off-by: Chris Wilson <email address hidden>

commit 848ab66384508c3ad3e5fb4884e4527f3ebd3bde
Author: Chris Wilson <email address hidden>
Date: Sat May 8 18:36:55 2010 +0100

    uxa: Transform composites with a simple translation into a blit

    We can also convert a composite with an integer translation into a
    blit, so long as the sample extents remains within the source.

    Signed-off-by: Chris Wilson <email address hidden>

Step 2 is a kernel patch to avoid the pathological eviction behaviour.