<div dir="ltr"><span style="font-size:12.8000001907349px">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.</span><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">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.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">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.<br><div><br></div><div>Background Info:</div><div>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.</div></div></div>