maierfelix / maierfelix/webgpu

Upstream Dawn

Open
#25 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
248
Forks
17
PR merge metrics
No merged PRs in 30d

Description

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().InstanceOf(GPUQuerySet::constructor.Value()))) {
^
../src/DescriptorDecoder.cpp:3147:55: error: unknown type name 'GPUQuerySet'; did you mean 'WGPUQuerySet'?
descriptor.occlusionQuerySet = Napi::ObjectWrap::Unwrap(obj.Get("occlusionQuerySet").As())->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' requested here
descriptor.occlusionQuerySet = Napi::ObjectWrap::Unwrap(obj.Get("occlusionQuerySet").As())->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::PropertyDescriptor (const char *, Napi::ObjectWrap::InstanceMethodCallback, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor (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::PropertyDescriptor (Napi::Symbol, Napi::ObjectWrap::InstanceMethodCallback, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor (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::PropertyDescriptor (const char *, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor (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::PropertyDescriptor (Napi::Symbol, napi_property_attributes, void *)' (aka 'ClassPropertyDescriptor (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::InstanceGetterCallback' (aka 'int')
static napi_callback WrapGetter(GetterTag) 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::InstanceSetterCallback' (aka 'int')
static napi_callback WrapSetter(SetterTag) noexcept { return nullptr; }
^~~~~~~
../src/DescriptorDecoder.cpp:6542:118: error: use of undeclared identifier 'GPUQuerySet'
if (!(obj.Get("occlusionQuerySet").IsObject()) || !(obj.Get("occlusionQuerySet").As().InstanceOf(GPUQuerySet::constructor.Value()))) {
^
../src/DescriptorDecoder.cpp:6548:55: error: unknown type name 'GPUQuerySet'; did you mean 'WGPUQuerySet'?
descriptor.occlusionQuerySet = Napi::ObjectWrap::Unwrap(obj.Get("occlusionQuerySet").As())->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::Unwrap(obj.Get("occlusionQuerySet").As())->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!
```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/DescriptorDecoder.cpp at the reported GPUQuerySet errors and review the build output from build.js while using a current Dawn revision with raytracing disabled. Done means the webgpu-napi native addon builds successfully against that Dawn version without the reported type and binding errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, node.js
Domain
api, build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.