Bug 1629357 - Make WebGPU dependent on WebRender feature r=aosmond

WebGPU itself doesn't care about WebRender or even the GPU process.
However, the presentation to canvas as written today only works with WebRender, so
it seems fine to have it as a dependency in general.

An alternative could be to just fail getContext() call if webrender is disabled.

Differential Revision: https://phabricator.services.mozilla.com/D70888
This commit is contained in:
Dzmitry Malyshau 2020-11-16 15:25:39 +00:00
parent 8587608ed8
commit 67a1f9eb04
5 changed files with 13 additions and 3 deletions

View File

@ -1,7 +1,8 @@
[DEFAULT]
subsuite = webgpu
prefs = dom.webgpu.enabled=true
run_if = nightly_build
run-if = nightly_build && webrender
prefs =
dom.webgpu.enabled=true
[test_enabled.html]
[test_device_creation.html]

View File

@ -26,6 +26,8 @@ const char* FeatureStatusToString(FeatureStatus aStatus) {
return "unavailable-not-built";
case FeatureStatus::UnavailableNoAngle:
return "unavailable-no-angle";
case FeatureStatus::UnavailableNoWebRender:
return "unavailable-no-webrender";
case FeatureStatus::CrashedInHandler:
return "crashed";
case FeatureStatus::Blocked:

View File

@ -26,6 +26,7 @@ enum class FeatureStatus {
UnavailableNoHwCompositing,
UnavailableNotBuilt,
UnavailableNoAngle,
UnavailableNoWebRender,
// This feature crashed immediately when we tried to initialize it, but we
// were able to recover via SEH (or something similar).

View File

@ -2882,6 +2882,11 @@ void gfxPlatform::InitWebGPUConfig() {
"WebGPU can only be enabled in nightly",
"WEBGPU_DISABLE_NON_NIGHTLY"_ns);
#endif
if (!UseWebRender()) {
feature.ForceDisable(FeatureStatus::UnavailableNoWebRender,
"WebGPU can't present without WebRender",
"FEATURE_FAILURE_WEBGPU_NEED_WEBRENDER"_ns);
}
}
void gfxPlatform::InitOMTPConfig() {

View File

@ -555,7 +555,8 @@ mochitest-webgpu:
by-test-platform:
.*mingw.*: ["release"]
.*shippable.*: ["mozilla-central"]
default: ["trunk"]
(!-shippable).*-qr.*: ["trunk"]
default: []
tier: default
max-run-time:
by-test-platform: