summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2017-02-23 19:04:52 +0100
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>2017-02-27 19:33:10 +0100
commitde2727925a5b69e7c7fa1fee3c7e7ad0cbabcb02 (patch)
tree50838199a7317998372f49d032e0155e43955a2c
parentea8086861f87d26185c01d3ac4a0951bb41dd9d3 (diff)
glsl: add has_shader_image_load_store()
Preliminary work for ARB_bindless_texture which can interact with ARB_shader_image_load_store. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
-rw-r--r--src/compiler/glsl/builtin_variables.cpp3
-rw-r--r--src/compiler/glsl/glsl_parser.yy3
-rw-r--r--src/compiler/glsl/glsl_parser_extras.h5
3 files changed, 7 insertions, 4 deletions
diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp
index db8418bbc7f..fc0443e7156 100644
--- a/src/compiler/glsl/builtin_variables.cpp
+++ b/src/compiler/glsl/builtin_variables.cpp
@@ -840,8 +840,7 @@ builtin_variable_generator::generate_constants()
state->Const.MaxTransformFeedbackInterleavedComponents);
}
- if (state->is_version(420, 310) ||
- state->ARB_shader_image_load_store_enable) {
+ if (state->has_shader_image_load_store()) {
add_const("gl_MaxImageUnits",
state->Const.MaxImageUnits);
add_const("gl_MaxVertexImageUniforms",
diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy
index db291655180..146c9628973 100644
--- a/src/compiler/glsl/glsl_parser.yy
+++ b/src/compiler/glsl/glsl_parser.yy
@@ -1318,8 +1318,7 @@ layout_qualifier_id:
}
/* Layout qualifiers for ARB_shader_image_load_store. */
- if (state->ARB_shader_image_load_store_enable ||
- state->is_version(420, 310)) {
+ if (state->has_shader_image_load_store()) {
if (!$$.flags.i) {
static const struct {
const char *name;
diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h
index 9f4a309ca21..66ed2fa64b4 100644
--- a/src/compiler/glsl/glsl_parser_extras.h
+++ b/src/compiler/glsl/glsl_parser_extras.h
@@ -330,6 +330,11 @@ struct _mesa_glsl_parse_state {
is_version(400, 320);
}
+ bool has_shader_image_load_store() const
+ {
+ return ARB_shader_image_load_store_enable || is_version(420, 310);
+ }
+
void process_version_directive(YYLTYPE *locp, int version,
const char *ident);