summaryrefslogtreecommitdiffstats
path: root/src/glsl/glsl_parser_extras.h
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2013-10-20 12:38:07 -0700
committerIan Romanick <ian.d.romanick@intel.com>2013-11-07 15:56:57 -0800
commite63bb298531918c3a17e77a9ad96670e724c9c37 (patch)
tree9181aa991c227472ebb5d4a225e2c6dd7c811369 /src/glsl/glsl_parser_extras.h
parent30f61c471de5a9637e5d830e2b5b9dc4145f94d2 (diff)
downloadexternal_mesa3d-e63bb298531918c3a17e77a9ad96670e724c9c37.zip
external_mesa3d-e63bb298531918c3a17e77a9ad96670e724c9c37.tar.gz
external_mesa3d-e63bb298531918c3a17e77a9ad96670e724c9c37.tar.bz2
glsl: Implement parser support for atomic counters.
v2: Mark atomic counters as read-only variables. Move offset overlap code to the linker. Use the contains_atomic() convenience method. v3: Use pointer to integer instead of non-const reference. Add comment so we remember to add a spec quotation from the next GLSL release once the issue of atomic counter aggregation within structures is clarified. v4 (idr): Don't use std::map because it's overkill. Add an assertion that ctx->Const.MaxAtomicBufferBindings <= MAX_COMBINED_ATOMIC_BUFFERS. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/glsl_parser_extras.h')
-rw-r--r--src/glsl/glsl_parser_extras.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index 345d7a0..d232bb3 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -373,6 +373,9 @@ struct _mesa_glsl_parse_state {
* Unused for other shader types.
*/
unsigned gs_input_size;
+
+ /** Atomic counter offsets by binding */
+ unsigned atomic_counter_offsets[MAX_COMBINED_ATOMIC_BUFFERS];
};
# define YYLLOC_DEFAULT(Current, Rhs, N) \