Commit 553726a4 by Mohan Maiya Committed by Commit Bot

Vulkan: Add OES_shader_multisample_interpolation extension

Addition of 'sample' qualifier keyword and 'interplateAt*' fragment shader builtin functions with autogen Bug: angleproject:3589 Change-Id: If358eb371fbcefffa715c8da4ba5e96eefaf6f52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477904 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent d591ddff
......@@ -26,7 +26,7 @@
// Version number for shader translation API.
// It is incremented every time the API changes.
#define ANGLE_SH_VERSION 234
#define ANGLE_SH_VERSION 235
enum ShShaderSpec
{
......@@ -406,6 +406,7 @@ struct ShBuiltInResources
int OES_texture_cube_map_array;
int EXT_texture_cube_map_array;
int EXT_shadow_samplers;
int OES_shader_multisample_interpolation;
// Set to 1 to enable replacing GL_EXT_draw_buffers #extension directives
// with GL_NV_draw_buffers in ESSL output. This flag can be used to emulate
......
......@@ -4,15 +4,15 @@
"src/compiler/translator/generate_parser.py":
"566178ecdfae3a29803b3687fc518ebb",
"src/compiler/translator/glslang.l":
"27b1e8d59a04bbaec10fac5688a67602",
"d0119d698e056a454a4414a254324df4",
"src/compiler/translator/glslang.y":
"1619aa1587a5fae94df9d143af732b77",
"d00fad5170eb80f9d420d126eb0d311c",
"src/compiler/translator/glslang_lex_autogen.cpp":
"ca9edf3f6882bdf9ac60dab16e8fb994",
"6e265988e6f6afe3ff984a07ce3caf16",
"src/compiler/translator/glslang_tab_autogen.cpp":
"fc0ab4cb3179dc0d936ed9d56bb2dbd0",
"3a39adeee3876580c27993da0555320a",
"src/compiler/translator/glslang_tab_autogen.h":
"7be1b46407ec9671626ef3594bcec57e",
"ed181c8ef2a71585f18b2015f5f1c098",
"tools/flex-bison/linux/bison.sha1":
"efa86001f00e7bcfdbe899dd15fc88e0",
"tools/flex-bison/linux/flex.sha1":
......
{
"src/compiler/translator/ImmutableString_ESSL_autogen.cpp":
"a9a7d0620a2db1e80f8a370b523eeae5",
"98168ea2a1d9bfa290c7e72e299955f8",
"src/compiler/translator/ImmutableString_autogen.cpp":
"afe7aec06ab49afc91a1ba25db0a3bce",
"663daecf68294fa141be288ceb7f75f0",
"src/compiler/translator/ParseContext_ESSL_autogen.h":
"4da3f648f61218602aff76296103e0f2",
"b33dad2b5b23cc4a48b0a8183c536c21",
"src/compiler/translator/ParseContext_complete_autogen.h":
"272d913f6a057fe1ebce884a6bd2bb73",
"6113be5f4ebd8789901ef48a611a1e03",
"src/compiler/translator/SymbolTable_ESSL_autogen.cpp":
"017b7c00d55b9ec4edf084e87847f1d9",
"96a8712eba5ae5245af83b082cbd5219",
"src/compiler/translator/SymbolTable_autogen.cpp":
"ef071b17834742f56397bc63d531bb5f",
"51bdcd32bb37a2a1bbffa154f7427694",
"src/compiler/translator/SymbolTable_autogen.h":
"2d8bed6ff5debc6546199a2add316a66",
"src/compiler/translator/builtin_function_declarations.txt":
"dc84b6c5fc78d9da23204d72574dd682",
"bd195be52e11bb993aa757acb3770b85",
"src/compiler/translator/builtin_variables.json":
"98d347a6ed181eca3d89bfd73193d787",
"src/compiler/translator/gen_builtin_symbols.py":
"a538e53475983ae9643afd5b36056347",
"src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h":
"fa72b4b824dd85feeda5f984866a017f",
"ad4b5fafc78f98b2bf0ff1f0516d6f4b",
"src/compiler/translator/tree_util/BuiltIn_complete_autogen.h":
"c3f43a7fafcf0bad43178be1a7da5d0f",
"7429fd6b4be0c23aba95fbbc66a40ad9",
"src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp":
"1f48b488c4e436833f5341ce1ad95f15",
"ade4d08598c35df6eb3a67a9eb45bad8",
"src/tests/compiler_tests/ImmutableString_test_autogen.cpp":
"aeacada0c801b923edefe3a74fc16285"
"424a9c61841fa9b5613fb94210272c30"
}
\ No newline at end of file
......@@ -976,6 +976,7 @@ enum TQualifier
EvqFlat, // Incomplete qualifier
EvqNoPerspective, // Incomplete qualifier
EvqCentroid, // Incomplete qualifier
EvqSample,
EvqSmoothOut,
EvqFlatOut,
EvqNoPerspectiveOut,
......
......@@ -13,8 +13,11 @@
#include <string.h>
#define LIST_EXTENSIONS(OP) \
OP(ARB_texture_rectangle) \
OP(ANGLE_base_vertex_base_instance) \
OP(ANGLE_multi_draw) \
OP(ANGLE_texture_multisample) \
OP(APPLE_clip_distance) \
OP(ARB_texture_rectangle) \
OP(ARM_shader_framebuffer_fetch) \
OP(EXT_blend_func_extended) \
OP(EXT_draw_buffers) \
......@@ -22,26 +25,24 @@
OP(EXT_geometry_shader) \
OP(EXT_gpu_shader5) \
OP(EXT_shader_framebuffer_fetch) \
OP(EXT_shader_non_constant_global_initializers) \
OP(EXT_shader_texture_lod) \
OP(EXT_shadow_samplers) \
OP(EXT_texture_cube_map_array) \
OP(EXT_YUV_target) \
OP(EXT_shader_non_constant_global_initializers) \
OP(NV_shader_noperspective_interpolation) \
OP(NV_EGL_stream_consumer_external) \
OP(NV_shader_framebuffer_fetch) \
OP(NV_shader_noperspective_interpolation) \
OP(OES_EGL_image_external) \
OP(OES_EGL_image_external_essl3) \
OP(OES_shader_multisample_interpolation) \
OP(OES_standard_derivatives) \
OP(OES_texture_storage_multisample_2d_array) \
OP(OES_texture_3D) \
OP(OES_texture_cube_map_array) \
OP(OES_texture_storage_multisample_2d_array) \
OP(OVR_multiview) \
OP(OVR_multiview2) \
OP(ANGLE_multi_draw) \
OP(ANGLE_base_vertex_base_instance) \
OP(WEBGL_video_texture) \
OP(APPLE_clip_distance) \
OP(OES_texture_cube_map_array) \
OP(EXT_texture_cube_map_array) \
OP(EXT_shadow_samplers)
OP(WEBGL_video_texture)
namespace sh
{
......
......@@ -19,8 +19,11 @@ enum class TExtension : uint8_t
{
UNDEFINED, // Special value used to indicate no extension.
ARB_texture_rectangle,
ANGLE_base_vertex_base_instance,
ANGLE_multi_draw,
ANGLE_texture_multisample,
APPLE_clip_distance,
ARB_texture_rectangle,
ARM_shader_framebuffer_fetch,
EXT_blend_func_extended,
EXT_draw_buffers,
......@@ -28,26 +31,24 @@ enum class TExtension : uint8_t
EXT_geometry_shader,
EXT_gpu_shader5,
EXT_shader_framebuffer_fetch,
EXT_shader_non_constant_global_initializers,
EXT_shader_texture_lod,
EXT_shadow_samplers,
EXT_texture_cube_map_array,
EXT_YUV_target,
EXT_shader_non_constant_global_initializers,
NV_EGL_stream_consumer_external,
NV_shader_framebuffer_fetch,
NV_shader_noperspective_interpolation,
OES_EGL_image_external,
OES_EGL_image_external_essl3,
OES_shader_multisample_interpolation,
OES_standard_derivatives,
OES_texture_storage_multisample_2d_array,
OES_texture_3D,
OES_texture_cube_map_array,
OES_texture_storage_multisample_2d_array,
OVR_multiview,
OVR_multiview2,
ANGLE_multi_draw,
ANGLE_base_vertex_base_instance,
WEBGL_video_texture,
APPLE_clip_distance,
OES_texture_cube_map_array,
EXT_texture_cube_map_array,
EXT_shadow_samplers,
};
enum TBehavior : uint8_t
......
......@@ -24,133 +24,129 @@ std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str)
namespace
{
constexpr int mangledkT1[] = {33, 1446, 1611, 1780, 1507, 937, 983, 546, 92, 1884,
1735, 1433, 510, 683, 1381, 1792, 856, 1603, 990, 821,
537, 88, 1300, 451, 195, 1506, 1410, 159, 346, 186,
1746, 1061, 651, 1878, 961, 1349, 1389};
constexpr int mangledkT2[] = {922, 1311, 1706, 1401, 1291, 1445, 1607, 152, 1095, 948,
1236, 332, 611, 1126, 1453, 449, 160, 754, 23, 1299,
1345, 1028, 897, 734, 273, 563, 160, 231, 440, 1001,
1509, 1657, 1545, 646, 294, 1125, 1260};
constexpr int mangledkT1[] = {1106, 604, 1081, 1073, 268, 909, 330, 1205, 93, 649,
1076, 1741, 178, 280, 718, 568, 1291, 1500, 200, 912,
656, 66, 1686, 281, 1191, 743, 708, 1486, 1716, 611,
693, 1452, 670, 1815, 1027, 639, 1170};
constexpr int mangledkT2[] = {234, 1220, 1447, 1660, 623, 489, 1356, 724, 1027, 1265,
552, 1361, 1696, 1334, 590, 859, 1703, 1035, 1647, 1001,
338, 662, 1306, 781, 337, 522, 1058, 822, 1177, 971,
614, 1251, 633, 159, 252, 503, 619};
constexpr int mangledkG[] = {
0, 0, 0, 0, 0, 0, 1280, 0, 0, 0, 0, 1657, 1176, 1694, 0, 0,
1026, 0, 857, 0, 0, 207, 0, 0, 0, 0, 1118, 0, 0, 0, 139, 0,
0, 0, 655, 1864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1178, 193, 0, 0, 321, 0, 0, 0, 0, 173, 233,
174, 603, 153, 0, 0, 0, 0, 0, 0, 769, 337, 0, 1718, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 1625, 1858, 0, 0, 0, 1124,
0, 0, 0, 0, 1324, 0, 0, 294, 0, 1066, 0, 0, 1805, 0, 1770, 1318,
638, 0, 0, 712, 0, 0, 0, 0, 845, 0, 0, 983, 0, 509, 0, 0,
0, 0, 0, 0, 1628, 1366, 0, 1265, 0, 0, 0, 0, 0, 0, 944, 0,
0, 0, 0, 1674, 0, 0, 262, 1387, 534, 0, 0, 0, 0, 0, 232, 0,
0, 0, 0, 424, 0, 97, 203, 225, 0, 463, 0, 1068, 1811, 98, 0, 317,
1126, 0, 206, 0, 0, 0, 0, 0, 1716, 1188, 104, 1304, 1729, 0, 0, 0,
0, 0, 0, 779, 0, 0, 0, 1303, 0, 0, 873, 0, 713, 0, 0, 142,
0, 0, 0, 0, 0, 0, 0, 987, 0, 0, 1670, 588, 0, 0, 0, 0,
0, 0, 160, 0, 418, 831, 360, 0, 1372, 0, 0, 1766, 0, 0, 863, 0,
0, 0, 1033, 0, 0, 1102, 0, 927, 359, 78, 309, 0, 56, 0, 61, 0,
0, 0, 0, 1286, 0, 0, 0, 133, 168, 0, 0, 1669, 0, 135, 310, 55,
763, 0, 767, 1268, 1247, 0, 1677, 0, 800, 470, 0, 0, 0, 221, 0, 0,
0, 0, 0, 0, 0, 0, 323, 174, 1846, 206, 0, 518, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1649, 0, 0, 189, 0, 1454, 1850, 0, 310, 1145,
1500, 729, 0, 239, 1236, 0, 0, 0, 0, 16, 515, 1811, 0, 315, 0, 0,
0, 0, 171, 0, 0, 0, 824, 0, 0, 0, 0, 0, 379, 1010, 0, 0,
1346, 0, 1677, 1048, 0, 0, 244, 0, 0, 0, 1581, 1545, 1564, 821, 1774, 570,
0, 0, 0, 0, 764, 0, 0, 0, 0, 836, 0, 0, 0, 235, 0, 747,
0, 0, 0, 304, 0, 0, 1023, 0, 1199, 1303, 0, 0, 0, 1600, 492, 1571,
0, 531, 0, 1092, 1576, 0, 0, 906, 0, 743, 0, 0, 384, 291, 0, 6,
0, 950, 1422, 0, 0, 0, 105, 781, 0, 0, 69, 0, 0, 0, 881, 0,
0, 1547, 683, 0, 0, 1732, 1710, 0, 847, 0, 0, 0, 0, 527, 1405, 0,
0, 0, 0, 175, 0, 662, 0, 43, 0, 1258, 0, 0, 1267, 0, 0, 0,
0, 1600, 1663, 0, 0, 0, 149, 0, 773, 989, 0, 625, 0, 593, 1295, 0,
10, 0, 1600, 0, 0, 0, 0, 502, 764, 0, 847, 0, 0, 770, 1772, 0,
12, 0, 0, 251, 0, 0, 0, 0, 25, 0, 650, 0, 1439, 0, 660, 0,
1799, 0, 1325, 0, 965, 852, 660, 0, 905, 52, 1344, 634, 0, 178, 14, 363,
0, 835, 0, 0, 0, 677, 536, 0, 64, 0, 0, 0, 0, 0, 1191, 0,
0, 0, 0, 0, 0, 634, 1839, 0, 199, 874, 1789, 275, 0, 0, 0, 195,
0, 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, 630, 0, 145, 948, 215,
1876, 588, 1088, 0, 1059, 721, 0, 0, 825, 1114, 0, 0, 761, 0, 0, 0,
91, 0, 0, 104, 0, 262, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0,
10, 101, 163, 124, 0, 0, 1845, 1110, 1491, 454, 0, 0, 0, 186, 534, 0,
1214, 0, 0, 392, 873, 0, 0, 368, 1262, 0, 1313, 1569, 558, 22, 0, 0,
226, 123, 0, 0, 0, 418, 1723, 701, 962, 969, 1807, 529, 1474, 770, 0, 0,
0, 1109, 0, 0, 0, 0, 1816, 0, 0, 1577, 1110, 823, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 783, 905, 1580, 0, 1083, 0, 11, 686, 0, 956,
0, 1644, 330, 0, 0, 0, 0, 0, 0, 0, 0, 687, 0, 467, 79, 421,
0, 0, 490, 0, 797, 0, 126, 0, 824, 0, 0, 715, 0, 589, 0, 113,
0, 131, 1593, 0, 327, 593, 1603, 1152, 0, 1767, 892, 0, 147, 194, 0, 0,
0, 908, 636, 825, 1866, 1685, 459, 0, 132, 897, 1325, 0, 1873, 0, 141, 0,
839, 918, 888, 186, 0, 884, 666, 0, 0, 237, 0, 0, 0, 1778, 1113, 1357,
0, 775, 0, 151, 0, 0, 955, 200, 0, 746, 281, 468, 665, 0, 579, 1282,
879, 0, 1094, 895, 1309, 418, 74, 166, 0, 0, 0, 0, 443, 1779, 0, 0,
0, 0, 110, 451, 780, 969, 0, 0, 1632, 0, 0, 413, 0, 0, 724, 0,
1784, 0, 0, 373, 0, 106, 693, 894, 1053, 1874, 750, 0, 0, 0, 1145, 6,
281, 383, 0, 0, 7, 1342, 619, 1577, 343, 913, 420, 0, 0, 0, 0, 696,
506, 0, 0, 925, 900, 0, 860, 1265, 521, 609, 381, 0, 1474, 463, 697, 0,
0, 990, 0, 431, 0, 404, 0, 0, 0, 0, 0, 1654, 0, 594, 0, 0,
0, 1861, 268, 0, 0, 811, 0, 1706, 0, 0, 0, 0, 897, 635, 0, 70,
0, 0, 1195, 568, 587, 477, 189, 891, 776, 0, 0, 1537, 0, 0, 191, 1116,
969, 0, 148, 0, 944, 752, 0, 779, 0, 0, 1786, 14, 854, 1631, 0, 909,
1058, 92, 0, 0, 331, 0, 0, 829, 0, 0, 388, 992, 750, 1519, 0, 0,
0, 1578, 0, 241, 908, 0, 0, 137, 721, 0, 0, 947, 678, 0, 1766, 1352,
831, 0, 547, 1745, 699, 0, 1281, 0, 0, 894, 0, 574, 192, 1270, 0, 754,
0, 1819, 0, 0, 20, 871, 1746, 0, 886, 1308, 1628, 0, 794, 0, 63, 1413,
1826, 0, 0, 1740, 0, 1441, 0, 375, 1054, 436, 326, 1649, 0, 0, 0, 0,
0, 0, 831, 0, 263, 0, 716, 929, 921, 0, 1394, 0, 0, 475, 232, 1843,
515, 0, 0, 794, 0, 0, 1624, 0, 696, 981, 207, 870, 210, 1827, 0, 0,
0, 1218, 0, 539, 0, 77, 0, 600, 502, 1514, 840, 1413, 892, 910, 0, 0,
371, 0, 1865, 260, 72, 380, 0, 575, 150, 1723, 0, 931, 809, 1015, 0, 567,
1805, 0, 557, 337, 295, 125, 573, 0, 1430, 730, 144, 0, 0, 0, 0, 0,
1147, 0, 260, 996, 0, 0, 0, 0, 780, 0, 285, 908, 0, 0, 352, 0,
1203, 0, 0, 1324, 0, 0, 1736, 562, 0, 0, 1150, 1596, 252, 0, 1095, 0,
0, 1250, 591, 1854, 408, 1271, 0, 1835, 762, 0, 0, 0, 152, 315, 524, 1127,
328, 257, 0, 1751, 177, 0, 1841, 874, 887, 425, 0, 0, 220, 0, 819, 381,
0, 0, 0, 1694, 1697, 0, 992, 16, 244, 1768, 0, 0, 746, 0, 1512, 0,
23, 0, 0, 1021, 0, 993, 0, 923, 0, 0, 1799, 1772, 731, 1489, 914, 1233,
0, 1254, 442, 155, 0, 0, 552, 0, 0, 1224, 287, 876, 0, 0, 0, 677,
0, 357, 327, 483, 1495, 643, 1827, 453, 1491, 0, 456, 0, 924, 0, 1428, 0,
0, 460, 694, 0, 0, 1053, 136, 0, 0, 0, 34, 1732, 433, 118, 1577, 378,
1702, 351, 727, 1877, 628, 649, 1356, 129, 174, 1817, 253, 1264, 0, 626, 0, 1651,
125, 271, 0, 458, 0, 952, 0, 1853, 861, 0, 229, 1295, 0, 195, 0, 1869,
250, 1480, 0, 0, 792, 1324, 1147, 1854, 0, 0, 124, 384, 394, 0, 1539, 830,
28, 46, 990, 0, 949, 0, 0, 0, 356, 0, 695, 0, 143, 340, 1262, 0,
1, 0, 1810, 438, 0, 0, 1850, 0, 13, 0, 0, 244, 1710, 0, 0, 0,
0, 943, 0, 0, 790, 1812, 598, 0, 0, 1150, 71, 1375, 48, 978, 354, 0,
0, 184, 42, 0, 578, 0, 589, 0, 0, 707, 0, 689, 1676, 0, 565, 0,
723, 0, 0, 561, 0, 311, 82, 629, 0, 0, 35, 139, 274, 1228, 0, 780,
0, 0, 0, 145, 1026, 0, 242, 588, 0, 1388, 538, 302, 336, 544, 0, 0,
1429, 234, 477, 0, 1381, 403, 12, 113, 0, 20, 0, 0, 0, 1814, 1475, 22,
177, 1217, 180, 1857, 804, 0, 62, 503, 0, 834, 788, 0, 1619, 570, 349, 100,
272, 537, 236, 1222, 0, 470, 1514, 1213, 1288, 997, 938, 0, 768, 0, 0, 675,
757, 0, 1333, 571, 0, 181, 0, 1282, 1205, 0, 0, 1878, 998, 0, 983, 0,
365, 793, 26, 176, 104, 722, 160, 666, 0, 111, 0, 880, 0, 1321, 533, 0,
492, 0, 0, 21, 0, 574, 1179, 847, 832, 532, 281, 1178, 0, 633, 0, 1123,
0, 0, 1502, 1740, 1875, 209, 0, 541, 0, 774, 101, 0, 0, 0, 880, 732,
0, 441, 0, 0, 451, 595, 975, 0, 170, 0, 156, 0, 314, 191, 497, 0,
0, 1784, 1679, 1821, 283, 231, 629, 0, 892, 0, 890, 1555, 0, 50, 0, 3,
0, 0, 0, 1870, 268, 709, 0, 361, 0, 1388, 1325, 0, 102, 483, 779, 992,
937, 0, 0, 977, 0, 0, 689, 239, 0, 1812, 116, 357, 0, 967, 714, 1291,
540, 0, 297, 190, 719, 913, 564, 853, 948, 70, 0, 764, 0, 0, 1743, 264,
0, 544, 263, 1328, 0, 0, 514, 1686, 1239, 933, 468, 663, 445, 0, 0, 828,
0, 1337, 0, 84, 0, 1799, 0, 0, 1545, 693, 0, 1311, 613, 0, 457, 0,
0, 1825, 419, 564, 763, 0, 739, 0, 0, 47, 720, 497, 563, 0, 580, 1879,
775, 0, 409, 1849, 837, 1262, 0, 945, 0, 687, 300, 0, 265, 84, 9, 0,
0, 0, 1156, 611, 531, 0, 565, 0, 108, 0, 261, 1599, 1250, 1868, 153, 1809,
0, 0, 949, 0, 0, 912, 303, 0, 0, 475, 316, 1614, 0, 0, 345, 1660,
1768, 1863, 1844, 1880, 883, 1311, 1331, 1212, 978, 996, 746, 953, 1065, 0, 0, 1380,
263, 1322, 549, 376, 0, 1556, 627, 700, 262, 0, 0, 841, 97, 219, 1545, 113,
0, 1446, 0, 1656, 0, 280, 1030, 833, 960, 277, 1733, 1726, 1305, 0, 0, 167,
226, 0, 133, 0, 0, 1324, 657, 1860, 818, 1456, 826, 752, 0, 0, 0, 0,
0, 884, 293, 0, 0, 212, 0, 472, 680, 1348, 238, 0, 327, 646, 0, 0,
1649, 224, 98, 0, 310, 0, 494, 193, 1352, 431, 207, 0, 0, 385, 0, 1346,
0, 499, 503, 869, 0, 0, 1790, 1688, 289, 385, 279, 0, 18, 0, 1075, 0,
597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1309, 0, 0, 796, 0, 1754,
0, 1216, 0, 886, 0, 0, 641, 1779, 0, 870, 660, 1869, 667, 872, 1404, 1401,
2, 0, 1172, 498, 1348, 0, 0, 0, 1858, 520, 1579, 75, 0, 1709, 1261, 1860,
1646, 177, 0, 44, 1701, 0, 948, 0, 0, 328, 0, 172, 1816, 505, 0, 0,
0, 0, 402, 0, 0, 0, 755, 1642, 1810, 224, 1834, 738, 0, 0, 0, 1716,
1565, 0, 1677, 485, 1766, 1771, 0, 762, 994, 1756, 0, 0, 0, 389, 0, 83,
127, 905, 0, 156, 0, 823, 866, 902, 481, 1807, 1885, 0, 74, 520, 320, 0};
0, 0, 0, 0, 0, 0, 0, 0, 0, 1350, 0, 980, 715, 0, 0, 600,
0, 0, 0, 694, 0, 0, 1151, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
376, 1549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 349, 161,
0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 1701, 1243, 0, 212, 0,
0, 0, 0, 0, 853, 0, 649, 799, 0, 0, 0, 1218, 0, 0, 0, 0,
0, 579, 0, 0, 0, 1043, 0, 0, 645, 0, 0, 323, 0, 1451, 0, 1428,
886, 0, 0, 0, 1801, 475, 0, 0, 0, 533, 0, 0, 0, 0, 92, 1218,
299, 0, 0, 0, 0, 0, 241, 120, 129, 163, 0, 0, 0, 0, 974, 0,
0, 0, 0, 1559, 793, 1295, 0, 52, 0, 0, 0, 0, 115, 0, 0, 1804,
207, 43, 0, 874, 1672, 173, 145, 1066, 1320, 88, 0, 1548, 0, 445, 0, 0,
213, 0, 1652, 1808, 0, 837, 0, 0, 144, 367, 1, 0, 0, 0, 1213, 765,
0, 0, 256, 0, 0, 1070, 0, 592, 0, 0, 0, 979, 1009, 0, 315, 0,
138, 1056, 330, 987, 0, 0, 0, 1535, 0, 161, 0, 0, 0, 0, 736, 0,
1256, 0, 1710, 0, 1805, 0, 922, 1811, 1183, 0, 0, 524, 0, 0, 1357, 0,
1011, 0, 1077, 0, 0, 0, 0, 0, 883, 850, 1506, 0, 47, 0, 0, 0,
0, 0, 1436, 1000, 0, 959, 0, 367, 895, 0, 0, 1508, 998, 0, 0, 0,
0, 1571, 1413, 0, 1010, 0, 835, 0, 0, 0, 0, 1418, 0, 1693, 460, 0,
0, 1333, 1786, 0, 0, 0, 0, 0, 789, 328, 0, 0, 0, 1259, 1299, 571,
0, 0, 1682, 923, 809, 0, 784, 1249, 0, 982, 0, 118, 972, 330, 0, 234,
0, 0, 820, 461, 1266, 0, 0, 1128, 453, 415, 1657, 658, 1560, 0, 130, 698,
1522, 911, 553, 0, 782, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1019, 526, 676, 0, 335, 1513, 0, 457, 722, 0, 1645, 0, 1243,
0, 81, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
0, 0, 160, 654, 0, 142, 0, 364, 0, 92, 1089, 827, 1408, 1477, 0, 0,
527, 0, 0, 0, 164, 0, 0, 1342, 0, 837, 1549, 0, 0, 0, 609, 0,
0, 232, 0, 0, 876, 0, 1427, 233, 547, 417, 276, 0, 0, 0, 0, 0,
777, 1483, 0, 0, 0, 0, 0, 1307, 472, 1394, 1494, 660, 662, 940, 0, 0,
496, 0, 0, 887, 1084, 0, 0, 1033, 80, 749, 0, 1109, 744, 631, 1786, 0,
1765, 0, 0, 0, 788, 0, 0, 559, 0, 752, 473, 0, 886, 1111, 0, 0,
1521, 0, 0, 825, 0, 0, 0, 0, 324, 0, 243, 1623, 0, 565, 0, 0,
0, 80, 0, 0, 674, 0, 0, 1451, 0, 582, 0, 0, 520, 814, 0, 530,
0, 878, 572, 0, 0, 304, 0, 1013, 0, 1426, 326, 1371, 818, 25, 0, 8,
0, 0, 494, 1656, 436, 0, 0, 1270, 0, 207, 0, 669, 0, 0, 8, 1759,
994, 1510, 0, 1038, 373, 0, 1105, 0, 1229, 649, 520, 0, 767, 1203, 1407, 206,
211, 268, 0, 0, 96, 0, 1410, 0, 0, 0, 0, 1597, 0, 0, 0, 476,
0, 0, 0, 0, 0, 922, 218, 36, 0, 887, 0, 0, 453, 236, 0, 1508,
0, 0, 0, 0, 175, 0, 467, 540, 685, 620, 1472, 0, 1336, 0, 1796, 0,
0, 1151, 0, 567, 776, 0, 0, 0, 1607, 1055, 203, 0, 1427, 901, 0, 174,
710, 147, 866, 1508, 0, 1342, 86, 1040, 0, 1583, 489, 530, 0, 0, 689, 105,
0, 825, 679, 1736, 1387, 1721, 0, 0, 0, 367, 875, 1446, 12, 0, 0, 1082,
0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 558, 0, 0, 1160, 216, 892,
104, 0, 0, 0, 105, 765, 18, 0, 0, 0, 0, 525, 0, 0, 818, 0,
0, 932, 0, 269, 0, 251, 542, 0, 0, 879, 0, 0, 0, 0, 0, 0,
0, 931, 0, 0, 0, 0, 759, 228, 0, 437, 1502, 1412, 0, 1283, 893, 0,
0, 0, 1290, 1208, 0, 0, 769, 0, 917, 336, 475, 807, 12, 0, 130, 0,
0, 1703, 0, 0, 139, 654, 0, 0, 0, 251, 298, 0, 1772, 0, 692, 0,
661, 0, 0, 376, 1388, 238, 1628, 83, 0, 0, 619, 791, 651, 0, 783, 644,
831, 0, 547, 1235, 835, 929, 0, 1762, 1803, 0, 1118, 1365, 658, 26, 562, 0,
313, 881, 977, 0, 0, 295, 845, 887, 958, 0, 675, 813, 0, 1546, 1186, 0,
0, 1816, 0, 1010, 633, 563, 697, 29, 1002, 1806, 1221, 0, 1014, 621, 0, 427,
0, 0, 463, 1271, 0, 252, 556, 212, 255, 589, 551, 442, 1112, 0, 0, 0,
25, 591, 240, 0, 0, 881, 1145, 0, 0, 190, 0, 0, 0, 0, 0, 1161,
1728, 1328, 344, 0, 97, 1386, 23, 144, 0, 902, 575, 407, 1488, 0, 723, 0,
0, 0, 810, 0, 0, 0, 1515, 974, 0, 0, 0, 1294, 983, 370, 1544, 1328,
114, 898, 1576, 0, 1393, 1542, 1406, 341, 0, 0, 0, 157, 0, 172, 175, 685,
1448, 0, 0, 1009, 916, 302, 334, 1378, 0, 274, 0, 0, 728, 783, 59, 65,
0, 476, 32, 0, 0, 0, 0, 1288, 1249, 0, 0, 1474, 792, 0, 1696, 0,
360, 0, 0, 0, 1730, 0, 0, 0, 1237, 181, 1513, 1783, 43, 0, 0, 1768,
0, 167, 6, 1352, 0, 908, 229, 967, 0, 0, 0, 0, 0, 0, 297, 0,
0, 1167, 1097, 832, 0, 0, 1359, 1553, 653, 436, 0, 0, 1271, 1002, 0, 1114,
0, 0, 0, 0, 0, 1771, 0, 0, 269, 700, 0, 0, 0, 576, 1134, 726,
832, 0, 925, 421, 438, 308, 344, 0, 539, 0, 0, 622, 522, 1146, 0, 199,
1434, 0, 558, 481, 938, 1662, 706, 365, 0, 0, 0, 1774, 545, 0, 0, 0,
611, 0, 0, 0, 0, 0, 518, 0, 1183, 836, 0, 1580, 101, 1494, 1319, 865,
127, 767, 612, 618, 1311, 1034, 0, 7, 1347, 467, 712, 433, 185, 0, 1432, 0,
1627, 861, 0, 1008, 0, 1608, 947, 462, 0, 848, 0, 0, 1765, 0, 854, 533,
0, 721, 578, 0, 175, 1276, 839, 1753, 340, 0, 151, 269, 1253, 1630, 67, 0,
0, 1773, 88, 0, 1271, 1116, 62, 0, 0, 794, 1142, 898, 0, 0, 237, 194,
0, 843, 362, 0, 0, 594, 1623, 0, 118, 1617, 438, 221, 0, 0, 371, 608,
832, 1810, 466, 867, 1722, 0, 0, 0, 1441, 804, 0, 705, 357, 455, 348, 512,
1730, 0, 0, 534, 0, 691, 0, 1493, 0, 1150, 209, 1435, 1007, 805, 851, 12,
751, 0, 0, 0, 826, 367, 1008, 0, 739, 0, 632, 956, 339, 523, 98, 1716,
1555, 1324, 288, 685, 0, 1024, 179, 0, 0, 0, 0, 944, 0, 380, 0, 1503,
910, 6, 0, 0, 0, 1407, 1535, 0, 813, 0, 635, 0, 580, 0, 560, 0,
557, 1737, 1469, 0, 428, 1220, 499, 0, 895, 602, 1562, 315, 223, 0, 0, 475,
1072, 1723, 670, 25, 1692, 1701, 1272, 0, 0, 342, 917, 0, 216, 834, 1394, 0,
1742, 1639, 0, 534, 0, 1681, 0, 874, 0, 228, 301, 0, 1407, 872, 0, 987,
0, 680, 1679, 0, 1290, 613, 461, 147, 589, 146, 598, 1556, 0, 0, 1556, 313,
267, 0, 62, 1142, 0, 0, 159, 55, 1115, 0, 0, 1522, 1195, 1084, 0, 333,
593, 91, 0, 1066, 270, 627, 203, 1142, 1174, 271, 127, 164, 1402, 0, 0, 37,
1218, 361, 338, 1218, 712, 0, 349, 1015, 1515, 1543, 1531, 1563, 763, 281, 0, 235,
361, 277, 0, 1007, 0, 0, 568, 950, 910, 981, 1764, 0, 327, 0, 78, 0,
0, 982, 36, 0, 0, 837, 1078, 901, 1551, 1485, 113, 0, 1591, 0, 0, 702,
0, 12, 310, 1507, 7, 0, 1332, 272, 0, 1358, 1632, 0, 1712, 658, 0, 1493,
305, 0, 317, 1173, 716, 1654, 0, 402, 250, 0, 0, 796, 0, 868, 1143, 1782,
770, 0, 216, 1237, 640, 0, 321, 0, 609, 0, 0, 0, 0, 1256, 0, 0,
0, 0, 0, 767, 857, 1760, 1764, 470, 961, 0, 430, 1409, 652, 1702, 925, 501,
0, 0, 562, 0, 1322, 0, 0, 1413, 8, 0, 0, 1653, 536, 257, 16, 0,
0, 1061, 1787, 0, 392, 1345, 0, 0, 1527, 693, 844, 708, 0, 0, 0, 0,
0, 237, 290, 0, 0, 0, 0, 165, 281, 1419, 1460, 627, 1776, 1150, 38, 0,
0, 0, 568, 810, 131, 38, 399, 0, 0, 0, 0, 869, 322, 145, 0, 566,
83, 0, 0, 1303, 1206, 1159, 1395, 570, 810, 0, 0, 195, 389, 244, 0, 0,
447, 0, 1741, 1136, 76, 0, 586, 1049, 0, 781, 0, 742, 1746, 148, 0, 0,
669, 0, 0, 0, 936, 31, 0, 1288, 1442, 45, 598, 828, 1186, 215, 1230, 0,
688, 1273, 54, 0, 0, 441, 1652, 892, 0, 1648, 434, 1032, 1010, 16, 1593, 0,
0, 0, 1599, 784, 1714, 0, 0, 0, 123, 1431, 0, 508, 0, 960, 0, 0,
1561, 623, 0, 0, 670, 1292, 80, 672, 783, 11, 318, 547, 678, 0, 863, 1248,
254, 786, 0, 322, 326, 459, 900, 0, 95, 193, 1720, 381, 1587, 0, 0, 0,
266, 179, 0, 0, 258, 642, 411, 1067, 0, 0, 961, 0, 0, 1281, 1355, 426,
583, 0, 0, 112, 0, 549, 1388, 303, 390, 85, 1484, 1771, 0, 133, 0, 433,
1352, 376, 1260, 677, 0, 1630, 0, 555, 1603, 0, 661, 1528, 0, 1195, 288, 307,
150, 340, 1428, 410, 184, 0, 0, 820, 1528, 93, 280, 0, 78, 978, 0, 1631,
0, 1036, 681, 0, 1667, 109, 0, 883, 0, 101, 862, 0, 771, 110, 1290, 928,
75, 0, 696, 1232, 875, 0, 1414, 324, 237, 0, 379, 1151, 1724, 0, 76, 0,
70, 275, 39, 1058, 120, 746, 0, 1003, 83, 422, 875, 0, 616, 32, 0, 0,
0, 0, 753, 655, 0, 811, 0, 0, 185, 107, 0, 897, 0, 850, 976, 809,
0, 0, 0, 0, 1687, 511, 0, 736, 560, 1470, 1027, 1722, 992, 498, 0, 1370,
659, 0, 841, 648, 537, 561, 823, 666, 485, 926, 0, 754, 580, 728, 0, 0,
899, 0, 835, 0, 0, 771, 0, 6, 0, 664, 943, 0, 882, 58, 0, 1364,
752, 0, 0, 706, 0, 1014, 0, 0, 0, 697, 0, 0, 715, 358, 999, 0,
1106, 297, 0, 0, 0, 890, 1657, 977, 876, 407, 1249, 319, 877, 261, 0, 0,
0, 1341, 1249, 348, 1154, 0, 263, 55, 0, 0, 681, 0, 1668, 1385, 831, 1210,
356, 455, 1643, 674, 1378, 148, 0, 0, 0};
int MangledHashG(const char *key, const int *T)
{
......@@ -159,7 +155,7 @@ int MangledHashG(const char *key, const int *T)
for (int i = 0; key[i] != '\0'; i++)
{
sum += T[i] * key[i];
sum %= 1888;
sum %= 1817;
}
return mangledkG[sum];
}
......@@ -169,27 +165,30 @@ int MangledPerfectHash(const char *key)
if (strlen(key) > 37)
return 0;
return (MangledHashG(key, mangledkT1) + MangledHashG(key, mangledkT2)) % 1888;
return (MangledHashG(key, mangledkT1) + MangledHashG(key, mangledkT2)) % 1817;
}
constexpr int unmangledkT1[] = {125, 134, 144, 142, 7, 31, 31, 182, 204, 204, 167, 65, 77,
132, 129, 162, 50, 103, 127, 240, 136, 183, 181, 82, 65, 136};
constexpr int unmangledkT2[] = {229, 104, 57, 237, 84, 219, 208, 217, 243, 216, 172, 34, 112,
93, 122, 69, 89, 42, 13, 36, 33, 103, 48, 226, 43, 99};
constexpr int unmangledkT1[] = {15, 233, 194, 259, 187, 65, 109, 198, 165, 206, 74, 164, 172,
198, 48, 141, 242, 152, 35, 96, 14, 179, 6, 42, 13, 35};
constexpr int unmangledkT2[] = {122, 165, 120, 12, 62, 286, 77, 258, 188, 149, 38, 244, 167,
106, 184, 260, 202, 267, 80, 149, 176, 79, 68, 194, 277, 268};
constexpr int unmangledkG[] = {
0, 65, 0, 0, 0, 0, 0, 0, 183, 207, 0, 83, 0, 68, 0, 0, 0, 0, 0,
215, 0, 57, 0, 0, 0, 0, 96, 0, 0, 206, 16, 242, 0, 191, 0, 0, 12, 60,
195, 189, 0, 0, 163, 0, 0, 6, 0, 75, 0, 0, 177, 67, 0, 203, 0, 0, 0,
224, 28, 241, 8, 238, 25, 160, 94, 3, 34, 0, 0, 36, 22, 0, 70, 0, 75, 0,
210, 0, 87, 0, 189, 86, 0, 0, 0, 0, 0, 0, 0, 205, 0, 60, 0, 0, 0,
196, 158, 219, 90, 71, 0, 0, 139, 82, 147, 90, 0, 0, 141, 10, 126, 57, 91, 161,
80, 18, 40, 78, 203, 106, 0, 81, 225, 77, 190, 225, 76, 0, 223, 0, 94, 41, 0,
0, 175, 38, 0, 0, 174, 77, 0, 119, 150, 69, 14, 98, 88, 12, 0, 0, 144, 49,
0, 181, 123, 0, 3, 33, 0, 0, 141, 108, 30, 201, 7, 214, 176, 94, 231, 0, 128,
160, 0, 157, 142, 52, 0, 30, 0, 43, 10, 26, 81, 29, 214, 201, 220, 142, 0, 176,
0, 0, 53, 0, 178, 23, 0, 99, 0, 142, 43, 39, 140, 175, 19, 31, 160, 66, 103,
105, 0, 157, 66, 99, 0, 91, 124, 83, 0, 44, 154, 55, 102, 0, 238, 92, 0, 0,
82, 131, 114, 0, 0, 79, 125, 0, 68, 0, 117, 146, 57, 0, 117, 53, 118, 35};
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
269, 0, 61, 0, 0, 0, 0, 0, 0, 0, 14, 7, 0, 0, 0, 0, 0, 0,
0, 0, 49, 0, 0, 20, 0, 104, 197, 0, 0, 125, 0, 0, 33, 95, 144, 0,
127, 7, 0, 194, 43, 114, 0, 0, 111, 216, 0, 101, 0, 94, 40, 156, 0, 129,
15, 0, 0, 0, 0, 134, 45, 0, 0, 17, 261, 53, 85, 77, 0, 0, 265, 37,
18, 0, 0, 0, 204, 171, 13, 242, 0, 0, 249, 0, 53, 67, 0, 215, 237, 105,
0, 255, 0, 0, 45, 0, 236, 0, 127, 0, 222, 133, 281, 63, 227, 19, 0, 0,
0, 0, 0, 129, 15, 75, 248, 0, 0, 0, 0, 0, 0, 95, 0, 0, 44, 0,
126, 142, 18, 0, 9, 137, 21, 133, 118, 284, 105, 0, 89, 261, 10, 4, 0, 6,
65, 236, 81, 32, 75, 0, 0, 121, 0, 109, 145, 0, 0, 0, 0, 148, 0, 34,
0, 0, 245, 58, 123, 31, 13, 0, 0, 94, 124, 126, 0, 180, 0, 51, 280, 241,
0, 106, 0, 71, 125, 132, 0, 206, 192, 59, 24, 0, 0, 232, 0, 202, 8, 36,
0, 119, 143, 255, 0, 0, 212, 57, 0, 0, 0, 109, 243, 47, 0, 145, 0, 90,
0, 49, 0, 70, 228, 262, 26, 97, 27, 0, 0, 122, 206, 115, 0, 173, 0, 111,
0, 88, 38, 214, 139, 13, 0, 61, 0, 62, 96, 0, 43, 46, 243, 0, 174, 261,
22, 0, 93, 0, 43, 74, 117, 80, 193, 43, 26, 0, 266, 0, 19, 156, 0, 39};
int UnmangledHashG(const char *key, const int *T)
{
......@@ -198,7 +197,7 @@ int UnmangledHashG(const char *key, const int *T)
for (int i = 0; key[i] != '\0'; i++)
{
sum += T[i] * key[i];
sum %= 246;
sum %= 288;
}
return unmangledkG[sum];
}
......@@ -208,7 +207,7 @@ int UnmangledPerfectHash(const char *key)
if (strlen(key) > 26)
return 0;
return (UnmangledHashG(key, unmangledkT1) + UnmangledHashG(key, unmangledkT2)) % 246;
return (UnmangledHashG(key, unmangledkT1) + UnmangledHashG(key, unmangledkT2)) % 288;
}
} // namespace
......
......@@ -65,8 +65,8 @@ constexpr int mangledkG[] = {
0, 3233, 0, 0, 0, 0, 0, 0, 0, 322, 393, 4384, 1087, 520, 0, 1156,
1940, 0, 0, 0, 662, 866, 3748, 0, 958, 1862, 0, 409, 0, 0, 0, 1528,
0, 0, 0, 0, 0, 0, 0, 3561, 0, 210, 0, 604, 3750, 869, 0, 859,
786, 0, 0, 3852, 0, 0, 0, 0, 667, 4364, 860, 1783, 0, 0, 0, 0,
0, 209, 0, 3492, 4421, 0, 0, 0, 0, 1394, 0, 0, 0, 1002, 0, 0,
786, 0, 0, 3852, 0, 0, 0, 0, 667, 4364, 1550, 1783, 0, 0, 0, 0,
0, 209, 0, 4182, 4421, 0, 0, 0, 0, 1394, 0, 0, 0, 1002, 0, 0,
0, 0, 0, 0, 1081, 0, 0, 0, 0, 0, 0, 3533, 0, 0, 0, 0,
507, 2504, 0, 0, 0, 0, 0, 0, 0, 1709, 806, 1351, 209, 0, 813, 0,
0, 0, 0, 0, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 4319,
......@@ -100,11 +100,11 @@ constexpr int mangledkG[] = {
1186, 0, 0, 3899, 1893, 0, 0, 0, 1498, 591, 2018, 551, 2649, 911, 0, 2537,
0, 0, 0, 3434, 0, 0, 0, 0, 2339, 0, 0, 461, 0, 0, 0, 0,
0, 4013, 0, 3289, 647, 0, 0, 0, 466, 230, 0, 1544, 0, 1576, 0, 0,
0, 3249, 0, 0, 699, 0, 0, 4205, 0, 0, 0, 0, 0, 653, 0, 2703,
0, 3249, 0, 0, 699, 0, 0, 3515, 0, 0, 0, 0, 0, 653, 0, 2703,
0, 0, 0, 2215, 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 1307, 663,
0, 178, 0, 0, 0, 0, 2717, 927, 358, 0, 4142, 1093, 3580, 0, 467, 0,
0, 0, 0, 933, 590, 85, 3482, 1580, 3629, 0, 0, 0, 0, 0, 0, 3354,
0, 0, 165, 0, 0, 1642, 1429, 0, 0, 4427, 0, 0, 0, 0, 328, 0,
0, 0, 165, 0, 0, 3413, 1429, 0, 0, 4427, 0, 0, 0, 0, 328, 0,
0, 0, 0, 0, 857, 0, 0, 751, 0, 0, 4389, 446, 0, 0, 1645, 0,
0, 0, 0, 0, 0, 0, 3076, 0, 0, 1571, 472, 1588, 0, 0, 0, 17,
0, 653, 816, 3016, 400, 0, 0, 0, 0, 0, 0, 4005, 0, 0, 1981, 2016,
......@@ -157,7 +157,7 @@ constexpr int mangledkG[] = {
0, 0, 881, 2691, 0, 4223, 0, 845, 0, 0, 2051, 0, 0, 0, 0, 4292,
0, 1618, 125, 4436, 1169, 491, 0, 0, 3102, 0, 0, 1043, 1499, 1290, 0, 0,
0, 278, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 2903, 0, 0, 0,
0, 683, 471, 0, 742, 2315, 0, 0, 1851, 1386, 1159, 1494, 1859, 0, 3499, 4049,
0, 683, 471, 0, 742, 3005, 0, 0, 1851, 1386, 1159, 1494, 1859, 0, 3499, 4049,
581, 0, 0, 227, 1737, 0, 0, 0, 354, 0, 3818, 0, 4093, 0, 0, 1895,
0, 1866, 1629, 0, 696, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 3866,
753, 0, 0, 1902, 0, 0, 404, 830, 0, 1268, 0, 0, 0, 0, 2689, 0,
......@@ -171,7 +171,7 @@ constexpr int mangledkG[] = {
3232, 1828, 0, 334, 3195, 0, 13, 0, 779, 0, 1004, 1147, 0, 513, 3955, 0,
0, 154, 567, 0, 0, 0, 1905, 0, 0, 949, 1022, 0, 2350, 1139, 0, 870,
218, 291, 0, 1859, 3041, 708, 1500, 4198, 2385, 0, 0, 2040, 0, 276, 708, 3508,
0, 0, 3581, 0, 0, 183, 219, 1024, 0, 4272, 3737, 0, 2220, 0, 1223, 1984,
0, 0, 3047, 0, 0, 183, 219, 1024, 0, 4272, 3737, 0, 2220, 0, 1223, 1984,
4319, 374, 0, 0, 0, 0, 0, 944, 2350, 496, 0, 1757, 0, 0, 0, 425,
2723, 0, 0, 0, 771, 0, 0, 1184, 960, 3976, 0, 0, 0, 0, 0, 0,
935, 0, 1339, 2161, 1198, 0, 0, 0, 0, 109, 850, 0, 0, 0, 0, 541,
......@@ -191,7 +191,7 @@ constexpr int mangledkG[] = {
0, 3835, 0, 1564, 0, 0, 1058, 2305, 3303, 1938, 0, 923, 378, 3177, 0, 0,
1468, 0, 286, 0, 3064, 1370, 0, 675, 1708, 0, 0, 1203, 0, 0, 0, 0,
376, 0, 346, 983, 2009, 0, 3790, 27, 247, 821, 0, 836, 1905, 575, 561, 1806,
0, 107, 0, 932, 0, 0, 1154, 87, 0, 2077, 0, 0, 838, 731, 289, 0,
0, 107, 0, 1466, 0, 0, 1154, 87, 0, 2077, 0, 0, 838, 731, 289, 0,
0, 0, 2114, 3726, 1066, 2248, 1546, 1000, 0, 0, 550, 3065, 1987, 0, 0, 0,
0, 202, 0, 1788, 0, 981, 0, 3628, 881, 3968, 1358, 639, 4323, 0, 0, 0,
613, 751, 0, 0, 3915, 326, 4034, 452, 1688, 4105, 4054, 0, 0, 795, 755, 3427,
......@@ -226,12 +226,12 @@ constexpr int mangledkG[] = {
0, 0, 4271, 0, 28, 0, 581, 1070, 1434, 0, 268, 0, 0, 408, 3320, 64,
1411, 730, 1394, 0, 0, 2114, 1306, 0, 0, 236, 0, 0, 3602, 4029, 0, 0,
716, 0, 2457, 0, 3916, 4440, 2554, 3643, 0, 628, 1356, 1373, 1008, 0, 0, 3023,
1346, 230, 0, 0, 1991, 430, 100, 0, 0, 0, 0, 1766, 0, 0, 4436, 0,
1346, 230, 0, 0, 1991, 430, 100, 0, 0, 0, 0, 1766, 0, 0, 3902, 0,
236, 3880, 0, 1921, 0, 2200, 0, 4411, 0, 1006, 3899, 0, 0, 282, 0, 1362,
1017, 0, 0, 1191, 4441, 0, 0, 1279, 741, 2104, 1910, 0, 0, 394, 4403, 0,
1017, 0, 0, 1191, 4441, 0, 0, 1279, 741, 2104, 1910, 0, 0, 394, 1719, 0,
969, 0, 0, 0, 0, 4028, 0, 4148, 94, 3451, 131, 2735, 1448, 0, 228, 3911,
0, 0, 713, 0, 0, 2154, 314, 382, 3165, 157, 1849, 0, 3496, 3767, 179, 0,
0, 0, 912, 0, 0, 0, 596, 1766, 2680, 4277, 591, 0, 4043, 3673, 3883, 0,
0, 0, 912, 0, 0, 0, 3280, 1766, 2680, 4277, 591, 0, 4043, 3673, 3883, 0,
1562, 421, 1388, 4120, 4153, 4200, 0, 3910, 95, 3477, 242, 0, 0, 256, 1298, 459,
0, 0, 0, 0, 0, 4255, 0, 0, 440, 0, 0, 1967, 735, 2878, 0, 163,
0, 2812, 3015, 2070, 0, 0, 0, 0, 294, 1999, 1933, 4131, 1509, 2149, 0, 0,
......@@ -295,7 +295,7 @@ constexpr int mangledkG[] = {
2102, 0, 1144, 2340, 364, 0, 0, 0, 39, 0, 2062, 282, 0, 744, 4329, 0,
98, 1996, 0, 2710, 1761, 0, 1424, 3704, 0, 0, 0, 0, 1356, 4382, 3326, 0,
0, 3027, 499, 2275, 0, 3230, 0, 922, 0, 0, 4362, 4025, 869, 0, 0, 0,
1528, 0, 222, 915, 0, 0, 4270, 1210, 0, 1802, 0, 0, 2894, 1825, 873, 1052,
1528, 0, 2906, 915, 0, 0, 4270, 1210, 0, 1802, 0, 0, 2894, 1825, 873, 1052,
1322, 1833, 360, 0, 1586, 1732, 0, 1071, 0, 0, 0, 942, 1379, 0, 3870, 4429,
3155, 1312, 2013, 0, 4231, 1316, 335, 637, 2071, 19, 4384, 0, 832, 0, 3, 0,
0, 0, 1650, 4307, 0, 1869, 0, 0, 4114, 1016, 317, 0, 0, 1842, 0, 1377,
......@@ -338,27 +338,27 @@ constexpr int unmangledkT1[] = {152, 85, 131, 46, 141, 140, 355, 227, 157, 95,
constexpr int unmangledkT2[] = {16, 254, 132, 341, 351, 23, 144, 38, 280, 327, 291, 81, 145,
376, 164, 258, 319, 373, 246, 29, 53, 104, 148, 299, 8, 288};
constexpr int unmangledkG[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 207, 0, 0, 0, 0, 156,
107, 0, 304, 0, 0, 10, 0, 0, 0, 0, 0, 195, 0, 252, 0, 0, 0, 82, 0,
0, 0, 178, 24, 0, 0, 0, 0, 0, 54, 318, 0, 287, 265, 10, 0, 0, 342, 0,
0, 0, 123, 0, 0, 367, 136, 363, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
214, 0, 0, 152, 0, 25, 0, 135, 0, 168, 0, 0, 0, 357, 92, 0, 263, 374, 0,
91, 0, 103, 0, 157, 153, 0, 0, 0, 0, 0, 287, 32, 0, 139, 0, 104, 367, 295,
0, 66, 0, 369, 122, 149, 0, 0, 0, 0, 0, 349, 149, 191, 282, 172, 0, 374, 0,
0, 0, 147, 0, 357, 274, 0, 116, 50, 0, 141, 11, 0, 0, 367, 50, 224, 54, 0,
0, 0, 172, 84, 129, 0, 253, 0, 0, 84, 0, 117, 0, 0, 0, 0, 119, 270, 295,
23, 70, 180, 59, 217, 284, 72, 0, 0, 0, 63, 0, 237, 116, 71, 173, 4, 0, 370,
0, 0, 0, 266, 330, 90, 132, 81, 40, 0, 378, 190, 23, 346, 0, 0, 174, 0, 120,
0, 0, 0, 0, 0, 0, 12, 297, 249, 98, 0, 32, 0, 53, 81, 247, 150, 387, 89,
21, 0, 183, 341, 24, 362, 0, 14, 144, 112, 26, 0, 40, 28, 44, 0, 0, 165, 182,
0, 0, 19, 0, 0, 0, 0, 236, 209, 306, 77, 338, 196, 14, 0, 200, 251, 35, 191,
22, 194, 0, 123, 64, 166, 0, 0, 136, 0, 0, 201, 0, 158, 0, 255, 163, 342, 73,
0, 270, 0, 0, 0, 102, 0, 0, 181, 0, 27, 363, 0, 87, 20, 0, 385, 384, 33,
0, 0, 129, 0, 213, 231, 74, 151, 8, 16, 244, 0, 0, 55, 5, 72, 189, 186, 0,
17, 115, 380, 53, 351, 147, 0, 286, 0, 124, 0, 43, 0, 0, 0, 304, 240, 0, 132,
0, 69, 185, 99, 0, 34, 70, 378, 171, 104, 208, 280, 119, 0, 261, 174, 0, 0, 167,
6, 30, 0, 253, 215, 204, 0, 0, 154, 0, 67, 367, 122, 2, 0, 140, 193, 0, 0,
284, 326, 0, 0, 0, 0, 0, 99};
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 207, 0, 0, 0, 0, 155,
106, 0, 305, 0, 0, 8, 0, 0, 0, 0, 0, 195, 0, 252, 0, 0, 0, 84, 0,
0, 0, 179, 24, 0, 0, 0, 0, 0, 54, 317, 0, 288, 264, 8, 0, 0, 342, 0,
0, 0, 122, 0, 0, 365, 135, 361, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
212, 0, 0, 152, 0, 25, 0, 134, 0, 167, 0, 0, 0, 355, 92, 0, 265, 374, 0,
92, 0, 102, 0, 158, 152, 0, 0, 0, 0, 0, 288, 32, 0, 139, 0, 103, 365, 296,
0, 66, 0, 370, 122, 149, 0, 0, 0, 0, 0, 349, 148, 191, 281, 172, 0, 374, 0,
0, 0, 148, 0, 357, 272, 0, 115, 50, 0, 142, 11, 0, 0, 367, 49, 223, 54, 0,
0, 0, 171, 84, 130, 0, 252, 0, 0, 85, 0, 116, 0, 0, 0, 0, 119, 270, 296,
23, 71, 180, 59, 216, 284, 73, 0, 0, 0, 63, 0, 236, 115, 71, 171, 4, 0, 369,
0, 0, 0, 267, 330, 90, 133, 81, 39, 0, 378, 190, 23, 346, 0, 0, 176, 0, 119,
0, 0, 0, 0, 0, 0, 12, 298, 248, 97, 0, 34, 0, 53, 80, 247, 150, 387, 88,
21, 0, 183, 341, 23, 363, 0, 14, 143, 111, 26, 0, 40, 28, 46, 0, 0, 165, 182,
0, 0, 19, 0, 0, 0, 0, 235, 209, 305, 74, 339, 198, 14, 0, 200, 250, 35, 190,
22, 194, 0, 122, 66, 167, 0, 0, 135, 0, 0, 201, 0, 157, 0, 255, 163, 339, 73,
0, 271, 0, 0, 0, 101, 0, 0, 182, 0, 27, 364, 0, 87, 20, 0, 385, 383, 33,
0, 0, 128, 0, 213, 232, 74, 150, 8, 16, 244, 0, 0, 55, 5, 72, 189, 186, 0,
17, 116, 378, 55, 352, 148, 0, 285, 0, 123, 0, 43, 0, 0, 0, 305, 240, 0, 131,
0, 69, 185, 174, 0, 34, 70, 378, 170, 104, 208, 281, 118, 0, 260, 173, 0, 0, 166,
6, 30, 0, 254, 214, 204, 0, 0, 153, 0, 67, 368, 121, 2, 0, 139, 193, 0, 0,
285, 325, 0, 0, 0, 0, 0, 96};
int UnmangledHashG(const char *key, const int *T)
{
......
......@@ -21,67 +21,72 @@ namespace BuiltInGroup
bool isTextureOffsetNoBias(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3098 && id <= 3167;
return id >= 3110 && id <= 3179;
}
bool isTextureOffsetBias(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3168 && id <= 3187;
return id >= 3180 && id <= 3199;
}
bool isTextureGatherOffsetsComp(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3225 && id <= 3237;
return id >= 3237 && id <= 3249;
}
bool isTextureGatherOffsetsNoComp(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3238 && id <= 3253;
return id >= 3250 && id <= 3265;
}
bool isTextureGatherOffsets(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3225 && id <= 3253;
return id >= 3237 && id <= 3265;
}
bool isTextureGatherOffsetComp(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3254 && id <= 3259;
return id >= 3266 && id <= 3271;
}
bool isTextureGatherOffsetNoComp(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3260 && id <= 3267;
return id >= 3272 && id <= 3279;
}
bool isTextureGatherOffset(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3254 && id <= 3267;
return id >= 3266 && id <= 3279;
}
bool isTextureGather(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3201 && id <= 3267;
return id >= 3213 && id <= 3279;
}
bool isInterpolationFS(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3292 && id <= 3315;
}
bool isAtomicMemory(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3284 && id <= 3301;
return id >= 3320 && id <= 3337;
}
bool isImageLoad(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3332 && id <= 3346;
return id >= 3368 && id <= 3382;
}
bool isImageStore(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3347 && id <= 3361;
return id >= 3383 && id <= 3397;
}
bool isImage(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 3302 && id <= 3361;
return id >= 3338 && id <= 3397;
}
} // namespace BuiltInGroup
......
......@@ -63,25 +63,30 @@ bool isTextureGather(const TFunction *func)
int id = func->uniqueId().get();
return id >= 1327 && id <= 1414;
}
bool isInterpolationFS(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 1451 && id <= 1474;
}
bool isAtomicMemory(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 1476 && id <= 1493;
return id >= 1488 && id <= 1505;
}
bool isImageLoad(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 2130 && id <= 2162;
return id >= 2142 && id <= 2174;
}
bool isImageStore(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 2163 && id <= 2195;
return id >= 2175 && id <= 2207;
}
bool isImage(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 1494 && id <= 2195;
return id >= 1506 && id <= 2207;
}
} // namespace BuiltInGroup
......
......@@ -179,6 +179,7 @@ void InitBuiltInResources(ShBuiltInResources *resources)
resources->OES_texture_cube_map_array = 0;
resources->EXT_texture_cube_map_array = 0;
resources->EXT_shadow_samplers = 0;
resources->OES_shader_multisample_interpolation = 0;
resources->NV_draw_buffers = 0;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -961,8 +961,21 @@ GROUP BEGIN DerivativesFS {"shader_type": "FRAGMENT"}
genType fwidthCoarse(genType);
GROUP END DerivativesFS
GROUP BEGIN InterpolationFS {"shader_type": "FRAGMENT"}
DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
GROUP BEGIN InterpolationFS {"queryFunction": true, "shader_type": "FRAGMENT"}
DEFAULT METADATA {"essl_level": "ESSL3_2_BUILTINS","glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
float interpolateAtCentroid(float);
vec2 interpolateAtCentroid(vec2);
vec3 interpolateAtCentroid(vec3);
vec4 interpolateAtCentroid(vec4);
float interpolateAtSample(float, int);
vec2 interpolateAtSample(vec2, int);
vec3 interpolateAtSample(vec3, int);
vec4 interpolateAtSample(vec4, int);
float interpolateAtOffset(float, vec2);
vec2 interpolateAtOffset(vec2, vec2);
vec3 interpolateAtOffset(vec3, vec2);
vec4 interpolateAtOffset(vec4, vec2);
DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_shader_multisample_interpolation", "suffix": "Ext"}
float interpolateAtCentroid(float);
vec2 interpolateAtCentroid(vec2);
vec3 interpolateAtCentroid(vec3);
......
......@@ -107,6 +107,7 @@ static int ES3_extension(TParseContext *context, TExtension extension, int token
static int ES3_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_reserved_ES3_extension(TParseContext *context, TExtension extension, int token);
static int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_reserved_ES3_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_1_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_1_reserved_ES3_1_extension_ES3_2_keyword_2(TParseContext *context, TExtension extension1, TExtension extension2, int token1, int token2);
static int WEBGL_video_texture_extension(TParseContext *context, int token);
......@@ -267,13 +268,12 @@ O [0-7]
"restrict" { return ES3_reserved_ES3_1_keyword(context, RESTRICT); }
"volatile" { return ES2_reserved_ES3_1_keyword(context, VOLATILE); }
"atomic_uint" { return ES3_reserved_ES3_1_keyword(context, ATOMICUINT); }
"sample" { return ES3_reserved_ES3_extension_ES3_2_keyword(context, TExtension::OES_shader_multisample_interpolation, SAMPLE); }
"precise" { return ES3_1_reserved_ES3_1_extension_ES3_2_keyword(context, TExtension::EXT_gpu_shader5, PRECISE); }
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
"resource" |
"patch" |
"sample" |
"subroutine" |
"common" |
"partition" |
......@@ -698,6 +698,26 @@ int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context, TExtension
return check_type(yyscanner);
}
int ES3_reserved_ES3_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
yyscan_t yyscanner = (yyscan_t) context->getScanner();
// A keyword in GLSL ES 3.00 with enabled extension or in GLSL ES 3.20
if (is_extension_enabled_or_is_core(context, 300, extension, 320))
{
return token;
}
if(context->getShaderVersion() == 300 ||context->getShaderVersion() == 310)
{
return reserved_word(yyscanner);
}
yylval->lex.string = AllocatePoolCharArray(yytext, yyleng);
return check_type(yyscanner);
}
static int ES3_1_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
......
......@@ -164,7 +164,7 @@ extern void yyerror(YYLTYPE* yylloc, TParseContext* context, void *scanner, cons
%token <lex> BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 VEC2 VEC3 VEC4 UVEC2 UVEC3 UVEC4
%token <lex> MATRIX2 MATRIX3 MATRIX4 IN_QUAL OUT_QUAL INOUT_QUAL UNIFORM BUFFER VARYING
%token <lex> MATRIX2x3 MATRIX3x2 MATRIX2x4 MATRIX4x2 MATRIX3x4 MATRIX4x3
%token <lex> CENTROID FLAT SMOOTH NOPERSPECTIVE
%token <lex> SAMPLE CENTROID FLAT SMOOTH NOPERSPECTIVE
%token <lex> READONLY WRITEONLY COHERENT RESTRICT VOLATILE SHARED
%token <lex> STRUCT VOID_TYPE WHILE
%token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT SAMPLER2DARRAY
......@@ -891,6 +891,10 @@ storage_qualifier
COMPUTE_ONLY("shared", @1);
$$ = context->parseGlobalStorageQualifier(EvqShared, @1);
}
| SAMPLE {
ES3_OR_NEWER("sample", @1, "storage qualifier");
$$ = new TStorageQualifierWrapper(EvqSample, @1);
}
;
type_specifier
......
......@@ -452,19 +452,19 @@ static const flex_int16_t yy_accept[938] = {
193, 180, 181, 182, 193, 35, 193, 172, 29, 183, 184, 185, 2, 177, 178, 179, 193, 193, 193,
27, 175, 193, 193, 193,
193, 193, 53, 54, 55, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 121, 193, 193,
193, 193, 53, 54, 55, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 122, 193, 193,
193, 193, 193, 193, 193, 193, 169, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 155,
193, 193, 192, 59, 60, 61, 193, 193, 15, 193, 193, 193, 126, 193, 193, 9, 193, 193, 124,
193, 193, 193, 170, 165, 127, 193, 193, 193, 193, 193, 193, 161, 193, 193, 193, 193, 193, 93,
41, 44, 46, 45, 42, 48, 47, 49, 43, 193, 193, 193, 193, 176, 152, 193, 193, 163, 193,
193, 193, 37, 122, 28,
193, 193, 37, 119, 28,
189, 23, 164, 92, 193, 174, 18, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
193, 193, 193, 193, 20, 36, 193, 193, 193, 193, 193, 193, 128, 98, 104, 193, 193, 193, 193,
193, 95, 97, 3, 193, 193, 193, 193, 119, 193, 193, 193, 193, 193, 193, 193, 157, 193, 193,
193, 95, 97, 3, 193, 193, 193, 193, 120, 193, 193, 193, 193, 193, 193, 193, 157, 193, 193,
193, 193, 193, 8, 193, 193, 10, 193, 193, 193, 193, 193, 193, 21, 115, 12, 166, 129, 99,
106, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 162, 193, 193, 193, 113,
120, 116, 193, 193, 193,
121, 116, 193, 193, 193,
193, 193, 193, 193, 193, 158, 130, 100, 105, 193, 193, 173, 193, 117, 193, 193, 193, 193, 6,
193, 193, 193, 193, 193, 193, 193, 193, 193, 109, 167, 1, 193, 193, 193, 193, 193, 193, 191,
......@@ -935,6 +935,9 @@ static int ES3_reserved_ES3_extension(TParseContext *context, TExtension extensi
static int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context,
TExtension extension,
int token);
static int ES3_reserved_ES3_extension_ES3_2_keyword(TParseContext *context,
TExtension extension,
int token);
static int ES3_1_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context,
TExtension extension,
int token);
......@@ -1746,12 +1749,18 @@ YY_DECL
case 119:
YY_RULE_SETUP
{
return ES3_reserved_ES3_extension_ES3_2_keyword(
context, TExtension::OES_shader_multisample_interpolation, SAMPLE);
}
YY_BREAK
case 120:
YY_RULE_SETUP
{
return ES3_1_reserved_ES3_1_extension_ES3_2_keyword(
context, TExtension::EXT_gpu_shader5, PRECISE);
}
YY_BREAK
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
case 120:
case 121:
case 122:
case 123:
......@@ -3483,6 +3492,28 @@ int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context,
return check_type(yyscanner);
}
int ES3_reserved_ES3_extension_ES3_2_keyword(TParseContext *context,
TExtension extension,
int token)
{
struct yyguts_t *yyg = (struct yyguts_t *)context->getScanner();
yyscan_t yyscanner = (yyscan_t)context->getScanner();
// A keyword in GLSL ES 3.00 with enabled extension or in GLSL ES 3.20
if (is_extension_enabled_or_is_core(context, 300, extension, 320))
{
return token;
}
if (context->getShaderVersion() == 300 || context->getShaderVersion() == 310)
{
return reserved_word(yyscanner);
}
yylval->lex.string = AllocatePoolCharArray(yytext, yyleng);
return check_type(yyscanner);
}
static int ES3_1_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context,
TExtension extension,
int token)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -104,127 +104,128 @@ enum yytokentype
MATRIX4x2 = 305,
MATRIX3x4 = 306,
MATRIX4x3 = 307,
CENTROID = 308,
FLAT = 309,
SMOOTH = 310,
NOPERSPECTIVE = 311,
READONLY = 312,
WRITEONLY = 313,
COHERENT = 314,
RESTRICT = 315,
VOLATILE = 316,
SHARED = 317,
STRUCT = 318,
VOID_TYPE = 319,
WHILE = 320,
SAMPLER2D = 321,
SAMPLERCUBE = 322,
SAMPLER_EXTERNAL_OES = 323,
SAMPLER2DRECT = 324,
SAMPLER2DARRAY = 325,
ISAMPLER2D = 326,
ISAMPLER3D = 327,
ISAMPLERCUBE = 328,
ISAMPLER2DARRAY = 329,
USAMPLER2D = 330,
USAMPLER3D = 331,
USAMPLERCUBE = 332,
USAMPLER2DARRAY = 333,
SAMPLER2DMS = 334,
ISAMPLER2DMS = 335,
USAMPLER2DMS = 336,
SAMPLER2DMSARRAY = 337,
ISAMPLER2DMSARRAY = 338,
USAMPLER2DMSARRAY = 339,
SAMPLER3D = 340,
SAMPLER3DRECT = 341,
SAMPLER2DSHADOW = 342,
SAMPLERCUBESHADOW = 343,
SAMPLER2DARRAYSHADOW = 344,
SAMPLERVIDEOWEBGL = 345,
SAMPLERCUBEARRAYOES = 346,
SAMPLERCUBEARRAYSHADOWOES = 347,
ISAMPLERCUBEARRAYOES = 348,
USAMPLERCUBEARRAYOES = 349,
SAMPLERCUBEARRAYEXT = 350,
SAMPLERCUBEARRAYSHADOWEXT = 351,
ISAMPLERCUBEARRAYEXT = 352,
USAMPLERCUBEARRAYEXT = 353,
SAMPLEREXTERNAL2DY2YEXT = 354,
IMAGE2D = 355,
IIMAGE2D = 356,
UIMAGE2D = 357,
IMAGE3D = 358,
IIMAGE3D = 359,
UIMAGE3D = 360,
IMAGE2DARRAY = 361,
IIMAGE2DARRAY = 362,
UIMAGE2DARRAY = 363,
IMAGECUBE = 364,
IIMAGECUBE = 365,
UIMAGECUBE = 366,
IMAGECUBEARRAYOES = 367,
IIMAGECUBEARRAYOES = 368,
UIMAGECUBEARRAYOES = 369,
IMAGECUBEARRAYEXT = 370,
IIMAGECUBEARRAYEXT = 371,
UIMAGECUBEARRAYEXT = 372,
ATOMICUINT = 373,
LAYOUT = 374,
YUVCSCSTANDARDEXT = 375,
YUVCSCSTANDARDEXTCONSTANT = 376,
IDENTIFIER = 377,
TYPE_NAME = 378,
FLOATCONSTANT = 379,
INTCONSTANT = 380,
UINTCONSTANT = 381,
BOOLCONSTANT = 382,
FIELD_SELECTION = 383,
LEFT_OP = 384,
RIGHT_OP = 385,
INC_OP = 386,
DEC_OP = 387,
LE_OP = 388,
GE_OP = 389,
EQ_OP = 390,
NE_OP = 391,
AND_OP = 392,
OR_OP = 393,
XOR_OP = 394,
MUL_ASSIGN = 395,
DIV_ASSIGN = 396,
ADD_ASSIGN = 397,
MOD_ASSIGN = 398,
LEFT_ASSIGN = 399,
RIGHT_ASSIGN = 400,
AND_ASSIGN = 401,
XOR_ASSIGN = 402,
OR_ASSIGN = 403,
SUB_ASSIGN = 404,
LEFT_PAREN = 405,
RIGHT_PAREN = 406,
LEFT_BRACKET = 407,
RIGHT_BRACKET = 408,
LEFT_BRACE = 409,
RIGHT_BRACE = 410,
DOT = 411,
COMMA = 412,
COLON = 413,
EQUAL = 414,
SEMICOLON = 415,
BANG = 416,
DASH = 417,
TILDE = 418,
PLUS = 419,
STAR = 420,
SLASH = 421,
PERCENT = 422,
LEFT_ANGLE = 423,
RIGHT_ANGLE = 424,
VERTICAL_BAR = 425,
CARET = 426,
AMPERSAND = 427,
QUESTION = 428
SAMPLE = 308,
CENTROID = 309,
FLAT = 310,
SMOOTH = 311,
NOPERSPECTIVE = 312,
READONLY = 313,
WRITEONLY = 314,
COHERENT = 315,
RESTRICT = 316,
VOLATILE = 317,
SHARED = 318,
STRUCT = 319,
VOID_TYPE = 320,
WHILE = 321,
SAMPLER2D = 322,
SAMPLERCUBE = 323,
SAMPLER_EXTERNAL_OES = 324,
SAMPLER2DRECT = 325,
SAMPLER2DARRAY = 326,
ISAMPLER2D = 327,
ISAMPLER3D = 328,
ISAMPLERCUBE = 329,
ISAMPLER2DARRAY = 330,
USAMPLER2D = 331,
USAMPLER3D = 332,
USAMPLERCUBE = 333,
USAMPLER2DARRAY = 334,
SAMPLER2DMS = 335,
ISAMPLER2DMS = 336,
USAMPLER2DMS = 337,
SAMPLER2DMSARRAY = 338,
ISAMPLER2DMSARRAY = 339,
USAMPLER2DMSARRAY = 340,
SAMPLER3D = 341,
SAMPLER3DRECT = 342,
SAMPLER2DSHADOW = 343,
SAMPLERCUBESHADOW = 344,
SAMPLER2DARRAYSHADOW = 345,
SAMPLERVIDEOWEBGL = 346,
SAMPLERCUBEARRAYOES = 347,
SAMPLERCUBEARRAYSHADOWOES = 348,
ISAMPLERCUBEARRAYOES = 349,
USAMPLERCUBEARRAYOES = 350,
SAMPLERCUBEARRAYEXT = 351,
SAMPLERCUBEARRAYSHADOWEXT = 352,
ISAMPLERCUBEARRAYEXT = 353,
USAMPLERCUBEARRAYEXT = 354,
SAMPLEREXTERNAL2DY2YEXT = 355,
IMAGE2D = 356,
IIMAGE2D = 357,
UIMAGE2D = 358,
IMAGE3D = 359,
IIMAGE3D = 360,
UIMAGE3D = 361,
IMAGE2DARRAY = 362,
IIMAGE2DARRAY = 363,
UIMAGE2DARRAY = 364,
IMAGECUBE = 365,
IIMAGECUBE = 366,
UIMAGECUBE = 367,
IMAGECUBEARRAYOES = 368,
IIMAGECUBEARRAYOES = 369,
UIMAGECUBEARRAYOES = 370,
IMAGECUBEARRAYEXT = 371,
IIMAGECUBEARRAYEXT = 372,
UIMAGECUBEARRAYEXT = 373,
ATOMICUINT = 374,
LAYOUT = 375,
YUVCSCSTANDARDEXT = 376,
YUVCSCSTANDARDEXTCONSTANT = 377,
IDENTIFIER = 378,
TYPE_NAME = 379,
FLOATCONSTANT = 380,
INTCONSTANT = 381,
UINTCONSTANT = 382,
BOOLCONSTANT = 383,
FIELD_SELECTION = 384,
LEFT_OP = 385,
RIGHT_OP = 386,
INC_OP = 387,
DEC_OP = 388,
LE_OP = 389,
GE_OP = 390,
EQ_OP = 391,
NE_OP = 392,
AND_OP = 393,
OR_OP = 394,
XOR_OP = 395,
MUL_ASSIGN = 396,
DIV_ASSIGN = 397,
ADD_ASSIGN = 398,
MOD_ASSIGN = 399,
LEFT_ASSIGN = 400,
RIGHT_ASSIGN = 401,
AND_ASSIGN = 402,
XOR_ASSIGN = 403,
OR_ASSIGN = 404,
SUB_ASSIGN = 405,
LEFT_PAREN = 406,
RIGHT_PAREN = 407,
LEFT_BRACKET = 408,
RIGHT_BRACKET = 409,
LEFT_BRACE = 410,
RIGHT_BRACE = 411,
DOT = 412,
COMMA = 413,
COLON = 414,
EQUAL = 415,
SEMICOLON = 416,
BANG = 417,
DASH = 418,
TILDE = 419,
PLUS = 420,
STAR = 421,
SLASH = 422,
PERCENT = 423,
LEFT_ANGLE = 424,
RIGHT_ANGLE = 425,
VERTICAL_BAR = 426,
CARET = 427,
AMPERSAND = 428,
QUESTION = 429
};
#endif
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -287,7 +287,7 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x0000001bu, ImmutableString("mix(20B20B00B").mangledNameHash());
ASSERT_EQ(0x0000068bu, ImmutableString("mix(30B30B00B").mangledNameHash());
ASSERT_EQ(0x00000544u, ImmutableString("mix(10B10B10B").mangledNameHash());
ASSERT_EQ(0x0000084bu, ImmutableString("mix(20B20B20B").mangledNameHash());
ASSERT_EQ(0x00000160u, ImmutableString("mix(20B20B20B").mangledNameHash());
ASSERT_EQ(0x000003c6u, ImmutableString("mix(30B30B30B").mangledNameHash());
ASSERT_EQ(0x00000419u, ImmutableString("mix(00C00C00C").mangledNameHash());
ASSERT_EQ(0x00000621u, ImmutableString("mix(10C10C00C").mangledNameHash());
......@@ -612,7 +612,7 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x00000237u, ImmutableString("bitCount(00E").mangledNameHash());
ASSERT_EQ(0x00000181u, ImmutableString("bitCount(10E").mangledNameHash());
ASSERT_EQ(0x0000052eu, ImmutableString("bitCount(20E").mangledNameHash());
ASSERT_EQ(0x000001c0u, ImmutableString("bitCount(30E").mangledNameHash());
ASSERT_EQ(0x00000472u, ImmutableString("bitCount(30E").mangledNameHash());
ASSERT_EQ(0x000005b5u, ImmutableString("findLSB(00D").mangledNameHash());
ASSERT_EQ(0x0000074bu, ImmutableString("findLSB(10D").mangledNameHash());
ASSERT_EQ(0x000006acu, ImmutableString("findLSB(20D").mangledNameHash());
......@@ -858,7 +858,7 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x000007f4u, ImmutableString("texelFetch(00p10D00D").mangledNameHash());
ASSERT_EQ(0x00000644u, ImmutableString("texelFetch(00u10D00D").mangledNameHash());
ASSERT_EQ(0x00000071u, ImmutableString("texelFetch(00j00D").mangledNameHash());
ASSERT_EQ(0x000003a4u, ImmutableString("texelFetch(00r00D").mangledNameHash());
ASSERT_EQ(0x000005bau, ImmutableString("texelFetch(00r00D").mangledNameHash());
ASSERT_EQ(0x0000014du, ImmutableString("texelFetch(00w00D").mangledNameHash());
ASSERT_EQ(0x00000449u, ImmutableString("textureGrad(00I10B10B10B").mangledNameHash());
ASSERT_EQ(0x000001d4u, ImmutableString("textureGrad(00R10B10B10B").mangledNameHash());
......@@ -1061,7 +1061,7 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x000003ebu, ImmutableString("textureOffset(00O10B10D").mangledNameHash());
ASSERT_EQ(0x00000716u, ImmutableString("textureOffset(00q10B10D").mangledNameHash());
ASSERT_EQ(0x0000029fu, ImmutableString("textureOffset(00v10B10D").mangledNameHash());
ASSERT_EQ(0x00000472u, ImmutableString("textureOffset(00n20B10D").mangledNameHash());
ASSERT_EQ(0x000001c0u, ImmutableString("textureOffset(00n20B10D").mangledNameHash());
ASSERT_EQ(0x00000064u, ImmutableString("textureOffset(00m20B00D").mangledNameHash());
ASSERT_EQ(0x000001f7u, ImmutableString("textureOffset(00h10B00D").mangledNameHash());
ASSERT_EQ(0x000000b8u, ImmutableString("textureOffset(00p10B00D").mangledNameHash());
......@@ -1070,7 +1070,7 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x00000773u, ImmutableString("textureOffset(00f30B10D").mangledNameHash());
ASSERT_EQ(0x000004aeu, ImmutableString("textureProjOffset(00I20B10D").mangledNameHash());
ASSERT_EQ(0x00000281u, ImmutableString("textureProjOffset(00R20B10D").mangledNameHash());
ASSERT_EQ(0x00000160u, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
ASSERT_EQ(0x0000084bu, ImmutableString("textureProjOffset(00X20B10D").mangledNameHash());
ASSERT_EQ(0x00000164u, ImmutableString("textureProjOffset(00I30B10D").mangledNameHash());
ASSERT_EQ(0x00000847u, ImmutableString("textureProjOffset(00R30B10D").mangledNameHash());
ASSERT_EQ(0x000005e8u, ImmutableString("textureProjOffset(00X30B10D").mangledNameHash());
......@@ -1413,7 +1413,7 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x000002b3u, ImmutableString("atomicCompSwap(00E00E00E").mangledNameHash());
ASSERT_EQ(0x00000358u, ImmutableString("atomicCompSwap(00D00D00D").mangledNameHash());
ASSERT_EQ(0x00000300u, ImmutableString("imageSize(00z").mangledNameHash());
ASSERT_EQ(0x000005bau, ImmutableString("imageSize(01A").mangledNameHash());
ASSERT_EQ(0x000003a4u, ImmutableString("imageSize(01A").mangledNameHash());
ASSERT_EQ(0x000003a2u, ImmutableString("imageSize(01B").mangledNameHash());
ASSERT_EQ(0x000003a3u, ImmutableString("imageSize(01C").mangledNameHash());
ASSERT_EQ(0x000003a7u, ImmutableString("imageSize(01D").mangledNameHash());
......@@ -2213,211 +2213,211 @@ TEST(ImmutableStringTest, ScriptGeneratedHashesMatch)
ASSERT_EQ(0x00000211u, ImmutableString("gl_ViewID_OVR").mangledNameHash());
ASSERT_EQ(0x00000023u, ImmutableString("radians").unmangledNameHash());
ASSERT_EQ(0x00000013u, ImmutableString("degrees").unmangledNameHash());
ASSERT_EQ(0x000000abu, ImmutableString("sin").unmangledNameHash());
ASSERT_EQ(0x000000aau, ImmutableString("sin").unmangledNameHash());
ASSERT_EQ(0x00000053u, ImmutableString("cos").unmangledNameHash());
ASSERT_EQ(0x00000099u, ImmutableString("tan").unmangledNameHash());
ASSERT_EQ(0x00000098u, ImmutableString("tan").unmangledNameHash());
ASSERT_EQ(0x00000039u, ImmutableString("asin").unmangledNameHash());
ASSERT_EQ(0x0000005du, ImmutableString("acos").unmangledNameHash());
ASSERT_EQ(0x000000b2u, ImmutableString("atan").unmangledNameHash());
ASSERT_EQ(0x00000050u, ImmutableString("sinh").unmangledNameHash());
ASSERT_EQ(0x00000034u, ImmutableString("cosh").unmangledNameHash());
ASSERT_EQ(0x00000088u, ImmutableString("tanh").unmangledNameHash());
ASSERT_EQ(0x00000094u, ImmutableString("asinh").unmangledNameHash());
ASSERT_EQ(0x00000087u, ImmutableString("tanh").unmangledNameHash());
ASSERT_EQ(0x00000093u, ImmutableString("asinh").unmangledNameHash());
ASSERT_EQ(0x00000032u, ImmutableString("acosh").unmangledNameHash());
ASSERT_EQ(0x000000a3u, ImmutableString("atanh").unmangledNameHash());
ASSERT_EQ(0x000000a2u, ImmutableString("atanh").unmangledNameHash());
ASSERT_EQ(0x00000062u, ImmutableString("pow").unmangledNameHash());
ASSERT_EQ(0x000000cbu, ImmutableString("exp").unmangledNameHash());
ASSERT_EQ(0x0000006cu, ImmutableString("log").unmangledNameHash());
ASSERT_EQ(0x0000006fu, ImmutableString("exp2").unmangledNameHash());
ASSERT_EQ(0x0000006bu, ImmutableString("log").unmangledNameHash());
ASSERT_EQ(0x0000006eu, ImmutableString("exp2").unmangledNameHash());
ASSERT_EQ(0x00000048u, ImmutableString("log2").unmangledNameHash());
ASSERT_EQ(0x000000a6u, ImmutableString("sqrt").unmangledNameHash());
ASSERT_EQ(0x00000083u, ImmutableString("inversesqrt").unmangledNameHash());
ASSERT_EQ(0x000000a5u, ImmutableString("sqrt").unmangledNameHash());
ASSERT_EQ(0x00000082u, ImmutableString("inversesqrt").unmangledNameHash());
ASSERT_EQ(0x00000042u, ImmutableString("abs").unmangledNameHash());
ASSERT_EQ(0x00000082u, ImmutableString("sign").unmangledNameHash());
ASSERT_EQ(0x000000a0u, ImmutableString("floor").unmangledNameHash());
ASSERT_EQ(0x00000081u, ImmutableString("sign").unmangledNameHash());
ASSERT_EQ(0x0000009fu, ImmutableString("floor").unmangledNameHash());
ASSERT_EQ(0x00000052u, ImmutableString("trunc").unmangledNameHash());
ASSERT_EQ(0x0000002bu, ImmutableString("round").unmangledNameHash());
ASSERT_EQ(0x00000018u, ImmutableString("roundEven").unmangledNameHash());
ASSERT_EQ(0x0000001cu, ImmutableString("ceil").unmangledNameHash());
ASSERT_EQ(0x00000072u, ImmutableString("fract").unmangledNameHash());
ASSERT_EQ(0x00000071u, ImmutableString("fract").unmangledNameHash());
ASSERT_EQ(0x00000021u, ImmutableString("mod").unmangledNameHash());
ASSERT_EQ(0x000000c7u, ImmutableString("min").unmangledNameHash());
ASSERT_EQ(0x00000044u, ImmutableString("max").unmangledNameHash());
ASSERT_EQ(0x0000002du, ImmutableString("clamp").unmangledNameHash());
ASSERT_EQ(0x000000a8u, ImmutableString("mix").unmangledNameHash());
ASSERT_EQ(0x000000a7u, ImmutableString("mix").unmangledNameHash());
ASSERT_EQ(0x0000004fu, ImmutableString("step").unmangledNameHash());
ASSERT_EQ(0x00000024u, ImmutableString("smoothstep").unmangledNameHash());
ASSERT_EQ(0x00000029u, ImmutableString("modf").unmangledNameHash());
ASSERT_EQ(0x0000003au, ImmutableString("isnan").unmangledNameHash());
ASSERT_EQ(0x000000b9u, ImmutableString("isinf").unmangledNameHash());
ASSERT_EQ(0x00000022u, ImmutableString("floatBitsToInt").unmangledNameHash());
ASSERT_EQ(0x00000066u, ImmutableString("floatBitsToUint").unmangledNameHash());
ASSERT_EQ(0x00000090u, ImmutableString("intBitsToFloat").unmangledNameHash());
ASSERT_EQ(0x00000065u, ImmutableString("floatBitsToUint").unmangledNameHash());
ASSERT_EQ(0x0000008fu, ImmutableString("intBitsToFloat").unmangledNameHash());
ASSERT_EQ(0x0000005eu, ImmutableString("uintBitsToFloat").unmangledNameHash());
ASSERT_EQ(0x00000077u, ImmutableString("fma").unmangledNameHash());
ASSERT_EQ(0x00000076u, ImmutableString("fma").unmangledNameHash());
ASSERT_EQ(0x00000012u, ImmutableString("frexp").unmangledNameHash());
ASSERT_EQ(0x00000065u, ImmutableString("ldexp").unmangledNameHash());
ASSERT_EQ(0x00000064u, ImmutableString("ldexp").unmangledNameHash());
ASSERT_EQ(0x000000c9u, ImmutableString("packSnorm2x16").unmangledNameHash());
ASSERT_EQ(0x000000cfu, ImmutableString("packHalf2x16").unmangledNameHash());
ASSERT_EQ(0x00000047u, ImmutableString("unpackSnorm2x16").unmangledNameHash());
ASSERT_EQ(0x00000060u, ImmutableString("unpackHalf2x16").unmangledNameHash());
ASSERT_EQ(0x0000005fu, ImmutableString("packUnorm2x16").unmangledNameHash());
ASSERT_EQ(0x000000b3u, ImmutableString("unpackUnorm2x16").unmangledNameHash());
ASSERT_EQ(0x00000081u, ImmutableString("packUnorm4x8").unmangledNameHash());
ASSERT_EQ(0x00000080u, ImmutableString("packUnorm4x8").unmangledNameHash());
ASSERT_EQ(0x0000000du, ImmutableString("packSnorm4x8").unmangledNameHash());
ASSERT_EQ(0x00000002u, ImmutableString("unpackUnorm4x8").unmangledNameHash());
ASSERT_EQ(0x0000002au, ImmutableString("unpackSnorm4x8").unmangledNameHash());
ASSERT_EQ(0x000000c3u, ImmutableString("packDouble2x32").unmangledNameHash());
ASSERT_EQ(0x0000002eu, ImmutableString("unpackDouble2x32").unmangledNameHash());
ASSERT_EQ(0x0000005bu, ImmutableString("length").unmangledNameHash());
ASSERT_EQ(0x00000085u, ImmutableString("distance").unmangledNameHash());
ASSERT_EQ(0x00000084u, ImmutableString("distance").unmangledNameHash());
ASSERT_EQ(0x000000d1u, ImmutableString("dot").unmangledNameHash());
ASSERT_EQ(0x000000a5u, ImmutableString("cross").unmangledNameHash());
ASSERT_EQ(0x0000009cu, ImmutableString("normalize").unmangledNameHash());
ASSERT_EQ(0x000000a4u, ImmutableString("cross").unmangledNameHash());
ASSERT_EQ(0x0000009bu, ImmutableString("normalize").unmangledNameHash());
ASSERT_EQ(0x00000041u, ImmutableString("faceforward").unmangledNameHash());
ASSERT_EQ(0x000000b8u, ImmutableString("reflect").unmangledNameHash());
ASSERT_EQ(0x000000c5u, ImmutableString("refract").unmangledNameHash());
ASSERT_EQ(0x000000a9u, ImmutableString("ftransform").unmangledNameHash());
ASSERT_EQ(0x000000a8u, ImmutableString("ftransform").unmangledNameHash());
ASSERT_EQ(0x00000061u, ImmutableString("matrixCompMult").unmangledNameHash());
ASSERT_EQ(0x000000c2u, ImmutableString("outerProduct").unmangledNameHash());
ASSERT_EQ(0x0000004eu, ImmutableString("transpose").unmangledNameHash());
ASSERT_EQ(0x00000079u, ImmutableString("determinant").unmangledNameHash());
ASSERT_EQ(0x00000078u, ImmutableString("determinant").unmangledNameHash());
ASSERT_EQ(0x0000000eu, ImmutableString("inverse").unmangledNameHash());
ASSERT_EQ(0x00000027u, ImmutableString("lessThan").unmangledNameHash());
ASSERT_EQ(0x0000004du, ImmutableString("lessThanEqual").unmangledNameHash());
ASSERT_EQ(0x0000007eu, ImmutableString("greaterThan").unmangledNameHash());
ASSERT_EQ(0x0000007cu, ImmutableString("greaterThanEqual").unmangledNameHash());
ASSERT_EQ(0x0000007du, ImmutableString("greaterThan").unmangledNameHash());
ASSERT_EQ(0x0000007bu, ImmutableString("greaterThanEqual").unmangledNameHash());
ASSERT_EQ(0x00000057u, ImmutableString("equal").unmangledNameHash());
ASSERT_EQ(0x000000c1u, ImmutableString("notEqual").unmangledNameHash());
ASSERT_EQ(0x0000009au, ImmutableString("any").unmangledNameHash());
ASSERT_EQ(0x00000099u, ImmutableString("any").unmangledNameHash());
ASSERT_EQ(0x00000000u, ImmutableString("all").unmangledNameHash());
ASSERT_EQ(0x0000001fu, ImmutableString("not").unmangledNameHash());
ASSERT_EQ(0x00000091u, ImmutableString("bitfieldExtract").unmangledNameHash());
ASSERT_EQ(0x0000007fu, ImmutableString("bitfieldInsert").unmangledNameHash());
ASSERT_EQ(0x00000090u, ImmutableString("bitfieldExtract").unmangledNameHash());
ASSERT_EQ(0x0000007eu, ImmutableString("bitfieldInsert").unmangledNameHash());
ASSERT_EQ(0x0000003cu, ImmutableString("bitfieldReverse").unmangledNameHash());
ASSERT_EQ(0x0000006du, ImmutableString("bitCount").unmangledNameHash());
ASSERT_EQ(0x0000006cu, ImmutableString("bitCount").unmangledNameHash());
ASSERT_EQ(0x00000009u, ImmutableString("findLSB").unmangledNameHash());
ASSERT_EQ(0x00000030u, ImmutableString("findMSB").unmangledNameHash());
ASSERT_EQ(0x00000036u, ImmutableString("uaddCarry").unmangledNameHash());
ASSERT_EQ(0x00000059u, ImmutableString("usubBorrow").unmangledNameHash());
ASSERT_EQ(0x000000bbu, ImmutableString("umulExtended").unmangledNameHash());
ASSERT_EQ(0x00000014u, ImmutableString("imulExtended").unmangledNameHash());
ASSERT_EQ(0x00000096u, ImmutableString("texture2D").unmangledNameHash());
ASSERT_EQ(0x00000095u, ImmutableString("texture2D").unmangledNameHash());
ASSERT_EQ(0x0000004bu, ImmutableString("texture2DProj").unmangledNameHash());
ASSERT_EQ(0x000000c8u, ImmutableString("textureCube").unmangledNameHash());
ASSERT_EQ(0x0000001du, ImmutableString("texture1D").unmangledNameHash());
ASSERT_EQ(0x000000b6u, ImmutableString("texture1DProj").unmangledNameHash());
ASSERT_EQ(0x000000bau, ImmutableString("texture3D").unmangledNameHash());
ASSERT_EQ(0x00000080u, ImmutableString("texture3DProj").unmangledNameHash());
ASSERT_EQ(0x0000007du, ImmutableString("shadow1D").unmangledNameHash());
ASSERT_EQ(0x0000009du, ImmutableString("shadow1DProj").unmangledNameHash());
ASSERT_EQ(0x000000acu, ImmutableString("shadow2D").unmangledNameHash());
ASSERT_EQ(0x0000007fu, ImmutableString("texture3DProj").unmangledNameHash());
ASSERT_EQ(0x0000007cu, ImmutableString("shadow1D").unmangledNameHash());
ASSERT_EQ(0x0000009cu, ImmutableString("shadow1DProj").unmangledNameHash());
ASSERT_EQ(0x000000abu, ImmutableString("shadow2D").unmangledNameHash());
ASSERT_EQ(0x0000003fu, ImmutableString("shadow2DProj").unmangledNameHash());
ASSERT_EQ(0x00000031u, ImmutableString("texture2DRect").unmangledNameHash());
ASSERT_EQ(0x00000020u, ImmutableString("texture2DRectProj").unmangledNameHash());
ASSERT_EQ(0x00000011u, ImmutableString("texture").unmangledNameHash());
ASSERT_EQ(0x00000001u, ImmutableString("textureProj").unmangledNameHash());
ASSERT_EQ(0x00000089u, ImmutableString("texture2DGradEXT").unmangledNameHash());
ASSERT_EQ(0x00000088u, ImmutableString("texture2DGradEXT").unmangledNameHash());
ASSERT_EQ(0x00000015u, ImmutableString("texture2DProjGradEXT").unmangledNameHash());
ASSERT_EQ(0x0000000bu, ImmutableString("textureCubeGradEXT").unmangledNameHash());
ASSERT_EQ(0x0000007bu, ImmutableString("texture3DLod").unmangledNameHash());
ASSERT_EQ(0x00000092u, ImmutableString("texture3DProjLod").unmangledNameHash());
ASSERT_EQ(0x0000007au, ImmutableString("texture3DLod").unmangledNameHash());
ASSERT_EQ(0x00000091u, ImmutableString("texture3DProjLod").unmangledNameHash());
ASSERT_EQ(0x0000003du, ImmutableString("dFdx").unmangledNameHash());
ASSERT_EQ(0x00000028u, ImmutableString("dFdy").unmangledNameHash());
ASSERT_EQ(0x00000005u, ImmutableString("fwidth").unmangledNameHash());
ASSERT_EQ(0x00000058u, ImmutableString("texture2DLodEXT").unmangledNameHash());
ASSERT_EQ(0x00000019u, ImmutableString("texture2DProjLodEXT").unmangledNameHash());
ASSERT_EQ(0x00000068u, ImmutableString("textureCubeLodEXT").unmangledNameHash());
ASSERT_EQ(0x00000098u, ImmutableString("shadow2DEXT").unmangledNameHash());
ASSERT_EQ(0x00000095u, ImmutableString("shadow2DProjEXT").unmangledNameHash());
ASSERT_EQ(0x00000067u, ImmutableString("textureCubeLodEXT").unmangledNameHash());
ASSERT_EQ(0x00000097u, ImmutableString("shadow2DEXT").unmangledNameHash());
ASSERT_EQ(0x00000094u, ImmutableString("shadow2DProjEXT").unmangledNameHash());
ASSERT_EQ(0x000000d0u, ImmutableString("texture2DLod").unmangledNameHash());
ASSERT_EQ(0x00000064u, ImmutableString("texture2DProjLod").unmangledNameHash());
ASSERT_EQ(0x00000063u, ImmutableString("texture2DProjLod").unmangledNameHash());
ASSERT_EQ(0x0000000fu, ImmutableString("textureCubeLod").unmangledNameHash());
ASSERT_EQ(0x000000cau, ImmutableString("texture1DLod").unmangledNameHash());
ASSERT_EQ(0x0000008bu, ImmutableString("texture1DProjLod").unmangledNameHash());
ASSERT_EQ(0x00000075u, ImmutableString("shadow1DLod").unmangledNameHash());
ASSERT_EQ(0x0000008au, ImmutableString("texture1DProjLod").unmangledNameHash());
ASSERT_EQ(0x00000074u, ImmutableString("shadow1DLod").unmangledNameHash());
ASSERT_EQ(0x0000000au, ImmutableString("shadow1DProjLod").unmangledNameHash());
ASSERT_EQ(0x000000aeu, ImmutableString("shadow2DLod").unmangledNameHash());
ASSERT_EQ(0x000000adu, ImmutableString("shadow2DLod").unmangledNameHash());
ASSERT_EQ(0x00000056u, ImmutableString("shadow2DProjLod").unmangledNameHash());
ASSERT_EQ(0x00000040u, ImmutableString("textureLod").unmangledNameHash());
ASSERT_EQ(0x0000005cu, ImmutableString("textureSize").unmangledNameHash());
ASSERT_EQ(0x00000067u, ImmutableString("textureProjLod").unmangledNameHash());
ASSERT_EQ(0x00000066u, ImmutableString("textureProjLod").unmangledNameHash());
ASSERT_EQ(0x000000bdu, ImmutableString("texelFetch").unmangledNameHash());
ASSERT_EQ(0x00000049u, ImmutableString("textureGrad").unmangledNameHash());
ASSERT_EQ(0x00000025u, ImmutableString("textureProjGrad").unmangledNameHash());
ASSERT_EQ(0x00000026u, ImmutableString("textureQueryLevels").unmangledNameHash());
ASSERT_EQ(0x000000a4u, ImmutableString("textureSamples").unmangledNameHash());
ASSERT_EQ(0x0000007au, ImmutableString("textureGather").unmangledNameHash());
ASSERT_EQ(0x000000a3u, ImmutableString("textureSamples").unmangledNameHash());
ASSERT_EQ(0x00000079u, ImmutableString("textureGather").unmangledNameHash());
ASSERT_EQ(0x000000b4u, ImmutableString("textureQueryLod").unmangledNameHash());
ASSERT_EQ(0x0000002cu, ImmutableString("textureOffset").unmangledNameHash());
ASSERT_EQ(0x00000051u, ImmutableString("textureProjOffset").unmangledNameHash());
ASSERT_EQ(0x000000a1u, ImmutableString("textureLodOffset").unmangledNameHash());
ASSERT_EQ(0x0000006bu, ImmutableString("textureProjLodOffset").unmangledNameHash());
ASSERT_EQ(0x000000a0u, ImmutableString("textureLodOffset").unmangledNameHash());
ASSERT_EQ(0x0000006au, ImmutableString("textureProjLodOffset").unmangledNameHash());
ASSERT_EQ(0x0000005au, ImmutableString("texelFetchOffset").unmangledNameHash());
ASSERT_EQ(0x000000b1u, ImmutableString("textureGradOffset").unmangledNameHash());
ASSERT_EQ(0x00000017u, ImmutableString("textureProjGradOffset").unmangledNameHash());
ASSERT_EQ(0x00000006u, ImmutableString("rgb_2_yuv").unmangledNameHash());
ASSERT_EQ(0x00000008u, ImmutableString("yuv_2_rgb").unmangledNameHash());
ASSERT_EQ(0x00000076u, ImmutableString("textureGatherOffsets").unmangledNameHash());
ASSERT_EQ(0x0000006au, ImmutableString("textureGatherOffset").unmangledNameHash());
ASSERT_EQ(0x00000075u, ImmutableString("textureGatherOffsets").unmangledNameHash());
ASSERT_EQ(0x00000069u, ImmutableString("textureGatherOffset").unmangledNameHash());
ASSERT_EQ(0x0000001bu, ImmutableString("dFdxFine").unmangledNameHash());
ASSERT_EQ(0x0000006eu, ImmutableString("dFdyFine").unmangledNameHash());
ASSERT_EQ(0x00000086u, ImmutableString("dFdxCoarse").unmangledNameHash());
ASSERT_EQ(0x0000009fu, ImmutableString("dFdyCoarse").unmangledNameHash());
ASSERT_EQ(0x000000a2u, ImmutableString("fwidthFine").unmangledNameHash());
ASSERT_EQ(0x0000008cu, ImmutableString("fwidthCoarse").unmangledNameHash());
ASSERT_EQ(0x0000006du, ImmutableString("dFdyFine").unmangledNameHash());
ASSERT_EQ(0x00000085u, ImmutableString("dFdxCoarse").unmangledNameHash());
ASSERT_EQ(0x0000009eu, ImmutableString("dFdyCoarse").unmangledNameHash());
ASSERT_EQ(0x000000a1u, ImmutableString("fwidthFine").unmangledNameHash());
ASSERT_EQ(0x0000008bu, ImmutableString("fwidthCoarse").unmangledNameHash());
ASSERT_EQ(0x000000b7u, ImmutableString("interpolateAtCentroid").unmangledNameHash());
ASSERT_EQ(0x00000054u, ImmutableString("interpolateAtSample").unmangledNameHash());
ASSERT_EQ(0x00000033u, ImmutableString("interpolateAtOffset").unmangledNameHash());
ASSERT_EQ(0x0000008fu, ImmutableString("atomicCounter").unmangledNameHash());
ASSERT_EQ(0x0000008eu, ImmutableString("atomicCounter").unmangledNameHash());
ASSERT_EQ(0x00000007u, ImmutableString("atomicCounterIncrement").unmangledNameHash());
ASSERT_EQ(0x0000004cu, ImmutableString("atomicCounterDecrement").unmangledNameHash());
ASSERT_EQ(0x000000aau, ImmutableString("atomicCounterAdd").unmangledNameHash());
ASSERT_EQ(0x00000073u, ImmutableString("atomicCounterSubtract").unmangledNameHash());
ASSERT_EQ(0x0000008eu, ImmutableString("atomicCounterMin").unmangledNameHash());
ASSERT_EQ(0x0000008du, ImmutableString("atomicCounterMax").unmangledNameHash());
ASSERT_EQ(0x000000a9u, ImmutableString("atomicCounterAdd").unmangledNameHash());
ASSERT_EQ(0x00000072u, ImmutableString("atomicCounterSubtract").unmangledNameHash());
ASSERT_EQ(0x0000008du, ImmutableString("atomicCounterMin").unmangledNameHash());
ASSERT_EQ(0x0000008cu, ImmutableString("atomicCounterMax").unmangledNameHash());
ASSERT_EQ(0x00000046u, ImmutableString("atomicCounterAnd").unmangledNameHash());
ASSERT_EQ(0x0000002fu, ImmutableString("atomicCounterOr").unmangledNameHash());
ASSERT_EQ(0x0000001eu, ImmutableString("atomicCounterXor").unmangledNameHash());
ASSERT_EQ(0x000000bfu, ImmutableString("atomicCounterExchange").unmangledNameHash());
ASSERT_EQ(0x000000a7u, ImmutableString("atomicCounterCompSwap").unmangledNameHash());
ASSERT_EQ(0x00000093u, ImmutableString("atomicAdd").unmangledNameHash());
ASSERT_EQ(0x000000a6u, ImmutableString("atomicCounterCompSwap").unmangledNameHash());
ASSERT_EQ(0x00000092u, ImmutableString("atomicAdd").unmangledNameHash());
ASSERT_EQ(0x000000cdu, ImmutableString("atomicMin").unmangledNameHash());
ASSERT_EQ(0x0000003bu, ImmutableString("atomicMax").unmangledNameHash());
ASSERT_EQ(0x00000016u, ImmutableString("atomicAnd").unmangledNameHash());
ASSERT_EQ(0x000000bcu, ImmutableString("atomicOr").unmangledNameHash());
ASSERT_EQ(0x0000009bu, ImmutableString("atomicXor").unmangledNameHash());
ASSERT_EQ(0x00000063u, ImmutableString("atomicExchange").unmangledNameHash());
ASSERT_EQ(0x00000070u, ImmutableString("atomicCompSwap").unmangledNameHash());
ASSERT_EQ(0x0000009au, ImmutableString("atomicXor").unmangledNameHash());
ASSERT_EQ(0x000000aeu, ImmutableString("atomicExchange").unmangledNameHash());
ASSERT_EQ(0x0000006fu, ImmutableString("atomicCompSwap").unmangledNameHash());
ASSERT_EQ(0x000000c4u, ImmutableString("imageSize").unmangledNameHash());
ASSERT_EQ(0x00000071u, ImmutableString("imageSamples").unmangledNameHash());
ASSERT_EQ(0x00000070u, ImmutableString("imageSamples").unmangledNameHash());
ASSERT_EQ(0x00000010u, ImmutableString("imageAtomicAdd").unmangledNameHash());
ASSERT_EQ(0x000000afu, ImmutableString("imageAtomicMin").unmangledNameHash());
ASSERT_EQ(0x000000b5u, ImmutableString("imageAtomicMax").unmangledNameHash());
ASSERT_EQ(0x0000009eu, ImmutableString("imageAtomicAnd").unmangledNameHash());
ASSERT_EQ(0x0000009du, ImmutableString("imageAtomicAnd").unmangledNameHash());
ASSERT_EQ(0x00000037u, ImmutableString("imageAtomicOr").unmangledNameHash());
ASSERT_EQ(0x00000035u, ImmutableString("imageAtomicXor").unmangledNameHash());
ASSERT_EQ(0x000000ceu, ImmutableString("imageAtomicExchange").unmangledNameHash());
ASSERT_EQ(0x00000004u, ImmutableString("imageAtomicCompSwap").unmangledNameHash());
ASSERT_EQ(0x00000038u, ImmutableString("imageLoad").unmangledNameHash());
ASSERT_EQ(0x00000069u, ImmutableString("imageStore").unmangledNameHash());
ASSERT_EQ(0x00000084u, ImmutableString("noise1").unmangledNameHash());
ASSERT_EQ(0x00000087u, ImmutableString("noise2").unmangledNameHash());
ASSERT_EQ(0x00000068u, ImmutableString("imageStore").unmangledNameHash());
ASSERT_EQ(0x00000083u, ImmutableString("noise1").unmangledNameHash());
ASSERT_EQ(0x00000086u, ImmutableString("noise2").unmangledNameHash());
ASSERT_EQ(0x000000c6u, ImmutableString("noise3").unmangledNameHash());
ASSERT_EQ(0x000000c0u, ImmutableString("noise4").unmangledNameHash());
ASSERT_EQ(0x0000008au, ImmutableString("memoryBarrier").unmangledNameHash());
ASSERT_EQ(0x00000089u, ImmutableString("memoryBarrier").unmangledNameHash());
ASSERT_EQ(0x0000001au, ImmutableString("memoryBarrierAtomicCounter").unmangledNameHash());
ASSERT_EQ(0x00000097u, ImmutableString("memoryBarrierBuffer").unmangledNameHash());
ASSERT_EQ(0x00000096u, ImmutableString("memoryBarrierBuffer").unmangledNameHash());
ASSERT_EQ(0x0000000cu, ImmutableString("memoryBarrierImage").unmangledNameHash());
ASSERT_EQ(0x0000004au, ImmutableString("barrier").unmangledNameHash());
ASSERT_EQ(0x0000003eu, ImmutableString("memoryBarrierShared").unmangledNameHash());
ASSERT_EQ(0x000000ccu, ImmutableString("groupMemoryBarrier").unmangledNameHash());
ASSERT_EQ(0x00000074u, ImmutableString("EmitVertex").unmangledNameHash());
ASSERT_EQ(0x00000073u, ImmutableString("EmitVertex").unmangledNameHash());
ASSERT_EQ(0x000000beu, ImmutableString("EndPrimitive").unmangledNameHash());
ASSERT_EQ(0x00000055u, ImmutableString("EmitStreamVertex").unmangledNameHash());
ASSERT_EQ(0x00000078u, ImmutableString("EndStreamPrimitive").unmangledNameHash());
ASSERT_EQ(0x00000077u, ImmutableString("EndStreamPrimitive").unmangledNameHash());
ASSERT_EQ(0x00000045u, ImmutableString("subpassLoad").unmangledNameHash());
ASSERT_EQ(0x000000adu, ImmutableString("anyInvocation").unmangledNameHash());
ASSERT_EQ(0x000000acu, ImmutableString("anyInvocation").unmangledNameHash());
ASSERT_EQ(0x00000043u, ImmutableString("allInvocations").unmangledNameHash());
ASSERT_EQ(0x000000b0u, ImmutableString("allInvocationsEqual").unmangledNameHash());
ASSERT_EQ(0x00000003u, ImmutableString("textureVideoWEBGL").unmangledNameHash());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment