Hi Ken, In the last stable-release cycle you argued for not cherry picking commit fcaa48d9cc8937e0ceb59dfd22ef5b6e6fd1a273 on the grounds that we shouldn't change mesa to be strictly more strict in a stable release.
That is, adding a new error case to the compiler cannot actually cause a valid program to start working, (which would be a nice bug fix), but could potentially cause an invalid program to stop working (which could be regarded as a regression). The same reasoning seems to disqualify the below patch. Do you agree? Anyone else have input on this issue? If we agree on the rationale, I'd like to codify it with some language in our documentation for stable-branch criteria. Something like: Note: Not all bug fixes are automatically suitable for the stable branch. For example, a patch that makes the implementation more strict, (such as detecting some invalid GLSL code that was previously silently accepted), can be rejected by the stable-branch maintainer. The rationale is that a patch like this can cause a program which was previously working as desired to now stop working due to the new error case. From the point of view of the user of such an application, that's a regression that we do not want to allow during a stable release. -Carl commit 17856726c94000bf16156f7f9acea77a271a6005 Author: Kenneth Graunke <kenn...@whitecape.org> Date: Fri Jul 26 21:18:56 2013 -0700 glsl: Disallow auxiliary storage qualifiers on FS outputs. This has always been an error; we just forgot to check for it. Fixes Piglit's no-aux-qual-on-fs-output.frag. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67333 Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Reviewed-by: Matt Turner <matts...@gmail.com> Cc: mesa-sta...@lists.freedesktop.org diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 2569cde..598da92 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -2927,6 +2927,20 @@ ast_declarator_list::hir(exec_list *instructions, "'centroid in' cannot be used in a vertex shader"); } + /* Section 4.3.6 of the GLSL 1.30 specification states: + * "It is an error to use centroid out in a fragment shader." + * + * The GL_ARB_shading_language_420pack extension specification states: + * "It is an error to use auxiliary storage qualifiers or interpolation + * qualifiers on an output in a fragment shader." + */ + if (state->target == fragment_shader && + this->type->qualifier.flags.q.out && + this->type->qualifier.has_auxiliary_storage()) { + _mesa_glsl_error(&loc, state, + "auxiliary storage qualifiers cannot be used on " + "fragment shader outputs"); + } /* Precision qualifiers exists only in GLSL versions 1.00 and >= 1.30. */
pgpR63sEqyVGx.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev