Skip to content

Instantly share code, notes, and snippets.

@reeselevine
Created May 13, 2024 03:32
Show Gist options
  • Save reeselevine/e76be1bc37125b35d7274010fa5c731d to your computer and use it in GitHub Desktop.
Save reeselevine/e76be1bc37125b35d7274010fa5c731d to your computer and use it in GitHub Desktop.
Log from trying to build a project using webgpu-distribution with dawn backend
cmake_minimum_required(VERSION 3.10)
project(GPUTester)
include(FetchContent)
# Set C++ standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Include webgpu directory, to define the 'webgpu' target
FetchContent_Declare(
webgpu
GIT_REPOSITORY https://github.com/eliemichel/WebGPU-distribution
GIT_TAG 022cf0b
)
FetchContent_MakeAvailable(webgpu)
# Add the stress executable
add_executable(StressTester
StressTester.cpp
stress.cpp)
# Add the test executable
add_executable(LitmusTester
LitmusTester.cpp
test.cpp)
# Add the 'webgpu' target as a dependency
target_link_libraries(StressTester PRIVATE webgpu)
target_link_libraries(LitmusTester PRIVATE webgpu)
reeselevine@toucan:~/CPU_MemModel_Sync_Test/gpu$ mkdir build
reeselevine@toucan:~/CPU_MemModel_Sync_Test/gpu$ cd build/
reeselevine@toucan:~/CPU_MemModel_Sync_Test/gpu/build$ cmake -DCMAKE_BUILD_TYPE=Release ..
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using Dawn backend for WebGPU
-- Dawn build D3D11 backend: OFF
-- Dawn build D3D12 backend: OFF
-- Dawn build Metal backend: OFF
-- Dawn build Vulkan backend: ON
-- Dawn build OpenGL backend: OFF
-- Dawn build OpenGL ES backend: OFF
-- Dawn build Null backend: OFF
-- Dawn build with asserts in all configurations: OFF
-- Dawn build Wayland support: OFF
-- Dawn build X11 support: ON
-- Dawn build GLFW support: ON
-- Dawn build Windows UI support: OFF
-- Dawn build and use DXC: OFF
-- Dawn disable DXC asserts in debug builds: OFF
-- Dawn build samples: OFF
-- Dawn build Node bindings: OFF
-- Dawn build Swiftshader: OFF
-- Dawn build benchmarks: OFF
-- Dawn build PIC: OFF
-- Dawn build with ASAN: OFF
-- Dawn build with TSAN: OFF
-- Dawn build with MSAN: OFF
-- Dawn build with UBSAN: OFF
-- Tint build command line executable tools: ON
-- Tint build SPIR-V reader: OFF
-- Tint build WGSL reader: ON
-- Tint build GLSL writer: OFF
-- Tint build GLSL validator: ON
-- Tint build HLSL writer: OFF
-- Tint build MSL writer: OFF
-- Tint build SPIR-V writer: ON
-- Tint build WGSL writer: ON
-- Tint build Syntax Tree writer: OFF
-- Tint build fuzzers: OFF
-- Tint build AST fuzzer: OFF
-- Tint build regex fuzzer: OFF
-- Tint build benchmarks: OFF
-- Tint build tests: OFF
-- Tint build checking [chromium-style]: OFF
-- Tint external benchmark corpus dir:
-- Found Python3: /usr/bin/python3.10 (found version "3.10.14") found components: Interpreter
-- Dawn: using python at /usr/bin/python3.10
-- Running fetch_dawn_dependencies:
-- -- Listing dependencies from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src
-- -- Fetching dependency 'third_party/abseil-cpp'
-- -- Shallow cloning 'https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp' at 'a64dd87cec79c80c88190265cfea0cbd4027677f' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/abseil-cpp'
-- -- Checking out tag 'a64dd87cec79c80c88190265cfea0cbd4027677f'
-- -- Fetching dependency 'third_party/glfw'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/glfw/glfw' at '62e175ef9fae75335575964c845a302447c012c7' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/glfw'
-- -- Checking out tag '62e175ef9fae75335575964c845a302447c012c7'
-- -- Fetching dependency 'third_party/jinja2'
-- -- Shallow cloning 'https://chromium.googlesource.com/chromium/src/third_party/jinja2' at 'e2d024354e11cc6b041b0cff032d73f0c7e43a07' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/jinja2'
-- -- Checking out tag 'e2d024354e11cc6b041b0cff032d73f0c7e43a07'
-- -- Fetching dependency 'third_party/khronos/EGL-Registry'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry' at '7dea2ed79187cd13f76183c4b9100159b9e3e071' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/khronos/EGL-Registry'
-- -- Checking out tag '7dea2ed79187cd13f76183c4b9100159b9e3e071'
-- -- Fetching dependency 'third_party/khronos/OpenGL-Registry'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry' at '5bae8738b23d06968e7c3a41308568120943ae77' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/khronos/OpenGL-Registry'
-- -- Checking out tag '5bae8738b23d06968e7c3a41308568120943ae77'
-- -- Fetching dependency 'third_party/markupsafe'
-- -- Shallow cloning 'https://chromium.googlesource.com/chromium/src/third_party/markupsafe' at '0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/markupsafe'
-- -- Checking out tag '0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794'
-- -- Fetching dependency 'third_party/vulkan-deps'
-- -- Shallow cloning 'https://chromium.googlesource.com/vulkan-deps' at '4737535cad1ab7165a86b34503f70bbd6c624efd' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps'
-- -- Checking out tag '4737535cad1ab7165a86b34503f70bbd6c624efd'
-- -- Listing dependencies from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps
-- -- Fetching dependency 'glslang/src'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang' at '68df2230566b02c6495ffd8c200db523392fa797' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/glslang/src'
-- -- Checking out tag '68df2230566b02c6495ffd8c200db523392fa797'
-- -- Listing dependencies from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/glslang/src
-- -- Fetching dependency 'spirv-headers/src'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers' at '4f7b471f1a66b6d06462cd4ba57628cc0cd087d7' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/spirv-headers/src'
-- -- Checking out tag '4f7b471f1a66b6d06462cd4ba57628cc0cd087d7'
-- -- Fetching dependency 'spirv-tools/src'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools' at 'dadb3012d51702cccae71967f9f2acaec8f393d5' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/spirv-tools/src'
-- -- Checking out tag 'dadb3012d51702cccae71967f9f2acaec8f393d5'
-- -- Listing dependencies from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/spirv-tools/src
-- -- Fetching dependency 'vulkan-headers/src'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers' at 'eaa319dade959cb61ed2229c8ea42e307cc8f8b3' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/vulkan-headers/src'
-- -- Checking out tag 'eaa319dade959cb61ed2229c8ea42e307cc8f8b3'
-- -- Fetching dependency 'vulkan-loader/src'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader' at 'c684aed192ce1bb202dedd775ea18f066c8c55cb' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/vulkan-loader/src'
-- -- Checking out tag 'c684aed192ce1bb202dedd775ea18f066c8c55cb'
-- -- Fetching dependency 'vulkan-utility-libraries/src'
-- -- Shallow cloning 'https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries' at 'd0670f9ff0da1a2f7596d4861f601dc4c8810aea' into '/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/vulkan-utility-libraries/src'
-- -- Checking out tag 'd0670f9ff0da1a2f7596d4861f601dc4c8810aea'
-- Dawn: using SPIRV-Headers at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/spirv-headers/src
-- Dawn: using SPIRV-Tools at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/spirv-tools/src
-- spirv-tools not linked - illegal SPIRV may be generated for HLSL
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Dawn: using GLFW at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/glfw
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Including X11 support
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Dawn: using Abseil at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/abseil-cpp
-- Performing Test ABSL_INTERNAL_AT_LEAST_CXX17
-- Performing Test ABSL_INTERNAL_AT_LEAST_CXX17 - Success
-- Performing Test ABSL_INTERNAL_AT_LEAST_CXX20
-- Performing Test ABSL_INTERNAL_AT_LEAST_CXX20 - Failed
-- Dawn: using Vulkan-Headers at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/vulkan-deps/vulkan-headers/src
-- Dawn: using jinja2 at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/jinja2
-- Dawn: using markupsafe at /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/third_party/markupsafe
-- Configuring done (49.2s)
-- Generating done (0.3s)
-- Build files have been written to: /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build
reeselevine@toucan:~/CPU_MemModel_Sync_Test/gpu/build$ cmake --build .
[ 0%] Dawn: Generating files for Dawn C++ headers.
[ 0%] Built target dawncpp_headers
[ 0%] Dawn: Generating files for Dawn headers.
[ 0%] Built target dawn_headers
[ 0%] Building CXX object _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/__/__/__/gen/src/dawn/common/GPUInfo_autogen.cpp.o
[ 0%] Building CXX object _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/AlignedAlloc.cpp.o
[ 0%] Building CXX object _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/Assert.cpp.o
[ 0%] Building CXX object _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/DynamicLib.cpp.o
[ 0%] Building CXX object _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/GPUInfo.cpp.o
In file included from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:28:
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:64:33: error: ‘PCIVendorID’ was not declared in this scope
64 | int CompareWindowsDriverVersion(PCIVendorID vendorId,
| ^~~~~~~~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:65:33: error: expected primary-expression before ‘const’
65 | const DriverVersion& version1,
| ^~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:66:33: error: expected primary-expression before ‘const’
66 | const DriverVersion& version2);
| ^~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:66:62: error: expression list treated as compound expression in initializer [-fpermissive]
66 | const DriverVersion& version2);
| ^
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:75:16: error: ‘PCIDeviceID’ was not declared in this scope
75 | bool IsSkylake(PCIDeviceID deviceId);
| ^~~~~~~~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:92:5: error: redefinition of ‘int dawn::gpu_info::CompareWindowsDriverVersion’
92 | int CompareWindowsDriverVersion(PCIVendorID vendorId,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:28:
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:64:5: note: ‘int dawn::gpu_info::CompareWindowsDriverVersion’ previously defined here
64 | int CompareWindowsDriverVersion(PCIVendorID vendorId,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:92:33: error: ‘PCIVendorID’ was not declared in this scope
92 | int CompareWindowsDriverVersion(PCIVendorID vendorId,
| ^~~~~~~~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:93:33: error: expected primary-expression before ‘const’
93 | const DriverVersion& version1,
| ^~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:94:33: error: expected primary-expression before ‘const’
94 | const DriverVersion& version2) {
| ^~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:117:6: error: redefinition of ‘bool dawn::gpu_info::IsSkylake’
117 | bool IsSkylake(PCIDeviceID deviceId) {
| ^~~~~~~~~
In file included from /home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:28:
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.h:75:6: note: ‘bool dawn::gpu_info::IsSkylake’ previously defined here
75 | bool IsSkylake(PCIDeviceID deviceId);
| ^~~~~~~~~
/home/reeselevine/CPU_MemModel_Sync_Test/gpu/build/_deps/dawn-src/src/dawn/common/GPUInfo.cpp:117:16: error: ‘PCIDeviceID’ was not declared in this scope
117 | bool IsSkylake(PCIDeviceID deviceId) {
| ^~~~~~~~~~~
cc1plus: error: unrecognized command line option ‘-Wno-unknown-warning-option’ [-Werror]
cc1plus: error: unrecognized command line option ‘-Wno-deprecated-builtins’ [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [_deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/build.make:195: _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/GPUInfo.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:9731: _deps/dawn-build/src/dawn/common/CMakeFiles/dawn_common.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment