mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-20 14:20:36 +02:00
rusticl: improve use of Rust idioms
Reduce unnecessary function calls, collect from iterators instead of adding to mutable collections, and remove unnecessary trait bounds. v2: split change to associated device check into new commit Reviewed-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: @LingMan Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
This commit is contained in:
parent
2c202eb787
commit
4be2a49e02
4 changed files with 19 additions and 17 deletions
|
|
@ -923,7 +923,7 @@ impl Device {
|
|||
}
|
||||
|
||||
pub fn global_mem_size(&self) -> cl_ulong {
|
||||
if let Some(memory_info) = self.screen().query_memory_info() {
|
||||
if let Some(memory_info) = self.screen.query_memory_info() {
|
||||
let memory: cl_ulong = if memory_info.total_device_memory != 0 {
|
||||
memory_info.total_device_memory.into()
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -527,11 +527,10 @@ impl_cl_type_trait!(cl_kernel, Kernel, CL_INVALID_KERNEL);
|
|||
fn create_kernel_arr<T>(vals: &[usize], val: T) -> CLResult<[T; 3]>
|
||||
where
|
||||
T: std::convert::TryFrom<usize> + Copy,
|
||||
<T as std::convert::TryFrom<usize>>::Error: std::fmt::Debug,
|
||||
{
|
||||
let mut res = [val; 3];
|
||||
for (i, v) in vals.iter().enumerate() {
|
||||
res[i] = (*v).try_into().ok().ok_or(CL_OUT_OF_RESOURCES)?;
|
||||
res[i] = (*v).try_into().or(Err(CL_OUT_OF_RESOURCES))?;
|
||||
}
|
||||
|
||||
Ok(res)
|
||||
|
|
|
|||
|
|
@ -959,14 +959,15 @@ impl MemBase {
|
|||
let (shadow_map, texture) = if is_cube_map_face(export_in.target) {
|
||||
let shadow = create_shadow_slice(&imported_gl_tex, image_format)?;
|
||||
|
||||
let mut res_map = HashMap::new();
|
||||
shadow
|
||||
let res_map = shadow
|
||||
.iter()
|
||||
.map(|(k, v)| {
|
||||
let gl_res = Arc::clone(imported_gl_tex.get(k).unwrap());
|
||||
res_map.insert(Arc::clone(v), gl_res);
|
||||
.map(|(dev, resource)| {
|
||||
(
|
||||
Arc::clone(resource),
|
||||
Arc::clone(imported_gl_tex.get(dev).unwrap()),
|
||||
)
|
||||
})
|
||||
.for_each(drop);
|
||||
.collect();
|
||||
|
||||
(Some(res_map), shadow)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -479,15 +479,17 @@ impl Program {
|
|||
// we need to precalculate the size
|
||||
pub fn bin_sizes(&self) -> Vec<usize> {
|
||||
let lock = self.build_info();
|
||||
let mut res = Vec::new();
|
||||
for d in &self.devs {
|
||||
let info = lock.dev_build(d);
|
||||
|
||||
res.push(info.spirv.as_ref().map_or(0, |s| {
|
||||
s.to_bin().len() + d.screen().name().to_bytes().len() + BIN_HEADER_SIZE
|
||||
}));
|
||||
}
|
||||
res
|
||||
self.devs
|
||||
.iter()
|
||||
.map(|&device| {
|
||||
let info = lock.dev_build(device);
|
||||
|
||||
info.spirv.as_ref().map_or(0, |s| {
|
||||
s.to_bin().len() + device.screen().name().to_bytes().len() + BIN_HEADER_SIZE
|
||||
})
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn binaries(&self, ptrs: &[*mut u8]) -> CLResult<()> {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue