On 13 September 2011 07:17, Ian Romanick <i...@freedesktop.org> wrote:
> > > *instructions, type = glsl_type::error_type; } > > > > + /* From page 39 (page 45 of the PDF) of the GLSL 1.10 spec: + > > * + * "When calling a function, expressions that do not > > evaluate to + * l-values cannot be passed to parameters > > declared as out or inout." + * + * From page 32 (page 38 of > > the PDF) of the GLSL 1.10 spec: + * + * "Other binary or > > unary expressions, non-dereferenced arrays, + * function > > names, swizzles with repeated fields, and constants + * > > cannot be l-values." + * + * So for GLSL 1.10, passing an > > array as an out or inout parameter is not + * allowed. This > > restriction is removed in GLSL 1.20, and in GLSL ES. + */ + if > > ((var->mode == ir_var_inout || var->mode == ir_var_out) + && > > type->is_array() && state->language_version == 110) { + > > _mesa_glsl_error(&loc, state, "Arrays are not l-values in GLSL > > 1.10"); > > > /** @@ -2953,6 +2934,26 @@ ast_parameter_declarator::hir(exec_list > The error message should say what the actual error is. While this > message is technically correct, it will confuse / irritate some > people. "Arrays cannot be out or inout parameters in GLSL 1.10" is > better. > Agreed. Your phrasing is better. I'll fix it when I push the patch.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev