diff options
| author | Faith Ekstrand <faith.ekstrand@collabora.com> | 2025-11-05 13:59:21 -0500 |
|---|---|---|
| committer | Marge Bot <marge-bot@fdo.invalid> | 2025-11-06 14:57:30 +0000 |
| commit | 0fae56e100251d2e31c9715a31f768549dc2934b (patch) | |
| tree | 5fc833efb5cf2113dd07bc6638b842335316ca52 | |
| parent | dcb9ca1aa63f02165aaf85ec9c9a2ca658b0f46b (diff) | |
pan: roll lower_texture() into postprocess()
Every caller of pan_shader_lower_texture() immediatly called
pan_shader_postprocess() and every caller of pan_shader_postprocess()
lowered textures except blend shaders and those don't texture anyway.
Reviewed-by: Olivia Lee <olivia.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38265>
| -rw-r--r-- | src/gallium/drivers/panfrost/pan_fb_preload.c | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/panfrost/pan_shader.c | 2 | ||||
| -rw-r--r-- | src/panfrost/clc/pan_compile.c | 1 | ||||
| -rw-r--r-- | src/panfrost/compiler/bifrost_compile.c | 2 | ||||
| -rw-r--r-- | src/panfrost/lib/pan_shader.h | 9 | ||||
| -rw-r--r-- | src/panfrost/midgard/midgard_compile.c | 2 | ||||
| -rw-r--r-- | src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c | 1 | ||||
| -rw-r--r-- | src/panfrost/vulkan/panvk_vX_shader.c | 1 |
8 files changed, 4 insertions, 15 deletions
diff --git a/src/gallium/drivers/panfrost/pan_fb_preload.c b/src/gallium/drivers/panfrost/pan_fb_preload.c index d94be7c8b13..d45b06b6c8b 100644 --- a/src/gallium/drivers/panfrost/pan_fb_preload.c +++ b/src/gallium/drivers/panfrost/pan_fb_preload.c @@ -562,7 +562,6 @@ pan_preload_get_shader(struct pan_fb_preload_cache *cache, pan_shader_preprocess(b.shader, inputs.gpu_id); pan_shader_lower_texture_early(b.shader, inputs.gpu_id); - pan_shader_lower_texture(b.shader, inputs.gpu_id); pan_shader_postprocess(b.shader, inputs.gpu_id); if (PAN_ARCH == 4) { diff --git a/src/gallium/drivers/panfrost/pan_shader.c b/src/gallium/drivers/panfrost/pan_shader.c index 7392505960e..733b2c9c374 100644 --- a/src/gallium/drivers/panfrost/pan_shader.c +++ b/src/gallium/drivers/panfrost/pan_shader.c @@ -139,7 +139,6 @@ panfrost_shader_compile(struct panfrost_screen *screen, const nir_shader *ir, if (mesa_shader_stage_is_compute(s->info.stage)) { pan_shader_preprocess(s, panfrost_device_gpu_id(dev)); pan_shader_lower_texture_early(s, panfrost_device_gpu_id(dev)); - pan_shader_lower_texture(s, panfrost_device_gpu_id(dev)); pan_shader_postprocess(s, panfrost_device_gpu_id(dev)); } @@ -526,7 +525,6 @@ panfrost_create_shader_state(struct pipe_context *pctx, */ NIR_PASS(_, nir, nir_opt_constant_folding); - pan_shader_lower_texture(nir, panfrost_device_gpu_id(dev)); pan_shader_postprocess(nir, panfrost_device_gpu_id(dev)); if (nir->info.stage == MESA_SHADER_FRAGMENT) diff --git a/src/panfrost/clc/pan_compile.c b/src/panfrost/clc/pan_compile.c index 8d4cbf5907f..76f4be52de1 100644 --- a/src/panfrost/clc/pan_compile.c +++ b/src/panfrost/clc/pan_compile.c @@ -425,7 +425,6 @@ main(int argc, const char **argv) pan_shader_preprocess(s, inputs.gpu_id); pan_shader_lower_texture_early(s, inputs.gpu_id); - pan_shader_lower_texture(s, inputs.gpu_id); pan_shader_postprocess(s, inputs.gpu_id); NIR_PASS(_, s, nir_opt_deref); diff --git a/src/panfrost/compiler/bifrost_compile.c b/src/panfrost/compiler/bifrost_compile.c index 7ab8225be0e..9de6adbc411 100644 --- a/src/panfrost/compiler/bifrost_compile.c +++ b/src/panfrost/compiler/bifrost_compile.c @@ -5997,6 +5997,8 @@ bifrost_postprocess_nir(nir_shader *nir, unsigned gpu_id) { MESA_TRACE_FUNC(); + bifrost_lower_texture_nir(nir, gpu_id); + if (nir->info.stage == MESA_SHADER_FRAGMENT) { NIR_PASS(_, nir, nir_lower_mediump_io, nir_var_shader_in | nir_var_shader_out, diff --git a/src/panfrost/lib/pan_shader.h b/src/panfrost/lib/pan_shader.h index 1c55e4f1d1a..410f5995934 100644 --- a/src/panfrost/lib/pan_shader.h +++ b/src/panfrost/lib/pan_shader.h @@ -84,15 +84,6 @@ pan_shader_lower_texture_early(nir_shader *nir, unsigned gpu_id) } static inline void -pan_shader_lower_texture(nir_shader *nir, unsigned gpu_id) -{ - if (pan_arch(gpu_id) >= 6) - bifrost_lower_texture_nir(nir, gpu_id); - else - midgard_lower_texture_nir(nir, gpu_id); -} - -static inline void pan_shader_disassemble(FILE *fp, const void *code, size_t size, unsigned gpu_id, bool verbose) { diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index 6c282293639..6e8a332eea6 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -395,6 +395,8 @@ midgard_preprocess_nir(nir_shader *nir, UNUSED unsigned gpu_id) void midgard_postprocess_nir(nir_shader *nir, UNUSED unsigned gpu_id) { + midgard_lower_texture_nir(nir, gpu_id); + if (nir->info.stage == MESA_SHADER_VERTEX) { /* nir_lower[_explicit]_io is lazy and emits mul+add chains even * for offsets it could figure out are constant. Do some diff --git a/src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c b/src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c index 50c339f5a17..b8964bd141a 100644 --- a/src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c +++ b/src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c @@ -155,7 +155,6 @@ get_preload_shader(struct panvk_device *dev, pan_shader_preprocess(nir, inputs.gpu_id); pan_shader_lower_texture_early(nir, inputs.gpu_id); - pan_shader_lower_texture(nir, inputs.gpu_id); pan_shader_postprocess(nir, inputs.gpu_id); VkResult result = panvk_per_arch(create_internal_shader)( diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index f5e669cdcc7..ca1e2e0bd0f 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -933,7 +933,6 @@ panvk_lower_nir(struct panvk_device *dev, nir_shader *nir, */ NIR_PASS(_, nir, nir_opt_constant_folding); - pan_shader_lower_texture(nir, compile_input->gpu_id); pan_shader_postprocess(nir, compile_input->gpu_id); if (stage == MESA_SHADER_VERTEX) |