From 70688b76bca583a4cecae72af317543183950460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sat, 14 Jul 2018 09:26:19 -0700 Subject: [PATCH] Updated glslang. --- 3rdparty/glslang/.travis.yml | 16 +- 3rdparty/glslang/StandAlone/StandAlone.cpp | 13 +- .../glslang/Test/baseResults/120.frag.out | 2 +- .../Test/baseResults/hlsl.automap.frag.out | 44 ++-- .../hlsl.reflection.binding.frag.out | 24 +- .../Test/baseResults/hlsl.reflection.vert.out | 138 +++++------ .../baseResults/hlsl.shift.per-set.frag.out | 44 ++-- .../baseResults/hlsl.staticFuncInit.frag.out | 218 ++++++++++++++++++ .../Test/baseResults/reflection.vert.out | 200 ++++++++-------- .../spv.16bitstorage_Error-int.frag.out | 40 ++-- .../spv.16bitstorage_Error-uint.frag.out | 40 ++-- .../spv.16bitstorage_Error.frag.out | 44 ++-- .../spv.8bitstorage_Error-int.frag.out | 40 ++-- .../spv.8bitstorage_Error-uint.frag.out | 40 ++-- .../glslang/Test/hlsl.staticFuncInit.frag | 20 ++ 3rdparty/glslang/glslang/Include/revision.h | 2 +- .../MachineIndependent/ParseHelper.cpp | 149 +++++------- .../glslang/MachineIndependent/ShaderLang.cpp | 1 + .../glslang/MachineIndependent/Versions.cpp | 47 ++-- .../glslang/MachineIndependent/iomapper.cpp | 3 + .../MachineIndependent/parseVersions.h | 6 +- .../glslang/MachineIndependent/reflection.cpp | 9 + .../glslang/MachineIndependent/reflection.h | 8 +- 3rdparty/glslang/glslang/Public/ShaderLang.h | 1 + 3rdparty/glslang/gtests/Hlsl.FromFile.cpp | 1 + 3rdparty/glslang/hlsl/hlslGrammar.cpp | 31 +-- 3rdparty/glslang/hlsl/hlslGrammar.h | 3 +- 3rdparty/glslang/hlsl/hlslParseHelper.cpp | 2 + 28 files changed, 720 insertions(+), 466 deletions(-) mode change 100644 => 100755 3rdparty/glslang/.travis.yml create mode 100755 3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out create mode 100755 3rdparty/glslang/Test/hlsl.staticFuncInit.frag mode change 100644 => 100755 3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp mode change 100644 => 100755 3rdparty/glslang/gtests/Hlsl.FromFile.cpp diff --git a/3rdparty/glslang/.travis.yml b/3rdparty/glslang/.travis.yml old mode 100644 new mode 100755 index 4fe4b5e5b..247891217 --- a/3rdparty/glslang/.travis.yml +++ b/3rdparty/glslang/.travis.yml @@ -48,12 +48,16 @@ install: - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then export CC=clang-3.6 CXX=clang++-3.6; fi - # Download Android NDK and Android CMake toolchain file. + # Download a recent Android NDK and use its android.toolchain.cmake file. - if [[ "$BUILD_NDK" == "ON" ]]; then - git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk; export ANDROID_NDK=$HOME/android-ndk; - git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake; - export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake; + git init $ANDROID_NDK; + pushd $ANDROID_NDK; + git remote add dneto0 https://github.com/dneto0/android-ndk.git; + git fetch --depth=1 dneto0 r17b-strip; + git checkout FETCH_HEAD; + popd; + export TOOLCHAIN_PATH=$ANDROID_NDK/build/cmake/android.toolchain.cmake; fi before_script: @@ -63,10 +67,12 @@ before_script: script: - mkdir build && cd build # For Android, do release building using NDK without testing. + # Use android-14, the oldest native API level supporeted by NDK r17b. + # We can use newer API levels if we want. # For Linux and macOS, do debug/release building with testing. - if [[ "$BUILD_NDK" == "ON" ]]; then cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} - -DANDROID_NATIVE_API_LEVEL=android-12 + -DANDROID_NATIVE_API_LEVEL=android-14 -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_TESTING=OFF ..; diff --git a/3rdparty/glslang/StandAlone/StandAlone.cpp b/3rdparty/glslang/StandAlone/StandAlone.cpp index 549cb0dd9..a159bc840 100755 --- a/3rdparty/glslang/StandAlone/StandAlone.cpp +++ b/3rdparty/glslang/StandAlone/StandAlone.cpp @@ -737,17 +737,18 @@ void CompileShaders(glslang::TWorklist& worklist) glslang::TWorkItem* workItem; if (Options & EOptionStdin) { - worklist.remove(workItem); - ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), Options); - if (compiler == 0) - return; + if (worklist.remove(workItem)) { + ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), Options); + if (compiler == nullptr) + return; - CompileFile("stdin", compiler); + CompileFile("stdin", compiler); if (! (Options & EOptionSuppressInfolog)) workItem->results = ShGetInfoLog(compiler); - ShDestruct(compiler); + ShDestruct(compiler); + } } else { while (worklist.remove(workItem)) { ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options); diff --git a/3rdparty/glslang/Test/baseResults/120.frag.out b/3rdparty/glslang/Test/baseResults/120.frag.out index 025cb68aa..8909f16f4 100644 --- a/3rdparty/glslang/Test/baseResults/120.frag.out +++ b/3rdparty/glslang/Test/baseResults/120.frag.out @@ -52,7 +52,7 @@ ERROR: 0:209: 'assign' : cannot convert from ' const float' to ' temp 4-compone ERROR: 0:212: 'sampler2DRect' : Reserved word. ERROR: 0:244: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' global void' and a right operand of type ' const int' (or there is no acceptable conversion) ERROR: 0:245: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' const int' and a right operand of type ' global void' (or there is no acceptable conversion) -ERROR: 0:248: 'explicit types' : required extension not requested: Possible extensions include: +ERROR: 0:248: 'half floating-point suffix' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.automap.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.automap.frag.out index 7664bf649..b9ab49cd1 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.automap.frag.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.automap.frag.out @@ -1,29 +1,29 @@ hlsl.automap.frag Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 11 -t2: offset -1, type 8b5e, size 1, index -1, binding 12 -t3: offset -1, type 8b5f, size 1, index -1, binding 13 -t4.@data: offset 0, type 8b52, size 1, index 0, binding -1 -t5.@data: offset 0, type 1405, size 0, index 1, binding -1 -t6: offset -1, type 8dc2, size 1, index -1, binding 16 -s1: offset -1, type 0, size 1, index -1, binding 31 -s2: offset -1, type 0, size 1, index -1, binding 32 -u1: offset -1, type 904c, size 1, index -1, binding 41 -u2: offset -1, type 904d, size 1, index -1, binding 42 -u3: offset -1, type 904e, size 1, index -1, binding 43 -u4: offset -1, type 9051, size 1, index -1, binding 44 -u5.@data: offset 0, type 1405, size 0, index 2, binding -1 -u6.@data: offset 0, type 1406, size 1, index 3, binding -1 -cb1: offset 0, type 1404, size 1, index 4, binding -1 -tb1: offset 0, type 1404, size 1, index 5, binding -1 +t1: offset -1, type 8b5d, size 1, index -1, binding 11, stages 16 +t2: offset -1, type 8b5e, size 1, index -1, binding 12, stages 16 +t3: offset -1, type 8b5f, size 1, index -1, binding 13, stages 16 +t4.@data: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 +t5.@data: offset 0, type 1405, size 0, index 1, binding -1, stages 16 +t6: offset -1, type 8dc2, size 1, index -1, binding 16, stages 16 +s1: offset -1, type 0, size 1, index -1, binding 31, stages 16 +s2: offset -1, type 0, size 1, index -1, binding 32, stages 16 +u1: offset -1, type 904c, size 1, index -1, binding 41, stages 16 +u2: offset -1, type 904d, size 1, index -1, binding 42, stages 16 +u3: offset -1, type 904e, size 1, index -1, binding 43, stages 16 +u4: offset -1, type 9051, size 1, index -1, binding 44, stages 16 +u5.@data: offset 0, type 1405, size 0, index 2, binding -1, stages 16 +u6.@data: offset 0, type 1406, size 1, index 3, binding -1, stages 16 +cb1: offset 0, type 1404, size 1, index 4, binding -1, stages 16 +tb1: offset 0, type 1404, size 1, index 5, binding -1, stages 16 Uniform block reflection: -t4: offset -1, type ffffffff, size 0, index -1, binding 14 -t5: offset -1, type ffffffff, size 0, index -1, binding 15 -u5: offset -1, type ffffffff, size 0, index -1, binding 45 -u6: offset -1, type ffffffff, size 0, index -1, binding 46 -cb: offset -1, type ffffffff, size 4, index -1, binding 51 -tb: offset -1, type ffffffff, size 4, index -1, binding 17 +t4: offset -1, type ffffffff, size 0, index -1, binding 14, stages 0 +t5: offset -1, type ffffffff, size 0, index -1, binding 15, stages 0 +u5: offset -1, type ffffffff, size 0, index -1, binding 45, stages 0 +u6: offset -1, type ffffffff, size 0, index -1, binding 46, stages 0 +cb: offset -1, type ffffffff, size 4, index -1, binding 51, stages 0 +tb: offset -1, type ffffffff, size 4, index -1, binding 17, stages 0 Vertex attribute reflection: diff --git a/3rdparty/glslang/Test/baseResults/hlsl.reflection.binding.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.reflection.binding.frag.out index dd19621c3..464ce0f74 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.reflection.binding.frag.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.reflection.binding.frag.out @@ -1,19 +1,19 @@ hlsl.reflection.binding.frag Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 15 -s1: offset -1, type 0, size 1, index -1, binding 5 -t1a: offset -1, type 8b5d, size 1, index -1, binding 16 -s1a: offset -1, type 0, size 1, index -1, binding 6 -c1_a: offset 0, type 8b52, size 1, index 0, binding -1 -c1_b: offset 16, type 1404, size 1, index 0, binding -1 -c1_c: offset 20, type 1406, size 1, index 0, binding -1 -c2_a: offset 0, type 8b52, size 1, index 1, binding -1 -c2_b: offset 16, type 1404, size 1, index 1, binding -1 -c2_c: offset 20, type 1406, size 1, index 1, binding -1 +t1: offset -1, type 8b5d, size 1, index -1, binding 15, stages 16 +s1: offset -1, type 0, size 1, index -1, binding 5, stages 16 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16, stages 16 +s1a: offset -1, type 0, size 1, index -1, binding 6, stages 16 +c1_a: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 +c1_b: offset 16, type 1404, size 1, index 0, binding -1, stages 16 +c1_c: offset 20, type 1406, size 1, index 0, binding -1, stages 16 +c2_a: offset 0, type 8b52, size 1, index 1, binding -1, stages 16 +c2_b: offset 16, type 1404, size 1, index 1, binding -1, stages 16 +c2_c: offset 20, type 1406, size 1, index 1, binding -1, stages 16 Uniform block reflection: -cbuff1: offset -1, type ffffffff, size 24, index -1, binding 2 -cbuff2: offset -1, type ffffffff, size 24, index -1, binding 3 +cbuff1: offset -1, type ffffffff, size 24, index -1, binding 2, stages 0 +cbuff2: offset -1, type ffffffff, size 24, index -1, binding 3, stages 0 Vertex attribute reflection: diff --git a/3rdparty/glslang/Test/baseResults/hlsl.reflection.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.reflection.vert.out index 5f7a03396..ea8d86901 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.reflection.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.reflection.vert.out @@ -1,76 +1,76 @@ hlsl.reflection.vert Uniform reflection: -anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 -s.a: offset 0, type 1404, size 1, index 1, binding -1 -m23: offset 16, type 8b67, size 1, index 0, binding -1 -scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 -c_m23: offset 16, type 8b67, size 1, index 2, binding -1 -c_scalarAfterm23: offset 48, type 1404, size 1, index 2, binding -1 -scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 -floatArray: offset 112, type 1406, size 5, index 0, binding -1 -scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 -m22: offset 208, type 8b5a, size 9, index 0, binding -1 -dm22: offset 32, type 8b5a, size 4, index 1, binding -1 -foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1 -foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1 -foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1 -foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1 -deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1, binding -1 -deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1 -deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1 -deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1, binding -1 -deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1, binding -1 -deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1, binding -1 -deepC.iv4: offset 1568, type 8b52, size 1, index 1, binding -1 -deepC.d2.i: offset 1568, type 1404, size 1, index 1, binding -1 -deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1, binding -1 -deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1, binding -1 -deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1, binding -1 -deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1, binding -1 -deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1, binding -1 -deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1, binding -1 -deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1, binding -1 -deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1, binding -1 -deepC.v3: offset 1568, type 8b54, size 1, index 1, binding -1 -deepD[0].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 -deepD[0].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 -deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[0].v3: offset 2480, type 8b54, size 1, index 1, binding -1 -deepD[1].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 -deepD[1].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 -deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 -deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 -deepD[1].v3: offset 2480, type 8b54, size 1, index 1, binding -1 -foo1: offset 0, type 1406, size 1, index 4, binding -1 -foo2: offset 0, type 1406, size 1, index 5, binding -1 -anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 -uf1: offset 16, type 1406, size 1, index 1, binding -1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1, stages 1 +s.a: offset 0, type 1404, size 1, index 1, binding -1, stages 1 +m23: offset 16, type 8b67, size 1, index 0, binding -1, stages 1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1, stages 1 +c_m23: offset 16, type 8b67, size 1, index 2, binding -1, stages 1 +c_scalarAfterm23: offset 48, type 1404, size 1, index 2, binding -1, stages 1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1, stages 1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1, stages 1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1, stages 1 +m22: offset 208, type 8b5a, size 9, index 0, binding -1, stages 1 +dm22: offset 32, type 8b5a, size 4, index 1, binding -1, stages 1 +foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1, stages 1 +foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1, stages 1 +foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1, stages 1 +foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1, stages 1 +deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1, binding -1, stages 1 +deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1 +deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1 +deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1 +deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1 +deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1, binding -1, stages 1 +deepC.iv4: offset 1568, type 8b52, size 1, index 1, binding -1, stages 1 +deepC.d2.i: offset 1568, type 1404, size 1, index 1, binding -1, stages 1 +deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1, binding -1, stages 1 +deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1, binding -1, stages 1 +deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1, binding -1, stages 1 +deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1, binding -1, stages 1 +deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1, binding -1, stages 1 +deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1, binding -1, stages 1 +deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1, binding -1, stages 1 +deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1, binding -1, stages 1 +deepC.v3: offset 1568, type 8b54, size 1, index 1, binding -1, stages 1 +deepD[0].iv4: offset 2480, type 8b52, size 1, index 1, binding -1, stages 1 +deepD[0].d2.i: offset 2480, type 1404, size 1, index 1, binding -1, stages 1 +deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[0].v3: offset 2480, type 8b54, size 1, index 1, binding -1, stages 1 +deepD[1].iv4: offset 2480, type 8b52, size 1, index 1, binding -1, stages 1 +deepD[1].d2.i: offset 2480, type 1404, size 1, index 1, binding -1, stages 1 +deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1, stages 1 +deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1, stages 1 +deepD[1].v3: offset 2480, type 8b54, size 1, index 1, binding -1, stages 1 +foo1: offset 0, type 1406, size 1, index 4, binding -1, stages 1 +foo2: offset 0, type 1406, size 1, index 5, binding -1, stages 1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 +uf1: offset 16, type 1406, size 1, index 1, binding -1, stages 1 Uniform block reflection: -nameless: offset -1, type ffffffff, size 496, index -1, binding -1 -$Global: offset -1, type ffffffff, size 3088, index -1, binding -1 -c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1 -nested: offset -1, type ffffffff, size 32, index -1, binding -1 -abl: offset -1, type ffffffff, size 4, index -1, binding -1 -abl2: offset -1, type ffffffff, size 4, index -1, binding -1 +nameless: offset -1, type ffffffff, size 496, index -1, binding -1, stages 0 +$Global: offset -1, type ffffffff, size 3088, index -1, binding -1, stages 0 +c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1, stages 0 +nested: offset -1, type ffffffff, size 32, index -1, binding -1, stages 0 +abl: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl2: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 Vertex attribute reflection: -attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 -attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 -attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 -attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 -attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1, stages 0 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1, stages 0 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1, stages 0 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1, stages 0 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1, stages 0 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.shift.per-set.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.shift.per-set.frag.out index 9b06693a7..f7ae02e35 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.shift.per-set.frag.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.shift.per-set.frag.out @@ -196,30 +196,30 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Uniform reflection: -t1: offset -1, type 8b5d, size 1, index -1, binding 21 -t2: offset -1, type 8b5e, size 1, index -1, binding 22 -t3: offset -1, type 8b5f, size 1, index -1, binding 26 -t4.@data: offset 0, type 8b52, size 1, index 0, binding -1 -t5.@data: offset 0, type 1405, size 0, index 1, binding -1 -t6: offset -1, type 8dc2, size 1, index -1, binding 23 -s1: offset -1, type 0, size 1, index -1, binding 11 -s2: offset -1, type 0, size 1, index -1, binding 17 -u1: offset -1, type 904c, size 1, index -1, binding 31 -u2: offset -1, type 904d, size 1, index -1, binding 42 -u3: offset -1, type 904e, size 1, index -1, binding 43 -u4: offset -1, type 9051, size 1, index -1, binding 34 -u5.@data: offset 0, type 1405, size 0, index 2, binding -1 -u6.@data: offset 0, type 1406, size 1, index 3, binding -1 -cb1: offset 0, type 1404, size 1, index 4, binding -1 -tb1: offset 0, type 1404, size 1, index 5, binding -1 +t1: offset -1, type 8b5d, size 1, index -1, binding 21, stages 16 +t2: offset -1, type 8b5e, size 1, index -1, binding 22, stages 16 +t3: offset -1, type 8b5f, size 1, index -1, binding 26, stages 16 +t4.@data: offset 0, type 8b52, size 1, index 0, binding -1, stages 16 +t5.@data: offset 0, type 1405, size 0, index 1, binding -1, stages 16 +t6: offset -1, type 8dc2, size 1, index -1, binding 23, stages 16 +s1: offset -1, type 0, size 1, index -1, binding 11, stages 16 +s2: offset -1, type 0, size 1, index -1, binding 17, stages 16 +u1: offset -1, type 904c, size 1, index -1, binding 31, stages 16 +u2: offset -1, type 904d, size 1, index -1, binding 42, stages 16 +u3: offset -1, type 904e, size 1, index -1, binding 43, stages 16 +u4: offset -1, type 9051, size 1, index -1, binding 34, stages 16 +u5.@data: offset 0, type 1405, size 0, index 2, binding -1, stages 16 +u6.@data: offset 0, type 1406, size 1, index 3, binding -1, stages 16 +cb1: offset 0, type 1404, size 1, index 4, binding -1, stages 16 +tb1: offset 0, type 1404, size 1, index 5, binding -1, stages 16 Uniform block reflection: -t4: offset -1, type ffffffff, size 0, index -1, binding 21 -t5: offset -1, type ffffffff, size 0, index -1, binding 22 -u5: offset -1, type ffffffff, size 0, index -1, binding 44 -u6: offset -1, type ffffffff, size 0, index -1, binding 34 -cb: offset -1, type ffffffff, size 4, index -1, binding 51 -tb: offset -1, type ffffffff, size 4, index -1, binding 27 +t4: offset -1, type ffffffff, size 0, index -1, binding 21, stages 0 +t5: offset -1, type ffffffff, size 0, index -1, binding 22, stages 0 +u5: offset -1, type ffffffff, size 0, index -1, binding 44, stages 0 +u6: offset -1, type ffffffff, size 0, index -1, binding 34, stages 0 +cb: offset -1, type ffffffff, size 4, index -1, binding 51, stages 0 +tb: offset -1, type ffffffff, size 4, index -1, binding 27, stages 0 Vertex attribute reflection: diff --git a/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out new file mode 100755 index 000000000..d468cec39 --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out @@ -0,0 +1,218 @@ +hlsl.staticFuncInit.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:12Sequence +0:1 Sequence +0:1 move second child to first child ( temp float) +0:1 'x' ( global float) +0:1 Constant: +0:1 1.000000 +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'x' ( global float) +0:5 Constant: +0:5 2.000000 +0:4 Function Definition: f1( ( temp float) +0:4 Function Parameters: +0:? Sequence +0:6 add second child into first child ( temp float) +0:6 'x' ( global float) +0:6 Constant: +0:6 10.000000 +0:7 Branch: Return with expression +0:7 'x' ( global float) +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'x' ( global float) +0:12 Constant: +0:12 7.000000 +0:11 Function Definition: f2(f1; ( temp float) +0:11 Function Parameters: +0:11 'p' ( in float) +0:? Sequence +0:13 add second child into first child ( temp float) +0:13 'x' ( global float) +0:13 'p' ( in float) +0:14 Branch: Return with expression +0:14 'x' ( global float) +0:18 Function Definition: @main( ( temp 4-component vector of float) +0:18 Function Parameters: +0:? Sequence +0:19 Branch: Return with expression +0:19 Construct vec4 ( temp 4-component vector of float) +0:19 add ( temp float) +0:19 add ( temp float) +0:19 add ( temp float) +0:19 add ( temp float) +0:19 'x' ( global float) +0:19 Function Call: f1( ( temp float) +0:19 Function Call: f1( ( temp float) +0:19 Function Call: f2(f1; ( temp float) +0:19 Constant: +0:19 5.000000 +0:19 Function Call: f2(f1; ( temp float) +0:19 'x' ( global float) +0:18 Function Definition: main( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:18 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'x' ( global float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:12Sequence +0:1 Sequence +0:1 move second child to first child ( temp float) +0:1 'x' ( global float) +0:1 Constant: +0:1 1.000000 +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'x' ( global float) +0:5 Constant: +0:5 2.000000 +0:4 Function Definition: f1( ( temp float) +0:4 Function Parameters: +0:? Sequence +0:6 add second child into first child ( temp float) +0:6 'x' ( global float) +0:6 Constant: +0:6 10.000000 +0:7 Branch: Return with expression +0:7 'x' ( global float) +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'x' ( global float) +0:12 Constant: +0:12 7.000000 +0:11 Function Definition: f2(f1; ( temp float) +0:11 Function Parameters: +0:11 'p' ( in float) +0:? Sequence +0:13 add second child into first child ( temp float) +0:13 'x' ( global float) +0:13 'p' ( in float) +0:14 Branch: Return with expression +0:14 'x' ( global float) +0:18 Function Definition: @main( ( temp 4-component vector of float) +0:18 Function Parameters: +0:? Sequence +0:19 Branch: Return with expression +0:19 Construct vec4 ( temp 4-component vector of float) +0:19 add ( temp float) +0:19 add ( temp float) +0:19 add ( temp float) +0:19 add ( temp float) +0:19 'x' ( global float) +0:19 Function Call: f1( ( temp float) +0:19 Function Call: f1( ( temp float) +0:19 Function Call: f2(f1; ( temp float) +0:19 Constant: +0:19 5.000000 +0:19 Function Call: f2(f1; ( temp float) +0:19 'x' ( global float) +0:18 Function Definition: main( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:18 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'x' ( global float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 55 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "f1(" + Name 13 "f2(f1;" + Name 12 "p" + Name 17 "@main(" + Name 20 "x" + Name 22 "x" + Name 24 "x" + Name 44 "param" + Name 47 "param" + Name 55 "@entryPointOutput" + Decorate 55(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypePointer Function 6(float) + 11: TypeFunction 6(float) 10(ptr) + 15: TypeVector 6(float) 4 + 16: TypeFunction 15(fvec4) + 19: TypePointer Private 6(float) + 20(x): 19(ptr) Variable Private + 21: 6(float) Constant 1065353216 + 22(x): 19(ptr) Variable Private + 23: 6(float) Constant 1073741824 + 24(x): 19(ptr) Variable Private + 25: 6(float) Constant 1088421888 + 26: 6(float) Constant 1092616192 + 43: 6(float) Constant 1084227584 + 54: TypePointer Output 15(fvec4) +55(@entryPointOutput): 54(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Store 20(x) 21 + Store 22(x) 23 + Store 24(x) 25 + 56: 15(fvec4) FunctionCall 17(@main() + Store 55(@entryPointOutput) 56 + Return + FunctionEnd + 8(f1(): 6(float) Function None 7 + 9: Label + 27: 6(float) Load 22(x) + 28: 6(float) FAdd 27 26 + Store 22(x) 28 + 29: 6(float) Load 22(x) + ReturnValue 29 + FunctionEnd + 13(f2(f1;): 6(float) Function None 11 + 12(p): 10(ptr) FunctionParameter + 14: Label + 32: 6(float) Load 12(p) + 33: 6(float) Load 24(x) + 34: 6(float) FAdd 33 32 + Store 24(x) 34 + 35: 6(float) Load 24(x) + ReturnValue 35 + FunctionEnd + 17(@main(): 15(fvec4) Function None 16 + 18: Label + 44(param): 10(ptr) Variable Function + 47(param): 10(ptr) Variable Function + 38: 6(float) Load 20(x) + 39: 6(float) FunctionCall 8(f1() + 40: 6(float) FAdd 38 39 + 41: 6(float) FunctionCall 8(f1() + 42: 6(float) FAdd 40 41 + Store 44(param) 43 + 45: 6(float) FunctionCall 13(f2(f1;) 44(param) + 46: 6(float) FAdd 42 45 + 48: 6(float) Load 20(x) + Store 47(param) 48 + 49: 6(float) FunctionCall 13(f2(f1;) 47(param) + 50: 6(float) FAdd 46 49 + 51: 15(fvec4) CompositeConstruct 50 50 50 50 + ReturnValue 51 + FunctionEnd diff --git a/3rdparty/glslang/Test/baseResults/reflection.vert.out b/3rdparty/glslang/Test/baseResults/reflection.vert.out index 422c049be..52e16e608 100644 --- a/3rdparty/glslang/Test/baseResults/reflection.vert.out +++ b/3rdparty/glslang/Test/baseResults/reflection.vert.out @@ -1,107 +1,107 @@ reflection.vert Uniform reflection: -image_ui2D: offset -1, type 9063, size 1, index -1, binding -1 -sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1 -sampler_2DMSArray: offset -1, type 910b, size 1, index -1, binding -1 -anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 -s.a: offset -1, type 1404, size 1, index -1, binding -1 -named.scalar: offset 12, type 1404, size 1, index 1, binding -1 -m23: offset 16, type 8b67, size 1, index 0, binding -1 -scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 -c_m23: offset 16, type 8b67, size 1, index 2, binding -1 -c_scalarAfterm23: offset 64, type 1404, size 1, index 2, binding -1 -scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 -floatArray: offset 112, type 1406, size 5, index 0, binding -1 -scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 -named.memvec2: offset 48, type 8b50, size 1, index 1, binding -1 -named.memf1: offset 56, type 1406, size 1, index 1, binding -1 -named.memf2: offset 60, type 8b56, size 1, index 1, binding -1 -named.memf3: offset 64, type 1404, size 1, index 1, binding -1 -named.memvec2a: offset 72, type 8b50, size 1, index 1, binding -1 -named.m22: offset 80, type 8b5a, size 7, index 1, binding -1 -dm22: offset -1, type 8b5a, size 4, index -1, binding -1 -m22: offset 208, type 8b5a, size 3, index 0, binding -1 -nested.foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1 -nested.foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1 -nested.foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1 -nested.foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1 -deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 -deepC[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 -deepC[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 -deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepC[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 -deepD[0].iv4: offset -1, type 8b52, size 1, index -1, binding -1 -deepD[0].d2.i: offset -1, type 1404, size 1, index -1, binding -1 -deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[0].v3: offset -1, type 8b54, size 1, index -1, binding -1 -deepD[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 -deepD[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 -deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 -deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 -deepD[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 -abl.foo: offset 0, type 1406, size 1, index 7, binding -1 -abl2.foo: offset 0, type 1406, size 1, index 11, binding -1 -buf1.runtimeArray: offset 4, type 1406, size 4, index 12, binding -1 -buf2.runtimeArray.c: offset 8, type 1406, size 1, index 13, binding -1 -buf3.runtimeArray: offset 4, type 1406, size 0, index 14, binding -1 -buf4.runtimeArray.c: offset 8, type 1406, size 1, index 15, binding -1 -anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 -uf1: offset -1, type 1406, size 1, index -1, binding -1 -uf2: offset -1, type 1406, size 1, index -1, binding -1 -named.member3: offset 32, type 8b52, size 1, index 1, binding -1 +image_ui2D: offset -1, type 9063, size 1, index -1, binding -1, stages 1 +sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1, stages 1 +sampler_2DMSArray: offset -1, type 910b, size 1, index -1, binding -1, stages 1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1, stages 1 +s.a: offset -1, type 1404, size 1, index -1, binding -1, stages 1 +named.scalar: offset 12, type 1404, size 1, index 1, binding -1, stages 1 +m23: offset 16, type 8b67, size 1, index 0, binding -1, stages 1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1, stages 1 +c_m23: offset 16, type 8b67, size 1, index 2, binding -1, stages 1 +c_scalarAfterm23: offset 64, type 1404, size 1, index 2, binding -1, stages 1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1, stages 1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1, stages 1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1, stages 1 +named.memvec2: offset 48, type 8b50, size 1, index 1, binding -1, stages 1 +named.memf1: offset 56, type 1406, size 1, index 1, binding -1, stages 1 +named.memf2: offset 60, type 8b56, size 1, index 1, binding -1, stages 1 +named.memf3: offset 64, type 1404, size 1, index 1, binding -1, stages 1 +named.memvec2a: offset 72, type 8b50, size 1, index 1, binding -1, stages 1 +named.m22: offset 80, type 8b5a, size 7, index 1, binding -1, stages 1 +dm22: offset -1, type 8b5a, size 4, index -1, binding -1, stages 1 +m22: offset 208, type 8b5a, size 3, index 0, binding -1, stages 1 +nested.foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1, stages 1 +nested.foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1, stages 1 +nested.foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1, stages 1 +nested.foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1, stages 1 +deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1, stages 1 +deepC[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1, stages 1 +deepC[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1, stages 1 +deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepC[1].v3: offset -1, type 8b54, size 1, index -1, binding -1, stages 1 +deepD[0].iv4: offset -1, type 8b52, size 1, index -1, binding -1, stages 1 +deepD[0].d2.i: offset -1, type 1404, size 1, index -1, binding -1, stages 1 +deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[0].v3: offset -1, type 8b54, size 1, index -1, binding -1, stages 1 +deepD[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1, stages 1 +deepD[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1, stages 1 +deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1, stages 1 +deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1, stages 1 +deepD[1].v3: offset -1, type 8b54, size 1, index -1, binding -1, stages 1 +abl.foo: offset 0, type 1406, size 1, index 7, binding -1, stages 1 +abl2.foo: offset 0, type 1406, size 1, index 11, binding -1, stages 1 +buf1.runtimeArray: offset 4, type 1406, size 4, index 12, binding -1, stages 1 +buf2.runtimeArray.c: offset 8, type 1406, size 1, index 13, binding -1, stages 1 +buf3.runtimeArray: offset 4, type 1406, size 0, index 14, binding -1, stages 1 +buf4.runtimeArray.c: offset 8, type 1406, size 1, index 15, binding -1, stages 1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1, stages 1 +uf1: offset -1, type 1406, size 1, index -1, binding -1, stages 1 +uf2: offset -1, type 1406, size 1, index -1, binding -1, stages 1 +named.member3: offset 32, type 8b52, size 1, index 1, binding -1, stages 1 Uniform block reflection: -nameless: offset -1, type ffffffff, size 496, index -1, binding -1 -named: offset -1, type ffffffff, size 304, index -1, binding -1 -c_nameless: offset -1, type ffffffff, size 112, index -1, binding -1 -nested: offset -1, type ffffffff, size 32, index -1, binding -1 -abl[0]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl[1]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl[2]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl[3]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl2[0]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl2[1]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl2[2]: offset -1, type ffffffff, size 4, index -1, binding -1 -abl2[3]: offset -1, type ffffffff, size 4, index -1, binding -1 -buf1: offset -1, type ffffffff, size 4, index -1, binding -1 -buf2: offset -1, type ffffffff, size 4, index -1, binding -1 -buf3: offset -1, type ffffffff, size 4, index -1, binding -1 -buf4: offset -1, type ffffffff, size 4, index -1, binding -1 +nameless: offset -1, type ffffffff, size 496, index -1, binding -1, stages 0 +named: offset -1, type ffffffff, size 304, index -1, binding -1, stages 0 +c_nameless: offset -1, type ffffffff, size 112, index -1, binding -1, stages 0 +nested: offset -1, type ffffffff, size 32, index -1, binding -1, stages 0 +abl[0]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl[1]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl[2]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl[3]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl2[0]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl2[1]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl2[2]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +abl2[3]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +buf1: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +buf2: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +buf3: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 +buf4: offset -1, type ffffffff, size 4, index -1, binding -1, stages 0 Vertex attribute reflection: -attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 -attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 -attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 -attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 -attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 -gl_InstanceID: offset 0, type 1404, size 0, index 0, binding -1 +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1, stages 0 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1, stages 0 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1, stages 0 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1, stages 0 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1, stages 0 +gl_InstanceID: offset 0, type 1404, size 0, index 0, binding -1, stages 0 diff --git a/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out b/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out index 697df3e55..40552583f 100755 --- a/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out +++ b/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-int.frag.out @@ -1,85 +1,85 @@ spv.16bitstorage_Error-int.frag -ERROR: 0:54: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:54: 'structure: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:58: 'can't use with structs containing int16' : required extension not requested: Possible extensions include: +ERROR: 0:58: 'return: can't use with structs containing int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:61: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:61: 'int16_t: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:74: ''[' does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: +ERROR: 0:74: '[: does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:75: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +ERROR: 0:75: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int16_t' (or there is no acceptable conversion) ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform int16_t (or there is no acceptable conversion) ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +ERROR: 0:81: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:82: 'can't use with structs containing int16' : required extension not requested: Possible extensions include: +ERROR: 0:82: '=: can't use with structs containing int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:83: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:83: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:84: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:84: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:85: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:85: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int16_t' (or there is no acceptable conversion) -ERROR: 0:87: 'can't use with arrays containing int16' : required extension not requested: Possible extensions include: +ERROR: 0:87: '=: can't use with arrays containing int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:88: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:88: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: '16-bit array constructors not supported' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 16-bit arrays not supported' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:92: 'Can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: +ERROR: 0:92: 'constructor: can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 diff --git a/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out b/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out index 786c4d289..bff46d444 100755 --- a/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out +++ b/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error-uint.frag.out @@ -1,85 +1,85 @@ spv.16bitstorage_Error-uint.frag -ERROR: 0:54: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:54: 'structure: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:58: 'can't use with structs containing uint16' : required extension not requested: Possible extensions include: +ERROR: 0:58: 'return: can't use with structs containing uint16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:61: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:61: 'uint16_t: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:74: ''[' does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: +ERROR: 0:74: '[: does not operate on types containing (u)int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:75: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +ERROR: 0:75: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:76: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:77: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint16_t' (or there is no acceptable conversion) ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform uint16_t (or there is no acceptable conversion) ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: 'can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: +ERROR: 0:81: '.: can't swizzle types containing (u)int16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:82: 'can't use with structs containing uint16' : required extension not requested: Possible extensions include: +ERROR: 0:82: '=: can't use with structs containing uint16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:83: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:83: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:84: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:84: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:85: '(u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:85: 'qualifier: (u)int16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint16_t' (or there is no acceptable conversion) -ERROR: 0:87: 'can't use with arrays containing uint16' : required extension not requested: Possible extensions include: +ERROR: 0:87: '=: can't use with arrays containing uint16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:88: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:88: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: '16-bit array constructors not supported' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 16-bit arrays not supported' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:89: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 -ERROR: 0:92: 'Can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: +ERROR: 0:92: 'constructor: can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_int16 GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int16 diff --git a/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out b/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out index 6de8566cd..08c75e73b 100755 --- a/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out +++ b/3rdparty/glslang/Test/baseResults/spv.16bitstorage_Error.frag.out @@ -1,93 +1,93 @@ spv.16bitstorage_Error.frag -ERROR: 0:54: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:54: 'structure: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:58: 'can't use with structs containing float16' : required extension not requested: Possible extensions include: +ERROR: 0:58: 'return: can't use with structs containing float16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:61: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:61: 'float16_t: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:74: ''[' does not operate on types containing float16' : required extension not requested: Possible extensions include: +ERROR: 0:74: '[: does not operate on types containing float16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:75: 'can't swizzle types containing float16' : required extension not requested: Possible extensions include: +ERROR: 0:75: '.: can't swizzle types containing float16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:76: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:76: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:76: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:77: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:77: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform float16_t' (or there is no acceptable conversion) ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform float16_t (or there is no acceptable conversion) ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type ' const float' (or there is no acceptable conversion) -ERROR: 0:81: 'can't swizzle types containing float16' : required extension not requested: Possible extensions include: +ERROR: 0:81: '.: can't swizzle types containing float16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:82: 'can't use with structs containing float16' : required extension not requested: Possible extensions include: +ERROR: 0:82: '=: can't use with structs containing float16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:83: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:83: 'qualifier: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:84: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:84: 'qualifier: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:85: 'float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:85: 'qualifier: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform float16_t' and a right operand of type 'layout( column_major std140 offset=0) uniform float16_t' (or there is no acceptable conversion) -ERROR: 0:87: 'can't use with arrays containing float16' : required extension not requested: Possible extensions include: +ERROR: 0:87: '=: can't use with arrays containing float16' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:88: 'explicit types' : required extension not requested: Possible extensions include: +ERROR: 0:88: 'half floating-point suffix' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:88: 'explicit types' : required extension not requested: Possible extensions include: +ERROR: 0:88: 'half float literal' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:89: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:90: '16-bit array constructors not supported' : required extension not requested: Possible extensions include: +ERROR: 0:90: 'constructor: 16-bit arrays not supported' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:90: '16-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:90: 'constructor: 16-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 -ERROR: 0:93: 'Can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: +ERROR: 0:93: 'constructor: can't construct structure containing 16-bit type' : required extension not requested: Possible extensions include: GL_AMD_gpu_shader_half_float GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_float16 diff --git a/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out b/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out index 14104abd0..0562111ba 100755 --- a/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out +++ b/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-int.frag.out @@ -1,66 +1,66 @@ spv.8bitstorage_Error-int.frag -ERROR: 0:54: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:54: 'structure: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:58: 'can't use with structs containing int8' : required extension not requested: Possible extensions include: +ERROR: 0:58: 'return: can't use with structs containing int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:61: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:61: 'int8_t: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:74: ''[' does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: +ERROR: 0:74: '[: does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:75: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +ERROR: 0:75: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int8_t' (or there is no acceptable conversion) ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform int8_t (or there is no acceptable conversion) ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +ERROR: 0:81: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:82: 'can't use with structs containing int8' : required extension not requested: Possible extensions include: +ERROR: 0:82: '=: can't use with structs containing int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:83: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:83: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:84: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:84: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:85: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:85: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform int8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform int8_t' (or there is no acceptable conversion) -ERROR: 0:87: 'can't use with arrays containing int8' : required extension not requested: Possible extensions include: +ERROR: 0:87: '=: can't use with arrays containing int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:88: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:88: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: '8-bit array constructors not supported' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 8-bit arrays not supported' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:92: 'Can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: +ERROR: 0:92: 'constructor: can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 ERROR: 0:93: 'func2' : no matching overloaded function found diff --git a/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out b/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out index f8a9d90a6..93070f2ae 100755 --- a/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out +++ b/3rdparty/glslang/Test/baseResults/spv.8bitstorage_Error-uint.frag.out @@ -1,66 +1,66 @@ spv.8bitstorage_Error-uint.frag -ERROR: 0:54: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:54: 'structure: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:58: 'can't use with structs containing uint8' : required extension not requested: Possible extensions include: +ERROR: 0:58: 'return: can't use with structs containing uint8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:61: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:61: 'uint8_t: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:74: ''[' does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: +ERROR: 0:74: '[: does not operate on types containing (u)int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:75: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +ERROR: 0:75: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:76: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:76: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:77: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:77: 'built-in function: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 ERROR: 0:78: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint8_t' (or there is no acceptable conversion) ERROR: 0:79: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( column_major std140 offset=0) uniform uint8_t (or there is no acceptable conversion) ERROR: 0:80: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type ' const int' (or there is no acceptable conversion) -ERROR: 0:81: 'can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: +ERROR: 0:81: '.: can't swizzle types containing (u)int8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:82: 'can't use with structs containing uint8' : required extension not requested: Possible extensions include: +ERROR: 0:82: '=: can't use with structs containing uint8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:83: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:83: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:84: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:84: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:85: '(u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: +ERROR: 0:85: 'qualifier: (u)int8 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'layout( column_major std140 offset=0) uniform uint8_t' and a right operand of type 'layout( column_major std140 offset=0) uniform uint8_t' (or there is no acceptable conversion) -ERROR: 0:87: 'can't use with arrays containing uint8' : required extension not requested: Possible extensions include: +ERROR: 0:87: '=: can't use with arrays containing uint8' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:88: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:88: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: '8-bit array constructors not supported' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 8-bit arrays not supported' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:89: '8-bit vector constructors only take vector types' : required extension not requested: Possible extensions include: +ERROR: 0:89: 'constructor: 8-bit vectors only take vector types' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 -ERROR: 0:92: 'Can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: +ERROR: 0:92: 'constructor: can't construct structure containing 8-bit type' : required extension not requested: Possible extensions include: GL_KHX_shader_explicit_arithmetic_types GL_KHX_shader_explicit_arithmetic_types_int8 ERROR: 0:93: 'func2' : no matching overloaded function found diff --git a/3rdparty/glslang/Test/hlsl.staticFuncInit.frag b/3rdparty/glslang/Test/hlsl.staticFuncInit.frag new file mode 100755 index 000000000..f61c5661a --- /dev/null +++ b/3rdparty/glslang/Test/hlsl.staticFuncInit.frag @@ -0,0 +1,20 @@ +static float x = 1.0; + +float f1() +{ + static float x = 2.0; + x += 10.0; + return x; +} + +float f2(float p) +{ + static float x = 7.0; + x += p; + return x; +} + +float4 main() : SV_TARGET +{ + return x + f1() + f1() + f2(5.0) + f2(x); +} diff --git a/3rdparty/glslang/glslang/Include/revision.h b/3rdparty/glslang/glslang/Include/revision.h index b8d443b22..99c1d4f39 100644 --- a/3rdparty/glslang/glslang/Include/revision.h +++ b/3rdparty/glslang/glslang/Include/revision.h @@ -1,3 +1,3 @@ // This header is generated by the make-revision script. -#define GLSLANG_PATCH_LEVEL 2797 +#define GLSLANG_PATCH_LEVEL 2801 diff --git a/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp b/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp index 926cb4904..94af16700 100755 --- a/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp @@ -372,15 +372,12 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn } if (!base->isArray() && base->isVector()) { - if (base->getType().containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(loc, "'[' does not operate on types containing float16"); - } - if (base->getType().contains16BitInt()) { - requireInt16Arithmetic(loc, "'[' does not operate on types containing (u)int16"); - } - if (base->getType().contains8BitInt()) { - requireInt8Arithmetic(loc, "'[' does not operate on types containing (u)int8"); - } + if (base->getType().containsBasicType(EbtFloat16)) + requireFloat16Arithmetic(loc, "[", "does not operate on types containing float16"); + if (base->getType().contains16BitInt()) + requireInt16Arithmetic(loc, "[", "does not operate on types containing (u)int16"); + if (base->getType().contains8BitInt()) + requireInt8Arithmetic(loc, "[", "does not operate on types containing (u)int8"); } // check for constant folding @@ -721,15 +718,12 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm TSwizzleSelectors selectors; parseSwizzleSelector(loc, field, base->getVectorSize(), selectors); - if (base->isVector() && selectors.size() != 1 && base->getType().containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(loc, "can't swizzle types containing float16"); - } - if (base->isVector() && selectors.size() != 1 && base->getType().contains16BitInt()) { - requireInt16Arithmetic(loc, "can't swizzle types containing (u)int16"); - } - if (base->isVector() && selectors.size() != 1 && base->getType().contains8BitInt()) { - requireInt8Arithmetic(loc, "can't swizzle types containing (u)int8"); - } + if (base->isVector() && selectors.size() != 1 && base->getType().containsBasicType(EbtFloat16)) + requireFloat16Arithmetic(loc, ".", "can't swizzle types containing float16"); + if (base->isVector() && selectors.size() != 1 && base->getType().contains16BitInt()) + requireInt16Arithmetic(loc, ".", "can't swizzle types containing (u)int16"); + if (base->isVector() && selectors.size() != 1 && base->getType().contains8BitInt()) + requireInt8Arithmetic(loc, ".", "can't swizzle types containing (u)int8"); if (base->isScalar()) { if (selectors.size() == 1) @@ -1009,15 +1003,12 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn && fnCandidate->getNumExtensions()) requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); - if (builtIn && fnCandidate->getType().containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(loc, "float16 types can only be in uniform block or buffer storage"); - } - if (builtIn && fnCandidate->getType().contains16BitInt()) { - requireInt16Arithmetic(loc, "(u)int16 types can only be in uniform block or buffer storage"); - } - if (builtIn && fnCandidate->getType().contains8BitInt()) { - requireInt8Arithmetic(loc, "(u)int8 types can only be in uniform block or buffer storage"); - } + if (builtIn && fnCandidate->getType().containsBasicType(EbtFloat16)) + requireFloat16Arithmetic(loc, "built-in function", "float16 types can only be in uniform block or buffer storage"); + if (builtIn && fnCandidate->getType().contains16BitInt()) + requireInt16Arithmetic(loc, "built-in function", "(u)int16 types can only be in uniform block or buffer storage"); + if (builtIn && fnCandidate->getType().contains8BitInt()) + requireInt8Arithmetic(loc, "built-in function", "(u)int8 types can only be in uniform block or buffer storage"); if (arguments != nullptr) { // Make sure qualifications work for these arguments. @@ -1045,15 +1036,12 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction error(arguments->getLoc(), message, "writeonly", ""); } - if (builtIn && arg->getAsTyped()->getType().containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(arguments->getLoc(), "float16 types can only be in uniform block or buffer storage"); - } - if (builtIn && arg->getAsTyped()->getType().contains16BitInt()) { - requireInt16Arithmetic(arguments->getLoc(), "(u)int16 types can only be in uniform block or buffer storage"); - } - if (builtIn && arg->getAsTyped()->getType().contains8BitInt()) { - requireInt8Arithmetic(arguments->getLoc(), "(u)int8 types can only be in uniform block or buffer storage"); - } + if (builtIn && arg->getAsTyped()->getType().containsBasicType(EbtFloat16)) + requireFloat16Arithmetic(arguments->getLoc(), "built-in function", "float16 types can only be in uniform block or buffer storage"); + if (builtIn && arg->getAsTyped()->getType().contains16BitInt()) + requireInt16Arithmetic(arguments->getLoc(), "built-in function", "(u)int16 types can only be in uniform block or buffer storage"); + if (builtIn && arg->getAsTyped()->getType().contains8BitInt()) + requireInt8Arithmetic(arguments->getLoc(), "built-in function", "(u)int8 types can only be in uniform block or buffer storage"); // TODO 4.5 functionality: A shader will fail to compile // if the value passed to the memargument of an atomic memory function does not correspond to a buffer or @@ -2417,15 +2405,15 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T floatArgument = true; if (type.isStruct()) { if (function[arg].type->containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(loc, "Can't construct structure containing 16-bit type"); + requireFloat16Arithmetic(loc, "constructor", "can't construct structure containing 16-bit type"); } if (function[arg].type->containsBasicType(EbtUint16) || function[arg].type->containsBasicType(EbtInt16)) { - requireInt16Arithmetic(loc, "Can't construct structure containing 16-bit type"); + requireInt16Arithmetic(loc, "constructor", "can't construct structure containing 16-bit type"); } if (function[arg].type->containsBasicType(EbtUint8) || function[arg].type->containsBasicType(EbtInt8)) { - requireInt8Arithmetic(loc, "Can't construct structure containing 8-bit type"); + requireInt8Arithmetic(loc, "constructor", "can't construct structure containing 8-bit type"); } } } @@ -2435,13 +2423,10 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructF16Vec2: case EOpConstructF16Vec3: case EOpConstructF16Vec4: - if (type.isArray()) { - requireFloat16Arithmetic(loc, "16-bit array constructors not supported"); - } - - if (type.isVector() && function.getParamCount() != 1) { - requireFloat16Arithmetic(loc, "16-bit vector constructors only take vector types"); - } + if (type.isArray()) + requireFloat16Arithmetic(loc, "constructor", "16-bit arrays not supported"); + if (type.isVector() && function.getParamCount() != 1) + requireFloat16Arithmetic(loc, "constructor", "16-bit vectors only take vector types"); break; case EOpConstructUint16: case EOpConstructU16Vec2: @@ -2451,13 +2436,10 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructI16Vec2: case EOpConstructI16Vec3: case EOpConstructI16Vec4: - if (type.isArray()) { - requireInt16Arithmetic(loc, "16-bit array constructors not supported"); - } - - if (type.isVector() && function.getParamCount() != 1) { - requireInt16Arithmetic(loc, "16-bit vector constructors only take vector types"); - } + if (type.isArray()) + requireInt16Arithmetic(loc, "constructor", "16-bit arrays not supported"); + if (type.isVector() && function.getParamCount() != 1) + requireInt16Arithmetic(loc, "constructor", "16-bit vectors only take vector types"); break; case EOpConstructUint8: case EOpConstructU8Vec2: @@ -2467,13 +2449,10 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructI8Vec2: case EOpConstructI8Vec3: case EOpConstructI8Vec4: - if (type.isArray()) { - requireInt8Arithmetic(loc, "8-bit array constructors not supported"); - } - - if (type.isVector() && function.getParamCount() != 1) { - requireInt8Arithmetic(loc, "8-bit vector constructors only take vector types"); - } + if (type.isArray()) + requireInt8Arithmetic(loc, "constructor", "8-bit arrays not supported"); + if (type.isVector() && function.getParamCount() != 1) + requireInt8Arithmetic(loc, "constructor", "8-bit vectors only take vector types"); break; default: break; @@ -3162,15 +3141,12 @@ void TParseContext::parameterTypeCheck(const TSourceLoc& loc, TStorageQualifier if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque()) error(loc, "samplers and atomic_uints cannot be output parameters", type.getBasicTypeString().c_str(), ""); - if (!parsingBuiltins && type.containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(loc, "float16 types can only be in uniform block or buffer storage"); - } - if (!parsingBuiltins && type.contains16BitInt()) { - requireInt16Arithmetic(loc, "(u)int16 types can only be in uniform block or buffer storage"); - } - if (!parsingBuiltins && type.contains8BitInt()) { - requireInt8Arithmetic(loc, "(u)int8 types can only be in uniform block or buffer storage"); - } + if (!parsingBuiltins && type.containsBasicType(EbtFloat16)) + requireFloat16Arithmetic(loc, type.getBasicTypeString().c_str(), "float16 types can only be in uniform block or buffer storage"); + if (!parsingBuiltins && type.contains16BitInt()) + requireInt16Arithmetic(loc, type.getBasicTypeString().c_str(), "(u)int16 types can only be in uniform block or buffer storage"); + if (!parsingBuiltins && type.contains8BitInt()) + requireInt8Arithmetic(loc, type.getBasicTypeString().c_str(), "(u)int8 types can only be in uniform block or buffer storage"); } bool TParseContext::containsFieldWithBasicType(const TType& type, TBasicType basicType) @@ -3948,34 +3924,34 @@ void TParseContext::opaqueCheck(const TSourceLoc& loc, const TType& type, const void TParseContext::storage16BitAssignmentCheck(const TSourceLoc& loc, const TType& type, const char* op) { if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtFloat16)) - requireFloat16Arithmetic(loc, "can't use with structs containing float16"); + requireFloat16Arithmetic(loc, op, "can't use with structs containing float16"); if (type.isArray() && type.getBasicType() == EbtFloat16) - requireFloat16Arithmetic(loc, "can't use with arrays containing float16"); + requireFloat16Arithmetic(loc, op, "can't use with arrays containing float16"); if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtInt16)) - requireInt16Arithmetic(loc, "can't use with structs containing int16"); + requireInt16Arithmetic(loc, op, "can't use with structs containing int16"); if (type.isArray() && type.getBasicType() == EbtInt16) - requireInt16Arithmetic(loc, "can't use with arrays containing int16"); + requireInt16Arithmetic(loc, op, "can't use with arrays containing int16"); if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtUint16)) - requireInt16Arithmetic(loc, "can't use with structs containing uint16"); + requireInt16Arithmetic(loc, op, "can't use with structs containing uint16"); if (type.isArray() && type.getBasicType() == EbtUint16) - requireInt16Arithmetic(loc, "can't use with arrays containing uint16"); + requireInt16Arithmetic(loc, op, "can't use with arrays containing uint16"); if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtInt8)) - requireInt8Arithmetic(loc, "can't use with structs containing int8"); + requireInt8Arithmetic(loc, op, "can't use with structs containing int8"); if (type.isArray() && type.getBasicType() == EbtInt8) - requireInt8Arithmetic(loc, "can't use with arrays containing int8"); + requireInt8Arithmetic(loc, op, "can't use with arrays containing int8"); if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtUint8)) - requireInt8Arithmetic(loc, "can't use with structs containing uint8"); + requireInt8Arithmetic(loc, op, "can't use with structs containing uint8"); if (type.isArray() && type.getBasicType() == EbtUint8) - requireInt8Arithmetic(loc, "can't use with arrays containing uint8"); + requireInt8Arithmetic(loc, op, "can't use with arrays containing uint8"); } void TParseContext::specializationCheck(const TSourceLoc& loc, const TType& type, const char* op) @@ -5582,15 +5558,12 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden transparentOpaqueCheck(loc, type, identifier); if (type.getQualifier().storage != EvqUniform && type.getQualifier().storage != EvqBuffer) { - if (type.containsBasicType(EbtFloat16)) { - requireFloat16Arithmetic(loc, "float16 types can only be in uniform block or buffer storage"); - } - if (type.contains16BitInt()) { - requireInt16Arithmetic(loc, "(u)int16 types can only be in uniform block or buffer storage"); - } - if (type.contains8BitInt()) { - requireInt8Arithmetic(loc, "(u)int8 types can only be in uniform block or buffer storage"); - } + if (type.containsBasicType(EbtFloat16)) + requireFloat16Arithmetic(loc, "qualifier", "float16 types can only be in uniform block or buffer storage"); + if (type.contains16BitInt()) + requireInt16Arithmetic(loc, "qualifier", "(u)int16 types can only be in uniform block or buffer storage"); + if (type.contains8BitInt()) + requireInt8Arithmetic(loc, "qualifier", "(u)int8 types can only be in uniform block or buffer storage"); } if (identifier != "gl_FragCoord" && (publicType.shaderQualifiers.originUpperLeft || publicType.shaderQualifiers.pixelCenterInteger)) diff --git a/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp b/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp index 4f39f3453..dd3e159a2 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp @@ -1910,6 +1910,7 @@ const char* TProgram::getUniformBlockName(int index) const { return reflection int TProgram::getUniformBlockSize(int index) const { return reflection->getUniformBlock(index).size; } int TProgram::getUniformIndex(const char* name) const { return reflection->getIndex(name); } int TProgram::getUniformBinding(int index) const { return reflection->getUniform(index).getBinding(); } +EShLanguageMask TProgram::getUniformStages(int index) const { return reflection->getUniform(index).stages; } int TProgram::getUniformBlockBinding(int index) const { return reflection->getUniformBlock(index).getBinding(); } int TProgram::getUniformBlockIndex(int index) const { return reflection->getUniform(index).index; } int TProgram::getUniformBlockCounterIndex(int index) const { return reflection->getUniformBlock(index).counterIndex; } diff --git a/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp b/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp index add65ef4a..00af4d436 100755 --- a/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp @@ -831,7 +831,7 @@ void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool bu #endif E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); } } @@ -865,34 +865,49 @@ bool TParseVersions::int8Arithmetic() return extensionsTurnedOn(sizeof(extensions)/sizeof(extensions[0]), extensions); } -void TParseVersions::requireFloat16Arithmetic(const TSourceLoc& loc, const char* featureDesc) +void TParseVersions::requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { + TString combined; + combined = op; + combined += ": "; + combined += featureDesc; + const char* const extensions[] = { #if AMD_EXTENSIONS E_GL_AMD_gpu_shader_half_float, #endif E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, featureDesc); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, combined.c_str()); } -void TParseVersions::requireInt16Arithmetic(const TSourceLoc& loc, const char* featureDesc) +void TParseVersions::requireInt16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { + TString combined; + combined = op; + combined += ": "; + combined += featureDesc; + const char* const extensions[] = { #if AMD_EXTENSIONS E_GL_AMD_gpu_shader_int16, #endif E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, featureDesc); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, combined.c_str()); } -void TParseVersions::requireInt8Arithmetic(const TSourceLoc& loc, const char* featureDesc) +void TParseVersions::requireInt8Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { + TString combined; + combined = op; + combined += ": "; + combined += featureDesc; + const char* const extensions[] = { E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, featureDesc); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, combined.c_str()); } void TParseVersions::float16ScalarVectorCheck(const TSourceLoc& loc, const char* op, bool builtIn) @@ -905,7 +920,7 @@ void TParseVersions::float16ScalarVectorCheck(const TSourceLoc& loc, const char* E_GL_EXT_shader_16bit_storage, E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); } } @@ -915,7 +930,7 @@ void TParseVersions::explicitFloat32Check(const TSourceLoc& loc, const char* op, if (!builtIn) { const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float32}; - requireExtensions(loc, 2, extensions, "explicit types"); + requireExtensions(loc, 2, extensions, op); } } @@ -925,7 +940,7 @@ void TParseVersions::explicitFloat64Check(const TSourceLoc& loc, const char* op, if (!builtIn) { const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_float64}; - requireExtensions(loc, 2, extensions, "explicit types"); + requireExtensions(loc, 2, extensions, op); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); } @@ -937,7 +952,7 @@ void TParseVersions::explicitInt8Check(const TSourceLoc& loc, const char* op, bo if (! builtIn) { const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, 2, extensions, "explicit types"); + requireExtensions(loc, 2, extensions, op); } } @@ -963,7 +978,7 @@ void TParseVersions::explicitInt16Check(const TSourceLoc& loc, const char* op, b #endif E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); } } @@ -977,7 +992,7 @@ void TParseVersions::int16ScalarVectorCheck(const TSourceLoc& loc, const char* o E_GL_EXT_shader_16bit_storage, E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int16}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); } } @@ -988,7 +1003,7 @@ void TParseVersions::int8ScalarVectorCheck(const TSourceLoc& loc, const char* op E_GL_EXT_shader_8bit_storage, E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op); } } @@ -998,7 +1013,7 @@ void TParseVersions::explicitInt32Check(const TSourceLoc& loc, const char* op, b if (! builtIn) { const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int32}; - requireExtensions(loc, 2, extensions, "explicit types"); + requireExtensions(loc, 2, extensions, op); } } @@ -1009,7 +1024,7 @@ void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool buil const char* const extensions[3] = {E_GL_ARB_gpu_shader_int64, E_GL_KHX_shader_explicit_arithmetic_types, E_GL_KHX_shader_explicit_arithmetic_types_int64}; - requireExtensions(loc, 3, extensions, "shader int64"); + requireExtensions(loc, 3, extensions, op); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op); } diff --git a/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp b/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp old mode 100644 new mode 100755 index 9ab9deaa3..9248214b6 --- a/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp @@ -513,6 +513,9 @@ struct TDefaultIoResolverBase : public glslang::TIoMapResolver void endResolve(EShLanguage) override {} protected: + TDefaultIoResolverBase(TDefaultIoResolverBase&); + TDefaultIoResolverBase& operator=(TDefaultIoResolverBase&); + const TIntermediate &intermediate; int nextUniformLocation; int nextInputLocation; diff --git a/3rdparty/glslang/glslang/MachineIndependent/parseVersions.h b/3rdparty/glslang/glslang/MachineIndependent/parseVersions.h index a96f73aa1..f5e19769c 100755 --- a/3rdparty/glslang/glslang/MachineIndependent/parseVersions.h +++ b/3rdparty/glslang/glslang/MachineIndependent/parseVersions.h @@ -81,13 +81,13 @@ public: virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); virtual void float16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); virtual bool float16Arithmetic(); - virtual void requireFloat16Arithmetic(const TSourceLoc& loc, const char* featureDesc); + virtual void requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc); virtual void int16ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); virtual bool int16Arithmetic(); - virtual void requireInt16Arithmetic(const TSourceLoc& loc, const char* featureDesc); + virtual void requireInt16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc); virtual void int8ScalarVectorCheck(const TSourceLoc&, const char* op, bool builtIn = false); virtual bool int8Arithmetic(); - virtual void requireInt8Arithmetic(const TSourceLoc& loc, const char* featureDesc); + virtual void requireInt8Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc); #ifdef AMD_EXTENSIONS virtual void float16OpaqueCheck(const TSourceLoc&, const char* op, bool builtIn = false); #endif diff --git a/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp b/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp index 4818b1083..5d59f2895 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp @@ -778,6 +778,14 @@ void TReflection::buildCounterIndices(const TIntermediate& intermediate) } } +// build Shader Stages mask for all uniforms +void TReflection::buildUniformStageMask(const TIntermediate& intermediate) +{ + for (int i = 0; i < int(indexToUniform.size()); ++i) { + indexToUniform[i].stages = static_cast(indexToUniform[i].stages | 1 << intermediate.getStage()); + } +} + // Merge live symbols from 'intermediate' into the existing reflection database. // // Returns false if the input is too malformed to do this. @@ -803,6 +811,7 @@ bool TReflection::addStage(EShLanguage stage, const TIntermediate& intermediate) } buildCounterIndices(intermediate); + buildUniformStageMask(intermediate); return true; } diff --git a/3rdparty/glslang/glslang/MachineIndependent/reflection.h b/3rdparty/glslang/glslang/MachineIndependent/reflection.h index bf233e33e..689d656b3 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/reflection.h +++ b/3rdparty/glslang/glslang/MachineIndependent/reflection.h @@ -57,7 +57,7 @@ class TObjectReflection { public: TObjectReflection(const TString& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex) : name(pName), offset(pOffset), - glDefineType(pGLDefineType), size(pSize), index(pIndex), counterIndex(-1), type(pType.clone()) { } + glDefineType(pGLDefineType), size(pSize), index(pIndex), counterIndex(-1), type(pType.clone()), stages(EShLanguageMask(0)) { } const TType* const getType() const { return type; } int getBinding() const @@ -68,8 +68,8 @@ public: } void dump() const { - printf("%s: offset %d, type %x, size %d, index %d, binding %d", - name.c_str(), offset, glDefineType, size, index, getBinding() ); + printf("%s: offset %d, type %x, size %d, index %d, binding %d, stages %d", + name.c_str(), offset, glDefineType, size, index, getBinding(), stages ); if (counterIndex != -1) printf(", counter %d", counterIndex); @@ -84,6 +84,7 @@ public: int size; // data size in bytes for a block, array size for a (non-block) object that's an array int index; int counterIndex; + EShLanguageMask stages; protected: TObjectReflection() : offset(-1), glDefineType(-1), size(-1), index(-1), type(nullptr) { } @@ -157,6 +158,7 @@ protected: friend class glslang::TReflectionTraverser; void buildCounterIndices(const TIntermediate&); + void buildUniformStageMask(const TIntermediate& intermediate); void buildAttributeReflection(EShLanguage, const TIntermediate&); // Need a TString hash: typedef std::unordered_map TNameToIndex; diff --git a/3rdparty/glslang/glslang/Public/ShaderLang.h b/3rdparty/glslang/glslang/Public/ShaderLang.h index 24c237b20..83744d4a3 100755 --- a/3rdparty/glslang/glslang/Public/ShaderLang.h +++ b/3rdparty/glslang/glslang/Public/ShaderLang.h @@ -671,6 +671,7 @@ public: int getUniformBlockSize(int blockIndex) const; // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) int getUniformIndex(const char* name) const; // can be used for glGetUniformIndices() int getUniformBinding(int index) const; // returns the binding number + EShLanguageMask getUniformStages(int index) const; // returns Shaders Stages where a Uniform is present int getUniformBlockBinding(int index) const; // returns the block binding number int getUniformBlockIndex(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) int getUniformBlockCounterIndex(int index) const; // returns block index of associated counter. diff --git a/3rdparty/glslang/gtests/Hlsl.FromFile.cpp b/3rdparty/glslang/gtests/Hlsl.FromFile.cpp old mode 100644 new mode 100755 index 861c09883..635c7a87a --- a/3rdparty/glslang/gtests/Hlsl.FromFile.cpp +++ b/3rdparty/glslang/gtests/Hlsl.FromFile.cpp @@ -318,6 +318,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.self_cast.frag", "main"}, {"hlsl.snorm.uav.comp", "main"}, {"hlsl.staticMemberFunction.frag", "main"}, + {"hlsl.staticFuncInit.frag", "main"}, {"hlsl.store.rwbyteaddressbuffer.type.comp", "main"}, {"hlsl.stringtoken.frag", "main"}, {"hlsl.string.frag", "main"}, diff --git a/3rdparty/glslang/hlsl/hlslGrammar.cpp b/3rdparty/glslang/hlsl/hlslGrammar.cpp index cb0587791..6acaccbf7 100755 --- a/3rdparty/glslang/hlsl/hlslGrammar.cpp +++ b/3rdparty/glslang/hlsl/hlslGrammar.cpp @@ -126,8 +126,6 @@ bool HlslGrammar::acceptIdentifier(HlslToken& idToken) // bool HlslGrammar::acceptCompilationUnit() { - TIntermNode* unitNode = nullptr; - if (! acceptDeclarationList(unitNode)) return false; @@ -324,7 +322,7 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) // node for all the initializers. Each function created is a top-level node to grow // into the passed-in nodeList. // -// If 'nodeList' is passed in as non-null, it must an aggregate to extend for +// If 'nodeList' is passed in as non-null, it must be an aggregate to extend for // each top-level node the declaration creates. Otherwise, if only one top-level // node in generated here, that is want is returned in nodeList. // @@ -489,7 +487,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) // Declare the variable and add any initializer code to the AST. // The top-level node is always made into an aggregate, as that's // historically how the AST has been. - initializers = intermediate.growAggregate(initializers, + initializers = intermediate.growAggregate(initializers, parseContext.declareVariable(idToken.loc, *fullName, variableType, expressionNode), idToken.loc); } @@ -506,11 +504,16 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) if (initializers != nullptr) initializers->setOperator(EOpSequence); - // Add the initializers' aggregate to the nodeList we were handed. - if (nodeList) - nodeList = intermediate.growAggregate(nodeList, initializers); - else - nodeList = initializers; + // if we have a locally scoped static, it needs a globally scoped initializer + if (declaredType.getQualifier().storage == EvqGlobal && !parseContext.symbolTable.atGlobalLevel()) { + unitNode = intermediate.growAggregate(unitNode, initializers, idToken.loc); + } else { + // Add the initializers' aggregate to the nodeList we were handed. + if (nodeList) + nodeList = intermediate.growAggregate(nodeList, initializers); + else + nodeList = initializers; + } // SEMICOLON if (! acceptTokenClass(EHTokSemicolon)) { @@ -518,13 +521,11 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) // was actually an assignment such as "float = 4", where "float" is an identifier. // We put the token back to let further parsing happen for cases where that may // happen. This errors on the side of caution, and mostly triggers the error. - if (peek() == EHTokAssign || peek() == EHTokLeftBracket || peek() == EHTokDot || peek() == EHTokComma) { + if (peek() == EHTokAssign || peek() == EHTokLeftBracket || peek() == EHTokDot || peek() == EHTokComma) recedeToken(); - return false; - } else { + else expected(";"); - return false; - } + return false; } return true; @@ -651,7 +652,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) do { switch (peek()) { case EHTokStatic: - qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + qualifier.storage = EvqGlobal; break; case EHTokExtern: // TODO: no meaning in glslang? diff --git a/3rdparty/glslang/hlsl/hlslGrammar.h b/3rdparty/glslang/hlsl/hlslGrammar.h index 046f7957e..323f3b13f 100755 --- a/3rdparty/glslang/hlsl/hlslGrammar.h +++ b/3rdparty/glslang/hlsl/hlslGrammar.h @@ -52,7 +52,7 @@ namespace glslang { public: HlslGrammar(HlslScanContext& scanner, HlslParseContext& parseContext) : HlslTokenStream(scanner), parseContext(parseContext), intermediate(parseContext.intermediate), - typeIdentifiers(false) { } + typeIdentifiers(false), unitNode(nullptr) { } virtual ~HlslGrammar() { } bool parse(); @@ -133,6 +133,7 @@ namespace glslang { HlslParseContext& parseContext; // state of parsing and helper functions for building the intermediate TIntermediate& intermediate; // the final product, the intermediate representation, includes the AST bool typeIdentifiers; // shader uses some types as identifiers + TIntermNode* unitNode; }; } // end namespace glslang diff --git a/3rdparty/glslang/hlsl/hlslParseHelper.cpp b/3rdparty/glslang/hlsl/hlslParseHelper.cpp index 76fdfabcc..9471f7746 100755 --- a/3rdparty/glslang/hlsl/hlslParseHelper.cpp +++ b/3rdparty/glslang/hlsl/hlslParseHelper.cpp @@ -7866,6 +7866,8 @@ TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, const TStrin // Returning nullptr just means there is no code to execute to handle the // initializer, which will, for example, be the case for constant initializers. // +// Returns a subtree that accomplished the initialization. +// TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyped* initializer, TVariable* variable) { //