[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