mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-next
Conflicts: packages/linux/meta
This commit is contained in:
commit
f6c2815af8
@ -1,3 +1,6 @@
|
||||
# set default language for buildsystem
|
||||
export LC_ALL=C
|
||||
|
||||
# determines PROJECT, if not forced by user
|
||||
# default is Generic
|
||||
if [ -z "$PROJECT" ]; then
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libjpeg-turbo"
|
||||
PKG_VERSION="1.2.0"
|
||||
PKG_VERSION="1.2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -21,7 +21,7 @@
|
||||
PKG_NAME="linux"
|
||||
PKG_VERSION="3.5"
|
||||
if [ "$LINUX" = "3.2" ]; then
|
||||
PKG_VERSION="3.2.23"
|
||||
PKG_VERSION="3.2.24"
|
||||
fi
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
|
@ -0,0 +1,99 @@
|
||||
From 268d6a01b6a7dea0d53b042c246c95e87f4fc3d8 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 26 Jul 2012 15:43:24 +0200
|
||||
Subject: [PATCH] move deleting gl textures to TextureManager, fixes asic hang
|
||||
on AMD
|
||||
|
||||
---
|
||||
xbmc/Application.cpp | 4 ++--
|
||||
xbmc/guilib/GUIFontTTFGL.cpp | 3 ++-
|
||||
xbmc/guilib/TextureManager.cpp | 13 +++++++++++++
|
||||
xbmc/guilib/TextureManager.h | 2 ++
|
||||
4 files changed, 19 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
|
||||
index 71d8a4e..b66459a 100644
|
||||
--- a/xbmc/Application.cpp
|
||||
+++ b/xbmc/Application.cpp
|
||||
@@ -2231,8 +2231,6 @@ void CApplication::Render()
|
||||
|
||||
g_Windowing.EndRender();
|
||||
|
||||
- g_TextureManager.FreeUnusedTextures();
|
||||
-
|
||||
// reset our info cache - we do this at the end of Render so that it is
|
||||
// fresh for the next process(), or after a windowclose animation (where process()
|
||||
// isn't called)
|
||||
@@ -2270,6 +2268,8 @@ void CApplication::Render()
|
||||
}
|
||||
CTimeUtils::UpdateFrameTime(flip);
|
||||
|
||||
+ g_TextureManager.FreeUnusedTextures();
|
||||
+
|
||||
g_renderManager.UpdateResolution();
|
||||
g_renderManager.ManageCaptures();
|
||||
}
|
||||
diff --git a/xbmc/guilib/GUIFontTTFGL.cpp b/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
index 87e07ca..6c93eb8 100644
|
||||
--- a/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
+++ b/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "GUIFontTTFGL.h"
|
||||
#include "GUIFontManager.h"
|
||||
#include "Texture.h"
|
||||
+#include "TextureManager.h"
|
||||
#include "GraphicContext.h"
|
||||
#include "gui3d.h"
|
||||
#include "utils/log.h"
|
||||
@@ -234,7 +235,7 @@ void CGUIFontTTFGL::DeleteHardwareTexture()
|
||||
if (m_bTextureLoaded)
|
||||
{
|
||||
if (glIsTexture(m_nTexture))
|
||||
- glDeleteTextures(1, (GLuint*) &m_nTexture);
|
||||
+ g_TextureManager.ReleaseHwTexture(m_nTexture);
|
||||
m_bTextureLoaded = false;
|
||||
}
|
||||
}
|
||||
diff --git a/xbmc/guilib/TextureManager.cpp b/xbmc/guilib/TextureManager.cpp
|
||||
index 9ef7889..ccd0d03 100644
|
||||
--- a/xbmc/guilib/TextureManager.cpp
|
||||
+++ b/xbmc/guilib/TextureManager.cpp
|
||||
@@ -457,6 +457,19 @@ void CGUITextureManager::FreeUnusedTextures()
|
||||
for (ivecTextures i = m_unusedTextures.begin(); i != m_unusedTextures.end(); ++i)
|
||||
delete *i;
|
||||
m_unusedTextures.clear();
|
||||
+
|
||||
+#if defined(HAS_GL) || defined(HAS_GLES)
|
||||
+ for (unsigned int i = 0; i < m_unusedHwTextures.size(); ++i)
|
||||
+ {
|
||||
+ glDeleteTextures(1, (GLuint*) &m_unusedHwTextures[i]);
|
||||
+ }
|
||||
+#endif
|
||||
+ m_unusedHwTextures.clear();
|
||||
+}
|
||||
+
|
||||
+void CGUITextureManager::ReleaseHwTexture(unsigned int texture)
|
||||
+{
|
||||
+ m_unusedHwTextures.push_back(texture);
|
||||
}
|
||||
|
||||
void CGUITextureManager::Cleanup()
|
||||
diff --git a/xbmc/guilib/TextureManager.h b/xbmc/guilib/TextureManager.h
|
||||
index dd47f48..001f470 100644
|
||||
--- a/xbmc/guilib/TextureManager.h
|
||||
+++ b/xbmc/guilib/TextureManager.h
|
||||
@@ -124,9 +124,11 @@ class CGUITextureManager
|
||||
void RemoveTexturePath(const CStdString &texturePath); ///< Remove a path from the paths to check when loading media
|
||||
|
||||
void FreeUnusedTextures(); ///< Free textures (called from app thread only)
|
||||
+ void ReleaseHwTexture(unsigned int texture);
|
||||
protected:
|
||||
std::vector<CTextureMap*> m_vecTextures;
|
||||
std::vector<CTextureMap*> m_unusedTextures;
|
||||
+ std::vector<unsigned int> m_unusedHwTextures;
|
||||
typedef std::vector<CTextureMap*>::iterator ivecTextures;
|
||||
// we have 2 texture bundles (one for the base textures, one for the theme)
|
||||
CTextureBundle m_TexBundle[2];
|
||||
--
|
||||
1.7.10
|
||||
|
@ -0,0 +1,99 @@
|
||||
From 268d6a01b6a7dea0d53b042c246c95e87f4fc3d8 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 26 Jul 2012 15:43:24 +0200
|
||||
Subject: [PATCH] move deleting gl textures to TextureManager, fixes asic hang
|
||||
on AMD
|
||||
|
||||
---
|
||||
xbmc/Application.cpp | 4 ++--
|
||||
xbmc/guilib/GUIFontTTFGL.cpp | 3 ++-
|
||||
xbmc/guilib/TextureManager.cpp | 13 +++++++++++++
|
||||
xbmc/guilib/TextureManager.h | 2 ++
|
||||
4 files changed, 19 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
|
||||
index 71d8a4e..b66459a 100644
|
||||
--- a/xbmc/Application.cpp
|
||||
+++ b/xbmc/Application.cpp
|
||||
@@ -2231,8 +2231,6 @@ void CApplication::Render()
|
||||
|
||||
g_Windowing.EndRender();
|
||||
|
||||
- g_TextureManager.FreeUnusedTextures();
|
||||
-
|
||||
// reset our info cache - we do this at the end of Render so that it is
|
||||
// fresh for the next process(), or after a windowclose animation (where process()
|
||||
// isn't called)
|
||||
@@ -2270,6 +2268,8 @@ void CApplication::Render()
|
||||
}
|
||||
CTimeUtils::UpdateFrameTime(flip);
|
||||
|
||||
+ g_TextureManager.FreeUnusedTextures();
|
||||
+
|
||||
g_renderManager.UpdateResolution();
|
||||
g_renderManager.ManageCaptures();
|
||||
}
|
||||
diff --git a/xbmc/guilib/GUIFontTTFGL.cpp b/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
index 87e07ca..6c93eb8 100644
|
||||
--- a/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
+++ b/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "GUIFontTTFGL.h"
|
||||
#include "GUIFontManager.h"
|
||||
#include "Texture.h"
|
||||
+#include "TextureManager.h"
|
||||
#include "GraphicContext.h"
|
||||
#include "gui3d.h"
|
||||
#include "utils/log.h"
|
||||
@@ -234,7 +235,7 @@ void CGUIFontTTFGL::DeleteHardwareTexture()
|
||||
if (m_bTextureLoaded)
|
||||
{
|
||||
if (glIsTexture(m_nTexture))
|
||||
- glDeleteTextures(1, (GLuint*) &m_nTexture);
|
||||
+ g_TextureManager.ReleaseHwTexture(m_nTexture);
|
||||
m_bTextureLoaded = false;
|
||||
}
|
||||
}
|
||||
diff --git a/xbmc/guilib/TextureManager.cpp b/xbmc/guilib/TextureManager.cpp
|
||||
index 9ef7889..ccd0d03 100644
|
||||
--- a/xbmc/guilib/TextureManager.cpp
|
||||
+++ b/xbmc/guilib/TextureManager.cpp
|
||||
@@ -457,6 +457,19 @@ void CGUITextureManager::FreeUnusedTextures()
|
||||
for (ivecTextures i = m_unusedTextures.begin(); i != m_unusedTextures.end(); ++i)
|
||||
delete *i;
|
||||
m_unusedTextures.clear();
|
||||
+
|
||||
+#if defined(HAS_GL) || defined(HAS_GLES)
|
||||
+ for (unsigned int i = 0; i < m_unusedHwTextures.size(); ++i)
|
||||
+ {
|
||||
+ glDeleteTextures(1, (GLuint*) &m_unusedHwTextures[i]);
|
||||
+ }
|
||||
+#endif
|
||||
+ m_unusedHwTextures.clear();
|
||||
+}
|
||||
+
|
||||
+void CGUITextureManager::ReleaseHwTexture(unsigned int texture)
|
||||
+{
|
||||
+ m_unusedHwTextures.push_back(texture);
|
||||
}
|
||||
|
||||
void CGUITextureManager::Cleanup()
|
||||
diff --git a/xbmc/guilib/TextureManager.h b/xbmc/guilib/TextureManager.h
|
||||
index dd47f48..001f470 100644
|
||||
--- a/xbmc/guilib/TextureManager.h
|
||||
+++ b/xbmc/guilib/TextureManager.h
|
||||
@@ -124,9 +124,11 @@ class CGUITextureManager
|
||||
void RemoveTexturePath(const CStdString &texturePath); ///< Remove a path from the paths to check when loading media
|
||||
|
||||
void FreeUnusedTextures(); ///< Free textures (called from app thread only)
|
||||
+ void ReleaseHwTexture(unsigned int texture);
|
||||
protected:
|
||||
std::vector<CTextureMap*> m_vecTextures;
|
||||
std::vector<CTextureMap*> m_unusedTextures;
|
||||
+ std::vector<unsigned int> m_unusedHwTextures;
|
||||
typedef std::vector<CTextureMap*>::iterator ivecTextures;
|
||||
// we have 2 texture bundles (one for the base textures, one for the theme)
|
||||
CTextureBundle m_TexBundle[2];
|
||||
--
|
||||
1.7.10
|
||||
|
@ -1,36 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
setup_toolchain host
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
make CC=$HOST_CC AR="$HOST_AR rcu"
|
||||
|
||||
mkdir -p $ROOT/$TOOLCHAIN/bin
|
||||
if [ "$DEBUG" = "yes" ]; then
|
||||
cp bin.linux*/g/jam $ROOT/$TOOLCHAIN/bin
|
||||
else
|
||||
cp bin.linux*/jam $ROOT/$TOOLCHAIN/bin
|
||||
fi
|
@ -1,36 +0,0 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="jam"
|
||||
PKG_VERSION="2.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.perforce.com/jam/jam.html"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="ccache"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="toolchain/devel"
|
||||
PKG_SHORTDESC="jam: A make-like program"
|
||||
PKG_LONGDESC="Jam is a portable build tool with its own interpreted language, allowing to implement rather complex logic in a readable way and without resorting to external programs."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
@ -26,7 +26,8 @@ PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="make xz sed pkg-config autotools gcc-final bison flex cmake jam scons yasm nasm"
|
||||
#PKG_BUILD_DEPENDS="make xz sed pkg-config autotools gcc-final bison flex cmake jam scons yasm nasm"
|
||||
PKG_BUILD_DEPENDS="make xz sed pkg-config autotools gcc-final bison flex cmake scons yasm nasm"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="toolchain/devel"
|
||||
PKG_SHORTDESC="toolchain: OpenELEC.tv' toolchain"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xf86-input-evdev"
|
||||
PKG_VERSION="2.7.0"
|
||||
PKG_VERSION="2.7.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xf86-video-intel"
|
||||
PKG_VERSION="2.20.1"
|
||||
PKG_VERSION="2.20.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="OSS"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libXrandr"
|
||||
PKG_VERSION="1.3.2"
|
||||
PKG_VERSION="1.4.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
@ -329,6 +329,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -328,6 +328,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -328,6 +328,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -328,6 +328,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -328,6 +328,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -328,6 +328,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -330,6 +330,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -328,6 +328,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -324,6 +324,7 @@
|
||||
COREBOOT="no"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
|
@ -35,10 +35,9 @@ if [ -n "$PKG_URL" ]; then
|
||||
URLS="$URLS `echo $PKG_URL | sed s%GEEXBOX_SRCS%$GEEXBOX_SRCS%`"
|
||||
|
||||
for i in $URLS; do
|
||||
OPENELEC_MIRROR="http://sources.openelec.tv/mirror"
|
||||
SOURCE_NAME="`basename $i`"
|
||||
PACKAGE="$SOURCES/$1/$SOURCE_NAME"
|
||||
PACKAGE_MIRROR="$OPENELEC_MIRROR/$PKG_NAME/$SOURCE_NAME"
|
||||
PACKAGE_MIRROR="$DISTRO_MIRROR/$PKG_NAME/$SOURCE_NAME"
|
||||
[ "$VERBOSE" != "yes" ] && WGET_OPT=-q
|
||||
WGET_CMD="wget --passive-ftp --no-check-certificate -c $WGET_OPT -P $SOURCES/$1"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user