diff options
author | marha <marha@users.sourceforge.net> | 2014-08-22 21:57:21 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-08-22 21:57:21 +0200 |
commit | 112d89481850102f28b6e7ff4f40b65c41e11f6c (patch) | |
tree | 9e22963aeda3f588d4aa3aa270fdba74922028c7 /mesalib/src/glsl/ast_array_index.cpp | |
parent | bcb354180f20f0c410a77bd32cbf2c1e799632d5 (diff) | |
parent | 6c0c95d6045d2d2b4e6a3a2f11457850031c57bc (diff) | |
download | vcxsrv-112d89481850102f28b6e7ff4f40b65c41e11f6c.tar.gz vcxsrv-112d89481850102f28b6e7ff4f40b65c41e11f6c.tar.bz2 vcxsrv-112d89481850102f28b6e7ff4f40b65c41e11f6c.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'mesalib/src/glsl/ast_array_index.cpp')
-rw-r--r-- | mesalib/src/glsl/ast_array_index.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mesalib/src/glsl/ast_array_index.cpp b/mesalib/src/glsl/ast_array_index.cpp index 50f9987c8..5ca85f6ab 100644 --- a/mesalib/src/glsl/ast_array_index.cpp +++ b/mesalib/src/glsl/ast_array_index.cpp @@ -213,6 +213,13 @@ _mesa_ast_array_index_to_hir(void *mem_ctx, * as using a loop counter as the index to an array of samplers. If the * loop in unrolled, the code should compile correctly. Instead, emit a * warning. + * + * In GLSL 4.00 / ARB_gpu_shader5, this requirement is relaxed again to allow + * indexing with dynamically uniform expressions. Note that these are not + * required to be uniforms or expressions based on them, but merely that the + * values must not diverge between shader invocations run together. If the + * values *do* diverge, then the behavior of the operation requiring a + * dynamically uniform expression is undefined. */ if (array->type->element_type()->is_sampler()) { if (!state->is_version(130, 100)) { @@ -227,7 +234,7 @@ _mesa_ast_array_index_to_hir(void *mem_ctx, "expressions will be forbidden in GLSL 1.30 " "and later"); } - } else { + } else if (!state->is_version(400, 0) && !state->ARB_gpu_shader5_enable) { _mesa_glsl_error(&loc, state, "sampler arrays indexed with non-constant " "expressions is forbidden in GLSL 1.30 and " |