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:
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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];
|
||||
|
@@ -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 */
|
||||
|
||||
|
@@ -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" */
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user