Mesa (main): lavapipe: break out part of shader optimization into function
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jun 29 05:07:47 UTC 2022
Module: Mesa
Branch: main
Commit: f18d97e0bcb393d2d801c7b4a446477d0f10989f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f18d97e0bcb393d2d801c7b4a446477d0f10989f
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Mon Jun 27 14:00:59 2022 -0400
lavapipe: break out part of shader optimization into function
used in (distant) future work
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17268>
---
src/gallium/frontends/lavapipe/lvp_pipeline.c | 17 +++++++++++------
src/gallium/frontends/lavapipe/lvp_private.h | 3 +++
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c
index 0e295f220b1..01645c2401c 100644
--- a/src/gallium/frontends/lavapipe/lvp_pipeline.c
+++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c
@@ -907,6 +907,16 @@ optimize(nir_shader *nir)
} while (progress);
}
+void
+lvp_shader_optimize(nir_shader *nir)
+{
+ optimize(nir);
+ NIR_PASS_V(nir, nir_lower_var_copies);
+ NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_function_temp, NULL);
+ NIR_PASS_V(nir, nir_opt_dce);
+ nir_sweep(nir);
+}
+
static void
lvp_shader_compile_to_ir(struct lvp_pipeline *pipeline,
uint32_t size,
@@ -1065,12 +1075,7 @@ lvp_shader_compile_to_ir(struct lvp_pipeline *pipeline,
if (!nir_has_any_rounding_mode_enabled(nir->info.float_controls_execution_mode))
NIR_PASS_V(nir, nir_fold_16bit_sampler_conversions, 0, UINT32_MAX);
- optimize(nir);
-
- NIR_PASS_V(nir, nir_lower_var_copies);
- NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_function_temp, NULL);
- NIR_PASS_V(nir, nir_opt_dce);
- nir_sweep(nir);
+ lvp_shader_optimize(nir);
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h
index 2fae582260c..90852117207 100644
--- a/src/gallium/frontends/lavapipe/lvp_private.h
+++ b/src/gallium/frontends/lavapipe/lvp_private.h
@@ -661,6 +661,9 @@ lvp_pipeline_destroy(struct lvp_device *device, struct lvp_pipeline *pipeline);
void
queue_thread_noop(void *data, void *gdata, int thread_index);
+
+void
+lvp_shader_optimize(nir_shader *nir);
#ifdef __cplusplus
}
#endif
More information about the mesa-commit
mailing list