mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
mesa/st: Free the NIR builtins TGSI tokens after passing to the driver.
The driver interface doesn't take ownership of the TGSI tokens, so free
our temporary.
Fixes: 57effa342b ("st/mesa: Drop the TGSI paths for PBOs and use nir-to-tgsi if needed.")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8422>
This commit is contained in:
parent
0367bdbdc4
commit
4ddcd9cf16
1 changed files with 17 additions and 5 deletions
|
|
@ -26,6 +26,7 @@
|
|||
#include "compiler/nir/nir_builder.h"
|
||||
#include "compiler/glsl/gl_nir.h"
|
||||
#include "nir/nir_to_tgsi.h"
|
||||
#include "tgsi/tgsi_parse.h"
|
||||
|
||||
struct pipe_shader_state *
|
||||
st_nir_finish_builtin_shader(struct st_context *st,
|
||||
|
|
@ -81,21 +82,32 @@ st_nir_finish_builtin_shader(struct st_context *st,
|
|||
ralloc_free(nir);
|
||||
}
|
||||
|
||||
struct pipe_shader_state *shader;
|
||||
switch (stage) {
|
||||
case MESA_SHADER_VERTEX:
|
||||
return pipe->create_vs_state(pipe, &state);
|
||||
shader = pipe->create_vs_state(pipe, &state);
|
||||
break;
|
||||
case MESA_SHADER_TESS_CTRL:
|
||||
return pipe->create_tcs_state(pipe, &state);
|
||||
shader = pipe->create_tcs_state(pipe, &state);
|
||||
break;
|
||||
case MESA_SHADER_TESS_EVAL:
|
||||
return pipe->create_tes_state(pipe, &state);
|
||||
shader = pipe->create_tes_state(pipe, &state);
|
||||
break;
|
||||
case MESA_SHADER_GEOMETRY:
|
||||
return pipe->create_gs_state(pipe, &state);
|
||||
shader = pipe->create_gs_state(pipe, &state);
|
||||
break;
|
||||
case MESA_SHADER_FRAGMENT:
|
||||
return pipe->create_fs_state(pipe, &state);
|
||||
shader = pipe->create_fs_state(pipe, &state);
|
||||
break;
|
||||
default:
|
||||
unreachable("unsupported shader stage");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (state.type == PIPE_SHADER_IR_TGSI)
|
||||
tgsi_free_tokens(state.tokens);
|
||||
|
||||
return shader;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue