mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
radv: remove one indentation level in radv_fill_shader_info_ngg()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27470>
This commit is contained in:
parent
010272b62e
commit
237ab5db86
1 changed files with 45 additions and 45 deletions
|
|
@ -1990,54 +1990,54 @@ static void
|
|||
radv_fill_shader_info_ngg(struct radv_device *device, struct radv_shader_stage *stages,
|
||||
VkShaderStageFlagBits active_nir_stages)
|
||||
{
|
||||
if (device->cache_key.use_ngg) {
|
||||
if (stages[MESA_SHADER_TESS_CTRL].nir) {
|
||||
stages[MESA_SHADER_TESS_EVAL].info.is_ngg = true;
|
||||
} else if (stages[MESA_SHADER_VERTEX].nir) {
|
||||
stages[MESA_SHADER_VERTEX].info.is_ngg = true;
|
||||
} else if (stages[MESA_SHADER_MESH].nir) {
|
||||
stages[MESA_SHADER_MESH].info.is_ngg = true;
|
||||
}
|
||||
if (!device->cache_key.use_ngg)
|
||||
return;
|
||||
|
||||
if (device->physical_device->rad_info.gfx_level < GFX11 && stages[MESA_SHADER_TESS_CTRL].nir &&
|
||||
stages[MESA_SHADER_GEOMETRY].nir &&
|
||||
stages[MESA_SHADER_GEOMETRY].nir->info.gs.invocations *
|
||||
stages[MESA_SHADER_GEOMETRY].nir->info.gs.vertices_out >
|
||||
256) {
|
||||
/* Fallback to the legacy path if tessellation is
|
||||
* enabled with extreme geometry because
|
||||
* EN_MAX_VERT_OUT_PER_GS_INSTANCE doesn't work and it
|
||||
* might hang.
|
||||
*/
|
||||
if (stages[MESA_SHADER_TESS_CTRL].nir) {
|
||||
stages[MESA_SHADER_TESS_EVAL].info.is_ngg = true;
|
||||
} else if (stages[MESA_SHADER_VERTEX].nir) {
|
||||
stages[MESA_SHADER_VERTEX].info.is_ngg = true;
|
||||
} else if (stages[MESA_SHADER_MESH].nir) {
|
||||
stages[MESA_SHADER_MESH].info.is_ngg = true;
|
||||
}
|
||||
|
||||
if (device->physical_device->rad_info.gfx_level < GFX11 && stages[MESA_SHADER_TESS_CTRL].nir &&
|
||||
stages[MESA_SHADER_GEOMETRY].nir &&
|
||||
stages[MESA_SHADER_GEOMETRY].nir->info.gs.invocations * stages[MESA_SHADER_GEOMETRY].nir->info.gs.vertices_out >
|
||||
256) {
|
||||
/* Fallback to the legacy path if tessellation is
|
||||
* enabled with extreme geometry because
|
||||
* EN_MAX_VERT_OUT_PER_GS_INSTANCE doesn't work and it
|
||||
* might hang.
|
||||
*/
|
||||
stages[MESA_SHADER_TESS_EVAL].info.is_ngg = false;
|
||||
}
|
||||
|
||||
struct radv_shader_stage *last_vgt_stage = NULL;
|
||||
radv_foreach_stage(i, active_nir_stages)
|
||||
{
|
||||
if (radv_is_last_vgt_stage(&stages[i])) {
|
||||
last_vgt_stage = &stages[i];
|
||||
}
|
||||
}
|
||||
|
||||
bool uses_xfb = last_vgt_stage && last_vgt_stage->nir->xfb_info;
|
||||
|
||||
if (!device->physical_device->use_ngg_streamout && uses_xfb) {
|
||||
/* GFX11+ requires NGG. */
|
||||
assert(device->physical_device->rad_info.gfx_level < GFX11);
|
||||
|
||||
if (stages[MESA_SHADER_TESS_CTRL].nir)
|
||||
stages[MESA_SHADER_TESS_EVAL].info.is_ngg = false;
|
||||
}
|
||||
else
|
||||
stages[MESA_SHADER_VERTEX].info.is_ngg = false;
|
||||
}
|
||||
|
||||
struct radv_shader_stage *last_vgt_stage = NULL;
|
||||
radv_foreach_stage(i, active_nir_stages)
|
||||
{
|
||||
if (radv_is_last_vgt_stage(&stages[i])) {
|
||||
last_vgt_stage = &stages[i];
|
||||
}
|
||||
}
|
||||
|
||||
bool uses_xfb = last_vgt_stage && last_vgt_stage->nir->xfb_info;
|
||||
|
||||
if (!device->physical_device->use_ngg_streamout && uses_xfb) {
|
||||
/* GFX11+ requires NGG. */
|
||||
assert(device->physical_device->rad_info.gfx_level < GFX11);
|
||||
|
||||
if (stages[MESA_SHADER_TESS_CTRL].nir)
|
||||
stages[MESA_SHADER_TESS_EVAL].info.is_ngg = false;
|
||||
else
|
||||
stages[MESA_SHADER_VERTEX].info.is_ngg = false;
|
||||
}
|
||||
|
||||
if (stages[MESA_SHADER_GEOMETRY].nir) {
|
||||
if (stages[MESA_SHADER_TESS_CTRL].nir)
|
||||
stages[MESA_SHADER_GEOMETRY].info.is_ngg = stages[MESA_SHADER_TESS_EVAL].info.is_ngg;
|
||||
else
|
||||
stages[MESA_SHADER_GEOMETRY].info.is_ngg = stages[MESA_SHADER_VERTEX].info.is_ngg;
|
||||
}
|
||||
if (stages[MESA_SHADER_GEOMETRY].nir) {
|
||||
if (stages[MESA_SHADER_TESS_CTRL].nir)
|
||||
stages[MESA_SHADER_GEOMETRY].info.is_ngg = stages[MESA_SHADER_TESS_EVAL].info.is_ngg;
|
||||
else
|
||||
stages[MESA_SHADER_GEOMETRY].info.is_ngg = stages[MESA_SHADER_VERTEX].info.is_ngg;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue