radv: Enable ACO for NGG VS/TES, but disable NGG for ACO GS.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576>
This commit is contained in:
Timur Kristóf 2020-03-31 10:41:01 +02:00 committed by Marge Bot
parent 64225c4f96
commit c24d9522da
2 changed files with 13 additions and 4 deletions

View File

@ -411,10 +411,6 @@ radv_physical_device_init(struct radv_physical_device *device,
device->use_ngg = device->rad_info.chip_class >= GFX10 &&
device->rad_info.family != CHIP_NAVI14 &&
!(device->instance->debug_flags & RADV_DEBUG_NO_NGG);
if (device->use_aco && device->use_ngg) {
fprintf(stderr, "WARNING: disabling NGG because ACO is used.\n");
device->use_ngg = false;
}
device->use_ngg_streamout = false;

View File

@ -2461,6 +2461,19 @@ radv_fill_shader_keys(struct radv_device *device,
keys[MESA_SHADER_TESS_EVAL].vs_common_out.as_ngg = false;
}
if (device->physical_device->use_aco) {
/* Disable NGG GS when ACO is used */
if (nir[MESA_SHADER_GEOMETRY]) {
if (nir[MESA_SHADER_TESS_CTRL])
keys[MESA_SHADER_TESS_EVAL].vs_common_out.as_ngg = false;
else
keys[MESA_SHADER_VERTEX].vs_common_out.as_ngg = false;
}
/* NGG streamout not yet supported by ACO */
assert(!device->physical_device->use_ngg_streamout);
}
gl_shader_stage last_xfb_stage = MESA_SHADER_VERTEX;
for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {