radeonsi/gfx12: use ACO for streamout because it's faster

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32957>
This commit is contained in:
Marek Olšák 2025-01-08 15:16:02 -05:00
parent 239840556f
commit 8ba718fb7d

View file

@ -9,6 +9,7 @@
#include "util/mesa-sha1.h" #include "util/mesa-sha1.h"
#include "sid.h" #include "sid.h"
#include "nir.h" #include "nir.h"
#include "nir_xfb_info.h"
#include "aco_interface.h" #include "aco_interface.h"
#include "ac_nir.h" #include "ac_nir.h"
@ -539,8 +540,11 @@ void si_nir_scan_shader(struct si_screen *sscreen, struct nir_shader *nir,
} }
nir->info.use_aco_amd = aco_is_gpu_supported(&sscreen->info) && nir->info.use_aco_amd = aco_is_gpu_supported(&sscreen->info) &&
(sscreen->use_aco || nir->info.use_aco_amd || force_use_aco) && sscreen->info.has_image_opcodes &&
sscreen->info.has_image_opcodes; (sscreen->use_aco || nir->info.use_aco_amd || force_use_aco ||
/* Use ACO for streamout on gfx12 because it's faster. */
(sscreen->info.gfx_level >= GFX12 && nir->xfb_info &&
nir->xfb_info->output_count));
if (nir->info.stage == MESA_SHADER_FRAGMENT) { if (nir->info.stage == MESA_SHADER_FRAGMENT) {
/* post_depth_coverage implies early_fragment_tests */ /* post_depth_coverage implies early_fragment_tests */