summaryrefslogtreecommitdiffstats
path: root/video/out/hwdec/hwdec_vaapi.c
diff options
context:
space:
mode:
authorAaron Boxer <boxerab@protonmail.com>2023-02-07 21:03:35 -0500
committerDudemanguy <random342@airmail.cc>2023-02-11 00:46:46 +0000
commit49fd6caa432a89b715670ccbabff9c2d14d975b0 (patch)
tree2990f71f1c8e68ed43bca9b26c70a0865684b28e /video/out/hwdec/hwdec_vaapi.c
parent8ba7b8f0d2ec838bac10ca011bd0065b2a3b454a (diff)
downloadmpv-49fd6caa432a89b715670ccbabff9c2d14d975b0.tar.bz2
mpv-49fd6caa432a89b715670ccbabff9c2d14d975b0.tar.xz
vo_dmabuf_wayland: reject hw formats not supported by compositor
Diffstat (limited to 'video/out/hwdec/hwdec_vaapi.c')
-rw-r--r--video/out/hwdec/hwdec_vaapi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/video/out/hwdec/hwdec_vaapi.c b/video/out/hwdec/hwdec_vaapi.c
index df5ad4a832..e5ea3b1289 100644
--- a/video/out/hwdec/hwdec_vaapi.c
+++ b/video/out/hwdec/hwdec_vaapi.c
@@ -259,10 +259,12 @@ static int mapper_map(struct ra_hwdec_mapper *mapper)
VADisplay *display = p_owner->display;
VADRMPRIMESurfaceDescriptor desc = {0};
+ uint32_t flags = p_owner->dmabuf_interop.composed_layers ?
+ VA_EXPORT_SURFACE_COMPOSED_LAYERS : VA_EXPORT_SURFACE_SEPARATE_LAYERS;
status = vaExportSurfaceHandle(display, va_surface_id(mapper->src),
VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2,
VA_EXPORT_SURFACE_READ_ONLY |
- VA_EXPORT_SURFACE_SEPARATE_LAYERS,
+ flags,
&desc);
if (!CHECK_VA_STATUS_LEVEL(mapper, "vaExportSurfaceHandle()",
p_owner->probing_formats ? MSGL_DEBUG : MSGL_ERR))
@@ -301,7 +303,7 @@ static int mapper_map(struct ra_hwdec_mapper *mapper)
// We can handle composed formats if the total number of planes is still
// equal the number of planes we expect. Complex formats with auxilliary
// planes cannot be supported.
- if (p->num_planes != num_returned_planes) {
+ if (p->num_planes != 0 && p->num_planes != num_returned_planes) {
mp_msg(mapper->log, p_owner->probing_formats ? MSGL_DEBUG : MSGL_ERR,
"Mapped surface with format '%s' has unexpected number of planes. "
"(%d layers and %d planes, but expected %d planes)\n",