radv/gfx10: add an option to switch from legacy to NGG streamout
This internal option is turned off by default because NGG streamout still hangs. It seems like it's related to GDS as RadeonSI. That option will be turned on once all issues are resolved. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -2350,20 +2350,21 @@ radv_fill_shader_keys(struct radv_device *device,
|
||||
keys[MESA_SHADER_VERTEX].vs_common_out.as_ngg = false;
|
||||
}
|
||||
|
||||
/* TODO: Implement streamout support for NGG. */
|
||||
gl_shader_stage last_xfb_stage = MESA_SHADER_VERTEX;
|
||||
if (!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++) {
|
||||
if (nir[i])
|
||||
last_xfb_stage = i;
|
||||
}
|
||||
for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {
|
||||
if (nir[i])
|
||||
last_xfb_stage = i;
|
||||
}
|
||||
|
||||
if (nir[last_xfb_stage] &&
|
||||
radv_nir_stage_uses_xfb(nir[last_xfb_stage])) {
|
||||
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;
|
||||
if (nir[last_xfb_stage] &&
|
||||
radv_nir_stage_uses_xfb(nir[last_xfb_stage])) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user