- ``RUSTICL_ENABLE=iris:1,radeonsi:0,2`` (enables second iris and first
and third radeonsi device)
+.. envvar:: RUSTICL_FEATURES
+
+ a comma-separated list of features to enable. Those are disabled by default
+ as they might not be stable enough or break OpenCL conformance.
+
.. envvar:: RUSTICL_DEBUG
a comma-separated list of debug channels to enable.
pub program: bool,
}
+pub struct PlatformFeatures {}
+
static PLATFORM_ENV_ONCE: Once = Once::new();
static PLATFORM_ONCE: Once = Once::new();
devs: Vec::new(),
};
static mut PLATFORM_DBG: PlatformDebug = PlatformDebug { program: false };
+static mut PLATFORM_FEATURES: PlatformFeatures = PlatformFeatures {};
fn load_env() {
let debug = unsafe { &mut PLATFORM_DBG };
}
}
}
+
+ let features = unsafe { &mut PLATFORM_FEATURES };
+ if let Ok(feature_flags) = env::var("RUSTICL_FEATURES") {
+ for flag in feature_flags.split(',') {
+ match flag {
+ _ => eprintln!("Unknown RUSTICL_FEATURES flag found: {}", flag),
+ }
+ }
+ }
}
impl Platform {
unsafe { &PLATFORM_DBG }
}
+ pub fn features() -> &'static PlatformFeatures {
+ debug_assert!(PLATFORM_ENV_ONCE.is_completed());
+ unsafe { &PLATFORM_FEATURES }
+ }
+
fn init(&mut self) {
unsafe {
glsl_type_singleton_init_or_ref();