aboutsummaryrefslogtreecommitdiffstats
path: root/components/servo/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/servo/lib.rs')
-rw-r--r--components/servo/lib.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index 12f9862e7e0..93eaf04e099 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -22,6 +22,7 @@ use std::cmp::max;
use std::path::PathBuf;
use std::rc::Rc;
use std::sync::{Arc, Mutex};
+use std::thread;
use std::vec::Drain;
pub use base::id::TopLevelBrowsingContextId;
@@ -352,6 +353,17 @@ where
} else {
UploadMethod::PixelBuffer(ONE_TIME_USAGE_HINT)
};
+ let worker_threads = thread::available_parallelism()
+ .map(|i| i.get())
+ .unwrap_or(pref!(threadpools.fallback_worker_num) as usize)
+ .min(pref!(threadpools.webrender_workers.max).max(1) as usize);
+ let workers = Some(Arc::new(
+ rayon::ThreadPoolBuilder::new()
+ .num_threads(worker_threads)
+ .thread_name(|idx| format!("WRWorker#{}", idx))
+ .build()
+ .unwrap(),
+ ));
webrender::create_webrender_instance(
webrender_gl.clone(),
render_notifier,
@@ -374,6 +386,7 @@ where
allow_texture_swizzling: pref!(gfx.texture_swizzling.enabled),
clear_color,
upload_method,
+ workers,
..Default::default()
},
None,