Hello I'm trying to speed up some common memory routines, such as frame copy and conversion.
Like NV12->YV12 and YV12->YV12. While this question isn't directly related to the use of libva per say, the only place I will make use of it is in relation to the image returned by libva. And I'm guessing that if anyone knows, it will be someone here! The image returned using vaDeriveImage is obvious USWC memory (Uncacheable Speculative Write Combining) Implementing the tricks describe there: https://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers we do see a massive speed increase over the more simple use of memcpy. However, those improvements aren't seen when using vaGetImage, and the use of 4kB memory buffer and movntdqa, yields a severe performance hit: almost 3 times as slow as using no buffer. So that begs the question: is there a way to detect why type of memory we are getting from libva, or any other routine for that matter (so this method could also be used with DXVA) That way, depending on the type of memory we're working on, we could select on the fly the best algorithm to use. I don't want to assume that vaGetImage will always yield a buffer mapped to a particular type of memory, as this is likely to change in the future, or vary depending on the drivers used. Is that possible? Thank you in advance Jean-Yves _______________________________________________ Libva mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libva
