Getting a few errors when building against Dawn directly (with the raytracing stuff disabled) as of July 10.
I am just building with the July 10 commit of Dawn to avoid these but this is going to be an issue moving forward.
Successfully generated bindings!
> webgpu@0.1.13 build /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi
> node ./build.js
Compiling bindings for version 0.0.1...
Platform: linux | x64
Node: 13.0.1
V8: 7.8.279.17-node.14
Copying files..
Done!
Compiling bindings..
Copying /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/libdawn_proc.so -> ./generated/0.0.1/linux/build/Release//libdawn_proc.so
Copying /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/libdawn_wire.so -> ./generated/0.0.1/linux/build/Release//libdawn_wire.so
Copying /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/libc++.so -> ./generated/0.0.1/linux/build/Release//libc++.so
Copying ./src/ -> ./generated/0.0.1/linux/build/Release//../../src/
Copying /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/libdawn_native.so -> ./generated/0.0.1/linux/build/Release//libdawn_native.so
Copying /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/libshaderc_spvc.so -> ./generated/0.0.1/linux/build/Release//libshaderc_spvc.so
Copying /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/libshaderc.so -> ./generated/0.0.1/linux/build/Release//libshaderc.so
make: Entering directory '/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/generated/0.0.1/linux/build'
TOUCH Release/obj.target/action_after_build.stamp
CXX(target) Release/obj.target/addon-linux/src/index.o
CXX(target) Release/obj.target/addon-linux/src/BackendBinding.o
CXX(target) Release/obj.target/addon-linux/src/DescriptorDecoder.o
../src/DescriptorDecoder.cpp:3141:118: error: use of undeclared identifier 'GPUQuerySet'
if (!(obj.Get("occlusionQuerySet").IsObject()) || !(obj.Get("occlusionQuerySet").As<Napi::Object>().InstanceOf(GPUQuerySet::constructor.Value()))) {
^
../src/DescriptorDecoder.cpp:3147:55: error: unknown type name 'GPUQuerySet'; did you mean 'WGPUQuerySet'?
descriptor.occlusionQuerySet = Napi::ObjectWrap<GPUQuerySet>::Unwrap(obj.Get("occlusionQuerySet").As<Napi::Object>())->instance;
^~~~~~~~~~~
WGPUQuerySet
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/gen/src/include/dawn/webgpu.h:70:34: note: 'WGPUQuerySet' declared here
typedef struct WGPUQuerySetImpl* WGPUQuerySet;
^
In file included from ../src/DescriptorDecoder.cpp:5:
In file included from ../src/DescriptorDecoder.h:8:
In file included from ../src/GPUDevice.h:4:
In file included from ../src/Base.h:2:
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1688:19: error: member pointer refers into non-class type 'WGPUQuerySetImpl *'
typedef void (T::*InstanceVoidMethodCallback)(const CallbackInfo& info);
^
../src/DescriptorDecoder.cpp:3147:44: note: in instantiation of template class 'Napi::ObjectWrap<WGPUQuerySetImpl *>' requested here
descriptor.occlusionQuerySet = Napi::ObjectWrap<GPUQuerySet>::Unwrap(obj.Get("occlusionQuerySet").As<Napi::Object>())->instance;
^
In file included from ../src/DescriptorDecoder.cpp:5:
In file included from ../src/DescriptorDecoder.h:8:
In file included from ../src/GPUDevice.h:4:
In file included from ../src/Base.h:2:
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1689:26: error: member pointer refers into non-class type 'WGPUQuerySetImpl *'
typedef Napi::Value (T::*InstanceMethodCallback)(const CallbackInfo& info);
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1690:26: error: member pointer refers into non-class type 'WGPUQuerySetImpl *'
typedef Napi::Value (T::*InstanceGetterCallback)(const CallbackInfo& info);
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1691:19: error: member pointer refers into non-class type 'WGPUQuerySetImpl *'
typedef void (T::*InstanceSetterCallback)(const CallbackInfo& info, const Napi::Value& value);
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1757:31: error: multiple overloads of 'InstanceMethod' instantiate to the same signature 'Napi::ObjectWrap<WGPUQuerySetImpl *>::PropertyDescriptor (const char *, Napi::ObjectWrap<WGPUQuerySetImpl *>::InstanceMethodCallback, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor<WGPUQuerySetImpl *> (const char *, int, napi_property_attributes, void *)')
static PropertyDescriptor InstanceMethod(const char* utf8name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1753:31: note: previous declaration is here
static PropertyDescriptor InstanceMethod(const char* utf8name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1765:31: error: multiple overloads of 'InstanceMethod' instantiate to the same signature 'Napi::ObjectWrap<WGPUQuerySetImpl *>::PropertyDescriptor (Napi::Symbol, Napi::ObjectWrap<WGPUQuerySetImpl *>::InstanceMethodCallback, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor<WGPUQuerySetImpl *> (Napi::Symbol, int, napi_property_attributes, void *)')
static PropertyDescriptor InstanceMethod(Symbol name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1761:31: note: previous declaration is here
static PropertyDescriptor InstanceMethod(Symbol name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1774:31: error: multiple overloads of 'InstanceMethod' instantiate to the same signature 'Napi::ObjectWrap<WGPUQuerySetImpl *>::PropertyDescriptor (const char *, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor<WGPUQuerySetImpl *> (const char *, napi_property_attributes, void *)')
static PropertyDescriptor InstanceMethod(const char* utf8name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1770:31: note: previous declaration is here
static PropertyDescriptor InstanceMethod(const char* utf8name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1782:31: error: multiple overloads of 'InstanceMethod' instantiate to the same signature 'Napi::ObjectWrap<WGPUQuerySetImpl *>::PropertyDescriptor (Napi::Symbol, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor<WGPUQuerySetImpl *> (Napi::Symbol, napi_property_attributes, void *)')
static PropertyDescriptor InstanceMethod(Symbol name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1778:31: note: previous declaration is here
static PropertyDescriptor InstanceMethod(Symbol name,
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1867:23: error: multiple overloads of 'WrappedMethod' instantiate to the same signature 'napi_value (napi_env, napi_callback_info) noexcept' (aka 'napi_value__ *(napi_env__ *, napi_callback_info__ *) noexcept')
static napi_value WrappedMethod(napi_env env, napi_callback_info info) noexcept;
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1864:23: note: previous declaration is here
static napi_value WrappedMethod(napi_env env, napi_callback_info info) noexcept;
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1873:23: error: multiple overloads of 'WrappedMethod' instantiate to the same signature 'napi_value (napi_env, napi_callback_info) noexcept' (aka 'napi_value__ *(napi_env__ *, napi_callback_info__ *) noexcept')
static napi_value WrappedMethod(napi_env env, napi_callback_info info) noexcept;
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1864:23: note: previous declaration is here
static napi_value WrappedMethod(napi_env env, napi_callback_info info) noexcept;
^
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1890:47: error: value of type 'nullptr_t' is not implicitly convertible to 'Napi::ObjectWrap<WGPUQuerySetImpl *>::InstanceGetterCallback' (aka 'int')
static napi_callback WrapGetter(GetterTag<nullptr>) noexcept { return nullptr; }
^~~~~~~
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/node_modules/node-addon-api/napi.h:1894:47: error: value of type 'nullptr_t' is not implicitly convertible to 'Napi::ObjectWrap<WGPUQuerySetImpl *>::InstanceSetterCallback' (aka 'int')
static napi_callback WrapSetter(SetterTag<nullptr>) noexcept { return nullptr; }
^~~~~~~
../src/DescriptorDecoder.cpp:6542:118: error: use of undeclared identifier 'GPUQuerySet'
if (!(obj.Get("occlusionQuerySet").IsObject()) || !(obj.Get("occlusionQuerySet").As<Napi::Object>().InstanceOf(GPUQuerySet::constructor.Value()))) {
^
../src/DescriptorDecoder.cpp:6548:55: error: unknown type name 'GPUQuerySet'; did you mean 'WGPUQuerySet'?
descriptor.occlusionQuerySet = Napi::ObjectWrap<GPUQuerySet>::Unwrap(obj.Get("occlusionQuerySet").As<Napi::Object>())->instance;
^~~~~~~~~~~
WGPUQuerySet
/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/dawn/out/Shared/gen/src/include/dawn/webgpu.h:70:34: note: 'WGPUQuerySet' declared here
typedef struct WGPUQuerySetImpl* WGPUQuerySet;
^
../src/DescriptorDecoder.cpp:6548:124: error: member reference base type 'WGPUQuerySetImpl *' is not a structure or union
descriptor.occlusionQuerySet = Napi::ObjectWrap<GPUQuerySet>::Unwrap(obj.Get("occlusionQuerySet").As<Napi::Object>())->instance;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ ~~~~~~~~
17 errors generated.
make: *** [addon-linux.target.mk:183: Release/obj.target/addon-linux/src/DescriptorDecoder.o] Error 1
make: Leaving directory '/var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/generated/0.0.1/linux/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/var/lib/gitlab-runner/.nvm/versions/node/v13.0.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:210:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.4.0-42-generic
gyp ERR! command "/var/lib/gitlab-runner/.nvm/versions/node/v13.0.1/bin/node" "/var/lib/gitlab-runner/.nvm/versions/node/v13.0.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build"
gyp ERR! cwd /var/lib/gitlab-runner/builds/KbbcVqyB/0/Distributed-Compute-Protocol/webgpu-napi-build/build/webgpu-napi/generated/0.0.1/linux
gyp ERR! node -v v13.0.1
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
Failed to compile bindings for 0.0.1!
Getting a few errors when building against Dawn directly (with the raytracing stuff disabled) as of July 10. I am just building with the July 10 commit of Dawn to avoid these but this is going to be an issue moving forward.