0
0
mirror of https://github.com/Pumpkin-MC/Pumpkin synced 2025-09-17 18:59:24 +00:00
Files
Pumpkin/pumpkin-world/benches/chunk.rs
Alexander Medvedev 9f94ce1d0d Made Chunks faster
Moreeee Speeeedddddd
2025-08-04 15:43:47 +02:00

58 lines
1.8 KiB
Rust

use criterion::{Criterion, criterion_group, criterion_main};
use pumpkin_data::noise_router::OVERWORLD_BASE_NOISE_ROUTER;
use pumpkin_world::{
GENERATION_SETTINGS, GeneratorSetting, GlobalRandomConfig, ProtoNoiseRouters,
bench_create_and_populate_biome, bench_create_and_populate_noise,
bench_create_and_populate_noise_with_surface, generation::proto_chunk::TerrainCache,
};
fn bench_terrain_gen(c: &mut Criterion) {
let seed = 0;
let random_config = GlobalRandomConfig::new(seed, false);
let base_router = ProtoNoiseRouters::generate(&OVERWORLD_BASE_NOISE_ROUTER, &random_config);
let surface_config = GENERATION_SETTINGS
.get(&GeneratorSetting::Overworld)
.unwrap();
let terrain_cache = TerrainCache::from_random(&random_config);
let default_block = surface_config.default_block.get_state();
c.bench_function("overworld biome", |b| {
b.iter(|| {
bench_create_and_populate_biome(
&base_router,
&random_config,
surface_config,
&terrain_cache,
default_block,
)
});
});
c.bench_function("overworld noise", |b| {
b.iter(|| {
bench_create_and_populate_noise(
&base_router,
&random_config,
surface_config,
&terrain_cache,
default_block,
)
});
});
c.bench_function("overworld surface", |b| {
b.iter(|| {
bench_create_and_populate_noise_with_surface(
&base_router,
&random_config,
surface_config,
&terrain_cache,
default_block,
)
});
});
}
criterion_group!(benches, bench_terrain_gen);
criterion_main!(benches);