mirror of
https://github.com/maplibre/maplibre-rs.git
synced 2025-12-08 19:05:57 +00:00
* Introduce proper error types for a lot of functions, remove main catch-all type * Fix compilation and clippy issues * Map, unmap and drop always * Remove not required parentheses * Fix running on non-vulkan platforms * Add and use thiserror crate
39 lines
1.2 KiB
Rust
39 lines
1.2 KiB
Rust
use criterion::{criterion_group, criterion_main, Criterion};
|
|
use maplibre::{
|
|
coords::{WorldTileCoords, ZoomLevel},
|
|
headless::{create_headless_renderer, map::HeadlessMap},
|
|
platform::run_multithreaded,
|
|
style::Style,
|
|
};
|
|
|
|
fn headless_render(c: &mut Criterion) {
|
|
c.bench_function("headless_render", |b| {
|
|
let (mut map, tile) = run_multithreaded(async {
|
|
let (kernel, renderer) = create_headless_renderer(1000, None).await;
|
|
let style = Style::default();
|
|
let map = HeadlessMap::new(style, renderer, kernel, false).unwrap();
|
|
|
|
let tile = map
|
|
.fetch_tile(WorldTileCoords::from((0, 0, ZoomLevel::default())))
|
|
.await
|
|
.expect("Failed to fetch!");
|
|
|
|
let tile = map
|
|
.process_tile(tile, &["water"])
|
|
.await
|
|
.expect("Failed to process!");
|
|
|
|
(map, tile)
|
|
});
|
|
|
|
b.iter(|| {
|
|
map.render_tile(tile.clone());
|
|
});
|
|
});
|
|
}
|
|
|
|
criterion_group!(name = benches;
|
|
config = Criterion::default().significance_level(0.1).sample_size(20);
|
|
targets = headless_render);
|
|
criterion_main!(benches);
|