diff --git a/.pick_status.json b/.pick_status.json index c4c54de1cea..3e788e26099 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -664,7 +664,7 @@ "description": "rusticl/memory: properly set pipe_image_view::access", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/frontends/rusticl/core/memory.rs b/src/gallium/frontends/rusticl/core/memory.rs index 2afbe9a08b6..f1375e6a74a 100644 --- a/src/gallium/frontends/rusticl/core/memory.rs +++ b/src/gallium/frontends/rusticl/core/memory.rs @@ -1761,19 +1761,6 @@ impl Image { ) } - fn pipe_image_host_access(&self) -> u16 { - // those flags are all mutually exclusive - (if bit_check(self.flags, CL_MEM_HOST_READ_ONLY) { - PIPE_IMAGE_ACCESS_READ - } else if bit_check(self.flags, CL_MEM_HOST_WRITE_ONLY) { - PIPE_IMAGE_ACCESS_WRITE - } else if bit_check(self.flags, CL_MEM_HOST_NO_ACCESS) { - 0 - } else { - PIPE_IMAGE_ACCESS_READ_WRITE - }) as u16 - } - pub fn read( &self, dst: MutMemoryPtr, @@ -1995,22 +1982,18 @@ impl Image { let res = self.get_res_for_access(ctx, rw)?; if res.is_buffer() && self.mem_type == CL_MEM_OBJECT_IMAGE2D { - Ok(res.pipe_image_view_2d_buffer( - self.pipe_format, - read_write, - self.pipe_image_host_access(), - &self.buffer_2d_info()?, - )) + Ok( + res.pipe_image_view_2d_buffer( + self.pipe_format, + read_write, + &self.buffer_2d_info()?, + ), + ) } else if res.is_buffer() { let size = self.size.try_into_with_err(CL_OUT_OF_RESOURCES)?; - Ok(res.pipe_image_view_1d_buffer( - self.pipe_format, - read_write, - self.pipe_image_host_access(), - size, - )) + Ok(res.pipe_image_view_1d_buffer(self.pipe_format, read_write, size)) } else { - Ok(res.pipe_image_view(read_write, self.pipe_image_host_access())) + Ok(res.pipe_image_view(read_write)) } } } diff --git a/src/gallium/frontends/rusticl/mesa/pipe/resource.rs b/src/gallium/frontends/rusticl/mesa/pipe/resource.rs index a6841a7f2cc..e995e5db123 100644 --- a/src/gallium/frontends/rusticl/mesa/pipe/resource.rs +++ b/src/gallium/frontends/rusticl/mesa/pipe/resource.rs @@ -124,7 +124,7 @@ impl PipeResource { self.as_ref().flags & PIPE_RESOURCE_FLAG_RUSTICL_IS_USER != 0 } - pub fn pipe_image_view(&self, read_write: bool, host_access: u16) -> PipeImageView { + pub fn pipe_image_view(&self, read_write: bool) -> PipeImageView { debug_assert!(!self.is_buffer()); let pipe = self.as_ref(); @@ -146,7 +146,7 @@ impl PipeResource { PipeImageView::new(pipe_image_view { resource: self.pipe(), format: pipe.format(), - access: host_access, + access: shader_access, shader_access: shader_access, u: pipe_image_view__bindgen_ty_1 { tex: tex }, }) @@ -156,7 +156,6 @@ impl PipeResource { &self, format: pipe_format, read_write: bool, - host_access: u16, size: u32, ) -> PipeImageView { debug_assert!(self.is_buffer()); @@ -170,7 +169,7 @@ impl PipeResource { PipeImageView::new(pipe_image_view { resource: self.pipe(), format: format, - access: host_access, + access: shader_access, shader_access: shader_access, u: pipe_image_view__bindgen_ty_1 { buf: pipe_image_view__bindgen_ty_1__bindgen_ty_2 { @@ -185,7 +184,6 @@ impl PipeResource { &self, format: pipe_format, read_write: bool, - host_access: u16, app_img_info: &AppImgInfo, ) -> PipeImageView { debug_assert!(self.is_buffer()); @@ -199,7 +197,7 @@ impl PipeResource { PipeImageView::new(pipe_image_view { resource: self.pipe(), format: format, - access: PIPE_IMAGE_ACCESS_TEX2D_FROM_BUFFER as u16 | host_access, + access: PIPE_IMAGE_ACCESS_TEX2D_FROM_BUFFER as u16 | shader_access, shader_access: shader_access, u: pipe_image_view__bindgen_ty_1 { tex2d_from_buf: pipe_tex2d_from_buf {