glsl: use an enum for AMD_conservative_depth layout qualifiers
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 23 Feb 2017 17:07:58 +0000 (18:07 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 27 Feb 2017 18:39:37 +0000 (19:39 +0100)
commit87ee1729d0cd5c6a26c62109eae9b75b006a9d1a
tree7a25d5390a3f38fb8d3f9c8f877eb63f65214187
parentde2727925a5b69e7c7fa1fee3c7e7ad0cbabcb02
glsl: use an enum for AMD_conservative_depth layout qualifiers

The main idea behind this is to free some bits in the flags.q
struct because currently all 64-bits are used and we can't
add more layout qualifiers without reaching a static assert.

In order to do that (mainly for ARB_bindless_texture), use an
enumeration for the AMD_conservative_depth layout qualifiers
because it's forbidden to declare more than one depth qualifier
for gl_FragDepth.

Note that ast_type_qualifier::merge_qualifier() will prevent
using duplicate layout qualifiers by returning a compile-time
error.

No piglit regressions found (including compiler tests) with
RX480 on RadeonSI.

v2: use a switch case

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Andres Gomez <agomez@igalia.com> (v1)
src/compiler/glsl/ast.h
src/compiler/glsl/ast_to_hir.cpp
src/compiler/glsl/ast_type.cpp
src/compiler/glsl/glsl_parser.yy