From 37f961a4392493ff9a3b9bad2c0eff0b0789c376 Mon Sep 17 00:00:00 2001 From: Ethan Lin Date: Mon, 8 Aug 2016 02:35:00 -0400 Subject: [PATCH] Bug 1293028 - Check build id only for intel driver. r=mtseng, r=jgilbert --- widget/GfxDriverInfo.h | 1 + widget/GfxInfoBase.cpp | 3 +++ widget/windows/GfxInfo.cpp | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/widget/GfxDriverInfo.h b/widget/GfxDriverInfo.h index 1287e1a869f4..1d99e782c90b 100644 --- a/widget/GfxDriverInfo.h +++ b/widget/GfxDriverInfo.h @@ -64,6 +64,7 @@ enum class OperatingSystem { enum VersionComparisonOp { DRIVER_LESS_THAN, // driver < version + DRIVER_BUILD_ID_LESS_THAN, // driver build id < version DRIVER_LESS_THAN_OR_EQUAL, // driver <= version DRIVER_GREATER_THAN, // driver > version DRIVER_GREATER_THAN_OR_EQUAL, // driver >= version diff --git a/widget/GfxInfoBase.cpp b/widget/GfxInfoBase.cpp index 09993b2c9848..b3c5d45d3396 100644 --- a/widget/GfxInfoBase.cpp +++ b/widget/GfxInfoBase.cpp @@ -733,6 +733,9 @@ GfxInfoBase::FindBlocklistedDeviceInList(const nsTArray& info, case DRIVER_LESS_THAN: match = driverVersion < info[i].mDriverVersion; break; + case DRIVER_BUILD_ID_LESS_THAN: + match = (driverVersion & 0xFFFF) < info[i].mDriverVersion; + break; case DRIVER_LESS_THAN_OR_EQUAL: match = driverVersion <= info[i].mDriverVersion; break; diff --git a/widget/windows/GfxInfo.cpp b/widget/windows/GfxInfo.cpp index 4dc2f5b2b981..fee30851a1d1 100644 --- a/widget/windows/GfxInfo.cpp +++ b/widget/windows/GfxInfo.cpp @@ -1185,8 +1185,8 @@ GfxInfo::GetGfxDriverInfo() // Older than 11-18-2015 APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), GfxDriverInfo::allDevices, - nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, - V(20,19,15,4331), "WEBGL_NATIVE_GL_OLD_INTEL"); + nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_BUILD_ID_LESS_THAN, + 4331, "WEBGL_NATIVE_GL_OLD_INTEL"); // Older than 2-23-2016 APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows,