Attached is a patch demonstrating a new API function I'd like to see added
to libva-glx. This function vaCopySubSurfaceGLX allows copying a particular
source rect from the surface instead of the whole surface.

Although I don't have any particular use for it, I could also potentially
see a need for a function that takes a destination rect as well which would
make it even more aligned with vaPutSurface.

I guess the other question regarding my patch is should we just
use vaCopySubSurfaceGLX_impl_libva if not implemented by the driver? Right
now its just following the current code path so if vaCopySurfaceGLX is
implemented by the driver then vaCopySubSurfaceGLX will return not
implemented.

Background Info:
I work on an application that can play several video streams at once. When
displaying 16 streams at 1080p 30fps we're not able to display at full
framerate because vaCopySurfaceGLX takes about 3.2ms on average to
complete. However, displaying 16 streams at once obviously we can't display
them all at full size so really we can resize to the destination size to
save time in the texture from pixmap process which reduced the time down to
about 0.4ms.

Attachment: vaCopySubSurfaceGLX.patch
Description: Binary data

_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to