diff options
Diffstat (limited to 'meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch')
-rw-r--r-- | meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch b/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch new file mode 100644 index 0000000000..ff4fcc292a --- /dev/null +++ b/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch @@ -0,0 +1,53 @@ +From ef60a76e2a21b7649632dcf71d125039604a56b5 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 18 Jun 2023 10:42:19 -0700 +Subject: [PATCH] screencast: Fix build with older mesa + +gbm_bo_create_with_modifiers2() is quite new and there are still distros +that ship 21.2 and older. e.g. powerVR mesa implementation + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/screencast/pipewire_screencast.c | 8 ++++++-- + src/screencast/screencast_common.c | 4 ++-- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/src/screencast/pipewire_screencast.c b/src/screencast/pipewire_screencast.c +index 0611fd5..7d66810 100644 +--- a/src/screencast/pipewire_screencast.c ++++ b/src/screencast/pipewire_screencast.c +@@ -234,9 +234,13 @@ static void pwr_handle_stream_param_changed(void *data, uint32_t id, + uint32_t n_params; + struct spa_pod_builder *builder[2] = {&b[0].b, &b[1].b}; + +- struct gbm_bo *bo = gbm_bo_create_with_modifiers2(cast->ctx->gbm, ++ struct gbm_bo *bo = gbm_bo_create_with_modifiers(cast->ctx->gbm, + cast->screencopy_frame_info[cast->buffer_type].width, cast->screencopy_frame_info[cast->buffer_type].height, +- cast->screencopy_frame_info[cast->buffer_type].format, modifiers, n_modifiers, flags); ++ cast->screencopy_frame_info[cast->buffer_type].format, modifiers, n_modifiers); ++ if(!bo) ++ bo = gbm_bo_create(cast->ctx->gbm, ++ cast->screencopy_frame_info[cast->buffer_type].width, cast->screencopy_frame_info[cast->buffer_type].height, ++ cast->screencopy_frame_info[cast->buffer_type].format, GBM_BO_USE_RENDERING); + if (bo) { + modifier = gbm_bo_get_modifier(bo); + gbm_bo_destroy(bo); +diff --git a/src/screencast/screencast_common.c b/src/screencast/screencast_common.c +index d6d13db..2e4fc18 100644 +--- a/src/screencast/screencast_common.c ++++ b/src/screencast/screencast_common.c +@@ -143,8 +143,8 @@ struct xdpw_buffer *xdpw_buffer_create(struct xdpw_screencast_instance *cast, + uint32_t flags = GBM_BO_USE_RENDERING; + if (cast->pwr_format.modifier != DRM_FORMAT_MOD_INVALID) { + uint64_t *modifiers = (uint64_t*)&cast->pwr_format.modifier; +- buffer->bo = gbm_bo_create_with_modifiers2(cast->ctx->gbm, frame_info->width, frame_info->height, +- frame_info->format, modifiers, 1, flags); ++ buffer->bo = gbm_bo_create_with_modifiers(cast->ctx->gbm, frame_info->width, frame_info->height, ++ frame_info->format, modifiers, 1); + } else { + if (cast->ctx->state->config->screencast_conf.force_mod_linear) { + flags |= GBM_BO_USE_LINEAR; +-- +2.41.0 + |