-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dawn: new recipe #24735
base: master
Are you sure you want to change the base?
dawn: new recipe #24735
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
It's the default behavior and install() does nothing when it is disabled.
Conan v1 pipeline ❌Failure in build 4 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. Conan v2 pipeline ❌
The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping Failure in build 4 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. |
Summary
Changes to recipe: dawn/cci.20240726
Motivation
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
https://dawn.googlesource.com/dawn/
Notably, the WebGPU API is not relevant only for webdev, but is also a vendor-neutral and portable API for both graphics and GPGPU programming in general.
Dawn is a dependency for Skia and gpu.cpp.
Details
I opted to keep the default
DAWN_BUILD_MONOLITHIC_LIBRARY=ON
option, that outputs just a singlewebgpu_dawn
shared library, to avoid having to model the complex internals and interdependencies of the individual components inpackage_info()
. These can be added later, if needed.The dependencies of the library are mostly straightforward, except for
spirv-tools
. Dawn uses the internal headers and symbols fromspirv-tools
directly, so it can't be cleanly unvendored. This would not be much of an issue on its own, butglslang
also depends on and exposesspirv-tools
(optionally, but enabled by default). I opted to provide the exact same version ofspirv-tools
as used byglslang
as sources to the library and hide the CMake targets from Conan to avoid conflicts.I have only tested it with Vulkan on Linux currently. Should also definitely test against DirectX on Windows and Metal on macOS before merging.
glslang-default-resource-limits
component #24734