From 059e3dbbc00d3375103f6660b4c64d2a5840ca61 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 24 Nov 2025 21:26:02 +0100 Subject: [PATCH] pipewire video: check if has modifier --- include/pipewire_video.h | 1 + src/pipewire_video.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/pipewire_video.h b/include/pipewire_video.h index be2c623..8722d21 100644 --- a/include/pipewire_video.h +++ b/include/pipewire_video.h @@ -80,6 +80,7 @@ typedef struct { int server_version_sync; bool negotiated; bool damaged; + bool has_modifier; struct { bool visible; diff --git a/src/pipewire_video.c b/src/pipewire_video.c index 56832b5..2550525 100644 --- a/src/pipewire_video.c +++ b/src/pipewire_video.c @@ -280,7 +280,8 @@ static void on_param_changed_cb(void *user_data, uint32_t id, const struct spa_p self->format.info.raw.format, spa_debug_type_find_name(spa_type_video_format, self->format.info.raw.format)); - if(has_modifier) { + self->has_modifier = has_modifier; + if(self->has_modifier) { fprintf(stderr, "gsr info: pipewire: Modifier: 0x%" PRIx64 "\n", self->format.info.raw.modifier); } @@ -782,7 +783,7 @@ static EGLImage gsr_pipewire_video_create_egl_image_with_fallback(gsr_pipewire_v } EGLImage image = NULL; - if(self->no_modifiers_fallback) { + if(self->no_modifiers_fallback || !self->has_modifier) { image = gsr_pipewire_video_create_egl_image(self, fds, offsets, pitches, modifiers, false); } else { image = gsr_pipewire_video_create_egl_image(self, fds, offsets, pitches, modifiers, true);