spirv: Don't leak GS initialization to other stages
The stage specific fields of shader_info are in an union. We've likely been lucky that this value was either overwritten or ignored by other stages. The recent change in shader_info layout in commit84a1a2578d("compiler: pack shader_info from 160 bytes to 96 bytes") made this issue visible. Fixes:cf2257069c("nir/spirv: Set a default number of invocations for geometry shaders") Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -5152,7 +5152,8 @@ spirv_to_nir(const uint32_t *words, size_t word_count,
|
||||
}
|
||||
|
||||
/* Set shader info defaults */
|
||||
b->shader->info.gs.invocations = 1;
|
||||
if (stage == MESA_SHADER_GEOMETRY)
|
||||
b->shader->info.gs.invocations = 1;
|
||||
|
||||
/* Parse rounding mode execution modes. This has to happen earlier than
|
||||
* other changes in the execution modes since they can affect, for example,
|
||||
|
||||
Reference in New Issue
Block a user