Revert "Merge pull request #2330 from ShabbyX/optimize_for_angle"
This reverts commit 1ee5d1c0bb683daea245e8329fd619940a35a5b4, reversing changes made to 906d48a7e828701e25487c9cf34418ded831c814.
This commit is contained in:
parent
5799f5befe
commit
4f32f93d7e
21
BUILD.gn
21
BUILD.gn
@ -109,6 +109,7 @@ template("glslang_sources_common") {
|
|||||||
"SPIRV/SpvBuilder.cpp",
|
"SPIRV/SpvBuilder.cpp",
|
||||||
"SPIRV/SpvBuilder.h",
|
"SPIRV/SpvBuilder.h",
|
||||||
"SPIRV/SpvPostProcess.cpp",
|
"SPIRV/SpvPostProcess.cpp",
|
||||||
|
"SPIRV/SpvTools.cpp",
|
||||||
"SPIRV/SpvTools.h",
|
"SPIRV/SpvTools.h",
|
||||||
"SPIRV/bitutils.h",
|
"SPIRV/bitutils.h",
|
||||||
"SPIRV/disassemble.cpp",
|
"SPIRV/disassemble.cpp",
|
||||||
@ -155,7 +156,7 @@ template("glslang_sources_common") {
|
|||||||
"glslang/MachineIndependent/attribute.cpp",
|
"glslang/MachineIndependent/attribute.cpp",
|
||||||
"glslang/MachineIndependent/attribute.h",
|
"glslang/MachineIndependent/attribute.h",
|
||||||
"glslang/MachineIndependent/gl_types.h",
|
"glslang/MachineIndependent/gl_types.h",
|
||||||
"glslang/MachineIndependent/glslang_angle_tab.cpp.h",
|
"glslang/MachineIndependent/glslang_tab.cpp",
|
||||||
"glslang/MachineIndependent/glslang_tab.cpp.h",
|
"glslang/MachineIndependent/glslang_tab.cpp.h",
|
||||||
"glslang/MachineIndependent/intermOut.cpp",
|
"glslang/MachineIndependent/intermOut.cpp",
|
||||||
"glslang/MachineIndependent/iomapper.cpp",
|
"glslang/MachineIndependent/iomapper.cpp",
|
||||||
@ -206,25 +207,9 @@ template("glslang_sources_common") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defines = []
|
defines = []
|
||||||
if (invoker.is_angle) {
|
|
||||||
sources += [
|
|
||||||
"glslang/MachineIndependent/glslang_angle_tab.cpp",
|
|
||||||
]
|
|
||||||
defines += [ "GLSLANG_ANGLE" ]
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
sources += [
|
|
||||||
"glslang/MachineIndependent/glslang_tab.cpp",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
if (invoker.enable_opt) {
|
if (invoker.enable_opt) {
|
||||||
sources += [ "SPIRV/SpvTools.cpp" ]
|
|
||||||
defines += [ "ENABLE_OPT=1" ]
|
defines += [ "ENABLE_OPT=1" ]
|
||||||
}
|
}
|
||||||
if (invoker.is_angle) {
|
|
||||||
defines += [ "GLSLANG_ANGLE" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
sources += [ "glslang/OSDependent/Windows/ossource.cpp" ]
|
sources += [ "glslang/OSDependent/Windows/ossource.cpp" ]
|
||||||
@ -272,13 +257,11 @@ template("glslang_sources_common") {
|
|||||||
glslang_sources_common("glslang_lib_sources") {
|
glslang_sources_common("glslang_lib_sources") {
|
||||||
enable_opt = !glslang_angle
|
enable_opt = !glslang_angle
|
||||||
enable_hlsl = !glslang_angle
|
enable_hlsl = !glslang_angle
|
||||||
is_angle = glslang_angle
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glslang_sources_common("glslang_sources") {
|
glslang_sources_common("glslang_sources") {
|
||||||
enable_opt = true
|
enable_opt = true
|
||||||
enable_hlsl = true
|
enable_hlsl = true
|
||||||
is_angle = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
source_set("glslang_default_resource_limits_sources") {
|
source_set("glslang_default_resource_limits_sources") {
|
||||||
|
@ -283,8 +283,6 @@ spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile
|
|||||||
{
|
{
|
||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
return spv::SourceLanguageESSL;
|
return spv::SourceLanguageESSL;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
return spv::SourceLanguageGLSL;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (source) {
|
switch (source) {
|
||||||
@ -8688,7 +8686,7 @@ void OutputSpvBin(const std::vector<unsigned int>& spirv, const char* baseName)
|
|||||||
// Write SPIR-V out to a text file with 32-bit hexadecimal words
|
// Write SPIR-V out to a text file with 32-bit hexadecimal words
|
||||||
void OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName, const char* varName)
|
void OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName, const char* varName)
|
||||||
{
|
{
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
std::ofstream out;
|
std::ofstream out;
|
||||||
out.open(baseName, std::ios::binary | std::ios::out);
|
out.open(baseName, std::ios::binary | std::ios::out);
|
||||||
if (out.fail())
|
if (out.fail())
|
||||||
|
@ -147,10 +147,6 @@ EProfile EDesktopProfile = static_cast<EProfile>(ENoProfile | ECoreProfile | ECo
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
const Versioning* Es300Desktop130 = nullptr;
|
const Versioning* Es300Desktop130 = nullptr;
|
||||||
const Versioning* Es310Desktop420 = nullptr;
|
const Versioning* Es310Desktop420 = nullptr;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
const Versioning* Es300Desktop130 = nullptr;
|
|
||||||
const Versioning* Es310Desktop420 = nullptr;
|
|
||||||
const Versioning* Es310Desktop450 = nullptr;
|
|
||||||
#else
|
#else
|
||||||
const Versioning Es300Desktop130Version[] = { { EEsProfile, 0, 300, 0, nullptr },
|
const Versioning Es300Desktop130Version[] = { { EEsProfile, 0, 300, 0, nullptr },
|
||||||
{ EDesktopProfile, 0, 130, 0, nullptr },
|
{ EDesktopProfile, 0, 130, 0, nullptr },
|
||||||
@ -419,7 +415,7 @@ void AddTabledBuiltin(TString& decls, const BuiltInFunction& function)
|
|||||||
// See if the tabled versioning information allows the current version.
|
// See if the tabled versioning information allows the current version.
|
||||||
bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& /* spVersion */)
|
bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& /* spVersion */)
|
||||||
{
|
{
|
||||||
#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
|
#ifdef GLSLANG_WEB
|
||||||
// all entries in table are valid
|
// all entries in table are valid
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
@ -503,7 +499,7 @@ TBuiltIns::TBuiltIns()
|
|||||||
prefixes[EbtFloat] = "";
|
prefixes[EbtFloat] = "";
|
||||||
prefixes[EbtInt] = "i";
|
prefixes[EbtInt] = "i";
|
||||||
prefixes[EbtUint] = "u";
|
prefixes[EbtUint] = "u";
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
prefixes[EbtFloat16] = "f16";
|
prefixes[EbtFloat16] = "f16";
|
||||||
prefixes[EbtInt8] = "i8";
|
prefixes[EbtInt8] = "i8";
|
||||||
prefixes[EbtUint8] = "u8";
|
prefixes[EbtUint8] = "u8";
|
||||||
@ -520,9 +516,7 @@ TBuiltIns::TBuiltIns()
|
|||||||
dimMap[Esd3D] = 3;
|
dimMap[Esd3D] = 3;
|
||||||
dimMap[EsdCube] = 3;
|
dimMap[EsdCube] = 3;
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
dimMap[Esd1D] = 1;
|
dimMap[Esd1D] = 1;
|
||||||
#endif
|
|
||||||
dimMap[EsdRect] = 2;
|
dimMap[EsdRect] = 2;
|
||||||
dimMap[EsdBuffer] = 1;
|
dimMap[EsdBuffer] = 1;
|
||||||
dimMap[EsdSubpass] = 2; // potentially unused for now
|
dimMap[EsdSubpass] = 2; // potentially unused for now
|
||||||
@ -547,9 +541,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
version = 310;
|
version = 310;
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
version = 450;
|
|
||||||
profile = ECoreProfile;
|
|
||||||
#endif
|
#endif
|
||||||
addTabledBuiltins(version, profile, spvVersion);
|
addTabledBuiltins(version, profile, spvVersion);
|
||||||
|
|
||||||
@ -595,7 +586,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"vec4 fwidthCoarse(vec4 p);"
|
"vec4 fwidthCoarse(vec4 p);"
|
||||||
);
|
);
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
TString derivativesAndControl16bits (
|
TString derivativesAndControl16bits (
|
||||||
"float16_t dFdx(float16_t);"
|
"float16_t dFdx(float16_t);"
|
||||||
"f16vec2 dFdx(f16vec2);"
|
"f16vec2 dFdx(f16vec2);"
|
||||||
@ -1183,7 +1173,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n"
|
"\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
if ((profile == EEsProfile && version >= 310) ||
|
if ((profile == EEsProfile && version >= 310) ||
|
||||||
(profile != EEsProfile && version >= 430)) {
|
(profile != EEsProfile && version >= 430)) {
|
||||||
@ -1221,7 +1210,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (profile != EEsProfile && version >= 440) {
|
if (profile != EEsProfile && version >= 440) {
|
||||||
commonBuiltins.append(
|
commonBuiltins.append(
|
||||||
"uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t);"
|
"uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t);"
|
||||||
@ -1271,8 +1259,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"void atomicStore(coherent volatile out int64_t, int64_t, int, int, int);"
|
"void atomicStore(coherent volatile out int64_t, int64_t, int, int, int);"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
#endif
|
||||||
#endif // !GLSLANG_WEB
|
|
||||||
|
|
||||||
if ((profile == EEsProfile && version >= 300) ||
|
if ((profile == EEsProfile && version >= 300) ||
|
||||||
(profile != EEsProfile && version >= 150)) { // GL_ARB_shader_bit_encoding
|
(profile != EEsProfile && version >= 150)) { // GL_ARB_shader_bit_encoding
|
||||||
@ -1312,7 +1299,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
|
if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
|
||||||
commonBuiltins.append(
|
commonBuiltins.append(
|
||||||
"double fma(double, double, double);"
|
"double fma(double, double, double);"
|
||||||
@ -1321,7 +1307,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"dvec4 fma(dvec4, dvec4, dvec4 );"
|
"dvec4 fma(dvec4, dvec4, dvec4 );"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if ((profile == EEsProfile && version >= 310) ||
|
if ((profile == EEsProfile && version >= 310) ||
|
||||||
(profile != EEsProfile && version >= 400)) {
|
(profile != EEsProfile && version >= 400)) {
|
||||||
@ -1339,7 +1324,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
|
if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
|
||||||
commonBuiltins.append(
|
commonBuiltins.append(
|
||||||
"double frexp(double, out int);"
|
"double frexp(double, out int);"
|
||||||
@ -1357,7 +1341,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
|
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((profile == EEsProfile && version >= 300) ||
|
if ((profile == EEsProfile && version >= 300) ||
|
||||||
@ -1467,7 +1450,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
//
|
//
|
||||||
// Original-style texture functions existing in all stages.
|
// Original-style texture functions existing in all stages.
|
||||||
// (Per-stage functions below.)
|
// (Per-stage functions below.)
|
||||||
@ -1616,7 +1598,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
// Bitfield
|
// Bitfield
|
||||||
if ((profile == EEsProfile && version >= 310) ||
|
if ((profile == EEsProfile && version >= 310) ||
|
||||||
@ -1759,7 +1740,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// GL_ARB_shader_ballot
|
// GL_ARB_shader_ballot
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
commonBuiltins.append(
|
commonBuiltins.append(
|
||||||
@ -3080,7 +3060,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"bool textureFootprintGradClampNV(sampler2D, vec2, vec2, vec2, float, int, bool, out gl_TextureFootprint2DNV);"
|
"bool textureFootprintGradClampNV(sampler2D, vec2, vec2, vec2, float, int, bool, out gl_TextureFootprint2DNV);"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
if ((profile == EEsProfile && version >= 300 && version < 310) ||
|
if ((profile == EEsProfile && version >= 300 && version < 310) ||
|
||||||
(profile != EEsProfile && version >= 150 && version < 450)) { // GL_EXT_shader_integer_mix
|
(profile != EEsProfile && version >= 150 && version < 450)) { // GL_EXT_shader_integer_mix
|
||||||
@ -3100,7 +3079,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// GL_AMD_gpu_shader_half_float/Explicit types
|
// GL_AMD_gpu_shader_half_float/Explicit types
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
commonBuiltins.append(
|
commonBuiltins.append(
|
||||||
@ -3952,7 +3930,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"f64vec4 log2(f64vec4);"
|
"f64vec4 log2(f64vec4);"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
stageBuiltins[EShLangFragment].append(derivativesAndControl64bits);
|
stageBuiltins[EShLangFragment].append(derivativesAndControl64bits);
|
||||||
stageBuiltins[EShLangFragment].append(
|
stageBuiltins[EShLangFragment].append(
|
||||||
@ -3974,7 +3951,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
@ -3990,7 +3966,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
if (spvVersion.vulkan == 0 && IncludeLegacy(version, profile, spvVersion))
|
if (spvVersion.vulkan == 0 && IncludeLegacy(version, profile, spvVersion))
|
||||||
stageBuiltins[EShLangVertex].append("vec4 ftransform();");
|
stageBuiltins[EShLangVertex].append("vec4 ftransform();");
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
//
|
//
|
||||||
// Original-style texture Functions with lod.
|
// Original-style texture Functions with lod.
|
||||||
//
|
//
|
||||||
@ -4050,7 +4025,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
if ((profile != EEsProfile && version >= 150) ||
|
if ((profile != EEsProfile && version >= 150) ||
|
||||||
(profile == EEsProfile && version >= 310)) {
|
(profile == EEsProfile && version >= 310)) {
|
||||||
@ -4071,7 +4045,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"void EndPrimitive();"
|
"void EndPrimitive();"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_WEB
|
#endif
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
@ -4131,7 +4105,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
|
|
||||||
commonBuiltins.append("void debugPrintfEXT();\n");
|
commonBuiltins.append("void debugPrintfEXT();\n");
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
// coopMatStoreNV perhaps ought to have "out" on the buf parameter, but
|
// coopMatStoreNV perhaps ought to have "out" on the buf parameter, but
|
||||||
// adding it introduces undesirable tempArgs on the stack. What we want
|
// adding it introduces undesirable tempArgs on the stack. What we want
|
||||||
@ -4255,7 +4228,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
|
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
// GL_ARB_derivative_control
|
// GL_ARB_derivative_control
|
||||||
if (profile != EEsProfile && version >= 400) {
|
if (profile != EEsProfile && version >= 400) {
|
||||||
@ -4293,7 +4265,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"bool helperInvocationEXT();"
|
"bool helperInvocationEXT();"
|
||||||
"\n");
|
"\n");
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// GL_AMD_shader_explicit_vertex_parameter
|
// GL_AMD_shader_explicit_vertex_parameter
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
stageBuiltins[EShLangFragment].append(
|
stageBuiltins[EShLangFragment].append(
|
||||||
@ -4428,14 +4399,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"void executeCallableEXT(uint, int);"
|
"void executeCallableEXT(uint, int);"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
//E_SPV_NV_compute_shader_derivatives
|
//E_SPV_NV_compute_shader_derivatives
|
||||||
if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) {
|
if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) {
|
||||||
stageBuiltins[EShLangCompute].append(derivativeControls);
|
stageBuiltins[EShLangCompute].append(derivativeControls);
|
||||||
stageBuiltins[EShLangCompute].append("\n");
|
stageBuiltins[EShLangCompute].append("\n");
|
||||||
}
|
}
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
stageBuiltins[EShLangCompute].append(derivativesAndControl16bits);
|
stageBuiltins[EShLangCompute].append(derivativesAndControl16bits);
|
||||||
stageBuiltins[EShLangCompute].append(derivativesAndControl64bits);
|
stageBuiltins[EShLangCompute].append(derivativesAndControl64bits);
|
||||||
@ -4448,8 +4417,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"void writePackedPrimitiveIndices4x8NV(uint, uint);"
|
"void writePackedPrimitiveIndices4x8NV(uint, uint);"
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
#endif
|
||||||
#endif // !GLSLANG_WEB
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
@ -4486,7 +4454,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
|
if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
|
||||||
//
|
//
|
||||||
// Matrix state. p. 31, 32, 37, 39, 40.
|
// Matrix state. p. 31, 32, 37, 39, 40.
|
||||||
@ -4604,7 +4572,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
|
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
@ -4635,7 +4603,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
// Define the interface to the mesh/task shader.
|
// Define the interface to the mesh/task shader.
|
||||||
@ -4723,7 +4690,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
@ -5394,15 +5360,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
if ((profile != EEsProfile && version >= 140) ||
|
|
||||||
(profile == EEsProfile && version >= 310)) {
|
|
||||||
stageBuiltins[EShLangFragment].append(
|
|
||||||
"flat in highp int gl_DeviceIndex;" // GL_EXT_device_group
|
|
||||||
"flat in highp int gl_ViewIndex;" // GL_EXT_multiview
|
|
||||||
"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// GL_ARB_shader_ballot
|
// GL_ARB_shader_ballot
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
const char* ballotDecls =
|
const char* ballotDecls =
|
||||||
@ -5433,6 +5390,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
stageBuiltins[EShLangTaskNV] .append(ballotDecls);
|
stageBuiltins[EShLangTaskNV] .append(ballotDecls);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((profile != EEsProfile && version >= 140) ||
|
||||||
|
(profile == EEsProfile && version >= 310)) {
|
||||||
|
stageBuiltins[EShLangFragment].append(
|
||||||
|
"flat in highp int gl_DeviceIndex;" // GL_EXT_device_group
|
||||||
|
"flat in highp int gl_ViewIndex;" // GL_EXT_multiview
|
||||||
|
"\n");
|
||||||
|
}
|
||||||
|
|
||||||
// GL_KHR_shader_subgroup
|
// GL_KHR_shader_subgroup
|
||||||
if ((profile == EEsProfile && version >= 310) ||
|
if ((profile == EEsProfile && version >= 310) ||
|
||||||
(profile != EEsProfile && version >= 140)) {
|
(profile != EEsProfile && version >= 140)) {
|
||||||
@ -5636,7 +5601,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
stageBuiltins[EShLangCallable].append(callableDecls);
|
stageBuiltins[EShLangCallable].append(callableDecls);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((profile != EEsProfile && version >= 140)) {
|
if ((profile != EEsProfile && version >= 140)) {
|
||||||
const char *deviceIndex =
|
const char *deviceIndex =
|
||||||
"in highp int gl_DeviceIndex;" // GL_EXT_device_group
|
"in highp int gl_DeviceIndex;" // GL_EXT_device_group
|
||||||
@ -5649,6 +5613,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
stageBuiltins[EShLangMiss].append(deviceIndex);
|
stageBuiltins[EShLangMiss].append(deviceIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (version >= 300 /* both ES and non-ES */) {
|
||||||
|
stageBuiltins[EShLangFragment].append(
|
||||||
|
"flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2
|
||||||
|
"\n");
|
||||||
|
}
|
||||||
|
|
||||||
if ((profile != EEsProfile && version >= 420) ||
|
if ((profile != EEsProfile && version >= 420) ||
|
||||||
(profile == EEsProfile && version >= 310)) {
|
(profile == EEsProfile && version >= 310)) {
|
||||||
commonBuiltins.append("const int gl_ScopeDevice = 1;\n");
|
commonBuiltins.append("const int gl_ScopeDevice = 1;\n");
|
||||||
@ -5672,15 +5642,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
commonBuiltins.append("const int gl_StorageSemanticsImage = 0x800;\n");
|
commonBuiltins.append("const int gl_StorageSemanticsImage = 0x800;\n");
|
||||||
commonBuiltins.append("const int gl_StorageSemanticsOutput = 0x1000;\n");
|
commonBuiltins.append("const int gl_StorageSemanticsOutput = 0x1000;\n");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
if (version >= 300 /* both ES and non-ES */) {
|
|
||||||
stageBuiltins[EShLangFragment].append(
|
|
||||||
"flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2
|
|
||||||
"\n");
|
|
||||||
}
|
|
||||||
#endif // !GLSLANG_WEB
|
|
||||||
|
|
||||||
// printf("%s\n", commonBuiltins.c_str());
|
// printf("%s\n", commonBuiltins.c_str());
|
||||||
// printf("%s\n", stageBuiltins[EShLangFragment].c_str());
|
// printf("%s\n", stageBuiltins[EShLangFragment].c_str());
|
||||||
@ -5698,16 +5660,13 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c
|
|||||||
//
|
//
|
||||||
|
|
||||||
// enumerate all the types
|
// enumerate all the types
|
||||||
const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint,
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
|
||||||
EbtFloat16
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
|
const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint };
|
||||||
bool skipBuffer = true;
|
bool skipBuffer = true;
|
||||||
bool skipCubeArrayed = true;
|
bool skipCubeArrayed = true;
|
||||||
const int image = 0;
|
const int image = 0;
|
||||||
#else
|
#else
|
||||||
|
const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint, EbtFloat16 };
|
||||||
bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140);
|
bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140);
|
||||||
bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130);
|
bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130);
|
||||||
for (int image = 0; image <= 1; ++image) // loop over "bool" image vs sampler
|
for (int image = 0; image <= 1; ++image) // loop over "bool" image vs sampler
|
||||||
@ -5732,13 +5691,8 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c
|
|||||||
for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not
|
for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not
|
||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
for (int dim = Esd2D; dim <= EsdCube; ++dim) { // 2D, 3D, and Cube
|
for (int dim = Esd2D; dim <= EsdCube; ++dim) { // 2D, 3D, and Cube
|
||||||
#else
|
|
||||||
#if defined(GLSLANG_ANGLE)
|
|
||||||
// TODO: what is subpass?
|
|
||||||
for (int dim = Esd2D; dim < EsdSubpass; ++dim) { // 2D, ..., buffer
|
|
||||||
#else
|
#else
|
||||||
for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass
|
for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass
|
||||||
#endif
|
|
||||||
if (dim == EsdSubpass && spvVersion.vulkan == 0)
|
if (dim == EsdSubpass && spvVersion.vulkan == 0)
|
||||||
continue;
|
continue;
|
||||||
if (dim == EsdSubpass && (image || shadow || arrayed))
|
if (dim == EsdSubpass && (image || shadow || arrayed))
|
||||||
@ -6132,9 +6086,6 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName,
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
version = 310;
|
version = 310;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
profile = ECoreProfile;
|
|
||||||
version = 450;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -6211,8 +6162,8 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// loop over 16-bit floating-point texel addressing
|
// loop over 16-bit floating-point texel addressing
|
||||||
#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
|
#ifdef GLSLANG_WEB
|
||||||
const bool f16TexAddr = false;
|
const int f16TexAddr = 0;
|
||||||
#else
|
#else
|
||||||
for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr)
|
for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr)
|
||||||
#endif
|
#endif
|
||||||
@ -6224,8 +6175,8 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName,
|
|||||||
totalDims--;
|
totalDims--;
|
||||||
}
|
}
|
||||||
// loop over "bool" lod clamp
|
// loop over "bool" lod clamp
|
||||||
#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
|
#ifdef GLSLANG_WEB
|
||||||
const bool lodClamp = false;
|
const int lodClamp = 0;
|
||||||
#else
|
#else
|
||||||
for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp)
|
for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp)
|
||||||
#endif
|
#endif
|
||||||
@ -6236,8 +6187,8 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// loop over "bool" sparse or not
|
// loop over "bool" sparse or not
|
||||||
#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
|
#ifdef GLSLANG_WEB
|
||||||
const bool sparse = false;
|
const int sparse = 0;
|
||||||
#else
|
#else
|
||||||
for (int sparse = 0; sparse <= 1; ++sparse)
|
for (int sparse = 0; sparse <= 1; ++sparse)
|
||||||
#endif
|
#endif
|
||||||
@ -6420,9 +6371,6 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, in
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
version = 310;
|
version = 310;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
profile = ECoreProfile;
|
|
||||||
version = 450;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (sampler.dim) {
|
switch (sampler.dim) {
|
||||||
@ -6666,9 +6614,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
version = 310;
|
version = 310;
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
version = 450;
|
|
||||||
profile = ECoreProfile;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -7097,7 +7042,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
|||||||
s.append("\n");
|
s.append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// atomic counters (some in compute below)
|
// atomic counters (some in compute below)
|
||||||
if ((profile == EEsProfile && version >= 310) ||
|
if ((profile == EEsProfile && version >= 310) ||
|
||||||
(profile != EEsProfile && version >= 420)) {
|
(profile != EEsProfile && version >= 420)) {
|
||||||
@ -7134,7 +7078,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
|||||||
|
|
||||||
s.append("\n");
|
s.append("\n");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
|
|
||||||
// GL_ARB_cull_distance
|
// GL_ARB_cull_distance
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
@ -7151,7 +7094,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
|||||||
s.append(builtInConstant);
|
s.append(builtInConstant);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// SPV_NV_mesh_shader
|
// SPV_NV_mesh_shader
|
||||||
if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
|
if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
|
||||||
snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputVerticesNV = %d;", resources.maxMeshOutputVerticesNV);
|
snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputVerticesNV = %d;", resources.maxMeshOutputVerticesNV);
|
||||||
@ -7174,7 +7116,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
|
|||||||
|
|
||||||
s.append("\n");
|
s.append("\n");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
s.append("\n");
|
s.append("\n");
|
||||||
@ -7259,9 +7200,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
version = 310;
|
version = 310;
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
version = 450;
|
|
||||||
profile = ECoreProfile;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -7451,7 +7389,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
|
|
||||||
case EShLangTessEvaluation:
|
case EShLangTessEvaluation:
|
||||||
case EShLangGeometry:
|
case EShLangGeometry:
|
||||||
#endif // !GLSLANG_WEB
|
#endif
|
||||||
SpecialQualifier("gl_Position", EvqPosition, EbvPosition, symbolTable);
|
SpecialQualifier("gl_Position", EvqPosition, EbvPosition, symbolTable);
|
||||||
SpecialQualifier("gl_PointSize", EvqPointSize, EbvPointSize, symbolTable);
|
SpecialQualifier("gl_PointSize", EvqPointSize, EbvPointSize, symbolTable);
|
||||||
|
|
||||||
@ -7612,7 +7550,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
|
BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
|
||||||
BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
|
BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_WEB
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangFragment:
|
case EShLangFragment:
|
||||||
@ -8118,7 +8056,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
}
|
}
|
||||||
|
|
||||||
symbolTable.setFunctionExtensions("helperInvocationEXT", 1, &E_GL_EXT_demote_to_helper_invocation);
|
symbolTable.setFunctionExtensions("helperInvocationEXT", 1, &E_GL_EXT_demote_to_helper_invocation);
|
||||||
#endif // !GLSLANG_WEB
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangCompute:
|
case EShLangCompute:
|
||||||
@ -8250,10 +8188,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_NV_compute_shader_derivatives);
|
symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_NV_compute_shader_derivatives);
|
||||||
symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_NV_compute_shader_derivatives);
|
symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_NV_compute_shader_derivatives);
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_WEB
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
case EShLangRayGen:
|
case EShLangRayGen:
|
||||||
case EShLangIntersect:
|
case EShLangIntersect:
|
||||||
case EShLangAnyHit:
|
case EShLangAnyHit:
|
||||||
@ -9156,7 +9094,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
default:
|
default:
|
||||||
assert(false && "Language not supported");
|
assert(false && "Language not supported");
|
||||||
}
|
}
|
||||||
#endif // !GLSLANG_WEB
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -9171,10 +9109,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
|
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
|
||||||
{
|
{
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
#if defined(GLSLANG_ANGLE)
|
|
||||||
profile = ECoreProfile;
|
|
||||||
version = 450;
|
|
||||||
#endif
|
|
||||||
if (profile != EEsProfile && version >= 430 && version < 440) {
|
if (profile != EEsProfile && version >= 430 && version < 440) {
|
||||||
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts);
|
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts);
|
||||||
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackInterleavedComponents", 1, &E_GL_ARB_enhanced_layouts);
|
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackInterleavedComponents", 1, &E_GL_ARB_enhanced_layouts);
|
||||||
|
@ -49,15 +49,10 @@
|
|||||||
#include "SymbolTable.h"
|
#include "SymbolTable.h"
|
||||||
#include "ParseHelper.h"
|
#include "ParseHelper.h"
|
||||||
#include "attribute.h"
|
#include "attribute.h"
|
||||||
|
#include "glslang_tab.cpp.h"
|
||||||
#include "ScanContext.h"
|
#include "ScanContext.h"
|
||||||
#include "Scan.h"
|
#include "Scan.h"
|
||||||
|
|
||||||
#ifdef GLSLANG_ANGLE
|
|
||||||
#include "glslang_angle_tab.cpp.h"
|
|
||||||
#else
|
|
||||||
#include "glslang_tab.cpp.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// preprocessor includes
|
// preprocessor includes
|
||||||
#include "preprocessor/PpContext.h"
|
#include "preprocessor/PpContext.h"
|
||||||
#include "preprocessor/PpTokens.h"
|
#include "preprocessor/PpTokens.h"
|
||||||
@ -411,28 +406,25 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["uvec4"] = UVEC4;
|
(*KeywordMap)["uvec4"] = UVEC4;
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
|
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
||||||
|
(*KeywordMap)["demote"] = DEMOTE;
|
||||||
(*KeywordMap)["attribute"] = ATTRIBUTE;
|
(*KeywordMap)["attribute"] = ATTRIBUTE;
|
||||||
(*KeywordMap)["varying"] = VARYING;
|
(*KeywordMap)["varying"] = VARYING;
|
||||||
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
||||||
(*KeywordMap)["precise"] = PRECISE;
|
|
||||||
(*KeywordMap)["coherent"] = COHERENT;
|
(*KeywordMap)["coherent"] = COHERENT;
|
||||||
(*KeywordMap)["restrict"] = RESTRICT;
|
|
||||||
(*KeywordMap)["readonly"] = READONLY;
|
|
||||||
(*KeywordMap)["writeonly"] = WRITEONLY;
|
|
||||||
(*KeywordMap)["volatile"] = VOLATILE;
|
|
||||||
(*KeywordMap)["patch"] = PATCH;
|
|
||||||
(*KeywordMap)["sample"] = SAMPLE;
|
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
|
||||||
(*KeywordMap)["demote"] = DEMOTE;
|
|
||||||
(*KeywordMap)["devicecoherent"] = DEVICECOHERENT;
|
(*KeywordMap)["devicecoherent"] = DEVICECOHERENT;
|
||||||
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
|
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
|
||||||
(*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT;
|
(*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT;
|
||||||
(*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT;
|
(*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT;
|
||||||
(*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT;
|
(*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT;
|
||||||
(*KeywordMap)["nonprivate"] = NONPRIVATE;
|
(*KeywordMap)["nonprivate"] = NONPRIVATE;
|
||||||
|
(*KeywordMap)["restrict"] = RESTRICT;
|
||||||
|
(*KeywordMap)["readonly"] = READONLY;
|
||||||
|
(*KeywordMap)["writeonly"] = WRITEONLY;
|
||||||
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
|
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
|
||||||
|
(*KeywordMap)["volatile"] = VOLATILE;
|
||||||
|
(*KeywordMap)["patch"] = PATCH;
|
||||||
|
(*KeywordMap)["sample"] = SAMPLE;
|
||||||
(*KeywordMap)["subroutine"] = SUBROUTINE;
|
(*KeywordMap)["subroutine"] = SUBROUTINE;
|
||||||
(*KeywordMap)["dmat2"] = DMAT2;
|
(*KeywordMap)["dmat2"] = DMAT2;
|
||||||
(*KeywordMap)["dmat3"] = DMAT3;
|
(*KeywordMap)["dmat3"] = DMAT3;
|
||||||
@ -449,10 +441,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["image1D"] = IMAGE1D;
|
(*KeywordMap)["image1D"] = IMAGE1D;
|
||||||
(*KeywordMap)["iimage1D"] = IIMAGE1D;
|
(*KeywordMap)["iimage1D"] = IIMAGE1D;
|
||||||
(*KeywordMap)["uimage1D"] = UIMAGE1D;
|
(*KeywordMap)["uimage1D"] = UIMAGE1D;
|
||||||
(*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
|
|
||||||
(*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
|
|
||||||
(*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
|
|
||||||
#endif
|
|
||||||
(*KeywordMap)["image2D"] = IMAGE2D;
|
(*KeywordMap)["image2D"] = IMAGE2D;
|
||||||
(*KeywordMap)["iimage2D"] = IIMAGE2D;
|
(*KeywordMap)["iimage2D"] = IIMAGE2D;
|
||||||
(*KeywordMap)["uimage2D"] = UIMAGE2D;
|
(*KeywordMap)["uimage2D"] = UIMAGE2D;
|
||||||
@ -468,6 +456,9 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["imageBuffer"] = IMAGEBUFFER;
|
(*KeywordMap)["imageBuffer"] = IMAGEBUFFER;
|
||||||
(*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER;
|
(*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER;
|
||||||
(*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER;
|
(*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER;
|
||||||
|
(*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
|
||||||
|
(*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
|
||||||
|
(*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
|
||||||
(*KeywordMap)["image2DArray"] = IMAGE2DARRAY;
|
(*KeywordMap)["image2DArray"] = IMAGE2DARRAY;
|
||||||
(*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY;
|
(*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY;
|
||||||
(*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY;
|
(*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY;
|
||||||
@ -480,7 +471,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY;
|
(*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY;
|
||||||
(*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY;
|
(*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY;
|
||||||
(*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY;
|
(*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY;
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
(*KeywordMap)["double"] = DOUBLE;
|
(*KeywordMap)["double"] = DOUBLE;
|
||||||
(*KeywordMap)["dvec2"] = DVEC2;
|
(*KeywordMap)["dvec2"] = DVEC2;
|
||||||
(*KeywordMap)["dvec3"] = DVEC3;
|
(*KeywordMap)["dvec3"] = DVEC3;
|
||||||
@ -571,7 +561,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
|
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
|
||||||
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
|
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
|
||||||
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
|
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
||||||
@ -614,16 +603,11 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
||||||
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
||||||
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
|
||||||
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
|
||||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
|
||||||
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
|
||||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
|
||||||
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
|
||||||
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
|
||||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||||
#endif
|
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||||
|
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||||
|
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
||||||
|
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
||||||
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
||||||
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
|
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
|
||||||
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
|
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
|
||||||
@ -635,21 +619,20 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY;
|
(*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY;
|
||||||
(*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY;
|
(*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY;
|
||||||
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
|
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
|
||||||
|
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
||||||
|
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
||||||
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
|
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
|
||||||
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
|
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
|
||||||
|
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
||||||
|
|
||||||
(*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external
|
(*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external
|
||||||
|
|
||||||
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
|
||||||
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
|
||||||
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
|
||||||
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
|
||||||
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
||||||
|
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
||||||
|
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
||||||
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
||||||
#endif
|
|
||||||
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
||||||
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
||||||
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
||||||
@ -661,9 +644,10 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY;
|
(*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
||||||
|
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
||||||
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
||||||
|
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
(*KeywordMap)["subpassInput"] = SUBPASSINPUT;
|
(*KeywordMap)["subpassInput"] = SUBPASSINPUT;
|
||||||
(*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS;
|
(*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS;
|
||||||
(*KeywordMap)["isubpassInput"] = ISUBPASSINPUT;
|
(*KeywordMap)["isubpassInput"] = ISUBPASSINPUT;
|
||||||
@ -718,6 +702,7 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
|
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
|
||||||
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
|
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
|
||||||
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
|
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
|
||||||
|
(*KeywordMap)["precise"] = PRECISE;
|
||||||
|
|
||||||
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
||||||
(*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT;
|
(*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT;
|
||||||
@ -739,7 +724,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
|
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
|
||||||
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
|
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
|
||||||
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
|
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
|
||||||
#endif
|
|
||||||
|
|
||||||
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
|
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
|
||||||
|
|
||||||
@ -871,7 +855,7 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token)
|
|||||||
case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
|
case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
|
||||||
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
|
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
|
||||||
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
|
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT;
|
case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT;
|
||||||
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
|
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
|
||||||
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
|
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
|
||||||
@ -1020,17 +1004,16 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(130);
|
return es30ReservedFromGLSL(130);
|
||||||
|
|
||||||
case ATTRIBUTE:
|
|
||||||
case VARYING:
|
|
||||||
if (parseContext.isEsProfile() && parseContext.version >= 300)
|
|
||||||
reservedWord();
|
|
||||||
return keyword;
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
case NONUNIFORM:
|
case NONUNIFORM:
|
||||||
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
||||||
return keyword;
|
return keyword;
|
||||||
else
|
else
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
case ATTRIBUTE:
|
||||||
|
case VARYING:
|
||||||
|
if (parseContext.isEsProfile() && parseContext.version >= 300)
|
||||||
|
reservedWord();
|
||||||
|
return keyword;
|
||||||
case PAYLOADNV:
|
case PAYLOADNV:
|
||||||
case PAYLOADINNV:
|
case PAYLOADINNV:
|
||||||
case HITATTRNV:
|
case HITATTRNV:
|
||||||
@ -1064,17 +1047,13 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(420);
|
return es30ReservedFromGLSL(420);
|
||||||
|
|
||||||
case SUBROUTINE:
|
case COHERENT:
|
||||||
return es30ReservedFromGLSL(400);
|
|
||||||
|
|
||||||
case DEVICECOHERENT:
|
case DEVICECOHERENT:
|
||||||
case QUEUEFAMILYCOHERENT:
|
case QUEUEFAMILYCOHERENT:
|
||||||
case WORKGROUPCOHERENT:
|
case WORKGROUPCOHERENT:
|
||||||
case SUBGROUPCOHERENT:
|
case SUBGROUPCOHERENT:
|
||||||
case SHADERCALLCOHERENT:
|
case SHADERCALLCOHERENT:
|
||||||
case NONPRIVATE:
|
case NONPRIVATE:
|
||||||
#endif
|
|
||||||
case COHERENT:
|
|
||||||
case RESTRICT:
|
case RESTRICT:
|
||||||
case READONLY:
|
case READONLY:
|
||||||
case WRITEONLY:
|
case WRITEONLY:
|
||||||
@ -1103,6 +1082,9 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
|
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
|
||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(400);
|
return es30ReservedFromGLSL(400);
|
||||||
|
|
||||||
|
case SUBROUTINE:
|
||||||
|
return es30ReservedFromGLSL(400);
|
||||||
#endif
|
#endif
|
||||||
case SHARED:
|
case SHARED:
|
||||||
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
||||||
@ -1139,7 +1121,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return matNxM();
|
return matNxM();
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
case DMAT2:
|
case DMAT2:
|
||||||
case DMAT3:
|
case DMAT3:
|
||||||
case DMAT4:
|
case DMAT4:
|
||||||
@ -1160,7 +1141,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case IMAGE1DARRAY:
|
case IMAGE1DARRAY:
|
||||||
case IIMAGE1DARRAY:
|
case IIMAGE1DARRAY:
|
||||||
case UIMAGE1DARRAY:
|
case UIMAGE1DARRAY:
|
||||||
#endif
|
|
||||||
case IMAGE2DRECT:
|
case IMAGE2DRECT:
|
||||||
case IIMAGE2DRECT:
|
case IIMAGE2DRECT:
|
||||||
case UIMAGE2DRECT:
|
case UIMAGE2DRECT:
|
||||||
@ -1209,7 +1189,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
afterType = true;
|
afterType = true;
|
||||||
return secondGenerationImage();
|
return secondGenerationImage();
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
case DOUBLE:
|
case DOUBLE:
|
||||||
case DVEC2:
|
case DVEC2:
|
||||||
case DVEC3:
|
case DVEC3:
|
||||||
@ -1364,7 +1343,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
|
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
#endif
|
|
||||||
|
|
||||||
case SAMPLERCUBEARRAY:
|
case SAMPLERCUBEARRAY:
|
||||||
case SAMPLERCUBEARRAYSHADOW:
|
case SAMPLERCUBEARRAYSHADOW:
|
||||||
@ -1441,7 +1419,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
case ISAMPLER1D:
|
case ISAMPLER1D:
|
||||||
case ISAMPLER1DARRAY:
|
case ISAMPLER1DARRAY:
|
||||||
case SAMPLER1DARRAYSHADOW:
|
case SAMPLER1DARRAYSHADOW:
|
||||||
@ -1449,23 +1426,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case USAMPLER1DARRAY:
|
case USAMPLER1DARRAY:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
return es30ReservedFromGLSL(130);
|
return es30ReservedFromGLSL(130);
|
||||||
|
|
||||||
case SAMPLER1D:
|
|
||||||
case SAMPLER1DSHADOW:
|
|
||||||
afterType = true;
|
|
||||||
if (parseContext.isEsProfile())
|
|
||||||
reservedWord();
|
|
||||||
return keyword;
|
|
||||||
|
|
||||||
case SAMPLER1DARRAY:
|
|
||||||
afterType = true;
|
|
||||||
if (parseContext.isEsProfile() && parseContext.version == 300)
|
|
||||||
reservedWord();
|
|
||||||
else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
|
||||||
(!parseContext.isEsProfile() && parseContext.version < 130))
|
|
||||||
return identifierOrType();
|
|
||||||
return keyword;
|
|
||||||
#endif
|
|
||||||
case ISAMPLER2DRECT:
|
case ISAMPLER2DRECT:
|
||||||
case USAMPLER2DRECT:
|
case USAMPLER2DRECT:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
@ -1509,6 +1469,13 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(150);
|
return es30ReservedFromGLSL(150);
|
||||||
|
|
||||||
|
case SAMPLER1D:
|
||||||
|
case SAMPLER1DSHADOW:
|
||||||
|
afterType = true;
|
||||||
|
if (parseContext.isEsProfile())
|
||||||
|
reservedWord();
|
||||||
|
return keyword;
|
||||||
|
|
||||||
case SAMPLER2DRECT:
|
case SAMPLER2DRECT:
|
||||||
case SAMPLER2DRECTSHADOW:
|
case SAMPLER2DRECTSHADOW:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
@ -1522,6 +1489,15 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
}
|
}
|
||||||
return keyword;
|
return keyword;
|
||||||
|
|
||||||
|
case SAMPLER1DARRAY:
|
||||||
|
afterType = true;
|
||||||
|
if (parseContext.isEsProfile() && parseContext.version == 300)
|
||||||
|
reservedWord();
|
||||||
|
else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
||||||
|
(!parseContext.isEsProfile() && parseContext.version < 130))
|
||||||
|
return identifierOrType();
|
||||||
|
return keyword;
|
||||||
|
|
||||||
case SAMPLEREXTERNALOES:
|
case SAMPLEREXTERNALOES:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||||
@ -1537,14 +1513,10 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
case TEXTURE1D:
|
|
||||||
case ITEXTURE1D:
|
|
||||||
case UTEXTURE1D:
|
|
||||||
case TEXTURE1DARRAY:
|
|
||||||
case ITEXTURE1DARRAY:
|
case ITEXTURE1DARRAY:
|
||||||
|
case UTEXTURE1D:
|
||||||
|
case ITEXTURE1D:
|
||||||
case UTEXTURE1DARRAY:
|
case UTEXTURE1DARRAY:
|
||||||
#endif
|
|
||||||
case TEXTUREBUFFER:
|
case TEXTUREBUFFER:
|
||||||
case ITEXTURE2DRECT:
|
case ITEXTURE2DRECT:
|
||||||
case UTEXTURE2DRECT:
|
case UTEXTURE2DRECT:
|
||||||
@ -1556,24 +1528,14 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case TEXTURE2DMSARRAY:
|
case TEXTURE2DMSARRAY:
|
||||||
case ITEXTURE2DMSARRAY:
|
case ITEXTURE2DMSARRAY:
|
||||||
case UTEXTURE2DMSARRAY:
|
case UTEXTURE2DMSARRAY:
|
||||||
|
case TEXTURE1D:
|
||||||
case TEXTURE2DRECT:
|
case TEXTURE2DRECT:
|
||||||
|
case TEXTURE1DARRAY:
|
||||||
if (parseContext.spvVersion.vulkan > 0)
|
if (parseContext.spvVersion.vulkan > 0)
|
||||||
return keyword;
|
return keyword;
|
||||||
else
|
else
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
case PRECISE:
|
|
||||||
if ((parseContext.isEsProfile() &&
|
|
||||||
(parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
|
|
||||||
(!parseContext.isEsProfile() && parseContext.version >= 400))
|
|
||||||
return keyword;
|
|
||||||
if (parseContext.isEsProfile() && parseContext.version == 310) {
|
|
||||||
reservedWord();
|
|
||||||
return keyword;
|
|
||||||
}
|
|
||||||
return identifierOrType();
|
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
case SUBPASSINPUT:
|
case SUBPASSINPUT:
|
||||||
case SUBPASSINPUTMS:
|
case SUBPASSINPUTMS:
|
||||||
case ISUBPASSINPUT:
|
case ISUBPASSINPUT:
|
||||||
@ -1647,6 +1609,17 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
|
case PRECISE:
|
||||||
|
if ((parseContext.isEsProfile() &&
|
||||||
|
(parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
|
||||||
|
(!parseContext.isEsProfile() && parseContext.version >= 400))
|
||||||
|
return keyword;
|
||||||
|
if (parseContext.isEsProfile() && parseContext.version == 310) {
|
||||||
|
reservedWord();
|
||||||
|
return keyword;
|
||||||
|
}
|
||||||
|
return identifierOrType();
|
||||||
|
|
||||||
case PERPRIMITIVENV:
|
case PERPRIMITIVENV:
|
||||||
case PERVIEWNV:
|
case PERVIEWNV:
|
||||||
case PERTASKNV:
|
case PERTASKNV:
|
||||||
@ -1676,7 +1649,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
else
|
else
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -294,9 +294,6 @@ void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int versi
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
version = 310;
|
version = 310;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
profile = ECoreProfile;
|
|
||||||
version = 450;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
(*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
|
(*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
|
||||||
@ -318,9 +315,6 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
version = 310;
|
version = 310;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
profile = ECoreProfile;
|
|
||||||
version = 450;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
|
std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
|
||||||
@ -360,6 +354,7 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
|
|||||||
(profile == EEsProfile && version >= 310))
|
(profile == EEsProfile && version >= 310))
|
||||||
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source,
|
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source,
|
||||||
infoSink, commonTable, symbolTables);
|
infoSink, commonTable, symbolTables);
|
||||||
|
#endif
|
||||||
|
|
||||||
// check for compute
|
// check for compute
|
||||||
if ((profile != EEsProfile && version >= 420) ||
|
if ((profile != EEsProfile && version >= 420) ||
|
||||||
@ -367,7 +362,6 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
|
|||||||
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source,
|
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source,
|
||||||
infoSink, commonTable, symbolTables);
|
infoSink, commonTable, symbolTables);
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
// check for ray tracing stages
|
// check for ray tracing stages
|
||||||
if (profile != EEsProfile && version >= 450) {
|
if (profile != EEsProfile && version >= 450) {
|
||||||
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGen, source,
|
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGen, source,
|
||||||
@ -395,8 +389,6 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
|
|||||||
(profile == EEsProfile && version >= 320))
|
(profile == EEsProfile && version >= 320))
|
||||||
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source,
|
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source,
|
||||||
infoSink, commonTable, symbolTables);
|
infoSink, commonTable, symbolTables);
|
||||||
#endif // !GLSLANG_ANGLE
|
|
||||||
#endif // !GLSLANG_WEB
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -498,7 +490,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp
|
|||||||
// Function to Print all builtins
|
// Function to Print all builtins
|
||||||
void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable)
|
void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable)
|
||||||
{
|
{
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
infoSink.debug << "BuiltinSymbolTable {\n";
|
infoSink.debug << "BuiltinSymbolTable {\n";
|
||||||
|
|
||||||
symbolTable.dump(infoSink, true);
|
symbolTable.dump(infoSink, true);
|
||||||
@ -602,7 +594,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
// Correct for stage type...
|
// Correct for stage type...
|
||||||
switch (stage) {
|
switch (stage) {
|
||||||
case EShLangGeometry:
|
case EShLangGeometry:
|
||||||
@ -878,7 +870,7 @@ bool ProcessDeferred(
|
|||||||
: userInput.scanVersion(version, profile, versionNotFirstToken);
|
: userInput.scanVersion(version, profile, versionNotFirstToken);
|
||||||
bool versionNotFound = version == 0;
|
bool versionNotFound = version == 0;
|
||||||
if (forceDefaultVersionAndProfile && source == EShSourceGlsl) {
|
if (forceDefaultVersionAndProfile && source == EShSourceGlsl) {
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound &&
|
if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound &&
|
||||||
(version != defaultVersion || profile != defaultProfile)) {
|
(version != defaultVersion || profile != defaultProfile)) {
|
||||||
compiler->infoSink.info << "Warning, (version, profile) forced to be ("
|
compiler->infoSink.info << "Warning, (version, profile) forced to be ("
|
||||||
@ -901,13 +893,10 @@ bool ProcessDeferred(
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
profile = EEsProfile;
|
profile = EEsProfile;
|
||||||
version = 310;
|
version = 310;
|
||||||
#elif defined(GLSLANG_ANGLE)
|
|
||||||
profile = ECoreProfile;
|
|
||||||
version = 450;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst));
|
bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst));
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
bool warnVersionNotFirst = false;
|
bool warnVersionNotFirst = false;
|
||||||
if (! versionWillBeError && versionNotFirstToken) {
|
if (! versionWillBeError && versionNotFirstToken) {
|
||||||
if (messages & EShMsgRelaxedErrors)
|
if (messages & EShMsgRelaxedErrors)
|
||||||
@ -977,7 +966,7 @@ bool ProcessDeferred(
|
|||||||
parseContext->setLimits(*resources);
|
parseContext->setLimits(*resources);
|
||||||
if (! goodVersion)
|
if (! goodVersion)
|
||||||
parseContext->addError();
|
parseContext->addError();
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (warnVersionNotFirst) {
|
if (warnVersionNotFirst) {
|
||||||
TSourceLoc loc;
|
TSourceLoc loc;
|
||||||
loc.init();
|
loc.init();
|
||||||
@ -1014,7 +1003,7 @@ bool ProcessDeferred(
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
// Responsible for keeping track of the most recent source string and line in
|
// Responsible for keeping track of the most recent source string and line in
|
||||||
// the preprocessor and outputting newlines appropriately if the source string
|
// the preprocessor and outputting newlines appropriately if the source string
|
||||||
@ -1237,16 +1226,14 @@ struct DoFullParse{
|
|||||||
parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n";
|
parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (messages & EShMsgAST)
|
if (messages & EShMsgAST)
|
||||||
intermediate.output(parseContext.infoSink, true);
|
intermediate.output(parseContext.infoSink, true);
|
||||||
#endif
|
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
// Take a single compilation unit, and run the preprocessor on it.
|
// Take a single compilation unit, and run the preprocessor on it.
|
||||||
// Return: True if there were no issues found in preprocessing,
|
// Return: True if there were no issues found in preprocessing,
|
||||||
// False if during preprocessing any unknown version, pragmas or
|
// False if during preprocessing any unknown version, pragmas or
|
||||||
@ -1886,7 +1873,7 @@ bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion
|
|||||||
&environment);
|
&environment);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
// Fill in a string with the result of preprocessing ShaderStrings
|
// Fill in a string with the result of preprocessing ShaderStrings
|
||||||
// Returns true if all extensions, pragmas and version strings were valid.
|
// Returns true if all extensions, pragmas and version strings were valid.
|
||||||
//
|
//
|
||||||
@ -1924,7 +1911,7 @@ const char* TShader::getInfoDebugLog()
|
|||||||
}
|
}
|
||||||
|
|
||||||
TProgram::TProgram() :
|
TProgram::TProgram() :
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
reflection(0),
|
reflection(0),
|
||||||
#endif
|
#endif
|
||||||
linked(false)
|
linked(false)
|
||||||
@ -1940,7 +1927,7 @@ TProgram::TProgram() :
|
|||||||
TProgram::~TProgram()
|
TProgram::~TProgram()
|
||||||
{
|
{
|
||||||
delete infoSink;
|
delete infoSink;
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
delete reflection;
|
delete reflection;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1987,7 +1974,7 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages)
|
|||||||
if (stages[stage].size() == 0)
|
if (stages[stage].size() == 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
int numEsShaders = 0, numNonEsShaders = 0;
|
int numEsShaders = 0, numNonEsShaders = 0;
|
||||||
for (auto it = stages[stage].begin(); it != stages[stage].end(); ++it) {
|
for (auto it = stages[stage].begin(); it != stages[stage].end(); ++it) {
|
||||||
if ((*it)->intermediate->getProfile() == EEsProfile) {
|
if ((*it)->intermediate->getProfile() == EEsProfile) {
|
||||||
@ -2041,10 +2028,8 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages)
|
|||||||
#endif
|
#endif
|
||||||
intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0);
|
intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0);
|
||||||
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
if (messages & EShMsgAST)
|
if (messages & EShMsgAST)
|
||||||
intermediate[stage]->output(*infoSink, true);
|
intermediate[stage]->output(*infoSink, true);
|
||||||
#endif
|
|
||||||
|
|
||||||
return intermediate[stage]->getNumErrors() == 0;
|
return intermediate[stage]->getNumErrors() == 0;
|
||||||
}
|
}
|
||||||
@ -2059,7 +2044,7 @@ const char* TProgram::getInfoDebugLog()
|
|||||||
return infoSink->debug.c_str();
|
return infoSink->debug.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
//
|
//
|
||||||
// Reflection implementation.
|
// Reflection implementation.
|
||||||
@ -2141,6 +2126,6 @@ bool TProgram::mapIO(TIoMapResolver* pResolver, TIoMapper* pIoMapper)
|
|||||||
return ioMapper->doMap(pResolver, *infoSink);
|
return ioMapper->doMap(pResolver, *infoSink);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // GLSLANG_WEB
|
||||||
|
|
||||||
} // end namespace glslang
|
} // end namespace glslang
|
||||||
|
@ -178,7 +178,7 @@ void TType::buildMangledName(TString& mangledName) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dump functions.
|
// Dump functions.
|
||||||
|
@ -117,7 +117,7 @@ public:
|
|||||||
virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); }
|
virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); }
|
||||||
virtual const char** getExtensions() const { return extensions->data(); }
|
virtual const char** getExtensions() const { return extensions->data(); }
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
virtual void dump(TInfoSink& infoSink, bool complete = false) const = 0;
|
virtual void dump(TInfoSink& infoSink, bool complete = false) const = 0;
|
||||||
void dumpExtensions(TInfoSink& infoSink) const;
|
void dumpExtensions(TInfoSink& infoSink) const;
|
||||||
#endif
|
#endif
|
||||||
@ -196,7 +196,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); }
|
virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); }
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
virtual void dump(TInfoSink& infoSink, bool complete = false) const;
|
virtual void dump(TInfoSink& infoSink, bool complete = false) const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ public:
|
|||||||
virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; }
|
virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; }
|
||||||
virtual const TParameter& operator[](int i) const { return parameters[i]; }
|
virtual const TParameter& operator[](int i) const { return parameters[i]; }
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
|
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -381,7 +381,7 @@ public:
|
|||||||
virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); }
|
virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); }
|
||||||
|
|
||||||
virtual int getAnonId() const { return anonId; }
|
virtual int getAnonId() const { return anonId; }
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
|
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -551,7 +551,7 @@ public:
|
|||||||
|
|
||||||
void relateToOperator(const char* name, TOperator op);
|
void relateToOperator(const char* name, TOperator op);
|
||||||
void setFunctionExtensions(const char* name, int num, const char* const extensions[]);
|
void setFunctionExtensions(const char* name, int num, const char* const extensions[]);
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
void dump(TInfoSink& infoSink, bool complete = false) const;
|
void dump(TInfoSink& infoSink, bool complete = false) const;
|
||||||
#endif
|
#endif
|
||||||
TSymbolTableLevel* clone() const;
|
TSymbolTableLevel* clone() const;
|
||||||
@ -854,7 +854,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int getMaxSymbolId() { return uniqueId; }
|
int getMaxSymbolId() { return uniqueId; }
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
void dump(TInfoSink& infoSink, bool complete = false) const;
|
void dump(TInfoSink& infoSink, bool complete = false) const;
|
||||||
#endif
|
#endif
|
||||||
void copyTable(const TSymbolTable& copyOf);
|
void copyTable(const TSymbolTable& copyOf);
|
||||||
|
@ -58,16 +58,10 @@
|
|||||||
//
|
//
|
||||||
// m4 -P
|
// m4 -P
|
||||||
//
|
//
|
||||||
// A similar mechanism is used to exclude grammar for ANGLE with
|
|
||||||
// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
|
|
||||||
//
|
|
||||||
|
|
||||||
m4_define(`GLSLANG_WEB_EXCLUDE_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')')
|
m4_define(`GLSLANG_WEB_EXCLUDE_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')')
|
||||||
m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')')
|
m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')')
|
||||||
|
|
||||||
m4_define(`GLSLANG_ANGLE_EXCLUDE_ON', `m4_ifdef(`GLSLANG_ANGLE', `m4_divert(`-1')')')
|
|
||||||
m4_define(`GLSLANG_ANGLE_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_ANGLE', `m4_divert')')
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is bison grammar and productions for parsing all versions of the
|
* This is bison grammar and productions for parsing all versions of the
|
||||||
* GLSL shading languages.
|
* GLSL shading languages.
|
||||||
@ -183,9 +177,6 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
|
||||||
%token <lex> ATTRIBUTE VARYING
|
%token <lex> ATTRIBUTE VARYING
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
|
|
||||||
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
||||||
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
||||||
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
||||||
@ -218,31 +209,23 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
%token <lex> RAYQUERYEXT
|
%token <lex> RAYQUERYEXT
|
||||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
// combined image/sampler
|
// combined image/sampler
|
||||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||||
|
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||||
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||||
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||||
%token <lex> SAMPLEREXTERNALOES
|
%token <lex> SAMPLEREXTERNALOES
|
||||||
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
|
|
||||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
|
||||||
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
||||||
|
|
||||||
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
||||||
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
||||||
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
||||||
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
||||||
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
// images
|
// images
|
||||||
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
||||||
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
||||||
@ -255,14 +238,10 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
||||||
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
|
|
||||||
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
||||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
// texture without sampler
|
// texture without sampler
|
||||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||||
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||||
@ -272,8 +251,6 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
|
|
||||||
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
||||||
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
||||||
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
||||||
@ -282,8 +259,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
|
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
|
||||||
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
|
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
%token <lex> LEFT_OP RIGHT_OP
|
%token <lex> LEFT_OP RIGHT_OP
|
||||||
@ -310,26 +285,16 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
%token <lex> FLAT SMOOTH LAYOUT
|
%token <lex> FLAT SMOOTH LAYOUT
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
|
|
||||||
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
||||||
%token <lex> INT64CONSTANT UINT64CONSTANT
|
%token <lex> INT64CONSTANT UINT64CONSTANT
|
||||||
%token <lex> SUBROUTINE DEMOTE
|
%token <lex> SUBROUTINE DEMOTE
|
||||||
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||||
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
||||||
%token <lex> NONUNIFORM
|
%token <lex> PATCH SAMPLE NONUNIFORM
|
||||||
%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||||
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
||||||
%token <lex> EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
%token <lex> PATCH SAMPLE
|
|
||||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
|
|
||||||
%token <lex> NOPERSPECTIVE
|
|
||||||
%token <lex> PRECISE
|
%token <lex> PRECISE
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
%type <interm> assignment_operator unary_operator
|
%type <interm> assignment_operator unary_operator
|
||||||
@ -378,19 +343,11 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
%type <interm.identifierList> identifier_list
|
%type <interm.identifierList> identifier_list
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
%type <interm.type> precise_qualifier non_uniform_qualifier
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
|
|
||||||
%type <interm.type> non_uniform_qualifier
|
|
||||||
%type <interm.intermNode> demote_statement
|
|
||||||
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
%type <interm.type> precise_qualifier
|
|
||||||
%type <interm.typeList> type_name_list
|
%type <interm.typeList> type_name_list
|
||||||
%type <interm.attributes> attribute attribute_list single_attribute
|
%type <interm.attributes> attribute attribute_list single_attribute
|
||||||
|
%type <interm.intermNode> demote_statement
|
||||||
%type <interm.intermTypedNode> initializer_list
|
%type <interm.intermTypedNode> initializer_list
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
%start translation_unit
|
%start translation_unit
|
||||||
@ -425,7 +382,6 @@ primary_expression
|
|||||||
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| STRING_LITERAL {
|
| STRING_LITERAL {
|
||||||
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
||||||
}
|
}
|
||||||
@ -463,7 +419,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
parseContext.float16Check($1.loc, "half float literal");
|
parseContext.float16Check($1.loc, "half float literal");
|
||||||
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -591,13 +546,11 @@ function_identifier
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
// Constructor
|
// Constructor
|
||||||
$$.intermNode = 0;
|
$$.intermNode = 0;
|
||||||
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1254,7 +1207,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.nopersp = true;
|
$$.qualifier.nopersp = true;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| EXPLICITINTERPAMD {
|
| EXPLICITINTERPAMD {
|
||||||
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
||||||
@ -1294,7 +1246,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.perTaskNV = true;
|
$$.qualifier.perTaskNV = true;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1379,11 +1330,9 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
// allow inheritance of storage qualifier from block declaration
|
// allow inheritance of storage qualifier from block declaration
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1472,7 +1421,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.sample = true;
|
$$.qualifier.sample = true;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| HITATTRNV {
|
| HITATTRNV {
|
||||||
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
||||||
@ -1551,6 +1499,10 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqCallableDataIn;
|
$$.qualifier.storage = EvqCallableDataIn;
|
||||||
}
|
}
|
||||||
|
| COHERENT {
|
||||||
|
$$.init($1.loc);
|
||||||
|
$$.qualifier.coherent = true;
|
||||||
|
}
|
||||||
| DEVICECOHERENT {
|
| DEVICECOHERENT {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
||||||
@ -1581,23 +1533,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
||||||
$$.qualifier.shadercallcoherent = true;
|
$$.qualifier.shadercallcoherent = true;
|
||||||
}
|
}
|
||||||
| SUBROUTINE {
|
|
||||||
parseContext.spvRemoved($1.loc, "subroutine");
|
|
||||||
parseContext.globalCheck($1.loc, "subroutine");
|
|
||||||
parseContext.unimplemented($1.loc, "subroutine");
|
|
||||||
$$.init($1.loc);
|
|
||||||
}
|
|
||||||
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
|
||||||
parseContext.spvRemoved($1.loc, "subroutine");
|
|
||||||
parseContext.globalCheck($1.loc, "subroutine");
|
|
||||||
parseContext.unimplemented($1.loc, "subroutine");
|
|
||||||
$$.init($1.loc);
|
|
||||||
}
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
| COHERENT {
|
|
||||||
$$.init($1.loc);
|
|
||||||
$$.qualifier.coherent = true;
|
|
||||||
}
|
|
||||||
| VOLATILE {
|
| VOLATILE {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.volatil = true;
|
$$.qualifier.volatil = true;
|
||||||
@ -1614,18 +1549,28 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.writeonly = true;
|
$$.qualifier.writeonly = true;
|
||||||
}
|
}
|
||||||
|
| SUBROUTINE {
|
||||||
|
parseContext.spvRemoved($1.loc, "subroutine");
|
||||||
|
parseContext.globalCheck($1.loc, "subroutine");
|
||||||
|
parseContext.unimplemented($1.loc, "subroutine");
|
||||||
|
$$.init($1.loc);
|
||||||
|
}
|
||||||
|
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
||||||
|
parseContext.spvRemoved($1.loc, "subroutine");
|
||||||
|
parseContext.globalCheck($1.loc, "subroutine");
|
||||||
|
parseContext.unimplemented($1.loc, "subroutine");
|
||||||
|
$$.init($1.loc);
|
||||||
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
non_uniform_qualifier
|
non_uniform_qualifier
|
||||||
: NONUNIFORM {
|
: NONUNIFORM {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.nonUniform = true;
|
$$.qualifier.nonUniform = true;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
|
|
||||||
type_name_list
|
type_name_list
|
||||||
: IDENTIFIER {
|
: IDENTIFIER {
|
||||||
@ -1859,7 +1804,6 @@ type_specifier_nonarray
|
|||||||
$$.setMatrix(4, 4);
|
$$.setMatrix(4, 4);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| DOUBLE {
|
| DOUBLE {
|
||||||
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
||||||
if (! parseContext.symbolTable.atBuiltInLevel())
|
if (! parseContext.symbolTable.atBuiltInLevel())
|
||||||
@ -2478,7 +2422,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D);
|
$$.sampler.set(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| SAMPLER2D {
|
| SAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2516,17 +2459,6 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
| SAMPLERCUBEARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat, EsdCube, true);
|
|
||||||
}
|
|
||||||
| SAMPLERCUBEARRAYSHADOW {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
|
||||||
}
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| SAMPLER1DSHADOW {
|
| SAMPLER1DSHADOW {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2542,6 +2474,16 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
||||||
}
|
}
|
||||||
|
| SAMPLERCUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat, EsdCube, true);
|
||||||
|
}
|
||||||
|
| SAMPLERCUBEARRAYSHADOW {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||||
|
}
|
||||||
| F16SAMPLER1D {
|
| F16SAMPLER1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2625,7 +2567,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, Esd1D);
|
$$.sampler.set(EbtInt, Esd1D);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| ISAMPLER2D {
|
| ISAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2663,11 +2604,26 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.sampler.set(EbtUint, EsdCube);
|
$$.sampler.set(EbtUint, EsdCube);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
| ISAMPLER1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtInt, Esd1D, true);
|
||||||
|
}
|
||||||
| ISAMPLERCUBEARRAY {
|
| ISAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, EsdCube, true);
|
$$.sampler.set(EbtInt, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
| USAMPLER1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtUint, Esd1D);
|
||||||
|
}
|
||||||
|
| USAMPLER1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtUint, Esd1D, true);
|
||||||
|
}
|
||||||
| USAMPLERCUBEARRAY {
|
| USAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2688,23 +2644,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| ISAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
| USAMPLER1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtUint, Esd1D);
|
|
||||||
}
|
|
||||||
| USAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtUint, Esd1D, true);
|
|
||||||
}
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| USAMPLER2DARRAY {
|
| USAMPLER2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2792,6 +2731,18 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLER2DRECT {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, EsdRect);
|
||||||
|
}
|
||||||
|
| F16SAMPLER2DRECTSHADOW {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
||||||
|
}
|
||||||
| ISAMPLER2DRECT {
|
| ISAMPLER2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2807,6 +2758,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdBuffer);
|
$$.sampler.set(EbtFloat, EsdBuffer);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLERBUFFER {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, EsdBuffer);
|
||||||
|
}
|
||||||
| ISAMPLERBUFFER {
|
| ISAMPLERBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2822,6 +2779,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLER2DMS {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
| ISAMPLER2DMS {
|
| ISAMPLER2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2837,6 +2800,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLER2DMSARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| ISAMPLER2DMSARRAY {
|
| ISAMPLER2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2847,129 +2816,11 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| F16SAMPLER2DRECT {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, EsdRect);
|
|
||||||
}
|
|
||||||
| F16SAMPLER2DRECTSHADOW {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
|
||||||
}
|
|
||||||
| F16SAMPLERBUFFER {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, EsdBuffer);
|
|
||||||
}
|
|
||||||
| F16SAMPLER2DMS {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| F16SAMPLER2DMSARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
| TEXTURE1D {
|
| TEXTURE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D);
|
$$.sampler.setTexture(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
| TEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
|
||||||
}
|
|
||||||
| ITEXTURE1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
|
||||||
}
|
|
||||||
| ITEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
|
||||||
}
|
|
||||||
| UTEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
|
||||||
}
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
| TEXTURE2DRECT {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, EsdRect);
|
|
||||||
}
|
|
||||||
| ITEXTURE2DRECT {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, EsdRect);
|
|
||||||
}
|
|
||||||
| UTEXTURE2DRECT {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, EsdRect);
|
|
||||||
}
|
|
||||||
| TEXTUREBUFFER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
|
||||||
}
|
|
||||||
| ITEXTUREBUFFER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
|
||||||
}
|
|
||||||
| UTEXTUREBUFFER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
|
||||||
}
|
|
||||||
| TEXTURE2DMS {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| ITEXTURE2DMS {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE2DMS {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| TEXTURE2DMSARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
| ITEXTURE2DMSARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE2DMSARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| F16TEXTURE1D {
|
| F16TEXTURE1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2994,6 +2845,11 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
||||||
}
|
}
|
||||||
|
| TEXTURE1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
||||||
|
}
|
||||||
| F16TEXTURE1DARRAY {
|
| F16TEXTURE1DARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -3012,35 +2868,121 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||||
|
}
|
||||||
|
| ITEXTURE1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||||
|
}
|
||||||
|
| UTEXTURE1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||||
|
}
|
||||||
|
| TEXTURE2DRECT {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, EsdRect);
|
||||||
|
}
|
||||||
| F16TEXTURE2DRECT {
|
| F16TEXTURE2DRECT {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE2DRECT {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, EsdRect);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DRECT {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, EsdRect);
|
||||||
|
}
|
||||||
|
| TEXTUREBUFFER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
||||||
|
}
|
||||||
| F16TEXTUREBUFFER {
|
| F16TEXTUREBUFFER {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
||||||
}
|
}
|
||||||
|
| ITEXTUREBUFFER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
||||||
|
}
|
||||||
|
| UTEXTUREBUFFER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
||||||
|
}
|
||||||
|
| TEXTURE2DMS {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
| F16TEXTURE2DMS {
|
| F16TEXTURE2DMS {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE2DMS {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DMS {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
|
| TEXTURE2DMSARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| F16TEXTURE2DMSARRAY {
|
| F16TEXTURE2DMSARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE2DMSARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DMSARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| IMAGE1D {
|
| IMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D);
|
$$.sampler.setImage(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE1D {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd1D);
|
||||||
|
}
|
||||||
| IIMAGE1D {
|
| IIMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3051,12 +2993,17 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd1D);
|
$$.sampler.setImage(EbtUint, Esd1D);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
| IMAGE2D {
|
| IMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D);
|
$$.sampler.setImage(EbtFloat, Esd2D);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2D {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D);
|
||||||
|
}
|
||||||
| IIMAGE2D {
|
| IIMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3072,6 +3019,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd3D);
|
$$.sampler.setImage(EbtFloat, Esd3D);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE3D {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd3D);
|
||||||
|
}
|
||||||
| IIMAGE3D {
|
| IIMAGE3D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3087,6 +3040,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdRect);
|
$$.sampler.setImage(EbtFloat, EsdRect);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DRECT {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdRect);
|
||||||
|
}
|
||||||
| IIMAGE2DRECT {
|
| IIMAGE2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3102,6 +3061,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube);
|
$$.sampler.setImage(EbtFloat, EsdCube);
|
||||||
}
|
}
|
||||||
|
| F16IMAGECUBE {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdCube);
|
||||||
|
}
|
||||||
| IIMAGECUBE {
|
| IIMAGECUBE {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3117,6 +3082,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
||||||
}
|
}
|
||||||
|
| F16IMAGEBUFFER {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
||||||
|
}
|
||||||
| IIMAGEBUFFER {
|
| IIMAGEBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3132,6 +3103,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE1DARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
||||||
|
}
|
||||||
| IIMAGE1DARRAY {
|
| IIMAGE1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3147,6 +3124,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
||||||
|
}
|
||||||
| IIMAGE2DARRAY {
|
| IIMAGE2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3162,6 +3145,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGECUBEARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
||||||
|
}
|
||||||
| IIMAGECUBEARRAY {
|
| IIMAGECUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3177,6 +3166,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DMS {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
| IIMAGE2DMS {
|
| IIMAGE2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3192,6 +3187,12 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DMSARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| IIMAGE2DMSARRAY {
|
| IIMAGE2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3202,74 +3203,6 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| F16IMAGE1D {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd1D);
|
|
||||||
}
|
|
||||||
| F16IMAGE2D {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D);
|
|
||||||
}
|
|
||||||
| F16IMAGE3D {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd3D);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DRECT {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdRect);
|
|
||||||
}
|
|
||||||
| F16IMAGECUBE {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdCube);
|
|
||||||
}
|
|
||||||
| F16IMAGEBUFFER {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
|
||||||
}
|
|
||||||
| F16IMAGE1DARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
|
||||||
}
|
|
||||||
| F16IMAGECUBEARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DMS {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DMSARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3282,7 +3215,6 @@ GLSLANG_ANGLE_EXCLUDE_OFF
|
|||||||
$$.sampler.set(EbtFloat, Esd2D);
|
$$.sampler.set(EbtFloat, Esd2D);
|
||||||
$$.sampler.yuv = true;
|
$$.sampler.yuv = true;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| SUBPASSINPUT {
|
| SUBPASSINPUT {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -3351,7 +3283,6 @@ GLSLANG_ANGLE_EXCLUDE_ON
|
|||||||
$$.basicType = EbtUint;
|
$$.basicType = EbtUint;
|
||||||
$$.coopmat = true;
|
$$.coopmat = true;
|
||||||
}
|
}
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| struct_specifier {
|
| struct_specifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
@ -3554,14 +3485,11 @@ simple_statement
|
|||||||
| iteration_statement { $$ = $1; }
|
| iteration_statement { $$ = $1; }
|
||||||
| jump_statement { $$ = $1; }
|
| jump_statement { $$ = $1; }
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
| demote_statement { $$ = $1; }
|
| demote_statement { $$ = $1; }
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
GLSLANG_ANGLE_EXCLUDE_ON
|
|
||||||
demote_statement
|
demote_statement
|
||||||
: DEMOTE SEMICOLON {
|
: DEMOTE SEMICOLON {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
||||||
@ -3569,7 +3497,6 @@ demote_statement
|
|||||||
$$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
|
$$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
compound_statement
|
compound_statement
|
||||||
|
@ -58,12 +58,6 @@
|
|||||||
//
|
//
|
||||||
// m4 -P
|
// m4 -P
|
||||||
//
|
//
|
||||||
// A similar mechanism is used to exclude grammar for ANGLE with
|
|
||||||
// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -183,9 +177,6 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
|
|
||||||
|
|
||||||
%token <lex> ATTRIBUTE VARYING
|
%token <lex> ATTRIBUTE VARYING
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
||||||
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
||||||
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
||||||
@ -218,31 +209,23 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> RAYQUERYEXT
|
%token <lex> RAYQUERYEXT
|
||||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// combined image/sampler
|
// combined image/sampler
|
||||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||||
|
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||||
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||||
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||||
%token <lex> SAMPLEREXTERNALOES
|
%token <lex> SAMPLEREXTERNALOES
|
||||||
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
|
||||||
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
||||||
|
|
||||||
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
||||||
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
||||||
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
||||||
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
||||||
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// images
|
// images
|
||||||
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
||||||
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
||||||
@ -255,14 +238,10 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
||||||
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
||||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// texture without sampler
|
// texture without sampler
|
||||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||||
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||||
@ -272,8 +251,6 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
||||||
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
||||||
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
||||||
@ -284,8 +261,6 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> LEFT_OP RIGHT_OP
|
%token <lex> LEFT_OP RIGHT_OP
|
||||||
%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
|
%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
|
||||||
%token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
|
%token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
|
||||||
@ -310,28 +285,18 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> FLAT SMOOTH LAYOUT
|
%token <lex> FLAT SMOOTH LAYOUT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
||||||
%token <lex> INT64CONSTANT UINT64CONSTANT
|
%token <lex> INT64CONSTANT UINT64CONSTANT
|
||||||
%token <lex> SUBROUTINE DEMOTE
|
%token <lex> SUBROUTINE DEMOTE
|
||||||
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||||
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
||||||
%token <lex> NONUNIFORM
|
%token <lex> PATCH SAMPLE NONUNIFORM
|
||||||
%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||||
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
||||||
%token <lex> EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> PATCH SAMPLE
|
|
||||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
|
|
||||||
%token <lex> NOPERSPECTIVE
|
|
||||||
%token <lex> PRECISE
|
%token <lex> PRECISE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%type <interm> assignment_operator unary_operator
|
%type <interm> assignment_operator unary_operator
|
||||||
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
|
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
|
||||||
%type <interm.intermTypedNode> expression integer_expression assignment_expression
|
%type <interm.intermTypedNode> expression integer_expression assignment_expression
|
||||||
@ -378,21 +343,13 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%type <interm.identifierList> identifier_list
|
%type <interm.identifierList> identifier_list
|
||||||
|
|
||||||
|
|
||||||
|
%type <interm.type> precise_qualifier non_uniform_qualifier
|
||||||
|
|
||||||
|
|
||||||
%type <interm.type> non_uniform_qualifier
|
|
||||||
%type <interm.intermNode> demote_statement
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%type <interm.type> precise_qualifier
|
|
||||||
%type <interm.typeList> type_name_list
|
%type <interm.typeList> type_name_list
|
||||||
%type <interm.attributes> attribute attribute_list single_attribute
|
%type <interm.attributes> attribute attribute_list single_attribute
|
||||||
|
%type <interm.intermNode> demote_statement
|
||||||
%type <interm.intermTypedNode> initializer_list
|
%type <interm.intermTypedNode> initializer_list
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%start translation_unit
|
%start translation_unit
|
||||||
%%
|
%%
|
||||||
|
|
||||||
@ -425,7 +382,6 @@ primary_expression
|
|||||||
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| STRING_LITERAL {
|
| STRING_LITERAL {
|
||||||
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
||||||
}
|
}
|
||||||
@ -464,7 +420,6 @@ primary_expression
|
|||||||
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
postfix_expression
|
postfix_expression
|
||||||
@ -591,14 +546,12 @@ function_identifier
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
// Constructor
|
// Constructor
|
||||||
$$.intermNode = 0;
|
$$.intermNode = 0;
|
||||||
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
unary_expression
|
unary_expression
|
||||||
@ -1254,7 +1207,6 @@ interpolation_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.nopersp = true;
|
$$.qualifier.nopersp = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
| EXPLICITINTERPAMD {
|
| EXPLICITINTERPAMD {
|
||||||
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
||||||
@ -1295,7 +1247,6 @@ interpolation_qualifier
|
|||||||
$$.qualifier.perTaskNV = true;
|
$$.qualifier.perTaskNV = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
layout_qualifier
|
layout_qualifier
|
||||||
@ -1379,12 +1330,10 @@ single_type_qualifier
|
|||||||
// allow inheritance of storage qualifier from block declaration
|
// allow inheritance of storage qualifier from block declaration
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
storage_qualifier
|
storage_qualifier
|
||||||
@ -1472,7 +1421,6 @@ storage_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.sample = true;
|
$$.qualifier.sample = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
| HITATTRNV {
|
| HITATTRNV {
|
||||||
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
||||||
@ -1551,6 +1499,10 @@ storage_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqCallableDataIn;
|
$$.qualifier.storage = EvqCallableDataIn;
|
||||||
}
|
}
|
||||||
|
| COHERENT {
|
||||||
|
$$.init($1.loc);
|
||||||
|
$$.qualifier.coherent = true;
|
||||||
|
}
|
||||||
| DEVICECOHERENT {
|
| DEVICECOHERENT {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
||||||
@ -1581,23 +1533,6 @@ storage_qualifier
|
|||||||
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
||||||
$$.qualifier.shadercallcoherent = true;
|
$$.qualifier.shadercallcoherent = true;
|
||||||
}
|
}
|
||||||
| SUBROUTINE {
|
|
||||||
parseContext.spvRemoved($1.loc, "subroutine");
|
|
||||||
parseContext.globalCheck($1.loc, "subroutine");
|
|
||||||
parseContext.unimplemented($1.loc, "subroutine");
|
|
||||||
$$.init($1.loc);
|
|
||||||
}
|
|
||||||
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
|
||||||
parseContext.spvRemoved($1.loc, "subroutine");
|
|
||||||
parseContext.globalCheck($1.loc, "subroutine");
|
|
||||||
parseContext.unimplemented($1.loc, "subroutine");
|
|
||||||
$$.init($1.loc);
|
|
||||||
}
|
|
||||||
|
|
||||||
| COHERENT {
|
|
||||||
$$.init($1.loc);
|
|
||||||
$$.qualifier.coherent = true;
|
|
||||||
}
|
|
||||||
| VOLATILE {
|
| VOLATILE {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.volatil = true;
|
$$.qualifier.volatil = true;
|
||||||
@ -1614,11 +1549,22 @@ storage_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.writeonly = true;
|
$$.qualifier.writeonly = true;
|
||||||
}
|
}
|
||||||
|
| SUBROUTINE {
|
||||||
|
parseContext.spvRemoved($1.loc, "subroutine");
|
||||||
|
parseContext.globalCheck($1.loc, "subroutine");
|
||||||
|
parseContext.unimplemented($1.loc, "subroutine");
|
||||||
|
$$.init($1.loc);
|
||||||
|
}
|
||||||
|
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
||||||
|
parseContext.spvRemoved($1.loc, "subroutine");
|
||||||
|
parseContext.globalCheck($1.loc, "subroutine");
|
||||||
|
parseContext.unimplemented($1.loc, "subroutine");
|
||||||
|
$$.init($1.loc);
|
||||||
|
}
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
non_uniform_qualifier
|
non_uniform_qualifier
|
||||||
: NONUNIFORM {
|
: NONUNIFORM {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
@ -1626,7 +1572,6 @@ non_uniform_qualifier
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
type_name_list
|
type_name_list
|
||||||
: IDENTIFIER {
|
: IDENTIFIER {
|
||||||
// TODO
|
// TODO
|
||||||
@ -1859,7 +1804,6 @@ type_specifier_nonarray
|
|||||||
$$.setMatrix(4, 4);
|
$$.setMatrix(4, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| DOUBLE {
|
| DOUBLE {
|
||||||
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
||||||
if (! parseContext.symbolTable.atBuiltInLevel())
|
if (! parseContext.symbolTable.atBuiltInLevel())
|
||||||
@ -2479,7 +2423,6 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtFloat, Esd1D);
|
$$.sampler.set(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| SAMPLER2D {
|
| SAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2516,17 +2459,6 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
| SAMPLERCUBEARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat, EsdCube, true);
|
|
||||||
}
|
|
||||||
| SAMPLERCUBEARRAYSHADOW {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
| SAMPLER1DSHADOW {
|
| SAMPLER1DSHADOW {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2542,6 +2474,16 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
||||||
}
|
}
|
||||||
|
| SAMPLERCUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat, EsdCube, true);
|
||||||
|
}
|
||||||
|
| SAMPLERCUBEARRAYSHADOW {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||||
|
}
|
||||||
| F16SAMPLER1D {
|
| F16SAMPLER1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2626,7 +2568,6 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtInt, Esd1D);
|
$$.sampler.set(EbtInt, Esd1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| ISAMPLER2D {
|
| ISAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2663,11 +2604,26 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtUint, EsdCube);
|
$$.sampler.set(EbtUint, EsdCube);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
| ISAMPLER1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtInt, Esd1D, true);
|
||||||
|
}
|
||||||
| ISAMPLERCUBEARRAY {
|
| ISAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, EsdCube, true);
|
$$.sampler.set(EbtInt, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
| USAMPLER1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtUint, Esd1D);
|
||||||
|
}
|
||||||
|
| USAMPLER1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtUint, Esd1D, true);
|
||||||
|
}
|
||||||
| USAMPLERCUBEARRAY {
|
| USAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2689,23 +2645,6 @@ type_specifier_nonarray
|
|||||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
| ISAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
| USAMPLER1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtUint, Esd1D);
|
|
||||||
}
|
|
||||||
| USAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtUint, Esd1D, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
| USAMPLER2DARRAY {
|
| USAMPLER2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2792,6 +2731,18 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLER2DRECT {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, EsdRect);
|
||||||
|
}
|
||||||
|
| F16SAMPLER2DRECTSHADOW {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
||||||
|
}
|
||||||
| ISAMPLER2DRECT {
|
| ISAMPLER2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2807,6 +2758,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdBuffer);
|
$$.sampler.set(EbtFloat, EsdBuffer);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLERBUFFER {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, EsdBuffer);
|
||||||
|
}
|
||||||
| ISAMPLERBUFFER {
|
| ISAMPLERBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2822,6 +2779,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLER2DMS {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
| ISAMPLER2DMS {
|
| ISAMPLER2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2837,6 +2800,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
| F16SAMPLER2DMSARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| ISAMPLER2DMSARRAY {
|
| ISAMPLER2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2847,129 +2816,11 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
| F16SAMPLER2DRECT {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, EsdRect);
|
|
||||||
}
|
|
||||||
| F16SAMPLER2DRECTSHADOW {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
|
||||||
}
|
|
||||||
| F16SAMPLERBUFFER {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, EsdBuffer);
|
|
||||||
}
|
|
||||||
| F16SAMPLER2DMS {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| F16SAMPLER2DMSARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
| TEXTURE1D {
|
| TEXTURE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D);
|
$$.sampler.setTexture(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
| TEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
|
||||||
}
|
|
||||||
| ITEXTURE1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
|
||||||
}
|
|
||||||
| ITEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
|
||||||
}
|
|
||||||
| UTEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
| TEXTURE2DRECT {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, EsdRect);
|
|
||||||
}
|
|
||||||
| ITEXTURE2DRECT {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, EsdRect);
|
|
||||||
}
|
|
||||||
| UTEXTURE2DRECT {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, EsdRect);
|
|
||||||
}
|
|
||||||
| TEXTUREBUFFER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
|
||||||
}
|
|
||||||
| ITEXTUREBUFFER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
|
||||||
}
|
|
||||||
| UTEXTUREBUFFER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
|
||||||
}
|
|
||||||
| TEXTURE2DMS {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| ITEXTURE2DMS {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE2DMS {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| TEXTURE2DMSARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
| ITEXTURE2DMSARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE2DMSARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
| F16TEXTURE1D {
|
| F16TEXTURE1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2994,6 +2845,11 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
||||||
}
|
}
|
||||||
|
| TEXTURE1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
||||||
|
}
|
||||||
| F16TEXTURE1DARRAY {
|
| F16TEXTURE1DARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -3012,35 +2868,121 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||||
|
}
|
||||||
|
| ITEXTURE1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||||
|
}
|
||||||
|
| UTEXTURE1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||||
|
}
|
||||||
|
| TEXTURE2DRECT {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, EsdRect);
|
||||||
|
}
|
||||||
| F16TEXTURE2DRECT {
|
| F16TEXTURE2DRECT {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE2DRECT {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, EsdRect);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DRECT {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, EsdRect);
|
||||||
|
}
|
||||||
|
| TEXTUREBUFFER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
||||||
|
}
|
||||||
| F16TEXTUREBUFFER {
|
| F16TEXTUREBUFFER {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
||||||
}
|
}
|
||||||
|
| ITEXTUREBUFFER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
||||||
|
}
|
||||||
|
| UTEXTUREBUFFER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
||||||
|
}
|
||||||
|
| TEXTURE2DMS {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
| F16TEXTURE2DMS {
|
| F16TEXTURE2DMS {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE2DMS {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DMS {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
|
| TEXTURE2DMSARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| F16TEXTURE2DMSARRAY {
|
| F16TEXTURE2DMSARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
| ITEXTURE2DMSARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DMSARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| IMAGE1D {
|
| IMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D);
|
$$.sampler.setImage(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE1D {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd1D);
|
||||||
|
}
|
||||||
| IIMAGE1D {
|
| IIMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3051,12 +2993,17 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd1D);
|
$$.sampler.setImage(EbtUint, Esd1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
| IMAGE2D {
|
| IMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D);
|
$$.sampler.setImage(EbtFloat, Esd2D);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2D {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D);
|
||||||
|
}
|
||||||
| IIMAGE2D {
|
| IIMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3072,6 +3019,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd3D);
|
$$.sampler.setImage(EbtFloat, Esd3D);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE3D {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd3D);
|
||||||
|
}
|
||||||
| IIMAGE3D {
|
| IIMAGE3D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3087,6 +3040,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdRect);
|
$$.sampler.setImage(EbtFloat, EsdRect);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DRECT {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdRect);
|
||||||
|
}
|
||||||
| IIMAGE2DRECT {
|
| IIMAGE2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3102,6 +3061,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube);
|
$$.sampler.setImage(EbtFloat, EsdCube);
|
||||||
}
|
}
|
||||||
|
| F16IMAGECUBE {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdCube);
|
||||||
|
}
|
||||||
| IIMAGECUBE {
|
| IIMAGECUBE {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3117,6 +3082,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
||||||
}
|
}
|
||||||
|
| F16IMAGEBUFFER {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
||||||
|
}
|
||||||
| IIMAGEBUFFER {
|
| IIMAGEBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3132,6 +3103,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE1DARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
||||||
|
}
|
||||||
| IIMAGE1DARRAY {
|
| IIMAGE1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3147,6 +3124,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
||||||
|
}
|
||||||
| IIMAGE2DARRAY {
|
| IIMAGE2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3162,6 +3145,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGECUBEARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
||||||
|
}
|
||||||
| IIMAGECUBEARRAY {
|
| IIMAGECUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3177,6 +3166,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DMS {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
||||||
|
}
|
||||||
| IIMAGE2DMS {
|
| IIMAGE2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3192,6 +3187,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
| F16IMAGE2DMSARRAY {
|
||||||
|
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
||||||
|
}
|
||||||
| IIMAGE2DMSARRAY {
|
| IIMAGE2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3202,74 +3203,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
| F16IMAGE1D {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd1D);
|
|
||||||
}
|
|
||||||
| F16IMAGE2D {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D);
|
|
||||||
}
|
|
||||||
| F16IMAGE3D {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd3D);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DRECT {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdRect);
|
|
||||||
}
|
|
||||||
| F16IMAGECUBE {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdCube);
|
|
||||||
}
|
|
||||||
| F16IMAGEBUFFER {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
|
||||||
}
|
|
||||||
| F16IMAGE1DARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
|
||||||
}
|
|
||||||
| F16IMAGECUBEARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DMS {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
|
||||||
}
|
|
||||||
| F16IMAGE2DMSARRAY {
|
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3282,7 +3215,6 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtFloat, Esd2D);
|
$$.sampler.set(EbtFloat, Esd2D);
|
||||||
$$.sampler.yuv = true;
|
$$.sampler.yuv = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
| SUBPASSINPUT {
|
| SUBPASSINPUT {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -3352,7 +3284,6 @@ type_specifier_nonarray
|
|||||||
$$.coopmat = true;
|
$$.coopmat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| struct_specifier {
|
| struct_specifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
$$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
|
$$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
|
||||||
@ -3554,14 +3485,11 @@ simple_statement
|
|||||||
| iteration_statement { $$ = $1; }
|
| iteration_statement { $$ = $1; }
|
||||||
| jump_statement { $$ = $1; }
|
| jump_statement { $$ = $1; }
|
||||||
|
|
||||||
|
|
||||||
| demote_statement { $$ = $1; }
|
| demote_statement { $$ = $1; }
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
demote_statement
|
demote_statement
|
||||||
: DEMOTE SEMICOLON {
|
: DEMOTE SEMICOLON {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
||||||
@ -3571,7 +3499,6 @@ demote_statement
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
compound_statement
|
compound_statement
|
||||||
: LEFT_BRACE RIGHT_BRACE { $$ = 0; }
|
: LEFT_BRACE RIGHT_BRACE { $$ = 0; }
|
||||||
| LEFT_BRACE {
|
| LEFT_BRACE {
|
||||||
@ -3958,3 +3885,4 @@ single_attribute
|
|||||||
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,333 +0,0 @@
|
|||||||
/* A Bison parser, made by GNU Bison 3.5.1. */
|
|
||||||
|
|
||||||
/* Bison interface for Yacc-like parsers in C
|
|
||||||
|
|
||||||
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* As a special exception, you may create a larger work that contains
|
|
||||||
part or all of the Bison parser skeleton and distribute that work
|
|
||||||
under terms of your choice, so long as that work isn't itself a
|
|
||||||
parser generator using the skeleton or a modified version thereof
|
|
||||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
|
||||||
the parser skeleton itself, you may (at your option) remove this
|
|
||||||
special exception, which will cause the skeleton and the resulting
|
|
||||||
Bison output files to be licensed under the GNU General Public
|
|
||||||
License without this special exception.
|
|
||||||
|
|
||||||
This special exception was added by the Free Software Foundation in
|
|
||||||
version 2.2 of Bison. */
|
|
||||||
|
|
||||||
/* Undocumented macros, especially those whose name start with YY_,
|
|
||||||
are private implementation details. Do not rely on them. */
|
|
||||||
|
|
||||||
#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
|
|
||||||
# define YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
|
|
||||||
/* Debug traces. */
|
|
||||||
#ifndef YYDEBUG
|
|
||||||
# define YYDEBUG 1
|
|
||||||
#endif
|
|
||||||
#if YYDEBUG
|
|
||||||
extern int yydebug;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Token type. */
|
|
||||||
#ifndef YYTOKENTYPE
|
|
||||||
# define YYTOKENTYPE
|
|
||||||
enum yytokentype
|
|
||||||
{
|
|
||||||
CONST = 258,
|
|
||||||
BOOL = 259,
|
|
||||||
INT = 260,
|
|
||||||
UINT = 261,
|
|
||||||
FLOAT = 262,
|
|
||||||
BVEC2 = 263,
|
|
||||||
BVEC3 = 264,
|
|
||||||
BVEC4 = 265,
|
|
||||||
IVEC2 = 266,
|
|
||||||
IVEC3 = 267,
|
|
||||||
IVEC4 = 268,
|
|
||||||
UVEC2 = 269,
|
|
||||||
UVEC3 = 270,
|
|
||||||
UVEC4 = 271,
|
|
||||||
VEC2 = 272,
|
|
||||||
VEC3 = 273,
|
|
||||||
VEC4 = 274,
|
|
||||||
MAT2 = 275,
|
|
||||||
MAT3 = 276,
|
|
||||||
MAT4 = 277,
|
|
||||||
MAT2X2 = 278,
|
|
||||||
MAT2X3 = 279,
|
|
||||||
MAT2X4 = 280,
|
|
||||||
MAT3X2 = 281,
|
|
||||||
MAT3X3 = 282,
|
|
||||||
MAT3X4 = 283,
|
|
||||||
MAT4X2 = 284,
|
|
||||||
MAT4X3 = 285,
|
|
||||||
MAT4X4 = 286,
|
|
||||||
SAMPLER2D = 287,
|
|
||||||
SAMPLER3D = 288,
|
|
||||||
SAMPLERCUBE = 289,
|
|
||||||
SAMPLER2DSHADOW = 290,
|
|
||||||
SAMPLERCUBESHADOW = 291,
|
|
||||||
SAMPLER2DARRAY = 292,
|
|
||||||
SAMPLER2DARRAYSHADOW = 293,
|
|
||||||
ISAMPLER2D = 294,
|
|
||||||
ISAMPLER3D = 295,
|
|
||||||
ISAMPLERCUBE = 296,
|
|
||||||
ISAMPLER2DARRAY = 297,
|
|
||||||
USAMPLER2D = 298,
|
|
||||||
USAMPLER3D = 299,
|
|
||||||
USAMPLERCUBE = 300,
|
|
||||||
USAMPLER2DARRAY = 301,
|
|
||||||
SAMPLER = 302,
|
|
||||||
SAMPLERSHADOW = 303,
|
|
||||||
TEXTURE2D = 304,
|
|
||||||
TEXTURE3D = 305,
|
|
||||||
TEXTURECUBE = 306,
|
|
||||||
TEXTURE2DARRAY = 307,
|
|
||||||
ITEXTURE2D = 308,
|
|
||||||
ITEXTURE3D = 309,
|
|
||||||
ITEXTURECUBE = 310,
|
|
||||||
ITEXTURE2DARRAY = 311,
|
|
||||||
UTEXTURE2D = 312,
|
|
||||||
UTEXTURE3D = 313,
|
|
||||||
UTEXTURECUBE = 314,
|
|
||||||
UTEXTURE2DARRAY = 315,
|
|
||||||
ATTRIBUTE = 316,
|
|
||||||
VARYING = 317,
|
|
||||||
SAMPLERCUBEARRAY = 318,
|
|
||||||
SAMPLERCUBEARRAYSHADOW = 319,
|
|
||||||
ISAMPLERCUBEARRAY = 320,
|
|
||||||
USAMPLERCUBEARRAY = 321,
|
|
||||||
SAMPLER2DRECT = 322,
|
|
||||||
SAMPLER2DRECTSHADOW = 323,
|
|
||||||
ISAMPLER2DRECT = 324,
|
|
||||||
USAMPLER2DRECT = 325,
|
|
||||||
SAMPLERBUFFER = 326,
|
|
||||||
ISAMPLERBUFFER = 327,
|
|
||||||
USAMPLERBUFFER = 328,
|
|
||||||
SAMPLER2DMS = 329,
|
|
||||||
ISAMPLER2DMS = 330,
|
|
||||||
USAMPLER2DMS = 331,
|
|
||||||
SAMPLER2DMSARRAY = 332,
|
|
||||||
ISAMPLER2DMSARRAY = 333,
|
|
||||||
USAMPLER2DMSARRAY = 334,
|
|
||||||
SAMPLEREXTERNALOES = 335,
|
|
||||||
SAMPLEREXTERNAL2DY2YEXT = 336,
|
|
||||||
IMAGE1D = 337,
|
|
||||||
IIMAGE1D = 338,
|
|
||||||
UIMAGE1D = 339,
|
|
||||||
IMAGE2D = 340,
|
|
||||||
IIMAGE2D = 341,
|
|
||||||
UIMAGE2D = 342,
|
|
||||||
IMAGE3D = 343,
|
|
||||||
IIMAGE3D = 344,
|
|
||||||
UIMAGE3D = 345,
|
|
||||||
IMAGE2DRECT = 346,
|
|
||||||
IIMAGE2DRECT = 347,
|
|
||||||
UIMAGE2DRECT = 348,
|
|
||||||
IMAGECUBE = 349,
|
|
||||||
IIMAGECUBE = 350,
|
|
||||||
UIMAGECUBE = 351,
|
|
||||||
IMAGEBUFFER = 352,
|
|
||||||
IIMAGEBUFFER = 353,
|
|
||||||
UIMAGEBUFFER = 354,
|
|
||||||
IMAGE1DARRAY = 355,
|
|
||||||
IIMAGE1DARRAY = 356,
|
|
||||||
UIMAGE1DARRAY = 357,
|
|
||||||
IMAGE2DARRAY = 358,
|
|
||||||
IIMAGE2DARRAY = 359,
|
|
||||||
UIMAGE2DARRAY = 360,
|
|
||||||
IMAGECUBEARRAY = 361,
|
|
||||||
IIMAGECUBEARRAY = 362,
|
|
||||||
UIMAGECUBEARRAY = 363,
|
|
||||||
IMAGE2DMS = 364,
|
|
||||||
IIMAGE2DMS = 365,
|
|
||||||
UIMAGE2DMS = 366,
|
|
||||||
IMAGE2DMSARRAY = 367,
|
|
||||||
IIMAGE2DMSARRAY = 368,
|
|
||||||
UIMAGE2DMSARRAY = 369,
|
|
||||||
TEXTURECUBEARRAY = 370,
|
|
||||||
ITEXTURECUBEARRAY = 371,
|
|
||||||
UTEXTURECUBEARRAY = 372,
|
|
||||||
TEXTURE1D = 373,
|
|
||||||
ITEXTURE1D = 374,
|
|
||||||
UTEXTURE1D = 375,
|
|
||||||
TEXTURE1DARRAY = 376,
|
|
||||||
ITEXTURE1DARRAY = 377,
|
|
||||||
UTEXTURE1DARRAY = 378,
|
|
||||||
TEXTURE2DRECT = 379,
|
|
||||||
ITEXTURE2DRECT = 380,
|
|
||||||
UTEXTURE2DRECT = 381,
|
|
||||||
TEXTUREBUFFER = 382,
|
|
||||||
ITEXTUREBUFFER = 383,
|
|
||||||
UTEXTUREBUFFER = 384,
|
|
||||||
TEXTURE2DMS = 385,
|
|
||||||
ITEXTURE2DMS = 386,
|
|
||||||
UTEXTURE2DMS = 387,
|
|
||||||
TEXTURE2DMSARRAY = 388,
|
|
||||||
ITEXTURE2DMSARRAY = 389,
|
|
||||||
UTEXTURE2DMSARRAY = 390,
|
|
||||||
LEFT_OP = 391,
|
|
||||||
RIGHT_OP = 392,
|
|
||||||
INC_OP = 393,
|
|
||||||
DEC_OP = 394,
|
|
||||||
LE_OP = 395,
|
|
||||||
GE_OP = 396,
|
|
||||||
EQ_OP = 397,
|
|
||||||
NE_OP = 398,
|
|
||||||
AND_OP = 399,
|
|
||||||
OR_OP = 400,
|
|
||||||
XOR_OP = 401,
|
|
||||||
MUL_ASSIGN = 402,
|
|
||||||
DIV_ASSIGN = 403,
|
|
||||||
ADD_ASSIGN = 404,
|
|
||||||
MOD_ASSIGN = 405,
|
|
||||||
LEFT_ASSIGN = 406,
|
|
||||||
RIGHT_ASSIGN = 407,
|
|
||||||
AND_ASSIGN = 408,
|
|
||||||
XOR_ASSIGN = 409,
|
|
||||||
OR_ASSIGN = 410,
|
|
||||||
SUB_ASSIGN = 411,
|
|
||||||
STRING_LITERAL = 412,
|
|
||||||
LEFT_PAREN = 413,
|
|
||||||
RIGHT_PAREN = 414,
|
|
||||||
LEFT_BRACKET = 415,
|
|
||||||
RIGHT_BRACKET = 416,
|
|
||||||
LEFT_BRACE = 417,
|
|
||||||
RIGHT_BRACE = 418,
|
|
||||||
DOT = 419,
|
|
||||||
COMMA = 420,
|
|
||||||
COLON = 421,
|
|
||||||
EQUAL = 422,
|
|
||||||
SEMICOLON = 423,
|
|
||||||
BANG = 424,
|
|
||||||
DASH = 425,
|
|
||||||
TILDE = 426,
|
|
||||||
PLUS = 427,
|
|
||||||
STAR = 428,
|
|
||||||
SLASH = 429,
|
|
||||||
PERCENT = 430,
|
|
||||||
LEFT_ANGLE = 431,
|
|
||||||
RIGHT_ANGLE = 432,
|
|
||||||
VERTICAL_BAR = 433,
|
|
||||||
CARET = 434,
|
|
||||||
AMPERSAND = 435,
|
|
||||||
QUESTION = 436,
|
|
||||||
INVARIANT = 437,
|
|
||||||
HIGH_PRECISION = 438,
|
|
||||||
MEDIUM_PRECISION = 439,
|
|
||||||
LOW_PRECISION = 440,
|
|
||||||
PRECISION = 441,
|
|
||||||
PACKED = 442,
|
|
||||||
RESOURCE = 443,
|
|
||||||
SUPERP = 444,
|
|
||||||
FLOATCONSTANT = 445,
|
|
||||||
INTCONSTANT = 446,
|
|
||||||
UINTCONSTANT = 447,
|
|
||||||
BOOLCONSTANT = 448,
|
|
||||||
IDENTIFIER = 449,
|
|
||||||
TYPE_NAME = 450,
|
|
||||||
CENTROID = 451,
|
|
||||||
IN = 452,
|
|
||||||
OUT = 453,
|
|
||||||
INOUT = 454,
|
|
||||||
STRUCT = 455,
|
|
||||||
VOID = 456,
|
|
||||||
WHILE = 457,
|
|
||||||
BREAK = 458,
|
|
||||||
CONTINUE = 459,
|
|
||||||
DO = 460,
|
|
||||||
ELSE = 461,
|
|
||||||
FOR = 462,
|
|
||||||
IF = 463,
|
|
||||||
DISCARD = 464,
|
|
||||||
RETURN = 465,
|
|
||||||
SWITCH = 466,
|
|
||||||
CASE = 467,
|
|
||||||
DEFAULT = 468,
|
|
||||||
UNIFORM = 469,
|
|
||||||
SHARED = 470,
|
|
||||||
BUFFER = 471,
|
|
||||||
FLAT = 472,
|
|
||||||
SMOOTH = 473,
|
|
||||||
LAYOUT = 474,
|
|
||||||
PATCH = 475,
|
|
||||||
SAMPLE = 476,
|
|
||||||
COHERENT = 477,
|
|
||||||
VOLATILE = 478,
|
|
||||||
RESTRICT = 479,
|
|
||||||
READONLY = 480,
|
|
||||||
WRITEONLY = 481,
|
|
||||||
NOPERSPECTIVE = 482,
|
|
||||||
PRECISE = 483
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Value type. */
|
|
||||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
||||||
union YYSTYPE
|
|
||||||
{
|
|
||||||
#line 103 "MachineIndependent/glslang_angle.y"
|
|
||||||
|
|
||||||
struct {
|
|
||||||
glslang::TSourceLoc loc;
|
|
||||||
union {
|
|
||||||
glslang::TString *string;
|
|
||||||
int i;
|
|
||||||
unsigned int u;
|
|
||||||
long long i64;
|
|
||||||
unsigned long long u64;
|
|
||||||
bool b;
|
|
||||||
double d;
|
|
||||||
};
|
|
||||||
glslang::TSymbol* symbol;
|
|
||||||
} lex;
|
|
||||||
struct {
|
|
||||||
glslang::TSourceLoc loc;
|
|
||||||
glslang::TOperator op;
|
|
||||||
union {
|
|
||||||
TIntermNode* intermNode;
|
|
||||||
glslang::TIntermNodePair nodePair;
|
|
||||||
glslang::TIntermTyped* intermTypedNode;
|
|
||||||
glslang::TAttributes* attributes;
|
|
||||||
};
|
|
||||||
union {
|
|
||||||
glslang::TPublicType type;
|
|
||||||
glslang::TFunction* function;
|
|
||||||
glslang::TParameter param;
|
|
||||||
glslang::TTypeLoc typeLine;
|
|
||||||
glslang::TTypeList* typeList;
|
|
||||||
glslang::TArraySizes* arraySizes;
|
|
||||||
glslang::TIdentifierList* identifierList;
|
|
||||||
};
|
|
||||||
glslang::TArraySizes* typeParameters;
|
|
||||||
} interm;
|
|
||||||
|
|
||||||
#line 322 "MachineIndependent/glslang_angle_tab.cpp.h"
|
|
||||||
|
|
||||||
};
|
|
||||||
typedef union YYSTYPE YYSTYPE;
|
|
||||||
# define YYSTYPE_IS_TRIVIAL 1
|
|
||||||
# define YYSTYPE_IS_DECLARED 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int yyparse (glslang::TParseContext* pParseContext);
|
|
||||||
|
|
||||||
#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED */
|
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,8 @@
|
|||||||
/* A Bison parser, made by GNU Bison 3.5.1. */
|
/* A Bison parser, made by GNU Bison 3.0.4. */
|
||||||
|
|
||||||
/* Bison interface for Yacc-like parsers in C
|
/* Bison interface for Yacc-like parsers in C
|
||||||
|
|
||||||
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
|
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
||||||
Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -31,11 +30,8 @@
|
|||||||
This special exception was added by the Free Software Foundation in
|
This special exception was added by the Free Software Foundation in
|
||||||
version 2.2 of Bison. */
|
version 2.2 of Bison. */
|
||||||
|
|
||||||
/* Undocumented macros, especially those whose name start with YY_,
|
#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
|
||||||
are private implementation details. Do not rely on them. */
|
# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
|
||||||
|
|
||||||
#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
|
|
||||||
# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
|
|
||||||
/* Debug traces. */
|
/* Debug traces. */
|
||||||
#ifndef YYDEBUG
|
#ifndef YYDEBUG
|
||||||
# define YYDEBUG 1
|
# define YYDEBUG 1
|
||||||
@ -216,26 +212,26 @@ extern int yydebug;
|
|||||||
SAMPLERCUBEARRAYSHADOW = 422,
|
SAMPLERCUBEARRAYSHADOW = 422,
|
||||||
ISAMPLERCUBEARRAY = 423,
|
ISAMPLERCUBEARRAY = 423,
|
||||||
USAMPLERCUBEARRAY = 424,
|
USAMPLERCUBEARRAY = 424,
|
||||||
SAMPLER2DRECT = 425,
|
SAMPLER1D = 425,
|
||||||
SAMPLER2DRECTSHADOW = 426,
|
SAMPLER1DARRAY = 426,
|
||||||
ISAMPLER2DRECT = 427,
|
SAMPLER1DARRAYSHADOW = 427,
|
||||||
USAMPLER2DRECT = 428,
|
ISAMPLER1D = 428,
|
||||||
SAMPLERBUFFER = 429,
|
SAMPLER1DSHADOW = 429,
|
||||||
ISAMPLERBUFFER = 430,
|
SAMPLER2DRECT = 430,
|
||||||
USAMPLERBUFFER = 431,
|
SAMPLER2DRECTSHADOW = 431,
|
||||||
SAMPLER2DMS = 432,
|
ISAMPLER2DRECT = 432,
|
||||||
ISAMPLER2DMS = 433,
|
USAMPLER2DRECT = 433,
|
||||||
USAMPLER2DMS = 434,
|
SAMPLERBUFFER = 434,
|
||||||
SAMPLER2DMSARRAY = 435,
|
ISAMPLERBUFFER = 435,
|
||||||
ISAMPLER2DMSARRAY = 436,
|
USAMPLERBUFFER = 436,
|
||||||
USAMPLER2DMSARRAY = 437,
|
SAMPLER2DMS = 437,
|
||||||
SAMPLEREXTERNALOES = 438,
|
ISAMPLER2DMS = 438,
|
||||||
SAMPLEREXTERNAL2DY2YEXT = 439,
|
USAMPLER2DMS = 439,
|
||||||
SAMPLER1D = 440,
|
SAMPLER2DMSARRAY = 440,
|
||||||
SAMPLER1DARRAY = 441,
|
ISAMPLER2DMSARRAY = 441,
|
||||||
SAMPLER1DARRAYSHADOW = 442,
|
USAMPLER2DMSARRAY = 442,
|
||||||
ISAMPLER1D = 443,
|
SAMPLEREXTERNALOES = 443,
|
||||||
SAMPLER1DSHADOW = 444,
|
SAMPLEREXTERNAL2DY2YEXT = 444,
|
||||||
ISAMPLER1DARRAY = 445,
|
ISAMPLER1DARRAY = 445,
|
||||||
USAMPLER1D = 446,
|
USAMPLER1D = 446,
|
||||||
USAMPLER1DARRAY = 447,
|
USAMPLER1DARRAY = 447,
|
||||||
@ -445,35 +441,36 @@ extern int yydebug;
|
|||||||
HITATTREXT = 651,
|
HITATTREXT = 651,
|
||||||
CALLDATAEXT = 652,
|
CALLDATAEXT = 652,
|
||||||
CALLDATAINEXT = 653,
|
CALLDATAINEXT = 653,
|
||||||
NONUNIFORM = 654,
|
PATCH = 654,
|
||||||
DEVICECOHERENT = 655,
|
SAMPLE = 655,
|
||||||
QUEUEFAMILYCOHERENT = 656,
|
NONUNIFORM = 656,
|
||||||
WORKGROUPCOHERENT = 657,
|
COHERENT = 657,
|
||||||
SUBGROUPCOHERENT = 658,
|
VOLATILE = 658,
|
||||||
NONPRIVATE = 659,
|
RESTRICT = 659,
|
||||||
SHADERCALLCOHERENT = 660,
|
READONLY = 660,
|
||||||
EXPLICITINTERPAMD = 661,
|
WRITEONLY = 661,
|
||||||
PERVERTEXNV = 662,
|
DEVICECOHERENT = 662,
|
||||||
PERPRIMITIVENV = 663,
|
QUEUEFAMILYCOHERENT = 663,
|
||||||
PERVIEWNV = 664,
|
WORKGROUPCOHERENT = 664,
|
||||||
PERTASKNV = 665,
|
SUBGROUPCOHERENT = 665,
|
||||||
PATCH = 666,
|
NONPRIVATE = 666,
|
||||||
SAMPLE = 667,
|
SHADERCALLCOHERENT = 667,
|
||||||
COHERENT = 668,
|
NOPERSPECTIVE = 668,
|
||||||
VOLATILE = 669,
|
EXPLICITINTERPAMD = 669,
|
||||||
RESTRICT = 670,
|
PERVERTEXNV = 670,
|
||||||
READONLY = 671,
|
PERPRIMITIVENV = 671,
|
||||||
WRITEONLY = 672,
|
PERVIEWNV = 672,
|
||||||
NOPERSPECTIVE = 673,
|
PERTASKNV = 673,
|
||||||
PRECISE = 674
|
PRECISE = 674
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Value type. */
|
/* Value type. */
|
||||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||||
|
|
||||||
union YYSTYPE
|
union YYSTYPE
|
||||||
{
|
{
|
||||||
#line 103 "MachineIndependent/glslang.y"
|
#line 97 "glslang.y" /* yacc.c:1909 */
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
glslang::TSourceLoc loc;
|
glslang::TSourceLoc loc;
|
||||||
@ -509,9 +506,9 @@ union YYSTYPE
|
|||||||
glslang::TArraySizes* typeParameters;
|
glslang::TArraySizes* typeParameters;
|
||||||
} interm;
|
} interm;
|
||||||
|
|
||||||
#line 513 "MachineIndependent/glslang_tab.cpp.h"
|
#line 510 "glslang_tab.cpp.h" /* yacc.c:1909 */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef union YYSTYPE YYSTYPE;
|
typedef union YYSTYPE YYSTYPE;
|
||||||
# define YYSTYPE_IS_TRIVIAL 1
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
# define YYSTYPE_IS_DECLARED 1
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
@ -521,4 +518,4 @@ typedef union YYSTYPE YYSTYPE;
|
|||||||
|
|
||||||
int yyparse (glslang::TParseContext* pParseContext);
|
int yyparse (glslang::TParseContext* pParseContext);
|
||||||
|
|
||||||
#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */
|
#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
// POSSIBILITY OF SUCH DAMAGE.
|
// POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
#include "localintermediate.h"
|
#include "localintermediate.h"
|
||||||
#include "../Include/InfoSink.h"
|
#include "../Include/InfoSink.h"
|
||||||
@ -1562,4 +1562,4 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree)
|
|||||||
|
|
||||||
} // end namespace glslang
|
} // end namespace glslang
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // not GLSLANG_WEB
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// POSSIBILITY OF SUCH DAMAGE.
|
// POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
#include "../Include/Common.h"
|
#include "../Include/Common.h"
|
||||||
#include "../Include/InfoSink.h"
|
#include "../Include/InfoSink.h"
|
||||||
@ -1281,4 +1281,4 @@ bool TGlslIoMapper::doMap(TIoMapResolver* resolver, TInfoSink& infoSink) {
|
|||||||
|
|
||||||
} // end namespace glslang
|
} // end namespace glslang
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // GLSLANG_WEB
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// POSSIBILITY OF SUCH DAMAGE.
|
// POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
#ifndef _IOMAPPER_INCLUDED
|
#ifndef _IOMAPPER_INCLUDED
|
||||||
#define _IOMAPPER_INCLUDED
|
#define _IOMAPPER_INCLUDED
|
||||||
@ -186,7 +186,7 @@ protected:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Default I/O resolver for OpenGL
|
// Defaulf I/O resolver for OpenGL
|
||||||
struct TDefaultGlslIoResolver : public TDefaultIoResolverBase {
|
struct TDefaultGlslIoResolver : public TDefaultIoResolverBase {
|
||||||
public:
|
public:
|
||||||
typedef std::map<TString, int> TVarSlotMap; // <resourceName, location/binding>
|
typedef std::map<TString, int> TVarSlotMap; // <resourceName, location/binding>
|
||||||
@ -299,4 +299,4 @@ public:
|
|||||||
|
|
||||||
#endif // _IOMAPPER_INCLUDED
|
#endif // _IOMAPPER_INCLUDED
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // GLSLANG_WEB
|
||||||
|
@ -82,7 +82,7 @@ void TIntermediate::warn(TInfoSink& infoSink, const char* message)
|
|||||||
//
|
//
|
||||||
void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit)
|
void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit)
|
||||||
{
|
{
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
mergeCallGraphs(infoSink, unit);
|
mergeCallGraphs(infoSink, unit);
|
||||||
mergeModes(infoSink, unit);
|
mergeModes(infoSink, unit);
|
||||||
mergeTrees(infoSink, unit);
|
mergeTrees(infoSink, unit);
|
||||||
@ -104,7 +104,7 @@ void TIntermediate::mergeCallGraphs(TInfoSink& infoSink, TIntermediate& unit)
|
|||||||
callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end());
|
callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
#define MERGE_MAX(member) member = std::max(member, unit.member)
|
#define MERGE_MAX(member) member = std::max(member, unit.member)
|
||||||
#define MERGE_TRUE(member) if (unit.member) member = unit.member;
|
#define MERGE_TRUE(member) if (unit.member) member = unit.member;
|
||||||
@ -533,7 +533,7 @@ void TIntermediate::mergeImplicitArraySizes(TType& type, const TType& unitType)
|
|||||||
//
|
//
|
||||||
void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, bool crossStage)
|
void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, bool crossStage)
|
||||||
{
|
{
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
bool writeTypeComparison = false;
|
bool writeTypeComparison = false;
|
||||||
|
|
||||||
// Types have to match
|
// Types have to match
|
||||||
|
@ -241,10 +241,7 @@ class TIntermediate {
|
|||||||
public:
|
public:
|
||||||
explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) :
|
explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) :
|
||||||
language(l),
|
language(l),
|
||||||
#ifndef GLSLANG_ANGLE
|
profile(p), version(v), treeRoot(0),
|
||||||
profile(p), version(v),
|
|
||||||
#endif
|
|
||||||
treeRoot(0),
|
|
||||||
numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
|
numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
|
||||||
invertY(false),
|
invertY(false),
|
||||||
useStorageBuffer(false),
|
useStorageBuffer(false),
|
||||||
@ -298,20 +295,9 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void setVersion(int v)
|
void setVersion(int v) { version = v; }
|
||||||
{
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
version = v;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
void setProfile(EProfile p)
|
|
||||||
{
|
|
||||||
#ifndef GLSLANG_ANGLE
|
|
||||||
profile = p;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int getVersion() const { return version; }
|
int getVersion() const { return version; }
|
||||||
|
void setProfile(EProfile p) { profile = p; }
|
||||||
EProfile getProfile() const { return profile; }
|
EProfile getProfile() const { return profile; }
|
||||||
void setSpv(const SpvVersion& s)
|
void setSpv(const SpvVersion& s)
|
||||||
{
|
{
|
||||||
@ -943,13 +929,8 @@ protected:
|
|||||||
typedef std::list<TCall> TGraph;
|
typedef std::list<TCall> TGraph;
|
||||||
TGraph callGraph;
|
TGraph callGraph;
|
||||||
|
|
||||||
#ifdef GLSLANG_ANGLE
|
|
||||||
const EProfile profile = ECoreProfile;
|
|
||||||
const int version = 450;
|
|
||||||
#else
|
|
||||||
EProfile profile; // source profile
|
EProfile profile; // source profile
|
||||||
int version; // source version
|
int version; // source version
|
||||||
#endif
|
|
||||||
SpvVersion spvVersion;
|
SpvVersion spvVersion;
|
||||||
TIntermNode* treeRoot;
|
TIntermNode* treeRoot;
|
||||||
std::map<std::string, TExtensionBehavior> requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them
|
std::map<std::string, TExtensionBehavior> requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them
|
||||||
|
@ -58,7 +58,7 @@ public:
|
|||||||
const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
|
const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
|
||||||
bool forwardCompatible, EShMessages messages)
|
bool forwardCompatible, EShMessages messages)
|
||||||
:
|
:
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
forwardCompatible(forwardCompatible),
|
forwardCompatible(forwardCompatible),
|
||||||
profile(profile),
|
profile(profile),
|
||||||
#endif
|
#endif
|
||||||
@ -116,14 +116,9 @@ public:
|
|||||||
bool relaxedErrors() const { return false; }
|
bool relaxedErrors() const { return false; }
|
||||||
bool suppressWarnings() const { return true; }
|
bool suppressWarnings() const { return true; }
|
||||||
bool isForwardCompatible() const { return false; }
|
bool isForwardCompatible() const { return false; }
|
||||||
#else
|
|
||||||
#ifdef GLSLANG_ANGLE
|
|
||||||
const bool forwardCompatible = true;
|
|
||||||
const EProfile profile = ECoreProfile;
|
|
||||||
#else
|
#else
|
||||||
bool forwardCompatible; // true if errors are to be given for use of deprecated features
|
bool forwardCompatible; // true if errors are to be given for use of deprecated features
|
||||||
EProfile profile; // the declared profile in the shader (core by default)
|
EProfile profile; // the declared profile in the shader (core by default)
|
||||||
#endif
|
|
||||||
bool isEsProfile() const { return profile == EEsProfile; }
|
bool isEsProfile() const { return profile == EEsProfile; }
|
||||||
void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc);
|
void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc);
|
||||||
void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions,
|
void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions,
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// POSSIBILITY OF SUCH DAMAGE.
|
// POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
#include "../Include/Common.h"
|
#include "../Include/Common.h"
|
||||||
#include "reflection.h"
|
#include "reflection.h"
|
||||||
@ -1266,4 +1266,4 @@ void TReflection::dump()
|
|||||||
|
|
||||||
} // end namespace glslang
|
} // end namespace glslang
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // GLSLANG_WEB
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// POSSIBILITY OF SUCH DAMAGE.
|
// POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
#ifndef _REFLECTION_INCLUDED
|
#ifndef _REFLECTION_INCLUDED
|
||||||
#define _REFLECTION_INCLUDED
|
#define _REFLECTION_INCLUDED
|
||||||
@ -220,4 +220,4 @@ protected:
|
|||||||
|
|
||||||
#endif // _REFLECTION_INCLUDED
|
#endif // _REFLECTION_INCLUDED
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // GLSLANG_WEB
|
||||||
|
@ -690,7 +690,7 @@ private:
|
|||||||
TShader& operator=(TShader&);
|
TShader& operator=(TShader&);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
//
|
//
|
||||||
// A reflection database and its interface, consistent with the OpenGL API reflection queries.
|
// A reflection database and its interface, consistent with the OpenGL API reflection queries.
|
||||||
@ -808,7 +808,7 @@ public:
|
|||||||
virtual void addStage(EShLanguage stage) = 0;
|
virtual void addStage(EShLanguage stage) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif // GLSLANG_WEB
|
||||||
|
|
||||||
// Make one TProgram per set of shaders that will get linked together. Add all
|
// Make one TProgram per set of shaders that will get linked together. Add all
|
||||||
// the shaders that are to be linked together. After calling shader.parse()
|
// the shaders that are to be linked together. After calling shader.parse()
|
||||||
@ -829,7 +829,7 @@ public:
|
|||||||
|
|
||||||
TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; }
|
TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; }
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
|
|
||||||
// Reflection Interface
|
// Reflection Interface
|
||||||
|
|
||||||
@ -923,7 +923,7 @@ public:
|
|||||||
// If resolver is not provided it uses the previous approach
|
// If resolver is not provided it uses the previous approach
|
||||||
// and respects auto assignment and offsets.
|
// and respects auto assignment and offsets.
|
||||||
GLSLANG_EXPORT bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr);
|
GLSLANG_EXPORT bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr);
|
||||||
#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
|
#endif
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages);
|
GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages);
|
||||||
@ -933,7 +933,7 @@ protected:
|
|||||||
TIntermediate* intermediate[EShLangCount];
|
TIntermediate* intermediate[EShLangCount];
|
||||||
bool newedIntermediate[EShLangCount]; // track which intermediate were "new" versus reusing a singleton unit in a stage
|
bool newedIntermediate[EShLangCount]; // track which intermediate were "new" versus reusing a singleton unit in a stage
|
||||||
TInfoSink* infoSink;
|
TInfoSink* infoSink;
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
TReflection* reflection;
|
TReflection* reflection;
|
||||||
#endif
|
#endif
|
||||||
bool linked;
|
bool linked;
|
||||||
|
@ -39,7 +39,6 @@ then
|
|||||||
elif [ "$#" -eq 0 ]
|
elif [ "$#" -eq 0 ]
|
||||||
then
|
then
|
||||||
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
||||||
m4 -P -DGLSLANG_ANGLE MachineIndependent/glslang.m4 > MachineIndependent/glslang_angle.y
|
|
||||||
else
|
else
|
||||||
echo usage:
|
echo usage:
|
||||||
echo $0 web
|
echo $0 web
|
||||||
@ -48,7 +47,3 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
|
bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
|
||||||
if [ "$1" != 'web' ]
|
|
||||||
then
|
|
||||||
bison --defines=MachineIndependent/glslang_angle_tab.cpp.h -t MachineIndependent/glslang_angle.y -o MachineIndependent/glslang_angle_tab.cpp
|
|
||||||
fi
|
|
||||||
|
@ -75,7 +75,7 @@ TEST_P(LinkTestVulkan, FromFile)
|
|||||||
result.linkingOutput = program.getInfoLog();
|
result.linkingOutput = program.getInfoLog();
|
||||||
result.linkingError = program.getInfoDebugLog();
|
result.linkingError = program.getInfoDebugLog();
|
||||||
|
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (success)
|
if (success)
|
||||||
program.mapIO();
|
program.mapIO();
|
||||||
#endif
|
#endif
|
||||||
|
@ -253,7 +253,7 @@ public:
|
|||||||
glslang::TProgram program;
|
glslang::TProgram program;
|
||||||
program.addShader(&shader);
|
program.addShader(&shader);
|
||||||
success &= program.link(controls);
|
success &= program.link(controls);
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (success)
|
if (success)
|
||||||
program.mapIO();
|
program.mapIO();
|
||||||
#endif
|
#endif
|
||||||
@ -315,7 +315,7 @@ public:
|
|||||||
program.addShader(&shader);
|
program.addShader(&shader);
|
||||||
|
|
||||||
success &= program.link(controls);
|
success &= program.link(controls);
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (success)
|
if (success)
|
||||||
program.mapIO();
|
program.mapIO();
|
||||||
#endif
|
#endif
|
||||||
@ -360,7 +360,7 @@ public:
|
|||||||
glslang::TProgram program;
|
glslang::TProgram program;
|
||||||
program.addShader(&shader);
|
program.addShader(&shader);
|
||||||
success &= program.link(controls);
|
success &= program.link(controls);
|
||||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
#ifndef GLSLANG_WEB
|
||||||
if (success)
|
if (success)
|
||||||
program.mapIO();
|
program.mapIO();
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,9 +22,6 @@
|
|||||||
|
|
||||||
"glslang/MachineIndependent/glslang_tab.cpp",
|
"glslang/MachineIndependent/glslang_tab.cpp",
|
||||||
"glslang/MachineIndependent/glslang_tab.cpp.h",
|
"glslang/MachineIndependent/glslang_tab.cpp.h",
|
||||||
|
|
||||||
"glslang/MachineIndependent/glslang_angle_tab.cpp",
|
|
||||||
"glslang/MachineIndependent/glslang_angle_tab.cpp.h"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user