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>
This commit is contained in:

committed by
Ian Romanick

parent
30f61c471d
commit
e63bb29853
@@ -337,6 +337,7 @@ samplerExternalOES {
|
||||
return IDENTIFIER;
|
||||
}
|
||||
|
||||
atomic_uint KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_atomic_counters_enable, ATOMIC_UINT);
|
||||
|
||||
struct return STRUCT;
|
||||
void return VOID_TOK;
|
||||
@@ -518,7 +519,6 @@ restrict KEYWORD(0, 300, 0, 0, RESTRICT);
|
||||
readonly KEYWORD(0, 300, 0, 0, READONLY);
|
||||
writeonly KEYWORD(0, 300, 0, 0, WRITEONLY);
|
||||
resource KEYWORD(0, 300, 0, 0, RESOURCE);
|
||||
atomic_uint KEYWORD(0, 300, 0, 0, ATOMIC_UINT);
|
||||
patch KEYWORD(0, 300, 0, 0, PATCH);
|
||||
sample KEYWORD(0, 300, 0, 0, SAMPLE);
|
||||
subroutine KEYWORD(0, 300, 0, 0, SUBROUTINE);
|
||||
|
Reference in New Issue
Block a user