[Mesa-dev] [PATCH 3/3] st/shader_cache: copy nir pointer to gl_program after deserializing
Marek Olšák
maraeo at gmail.com
Mon Feb 19 12:29:21 UTC 2018
For the series:
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
On Fri, Feb 16, 2018 at 1:55 AM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
> This fixes a crash when running the arb_get_program_binary-api-errors
> piglit test twice.
> ---
> src/mesa/state_tracker/st_shader_cache.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_shader_cache.c b/src/mesa/state_tracker/st_shader_cache.c
> index 6ff404220a..3ca3fef1df 100644
> --- a/src/mesa/state_tracker/st_shader_cache.c
> +++ b/src/mesa/state_tracker/st_shader_cache.c
> @@ -215,6 +215,7 @@ st_deserialise_ir_program(struct gl_context *ctx,
> stvp->tgsi.type = PIPE_SHADER_IR_NIR;
> stvp->shader_program = shProg;
> stvp->tgsi.ir.nir = nir_deserialize(NULL, options, &blob_reader);
> + prog->nir = stvp->tgsi.ir.nir;
> } else {
> read_tgsi_from_cache(&blob_reader, &stvp->tgsi.tokens,
> &stvp->num_tgsi_tokens);
> @@ -237,6 +238,7 @@ st_deserialise_ir_program(struct gl_context *ctx,
> sttcp->tgsi.type = PIPE_SHADER_IR_NIR;
> sttcp->shader_program = shProg;
> sttcp->tgsi.ir.nir = nir_deserialize(NULL, options, &blob_reader);
> + prog->nir = sttcp->tgsi.ir.nir;
> } else {
> read_tgsi_from_cache(&blob_reader, &sttcp->tgsi.tokens,
> &sttcp->num_tgsi_tokens);
> @@ -259,6 +261,7 @@ st_deserialise_ir_program(struct gl_context *ctx,
> sttep->tgsi.type = PIPE_SHADER_IR_NIR;
> sttep->shader_program = shProg;
> sttep->tgsi.ir.nir = nir_deserialize(NULL, options, &blob_reader);
> + prog->nir = sttep->tgsi.ir.nir;
> } else {
> read_tgsi_from_cache(&blob_reader, &sttep->tgsi.tokens,
> &sttep->num_tgsi_tokens);
> @@ -281,6 +284,7 @@ st_deserialise_ir_program(struct gl_context *ctx,
> stgp->tgsi.type = PIPE_SHADER_IR_NIR;
> stgp->shader_program = shProg;
> stgp->tgsi.ir.nir = nir_deserialize(NULL, options, &blob_reader);
> + prog->nir = stgp->tgsi.ir.nir;
> } else {
> read_tgsi_from_cache(&blob_reader, &stgp->tgsi.tokens,
> &stgp->num_tgsi_tokens);
> @@ -300,6 +304,7 @@ st_deserialise_ir_program(struct gl_context *ctx,
> stfp->tgsi.type = PIPE_SHADER_IR_NIR;
> stfp->shader_program = shProg;
> stfp->tgsi.ir.nir = nir_deserialize(NULL, options, &blob_reader);
> + prog->nir = stfp->tgsi.ir.nir;
> } else {
> read_tgsi_from_cache(&blob_reader, &stfp->tgsi.tokens,
> &stfp->num_tgsi_tokens);
> @@ -319,6 +324,7 @@ st_deserialise_ir_program(struct gl_context *ctx,
> stcp->tgsi.ir_type = PIPE_SHADER_IR_NIR;
> stcp->shader_program = shProg;
> stcp->tgsi.prog = nir_deserialize(NULL, options, &blob_reader);
> + prog->nir = (nir_shader *) stcp->tgsi.prog;
> } else {
> read_tgsi_from_cache(&blob_reader,
> (const struct tgsi_token**) &stcp->tgsi.prog,
> --
> 2.14.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list