Only skip MatrixVectorMultiplyPerf on Mesa/llvmpipe

This patch only skips MatrixVectorMultiplyPerf on Mesa/llvmpipe
and enables the tests on Linux/Intel/Mesa.

Bug: dawn:2508
Change-Id: Iddfcdab5919eba62f24fc95ce36bb3277dcb7fd4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/187302
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/dawn/tests/DawnTest.cpp b/src/dawn/tests/DawnTest.cpp
index ce054bf..cb9bfcb 100644
--- a/src/dawn/tests/DawnTest.cpp
+++ b/src/dawn/tests/DawnTest.cpp
@@ -890,6 +890,11 @@
                                      mParam.adapterProperties.deviceID);
 }
 
+bool DawnTestBase::IsMesaSoftware() const {
+    return gpu_info::IsMesaSoftware(mParam.adapterProperties.vendorID,
+                                    mParam.adapterProperties.deviceID);
+}
+
 bool DawnTestBase::IsIntelGen9() const {
     return gpu_info::IsIntelGen9(mParam.adapterProperties.vendorID,
                                  mParam.adapterProperties.deviceID);
diff --git a/src/dawn/tests/DawnTest.h b/src/dawn/tests/DawnTest.h
index e58f2f4..f99ac48 100644
--- a/src/dawn/tests/DawnTest.h
+++ b/src/dawn/tests/DawnTest.h
@@ -263,6 +263,7 @@
     bool IsANGLESwiftShader() const;
     bool IsANGLED3D11() const;
     bool IsWARP() const;
+    bool IsMesaSoftware() const;
 
     bool IsIntelGen9() const;
     bool IsIntelGen12() const;
diff --git a/src/dawn/tests/perf_tests/MatrixVectorMultiplyPerf.cpp b/src/dawn/tests/perf_tests/MatrixVectorMultiplyPerf.cpp
index f3ffa74..a6b022f 100644
--- a/src/dawn/tests/perf_tests/MatrixVectorMultiplyPerf.cpp
+++ b/src/dawn/tests/perf_tests/MatrixVectorMultiplyPerf.cpp
@@ -122,11 +122,9 @@
 };
 
 void MatrixVectorMultiplyPerf::SetUp() {
-    // TODO(crbug.com/dawn/2508): Fails due to an OS/driver upgrade on Linux/Intel.
-    // Can't specify IsIntel() since this fails with llvmpipe, where IsIntel() is
-    // false. This must also be checked before SetUp() since the crash happens in
-    // SetUp() itself.
-    DAWN_SUPPRESS_TEST_IF(IsLinux() && IsVulkan() && IsMesa("23.2.1") &&
+    // TODO(crbug.com/dawn/2508): Fails due to an OS/driver upgrade on Linux/llvmpipe.
+    // This must also be checked before SetUp() since the crash happens in SetUp() itself.
+    DAWN_SUPPRESS_TEST_IF(IsLinux() && IsVulkan() && IsMesa("23.2.1") && IsMesaSoftware() &&
                           GetParam().mStoreType == StoreType::F32);
 
     DawnPerfTestWithParams<MatrixVectorMultiplyParams>::SetUp();