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:
parent
64225c4f96
commit
c24d9522da
|
@ -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;
|
||||
|
||||
|
|
|
@ -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++) {
|
||||
|
|
Loading…
Reference in New Issue