KhronosGroup / SPIRV-Tools

Apache License 2.0
1.08k stars 555 forks source link

error: ‘SpvMemorySemanticsVolatileMask’ was not declared in this scope. #2812

Closed mmtrt closed 5 years ago

mmtrt commented 5 years ago

Building on ubuntu 18.03.3 and known good tag that builds fine is v2019.3

git bisect log from master as bad to v2019.3 as good.

``` $ git bisect bad $ git bisect good v2019.3 Bisecting: 68 revisions left to test after this (roughly 6 steps) [5a93e07392970291589592faa27b2d44f2fdeb1b] Refactor reducer options (#2709) $ git bisect bad Bisecting: 34 revisions left to test after this (roughly 5 steps) [2c0111e6eba779cf30e8c7f5a733ea0762895ba0] Add validation for SPV_EXT_fragment_shader_interlock (#2650) $ git bisect bad Bisecting: 16 revisions left to test after this (roughly 4 steps) [4c73ebc46fe9b6cd9ae7e0ee24cf6b81c58610d2] Enable the base branch to be overridden in the code format check script (#2607) $ git bisect good Bisecting: 8 revisions left to test after this (roughly 3 steps) [f051812343eb6ed34f3a327e1e82bebc06aa6a0f] Add WebGPU specific fuzzer for validation (#2628) $ git bisect good Bisecting: 4 revisions left to test after this (roughly 2 steps) [e7866de4b1dc2a7e8672867caeb0bdca49f458d3] Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580) $ git bisect good Bisecting: 2 revisions left to test after this (roughly 1 step) [f99d7ad5c045e56fefe0e32ab6d82cc24590541f] Validate OpenCL rules for ImageRead and OpImageSampleExplicitLod (#2643) $ git bisect good Bisecting: 0 revisions left to test after this (roughly 1 step) [699e167d78eee66232f140d4dcf5e9453de2dc74] Remove asserts from GetUnderlyingType (#2646) $ git bisect good 2c0111e6eba779cf30e8c7f5a733ea0762895ba0 is the first bad commit commit 2c0111e6eba779cf30e8c7f5a733ea0762895ba0 Author: Jeff Bolz Date: Mon Jun 3 09:55:07 2019 -0500 Add validation for SPV_EXT_fragment_shader_interlock (#2650) :100644 100644 06d881193d3399df523ee2be3d0e17587b20fd54 8e4437893242b0de316b4d0af8e85a7c72104d17 M Android.mk :100644 100644 5c6f311d2ea29032bbdf5d5ac2cbdfdb236727ac fb9e8a4f0930b215f7122efccd293df0f4d1f2d2 M BUILD.gn :100644 100644 3c5361fc29fe3ae3dd9e10f2ead50555ad2318d0 9a8e92265d7b24f637b6634fde85a4e7ae5a037b M DEPS :040000 040000 2826f20f2fca82014fd5c18ba69378b109773752 400e25e95c9f26f279a79dbcbd09df47a643aefb M source :040000 040000 24321ebb7b2c01bf5152b54b2efd739607a5b76b 02fe420fce70f0278bba0ef5e0b75656b269ca44 M test ```

build log where error happens

