Implement the extension GL_AMD_gpu_shader_half_float_fetch

- Support new opaque types: f16sampler*, f16image*, f16subpassInput*.
- Add new built-in GLSL texture/image functions.
This commit is contained in:
Rex Xu 2016-11-29 17:36:31 +08:00
parent 5630d0ec79
commit 1e5d7b0b27
21 changed files with 13116 additions and 3119 deletions

View file

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 3.0. */
/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -30,8 +30,8 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
@ -197,158 +197,200 @@ extern int yydebug;
ISAMPLER2DMSARRAY = 407,
USAMPLER2DMSARRAY = 408,
SAMPLEREXTERNALOES = 409,
SAMPLER = 410,
SAMPLERSHADOW = 411,
TEXTURE1D = 412,
TEXTURE2D = 413,
TEXTURE3D = 414,
TEXTURECUBE = 415,
TEXTURE1DARRAY = 416,
TEXTURE2DARRAY = 417,
ITEXTURE1D = 418,
ITEXTURE2D = 419,
ITEXTURE3D = 420,
ITEXTURECUBE = 421,
ITEXTURE1DARRAY = 422,
ITEXTURE2DARRAY = 423,
UTEXTURE1D = 424,
UTEXTURE2D = 425,
UTEXTURE3D = 426,
UTEXTURECUBE = 427,
UTEXTURE1DARRAY = 428,
UTEXTURE2DARRAY = 429,
TEXTURE2DRECT = 430,
ITEXTURE2DRECT = 431,
UTEXTURE2DRECT = 432,
TEXTUREBUFFER = 433,
ITEXTUREBUFFER = 434,
UTEXTUREBUFFER = 435,
TEXTURECUBEARRAY = 436,
ITEXTURECUBEARRAY = 437,
UTEXTURECUBEARRAY = 438,
TEXTURE2DMS = 439,
ITEXTURE2DMS = 440,
UTEXTURE2DMS = 441,
TEXTURE2DMSARRAY = 442,
ITEXTURE2DMSARRAY = 443,
UTEXTURE2DMSARRAY = 444,
SUBPASSINPUT = 445,
SUBPASSINPUTMS = 446,
ISUBPASSINPUT = 447,
ISUBPASSINPUTMS = 448,
USUBPASSINPUT = 449,
USUBPASSINPUTMS = 450,
IMAGE1D = 451,
IIMAGE1D = 452,
UIMAGE1D = 453,
IMAGE2D = 454,
IIMAGE2D = 455,
UIMAGE2D = 456,
IMAGE3D = 457,
IIMAGE3D = 458,
UIMAGE3D = 459,
IMAGE2DRECT = 460,
IIMAGE2DRECT = 461,
UIMAGE2DRECT = 462,
IMAGECUBE = 463,
IIMAGECUBE = 464,
UIMAGECUBE = 465,
IMAGEBUFFER = 466,
IIMAGEBUFFER = 467,
UIMAGEBUFFER = 468,
IMAGE1DARRAY = 469,
IIMAGE1DARRAY = 470,
UIMAGE1DARRAY = 471,
IMAGE2DARRAY = 472,
IIMAGE2DARRAY = 473,
UIMAGE2DARRAY = 474,
IMAGECUBEARRAY = 475,
IIMAGECUBEARRAY = 476,
UIMAGECUBEARRAY = 477,
IMAGE2DMS = 478,
IIMAGE2DMS = 479,
UIMAGE2DMS = 480,
IMAGE2DMSARRAY = 481,
IIMAGE2DMSARRAY = 482,
UIMAGE2DMSARRAY = 483,
STRUCT = 484,
VOID = 485,
WHILE = 486,
IDENTIFIER = 487,
TYPE_NAME = 488,
FLOATCONSTANT = 489,
DOUBLECONSTANT = 490,
INTCONSTANT = 491,
UINTCONSTANT = 492,
INT64CONSTANT = 493,
UINT64CONSTANT = 494,
INT16CONSTANT = 495,
UINT16CONSTANT = 496,
BOOLCONSTANT = 497,
FLOAT16CONSTANT = 498,
LEFT_OP = 499,
RIGHT_OP = 500,
INC_OP = 501,
DEC_OP = 502,
LE_OP = 503,
GE_OP = 504,
EQ_OP = 505,
NE_OP = 506,
AND_OP = 507,
OR_OP = 508,
XOR_OP = 509,
MUL_ASSIGN = 510,
DIV_ASSIGN = 511,
ADD_ASSIGN = 512,
MOD_ASSIGN = 513,
LEFT_ASSIGN = 514,
RIGHT_ASSIGN = 515,
AND_ASSIGN = 516,
XOR_ASSIGN = 517,
OR_ASSIGN = 518,
SUB_ASSIGN = 519,
LEFT_PAREN = 520,
RIGHT_PAREN = 521,
LEFT_BRACKET = 522,
RIGHT_BRACKET = 523,
LEFT_BRACE = 524,
RIGHT_BRACE = 525,
DOT = 526,
COMMA = 527,
COLON = 528,
EQUAL = 529,
SEMICOLON = 530,
BANG = 531,
DASH = 532,
TILDE = 533,
PLUS = 534,
STAR = 535,
SLASH = 536,
PERCENT = 537,
LEFT_ANGLE = 538,
RIGHT_ANGLE = 539,
VERTICAL_BAR = 540,
CARET = 541,
AMPERSAND = 542,
QUESTION = 543,
INVARIANT = 544,
PRECISE = 545,
HIGH_PRECISION = 546,
MEDIUM_PRECISION = 547,
LOW_PRECISION = 548,
PRECISION = 549,
PACKED = 550,
RESOURCE = 551,
SUPERP = 552
F16SAMPLER1D = 410,
F16SAMPLER2D = 411,
F16SAMPLER3D = 412,
F16SAMPLER2DRECT = 413,
F16SAMPLERCUBE = 414,
F16SAMPLER1DARRAY = 415,
F16SAMPLER2DARRAY = 416,
F16SAMPLERCUBEARRAY = 417,
F16SAMPLERBUFFER = 418,
F16SAMPLER2DMS = 419,
F16SAMPLER2DMSARRAY = 420,
F16SAMPLER1DSHADOW = 421,
F16SAMPLER2DSHADOW = 422,
F16SAMPLER1DARRAYSHADOW = 423,
F16SAMPLER2DARRAYSHADOW = 424,
F16SAMPLER2DRECTSHADOW = 425,
F16SAMPLERCUBESHADOW = 426,
F16SAMPLERCUBEARRAYSHADOW = 427,
SAMPLER = 428,
SAMPLERSHADOW = 429,
TEXTURE1D = 430,
TEXTURE2D = 431,
TEXTURE3D = 432,
TEXTURECUBE = 433,
TEXTURE1DARRAY = 434,
TEXTURE2DARRAY = 435,
ITEXTURE1D = 436,
ITEXTURE2D = 437,
ITEXTURE3D = 438,
ITEXTURECUBE = 439,
ITEXTURE1DARRAY = 440,
ITEXTURE2DARRAY = 441,
UTEXTURE1D = 442,
UTEXTURE2D = 443,
UTEXTURE3D = 444,
UTEXTURECUBE = 445,
UTEXTURE1DARRAY = 446,
UTEXTURE2DARRAY = 447,
TEXTURE2DRECT = 448,
ITEXTURE2DRECT = 449,
UTEXTURE2DRECT = 450,
TEXTUREBUFFER = 451,
ITEXTUREBUFFER = 452,
UTEXTUREBUFFER = 453,
TEXTURECUBEARRAY = 454,
ITEXTURECUBEARRAY = 455,
UTEXTURECUBEARRAY = 456,
TEXTURE2DMS = 457,
ITEXTURE2DMS = 458,
UTEXTURE2DMS = 459,
TEXTURE2DMSARRAY = 460,
ITEXTURE2DMSARRAY = 461,
UTEXTURE2DMSARRAY = 462,
F16TEXTURE1D = 463,
F16TEXTURE2D = 464,
F16TEXTURE3D = 465,
F16TEXTURE2DRECT = 466,
F16TEXTURECUBE = 467,
F16TEXTURE1DARRAY = 468,
F16TEXTURE2DARRAY = 469,
F16TEXTURECUBEARRAY = 470,
F16TEXTUREBUFFER = 471,
F16TEXTURE2DMS = 472,
F16TEXTURE2DMSARRAY = 473,
SUBPASSINPUT = 474,
SUBPASSINPUTMS = 475,
ISUBPASSINPUT = 476,
ISUBPASSINPUTMS = 477,
USUBPASSINPUT = 478,
USUBPASSINPUTMS = 479,
F16SUBPASSINPUT = 480,
F16SUBPASSINPUTMS = 481,
IMAGE1D = 482,
IIMAGE1D = 483,
UIMAGE1D = 484,
IMAGE2D = 485,
IIMAGE2D = 486,
UIMAGE2D = 487,
IMAGE3D = 488,
IIMAGE3D = 489,
UIMAGE3D = 490,
IMAGE2DRECT = 491,
IIMAGE2DRECT = 492,
UIMAGE2DRECT = 493,
IMAGECUBE = 494,
IIMAGECUBE = 495,
UIMAGECUBE = 496,
IMAGEBUFFER = 497,
IIMAGEBUFFER = 498,
UIMAGEBUFFER = 499,
IMAGE1DARRAY = 500,
IIMAGE1DARRAY = 501,
UIMAGE1DARRAY = 502,
IMAGE2DARRAY = 503,
IIMAGE2DARRAY = 504,
UIMAGE2DARRAY = 505,
IMAGECUBEARRAY = 506,
IIMAGECUBEARRAY = 507,
UIMAGECUBEARRAY = 508,
IMAGE2DMS = 509,
IIMAGE2DMS = 510,
UIMAGE2DMS = 511,
IMAGE2DMSARRAY = 512,
IIMAGE2DMSARRAY = 513,
UIMAGE2DMSARRAY = 514,
F16IMAGE1D = 515,
F16IMAGE2D = 516,
F16IMAGE3D = 517,
F16IMAGE2DRECT = 518,
F16IMAGECUBE = 519,
F16IMAGE1DARRAY = 520,
F16IMAGE2DARRAY = 521,
F16IMAGECUBEARRAY = 522,
F16IMAGEBUFFER = 523,
F16IMAGE2DMS = 524,
F16IMAGE2DMSARRAY = 525,
STRUCT = 526,
VOID = 527,
WHILE = 528,
IDENTIFIER = 529,
TYPE_NAME = 530,
FLOATCONSTANT = 531,
DOUBLECONSTANT = 532,
INTCONSTANT = 533,
UINTCONSTANT = 534,
INT64CONSTANT = 535,
UINT64CONSTANT = 536,
INT16CONSTANT = 537,
UINT16CONSTANT = 538,
BOOLCONSTANT = 539,
FLOAT16CONSTANT = 540,
LEFT_OP = 541,
RIGHT_OP = 542,
INC_OP = 543,
DEC_OP = 544,
LE_OP = 545,
GE_OP = 546,
EQ_OP = 547,
NE_OP = 548,
AND_OP = 549,
OR_OP = 550,
XOR_OP = 551,
MUL_ASSIGN = 552,
DIV_ASSIGN = 553,
ADD_ASSIGN = 554,
MOD_ASSIGN = 555,
LEFT_ASSIGN = 556,
RIGHT_ASSIGN = 557,
AND_ASSIGN = 558,
XOR_ASSIGN = 559,
OR_ASSIGN = 560,
SUB_ASSIGN = 561,
LEFT_PAREN = 562,
RIGHT_PAREN = 563,
LEFT_BRACKET = 564,
RIGHT_BRACKET = 565,
LEFT_BRACE = 566,
RIGHT_BRACE = 567,
DOT = 568,
COMMA = 569,
COLON = 570,
EQUAL = 571,
SEMICOLON = 572,
BANG = 573,
DASH = 574,
TILDE = 575,
PLUS = 576,
STAR = 577,
SLASH = 578,
PERCENT = 579,
LEFT_ANGLE = 580,
RIGHT_ANGLE = 581,
VERTICAL_BAR = 582,
CARET = 583,
AMPERSAND = 584,
QUESTION = 585,
INVARIANT = 586,
PRECISE = 587,
HIGH_PRECISION = 588,
MEDIUM_PRECISION = 589,
LOW_PRECISION = 590,
PRECISION = 591,
PACKED = 592,
RESOURCE = 593,
SUPERP = 594
};
#endif
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
#line 69 "MachineIndependent/glslang.y" /* yacc.c:1909 */
#line 69 "glslang.y" /* yacc.c:1909 */
struct {
glslang::TSourceLoc loc;
@ -383,8 +425,10 @@ union YYSTYPE
};
} interm;
#line 387 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
#line 429 "glslang_tab.cpp.h" /* yacc.c:1909 */
};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
@ -393,4 +437,4 @@ union YYSTYPE
int yyparse (glslang::TParseContext* pParseContext);
#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */
#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */