aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/glsl/ast_array_index.cpp
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-08-22 21:55:11 +0200
committermarha <marha@users.sourceforge.net>2014-08-22 21:55:11 +0200
commit6c0c95d6045d2d2b4e6a3a2f11457850031c57bc (patch)
tree32dfc45d688fa198bf0d41597e82589890012cf1 /mesalib/src/glsl/ast_array_index.cpp
parentfdbedba4d50e1b28b0249c83ba11c029f096e400 (diff)
downloadvcxsrv-6c0c95d6045d2d2b4e6a3a2f11457850031c57bc.tar.gz
vcxsrv-6c0c95d6045d2d2b4e6a3a2f11457850031c57bc.tar.bz2
vcxsrv-6c0c95d6045d2d2b4e6a3a2f11457850031c57bc.zip
fontconfig libxcb/xcb-proto mesa xkeyboard-config git update 22 Aug 2014
libxcb/xcb-proto commit 8e3db42d67a0035bb16d16da28bd5eea7a269178 xkeyboard-config commit 10fce2c2baae471795d069f3a5f1307eedb9ff0a fontconfig commit 286cdc9c10b0453c25950103b6a1f7170d15bfdc mesa commit 97d03b9366bfa55b27feb92aa5afacd9c5f6f421
Diffstat (limited to 'mesalib/src/glsl/ast_array_index.cpp')
-rw-r--r--mesalib/src/glsl/ast_array_index.cpp9
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 "