[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - vcl/inc vcl/qa vcl/skia vcl/source
LuboÅ¡ LuÅák (via logerrit)
logerrit at kemper.freedesktop.org
Wed Sep 30 13:00:46 UTC 2020
vcl/inc/driverblocklist.hxx | 10 ++++++++--
vcl/qa/cppunit/blocklistparsertest.cxx | 9 +++++++++
vcl/qa/cppunit/test_blocklist_evaluate.xml | 12 ++++++++++--
vcl/skia/skia_blacklist_vulkan.xml | 2 +-
vcl/source/helper/driverblocklist.cxx | 18 ++++++++++++++++--
5 files changed, 44 insertions(+), 7 deletions(-)
New commits:
commit bbb0a3c8adeec38834629c7eb5048a231e385d97
Author: Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Mon Sep 28 09:59:42 2020 +0200
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Sep 30 15:00:09 2020 +0200
make it possible to blacklist just "windows"
OpenGL blacklisting is done only on Windows, so there "all" is fine,
but Skia checks blacklisting on Linux too, so add a generic "windows".
Change-Id: Ie331ae275d437061b4d185d766663ff3c09261cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103532
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
(cherry picked from commit cb82e82228b7486844a02ff964c68025558523dc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103573
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/inc/driverblocklist.hxx b/vcl/inc/driverblocklist.hxx
index c6cd2e24cd33..c3feea2788b9 100644
--- a/vcl/inc/driverblocklist.hxx
+++ b/vcl/inc/driverblocklist.hxx
@@ -55,15 +55,21 @@ struct InvalidFileException
enum OperatingSystem
{
DRIVER_OS_UNKNOWN = 0,
- DRIVER_OS_WINDOWS_7,
+ DRIVER_OS_WINDOWS_FIRST,
+ DRIVER_OS_WINDOWS_7 = DRIVER_OS_WINDOWS_FIRST,
DRIVER_OS_WINDOWS_8,
DRIVER_OS_WINDOWS_8_1,
DRIVER_OS_WINDOWS_10,
+ DRIVER_OS_WINDOWS_LAST = DRIVER_OS_WINDOWS_10,
+ DRIVER_OS_WINDOWS_ALL,
DRIVER_OS_LINUX,
- DRIVER_OS_OSX_10_5,
+ DRIVER_OS_OSX_FIRST,
+ DRIVER_OS_OSX_10_5 = DRIVER_OS_OSX_FIRST,
DRIVER_OS_OSX_10_6,
DRIVER_OS_OSX_10_7,
DRIVER_OS_OSX_10_8,
+ DRIVER_OS_OSX_LAST = DRIVER_OS_OSX_10_8,
+ DRIVER_OS_OSX_ALL,
DRIVER_OS_ANDROID,
DRIVER_OS_ALL
};
diff --git a/vcl/qa/cppunit/blocklistparsertest.cxx b/vcl/qa/cppunit/blocklistparsertest.cxx
index cb92272fcd43..d62568de6ef7 100644
--- a/vcl/qa/cppunit/blocklistparsertest.cxx
+++ b/vcl/qa/cppunit/blocklistparsertest.cxx
@@ -113,6 +113,15 @@ void BlocklistParserTest::testEvaluate()
CPPUNIT_ASSERT_EQUAL(false, FindBlocklistedDeviceInList(
aDriveInfos, VersionType::OpenGL, "10.20.30.40", vendorNVIDIA, "all", DRIVER_OS_WINDOWS_10));
+ // Check generic OS
+ CPPUNIT_ASSERT_EQUAL(false, FindBlocklistedDeviceInList(
+ aDriveInfos, VersionType::OpenGL, "10.20.30.50", vendorMicrosoft, "all", DRIVER_OS_WINDOWS_10));
+ CPPUNIT_ASSERT_EQUAL(true, FindBlocklistedDeviceInList(
+ aDriveInfos, VersionType::OpenGL, "10.20.30.50", vendorMicrosoft, "all", DRIVER_OS_LINUX));
+ CPPUNIT_ASSERT_EQUAL(true, FindBlocklistedDeviceInList(
+ aDriveInfos, VersionType::OpenGL, "10.20.30.50", vendorMicrosoft, "all", DRIVER_OS_OSX_10_7));
+ CPPUNIT_ASSERT_EQUAL(true, FindBlocklistedDeviceInList(
+ aDriveInfos, VersionType::OpenGL, "10.20.30.50", vendorMicrosoft, "all", DRIVER_OS_OSX_10_8));
// Check Vendors
CPPUNIT_ASSERT_EQUAL(true, FindBlocklistedDeviceInList(
diff --git a/vcl/qa/cppunit/test_blocklist_evaluate.xml b/vcl/qa/cppunit/test_blocklist_evaluate.xml
index 00a8b0439146..d7b72d6d8c34 100644
--- a/vcl/qa/cppunit/test_blocklist_evaluate.xml
+++ b/vcl/qa/cppunit/test_blocklist_evaluate.xml
@@ -9,7 +9,7 @@
<!--
entry attributes:
- os - "all", "7", "8", "8_1", "10"
+ os - "all", "7", "8", "8_1", "10", "windows", "linux", "osx_10_5", "osx_10_6", "osx_10_7", "osx_10_8", "osx"
vendor - "all", "intel", "amd", "nvidia", "microsoft"
compare - "less", "less_equal", "greater", "greater_equal", "equal", "not_equal", "between_exclusive", "between_inclusive", "between_inclusive_start"
version
@@ -26,7 +26,7 @@
<device id="all"/>
</entry>
- <entry os="all" vendor="microsoft">
+ <entry os="all" vendor="microsoft" compare="equal" version="10.20.30.40">
<device id="all"/>
</entry>
@@ -34,5 +34,13 @@
<device id="all"/>
</entry>
+ <entry os="osx" vendor="microsoft" compare="equal" version="10.20.30.50">
+ <device id="all"/>
+ </entry>
+
+ <entry os="linux" vendor="microsoft" compare="equal" version="10.20.30.50">
+ <device id="all"/>
+ </entry>
+
</blacklist>
</root>
diff --git a/vcl/skia/skia_blacklist_vulkan.xml b/vcl/skia/skia_blacklist_vulkan.xml
index 7327f1f989f8..27dbcdfd7973 100644
--- a/vcl/skia/skia_blacklist_vulkan.xml
+++ b/vcl/skia/skia_blacklist_vulkan.xml
@@ -9,7 +9,7 @@
<!--
entry attributes:
- os - "all", "7", "8", "8_1", "10", "linux"
+ os - "all", "7", "8", "8_1", "10", "windows", "linux", "osx_10_5", "osx_10_6", "osx_10_7", "osx_10_8", "osx"
vendor - "all", "intel", "amd", "nvidia", "microsoft"
compare - "less", "less_equal", "greater", "greater_equal", "equal", "not_equal", "between_exclusive", "between_inclusive", "between_inclusive_start"
version
diff --git a/vcl/source/helper/driverblocklist.cxx b/vcl/source/helper/driverblocklist.cxx
index 6907ce19eaf3..30777bb9bae0 100644
--- a/vcl/source/helper/driverblocklist.cxx
+++ b/vcl/source/helper/driverblocklist.cxx
@@ -34,6 +34,8 @@ static OperatingSystem getOperatingSystem(const OString& rString)
return DRIVER_OS_WINDOWS_8_1;
else if (rString == "10")
return DRIVER_OS_WINDOWS_10;
+ else if (rString == "windows")
+ return DRIVER_OS_WINDOWS_ALL;
else if (rString == "linux")
return DRIVER_OS_LINUX;
else if (rString == "osx_10_5")
@@ -44,6 +46,8 @@ static OperatingSystem getOperatingSystem(const OString& rString)
return DRIVER_OS_OSX_10_7;
else if (rString == "osx_10_8")
return DRIVER_OS_OSX_10_8;
+ else if (rString == "osx")
+ return DRIVER_OS_OSX_ALL;
else if (rString == "android")
return DRIVER_OS_ANDROID;
return DRIVER_OS_UNKNOWN;
@@ -602,8 +606,18 @@ bool FindBlocklistedDeviceInList(std::vector<DriverInfo>& aDeviceInfos, VersionT
bool match = false;
for (std::vector<DriverInfo>::size_type i = 0; i < aDeviceInfos.size(); i++)
{
- if (aDeviceInfos[i].meOperatingSystem != DRIVER_OS_ALL
- && aDeviceInfos[i].meOperatingSystem != system)
+ bool osMatch = false;
+ if (aDeviceInfos[i].meOperatingSystem == DRIVER_OS_ALL)
+ osMatch = true;
+ else if (aDeviceInfos[i].meOperatingSystem == system)
+ osMatch = true;
+ else if (aDeviceInfos[i].meOperatingSystem == DRIVER_OS_WINDOWS_ALL
+ && system >= DRIVER_OS_WINDOWS_FIRST && system <= DRIVER_OS_WINDOWS_LAST)
+ osMatch = true;
+ else if (aDeviceInfos[i].meOperatingSystem == DRIVER_OS_OSX_ALL
+ && system >= DRIVER_OS_OSX_FIRST && system <= DRIVER_OS_OSX_LAST)
+ osMatch = true;
+ if (!osMatch)
{
continue;
}
More information about the Libreoffice-commits
mailing list