Mesa (main): gallium: Remove "optimize" parameter from pipe_screen::finalize_nir
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Aug 13 23:07:51 UTC 2021
Module: Mesa
Branch: main
Commit: 5f2dbd45f20b0c676d7140101c493351c121c728
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f2dbd45f20b0c676d7140101c493351c121c728
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Tue Aug 10 12:27:59 2021 -0700
gallium: Remove "optimize" parameter from pipe_screen::finalize_nir
As part of adding support for inline uniforms in Iris, I was going to
add a finalize_nir hook. I went looking to see how other drivers use
the "optimize" parameter, and I discovered that *nobody* uses it at all.
v2: Fix typo in commit message. Noticed by Mike.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12317>
---
src/gallium/auxiliary/driver_ddebug/dd_screen.c | 4 ++--
src/gallium/auxiliary/driver_noop/noop_pipe.c | 4 ++--
src/gallium/auxiliary/driver_rbug/rbug_screen.c | 4 ++--
src/gallium/auxiliary/driver_trace/tr_screen.c | 4 ++--
src/gallium/auxiliary/nir/tgsi_to_nir.c | 2 +-
src/gallium/drivers/freedreno/ir3/ir3_gallium.c | 2 +-
src/gallium/drivers/llvmpipe/lp_screen.c | 3 +--
src/gallium/drivers/llvmpipe/lp_state_cs.c | 2 +-
src/gallium/drivers/radeonsi/si_shader.h | 2 +-
src/gallium/drivers/radeonsi/si_shader_nir.c | 2 +-
src/gallium/drivers/radeonsi/si_shaderlib_nir.c | 2 +-
src/gallium/drivers/zink/zink_compiler.c | 2 +-
src/gallium/drivers/zink/zink_compiler.h | 2 +-
src/gallium/frontends/lavapipe/lvp_pipeline.c | 2 +-
src/gallium/include/pipe/p_screen.h | 5 +----
src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
src/mesa/state_tracker/st_nir_builtins.c | 2 +-
src/mesa/state_tracker/st_program.c | 2 +-
18 files changed, 22 insertions(+), 26 deletions(-)
diff --git a/src/gallium/auxiliary/driver_ddebug/dd_screen.c b/src/gallium/auxiliary/driver_ddebug/dd_screen.c
index dadcde63a13..7c5deb7dc14 100644
--- a/src/gallium/auxiliary/driver_ddebug/dd_screen.c
+++ b/src/gallium/auxiliary/driver_ddebug/dd_screen.c
@@ -415,11 +415,11 @@ dd_screen_memobj_destroy(struct pipe_screen *_screen,
*/
static void
-dd_screen_finalize_nir(struct pipe_screen *_screen, void *nir, bool optimize)
+dd_screen_finalize_nir(struct pipe_screen *_screen, void *nir)
{
struct pipe_screen *screen = dd_screen(_screen)->screen;
- screen->finalize_nir(screen, nir, optimize);
+ screen->finalize_nir(screen, nir);
}
static void
diff --git a/src/gallium/auxiliary/driver_noop/noop_pipe.c b/src/gallium/auxiliary/driver_noop/noop_pipe.c
index a4dcb340aac..2413a1ccbcc 100644
--- a/src/gallium/auxiliary/driver_noop/noop_pipe.c
+++ b/src/gallium/auxiliary/driver_noop/noop_pipe.c
@@ -599,11 +599,11 @@ static const void *noop_get_compiler_options(struct pipe_screen *pscreen,
return screen->get_compiler_options(screen, ir, shader);
}
-static void noop_finalize_nir(struct pipe_screen *pscreen, void *nir, bool optimize)
+static void noop_finalize_nir(struct pipe_screen *pscreen, void *nir)
{
struct pipe_screen *screen = ((struct noop_pipe_screen*)pscreen)->oscreen;
- screen->finalize_nir(screen, nir, optimize);
+ screen->finalize_nir(screen, nir);
}
static bool noop_check_resource_capability(struct pipe_screen *screen,
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_screen.c b/src/gallium/auxiliary/driver_rbug/rbug_screen.c
index 25d0fcf0ece..6adb5cf8a94 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_screen.c
+++ b/src/gallium/auxiliary/driver_rbug/rbug_screen.c
@@ -411,11 +411,11 @@ rbug_screen_fence_get_fd(struct pipe_screen *_screen,
}
static void
-rbug_screen_finalize_nir(struct pipe_screen *_screen, void *nir, bool optimize)
+rbug_screen_finalize_nir(struct pipe_screen *_screen, void *nir)
{
struct pipe_screen *screen = rbug_screen(_screen)->screen;
- screen->finalize_nir(screen, nir, optimize);
+ screen->finalize_nir(screen, nir);
}
bool
diff --git a/src/gallium/auxiliary/driver_trace/tr_screen.c b/src/gallium/auxiliary/driver_trace/tr_screen.c
index ae5a2afab18..9856dbca82a 100644
--- a/src/gallium/auxiliary/driver_trace/tr_screen.c
+++ b/src/gallium/auxiliary/driver_trace/tr_screen.c
@@ -920,11 +920,11 @@ trace_screen_get_timestamp(struct pipe_screen *_screen)
}
static void
-trace_screen_finalize_nir(struct pipe_screen *_screen, void *nir, bool optimize)
+trace_screen_finalize_nir(struct pipe_screen *_screen, void *nir)
{
struct pipe_screen *screen = trace_screen(_screen)->screen;
- screen->finalize_nir(screen, nir, optimize);
+ screen->finalize_nir(screen, nir);
}
static void
diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c
index 29f110e9f5e..7454c6d21da 100644
--- a/src/gallium/auxiliary/nir/tgsi_to_nir.c
+++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c
@@ -2483,7 +2483,7 @@ ttn_finalize_nir(struct ttn_compile *c, struct pipe_screen *screen)
NIR_PASS_V(nir, nir_lower_samplers);
if (screen->finalize_nir) {
- screen->finalize_nir(screen, nir, true);
+ screen->finalize_nir(screen, nir);
} else {
ttn_optimize_nir(nir);
nir_shader_gather_info(nir, c->build.impl);
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
index d3674c24a87..ee24f1192e4 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
@@ -461,7 +461,7 @@ ir3_fixup_shader_state(struct pipe_context *pctx, struct ir3_shader_key *key)
}
static void
-ir3_screen_finalize_nir(struct pipe_screen *pscreen, void *nir, bool optimize)
+ir3_screen_finalize_nir(struct pipe_screen *pscreen, void *nir)
{
struct fd_screen *screen = fd_screen(pscreen);
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 7622a28425e..811ad3597b5 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -606,8 +606,7 @@ static const struct nir_shader_compiler_options gallivm_nir_options = {
static void
llvmpipe_finalize_nir(struct pipe_screen *screen,
- void *nirptr,
- bool optimize)
+ void *nirptr)
{
struct nir_shader *nir = (struct nir_shader *)nirptr;
lp_build_opt_nir(nir);
diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c
index af590b53811..e11b67b01f0 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_cs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c
@@ -456,7 +456,7 @@ llvmpipe_create_compute_state(struct pipe_context *pipe,
shader->base.ir.nir = nir_deserialize(NULL, pipe->screen->get_compiler_options(pipe->screen, PIPE_SHADER_IR_NIR, PIPE_SHADER_COMPUTE), &reader);
shader->base.type = PIPE_SHADER_IR_NIR;
- pipe->screen->finalize_nir(pipe->screen, shader->base.ir.nir, false);
+ pipe->screen->finalize_nir(pipe->screen, shader->base.ir.nir);
shader->req_local_mem += ((struct nir_shader *)shader->base.ir.nir)->info.shared_size;
} else if (templ->ir_type == PIPE_SHADER_IR_NIR) {
shader->base.ir.nir = (struct nir_shader *)templ->prog;
diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h
index 9cdf8aded1e..04a831665ac 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -888,7 +888,7 @@ struct si_shader *si_generate_gs_copy_shader(struct si_screen *sscreen,
void si_nir_scan_shader(const struct nir_shader *nir, struct si_shader_info *info);
void si_nir_opts(struct si_screen *sscreen, struct nir_shader *nir, bool first);
void si_nir_late_opts(nir_shader *nir);
-void si_finalize_nir(struct pipe_screen *screen, void *nirptr, bool optimize);
+void si_finalize_nir(struct pipe_screen *screen, void *nirptr);
/* si_state_shaders.c */
void gfx9_get_gs_info(struct si_shader_selector *es, struct si_shader_selector *gs,
diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 044c1ffeb99..6a40ec7b85d 100644
--- a/src/gallium/drivers/radeonsi/si_shader_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
@@ -903,7 +903,7 @@ static void si_lower_nir(struct si_screen *sscreen, struct nir_shader *nir)
NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_function_temp, NULL);
}
-void si_finalize_nir(struct pipe_screen *screen, void *nirptr, bool optimize)
+void si_finalize_nir(struct pipe_screen *screen, void *nirptr)
{
struct si_screen *sscreen = (struct si_screen *)screen;
struct nir_shader *nir = (struct nir_shader *)nirptr;
diff --git a/src/gallium/drivers/radeonsi/si_shaderlib_nir.c b/src/gallium/drivers/radeonsi/si_shaderlib_nir.c
index 27f765769e7..4ca1490c7b4 100644
--- a/src/gallium/drivers/radeonsi/si_shaderlib_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shaderlib_nir.c
@@ -33,7 +33,7 @@ static void *create_nir_cs(struct si_context *sctx, nir_builder *b)
struct pipe_compute_state state = {0};
state.ir_type = PIPE_SHADER_IR_NIR;
state.prog = b->shader;
- sctx->b.screen->finalize_nir(sctx->b.screen, (void*)state.prog, false);
+ sctx->b.screen->finalize_nir(sctx->b.screen, (void*)state.prog);
return sctx->b.create_compute_state(&sctx->b, &state);
}
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c
index 19a27335925..461943803b2 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -1043,7 +1043,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
}
void
-zink_shader_finalize(struct pipe_screen *pscreen, void *nirptr, bool optimize)
+zink_shader_finalize(struct pipe_screen *pscreen, void *nirptr)
{
struct zink_screen *screen = zink_screen(pscreen);
nir_shader *nir = nirptr;
diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h
index 855fc1ea277..2addb6bc827 100644
--- a/src/gallium/drivers/zink/zink_compiler.h
+++ b/src/gallium/drivers/zink/zink_compiler.h
@@ -104,7 +104,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
const struct pipe_stream_output_info *so_info);
void
-zink_shader_finalize(struct pipe_screen *pscreen, void *nirptr, bool optimize);
+zink_shader_finalize(struct pipe_screen *pscreen, void *nirptr);
void
zink_shader_free(struct zink_context *ctx, struct zink_shader *shader);
diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c
index 8be8701d9df..94002b8c451 100644
--- a/src/gallium/frontends/lavapipe/lvp_pipeline.c
+++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c
@@ -686,7 +686,7 @@ lvp_pipeline_compile(struct lvp_pipeline *pipeline,
gl_shader_stage stage)
{
struct lvp_device *device = pipeline->device;
- device->physical_device->pscreen->finalize_nir(device->physical_device->pscreen, pipeline->pipeline_nir[stage], true);
+ device->physical_device->pscreen->finalize_nir(device->physical_device->pscreen, pipeline->pipeline_nir[stage]);
if (stage == MESA_SHADER_COMPUTE) {
struct pipe_compute_state shstate = {0};
shstate.prog = (void *)pipeline->pipeline_nir[MESA_SHADER_COMPUTE];
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
index 7accb591f09..b81cf0aad34 100644
--- a/src/gallium/include/pipe/p_screen.h
+++ b/src/gallium/include/pipe/p_screen.h
@@ -520,11 +520,8 @@ struct pipe_screen {
*
* gallium frontends should call this before passing shaders to drivers,
* and ideally also before shader caching.
- *
- * \param optimize Whether the input shader hasn't been optimized and
- * should be.
*/
- void (*finalize_nir)(struct pipe_screen *screen, void *nir, bool optimize);
+ void (*finalize_nir)(struct pipe_screen *screen, void *nir);
/*Separated memory/resource allocations interfaces for Vulkan */
diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp
index 5f4419358aa..b989ad8c0b3 100644
--- a/src/mesa/state_tracker/st_glsl_to_nir.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp
@@ -1069,7 +1069,7 @@ st_finalize_nir(struct st_context *st, struct gl_program *prog,
NIR_PASS_V(nir, gl_nir_lower_images, false);
if (finalize_by_driver && screen->finalize_nir)
- screen->finalize_nir(screen, nir, false);
+ screen->finalize_nir(screen, nir);
}
} /* extern "C" */
diff --git a/src/mesa/state_tracker/st_nir_builtins.c b/src/mesa/state_tracker/st_nir_builtins.c
index 71e5f205ce4..e28b63544a0 100644
--- a/src/mesa/state_tracker/st_nir_builtins.c
+++ b/src/mesa/state_tracker/st_nir_builtins.c
@@ -69,7 +69,7 @@ st_nir_finish_builtin_shader(struct st_context *st,
NIR_PASS_V(nir, gl_nir_lower_images, false);
if (screen->finalize_nir)
- screen->finalize_nir(screen, nir, true);
+ screen->finalize_nir(screen, nir);
else
st_nir_opts(nir);
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 25e2eca92b1..c229b36654c 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1512,7 +1512,7 @@ st_create_fp_variant(struct st_context *st,
struct pipe_screen *screen = st->screen;
if (screen->finalize_nir)
- screen->finalize_nir(screen, state.ir.nir, false);
+ screen->finalize_nir(screen, state.ir.nir);
}
variant->base.driver_shader = st_create_nir_shader(st, &state);
More information about the mesa-commit
mailing list