glsl/lexer: Add new tokens for ARB_shader_image_load_store.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
@@ -337,6 +337,51 @@ samplerExternalOES {
|
|||||||
return IDENTIFIER;
|
return IDENTIFIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* keywords available with ARB_shader_image_load_store */
|
||||||
|
image1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1D);
|
||||||
|
image2D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2D);
|
||||||
|
image3D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE3D);
|
||||||
|
image2DRect KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DRECT);
|
||||||
|
imageCube KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGECUBE);
|
||||||
|
imageBuffer KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGEBUFFER);
|
||||||
|
image1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1DARRAY);
|
||||||
|
image2DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DARRAY);
|
||||||
|
imageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGECUBEARRAY);
|
||||||
|
image2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMS);
|
||||||
|
image2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMSARRAY);
|
||||||
|
iimage1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1D);
|
||||||
|
iimage2D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2D);
|
||||||
|
iimage3D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE3D);
|
||||||
|
iimage2DRect KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DRECT);
|
||||||
|
iimageCube KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGECUBE);
|
||||||
|
iimageBuffer KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGEBUFFER);
|
||||||
|
iimage1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1DARRAY);
|
||||||
|
iimage2DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DARRAY);
|
||||||
|
iimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGECUBEARRAY);
|
||||||
|
iimage2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMS);
|
||||||
|
iimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMSARRAY);
|
||||||
|
uimage1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1D);
|
||||||
|
uimage2D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2D);
|
||||||
|
uimage3D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE3D);
|
||||||
|
uimage2DRect KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DRECT);
|
||||||
|
uimageCube KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGECUBE);
|
||||||
|
uimageBuffer KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGEBUFFER);
|
||||||
|
uimage1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1DARRAY);
|
||||||
|
uimage2DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DARRAY);
|
||||||
|
uimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGECUBEARRAY);
|
||||||
|
uimage2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMS);
|
||||||
|
uimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMSARRAY);
|
||||||
|
image1DShadow KEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
|
||||||
|
image2DShadow KEYWORD(130, 300, 0, 0, IMAGE2DSHADOW);
|
||||||
|
image1DArrayShadow KEYWORD(130, 300, 0, 0, IMAGE1DARRAYSHADOW);
|
||||||
|
image2DArrayShadow KEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
|
||||||
|
|
||||||
|
coherent KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, COHERENT);
|
||||||
|
volatile KEYWORD_WITH_ALT(110, 100, 420, 0, yyextra->ARB_shader_image_load_store_enable, VOLATILE);
|
||||||
|
restrict KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, RESTRICT);
|
||||||
|
readonly KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, READONLY);
|
||||||
|
writeonly KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, WRITEONLY);
|
||||||
|
|
||||||
atomic_uint KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_atomic_counters_enable, ATOMIC_UINT);
|
atomic_uint KEYWORD_WITH_ALT(420, 300, 420, 0, yyextra->ARB_shader_atomic_counters_enable, ATOMIC_UINT);
|
||||||
|
|
||||||
struct return STRUCT;
|
struct return STRUCT;
|
||||||
@@ -436,7 +481,6 @@ switch KEYWORD(110, 100, 130, 300, SWITCH);
|
|||||||
default KEYWORD(110, 100, 130, 300, DEFAULT);
|
default KEYWORD(110, 100, 130, 300, DEFAULT);
|
||||||
inline KEYWORD(110, 100, 0, 0, INLINE_TOK);
|
inline KEYWORD(110, 100, 0, 0, INLINE_TOK);
|
||||||
noinline KEYWORD(110, 100, 0, 0, NOINLINE);
|
noinline KEYWORD(110, 100, 0, 0, NOINLINE);
|
||||||
volatile KEYWORD(110, 100, 0, 0, VOLATILE);
|
|
||||||
public KEYWORD(110, 100, 0, 0, PUBLIC_TOK);
|
public KEYWORD(110, 100, 0, 0, PUBLIC_TOK);
|
||||||
static KEYWORD(110, 100, 0, 0, STATIC);
|
static KEYWORD(110, 100, 0, 0, STATIC);
|
||||||
extern KEYWORD(110, 100, 0, 0, EXTERN);
|
extern KEYWORD(110, 100, 0, 0, EXTERN);
|
||||||
@@ -481,31 +525,6 @@ active KEYWORD(130, 300, 0, 0, ACTIVE);
|
|||||||
superp KEYWORD(130, 100, 0, 0, SUPERP);
|
superp KEYWORD(130, 100, 0, 0, SUPERP);
|
||||||
samplerBuffer KEYWORD(130, 300, 140, 0, SAMPLERBUFFER);
|
samplerBuffer KEYWORD(130, 300, 140, 0, SAMPLERBUFFER);
|
||||||
filter KEYWORD(130, 300, 0, 0, FILTER);
|
filter KEYWORD(130, 300, 0, 0, FILTER);
|
||||||
image1D KEYWORD(130, 300, 0, 0, IMAGE1D);
|
|
||||||
image2D KEYWORD(130, 300, 0, 0, IMAGE2D);
|
|
||||||
image3D KEYWORD(130, 300, 0, 0, IMAGE3D);
|
|
||||||
imageCube KEYWORD(130, 300, 0, 0, IMAGECUBE);
|
|
||||||
iimage1D KEYWORD(130, 300, 0, 0, IIMAGE1D);
|
|
||||||
iimage2D KEYWORD(130, 300, 0, 0, IIMAGE2D);
|
|
||||||
iimage3D KEYWORD(130, 300, 0, 0, IIMAGE3D);
|
|
||||||
iimageCube KEYWORD(130, 300, 0, 0, IIMAGECUBE);
|
|
||||||
uimage1D KEYWORD(130, 300, 0, 0, UIMAGE1D);
|
|
||||||
uimage2D KEYWORD(130, 300, 0, 0, UIMAGE2D);
|
|
||||||
uimage3D KEYWORD(130, 300, 0, 0, UIMAGE3D);
|
|
||||||
uimageCube KEYWORD(130, 300, 0, 0, UIMAGECUBE);
|
|
||||||
image1DArray KEYWORD(130, 300, 0, 0, IMAGE1DARRAY);
|
|
||||||
image2DArray KEYWORD(130, 300, 0, 0, IMAGE2DARRAY);
|
|
||||||
iimage1DArray KEYWORD(130, 300, 0, 0, IIMAGE1DARRAY);
|
|
||||||
iimage2DArray KEYWORD(130, 300, 0, 0, IIMAGE2DARRAY);
|
|
||||||
uimage1DArray KEYWORD(130, 300, 0, 0, UIMAGE1DARRAY);
|
|
||||||
uimage2DArray KEYWORD(130, 300, 0, 0, UIMAGE2DARRAY);
|
|
||||||
image1DShadow KEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
|
|
||||||
image2DShadow KEYWORD(130, 300, 0, 0, IMAGE2DSHADOW);
|
|
||||||
image1DArrayShadow KEYWORD(130, 300, 0, 0, IMAGE1DARRAYSHADOW);
|
|
||||||
image2DArrayShadow KEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
|
|
||||||
imageBuffer KEYWORD(130, 300, 0, 0, IMAGEBUFFER);
|
|
||||||
iimageBuffer KEYWORD(130, 300, 0, 0, IIMAGEBUFFER);
|
|
||||||
uimageBuffer KEYWORD(130, 300, 0, 0, UIMAGEBUFFER);
|
|
||||||
row_major KEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
|
row_major KEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
|
||||||
|
|
||||||
/* Additional reserved words in GLSL 1.40 */
|
/* Additional reserved words in GLSL 1.40 */
|
||||||
@@ -515,10 +534,6 @@ isamplerBuffer KEYWORD(140, 300, 140, 0, ISAMPLERBUFFER);
|
|||||||
usamplerBuffer KEYWORD(140, 300, 140, 0, USAMPLERBUFFER);
|
usamplerBuffer KEYWORD(140, 300, 140, 0, USAMPLERBUFFER);
|
||||||
|
|
||||||
/* Additional reserved words in GLSL ES 3.00 */
|
/* Additional reserved words in GLSL ES 3.00 */
|
||||||
coherent KEYWORD(0, 300, 0, 0, COHERENT);
|
|
||||||
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);
|
resource KEYWORD(0, 300, 0, 0, RESOURCE);
|
||||||
patch KEYWORD(0, 300, 0, 0, PATCH);
|
patch KEYWORD(0, 300, 0, 0, PATCH);
|
||||||
sample KEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_gpu_shader5_enable, SAMPLE);
|
sample KEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_gpu_shader5_enable, SAMPLE);
|
||||||
|
@@ -145,6 +145,14 @@ static bool match_layout_qualifier(const char *s1, const char *s2,
|
|||||||
%token SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
%token SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||||
%token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
%token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||||
%token SAMPLEREXTERNALOES
|
%token SAMPLEREXTERNALOES
|
||||||
|
%token IMAGE1D IMAGE2D IMAGE3D IMAGE2DRECT IMAGECUBE IMAGEBUFFER
|
||||||
|
%token IMAGE1DARRAY IMAGE2DARRAY IMAGECUBEARRAY IMAGE2DMS IMAGE2DMSARRAY
|
||||||
|
%token IIMAGE1D IIMAGE2D IIMAGE3D IIMAGE2DRECT IIMAGECUBE IIMAGEBUFFER
|
||||||
|
%token IIMAGE1DARRAY IIMAGE2DARRAY IIMAGECUBEARRAY IIMAGE2DMS IIMAGE2DMSARRAY
|
||||||
|
%token UIMAGE1D UIMAGE2D UIMAGE3D UIMAGE2DRECT UIMAGECUBE UIMAGEBUFFER
|
||||||
|
%token UIMAGE1DARRAY UIMAGE2DARRAY UIMAGECUBEARRAY UIMAGE2DMS UIMAGE2DMSARRAY
|
||||||
|
%token IMAGE1DSHADOW IMAGE2DSHADOW IMAGE1DARRAYSHADOW IMAGE2DARRAYSHADOW
|
||||||
|
%token COHERENT VOLATILE RESTRICT READONLY WRITEONLY
|
||||||
%token ATOMIC_UINT
|
%token ATOMIC_UINT
|
||||||
%token STRUCT VOID_TOK WHILE
|
%token STRUCT VOID_TOK WHILE
|
||||||
%token <identifier> IDENTIFIER TYPE_IDENTIFIER NEW_IDENTIFIER
|
%token <identifier> IDENTIFIER TYPE_IDENTIFIER NEW_IDENTIFIER
|
||||||
@@ -170,23 +178,17 @@ static bool match_layout_qualifier(const char *s1, const char *s2,
|
|||||||
/* Reserved words that are not actually used in the grammar.
|
/* Reserved words that are not actually used in the grammar.
|
||||||
*/
|
*/
|
||||||
%token ASM CLASS UNION ENUM TYPEDEF TEMPLATE THIS PACKED_TOK GOTO
|
%token ASM CLASS UNION ENUM TYPEDEF TEMPLATE THIS PACKED_TOK GOTO
|
||||||
%token INLINE_TOK NOINLINE VOLATILE PUBLIC_TOK STATIC EXTERN EXTERNAL
|
%token INLINE_TOK NOINLINE PUBLIC_TOK STATIC EXTERN EXTERNAL
|
||||||
%token LONG_TOK SHORT_TOK DOUBLE_TOK HALF FIXED_TOK UNSIGNED INPUT_TOK OUPTUT
|
%token LONG_TOK SHORT_TOK DOUBLE_TOK HALF FIXED_TOK UNSIGNED INPUT_TOK OUPTUT
|
||||||
%token HVEC2 HVEC3 HVEC4 DVEC2 DVEC3 DVEC4 FVEC2 FVEC3 FVEC4
|
%token HVEC2 HVEC3 HVEC4 DVEC2 DVEC3 DVEC4 FVEC2 FVEC3 FVEC4
|
||||||
%token SAMPLER3DRECT
|
%token SAMPLER3DRECT
|
||||||
%token SIZEOF CAST NAMESPACE USING
|
%token SIZEOF CAST NAMESPACE USING
|
||||||
%token COHERENT RESTRICT READONLY WRITEONLY RESOURCE PATCH SAMPLE
|
%token RESOURCE PATCH SAMPLE
|
||||||
%token SUBROUTINE
|
%token SUBROUTINE
|
||||||
|
|
||||||
%token ERROR_TOK
|
%token ERROR_TOK
|
||||||
|
|
||||||
%token COMMON PARTITION ACTIVE FILTER
|
%token COMMON PARTITION ACTIVE FILTER ROW_MAJOR
|
||||||
%token IMAGE1D IMAGE2D IMAGE3D IMAGECUBE IMAGE1DARRAY IMAGE2DARRAY
|
|
||||||
%token IIMAGE1D IIMAGE2D IIMAGE3D IIMAGECUBE IIMAGE1DARRAY IIMAGE2DARRAY
|
|
||||||
%token UIMAGE1D UIMAGE2D UIMAGE3D UIMAGECUBE UIMAGE1DARRAY UIMAGE2DARRAY
|
|
||||||
%token IMAGE1DSHADOW IMAGE2DSHADOW IMAGEBUFFER IIMAGEBUFFER UIMAGEBUFFER
|
|
||||||
%token IMAGE1DARRAYSHADOW IMAGE2DARRAYSHADOW
|
|
||||||
%token ROW_MAJOR
|
|
||||||
|
|
||||||
%type <identifier> variable_identifier
|
%type <identifier> variable_identifier
|
||||||
%type <node> statement
|
%type <node> statement
|
||||||
|
Reference in New Issue
Block a user