After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 747946 - vaapi: remove VA display cache
vaapi: remove VA display cache
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
unspecified
Other Linux
: Normal major
: 1.13.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
P1
Depends on:
Blocks: 754820 758397 766704
 
 
Reported: 2015-04-15 19:34 UTC by Olivier Crête
Modified: 2017-07-26 13:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
display: WIP: don't cache the created display (984 bytes, patch)
2015-11-11 11:30 UTC, Víctor Manuel Jáquez Leal
needs-work Details | Review
libs: display: [WIP] remove cache (29.45 KB, patch)
2017-07-04 11:56 UTC, Víctor Manuel Jáquez Leal
none Details | Review
libs: display: [WIP] remove cache (30.26 KB, patch)
2017-07-04 15:16 UTC, Víctor Manuel Jáquez Leal
none Details | Review
libs: display: remove cache (30.37 KB, patch)
2017-07-26 12:24 UTC, Víctor Manuel Jáquez Leal
committed Details | Review

Description Olivier Crête 2015-04-15 19:34:38 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.
Comment 1 Víctor Manuel Jáquez Leal 2015-11-11 11:30:51 UTC
Created attachment 315253 [details] [review]
display: WIP: don't cache the created display
Comment 2 Víctor Manuel Jáquez Leal 2015-11-11 11:35:02 UTC
(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 3 Víctor Manuel Jáquez Leal 2015-11-11 17:02:10 UTC
Comment on attachment 315253 [details] [review]
display: WIP: don't cache the created display

This is a work-in-progress.
Comment 4 sreerenj 2016-03-24 16:56:21 UTC
Moving to Product:GStreamer, Component:gstreamer-vaapi
Comment 5 Víctor Manuel Jáquez Leal 2017-07-04 11:56:22 UTC
Created attachment 354872 [details] [review]
libs: display: [WIP] remove cache
Comment 6 Víctor Manuel Jáquez Leal 2017-07-04 15:16:59 UTC
Created attachment 354879 [details] [review]
libs: display: [WIP] remove cache
Comment 7 Víctor Manuel Jáquez Leal 2017-07-26 12:24:47 UTC
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.
Comment 8 Víctor Manuel Jáquez Leal 2017-07-26 13:32:28 UTC
Attachment 356416 [details] pushed as ec3e10f - libs: display: remove cache