Bug 1341959: Part 1. Allow WebGL2 to be blocked separately from WebGL overall. r=mchang

MozReview-Commit-ID: ABpjtMSTA8L

--HG--
extra : rebase_source : f6bd8b11d11c259951f483af0e999d0e90e25442
This commit is contained in:
Milan Sreckovic 2017-03-02 15:48:06 -05:00
Родитель c423bdbe47
Коммит 09461fd1e5
6 изменённых файлов: 77 добавлений и 1 удалений

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

@ -285,6 +285,21 @@
<driverVersionComparator> BETWEEN_INCLUSIVE_START </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL2 </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1000 </driverVersion>
<driverVersionMax> 8.52.322.1112 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE_START </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>

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

@ -93,6 +93,18 @@
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xabcd</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL2 </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xabcd</vendor>
@ -287,6 +299,18 @@
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>Darwin 13</os>
<vendor>0xabcd</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL2 </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>Darwin 13</os>
<vendor>0xabcd</vendor>
@ -481,6 +505,18 @@
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>Linux</os>
<vendor>0xabcd</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL2 </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>Linux</os>
<vendor>0xabcd</vendor>
@ -675,6 +711,18 @@
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>Android</os>
<vendor>0xabcd</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL2 </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>Android</os>
<vendor>0xabcd</vendor>

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

@ -104,6 +104,10 @@ function run_test() {
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
do_check_eq(failureId.value, "FEATURE_FAILURE_DL_BLACKLIST_NO_ID");
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBGL2, failureId);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
do_check_eq(failureId.value, "FEATURE_FAILURE_DL_BLACKLIST_NO_ID");
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBGL_MSAA, failureId);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);

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

@ -166,6 +166,9 @@ GetPrefNameForFeature(int32_t aFeature)
case nsIGfxInfo::FEATURE_CANVAS2D_ACCELERATION:
name = BLACKLIST_PREF_BRANCH "canvas2d.acceleration";
break;
case nsIGfxInfo::FEATURE_WEBGL2:
name = BLACKLIST_PREF_BRANCH "webgl2";
break;
case nsIGfxInfo::FEATURE_VP8_HW_DECODE:
case nsIGfxInfo::FEATURE_VP9_HW_DECODE:
case nsIGfxInfo::FEATURE_DX_INTEROP2:
@ -344,6 +347,8 @@ BlacklistFeatureToGfxFeature(const nsAString& aFeature)
return nsIGfxInfo::FEATURE_WEBRTC_HW_ACCELERATION;
else if (aFeature.EqualsLiteral("CANVAS2D_ACCELERATION"))
return nsIGfxInfo::FEATURE_CANVAS2D_ACCELERATION;
else if (aFeature.EqualsLiteral("WEBGL2"))
return nsIGfxInfo::FEATURE_WEBGL2;
// If we don't recognize the feature, it may be new, and something
// this version doesn't understand. So, nothing to do. This is
@ -973,6 +978,7 @@ GfxInfoBase::EvaluateDownloadedBlacklist(nsTArray<GfxDriverInfo>& aDriverInfo)
nsIGfxInfo::FEATURE_STAGEFRIGHT,
nsIGfxInfo::FEATURE_WEBRTC_HW_ACCELERATION,
nsIGfxInfo::FEATURE_CANVAS2D_ACCELERATION,
nsIGfxInfo::FEATURE_WEBGL2,
0
};

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

@ -313,6 +313,7 @@ GfxInfo::GetFeatureStatusImpl(int32_t aFeature,
// Only check features relevant to Linux.
if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS ||
aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL ||
aFeature == nsIGfxInfo::FEATURE_WEBGL2 ||
aFeature == nsIGfxInfo::FEATURE_WEBGL_MSAA) {
// whitelist the linux test slaves' current configuration.

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

@ -121,8 +121,10 @@ interface nsIGfxInfo : nsISupports
const long FEATURE_DX_INTEROP2 = 19;
/* Whether the GPU process is supported, starting in 52. */
const long FEATURE_GPU_PROCESS = 20;
/* Whether the WebGL2 is supported, starting in 54 */
const long FEATURE_WEBGL2 = 21;
/* the maximum feature value. */
const long FEATURE_MAX_VALUE = FEATURE_GPU_PROCESS;
const long FEATURE_MAX_VALUE = FEATURE_WEBGL2;
/*
* A set of return values from GetFeatureStatus