diff --git a/gfx/wgpu_bindings/src/server.rs b/gfx/wgpu_bindings/src/server.rs index 7f917b593a3a..663e4c2b3413 100644 --- a/gfx/wgpu_bindings/src/server.rs +++ b/gfx/wgpu_bindings/src/server.rs @@ -89,12 +89,18 @@ pub extern "C" fn wgpu_server_new( ); wgc::instance::parse_backends_from_comma_list(&backends_pref) }; + + let mut instance_flags = wgt::InstanceFlags::from_build_config().with_env(); + if !static_prefs::pref!("dom.webgpu.hal-labels") { + instance_flags.insert(wgt::InstanceFlags::DISCARD_HAL_LABELS); + } + let global = wgc::global::Global::new( "wgpu", factory, wgt::InstanceDescriptor { backends, - flags: wgt::InstanceFlags::from_build_config().with_env(), + flags: instance_flags, dx12_shader_compiler: wgt::Dx12Compiler::Fxc, gles_minor_version: wgt::Gles3MinorVersion::Automatic, }, diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index fe680d47f12c..73e2d4942537 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -4571,6 +4571,15 @@ mirror: always rust: true +# Whether to pass labels to the hardware abstraction layer. This is only useful when +# inspecting a WebGPU workload in a GPU debugging tool like renderdoc. Enabling it +# exposes poorly tested driver API surfaces so it should not be enabled by default. +- name: dom.webgpu.hal-labels + type: bool + value: false + mirror: once + rust: true + # Is support for HTMLInputElement.webkitEntries enabled? - name: dom.webkitBlink.filesystem.enabled type: bool