mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
radeonsi: fix NGG streamout regression
num_stream_output_components has to be set for non-GS too.
Fixes: 81d106d6ec - radeonsi: lower IO intrinsics - complete rewrite of input/output scanning
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
This commit is contained in:
parent
be905b74f7
commit
d0657ee837
1 changed files with 8 additions and 10 deletions
|
|
@ -139,18 +139,16 @@ static void scan_io_usage(struct si_shader_info *info, nir_intrinsic_instr *intr
|
|||
info->output_readmask[loc] |= mask;
|
||||
} else if (mask) {
|
||||
/* Output stores. */
|
||||
if (info->stage == MESA_SHADER_GEOMETRY) {
|
||||
unsigned gs_streams = (uint32_t)nir_intrinsic_io_semantics(intr).gs_streams <<
|
||||
(nir_intrinsic_component(intr) * 2);
|
||||
unsigned new_mask = mask & ~info->output_usagemask[loc];
|
||||
unsigned gs_streams = (uint32_t)nir_intrinsic_io_semantics(intr).gs_streams <<
|
||||
(nir_intrinsic_component(intr) * 2);
|
||||
unsigned new_mask = mask & ~info->output_usagemask[loc];
|
||||
|
||||
for (unsigned i = 0; i < 4; i++) {
|
||||
unsigned stream = (gs_streams >> (i * 2)) & 0x3;
|
||||
for (unsigned i = 0; i < 4; i++) {
|
||||
unsigned stream = (gs_streams >> (i * 2)) & 0x3;
|
||||
|
||||
if (new_mask & (1 << i)) {
|
||||
info->output_streams[loc] |= stream << (i * 2);
|
||||
info->num_stream_output_components[stream]++;
|
||||
}
|
||||
if (new_mask & (1 << i)) {
|
||||
info->output_streams[loc] |= stream << (i * 2);
|
||||
info->num_stream_output_components[stream]++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue