summaryrefslogtreecommitdiffstats
path: root/video/out
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@cloudera.com>2019-08-04 09:23:45 +0800
committersfan5 <sfan5@live.de>2019-08-07 10:51:43 +0200
commit639ee55df7cc1ecf7ea5dcfa7ecc5551b6b7312d (patch)
treedb79cdd2cea354a8b003c66f3635451d61ec0e9f /video/out
parent69c93b6f0e669780cb1883d21d818ee14a590b8e (diff)
downloadmpv-639ee55df7cc1ecf7ea5dcfa7ecc5551b6b7312d.tar.bz2
mpv-639ee55df7cc1ecf7ea5dcfa7ecc5551b6b7312d.tar.xz
vo_gpu: hwdec_vaapi: Synchronise after exporting VA surface
This is documented as required (although we did not do it in the old GL codepath, with no visible problems) and I have seen transient artifacts after seeking which _appear_ to have gone away after introducing this.
Diffstat (limited to 'video/out')
-rw-r--r--video/out/hwdec/hwdec_vaapi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/video/out/hwdec/hwdec_vaapi.c b/video/out/hwdec/hwdec_vaapi.c
index 5bb5d81614..70fe9731e3 100644
--- a/video/out/hwdec/hwdec_vaapi.c
+++ b/video/out/hwdec/hwdec_vaapi.c
@@ -423,6 +423,9 @@ static int mapper_map(struct ra_hwdec_mapper *mapper)
p->esh_not_implemented = true;
goto esh_failed;
}
+ vaSyncSurface(display, va_surface_id(mapper->src));
+ // No need to error out if sync fails, but good to know if it did.
+ CHECK_VA_STATUS(mapper, "vaSyncSurface()");
p->surface_acquired = true;
#if HAVE_GL