Bug 1563859 - Enable WebRender on Linux with Nvidia hardware and Mesa drivers. r=jrmuizel

Differential Revision: https://phabricator.services.mozilla.com/D37924

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jan Andre Ikenmeyer 2019-07-12 20:46:03 +00:00
Родитель affddc7861
Коммит c4f6b66520
4 изменённых файлов: 25 добавлений и 2 удалений

Просмотреть файл

@ -48,6 +48,8 @@ const char* FeatureStatusToString(FeatureStatus aStatus) {
return "blocked-release-channel-intel";
case FeatureStatus::BlockedReleaseChannelAMD:
return "blocked-release-channel-amd";
case FeatureStatus::BlockedReleaseChannelNvidia:
return "blocked-release-channel-nvidia";
case FeatureStatus::BlockedReleaseChannelBattery:
return "blocked-release-channel-battery";
case FeatureStatus::Blacklisted:

Просмотреть файл

@ -42,6 +42,7 @@ enum class FeatureStatus {
BlockedOverride,
BlockedReleaseChannelIntel,
BlockedReleaseChannelAMD,
BlockedReleaseChannelNvidia,
BlockedReleaseChannelBattery,
// This feature has been blocked by the graphics blacklist.

Просмотреть файл

@ -2637,8 +2637,19 @@ static void UpdateWRQualificationForNvidia(FeatureState& aFeature,
// aOutGuardedByQualifiedPref as true unless the hardware is qualified
// for users on the release channel.
#if defined(XP_WIN)
// Nvidia devices with device id >= 0x6c0 got WR in release Firefox 67.
*aOutGuardedByQualifiedPref = false;
#elif defined(NIGHTLY_BUILD)
// Qualify on Linux Nightly, but leave *aOutGuardedByQualifiedPref as true
// to indicate users on release don't have it yet, and it's still guarded
// by the qualified pref.
#else
// Disqualify everywhere else
aFeature.Disable(
FeatureStatus::BlockedReleaseChannelNvidia, "Release channel and Nvidia",
NS_LITERAL_CSTRING("FEATURE_FAILURE_RELEASE_CHANNEL_NVIDIA"));
#endif
}
static void UpdateWRQualificationForAMD(FeatureState& aFeature,

Просмотреть файл

@ -350,11 +350,20 @@ const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
V(18, 0, 0, 0), "FEATURE_FAILURE_WEBRENDER_OLD_MESA", "Mesa 18.0.0.0");
// Disable on all NVIDIA devices for now.
// Nvidia Mesa baseline, see bug 1563859.
APPEND_TO_DRIVER_BLOCKLIST(
OperatingSystem::Linux,
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverVendorAll),
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverMesaAll),
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN,
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(
OperatingSystem::Linux,
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorNVIDIA),
(nsAString&)GfxDriverInfo::GetDriverVendor(DriverNonMesaAll),
GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBRENDER,
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_COMPARISON_IGNORED,
V(0, 0, 0, 0), "FEATURE_FAILURE_WEBRENDER_NO_LINUX_NVIDIA", "");