зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 8ddc0a160da1 (bug 1602819) for Mochitest perma failures on Linux. CLOSED TREE
This commit is contained in:
Родитель
b41ba52970
Коммит
23b0b10a14
|
@ -591,7 +591,6 @@ var snapshotFormatters = {
|
|||
["supportsHardwareH264", "hardware-h264"],
|
||||
["direct2DEnabled", "#Direct2D"],
|
||||
["windowProtocol", "graphics-window-protocol"],
|
||||
["desktopEnvironment", "graphics-desktop-environment"],
|
||||
"usesTiling",
|
||||
"contentUsesTiling",
|
||||
"offMainThreadPaintEnabled",
|
||||
|
|
|
@ -275,11 +275,6 @@ CycleCollector:
|
|||
Reason why the cycle collector crashed.
|
||||
type: string
|
||||
|
||||
DesktopEnvironment:
|
||||
description: >
|
||||
Desktop environment used on Linux, e.g. GNOME, KDE, XFCE, etc.
|
||||
type: string
|
||||
|
||||
DeviceResetReason:
|
||||
description: >
|
||||
Reason why a DirectX device has been reset, Windows only.
|
||||
|
|
|
@ -93,8 +93,6 @@ graphics-crash-guards-title = Crash Guard Disabled Features
|
|||
graphics-workarounds-title = Workarounds
|
||||
# Windowing system in use on Linux (e.g. X11, Wayland).
|
||||
graphics-window-protocol = Window Protocol
|
||||
# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
|
||||
graphics-desktop-environment = Desktop Environment
|
||||
place-database-title = Places Database
|
||||
place-database-integrity = Integrity
|
||||
place-database-verify-integrity = Verify Integrity
|
||||
|
|
|
@ -538,7 +538,6 @@ var dataProviders = {
|
|||
OffMainThreadPaintWorkerCount: "offMainThreadPaintWorkerCount",
|
||||
TargetFrameRate: "targetFrameRate",
|
||||
windowProtocol: null,
|
||||
desktopEnvironment: null,
|
||||
};
|
||||
|
||||
for (let prop in gfxInfoProps) {
|
||||
|
|
|
@ -484,9 +484,6 @@ const SNAPSHOT_SCHEMA = {
|
|||
windowProtocol: {
|
||||
type: "string",
|
||||
},
|
||||
desktopEnvironment: {
|
||||
type: "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
media: {
|
||||
|
|
|
@ -15,16 +15,12 @@ uint64_t GfxDriverInfo::allDriverVersions = ~(uint64_t(0));
|
|||
GfxDeviceFamily* const GfxDriverInfo::allDevices = nullptr;
|
||||
|
||||
GfxDeviceFamily* GfxDriverInfo::sDeviceFamilies[DeviceFamilyMax];
|
||||
nsAString* GfxDriverInfo::sDesktopEnvironment[DesktopMax];
|
||||
nsAString* GfxDriverInfo::sWindowProtocol[WindowingMax];
|
||||
nsAString* GfxDriverInfo::sDeviceVendors[DeviceVendorMax];
|
||||
nsAString* GfxDriverInfo::sDriverVendors[DriverVendorMax];
|
||||
|
||||
GfxDriverInfo::GfxDriverInfo()
|
||||
: mOperatingSystem(OperatingSystem::Unknown),
|
||||
mOperatingSystemVersion(0),
|
||||
mDesktopEnvironment(GfxDriverInfo::GetDesktopEnvironment(DesktopAll)),
|
||||
mWindowProtocol(GfxDriverInfo::GetWindowProtocol(WindowingAll)),
|
||||
mAdapterVendor(GfxDriverInfo::GetDeviceVendor(VendorAll)),
|
||||
mDriverVendor(GfxDriverInfo::GetDriverVendor(DriverVendorAll)),
|
||||
mDevices(allDevices),
|
||||
|
@ -38,17 +34,16 @@ GfxDriverInfo::GfxDriverInfo()
|
|||
mRuleId(nullptr),
|
||||
mGpu2(false) {}
|
||||
|
||||
GfxDriverInfo::GfxDriverInfo(
|
||||
OperatingSystem os, const nsAString& desktopEnv,
|
||||
const nsAString& windowProtocol, const nsAString& vendor,
|
||||
const nsAString& driverVendor, GfxDeviceFamily* devices, int32_t feature,
|
||||
int32_t featureStatus, VersionComparisonOp op, uint64_t driverVersion,
|
||||
const char* ruleId, const char* suggestedVersion /* = nullptr */,
|
||||
bool ownDevices /* = false */, bool gpu2 /* = false */)
|
||||
GfxDriverInfo::GfxDriverInfo(OperatingSystem os, const nsAString& vendor,
|
||||
const nsAString& driverVendor,
|
||||
GfxDeviceFamily* devices, int32_t feature,
|
||||
int32_t featureStatus, VersionComparisonOp op,
|
||||
uint64_t driverVersion, const char* ruleId,
|
||||
const char* suggestedVersion /* = nullptr */,
|
||||
bool ownDevices /* = false */,
|
||||
bool gpu2 /* = false */)
|
||||
: mOperatingSystem(os),
|
||||
mOperatingSystemVersion(0),
|
||||
mDesktopEnvironment(desktopEnv),
|
||||
mWindowProtocol(windowProtocol),
|
||||
mAdapterVendor(vendor),
|
||||
mDriverVendor(driverVendor),
|
||||
mDevices(devices),
|
||||
|
@ -65,8 +60,6 @@ GfxDriverInfo::GfxDriverInfo(
|
|||
GfxDriverInfo::GfxDriverInfo(const GfxDriverInfo& aOrig)
|
||||
: mOperatingSystem(aOrig.mOperatingSystem),
|
||||
mOperatingSystemVersion(aOrig.mOperatingSystemVersion),
|
||||
mDesktopEnvironment(aOrig.mDesktopEnvironment),
|
||||
mWindowProtocol(aOrig.mWindowProtocol),
|
||||
mAdapterVendor(aOrig.mAdapterVendor),
|
||||
mDriverVendor(aOrig.mDriverVendor),
|
||||
mFeature(aOrig.mFeature),
|
||||
|
@ -90,9 +83,7 @@ GfxDriverInfo::GfxDriverInfo(const GfxDriverInfo& aOrig)
|
|||
}
|
||||
|
||||
GfxDriverInfo::~GfxDriverInfo() {
|
||||
if (mDeleteDevices) {
|
||||
delete mDevices;
|
||||
}
|
||||
if (mDeleteDevices) delete mDevices;
|
||||
}
|
||||
|
||||
// Macros for appending a device to the DeviceFamily.
|
||||
|
@ -107,9 +98,7 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) {
|
|||
"DeviceFamily id is out of range");
|
||||
|
||||
// If it already exists, we must have processed it once, so return it now.
|
||||
if (sDeviceFamilies[id]) {
|
||||
return sDeviceFamilies[id];
|
||||
}
|
||||
if (sDeviceFamilies[id]) return sDeviceFamilies[id];
|
||||
|
||||
sDeviceFamilies[id] = new GfxDeviceFamily;
|
||||
GfxDeviceFamily* deviceFamily = sDeviceFamilies[id];
|
||||
|
@ -395,76 +384,6 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) {
|
|||
return deviceFamily;
|
||||
}
|
||||
|
||||
// Macro for assigning a desktop environment to a string.
|
||||
#define DECLARE_DESKTOP_ENVIRONMENT_ID(name, desktopEnvId) \
|
||||
case name: \
|
||||
sDesktopEnvironment[id]->AssignLiteral(desktopEnvId); \
|
||||
break;
|
||||
|
||||
const nsAString& GfxDriverInfo::GetDesktopEnvironment(DesktopEnvironment id) {
|
||||
if (id >= DesktopMax) {
|
||||
MOZ_ASSERT_UNREACHABLE("DesktopEnvironment id is out of range");
|
||||
id = DesktopAll;
|
||||
}
|
||||
|
||||
if (sDesktopEnvironment[id]) {
|
||||
return *sDesktopEnvironment[id];
|
||||
}
|
||||
|
||||
sDesktopEnvironment[id] = new nsString();
|
||||
|
||||
switch (id) {
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopGNOME, "gnome");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopKDE, "kde");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopXFCE, "xfce");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopCinnamon, "cinnamon");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopEnlightenment, "enlightment");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopLXDE, "lxde");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopOpenbox, "openbox");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopI3, "i3");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopMate, "mate");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopUnity, "unity");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopPantheon, "pantheon");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopLXQT, "lxqt");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopDeepin, "deepin");
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopUnknown, "unknown");
|
||||
default: // Suppress a warning.
|
||||
DECLARE_DESKTOP_ENVIRONMENT_ID(DesktopAll, "");
|
||||
}
|
||||
|
||||
return *sDesktopEnvironment[id];
|
||||
}
|
||||
|
||||
// Macro for assigning a window protocol id to a string.
|
||||
#define DECLARE_WINDOW_PROTOCOL_ID(name, windowProtocolId) \
|
||||
case name: \
|
||||
sWindowProtocol[id]->AssignLiteral(windowProtocolId); \
|
||||
break;
|
||||
|
||||
const nsAString& GfxDriverInfo::GetWindowProtocol(WindowProtocol id) {
|
||||
if (id >= WindowingMax) {
|
||||
MOZ_ASSERT_UNREACHABLE("WindowProtocol id is out of range");
|
||||
id = WindowingAll;
|
||||
}
|
||||
|
||||
if (sWindowProtocol[id]) {
|
||||
return *sWindowProtocol[id];
|
||||
}
|
||||
|
||||
sWindowProtocol[id] = new nsString();
|
||||
|
||||
switch (id) {
|
||||
DECLARE_WINDOW_PROTOCOL_ID(WindowingX11, "x11");
|
||||
DECLARE_WINDOW_PROTOCOL_ID(WindowingWayland, "wayland");
|
||||
DECLARE_WINDOW_PROTOCOL_ID(WindowingWaylandDRM, "wayland/drm");
|
||||
DECLARE_WINDOW_PROTOCOL_ID(WindowingWaylandAll, "wayland/all");
|
||||
default: // Suppress a warning.
|
||||
DECLARE_WINDOW_PROTOCOL_ID(WindowingAll, "");
|
||||
}
|
||||
|
||||
return *sWindowProtocol[id];
|
||||
}
|
||||
|
||||
// Macro for assigning a device vendor id to a string.
|
||||
#define DECLARE_VENDOR_ID(name, deviceId) \
|
||||
case name: \
|
||||
|
@ -472,18 +391,15 @@ const nsAString& GfxDriverInfo::GetWindowProtocol(WindowProtocol id) {
|
|||
break;
|
||||
|
||||
const nsAString& GfxDriverInfo::GetDeviceVendor(DeviceVendor id) {
|
||||
if (id >= DeviceVendorMax) {
|
||||
MOZ_ASSERT_UNREACHABLE("DeviceVendor id is out of range");
|
||||
id = VendorAll;
|
||||
}
|
||||
NS_ASSERTION(id >= 0 && id < DeviceVendorMax,
|
||||
"DeviceVendor id is out of range");
|
||||
|
||||
if (sDeviceVendors[id]) {
|
||||
return *sDeviceVendors[id];
|
||||
}
|
||||
if (sDeviceVendors[id]) return *sDeviceVendors[id];
|
||||
|
||||
sDeviceVendors[id] = new nsString();
|
||||
|
||||
switch (id) {
|
||||
DECLARE_VENDOR_ID(VendorAll, "");
|
||||
DECLARE_VENDOR_ID(VendorIntel, "0x8086");
|
||||
DECLARE_VENDOR_ID(VendorNVIDIA, "0x10de");
|
||||
DECLARE_VENDOR_ID(VendorAMD, "0x1022");
|
||||
|
@ -493,8 +409,8 @@ const nsAString& GfxDriverInfo::GetDeviceVendor(DeviceVendor id) {
|
|||
// Choose an arbitrary Qualcomm PCI VENdor ID for now.
|
||||
// TODO: This should be "QCOM" when Windows device ID parsing is reworked.
|
||||
DECLARE_VENDOR_ID(VendorQualcomm, "0x5143");
|
||||
default: // Suppress a warning.
|
||||
DECLARE_VENDOR_ID(VendorAll, "");
|
||||
// Suppress a warning.
|
||||
DECLARE_VENDOR_ID(DeviceVendorMax, "");
|
||||
}
|
||||
|
||||
return *sDeviceVendors[id];
|
||||
|
@ -507,26 +423,23 @@ const nsAString& GfxDriverInfo::GetDeviceVendor(DeviceVendor id) {
|
|||
break;
|
||||
|
||||
const nsAString& GfxDriverInfo::GetDriverVendor(DriverVendor id) {
|
||||
if (id >= DriverVendorMax) {
|
||||
MOZ_ASSERT_UNREACHABLE("DriverVendor id is out of range");
|
||||
id = DriverVendorAll;
|
||||
}
|
||||
NS_ASSERTION(id >= 0 && id < DriverVendorMax,
|
||||
"DriverVendor id is out of range");
|
||||
|
||||
if (sDriverVendors[id]) {
|
||||
return *sDriverVendors[id];
|
||||
}
|
||||
if (sDriverVendors[id]) return *sDriverVendors[id];
|
||||
|
||||
sDriverVendors[id] = new nsString();
|
||||
|
||||
switch (id) {
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverVendorAll, "");
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverMesaAll, "mesa/all");
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverMesaLLVMPipe, "mesa/llvmpipe");
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverMesaSoftPipe, "mesa/softpipe");
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverMesaSWRast, "mesa/swrast");
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverMesaUnknown, "mesa/unknown");
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverNonMesaAll, "non-mesa/all");
|
||||
default: // Suppress a warning.
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverVendorAll, "");
|
||||
// Suppress a warning.
|
||||
DECLARE_DRIVER_VENDOR_ID(DriverVendorMax, "");
|
||||
}
|
||||
|
||||
return *sDriverVendors[id];
|
||||
|
|
|
@ -8,107 +8,48 @@
|
|||
|
||||
#include "nsString.h"
|
||||
|
||||
// Macros for adding a blocklist item to the static list. _EXT variants
|
||||
// allow one to specify all available parameters, including those available
|
||||
// only on specific platforms (e.g. desktop environment and driver vendor
|
||||
// for Linux.)
|
||||
// Macros for adding a blocklist item to the static list.
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST(os, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, \
|
||||
driverVersion, ruleId, suggestedVersion) \
|
||||
sDriverInfo->AppendElement(GfxDriverInfo( \
|
||||
os, vendor, driverVendor, devices, feature, featureStatus, \
|
||||
driverComparator, driverVersion, ruleId, suggestedVersion))
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST2(os, vendor, driverVendor, devices, \
|
||||
feature, featureStatus, driverComparator, \
|
||||
driverVersion, ruleId) \
|
||||
sDriverInfo->AppendElement( \
|
||||
GfxDriverInfo(os, vendor, driverVendor, devices, feature, featureStatus, \
|
||||
driverComparator, driverVersion, ruleId))
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST(os, vendor, devices, feature, \
|
||||
featureStatus, driverComparator, \
|
||||
driverVersion, ruleId, suggestedVersion) \
|
||||
sDriverInfo->AppendElement(GfxDriverInfo( \
|
||||
os, (nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll), \
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll), vendor, \
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll), devices, \
|
||||
feature, featureStatus, driverComparator, driverVersion, ruleId, \
|
||||
suggestedVersion))
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_EXT( \
|
||||
os, desktopEnv, windowProtocol, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, ruleId, suggestedVersion) \
|
||||
sDriverInfo->AppendElement( \
|
||||
GfxDriverInfo(os, desktopEnv, windowProtocol, vendor, driverVendor, \
|
||||
devices, feature, featureStatus, driverComparator, \
|
||||
driverVersion, ruleId, suggestedVersion))
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST2(os, vendor, devices, feature, \
|
||||
featureStatus, driverComparator, \
|
||||
driverVersion, ruleId) \
|
||||
sDriverInfo->AppendElement(GfxDriverInfo( \
|
||||
os, (nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll), \
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll), vendor, \
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll), devices, \
|
||||
feature, featureStatus, driverComparator, driverVersion, ruleId))
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST2_EXT( \
|
||||
os, desktopEnv, windowProtocol, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, ruleId) \
|
||||
sDriverInfo->AppendElement(GfxDriverInfo( \
|
||||
os, desktopEnv, windowProtocol, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, ruleId))
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE( \
|
||||
os, vendor, devices, feature, featureStatus, driverComparator, \
|
||||
driverVersion, driverVersionMax, ruleId, suggestedVersion) \
|
||||
do { \
|
||||
MOZ_ASSERT((driverComparator) == DRIVER_BETWEEN_EXCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE_START); \
|
||||
GfxDriverInfo info( \
|
||||
os, (nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll), \
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll), vendor, \
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll), devices, \
|
||||
feature, featureStatus, driverComparator, driverVersion, ruleId, \
|
||||
suggestedVersion); \
|
||||
info.mDriverVersionMax = driverVersionMax; \
|
||||
sDriverInfo->AppendElement(info); \
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE( \
|
||||
os, vendor, driverVendor, devices, feature, featureStatus, \
|
||||
driverComparator, driverVersion, driverVersionMax, ruleId, \
|
||||
suggestedVersion) \
|
||||
do { \
|
||||
MOZ_ASSERT(driverComparator == DRIVER_BETWEEN_EXCLUSIVE || \
|
||||
driverComparator == DRIVER_BETWEEN_INCLUSIVE || \
|
||||
driverComparator == DRIVER_BETWEEN_INCLUSIVE_START); \
|
||||
GfxDriverInfo info(os, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, ruleId, \
|
||||
suggestedVersion); \
|
||||
info.mDriverVersionMax = driverVersionMax; \
|
||||
sDriverInfo->AppendElement(info); \
|
||||
} while (false)
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE_EXT( \
|
||||
os, desktopEnv, windowProtocol, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, driverVersionMax, ruleId, \
|
||||
suggestedVersion) \
|
||||
do { \
|
||||
MOZ_ASSERT((driverComparator) == DRIVER_BETWEEN_EXCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE_START); \
|
||||
GfxDriverInfo info(os, desktopEnv, windowProtocol, vendor, driverVendor, \
|
||||
devices, feature, featureStatus, driverComparator, \
|
||||
driverVersion, ruleId, suggestedVersion); \
|
||||
info.mDriverVersionMax = driverVersionMax; \
|
||||
sDriverInfo->AppendElement(info); \
|
||||
} while (false)
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE_GPU2( \
|
||||
os, vendor, devices, feature, featureStatus, driverComparator, \
|
||||
driverVersion, driverVersionMax, ruleId, suggestedVersion) \
|
||||
do { \
|
||||
MOZ_ASSERT((driverComparator) == DRIVER_BETWEEN_EXCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE_START); \
|
||||
GfxDriverInfo info( \
|
||||
os, (nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll), \
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll), vendor, \
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll), devices, \
|
||||
feature, featureStatus, driverComparator, driverVersion, ruleId, \
|
||||
suggestedVersion, false, true); \
|
||||
info.mDriverVersionMax = driverVersionMax; \
|
||||
sDriverInfo->AppendElement(info); \
|
||||
} while (false)
|
||||
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE_GPU2_EXT( \
|
||||
os, desktopEnv, windowProtocol, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, driverVersionMax, ruleId, \
|
||||
suggestedVersion) \
|
||||
do { \
|
||||
MOZ_ASSERT((driverComparator) == DRIVER_BETWEEN_EXCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE || \
|
||||
(driverComparator) == DRIVER_BETWEEN_INCLUSIVE_START); \
|
||||
GfxDriverInfo info(os, desktopEnv, windowProtocol, vendor, driverVendor, \
|
||||
devices, feature, featureStatus, driverComparator, \
|
||||
driverVersion, ruleId, suggestedVersion, false, true); \
|
||||
info.mDriverVersionMax = driverVersionMax; \
|
||||
sDriverInfo->AppendElement(info); \
|
||||
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE_GPU2( \
|
||||
os, vendor, driverVendor, devices, feature, featureStatus, \
|
||||
driverComparator, driverVersion, driverVersionMax, ruleId, \
|
||||
suggestedVersion) \
|
||||
do { \
|
||||
MOZ_ASSERT(driverComparator == DRIVER_BETWEEN_EXCLUSIVE || \
|
||||
driverComparator == DRIVER_BETWEEN_INCLUSIVE || \
|
||||
driverComparator == DRIVER_BETWEEN_INCLUSIVE_START); \
|
||||
GfxDriverInfo info(os, vendor, driverVendor, devices, feature, \
|
||||
featureStatus, driverComparator, driverVersion, ruleId, \
|
||||
suggestedVersion, false, true); \
|
||||
info.mDriverVersionMax = driverVersionMax; \
|
||||
sDriverInfo->AppendElement(info); \
|
||||
} while (false)
|
||||
|
||||
namespace mozilla {
|
||||
|
@ -184,7 +125,7 @@ enum DeviceFamily {
|
|||
DeviceFamilyMax
|
||||
};
|
||||
|
||||
enum DeviceVendor : uint8_t {
|
||||
enum DeviceVendor {
|
||||
VendorAll, // There is an assumption that this is the first enum
|
||||
VendorIntel,
|
||||
VendorNVIDIA,
|
||||
|
@ -197,7 +138,7 @@ enum DeviceVendor : uint8_t {
|
|||
DeviceVendorMax
|
||||
};
|
||||
|
||||
enum DriverVendor : uint8_t {
|
||||
enum DriverVendor {
|
||||
DriverVendorAll, // There is an assumption that this is the first enum
|
||||
// Wildcard for all Mesa drivers.
|
||||
DriverMesaAll,
|
||||
|
@ -215,43 +156,13 @@ enum DriverVendor : uint8_t {
|
|||
DriverVendorMax
|
||||
};
|
||||
|
||||
enum DesktopEnvironment : uint8_t {
|
||||
DesktopAll, // There is an assumption that this is the first enum
|
||||
DesktopGNOME,
|
||||
DesktopKDE,
|
||||
DesktopXFCE,
|
||||
DesktopCinnamon,
|
||||
DesktopEnlightenment,
|
||||
DesktopLXDE,
|
||||
DesktopOpenbox,
|
||||
DesktopI3,
|
||||
DesktopMate,
|
||||
DesktopUnity,
|
||||
DesktopPantheon,
|
||||
DesktopLXQT,
|
||||
DesktopDeepin,
|
||||
DesktopUnknown,
|
||||
DesktopMax
|
||||
};
|
||||
|
||||
enum WindowProtocol : uint8_t {
|
||||
WindowingAll, // There is an assumption that this is the first enum
|
||||
WindowingX11,
|
||||
WindowingWayland,
|
||||
WindowingWaylandDRM,
|
||||
// Wildcard for all Wayland variants.
|
||||
WindowingWaylandAll,
|
||||
WindowingMax
|
||||
};
|
||||
|
||||
/* Array of devices to match, or an empty array for all devices */
|
||||
typedef nsTArray<nsString> GfxDeviceFamily;
|
||||
|
||||
struct GfxDriverInfo {
|
||||
// If |ownDevices| is true, you are transferring ownership of the devices
|
||||
// array, and it will be deleted when this GfxDriverInfo is destroyed.
|
||||
GfxDriverInfo(OperatingSystem os, const nsAString& desktopEnv,
|
||||
const nsAString& windowProtocol, const nsAString& vendor,
|
||||
GfxDriverInfo(OperatingSystem os, const nsAString& vendor,
|
||||
const nsAString& driverVendor, GfxDeviceFamily* devices,
|
||||
int32_t feature, int32_t featureStatus, VersionComparisonOp op,
|
||||
uint64_t driverVersion, const char* ruleId,
|
||||
|
@ -264,8 +175,6 @@ struct GfxDriverInfo {
|
|||
|
||||
OperatingSystem mOperatingSystem;
|
||||
uint32_t mOperatingSystemVersion;
|
||||
nsString mDesktopEnvironment;
|
||||
nsString mWindowProtocol;
|
||||
|
||||
nsString mAdapterVendor;
|
||||
nsString mDriverVendor;
|
||||
|
@ -297,12 +206,6 @@ struct GfxDriverInfo {
|
|||
static const GfxDeviceFamily* GetDeviceFamily(DeviceFamily id);
|
||||
static GfxDeviceFamily* sDeviceFamilies[DeviceFamilyMax];
|
||||
|
||||
static const nsAString& GetDesktopEnvironment(DesktopEnvironment id);
|
||||
static nsAString* sDesktopEnvironment[DesktopMax];
|
||||
|
||||
static const nsAString& GetWindowProtocol(WindowProtocol id);
|
||||
static nsAString* sWindowProtocol[WindowingMax];
|
||||
|
||||
static const nsAString& GetDeviceVendor(DeviceVendor id);
|
||||
static nsAString* sDeviceVendors[DeviceVendorMax];
|
||||
|
||||
|
|
|
@ -498,10 +498,6 @@ static bool BlacklistEntryToDriverInfo(nsCString& aBlacklistEntry,
|
|||
aDriverInfo.mOperatingSystem = BlacklistOSToOperatingSystem(dataValue);
|
||||
} else if (key.EqualsLiteral("osversion")) {
|
||||
aDriverInfo.mOperatingSystemVersion = strtoul(value.get(), nullptr, 10);
|
||||
} else if (key.EqualsLiteral("desktopEnvironment")) {
|
||||
aDriverInfo.mDesktopEnvironment = dataValue;
|
||||
} else if (key.EqualsLiteral("windowProtocol")) {
|
||||
aDriverInfo.mWindowProtocol = dataValue;
|
||||
} else if (key.EqualsLiteral("vendor")) {
|
||||
aDriverInfo.mAdapterVendor = dataValue;
|
||||
} else if (key.EqualsLiteral("driverVendor")) {
|
||||
|
@ -736,19 +732,6 @@ int32_t GfxInfoBase::FindBlocklistedDeviceInList(
|
|||
int32_t aFeature, nsACString& aFailureId, OperatingSystem os) {
|
||||
int32_t status = nsIGfxInfo::FEATURE_STATUS_UNKNOWN;
|
||||
|
||||
// Desktop environment and window protocol are not available on all platforms.
|
||||
nsAutoString desktopEnvironment;
|
||||
nsresult rv = GetDesktopEnvironment(desktopEnvironment);
|
||||
if (NS_FAILED(rv) && rv != NS_ERROR_NOT_IMPLEMENTED) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
nsAutoString windowProtocol;
|
||||
rv = GetWindowProtocol(windowProtocol);
|
||||
if (NS_FAILED(rv) && rv != NS_ERROR_NOT_IMPLEMENTED) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Get the adapters once then reuse below
|
||||
nsAutoString adapterVendorID[2];
|
||||
nsAutoString adapterDeviceID[2];
|
||||
|
@ -804,15 +787,6 @@ int32_t GfxInfoBase::FindBlocklistedDeviceInList(
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!DoesDesktopEnvironmentMatch(info[i].mDesktopEnvironment,
|
||||
desktopEnvironment)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!DoesWindowProtocolMatch(info[i].mWindowProtocol, windowProtocol)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!DoesVendorMatch(info[i].mAdapterVendor, adapterVendorID[infoIndex])) {
|
||||
continue;
|
||||
}
|
||||
|
@ -969,25 +943,6 @@ void GfxInfoBase::SetFeatureStatus(
|
|||
sFeatureStatus = new nsTArray<dom::GfxInfoFeatureStatus>(aFS);
|
||||
}
|
||||
|
||||
bool GfxInfoBase::DoesDesktopEnvironmentMatch(
|
||||
const nsAString& aBlocklistDesktop, const nsAString& aDesktopEnv) {
|
||||
return aBlocklistDesktop.Equals(aDesktopEnv,
|
||||
nsCaseInsensitiveStringComparator()) ||
|
||||
aBlocklistDesktop.Equals(
|
||||
GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
nsCaseInsensitiveStringComparator());
|
||||
}
|
||||
|
||||
bool GfxInfoBase::DoesWindowProtocolMatch(
|
||||
const nsAString& aBlocklistWindowProtocol,
|
||||
const nsAString& aWindowProtocol) {
|
||||
return aBlocklistWindowProtocol.Equals(aWindowProtocol,
|
||||
nsCaseInsensitiveStringComparator()) ||
|
||||
aBlocklistWindowProtocol.Equals(
|
||||
GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
nsCaseInsensitiveStringComparator());
|
||||
}
|
||||
|
||||
bool GfxInfoBase::DoesVendorMatch(const nsAString& aBlocklistVendor,
|
||||
const nsAString& aAdapterVendor) {
|
||||
return aBlocklistVendor.Equals(aAdapterVendor,
|
||||
|
|
|
@ -126,13 +126,6 @@ class GfxInfoBase : public nsIGfxInfo,
|
|||
|
||||
virtual void DescribeFeatures(JSContext* aCx, JS::Handle<JSObject*> obj);
|
||||
|
||||
bool DoesDesktopEnvironmentMatch(const nsAString& aBlocklistDesktop,
|
||||
const nsAString& aDesktopEnv);
|
||||
|
||||
virtual bool DoesWindowProtocolMatch(
|
||||
const nsAString& aBlocklistWindowProtocol,
|
||||
const nsAString& aWindowProtocol);
|
||||
|
||||
bool DoesVendorMatch(const nsAString& aBlocklistVendor,
|
||||
const nsAString& aAdapterVendor);
|
||||
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
#include <sys/wait.h>
|
||||
#include <errno.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <string>
|
||||
#include <cctype>
|
||||
#include "nsCRTGlue.h"
|
||||
#include "nsExceptionHandler.h"
|
||||
#include "prenv.h"
|
||||
|
@ -63,8 +61,6 @@ void GfxInfo::AddCrashReportAnnotations() {
|
|||
mIsWayland);
|
||||
CrashReporter::AnnotateCrashReport(CrashReporter::Annotation::IsWaylandDRM,
|
||||
mIsWaylandDRM);
|
||||
CrashReporter::AnnotateCrashReport(
|
||||
CrashReporter::Annotation::DesktopEnvironment, mDesktopEnvironment);
|
||||
}
|
||||
|
||||
void GfxInfo::GetData() {
|
||||
|
@ -334,84 +330,6 @@ void GfxInfo::GetData() {
|
|||
mIsWaylandDRM = nsWaylandDisplay::IsDMABufEnabled();
|
||||
}
|
||||
#endif
|
||||
|
||||
// Make a best effort guess at the desktop environment in use. Sadly there
|
||||
// does not appear to be a standard way to do this, so we check a few
|
||||
// different environment variables and search for relevant keywords.
|
||||
const char* desktopEnv = getenv("XDG_CURRENT_DESKTOP");
|
||||
if (!desktopEnv) {
|
||||
desktopEnv = getenv("DESKTOP_SESSION");
|
||||
}
|
||||
|
||||
if (desktopEnv) {
|
||||
std::string currentDesktop(desktopEnv);
|
||||
for (auto& c : currentDesktop) {
|
||||
c = std::tolower(c);
|
||||
}
|
||||
|
||||
if (currentDesktop.find("gnome") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopGNOME),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("kde") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopKDE),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("xfce") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopXFCE),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("cinnamon") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopCinnamon),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("enlightenment") != std::string::npos) {
|
||||
CopyUTF16toUTF8(
|
||||
GfxDriverInfo::GetDesktopEnvironment(DesktopEnlightenment),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("lxde") != std::string::npos ||
|
||||
currentDesktop.find("lubuntu") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopLXDE),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("openbox") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopOpenbox),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("i3") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopI3),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("mate") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopMate),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("unity") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopUnity),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("pantheon") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopPantheon),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("lxqt") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopLXQT),
|
||||
mDesktopEnvironment);
|
||||
} else if (currentDesktop.find("deepin") != std::string::npos) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopDeepin),
|
||||
mDesktopEnvironment);
|
||||
}
|
||||
}
|
||||
|
||||
if (mDesktopEnvironment.IsEmpty()) {
|
||||
if (getenv("GNOME_DESKTOP_SESSION_ID")) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopGNOME),
|
||||
mDesktopEnvironment);
|
||||
} else if (getenv("KDE_FULL_SESSION")) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopKDE),
|
||||
mDesktopEnvironment);
|
||||
} else if (getenv("MATE_DESKTOP_SESSION_ID")) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopMate),
|
||||
mDesktopEnvironment);
|
||||
} else if (getenv("LXQT_SESSION_CONFIG")) {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopLXQT),
|
||||
mDesktopEnvironment);
|
||||
} else {
|
||||
CopyUTF16toUTF8(GfxDriverInfo::GetDesktopEnvironment(DesktopUnknown),
|
||||
mDesktopEnvironment);
|
||||
}
|
||||
}
|
||||
|
||||
AddCrashReportAnnotations();
|
||||
}
|
||||
|
||||
|
@ -419,10 +337,8 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
if (!sDriverInfo->Length()) {
|
||||
// Mesa 10.0 provides the GLX_MESA_query_renderer extension, which allows us
|
||||
// to query device IDs backing a GL context for blacklisting.
|
||||
APPEND_TO_DRIVER_BLOCKLIST_EXT(
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAll),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverMesaAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
|
@ -430,10 +346,8 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
V(10, 0, 0, 0), "FEATURE_FAILURE_OLD_MESA", "Mesa 10.0");
|
||||
|
||||
// NVIDIA baseline (ported from old blocklist)
|
||||
APPEND_TO_DRIVER_BLOCKLIST_EXT(
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverNonMesaAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
|
@ -444,6 +358,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
V(13, 15, 100, 1), "FEATURE_FAILURE_OLD_FGLRX", "fglrx 13.15.100.1");
|
||||
|
@ -455,15 +370,14 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
V(18, 0, 0, 0), "FEATURE_FAILURE_WEBRENDER_OLD_MESA", "Mesa 18.0.0.0");
|
||||
|
||||
// Nvidia Mesa baseline, see bug 1563859.
|
||||
APPEND_TO_DRIVER_BLOCKLIST_EXT(
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverMesaAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
|
@ -471,10 +385,8 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
V(18, 2, 0, 0), "FEATURE_FAILURE_WEBRENDER_OLD_MESA", "Mesa 18.2.0.0");
|
||||
|
||||
// Disable on all Nvidia devices not using Mesa for now.
|
||||
APPEND_TO_DRIVER_BLOCKLIST_EXT(
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverNonMesaAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
|
@ -482,10 +394,8 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
V(0, 0, 0, 0), "FEATURE_FAILURE_WEBRENDER_NO_LINUX_NVIDIA", "");
|
||||
|
||||
// ATI Mesa baseline, chosen arbitrarily.
|
||||
APPEND_TO_DRIVER_BLOCKLIST_EXT(
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverMesaAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
|
@ -493,10 +403,8 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
V(18, 0, 0, 0), "FEATURE_FAILURE_WEBRENDER_OLD_MESA", "Mesa 18.0.0.0");
|
||||
|
||||
// Disable on all ATI devices not using Mesa for now.
|
||||
APPEND_TO_DRIVER_BLOCKLIST_EXT(
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Linux,
|
||||
(nsAString&)GfxDriverInfo::GetDesktopEnvironment(DesktopAll),
|
||||
(nsAString&)GfxDriverInfo::GetWindowProtocol(WindowingAll),
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverNonMesaAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
|
@ -506,17 +414,6 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
return *sDriverInfo;
|
||||
}
|
||||
|
||||
bool GfxInfo::DoesWindowProtocolMatch(const nsAString& aBlocklistWindowProtocol,
|
||||
const nsAString& aWindowProtocol) {
|
||||
if (mIsWayland && aBlocklistWindowProtocol.Equals(
|
||||
GfxDriverInfo::GetWindowProtocol(WindowingWaylandAll),
|
||||
nsCaseInsensitiveStringComparator())) {
|
||||
return true;
|
||||
}
|
||||
return GfxInfoBase::DoesWindowProtocolMatch(aBlocklistWindowProtocol,
|
||||
aWindowProtocol);
|
||||
}
|
||||
|
||||
bool GfxInfo::DoesDriverVendorMatch(const nsAString& aBlocklistVendor,
|
||||
const nsAString& aDriverVendor) {
|
||||
if (mIsMesa &&
|
||||
|
@ -597,24 +494,16 @@ GfxInfo::GetCleartypeParameters(nsAString& aCleartypeParams) {
|
|||
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetWindowProtocol(nsAString& aWindowProtocol) {
|
||||
GetData();
|
||||
if (mIsWayland) {
|
||||
if (mIsWaylandDRM) {
|
||||
aWindowProtocol = GfxDriverInfo::GetWindowProtocol(WindowingWaylandDRM);
|
||||
aWindowProtocol.AssignLiteral("wayland (drm)");
|
||||
} else {
|
||||
aWindowProtocol = GfxDriverInfo::GetWindowProtocol(WindowingWayland);
|
||||
aWindowProtocol.AssignLiteral("wayland");
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
aWindowProtocol = GfxDriverInfo::GetWindowProtocol(WindowingX11);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetDesktopEnvironment(nsAString& aDesktopEnvironment) {
|
||||
GetData();
|
||||
AppendASCIItoUTF16(mDesktopEnvironment, aDesktopEnvironment);
|
||||
aWindowProtocol.AssignLiteral("x11");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@ class GfxInfo final : public GfxInfoBase {
|
|||
NS_IMETHOD GetDWriteVersion(nsAString& aDwriteVersion) override;
|
||||
NS_IMETHOD GetCleartypeParameters(nsAString& aCleartypeParams) override;
|
||||
NS_IMETHOD GetWindowProtocol(nsAString& aWindowProtocol) override;
|
||||
NS_IMETHOD GetDesktopEnvironment(nsAString& aDesktopEnvironment) override;
|
||||
NS_IMETHOD GetAdapterDescription(nsAString& aAdapterDescription) override;
|
||||
NS_IMETHOD GetAdapterDriver(nsAString& aAdapterDriver) override;
|
||||
NS_IMETHOD GetAdapterVendorID(nsAString& aAdapterVendorID) override;
|
||||
|
@ -68,10 +67,6 @@ class GfxInfo final : public GfxInfoBase {
|
|||
OperatingSystem* aOS = nullptr) override;
|
||||
virtual const nsTArray<GfxDriverInfo>& GetGfxDriverInfo() override;
|
||||
|
||||
virtual bool DoesWindowProtocolMatch(
|
||||
const nsAString& aBlocklistWindowProtocol,
|
||||
const nsAString& aWindowProtocol) override;
|
||||
|
||||
virtual bool DoesDriverVendorMatch(const nsAString& aBlocklistVendor,
|
||||
const nsAString& aDriverVendor) override;
|
||||
|
||||
|
@ -84,7 +79,6 @@ class GfxInfo final : public GfxInfoBase {
|
|||
uint32_t mAdapterRAM;
|
||||
nsCString mOS;
|
||||
nsCString mOSRelease;
|
||||
nsAutoCStringN<16> mDesktopEnvironment;
|
||||
|
||||
struct ScreenInfo {
|
||||
uint32_t mWidth;
|
||||
|
|
|
@ -139,12 +139,7 @@ GfxInfo::GetCleartypeParameters(nsAString& aCleartypeParams) {
|
|||
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetWindowProtocol(nsAString& aWindowProtocol) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetDesktopEnvironment(nsAString& aDesktopEnvironment) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
void GfxInfo::EnsureInitialized() {
|
||||
|
@ -374,6 +369,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Android,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAll),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS,
|
||||
nsIGfxInfo::FEATURE_STATUS_OK, DRIVER_COMPARISON_IGNORED,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_OK_FORCE_OPENGL");
|
||||
|
|
|
@ -32,7 +32,6 @@ class GfxInfo : public GfxInfoBase {
|
|||
NS_IMETHOD GetDWriteVersion(nsAString& aDwriteVersion) override;
|
||||
NS_IMETHOD GetCleartypeParameters(nsAString& aCleartypeParams) override;
|
||||
NS_IMETHOD GetWindowProtocol(nsAString& aWindowProtocol) override;
|
||||
NS_IMETHOD GetDesktopEnvironment(nsAString& aDesktopEnvironment) override;
|
||||
NS_IMETHOD GetAdapterDescription(nsAString& aAdapterDescription) override;
|
||||
NS_IMETHOD GetAdapterDriver(nsAString& aAdapterDriver) override;
|
||||
NS_IMETHOD GetAdapterVendorID(nsAString& aAdapterVendorID) override;
|
||||
|
|
|
@ -24,7 +24,6 @@ class GfxInfo : public GfxInfoBase {
|
|||
NS_IMETHOD GetDWriteEnabled(bool* aDWriteEnabled) override;
|
||||
NS_IMETHOD GetDWriteVersion(nsAString& aDwriteVersion) override;
|
||||
NS_IMETHOD GetWindowProtocol(nsAString& aWindowProtocol) override;
|
||||
NS_IMETHOD GetDesktopEnvironment(nsAString& aDesktopEnvironment) override;
|
||||
NS_IMETHOD GetCleartypeParameters(nsAString& aCleartypeParams) override;
|
||||
NS_IMETHOD GetAdapterDescription(nsAString& aAdapterDescription) override;
|
||||
NS_IMETHOD GetAdapterDriver(nsAString& aAdapterDriver) override;
|
||||
|
|
|
@ -123,11 +123,7 @@ GfxInfo::GetCleartypeParameters(nsAString& aCleartypeParams) { return NS_ERROR_F
|
|||
|
||||
/* readonly attribute DOMString windowProtocol; */
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetWindowProtocol(nsAString& aWindowProtocol) { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||
|
||||
/* readonly attribute DOMString desktopEnvironment; */
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetDesktopEnvironment(nsAString& aDesktopEnvironment) { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||
GfxInfo::GetWindowProtocol(nsAString& aWindowProtocol) { return NS_ERROR_FAILURE; }
|
||||
|
||||
/* readonly attribute DOMString adapterDescription; */
|
||||
NS_IMETHODIMP
|
||||
|
@ -279,24 +275,28 @@ void GfxInfo::AddCrashReportAnnotations() {
|
|||
}
|
||||
|
||||
// We don't support checking driver versions on Mac.
|
||||
#define IMPLEMENT_MAC_DRIVER_BLOCKLIST(os, vendor, device, features, blockOn, ruleId) \
|
||||
APPEND_TO_DRIVER_BLOCKLIST(os, vendor, device, features, blockOn, DRIVER_COMPARISON_IGNORED, \
|
||||
V(0, 0, 0, 0), ruleId, "")
|
||||
#define IMPLEMENT_MAC_DRIVER_BLOCKLIST(os, vendor, driverVendor, device, features, blockOn, \
|
||||
ruleId) \
|
||||
APPEND_TO_DRIVER_BLOCKLIST(os, vendor, driverVendor, device, features, blockOn, \
|
||||
DRIVER_COMPARISON_IGNORED, V(0, 0, 0, 0), ruleId, "")
|
||||
|
||||
const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
||||
if (!sDriverInfo->Length()) {
|
||||
IMPLEMENT_MAC_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::OSX, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(RadeonX1000),
|
||||
nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
"FEATURE_FAILURE_MAC_RADEONX1000_NO_TEXTURE2D");
|
||||
IMPLEMENT_MAC_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::OSX, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Geforce7300GT),
|
||||
nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
"FEATURE_FAILURE_MAC_7300_NO_WEBGL");
|
||||
IMPLEMENT_MAC_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::OSX, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelHDGraphicsToIvyBridge),
|
||||
nsIGfxInfo::FEATURE_GL_SWIZZLE, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
"FEATURE_FAILURE_MAC_INTELHD4000_NO_SWIZZLE");
|
||||
|
|
|
@ -23,7 +23,6 @@ interface nsIGfxInfo : nsISupports
|
|||
* These are non-Android linux-specific
|
||||
*/
|
||||
readonly attribute AString windowProtocol;
|
||||
readonly attribute AString desktopEnvironment;
|
||||
|
||||
/*
|
||||
* These are valid across all platforms.
|
||||
|
|
|
@ -126,12 +126,7 @@ GfxInfo::GetCleartypeParameters(nsAString& aCleartypeParams) {
|
|||
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetWindowProtocol(nsAString& aWindowProtocol) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
GfxInfo::GetDesktopEnvironment(nsAString& aDesktopEnvironment) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
static nsresult GetKeyValue(const WCHAR* keyLocation, const WCHAR* keyName,
|
||||
|
@ -1131,6 +1126,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
|
||||
V(8, 15, 11, 8745), "FEATURE_FAILURE_NV_W7_15",
|
||||
|
@ -1138,6 +1134,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE_START, V(8, 16, 10, 0000), V(8, 16, 11, 8745),
|
||||
|
@ -1147,6 +1144,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE_START, V(8, 17, 10, 0000), V(8, 17, 11, 8745),
|
||||
|
@ -1158,12 +1156,14 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
V(8, 56, 1, 15), "FEATURE_FAILURE_AMD1", "8.56.1.15");
|
||||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
V(8, 56, 1, 15), "FEATURE_FAILURE_AMD2", "8.56.1.15");
|
||||
|
@ -1172,6 +1172,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL,
|
||||
V(8, 832, 0, 0), "FEATURE_FAILURE_BUG_1099252");
|
||||
|
@ -1180,6 +1181,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL,
|
||||
V(8, 783, 2, 2000), "FEATURE_FAILURE_BUG_1118695");
|
||||
|
@ -1195,6 +1197,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL,
|
||||
V(22, 19, 162, 4), "FEATURE_FAILURE_BUG_1587155");
|
||||
|
@ -1203,6 +1206,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(15, 200, 0, 0), V(15, 200, 1062, 1004), "FEATURE_FAILURE_BUG_1198815",
|
||||
|
@ -1212,6 +1216,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(15, 200, 0, 0), V(15, 301, 2301, 1002), "FEATURE_FAILURE_BUG_1267970",
|
||||
|
@ -1219,6 +1224,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(16, 100, 0, 0), V(16, 300, 2311, 0), "FEATURE_FAILURE_BUG_1267970",
|
||||
|
@ -1230,6 +1236,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows8,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE_START, V(8, 982, 0, 0), V(8, 983, 0, 0),
|
||||
|
@ -1237,6 +1244,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows8,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE_START, V(8, 982, 0, 0), V(8, 983, 0, 0),
|
||||
|
@ -1248,6 +1256,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(RadeonCaicos),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
|
@ -1262,12 +1271,14 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS,
|
||||
nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_OGL_ATI_DIS");
|
||||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS,
|
||||
nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_OGL_AMD_DIS");
|
||||
|
@ -1282,6 +1293,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
#define IMPLEMENT_INTEL_DRIVER_BLOCKLIST(winVer, devFamily, driverVer, ruleId) \
|
||||
APPEND_TO_DRIVER_BLOCKLIST2( \
|
||||
winVer, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel), \
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll), \
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(devFamily), \
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, \
|
||||
DRIVER_LESS_THAN, driverVer, ruleId)
|
||||
|
@ -1290,6 +1302,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
ruleId) \
|
||||
APPEND_TO_DRIVER_BLOCKLIST2( \
|
||||
winVer, (nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel), \
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll), \
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(devFamily), \
|
||||
nsIGfxInfo::FEATURE_DIRECT2D, \
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BUILD_ID_LESS_THAN, \
|
||||
|
@ -1320,6 +1333,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1351,6 +1365,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD),
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_EQUAL, V(8, 15, 10, 1749), "FEATURE_FAILURE_BUG_1074378_1",
|
||||
|
@ -1358,6 +1373,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(
|
||||
IntelHDGraphicsToSandyBridge),
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
|
@ -1368,6 +1384,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS,
|
||||
nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_INTEL_OGL_DIS");
|
||||
|
@ -1379,6 +1396,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelHD3000),
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BUILD_ID_LESS_THAN_OR_EQUAL, 2321, "FEATURE_FAILURE_BUG_1018278",
|
||||
|
@ -1391,6 +1409,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(
|
||||
IntelHDGraphicsToHaswell),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
|
@ -1404,6 +1423,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelMobileHDGraphics),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
|
||||
|
@ -1415,6 +1435,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows8,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelMobileHDGraphics),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
|
||||
|
@ -1426,6 +1447,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(
|
||||
IntelHDGraphicsToSandyBridge),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
|
@ -1438,6 +1460,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1116812),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
|
@ -1450,6 +1473,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1207665),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
|
@ -1457,6 +1481,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1207665),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1465,6 +1490,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorQualcomm),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_QUALCOMM");
|
||||
|
@ -1476,6 +1502,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorQualcomm),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL,
|
||||
V(25, 18, 10440, 0), "FEATURE_FAILURE_BUG_1592826");
|
||||
|
@ -1486,6 +1513,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE_START, V(14, 1, 0, 0), V(14, 2, 0, 0),
|
||||
|
@ -1493,6 +1521,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DIRECT2D,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE_START, V(14, 1, 0, 0), V(14, 2, 0, 0),
|
||||
|
@ -1504,6 +1533,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(NvidiaBlockD3D9Layers),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
|
@ -1513,6 +1543,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorMicrosoft),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
V(6, 2, 0, 0), "< 6.2.0.0", "FEATURE_FAILURE_REMOTE_FX");
|
||||
|
@ -1521,6 +1552,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Nvidia310M),
|
||||
nsIGfxInfo::FEATURE_DIRECT2D, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1530,6 +1562,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL,
|
||||
V(15, 200, 1006, 0), "FEATURE_FAILURE_BUG_1139503");
|
||||
|
@ -1538,6 +1571,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(8, 861, 0, 0), V(8, 862, 6, 5000), "FEATURE_FAILURE_BUG_1213107_1",
|
||||
|
@ -1545,6 +1579,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_ANGLE,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(8, 861, 0, 0), V(8, 862, 6, 5000), "FEATURE_FAILURE_BUG_1213107_2",
|
||||
|
@ -1554,6 +1589,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1155608),
|
||||
nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
|
@ -1563,6 +1599,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BUILD_ID_LESS_THAN_OR_EQUAL, 2849,
|
||||
|
@ -1571,6 +1608,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Nvidia8800GTS),
|
||||
nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_EQUAL,
|
||||
|
@ -1581,6 +1619,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE_GPU2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1137716),
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE, V(8, 17, 12, 5730), V(8, 17, 12, 6901),
|
||||
|
@ -1591,6 +1630,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
|
@ -1600,6 +1640,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::WindowsXP,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD),
|
||||
nsIGfxInfo::FEATURE_WEBGL_ANGLE, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1608,6 +1649,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::WindowsXP,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(
|
||||
IntelHDGraphicsToSandyBridge),
|
||||
nsIGfxInfo::FEATURE_WEBGL_ANGLE, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
|
@ -1618,6 +1660,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX3000),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
|
@ -1629,6 +1672,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1403353");
|
||||
|
@ -1642,6 +1686,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL,
|
||||
nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN,
|
||||
V(16, 200, 1010, 1002), "WEBGL_NATIVE_GL_OLD_AMD");
|
||||
|
@ -1650,6 +1695,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL,
|
||||
nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_BUILD_ID_LESS_THAN, 4331,
|
||||
"WEBGL_NATIVE_GL_OLD_INTEL");
|
||||
|
@ -1658,6 +1704,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL,
|
||||
nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, V(10, 18, 13, 6200),
|
||||
"WEBGL_NATIVE_GL_OLD_NVIDIA");
|
||||
|
@ -1669,6 +1716,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAMD),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DX_INTEROP2,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "DX_INTEROP2_AMD_CRASH");
|
||||
|
@ -1680,6 +1728,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(
|
||||
IntelHDGraphicsToSandyBridge),
|
||||
nsIGfxInfo::FEATURE_D3D11_KEYED_MUTEX,
|
||||
|
@ -1690,6 +1739,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_ADVANCED_LAYERS,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(23, 21, 13, 8569), V(23, 21, 13, 9135), "FEATURE_FAILURE_BUG_1419264",
|
||||
|
@ -1699,12 +1749,14 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1447141),
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_EQUAL, V(15, 201, 2201, 0), "FEATURE_FAILURE_BUG_1447141_1");
|
||||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorATI),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(Bug1447141),
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_EQUAL, V(15, 201, 1701, 0), "FEATURE_FAILURE_BUG_1447141_1");
|
||||
|
@ -1713,6 +1765,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_EQUAL, V(24, 21, 13, 9731),
|
||||
"FEATURE_FAILURE_BUG_1457758");
|
||||
|
@ -1724,6 +1777,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(
|
||||
IntelHDGraphicsToSandyBridge),
|
||||
nsIGfxInfo::FEATURE_DX_NV12, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
|
@ -1736,6 +1790,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_DX_P010,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions, "FEATURE_UNQUALIFIED_P010_NVIDIA");
|
||||
|
@ -1749,6 +1804,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(NvidiaBlockWebRender),
|
||||
nsIGfxInfo::FEATURE_WEBRENDER, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1758,6 +1814,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows7,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAll),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1765,6 +1822,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows8,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAll),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1772,6 +1830,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows8_1,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorAll),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN,
|
||||
GfxDriverInfo::allDriverVersions,
|
||||
|
@ -1785,6 +1844,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(10, 18, 15, 4256), V(10, 18, 15, 4281),
|
||||
|
@ -1793,6 +1853,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(20, 19, 15, 4285), V(20, 19, 15, 4835),
|
||||
|
@ -1801,6 +1862,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST_RANGE(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BETWEEN_INCLUSIVE,
|
||||
V(21, 20, 16, 4471), V(21, 20, 16, 4565),
|
||||
|
@ -1810,6 +1872,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
|
||||
V(21, 20, 16, 4590), "Intel driver >= 21.20.16.4590");
|
||||
|
@ -1821,6 +1884,7 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
|
|||
APPEND_TO_DRIVER_BLOCKLIST2(
|
||||
OperatingSystem::Windows10,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel),
|
||||
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
|
||||
(GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelHD520),
|
||||
nsIGfxInfo::FEATURE_WEBRENDER_COMPOSITOR,
|
||||
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_LESS_THAN_OR_EQUAL,
|
||||
|
|
|
@ -26,7 +26,6 @@ class GfxInfo : public GfxInfoBase {
|
|||
NS_IMETHOD GetDWriteVersion(nsAString& aDwriteVersion) override;
|
||||
NS_IMETHOD GetCleartypeParameters(nsAString& aCleartypeParams) override;
|
||||
NS_IMETHOD GetWindowProtocol(nsAString& aWindowProtocol) override;
|
||||
NS_IMETHOD GetDesktopEnvironment(nsAString& aDesktopEnvironment) override;
|
||||
NS_IMETHOD GetAdapterDescription(nsAString& aAdapterDescription) override;
|
||||
NS_IMETHOD GetAdapterDriver(nsAString& aAdapterDriver) override;
|
||||
NS_IMETHOD GetAdapterVendorID(nsAString& aAdapterVendorID) override;
|
||||
|
|
Загрузка…
Ссылка в новой задаче