diff --git a/schemsearch-lib/src/search.rs b/schemsearch-lib/src/search.rs index c7b88b3..e94a55d 100755 --- a/schemsearch-lib/src/search.rs +++ b/schemsearch-lib/src/search.rs @@ -1,4 +1,4 @@ -use std::sync::OnceLock; +use lazy_static::lazy_static; use math::round::ceil; use schemsearch_common::Match; use schemsearch_files::SpongeSchematic; @@ -6,7 +6,11 @@ use schemsearch_ocl_matcher::{ocl_available, ocl_search}; use crate::{SearchBehavior}; use crate::pattern_mapper::{match_palette, match_palette_adapt}; -const OPENCL_AVAILABLE: OnceLock = OnceLock::new(); +lazy_static! { + static ref OPENCL_AVAILABLE: bool = { + ocl_available() + }; +} pub fn search( schem: SpongeSchematic, @@ -44,7 +48,7 @@ pub fn search( let schem_height = schem.height as usize; let schem_length = schem.length as usize; - if !search_behavior.use_cpu && *OPENCL_AVAILABLE.get_or_init(|| ocl_available()) { + if !search_behavior.use_cpu && *OPENCL_AVAILABLE { return ocl_search(schem_data.as_slice(), [schem_width, schem_height, schem_length], pattern_schem.block_data.as_slice(), [pattern_width, pattern_height, pattern_length], *air_id, search_behavior).unwrap() }