From 1b6a04ca5504955c571d1c97504fb45ea0befee4 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 8 Jan 2024 01:21:28 +0400 Subject: Initial vendor packages Signed-off-by: Valentin Popov --- vendor/exr/benches/profiling.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vendor/exr/benches/profiling.rs (limited to 'vendor/exr/benches/profiling.rs') diff --git a/vendor/exr/benches/profiling.rs b/vendor/exr/benches/profiling.rs new file mode 100644 index 0000000..1ae8c0d --- /dev/null +++ b/vendor/exr/benches/profiling.rs @@ -0,0 +1,39 @@ +#[macro_use] +extern crate bencher; + +extern crate exr; +use exr::prelude::*; + +use bencher::Bencher; +use std::fs; +use std::io::Cursor; +use exr::image::pixel_vec::PixelVec; + +const PROFILING_REPETITIONS: i32 = 1; // make this 100 for profiling longer periods + +/// This is a suuuper long benchmark, to allow you to hook up a profiler while running it +/// but this means we don't want it in our normal benchmarks +fn read_single_image_from_buffer_rgba_f32_as_f16(bench: &mut Bencher) { + + let mut file = fs::read("tests/images/valid/custom/crowskull/crow_uncompressed.exr").unwrap(); + bencher::black_box(&mut file); + + bench.iter(||{ + for _ in 0 .. PROFILING_REPETITIONS { + let image = exr::prelude::read() + .no_deep_data().largest_resolution_level() + .rgba_channels(PixelVec::<(f16,f16,f16,f16)>::constructor, PixelVec::set_pixel) + .first_valid_layer().all_attributes() + .non_parallel() + .from_buffered(Cursor::new(file.as_slice())).unwrap(); + + bencher::black_box(image); + } + }) +} + +benchmark_group!(profiling, + read_single_image_from_buffer_rgba_f32_as_f16 +); + +benchmark_main!(profiling); \ No newline at end of file -- cgit v1.2.3