Anomalies in latest DawnNative.h?

73 views
Skip to first unread message

Mark Sibly

unread,
May 19, 2023, 8:48:56 PM5/19/23
to Dawn Graphics
I've just updated to the latest dawn source and am having a few issues with the include/dawn/native/DawnNative.h file.

It tries to include a file which doesn't appear to exist (webgpu_cpp_chained_struct.h):


...and it has a using statement that causes a weird duplicate definition error (using dawn::native::DawnInstanceDescriptor;):


Commenting these lines out appears to work fine, but perhaps this file is obsolete and I should be using a different one?

Austin Eng

unread,
May 19, 2023, 9:24:27 PM5/19/23
to Mark Sibly, Dawn Graphics
Hi Mark,

dawn/webgpu_cpp_chained_struct.h is a generated file - just like dawn/webgpu.h and dawn/webgpu_cpp.h. See here. Could your generated headers be stale?

wgpu::DawnInstanceDescriptor is removed from dawn/webgpu_cpp.h and moved to DawnNative.h. The future way it should be used is dawn::native::DawnInstanceDescriptor instead of the wgpu:: namespace.
(separately, I'm realizing we should figure out a better way to warn people it's moving).


--
You received this message because you are subscribed to the Google Groups "Dawn Graphics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dawn-graphic...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dawn-graphics/afcc6df3-b873-434c-9202-c3b26491ecf7n%40googlegroups.com.

Mark Sibly

unread,
May 19, 2023, 11:08:36 PM5/19/23
to Austin Eng, Dawn Graphics
> dawn/webgpu_cpp_chained_struct.h is a generated file
Ok, it sounds like I've probably just broken my cmake setup somehow, thanks for the clue!

Jean-Colas Prunier

unread,
May 22, 2023, 9:21:07 AM5/22/23
to Dawn Graphics

(separately, I'm realizing we should figure out a better way to warn people it's moving).

Yes this would be great)!

Dominic Cerisano

unread,
May 22, 2023, 11:10:41 AM5/22/23
to Jean-Colas Prunier, Dawn Graphics
I found that structuring a  project as a 'superbuild' to contain rolling projects like Dawn as git submodules is a solution to this problem.

The superbuild is essentially a collection of static (pinned) commits, one for each submodule. Everything is built with those commits as baselines, rather than their latest commits. This allows the superbuild to have fine grained version control over the submodules.

You can roll the submodules (advance the pinned commit toward the latest commit) in a controlled way, resolving issues in a controlled way.

Projects like Dawn have some very strong engineering pressure rolling them forward, so it does become a constant game of catch-up trying to keep your submodules pinned  (rolled up) to the latest commit of these rolling projects.

Dominic Cerisano




NOTICE: Confidential message which may be privileged. Unauthorized use/disclosure prohibited. 
AVIS : Message confidentiel dont le contenu peut être privilégié. Utilisation/divulgation interdites sans permission. 


Reply all
Reply to author
Forward
0 new messages