From 605aacc67d73db0926e0046a90a07fcd93a2d613 Mon Sep 17 00:00:00 2001 From: Chad Versace Date: Tue, 11 Jan 2011 17:21:18 -0800 Subject: glsl: Check that interpolation qualifiers do not precede 'varying' ... and 'centroid varying'. The check is performed only in GLSL versions >= 1.30. From page 29 (page 35 of the PDF) of the GLSL 1.30 spec: "interpolation qualifiers may only precede the qualifiers in, centroid in, out, or centroid out in a declaration. They do not apply to the deprecated storage qualifiers varying or centroid varying." Fixes Piglit test spec/glsl-1.30/compiler/interpolation-qualifiers/smooth-varying-01.frag. --- src/glsl/ast_type.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/glsl/ast_type.cpp') diff --git a/src/glsl/ast_type.cpp b/src/glsl/ast_type.cpp index a8761611d3..f23e545762 100644 --- a/src/glsl/ast_type.cpp +++ b/src/glsl/ast_type.cpp @@ -117,6 +117,13 @@ ast_fully_specified_type::has_qualifiers() const return this->qualifier.flags.i != 0; } +bool ast_type_qualifier::has_interpolation() const +{ + return this->flags.q.smooth + || this->flags.q.flat + || this->flags.q.noperspective; +} + const char* ast_type_qualifier::interpolation_string() const { -- cgit v1.2.3