Module: Mesa Branch: master Commit: 185b0c15abfba8b011f5b009e9f1890305e40ff6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=185b0c15abfba8b011f5b009e9f1890305e40ff6
Author: Nicolai Hähnle <[email protected]> Date: Mon Jul 25 18:05:46 2016 +0200 st_glsl_to_tgsi: only skip over slots of an input array that are present When an application declares varying arrays but does not actually do any indirect indexing, some array indices may end up unused in the consuming shader, so the number of input slots that correspond to the array ends up less than the array_size. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 7564119..38e2c4a 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -6058,7 +6058,11 @@ st_translate_program( inputSemanticName[i], inputSemanticIndex[i], interpMode[i], 0, interpLocation[i], array_id, array_size); - i += array_size - 1; + + GLuint base_attr = inputSlotToAttr[i]; + while (i + 1 < numInputs && + inputSlotToAttr[i + 1] < base_attr + array_size) + ++i; } else { t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg, _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
