Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Adélie Package Tree
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Hill Ma
Adélie Package Tree
Commits
d09f7ffc
Verified
Commit
d09f7ffc
authored
7 years ago
by
Anna Wilcox
Browse files
Options
Downloads
Patches
Plain Diff
user/kwin: Backport Gallium fix from 5.11.x
parent
f6522a65
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
user/kwin/APKBUILD
+5
-3
5 additions, 3 deletions
user/kwin/APKBUILD
user/kwin/kwin-backport-gallium-version-detection.patch
+191
-0
191 additions, 0 deletions
user/kwin/kwin-backport-gallium-version-detection.patch
with
196 additions
and
3 deletions
user/kwin/APKBUILD
+
5
−
3
View file @
d09f7ffc
...
...
@@ -2,7 +2,7 @@
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname
=
kwin
pkgver
=
5.8.7
pkgrel
=
0
pkgrel
=
1
pkgdesc
=
"Modern, stylish window manager (requires OpenGL)"
url
=
"https://www.kde.org/"
arch
=
"all"
...
...
@@ -24,7 +24,8 @@ install=""
subpackages
=
"
$pkgname
-dev
$pkgname
-doc
$pkgname
-lang"
source
=
"http://download.kde.org/stable/plasma/
$pkgver
/kwin-
$pkgver
.tar.xz
kwin-5.8-stop-depending-on-qt5-internals.patch
kwin-5.8-respect-uint.patch"
kwin-5.8-respect-uint.patch
kwin-backport-gallium-version-detection.patch"
builddir
=
"
$srcdir
/kwin-
$pkgver
"
build
()
{
...
...
@@ -55,4 +56,5 @@ package() {
sha512sums
=
"f1f3b01f85378e663385887add8dd5b2f40076cfc57f7cf638e83e2424fedb576b4b431b14151422ea43c535677131e61b8d9e7fe60e5a5f4ea06520c895bd1e kwin-5.8.7.tar.xz
7186dd317204612ba26f11315238f527949424d08f32dc0dab8c1391d642529433cfd7091dc2a057fe849976dee70eed7aab3c8be55b20b8c0655da57976b48e kwin-5.8-stop-depending-on-qt5-internals.patch
aaefa9951ec1475adf00784b202d0ca9f92a60634a869387432411e8b7928d9f10b46968998a4ada47228834e8c7f6c9bf1c8dd988673b22619e8e1295e086c7 kwin-5.8-respect-uint.patch"
aaefa9951ec1475adf00784b202d0ca9f92a60634a869387432411e8b7928d9f10b46968998a4ada47228834e8c7f6c9bf1c8dd988673b22619e8e1295e086c7 kwin-5.8-respect-uint.patch
9c8cdb884defc3e16444b41de0c53e10774cef6d8d0a461376ba64cc3457dfe19579e13ce45df721e32643dddf518df7d787ee36bcba840ef1bf2b7009d9b1ab kwin-backport-gallium-version-detection.patch"
This diff is collapsed.
Click to expand it.
user/kwin/kwin-backport-gallium-version-detection.patch
0 → 100644
+
191
−
0
View file @
d09f7ffc
From e302f87598de6853147c872b631e9a1fe4864f42 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Sat, 23 Dec 2017 23:30:07 +0100
Subject: Properly detect Gallium drivers with newer Mesa
Summary:
The renderer string does not contain "Gallium 0.4 on" anymore,
instead it directly contains the gallium driver's name.
So assume that every unknown renderer is a gallium driver.
Test Plan: Added a testcase, it succeeds only with this patch.
Reviewers: #plasma, graesslin
Subscribers: kwin, plasma-devel, #kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D9495
---
.../libkwineffects/data/glplatform/llvmpipe-5.0 | 22 ++++
libkwineffects/kwinglplatform.cpp | 114 +++++++++++----------
2 files changed, 82 insertions(+), 54 deletions(-)
create mode 100644 autotests/libkwineffects/data/glplatform/llvmpipe-5.0
diff --git a/autotests/libkwineffects/data/glplatform/llvmpipe-5.0 b/autotests/libkwineffects/data/glplatform/llvmpipe-5.0
new file mode 100644
index 0000000..56aa352
--- /dev/null
+++ b/autotests/libkwineffects/data/glplatform/llvmpipe-5.0
@@ -0,0 +1,22 @@
+[Driver]
+Vendor=VMware, Inc.
+Renderer=llvmpipe (LLVM 5.0, 256 bits)
+Version=3.0 Mesa 17.2.6
+ShadingLanguageVersion=1.30
+
+[Settings]
+LooseBinding=true
+GLSL=true
+TextureNPOT=true
+Mesa=true
+Gallium=true
+SoftwareEmulation=true
+GLVersion=3,0
+GLSLVersion=1,30
+MesaVersion=17,2,6
+GalliumVersion=0,4
+DriverVersion=17,2,6
+Driver=12
+ChipClass=99999
+Compositor=9
+
diff --git a/libkwineffects/kwinglplatform.cpp b/libkwineffects/kwinglplatform.cpp
index 2b7b9a4..f5febc0 100644
--- a/libkwineffects/kwinglplatform.cpp
+++ b/libkwineffects/kwinglplatform.cpp
@@ -702,14 +702,69 @@
void GLPlatform::detect(OpenGLPlatformInterface platformInterface)
m_chipClass = detectIntelClass(chipset);
}
+ // Properietary drivers
+ // ====================================================
+ else if (m_vendor == "ATI Technologies Inc.") {
+ m_chipClass = detectRadeonClass(m_renderer);
+ m_driver = Driver_Catalyst;
+
+ if (versionTokens.count() > 1 && versionTokens.at(2)[0] == '(')
+ m_driverVersion = parseVersionString(versionTokens.at(1));
+ else if (versionTokens.count() > 0)
+ m_driverVersion = parseVersionString(versionTokens.at(0));
+ else
+ m_driverVersion = 0;
+ }
+
+ else if (m_vendor == "NVIDIA Corporation") {
+ m_chipClass = detectNVidiaClass(m_renderer);
+ m_driver = Driver_NVidia;
+
+ int index = versionTokens.indexOf("NVIDIA");
+ if (versionTokens.count() > index)
+ m_driverVersion = parseVersionString(versionTokens.at(index + 1));
+ else
+ m_driverVersion = 0;
+ }
+
+ else if (m_vendor == "Qualcomm") {
+ m_driver = Driver_Qualcomm;
+ m_chipClass = detectQualcommClass(m_renderer);
+ }
+
+ else if (m_renderer == "Software Rasterizer") {
+ m_driver = Driver_Swrast;
+ }
+
+ // Virtual Hardware
+ // ====================================================
+ else if (m_vendor == "Humper" && m_renderer == "Chromium") {
+ // Virtual Box
+ m_driver = Driver_VirtualBox;
+
+ const int index = versionTokens.indexOf("Chromium");
+ if (versionTokens.count() > index)
+ m_driverVersion = parseVersionString(versionTokens.at(index + 1));
+ else
+ m_driverVersion = 0;
+ }
+
// Gallium drivers
// ====================================================
- else if (m_renderer.contains("Gallium")) {
- // Sample renderer string: Gallium 0.4 on AMD RV740
+ else {
const QList<QByteArray> tokens = m_renderer.split(' ');
- m_galliumVersion = parseVersionString(tokens.at(1));
- m_chipset = (tokens.at(3) == "AMD" || tokens.at(3) == "ATI") ?
- tokens.at(4) : tokens.at(3);
+ if (m_renderer.contains("Gallium")) {
+ // Sample renderer string: Gallium 0.4 on AMD RV740
+ m_galliumVersion = parseVersionString(tokens.at(1));
+ m_chipset = (tokens.at(3) == "AMD" || tokens.at(3) == "ATI") ?
+ tokens.at(4) : tokens.at(3);
+ }
+ else {
+ // The renderer string does not contain "Gallium" anymore.
+ m_chipset = tokens.at(0);
+ // We don't know the actual version anymore, but it's at least 0.4.
+ m_galliumVersion = kVersionNumber(0, 4, 0);
+ }
// R300G
if (m_vendor == QByteArrayLiteral("X.Org R300 Project")) {
@@ -764,55 +819,6 @@
void GLPlatform::detect(OpenGLPlatformInterface platformInterface)
}
}
-
- // Properietary drivers
- // ====================================================
- else if (m_vendor == "ATI Technologies Inc.") {
- m_chipClass = detectRadeonClass(m_renderer);
- m_driver = Driver_Catalyst;
-
- if (versionTokens.count() > 1 && versionTokens.at(2)[0] == '(')
- m_driverVersion = parseVersionString(versionTokens.at(1));
- else if (versionTokens.count() > 0)
- m_driverVersion = parseVersionString(versionTokens.at(0));
- else
- m_driverVersion = 0;
- }
-
- else if (m_vendor == "NVIDIA Corporation") {
- m_chipClass = detectNVidiaClass(m_renderer);
- m_driver = Driver_NVidia;
-
- int index = versionTokens.indexOf("NVIDIA");
- if (versionTokens.count() > index)
- m_driverVersion = parseVersionString(versionTokens.at(index + 1));
- else
- m_driverVersion = 0;
- }
-
- else if (m_vendor == "Qualcomm") {
- m_driver = Driver_Qualcomm;
- m_chipClass = detectQualcommClass(m_renderer);
- }
-
- else if (m_renderer == "Software Rasterizer") {
- m_driver = Driver_Swrast;
- }
-
- // Virtual Hardware
- // ====================================================
- else if (m_vendor == "Humper" && m_renderer == "Chromium") {
- // Virtual Box
- m_driver = Driver_VirtualBox;
-
- const int index = versionTokens.indexOf("Chromium");
- if (versionTokens.count() > index)
- m_driverVersion = parseVersionString(versionTokens.at(index + 1));
- else
- m_driverVersion = 0;
- }
-
-
// Driver/GPU specific features
// ====================================================
if (isRadeon()) {
--
cgit v0.11.2
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment