mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
webgpu: Parse and forward backend prefs to wgpu (#32410)
Signed-off-by: Hieu Do <hieudn.uh@gmail.com>
This commit is contained in:
parent
500a475217
commit
3d70243438
3 changed files with 17 additions and 2 deletions
|
@ -206,6 +206,8 @@ mod gen {
|
|||
webgpu: {
|
||||
/// Enable WebGPU APIs.
|
||||
enabled: bool,
|
||||
/// List of comma-separated backends to be used by wgpu
|
||||
wgpu_backend: String,
|
||||
},
|
||||
bluetooth: {
|
||||
enabled: bool,
|
||||
|
|
|
@ -13,7 +13,8 @@ use arrayvec::ArrayVec;
|
|||
use base::id::PipelineId;
|
||||
use euclid::default::Size2D;
|
||||
use ipc_channel::ipc::{IpcReceiver, IpcSender, IpcSharedMemory};
|
||||
use log::{error, warn};
|
||||
use log::{error, info, warn};
|
||||
use servo_config::pref;
|
||||
use webrender::{RenderApi, RenderApiSender, Transaction};
|
||||
use webrender_api::{DirtyRect, DocumentId};
|
||||
use webrender_traits::{WebrenderExternalImageRegistry, WebrenderImageHandlerType};
|
||||
|
@ -21,6 +22,7 @@ use wgc::command::{ImageCopyBuffer, ImageCopyTexture};
|
|||
use wgc::device::queue::SubmittedWorkDoneClosure;
|
||||
use wgc::device::{DeviceDescriptor, HostMap, ImplicitPipelineIds};
|
||||
use wgc::id::DeviceId;
|
||||
use wgc::instance::parse_backends_from_comma_list;
|
||||
use wgc::pipeline::ShaderModuleDescriptor;
|
||||
use wgc::resource::{BufferMapCallback, BufferMapOperation};
|
||||
use wgc::{gfx_select, id};
|
||||
|
@ -88,10 +90,20 @@ impl WGPU {
|
|||
external_images: Arc<Mutex<WebrenderExternalImageRegistry>>,
|
||||
wgpu_image_map: Arc<Mutex<HashMap<u64, PresentationData>>>,
|
||||
) -> Self {
|
||||
let backend_pref = pref!(dom.webgpu.wgpu_backend);
|
||||
let backends = if backend_pref.is_empty() {
|
||||
wgt::Backends::PRIMARY
|
||||
} else {
|
||||
info!(
|
||||
"Selecting backends based on dom.webgpu.wgpu_backend pref: {:?}",
|
||||
backend_pref
|
||||
);
|
||||
parse_backends_from_comma_list(&backend_pref)
|
||||
};
|
||||
let global = Arc::new(wgc::global::Global::new(
|
||||
"wgpu-core",
|
||||
InstanceDescriptor {
|
||||
backends: wgt::Backends::PRIMARY,
|
||||
backends,
|
||||
..Default::default()
|
||||
},
|
||||
));
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
"dom.testing.htmlinputelement.select_files.enabled": false,
|
||||
"dom.webgl2.enabled": false,
|
||||
"dom.webgpu.enabled": false,
|
||||
"dom.webgpu.wgpu_backend": "",
|
||||
"dom.webrtc.enabled": false,
|
||||
"dom.webrtc.transceiver.enabled": false,
|
||||
"dom.webvr.enabled": false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue