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@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12317>
This commit is contained in:
Ian Romanick
2021-08-10 12:27:59 -07:00
parent f623072328
commit 5f2dbd45f2
18 changed files with 22 additions and 26 deletions

View File

@@ -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

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;

View File

@@ -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,

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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];

View File

@@ -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 */

View File

@@ -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" */

View File

@@ -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);

View File

@@ -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);