summaryrefslogtreecommitdiff
path: root/src/asahi/compiler/agx_compile.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/asahi/compiler/agx_compile.c')
-rw-r--r--src/asahi/compiler/agx_compile.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c
index 6970e629648..7a38d63cdd5 100644
--- a/src/asahi/compiler/agx_compile.c
+++ b/src/asahi/compiler/agx_compile.c
@@ -1080,9 +1080,14 @@ agx_compile_shader_nir(nir_shader *nir,
glsl_get_natural_size_align_bytes);
NIR_PASS_V(nir, nir_lower_indirect_derefs, nir_var_function_temp, ~0);
- if (ctx->stage == MESA_SHADER_VERTEX)
+ if (ctx->stage == MESA_SHADER_VERTEX) {
agx_remap_varyings(nir);
+ /* Lower from OpenGL [-1, 1] to [0, 1] if half-z is not set */
+ if (!key->vs.clip_halfz)
+ NIR_PASS_V(nir, nir_lower_clip_halfz);
+ }
+
NIR_PASS_V(nir, nir_split_var_copies);
NIR_PASS_V(nir, nir_lower_global_vars_to_local);
NIR_PASS_V(nir, nir_lower_var_copies);