From 9f18d5fdfca1f4658f388cc25cac4a4867eb3003 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Tue, 11 Jul 2023 10:36:45 +0100 Subject: [PATCH] backends/drm: Mark DMA bufs as mirrored when exporting textures When streaming direct scan out we take the layers texture directly. When setting the contentTransform we discard the mirrorY transform that we know is set on DMA bufs. This results in recording being upside-down. --- src/backends/drm/drm_egl_layer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backends/drm/drm_egl_layer.cpp b/src/backends/drm/drm_egl_layer.cpp index 934269dfa3..57524871a3 100644 --- a/src/backends/drm/drm_egl_layer.cpp +++ b/src/backends/drm/drm_egl_layer.cpp @@ -83,7 +83,7 @@ std::shared_ptr EglGbmLayer::texture() const { if (m_scanoutBuffer) { const auto ret = m_surface.eglBackend()->importDmaBufAsTexture(*m_scanoutBuffer->buffer()->dmabufAttributes()); - ret->setContentTransform(drmToTextureRotation(m_pipeline)); + ret->setContentTransform(drmToTextureRotation(m_pipeline) | TextureTransform::MirrorY); return ret; } else { return m_surface.texture();