1*61046927SAndroid Build Coastguard Worker // Copyright © 2024 Collabora, Ltd. 2*61046927SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Worker extern crate nil_rs_bindings; 5*61046927SAndroid Build Coastguard Worker extern crate nvidia_headers; 6*61046927SAndroid Build Coastguard Worker 7*61046927SAndroid Build Coastguard Worker mod extent; 8*61046927SAndroid Build Coastguard Worker mod format; 9*61046927SAndroid Build Coastguard Worker mod image; 10*61046927SAndroid Build Coastguard Worker mod modifiers; 11*61046927SAndroid Build Coastguard Worker mod tic; 12*61046927SAndroid Build Coastguard Worker mod tiling; 13*61046927SAndroid Build Coastguard Worker 14*61046927SAndroid Build Coastguard Worker pub trait ILog2Ceil { ilog2_ceil(self) -> Self15*61046927SAndroid Build Coastguard Worker fn ilog2_ceil(self) -> Self; 16*61046927SAndroid Build Coastguard Worker } 17*61046927SAndroid Build Coastguard Worker 18*61046927SAndroid Build Coastguard Worker impl ILog2Ceil for u32 { ilog2_ceil(self) -> Self19*61046927SAndroid Build Coastguard Worker fn ilog2_ceil(self) -> Self { 20*61046927SAndroid Build Coastguard Worker if self <= 1 { 21*61046927SAndroid Build Coastguard Worker 0 22*61046927SAndroid Build Coastguard Worker } else { 23*61046927SAndroid Build Coastguard Worker (self - 1).ilog2() + 1 24*61046927SAndroid Build Coastguard Worker } 25*61046927SAndroid Build Coastguard Worker } 26*61046927SAndroid Build Coastguard Worker } 27*61046927SAndroid Build Coastguard Worker 28*61046927SAndroid Build Coastguard Worker pub trait Minify<Rhs> { 29*61046927SAndroid Build Coastguard Worker // Required method minify(self, rhs: Rhs) -> Self30*61046927SAndroid Build Coastguard Worker fn minify(self, rhs: Rhs) -> Self; 31*61046927SAndroid Build Coastguard Worker } 32*61046927SAndroid Build Coastguard Worker 33*61046927SAndroid Build Coastguard Worker impl Minify<u32> for u32 { minify(self, level: u32) -> u3234*61046927SAndroid Build Coastguard Worker fn minify(self, level: u32) -> u32 { 35*61046927SAndroid Build Coastguard Worker std::cmp::max(1, self >> level) 36*61046927SAndroid Build Coastguard Worker } 37*61046927SAndroid Build Coastguard Worker } 38