mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-30 06:06:43 +00:00
xbmc: fix disable overlay renderer patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
338149fdb4
commit
840cc2f802
@ -0,0 +1,82 @@
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDOverlayRenderer.h xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDOverlayRenderer.h
|
||||
--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDOverlayRenderer.h 2011-03-08 02:49:16.000000000 +0100
|
||||
+++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDOverlayRenderer.h 2011-09-15 13:26:00.674107708 +0200
|
||||
@@ -72,6 +72,9 @@
|
||||
|
||||
static void Render(DVDVideoPicture* pPicture, CDVDOverlay* pOverlay, double pts)
|
||||
{
|
||||
+ if(pPicture->format != DVDVideoPicture::FMT_YUV420P)
|
||||
+ return;
|
||||
+
|
||||
DVDPictureRenderer p;
|
||||
|
||||
p.data[0] = pPicture->data[0];
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-03-08 02:49:17.000000000 +0100
|
||||
+++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:31:23.725399996 +0200
|
||||
@@ -793,33 +793,22 @@
|
||||
enum EOverlay
|
||||
{ OVERLAY_AUTO // select mode auto
|
||||
, OVERLAY_GPU // render osd using gpu
|
||||
- , OVERLAY_VID // render osd directly on video memory
|
||||
, OVERLAY_BUF // render osd on buffer
|
||||
} render = OVERLAY_AUTO;
|
||||
|
||||
- if(render == OVERLAY_AUTO)
|
||||
+ if(pSource->format == DVDVideoPicture::FMT_YUV420P)
|
||||
{
|
||||
- render = OVERLAY_GPU;
|
||||
-
|
||||
#ifdef _LINUX
|
||||
// for now use cpu for ssa overlays as it currently allocates and
|
||||
// frees textures for each frame this causes a hugh memory leak
|
||||
// on some mesa intel drivers
|
||||
- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) && pSource->format == DVDVideoPicture::FMT_YUV420P)
|
||||
- render = OVERLAY_VID;
|
||||
-#endif
|
||||
|
||||
- if(render == OVERLAY_VID)
|
||||
- {
|
||||
- if( m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||
- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||
- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||
- render = OVERLAY_BUF;
|
||||
- }
|
||||
- }
|
||||
+ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||
+ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||
+ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||
+ render = OVERLAY_BUF;
|
||||
+#endif
|
||||
|
||||
- if(pSource->format == DVDVideoPicture::FMT_YUV420P)
|
||||
- {
|
||||
if(render == OVERLAY_BUF)
|
||||
{
|
||||
// rendering spu overlay types directly on video memory costs a lot of processing power.
|
||||
@@ -848,6 +837,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ if(render == OVERLAY_AUTO)
|
||||
+ render = OVERLAY_GPU;
|
||||
+
|
||||
m_pOverlayContainer->Lock();
|
||||
|
||||
VecOverlays* pVecOverlays = m_pOverlayContainer->GetOverlays();
|
||||
@@ -871,13 +863,8 @@
|
||||
if (render == OVERLAY_GPU)
|
||||
g_renderManager.AddOverlay(pOverlay, pts2);
|
||||
|
||||
- if(pSource->format == DVDVideoPicture::FMT_YUV420P)
|
||||
- {
|
||||
- if (render == OVERLAY_BUF)
|
||||
- CDVDOverlayRenderer::Render(m_pTempOverlayPicture, pOverlay, pts2);
|
||||
- else if(render == OVERLAY_VID)
|
||||
- CDVDOverlayRenderer::Render(pDest, pOverlay, pts2);
|
||||
- }
|
||||
+ if (render == OVERLAY_BUF)
|
||||
+ CDVDOverlayRenderer::Render(m_pTempOverlayPicture, pOverlay, pts2);
|
||||
|
||||
}
|
||||
}
|
@ -1,48 +1,45 @@
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej xbmc-10.1-Dharma.patch1/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej
|
||||
--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ xbmc-10.1-Dharma.patch1/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej 2011-08-22 05:09:40.801478536 +0200
|
||||
@@ -0,0 +1,38 @@
|
||||
+--- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
++++ xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
+@@ -20,6 +20,7 @@
|
||||
+ */
|
||||
+
|
||||
+ #include "system.h"
|
||||
++#include "windowing/WindowingFactory.h"
|
||||
+ #include "settings/AdvancedSettings.h"
|
||||
+ #include "settings/GUISettings.h"
|
||||
+ #include "settings/Settings.h"
|
||||
+@@ -829,16 +830,17 @@
|
||||
+
|
||||
+ if(pSource->format == DVDVideoPicture::FMT_YUV420P)
|
||||
+ {
|
||||
+-#ifdef _LINUX
|
||||
+- // for now use cpu for ssa overlays as it currently allocates and
|
||||
+- // frees textures for each frame this causes a hugh memory leak
|
||||
+- // on some mesa intel drivers
|
||||
+-
|
||||
+- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||
+- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||
+- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||
+- render = OVERLAY_BUF;
|
||||
+-#endif
|
||||
++ if(g_Windowing.GetRenderQuirks() & RENDER_QUIRKS_MAJORMEMLEAK_OVERLAYRENDERER)
|
||||
++ {
|
||||
++ // for now use cpu for ssa overlays as it currently allocates and
|
||||
++ // frees textures for each frame this causes a hugh memory leak
|
||||
++ // on some mesa intel drivers
|
||||
++
|
||||
++ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||
++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||
++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||
++ render = OVERLAY_BUF;
|
||||
++ }
|
||||
+
|
||||
+ if(render == OVERLAY_BUF)
|
||||
+ {
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.cpp
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
||||
--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:59:35.016784668 +0200
|
||||
+++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:58:46.193138096 +0200
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
+#include "WindowingFactory.h"
|
||||
#include "AdvancedSettings.h"
|
||||
#include "GUISettings.h"
|
||||
#include "Settings.h"
|
||||
@@ -798,16 +799,17 @@
|
||||
|
||||
if(pSource->format == DVDVideoPicture::FMT_YUV420P)
|
||||
{
|
||||
-#ifdef _LINUX
|
||||
- // for now use cpu for ssa overlays as it currently allocates and
|
||||
- // frees textures for each frame this causes a hugh memory leak
|
||||
- // on some mesa intel drivers
|
||||
-
|
||||
- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||
- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||
- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||
- render = OVERLAY_BUF;
|
||||
-#endif
|
||||
+ if(g_Windowing.GetRenderQuirks() & RENDER_QUIRKS_MAJORMEMLEAK_OVERLAYRENDERER)
|
||||
+ {
|
||||
+ // for now use cpu for ssa overlays as it currently allocates and
|
||||
+ // frees textures for each frame this causes a hugh memory leak
|
||||
+ // on some mesa intel drivers
|
||||
+
|
||||
+ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||
+ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||
+ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||
+ render = OVERLAY_BUF;
|
||||
+ }
|
||||
|
||||
if(render == OVERLAY_BUF)
|
||||
{
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch/xbmc/RenderSystem.cpp
|
||||
--- xbmc-10.1-Dharma/xbmc/RenderSystem.cpp 2011-03-08 02:49:14.000000000 +0100
|
||||
+++ xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.cpp 2011-08-22 05:10:30.353131282 +0200
|
||||
+++ xbmc-10.1-Dharma.patch/xbmc/RenderSystem.cpp 2011-09-15 13:56:10.592078024 +0200
|
||||
@@ -29,6 +29,7 @@
|
||||
m_RenderVersionMajor = 0;
|
||||
m_RenderVersionMinor = 0;
|
||||
@ -51,9 +48,9 @@ diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch1/xbmc/R
|
||||
m_minDXTPitch = 0;
|
||||
}
|
||||
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp xbmc-10.1-Dharma.patch1/xbmc/RenderSystemGL.cpp
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp xbmc-10.1-Dharma.patch/xbmc/RenderSystemGL.cpp
|
||||
--- xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp 2011-03-08 02:49:14.000000000 +0100
|
||||
+++ xbmc-10.1-Dharma.patch1/xbmc/RenderSystemGL.cpp 2011-08-22 05:10:58.079496562 +0200
|
||||
+++ xbmc-10.1-Dharma.patch/xbmc/RenderSystemGL.cpp 2011-09-15 13:56:40.948479861 +0200
|
||||
@@ -65,8 +65,22 @@
|
||||
}
|
||||
}
|
||||
@ -78,9 +75,9 @@ diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp xbmc-10.1-Dharma.patch1/xbmc
|
||||
if(m_RenderRenderer.Find("Poulsbo") >= 0)
|
||||
m_renderCaps &= ~RENDER_CAPS_DXT_NPOT;
|
||||
}
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.h xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.h
|
||||
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.h xbmc-10.1-Dharma.patch/xbmc/RenderSystem.h
|
||||
--- xbmc-10.1-Dharma/xbmc/RenderSystem.h 2011-03-08 02:49:14.000000000 +0100
|
||||
+++ xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.h 2011-08-22 05:10:38.495238548 +0200
|
||||
+++ xbmc-10.1-Dharma.patch/xbmc/RenderSystem.h 2011-09-15 13:56:23.653250913 +0200
|
||||
@@ -52,6 +52,11 @@
|
||||
RENDER_CAPS_DXT_NPOT = (1 << 2)
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user