From a785d8282b4d4e785fe9be06c97a0da69ef9e4f8 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 25 Jun 2021 12:04:03 +0200 Subject: [PATCH] kodi (RPi4): drop patch to hide pixel-wrap issue This issue should finally be resolved in latest RPi kernel Signed-off-by: Matthias Reichl --- ...1-hack-try-to-hide-pixel-wrap-issues.patch | 90 ------------------- 1 file changed, 90 deletions(-) delete mode 100644 projects/RPi/devices/RPi4/patches/kodi/0001-hack-try-to-hide-pixel-wrap-issues.patch diff --git a/projects/RPi/devices/RPi4/patches/kodi/0001-hack-try-to-hide-pixel-wrap-issues.patch b/projects/RPi/devices/RPi4/patches/kodi/0001-hack-try-to-hide-pixel-wrap-issues.patch deleted file mode 100644 index bd7cbeca4c..0000000000 --- a/projects/RPi/devices/RPi4/patches/kodi/0001-hack-try-to-hide-pixel-wrap-issues.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 7220f2de9c3f29f4bd005ef442a656047a69561b Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 8 Apr 2020 11:19:22 +0100 -Subject: [PATCH] pi4: hack: Try to hide pixel wrap issue - ---- - .../HwDecRender/VideoLayerBridgeDRMPRIME.cpp | 22 ++++++++++++++----- - xbmc/windowing/gbm/drm/DRMAtomic.cpp | 10 +++++++-- - 2 files changed, 25 insertions(+), 7 deletions(-) - -diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VideoLayerBridgeDRMPRIME.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VideoLayerBridgeDRMPRIME.cpp -index c78636b680..ed737820f1 100644 ---- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VideoLayerBridgeDRMPRIME.cpp -+++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VideoLayerBridgeDRMPRIME.cpp -@@ -11,6 +11,7 @@ - #include "cores/VideoPlayer/Buffers/VideoBufferDRMPRIME.h" - #include "utils/log.h" - #include "windowing/gbm/drm/DRMAtomic.h" -+#include "settings/DisplaySettings.h" - - #include - -@@ -264,14 +265,25 @@ void CVideoLayerBridgeDRMPRIME::SetVideoPlane(CVideoBufferDRMPRIME* buffer, cons - auto plane = m_DRM->GetVideoPlane(); - m_DRM->AddProperty(plane, "FB_ID", buffer->m_fb_id); - m_DRM->AddProperty(plane, "CRTC_ID", m_DRM->GetCrtc()->GetCrtcId()); -+ -+ uint32_t srcw = buffer->GetWidth(); -+ uint32_t dstw = static_cast(destRect.Width()); -+ int32_t dstx = static_cast(destRect.x1); -+ double scalex = (double)srcw / (double)dstw; -+ RESOLUTION_INFO &res = CDisplaySettings::GetInstance().GetCurrentResolutionInfo(); -+ if (dstw > 1 && dstx + dstw > (uint32_t)res.iScreenWidth - 1) -+ { -+ dstw -= 1; -+ srcw = (uint32_t)(srcw - 1.0 * scalex + 0.5); -+ } - m_DRM->AddProperty(plane, "SRC_X", 0); - m_DRM->AddProperty(plane, "SRC_Y", 0); -- m_DRM->AddProperty(plane, "SRC_W", buffer->GetWidth() << 16); -+ m_DRM->AddProperty(plane, "SRC_W", srcw << 16); - m_DRM->AddProperty(plane, "SRC_H", buffer->GetHeight() << 16); -- m_DRM->AddProperty(plane, "CRTC_X", static_cast(destRect.x1) & ~1); -- m_DRM->AddProperty(plane, "CRTC_Y", static_cast(destRect.y1) & ~1); -- m_DRM->AddProperty(plane, "CRTC_W", (static_cast(destRect.Width()) + 1) & ~1); -- m_DRM->AddProperty(plane, "CRTC_H", (static_cast(destRect.Height()) + 1) & ~1); -+ m_DRM->AddProperty(plane, "CRTC_X", dstx); -+ m_DRM->AddProperty(plane, "CRTC_Y", static_cast(destRect.y1)); -+ m_DRM->AddProperty(plane, "CRTC_W", dstw); -+ m_DRM->AddProperty(plane, "CRTC_H", static_cast(destRect.Height())); - } - - void CVideoLayerBridgeDRMPRIME::UpdateVideoPlane() -diff --git a/xbmc/windowing/gbm/drm/DRMAtomic.cpp b/xbmc/windowing/gbm/drm/DRMAtomic.cpp -index 5d61a699d4..de02d84758 100644 ---- a/xbmc/windowing/gbm/drm/DRMAtomic.cpp -+++ b/xbmc/windowing/gbm/drm/DRMAtomic.cpp -@@ -92,13 +92,19 @@ void CDRMAtomic::DrmAtomicCommit(int fb_id, int flags, bool rendered, bool video - return; - } - -+ uint32_t srcw = m_width; -+ uint32_t dstw = m_mode->hdisplay; -+ double scalex = (double)srcw / (double)dstw; -+ dstw -= 1; -+ srcw = (uint32_t)(srcw - 1.0 * scalex + 0.5); -+ - if (rendered) - { - AddProperty(m_gui_plane, "FB_ID", fb_id); - AddProperty(m_gui_plane, "CRTC_ID", m_crtc->GetCrtcId()); - AddProperty(m_gui_plane, "SRC_X", 0); - AddProperty(m_gui_plane, "SRC_Y", 0); -- AddProperty(m_gui_plane, "SRC_W", m_width << 16); -+ AddProperty(m_gui_plane, "SRC_W", srcw << 16); - AddProperty(m_gui_plane, "SRC_H", m_height << 16); - AddProperty(m_gui_plane, "CRTC_X", 0); - AddProperty(m_gui_plane, "CRTC_Y", 0); -@@ -109,7 +115,7 @@ void CDRMAtomic::DrmAtomicCommit(int fb_id, int flags, bool rendered, bool video - // } - // else - { -- AddProperty(m_gui_plane, "CRTC_W", m_mode->hdisplay); -+ AddProperty(m_gui_plane, "CRTC_W", dstw); - AddProperty(m_gui_plane, "CRTC_H", m_mode->vdisplay); - } - --- -2.20.1 -