``` [ 24%] Building CXX object source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate.cpp.o cd /home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu/source && /usr/bin/c++ -DSPIRV_CHECK_CONTEXT -DSPIRV_COLOR_TERMINAL -DSPIRV_LINUX -DSPIRV_TIMER_ENABLED -DSPIRV_TOOLS_IMPLEMENTATION -DSPIRV_TOOLS_SHAREDLIB -DSPIRV_Tools_shared_EXPORTS -I/home/ubuntu/Downloads/spirv-tools-2019.4 -I/home/ubuntu/Downloads/spirv-tools-2019.4/include -I/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/home/ubuntu/Downloads/spirv-tools-2019.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -Werror -std=c++11 -fno-exceptions -fno-rtti -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion -std=gnu++11 -o CMakeFiles/SPIRV-Tools-shared.dir/val/validate.cpp.o -c /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate.cpp /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp: In function ‘spv_result_t spvtools::val::AtomicsPass(spvtools::val::ValidationState_t&, const spvtools::val::Instruction*)’: /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp:235:29: error: ‘SpvMemorySemanticsVolatileMask’ was not declared in this scope ((equal_value & SpvMemorySemanticsVolatileMask) ^ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp:235:29: note: suggested alternative: ‘SpvMemorySemanticsReleaseMask’ ((equal_value & SpvMemorySemanticsVolatileMask) ^ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SpvMemorySemanticsReleaseMask [ 25%] Building CXX object source/CMakeFiles/SPIRV-Tools.dir/val/validate_bitwise.cpp.o cd /home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu/source && /usr/bin/c++ -DSPIRV_CHECK_CONTEXT -DSPIRV_COLOR_TERMINAL -DSPIRV_LINUX -DSPIRV_TIMER_ENABLED -I/home/ubuntu/Downloads/spirv-tools-2019.4 -I/home/ubuntu/Downloads/spirv-tools-2019.4/include -I/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/home/ubuntu/Downloads/spirv-tools-2019.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -fPIC -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -Werror -std=c++11 -fno-exceptions -fno-rtti -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion -std=gnu++11 -o CMakeFiles/SPIRV-Tools.dir/val/validate_bitwise.cpp.o -c /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_bitwise.cpp source/CMakeFiles/SPIRV-Tools.dir/build.make:791: recipe for target 'source/CMakeFiles/SPIRV-Tools.dir/val/validate_atomics.cpp.o' failed make[3]: *** [source/CMakeFiles/SPIRV-Tools.dir/val/validate_atomics.cpp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... [ 25%] Building CXX object source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate_adjacency.cpp.o cd /home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu/source && /usr/bin/c++ -DSPIRV_CHECK_CONTEXT -DSPIRV_COLOR_TERMINAL -DSPIRV_LINUX -DSPIRV_TIMER_ENABLED -DSPIRV_TOOLS_IMPLEMENTATION -DSPIRV_TOOLS_SHAREDLIB -DSPIRV_Tools_shared_EXPORTS -I/home/ubuntu/Downloads/spirv-tools-2019.4 -I/home/ubuntu/Downloads/spirv-tools-2019.4/include -I/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/home/ubuntu/Downloads/spirv-tools-2019.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -Werror -std=c++11 -fno-exceptions -fno-rtti -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion -std=gnu++11 -o CMakeFiles/SPIRV-Tools-shared.dir/val/validate_adjacency.cpp.o -c /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_adjacency.cpp [ 25%] Building CXX object source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate_annotation.cpp.o cd /home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu/source && /usr/bin/c++ -DSPIRV_CHECK_CONTEXT -DSPIRV_COLOR_TERMINAL -DSPIRV_LINUX -DSPIRV_TIMER_ENABLED -DSPIRV_TOOLS_IMPLEMENTATION -DSPIRV_TOOLS_SHAREDLIB -DSPIRV_Tools_shared_EXPORTS -I/home/ubuntu/Downloads/spirv-tools-2019.4 -I/home/ubuntu/Downloads/spirv-tools-2019.4/include -I/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/home/ubuntu/Downloads/spirv-tools-2019.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -Werror -std=c++11 -fno-exceptions -fno-rtti -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion -std=gnu++11 -o CMakeFiles/SPIRV-Tools-shared.dir/val/validate_annotation.cpp.o -c /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_annotation.cpp make[3]: Leaving directory '/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu' CMakeFiles/Makefile2:602: recipe for target 'source/CMakeFiles/SPIRV-Tools.dir/all' failed make[2]: *** [source/CMakeFiles/SPIRV-Tools.dir/all] Error 2 make[2]: *** Waiting for unfinished jobs.... [ 26%] Building CXX object source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate_arithmetics.cpp.o cd /home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu/source && /usr/bin/c++ -DSPIRV_CHECK_CONTEXT -DSPIRV_COLOR_TERMINAL -DSPIRV_LINUX -DSPIRV_TIMER_ENABLED -DSPIRV_TOOLS_IMPLEMENTATION -DSPIRV_TOOLS_SHAREDLIB -DSPIRV_Tools_shared_EXPORTS -I/home/ubuntu/Downloads/spirv-tools-2019.4 -I/home/ubuntu/Downloads/spirv-tools-2019.4/include -I/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/home/ubuntu/Downloads/spirv-tools-2019.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -Werror -std=c++11 -fno-exceptions -fno-rtti -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion -std=gnu++11 -o CMakeFiles/SPIRV-Tools-shared.dir/val/validate_arithmetics.cpp.o -c /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_arithmetics.cpp [ 26%] Building CXX object source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate_atomics.cpp.o cd /home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu/source && /usr/bin/c++ -DSPIRV_CHECK_CONTEXT -DSPIRV_COLOR_TERMINAL -DSPIRV_LINUX -DSPIRV_TIMER_ENABLED -DSPIRV_TOOLS_IMPLEMENTATION -DSPIRV_TOOLS_SHAREDLIB -DSPIRV_Tools_shared_EXPORTS -I/home/ubuntu/Downloads/spirv-tools-2019.4 -I/home/ubuntu/Downloads/spirv-tools-2019.4/include -I/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/home/ubuntu/Downloads/spirv-tools-2019.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -Werror -std=c++11 -fno-exceptions -fno-rtti -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion -std=gnu++11 -o CMakeFiles/SPIRV-Tools-shared.dir/val/validate_atomics.cpp.o -c /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp: In function ‘spv_result_t spvtools::val::AtomicsPass(spvtools::val::ValidationState_t&, const spvtools::val::Instruction*)’: /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp:235:29: error: ‘SpvMemorySemanticsVolatileMask’ was not declared in this scope ((equal_value & SpvMemorySemanticsVolatileMask) ^ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/ubuntu/Downloads/spirv-tools-2019.4/source/val/validate_atomics.cpp:235:29: note: suggested alternative: ‘SpvMemorySemanticsReleaseMask’ ((equal_value & SpvMemorySemanticsVolatileMask) ^ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SpvMemorySemanticsReleaseMask source/CMakeFiles/SPIRV-Tools-shared.dir/build.make:791: recipe for target 'source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate_atomics.cpp.o' failed make[3]: *** [source/CMakeFiles/SPIRV-Tools-shared.dir/val/validate_atomics.cpp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu' CMakeFiles/Makefile2:462: recipe for target 'source/CMakeFiles/SPIRV-Tools-shared.dir/all' failed make[2]: *** [source/CMakeFiles/SPIRV-Tools-shared.dir/all] Error 2 make[2]: Leaving directory '/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu' Makefile:143: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/ubuntu/Downloads/spirv-tools-2019.4/obj-x86_64-linux-gnu' dh_auto_build: cd obj-x86_64-linux-gnu && make -j4 returned exit code 2 debian/rules:4: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 ```
s-perron commented 5 years ago

Did you update your repo to the latest spirv-header in the external directory? That is where it should be defined.

mmtrt commented 5 years ago

I was using tagged released headers in my header deb pkg and headers in external dir doesn't work for some reason in deb build system so I tried to update header pkg with master now it seems built fine. I guess have to create tag+git header pkg.