GNOME Bugzilla – Bug 747946
vaapi: remove VA display cache
Last modified: 2017-07-26 13:34:36 UTC
Using multiple "vaapidecode ! vaapipostproc ! vaapisink" in the same process has measurably lower performance than in multiple processes. The problem is that each display has a big lock object which prevents parallelism. The easiest solution is to use separate display object for each sub-pipepine. This works quite well, but I had to display the whole display caching mechanism, otherwise it doesn't seem to work. GstContext should provide most expected benefits of the cache, which I assume predates it.
Created attachment 315253 [details] [review] display: WIP: don't cache the created display
(In reply to Víctor Manuel Jáquez Leal from comment #1) > Created attachment 315253 [details] [review] [review] > display: WIP: don't cache the created display Just attached a simple hack to avoid the display cache. Right now, with the revamped context sharing (bug 757598) it works, but we end with two or more displays opened, thought at the end only one is used. Currently I'm leaned to keep the display cache, but we need to offer a new API to created a new VA Display skipping the cache mechanism.
Comment on attachment 315253 [details] [review] display: WIP: don't cache the created display This is a work-in-progress.
Moving to Product:GStreamer, Component:gstreamer-vaapi
Created attachment 354872 [details] [review] libs: display: [WIP] remove cache
Created attachment 354879 [details] [review] libs: display: [WIP] remove cache
Created attachment 356416 [details] [review] libs: display: remove cache Remove a bunch of code that handles the VADisplay cache, since the context sharing should be doing this correctly.
Attachment 356416 [details] pushed as ec3e10f - libs: display: remove cache