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