nouveau/nv30: Make sure fsat is lowered in the VS.

GLSL lowers fsat to clamps based on PIPE_CAP_VERTEX_SHADER_SATURATE
(EmitNoSat), but nir is happy to optimize that back to fsat unless you
tell it not to.

Noticed by inspection while looking at deleting EmitNoSat.

Fixes: ca1ec72726 ("nv30/40: Switch to using NIR-to-TGSI by default.")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16823>
(cherry picked from commit 7a8e3c80fd)
This commit is contained in:
Emma Anholt 2022-05-31 13:18:09 -07:00 committed by Dylan Baker
parent 7026ff1857
commit 4da856eaac
2 changed files with 3 additions and 1 deletions

View file

@ -409,7 +409,7 @@
"description": "nouveau/nv30: Make sure fsat is lowered in the VS.",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "ca1ec7272685bdadd4e339cb989ac503db0abd18"
},

View file

@ -493,6 +493,7 @@ static const nir_shader_compiler_options nv30_base_compiler_options = {
.lower_extract_byte = true,
.lower_extract_word = true,
.lower_fdiv = true,
.lower_fsat = true,
.lower_insert_byte = true,
.lower_insert_word = true,
.lower_fdph = true,
@ -676,6 +677,7 @@ nv30_screen_create(struct nouveau_device *dev)
}
screen->fs_compiler_options = nv30_base_compiler_options;
screen->fs_compiler_options.lower_fsat = false;
if (oclass >= NV40_3D_CLASS)
screen->fs_compiler_options.lower_fpow = false;