diff options
author | marha <marha@users.sourceforge.net> | 2011-03-28 10:22:02 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-03-28 10:22:02 +0000 |
commit | 0b9b391c5a7acb31e5d8061169649043a38d6d0e (patch) | |
tree | 5187c73f0b1abd3cb8fec9706a24251aacecdceb /mesalib/src/glsl/ast_to_hir.cpp | |
parent | 272e57235cd60a2e65ac8258d96a02eb3939b687 (diff) | |
download | vcxsrv-0b9b391c5a7acb31e5d8061169649043a38d6d0e.tar.gz vcxsrv-0b9b391c5a7acb31e5d8061169649043a38d6d0e.tar.bz2 vcxsrv-0b9b391c5a7acb31e5d8061169649043a38d6d0e.zip |
xserver xkeyboard-config mesa git update 28 Mar 2011
Diffstat (limited to 'mesalib/src/glsl/ast_to_hir.cpp')
-rw-r--r-- | mesalib/src/glsl/ast_to_hir.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/mesalib/src/glsl/ast_to_hir.cpp b/mesalib/src/glsl/ast_to_hir.cpp index cdb16fd49..9538aa62b 100644 --- a/mesalib/src/glsl/ast_to_hir.cpp +++ b/mesalib/src/glsl/ast_to_hir.cpp @@ -1577,7 +1577,7 @@ ast_expression::hir(exec_list *instructions, */ ir_variable *v = array->whole_variable_referenced(); if (v != NULL) - v->max_array_access = array->type->array_size(); + v->max_array_access = array->type->array_size() - 1; } } @@ -2676,17 +2676,24 @@ ast_declarator_list::hir(exec_list *instructions, * preceded by one of these precision qualifiers [...] Literal * constants do not have precision qualifiers. Neither do Boolean * variables. + * + * In GLSL ES, sampler types are also allowed. + * + * From page 87 of the GLSL ES spec: + * "RESOLUTION: Allow sampler types to take a precision qualifier." */ if (this->type->specifier->precision != ast_precision_none && !var->type->is_float() && !var->type->is_integer() + && !(var->type->is_sampler() && state->es_shader) && !(var->type->is_array() && (var->type->fields.array->is_float() || var->type->fields.array->is_integer()))) { _mesa_glsl_error(&loc, state, - "precision qualifiers apply only to floating point " - "and integer types"); + "precision qualifiers apply only to floating point" + "%s types", state->es_shader ? ", integer, and sampler" + : "and integer"); } /* Process the initializer and add its instructions to a temporary |