glsl: Track existence of default float precision in GLSL ES fragment shaders

This is required by the spec, and it's a bit tricky because the default
precision is scoped.  As a result, I'm slightly abusing the symbol
table.

Fixes piglit no-default-float-precision.frag tests and the piglit
default-precision-nested-scope-0[1234].frag tests that are currently on
the piglit mailing list for review.

On IRC I got confirmation from cwabbot that ARM (Mali T6xx and T400)
enforces this requirement and from kusma that NVIDIA (Tegra2) enforces
this requirement.  We should be safe from regressing shipping
applications.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
Ian Romanick
2013-08-09 15:17:18 -07:00
parent 73e2d69792
commit cabd45773b
2 changed files with 68 additions and 4 deletions

View File

@@ -610,6 +610,10 @@ public:
virtual void print(void) const;
bool has_qualifiers() const;
const struct glsl_type *glsl_type(const char **name,
struct _mesa_glsl_parse_state *state)
const;
ast_type_qualifier qualifier;
ast_type_specifier *specifier;
};