diff options
author | Timothy Arceri <[email protected]> | 2017-12-12 13:49:41 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-12-13 13:20:28 +1100 |
commit | dd119a4263452a36e9d4938a39ddbc8d6bf298f7 (patch) | |
tree | 505fe9574d8f44a66b3f230e28c8a575e3836d2f /src/mesa/state_tracker | |
parent | acab52f5201683ec3f3698d25045ed1441ecdd14 (diff) |
st/glsl_to_nir: skip forced array splitting for tcs
nir_lower_io_to_temporaries() does not support tcs so we cannot
assume there are no indirects here. Also the radeonsi backend
(the only backend to support tess) has support for tcs indirects
so there is no need to lower them anyway.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_glsl_to_nir.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index 36adf55cd45..7357eebae0c 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -642,7 +642,8 @@ st_finalize_nir(struct st_context *st, struct gl_program *prog, NIR_PASS_V(nir, nir_split_var_copies); NIR_PASS_V(nir, nir_lower_var_copies); - NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects); + if (nir->info.stage != MESA_SHADER_TESS_CTRL) + NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects); if (nir->info.stage == MESA_SHADER_VERTEX) { /* Needs special handling so drvloc matches the vbo state: */ |