rusticl: remove Option from set_global_binding

We never bind NULL resources through set_global_binding and drivers depend
on this behaviour already.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18581>
This commit is contained in:
Karol Herbst 2022-09-22 13:14:42 +02:00 committed by Marge Bot
parent 5f93feed61
commit cb8038b841
2 changed files with 5 additions and 8 deletions

View file

@ -925,7 +925,7 @@ impl Kernel {
} else {
input.extend_from_slice(&(mem.offset as u32).to_ne_bytes());
}
resource_info.push((Some(res.clone()), arg.offset));
resource_info.push((res.clone(), arg.offset));
} else {
let format = mem.image_format.to_pipe_format().unwrap();
let (formats, orders) = if arg.kind == KernelArgType::Image {
@ -985,7 +985,7 @@ impl Kernel {
InternalKernelArgType::ConstantBuffer => {
assert!(dev_state.constant_buffer.is_some());
input.extend_from_slice(null_ptr);
resource_info.push((dev_state.constant_buffer.clone(), arg.offset));
resource_info.push((dev_state.constant_buffer.clone().unwrap(), arg.offset));
}
InternalKernelArgType::GlobalWorkOffsets => {
if q.device.address_bits() == 64 {
@ -1007,7 +1007,7 @@ impl Kernel {
);
input.extend_from_slice(null_ptr);
resource_info.push((Some(buf.clone()), arg.offset));
resource_info.push((buf.clone(), arg.offset));
printf_buf = Some(buf);
}

View file

@ -356,11 +356,8 @@ impl PipeContext {
unsafe { self.pipe.as_ref().launch_grid.unwrap()(self.pipe.as_ptr(), &info) }
}
pub fn set_global_binding(&self, res: &[Option<Arc<PipeResource>>], out: &mut [*mut u32]) {
let mut res: Vec<_> = res
.iter()
.map(|o| o.as_ref().map_or(ptr::null_mut(), |r| r.pipe()))
.collect();
pub fn set_global_binding(&self, res: &[Arc<PipeResource>], out: &mut [*mut u32]) {
let mut res: Vec<_> = res.iter().map(|r| r.pipe()).collect();
unsafe {
self.pipe.as_ref().set_global_binding.unwrap()(
self.pipe.as_ptr(),