mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 17:20:21 +01:00
radeonsi: increase array size for shader inputs and outputs
and add assertions to prevent buffer overflow. This fixes corruption
of the si_shader struct.
NOTE: This is a candidate for the 9.1 branch.
[ Cherry-pick of r600g commit da33f9b919 ]
Reviewed-by: Marek Olšák <maraeo@gmail.com>
This commit is contained in:
parent
9772284df2
commit
2eac0aa1d8
2 changed files with 4 additions and 2 deletions
|
|
@ -589,6 +589,7 @@ static void si_llvm_emit_epilogue(struct lp_build_tgsi_context * bld_base)
|
|||
switch (d->Declaration.File) {
|
||||
case TGSI_FILE_INPUT:
|
||||
i = shader->ninput++;
|
||||
assert(i < Elements(shader->input));
|
||||
shader->input[i].name = d->Semantic.Name;
|
||||
shader->input[i].sid = d->Semantic.Index;
|
||||
shader->input[i].interpolate = d->Interp.Interpolate;
|
||||
|
|
@ -597,6 +598,7 @@ static void si_llvm_emit_epilogue(struct lp_build_tgsi_context * bld_base)
|
|||
|
||||
case TGSI_FILE_OUTPUT:
|
||||
i = shader->noutput++;
|
||||
assert(i < Elements(shader->output));
|
||||
shader->output[i].name = d->Semantic.Name;
|
||||
shader->output[i].sid = d->Semantic.Index;
|
||||
shader->output[i].interpolate = d->Interp.Interpolate;
|
||||
|
|
|
|||
|
|
@ -101,10 +101,10 @@ struct si_pipe_shader_selector {
|
|||
|
||||
struct si_shader {
|
||||
unsigned ninput;
|
||||
struct si_shader_io input[32];
|
||||
struct si_shader_io input[40];
|
||||
|
||||
unsigned noutput;
|
||||
struct si_shader_io output[32];
|
||||
struct si_shader_io output[40];
|
||||
|
||||
unsigned ninterp;
|
||||
bool uses_kill;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue