mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 15:30:14 +01:00
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
2 changed files with 13 additions and 4 deletions
|
|
@ -411,10 +411,6 @@ radv_physical_device_init(struct radv_physical_device *device,
|
||||||
device->use_ngg = device->rad_info.chip_class >= GFX10 &&
|
device->use_ngg = device->rad_info.chip_class >= GFX10 &&
|
||||||
device->rad_info.family != CHIP_NAVI14 &&
|
device->rad_info.family != CHIP_NAVI14 &&
|
||||||
!(device->instance->debug_flags & RADV_DEBUG_NO_NGG);
|
!(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;
|
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;
|
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;
|
gl_shader_stage last_xfb_stage = MESA_SHADER_VERTEX;
|
||||||
|
|
||||||
for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {
|
for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue