compiler/glsl: clean up output
It's really hard to make sure we have the right amount of %s in the format string, so let's change how we generate this string. Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9896>
This commit is contained in:
parent
d5e0be9342
commit
eeec9d56ad
|
@ -22,6 +22,7 @@
|
|||
*/
|
||||
|
||||
#include "ast.h"
|
||||
#include "string_buffer.h"
|
||||
|
||||
void
|
||||
ast_type_specifier::print(void) const
|
||||
|
@ -831,80 +832,91 @@ ast_type_qualifier::validate_flags(YYLTYPE *loc,
|
|||
if (bad.flags.i == 0)
|
||||
return true;
|
||||
|
||||
struct _mesa_string_buffer *buf = _mesa_string_buffer_create(NULL, 100);
|
||||
#define Q(f) \
|
||||
if (bad.flags.q.f) \
|
||||
_mesa_string_buffer_append(buf, "" #f)
|
||||
#define Q2(f, s) \
|
||||
if (bad.flags.q.f) \
|
||||
_mesa_string_buffer_append(buf, " " #s)
|
||||
|
||||
Q(invariant);
|
||||
Q(precise);
|
||||
Q(constant);
|
||||
Q(attribute);
|
||||
Q(varying);
|
||||
Q(in);
|
||||
Q(out);
|
||||
Q(centroid);
|
||||
Q(sample);
|
||||
Q(patch);
|
||||
Q(uniform);
|
||||
Q(buffer);
|
||||
Q(shared_storage);
|
||||
Q(smooth);
|
||||
Q(flat);
|
||||
Q(noperspective);
|
||||
Q(origin_upper_left);
|
||||
Q(pixel_center_integer);
|
||||
Q2(explicit_align, align);
|
||||
Q2(explicit_component, component);
|
||||
Q2(explicit_location, location);
|
||||
Q2(explicit_index, index);
|
||||
Q2(explicit_binding, binding);
|
||||
Q2(explicit_offset, offset);
|
||||
Q(depth_type);
|
||||
Q(std140);
|
||||
Q(std430);
|
||||
Q(shared);
|
||||
Q(packed);
|
||||
Q(column_major);
|
||||
Q(row_major);
|
||||
Q(prim_type);
|
||||
Q(max_vertices);
|
||||
Q(local_size);
|
||||
Q(local_size_variable);
|
||||
Q(early_fragment_tests);
|
||||
Q2(explicit_image_format, image_format);
|
||||
Q(coherent);
|
||||
Q2(_volatile, volatile);
|
||||
Q(restrict_flag);
|
||||
Q(read_only);
|
||||
Q(write_only);
|
||||
Q(invocations);
|
||||
Q(stream);
|
||||
Q(stream);
|
||||
Q2(explicit_xfb_offset, xfb_offset);
|
||||
Q2(xfb_buffer, xfb_buffer);
|
||||
Q2(explicit_xfb_buffer, xfb_buffer);
|
||||
Q2(xfb_stride, xfb_stride);
|
||||
Q2(explicit_xfb_stride, xfb_stride);
|
||||
Q(vertex_spacing);
|
||||
Q(ordering);
|
||||
Q(point_mode);
|
||||
Q(vertices);
|
||||
Q(subroutine);
|
||||
Q(blend_support);
|
||||
Q(inner_coverage);
|
||||
Q(bindless_sampler);
|
||||
Q(bindless_image);
|
||||
Q(bound_sampler);
|
||||
Q(bound_image);
|
||||
Q(post_depth_coverage);
|
||||
Q(pixel_interlock_ordered);
|
||||
Q(pixel_interlock_unordered);
|
||||
Q(sample_interlock_ordered);
|
||||
Q(sample_interlock_unordered);
|
||||
Q2(non_coherent, noncoherent);
|
||||
|
||||
#undef Q
|
||||
#undef Q2
|
||||
|
||||
_mesa_glsl_error(loc, state,
|
||||
"%s '%s':"
|
||||
"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
|
||||
"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
|
||||
"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
|
||||
"%s%s%s%s%s%s%s\n",
|
||||
"%s '%s': %s\n",
|
||||
message, name,
|
||||
bad.flags.q.invariant ? " invariant" : "",
|
||||
bad.flags.q.precise ? " precise" : "",
|
||||
bad.flags.q.constant ? " constant" : "",
|
||||
bad.flags.q.attribute ? " attribute" : "",
|
||||
bad.flags.q.varying ? " varying" : "",
|
||||
bad.flags.q.in ? " in" : "",
|
||||
bad.flags.q.out ? " out" : "",
|
||||
bad.flags.q.centroid ? " centroid" : "",
|
||||
bad.flags.q.sample ? " sample" : "",
|
||||
bad.flags.q.patch ? " patch" : "",
|
||||
bad.flags.q.uniform ? " uniform" : "",
|
||||
bad.flags.q.buffer ? " buffer" : "",
|
||||
bad.flags.q.shared_storage ? " shared_storage" : "",
|
||||
bad.flags.q.smooth ? " smooth" : "",
|
||||
bad.flags.q.flat ? " flat" : "",
|
||||
bad.flags.q.noperspective ? " noperspective" : "",
|
||||
bad.flags.q.origin_upper_left ? " origin_upper_left" : "",
|
||||
bad.flags.q.pixel_center_integer ? " pixel_center_integer" : "",
|
||||
bad.flags.q.explicit_align ? " align" : "",
|
||||
bad.flags.q.explicit_component ? " component" : "",
|
||||
bad.flags.q.explicit_location ? " location" : "",
|
||||
bad.flags.q.explicit_index ? " index" : "",
|
||||
bad.flags.q.explicit_binding ? " binding" : "",
|
||||
bad.flags.q.explicit_offset ? " offset" : "",
|
||||
bad.flags.q.depth_type ? " depth_type" : "",
|
||||
bad.flags.q.std140 ? " std140" : "",
|
||||
bad.flags.q.std430 ? " std430" : "",
|
||||
bad.flags.q.shared ? " shared" : "",
|
||||
bad.flags.q.packed ? " packed" : "",
|
||||
bad.flags.q.column_major ? " column_major" : "",
|
||||
bad.flags.q.row_major ? " row_major" : "",
|
||||
bad.flags.q.prim_type ? " prim_type" : "",
|
||||
bad.flags.q.max_vertices ? " max_vertices" : "",
|
||||
bad.flags.q.local_size ? " local_size" : "",
|
||||
bad.flags.q.local_size_variable ? " local_size_variable" : "",
|
||||
bad.flags.q.early_fragment_tests ? " early_fragment_tests" : "",
|
||||
bad.flags.q.explicit_image_format ? " image_format" : "",
|
||||
bad.flags.q.coherent ? " coherent" : "",
|
||||
bad.flags.q._volatile ? " volatile" : "",
|
||||
bad.flags.q.restrict_flag ? " restrict_flag" : "",
|
||||
bad.flags.q.read_only ? " read_only" : "",
|
||||
bad.flags.q.write_only ? " write_only" : "",
|
||||
bad.flags.q.invocations ? " invocations" : "",
|
||||
bad.flags.q.stream ? " stream" : "",
|
||||
bad.flags.q.explicit_stream ? " stream" : "",
|
||||
bad.flags.q.explicit_xfb_offset ? " xfb_offset" : "",
|
||||
bad.flags.q.xfb_buffer ? " xfb_buffer" : "",
|
||||
bad.flags.q.explicit_xfb_buffer ? " xfb_buffer" : "",
|
||||
bad.flags.q.xfb_stride ? " xfb_stride" : "",
|
||||
bad.flags.q.explicit_xfb_stride ? " xfb_stride" : "",
|
||||
bad.flags.q.vertex_spacing ? " vertex_spacing" : "",
|
||||
bad.flags.q.ordering ? " ordering" : "",
|
||||
bad.flags.q.point_mode ? " point_mode" : "",
|
||||
bad.flags.q.vertices ? " vertices" : "",
|
||||
bad.flags.q.subroutine ? " subroutine" : "",
|
||||
bad.flags.q.blend_support ? " blend_support" : "",
|
||||
bad.flags.q.inner_coverage ? " inner_coverage" : "",
|
||||
bad.flags.q.bindless_sampler ? " bindless_sampler" : "",
|
||||
bad.flags.q.bindless_image ? " bindless_image" : "",
|
||||
bad.flags.q.bound_sampler ? " bound_sampler" : "",
|
||||
bad.flags.q.bound_image ? " bound_image" : "",
|
||||
bad.flags.q.post_depth_coverage ? " post_depth_coverage" : "",
|
||||
bad.flags.q.pixel_interlock_ordered ? " pixel_interlock_ordered" : "",
|
||||
bad.flags.q.pixel_interlock_unordered ? " pixel_interlock_unordered": "",
|
||||
bad.flags.q.sample_interlock_ordered ? " sample_interlock_ordered": "",
|
||||
bad.flags.q.sample_interlock_unordered ? " sample_interlock_unordered": "",
|
||||
bad.flags.q.non_coherent ? " noncoherent" : "");
|
||||
buf->buf);
|
||||
_mesa_string_buffer_destroy(buf);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue