From 8a42913c230ac23b0eda5852d0ccfcb38849dcdf Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 6 Dec 2023 16:58:06 +0100 Subject: [PATCH] panfrost: Stop passing a panfrost_device to pan_inline_rt_conversion() Signed-off-by: Boris Brezillon Reviewed-by: Constantine Shablya Reviewed-by: Erik Faye-Lund Part-of: --- src/panfrost/lib/pan_blend.c | 17 +++++------------ src/panfrost/lib/pan_blend.h | 4 +--- src/panfrost/vulkan/panvk_vX_meta_copy.c | 4 ++-- src/panfrost/vulkan/panvk_vX_shader.c | 2 +- 4 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/panfrost/lib/pan_blend.c b/src/panfrost/lib/pan_blend.c index 2703db48cda..ea0c0dbc4e9 100644 --- a/src/panfrost/lib/pan_blend.c +++ b/src/panfrost/lib/pan_blend.c @@ -779,22 +779,17 @@ GENX(pan_blend_get_internal_desc)(enum pipe_format fmt, unsigned rt, return res; } -struct rt_conversion_inputs { - const struct panfrost_device *dev; - enum pipe_format *formats; -}; - static bool inline_rt_conversion(nir_builder *b, nir_intrinsic_instr *intr, void *data) { if (intr->intrinsic != nir_intrinsic_load_rt_conversion_pan) return false; - struct rt_conversion_inputs *inputs = data; + enum pipe_format *formats = data; unsigned rt = nir_intrinsic_base(intr); unsigned size = nir_alu_type_get_type_size(nir_intrinsic_src_type(intr)); uint64_t conversion = - GENX(pan_blend_get_internal_desc)(inputs->formats[rt], rt, size, false); + GENX(pan_blend_get_internal_desc)(formats[rt], rt, size, false); b->cursor = nir_after_instr(&intr->instr); nir_def_rewrite_uses(&intr->def, nir_imm_int(b, conversion >> 32)); @@ -802,13 +797,11 @@ inline_rt_conversion(nir_builder *b, nir_intrinsic_instr *intr, void *data) } bool -GENX(pan_inline_rt_conversion)(nir_shader *s, const struct panfrost_device *dev, - enum pipe_format *formats) +GENX(pan_inline_rt_conversion)(nir_shader *s, enum pipe_format *formats) { return nir_shader_intrinsics_pass( s, inline_rt_conversion, - nir_metadata_block_index | nir_metadata_dominance, - &(struct rt_conversion_inputs){.dev = dev, .formats = formats}); + nir_metadata_block_index | nir_metadata_dominance, formats); } #endif @@ -892,7 +885,7 @@ GENX(pan_blend_get_shader_locked)(const struct panfrost_device *dev, pan_shader_preprocess(nir, inputs.gpu_id); #if PAN_ARCH >= 6 - NIR_PASS_V(nir, GENX(pan_inline_rt_conversion), dev, rt_formats); + NIR_PASS_V(nir, GENX(pan_inline_rt_conversion), rt_formats); #else NIR_PASS_V(nir, pan_lower_framebuffer, rt_formats, pan_raw_format_mask_midgard(rt_formats), MAX2(key.nr_samples, 1), diff --git a/src/panfrost/lib/pan_blend.h b/src/panfrost/lib/pan_blend.h index dddf776726f..eaaeaea6bfc 100644 --- a/src/panfrost/lib/pan_blend.h +++ b/src/panfrost/lib/pan_blend.h @@ -153,9 +153,7 @@ void pan_blend_shaders_cleanup(struct panfrost_device *dev); uint64_t GENX(pan_blend_get_internal_desc)(enum pipe_format fmt, unsigned rt, unsigned force_size, bool dithered); -bool GENX(pan_inline_rt_conversion)(nir_shader *s, - const struct panfrost_device *dev, - enum pipe_format *formats); +bool GENX(pan_inline_rt_conversion)(nir_shader *s, enum pipe_format *formats); #endif /* Take blend_shaders.lock before calling this function and release it when diff --git a/src/panfrost/vulkan/panvk_vX_meta_copy.c b/src/panfrost/vulkan/panvk_vX_meta_copy.c index 209ed707374..041b84090a4 100644 --- a/src/panfrost/vulkan/panvk_vX_meta_copy.c +++ b/src/panfrost/vulkan/panvk_vX_meta_copy.c @@ -427,7 +427,7 @@ panvk_meta_copy_img2img_shader(struct panfrost_device *pdev, util_dynarray_init(&binary, NULL); pan_shader_preprocess(b.shader, inputs.gpu_id); - NIR_PASS_V(b.shader, GENX(pan_inline_rt_conversion), pdev, &dstfmt); + NIR_PASS_V(b.shader, GENX(pan_inline_rt_conversion), &dstfmt); GENX(pan_shader_compile)(b.shader, &inputs, &binary, shader_info); shader_info->fs.sample_shading = is_ms; @@ -971,7 +971,7 @@ panvk_meta_copy_buf2img_shader(struct panfrost_device *pdev, pan_shader_preprocess(b.shader, inputs.gpu_id); enum pipe_format rt_formats[8] = {key.imgfmt}; - NIR_PASS_V(b.shader, GENX(pan_inline_rt_conversion), pdev, rt_formats); + NIR_PASS_V(b.shader, GENX(pan_inline_rt_conversion), rt_formats); GENX(pan_shader_compile)(b.shader, &inputs, &binary, shader_info); shader_info->push.count = diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index 431eec3aa59..5258305d6b9 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -365,7 +365,7 @@ panvk_per_arch(shader_create)(struct panvk_device *dev, gl_shader_stage stage, for (unsigned rt = 0; rt < MAX_RTS; ++rt) rt_formats[rt] = blend_state->rts[rt].format; - NIR_PASS_V(nir, GENX(pan_inline_rt_conversion), pdev, rt_formats); + NIR_PASS_V(nir, GENX(pan_inline_rt_conversion), rt_formats); } GENX(pan_shader_compile)(nir, &inputs, &shader->binary, &shader->info);