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
Родитель 8587608ed8
Коммит 67a1f9eb04
5 изменённых файлов: 13 добавлений и 3 удалений

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

@ -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]

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

@ -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:

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

@ -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).

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

@ -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() {

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

@ -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: