mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
rusticl/memory: properly set pipe_image_view::access
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13294
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35305>
(cherry picked from commit f663e3330c)
This commit is contained in:
parent
ef0df70f62
commit
cb058e4b63
3 changed files with 14 additions and 33 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue