mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 22:47:51 +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
|
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.rej 1970-01-01 01:00:00.000000000 +0100
|
--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:59:35.016784668 +0200
|
||||||
+++ xbmc-10.1-Dharma.patch1/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej 2011-08-22 05:09:40.801478536 +0200
|
+++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:58:46.193138096 +0200
|
||||||
@@ -0,0 +1,38 @@
|
@@ -20,6 +20,7 @@
|
||||||
+--- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
*/
|
||||||
++++ xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
|
|
||||||
+@@ -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
|
||||||
+
|
+
|
||||||
+ #include "system.h"
|
+ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
|
||||||
++#include "windowing/WindowingFactory.h"
|
+ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
|
||||||
+ #include "settings/AdvancedSettings.h"
|
+ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
|
||||||
+ #include "settings/GUISettings.h"
|
+ render = OVERLAY_BUF;
|
||||||
+ #include "settings/Settings.h"
|
+ }
|
||||||
+@@ -829,16 +830,17 @@
|
|
||||||
+
|
if(render == OVERLAY_BUF)
|
||||||
+ if(pSource->format == DVDVideoPicture::FMT_YUV420P)
|
{
|
||||||
+ {
|
diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch/xbmc/RenderSystem.cpp
|
||||||
+-#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
|
|
||||||
--- xbmc-10.1-Dharma/xbmc/RenderSystem.cpp 2011-03-08 02:49:14.000000000 +0100
|
--- 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 @@
|
@@ -29,6 +29,7 @@
|
||||||
m_RenderVersionMajor = 0;
|
m_RenderVersionMajor = 0;
|
||||||
m_RenderVersionMinor = 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;
|
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/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 @@
|
@@ -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)
|
if(m_RenderRenderer.Find("Poulsbo") >= 0)
|
||||||
m_renderCaps &= ~RENDER_CAPS_DXT_NPOT;
|
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/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 @@
|
@@ -52,6 +52,11 @@
|
||||||
RENDER_CAPS_DXT_NPOT = (1 << 2)
|
RENDER_CAPS_DXT_NPOT = (1 << 2)
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user