#[repr(C)]
#[derive(Clone , Debug)]
pub enum GPUComputingBackend {
all = 0 ,
default_backend = 1 ,
vulkan = 2,
opengl = 3 ,
metal = 4 ,
direct_x12 = 5,
webgpu = 6 ,
highest_support = 7 ,
lowest_support = 8 ,
}
#[repr(C)]
#[derive(Clone , Debug)]
pub enum GPUPowerSettings {
none = 0 ,
LowPower = 1 ,
HighPerformance = 2 ,
}
#[repr(C)]
#[derive(Clone , Debug)]
pub enum GPUMemorySettings {
prefer_performance = 0 ,
prefer_memory = 1 ,
custom_memory = 3 ,
}
#[repr(C)]
#[derive(Clone , Debug)]
pub enum GPUSpeedSettings {
lowest_speed = 0 ,
low_speed = 1 ,
default_speed = 2 ,
custom_speed = 3 ,
}
#[repr(C)]
#[derive(Debug, Clone)]
pub struct GPUComputingConfig {
pub backend : GPUComputingBackend ,
pub power : GPUPowerSettings ,
pub speed : GPUSpeedSettings ,
pub memory : GPUMemorySettings ,
pub gpu_index_in_backend_group : i64 ,
}