summaryrefslogtreecommitdiffstats
path: root/src/glsl/lower_texture_projection.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-02-05 21:42:00 -0800
committerKenneth Graunke <[email protected]>2014-02-07 12:36:38 -0800
commit2062f40d81de4743758851b03dad506f9cb6f306 (patch)
tree14d9247cb17765c46d9f52a599cf2d300ae602e2 /src/glsl/lower_texture_projection.cpp
parentf47e5962885d9f7de23a8c9c9ba035017e24ffd6 (diff)
glsl: Don't lose precision qualifiers when encountering "centroid".
Mesa fails to retain the precision qualifier when parsing: #version 300 es centroid in mediump vec2 v; Consider how the parser's type_qualifier production is applied. First, the precision_qualifier rule creates a new ast_type_qualifier: <precision: mediump> Then the storage_qualifier rule creates a second one: <flags: in> and calls merge_qualifier() to fold in any previous qualifications, returning: <flags: in, precision: mediump> Finally, the auxiliary_storage_qualifier creates one for "centroid": <flags: centroid> it then does $$ = $1 and $$.flags |= $2.flags, resulting in: <flags: centroid, in> Since precision isn't stored in the flags bitfield, it is lost. We need to instead call merge_qualifier to combine all the fields. Cc: [email protected] Signed-off-by: Kenneth Graunke <[email protected]> Reported-by: Kevin Rogovin <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/glsl/lower_texture_projection.cpp')
0 files changed, 0 insertions, 0 deletions