panfrost: Stop passing a panfrost_device to pan_inline_rt_conversion()

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698>
This commit is contained in:
Boris Brezillon
2023-12-06 16:58:06 +01:00
committed by Marge Bot
parent 9c8af69827
commit 8a42913c23
4 changed files with 9 additions and 18 deletions
+5 -12
View File
@@ -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),
+1 -3
View File
@@ -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
+2 -2
View File
@@ -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 =
+1 -1
View File
@@ -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);