Skip to content
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

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

dawn: new recipe #24735

wants to merge 4 commits into from

Conversation

valgur
Copy link
Contributor

@valgur valgur commented Jul 27, 2024

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 single webgpu_dawn shared library, to avoid having to model the complex internals and interdependencies of the individual components in package_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 from spirv-tools directly, so it can't be cleanly unvendored. This would not be much of an issue on its own, but glslang also depends on and exposes spirv-tools (optionally, but enabled by default). I opted to provide the exact same version of spirv-tools as used by glslang 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.


@conan-center-bot

This comment has been minimized.

This was referenced Jul 27, 2024
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

It's the default behavior and install() does nothing when it is disabled.
@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 4 (272eeb3af0be16b04bd8f7dd0ee23f01ae5eb26c):

  • dawn/cci.20240726:
    Error running command conan info dawn/cci.20240726@#3958bee736688833fe8c0ffd650d676d --json {jsonName} --dry-build -pr {profileName}:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=5
    os=Linux
    
    ...
    ERROR: Failed requirement 'vulkan-utility-libraries/1.3.268.0' from 'dawn/cci.20240726'
    ERROR: Unable to find 'vulkan-utility-libraries/1.3.268.0' in remotes
    

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 ❌

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

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 @conan-io/barbarians on the PR and we will help you.

Failure in build 4 (272eeb3af0be16b04bd8f7dd0ee23f01ae5eb26c):

  • dawn/cci.20240726:
    Error running command conan graph info --requires dawn/cci.20240726@#3958bee736688833fe8c0ffd650d676d --build dawn/cci.20240726@#3958bee736688833fe8c0ffd650d676d -f json -pr:h /home/conan/workspace/prod-v2/bsr/69471/dadad/profile_linux_11_libstdcpp11_17_gcc_release_64.-shared-False.txt -pr:b /home/conan/workspace/prod-v2/bsr/69471/dadad/profile_linux_11_libstdcpp11_17_gcc_release_64..txt:
    ======== Computing dependency graph ========
    abseil/20240116.2: Not found in local cache, looking in remotes...
    abseil/20240116.2: Checking remote: conan-center
    abseil/20240116.2: Downloaded recipe revision 996c9b7c09f1f561bdf2e2f3c889a8cb
    spirv-headers/1.3.268.0: Not found in local cache, looking in remotes...
    spirv-headers/1.3.268.0: Checking remote: conan-center
    spirv-headers/1.3.268.0: Downloaded recipe revision 0909100ca76cc871d870de79077289fe
    spirv-tools/1.3.268.0: Not found in local cache, looking in remotes...
    spirv-tools/1.3.268.0: Checking remote: conan-center
    spirv-tools/1.3.268.0: Downloaded recipe revision af55590b11a70128d8e76cf7222176e5
    cmake/3.30.1: Not found in local cache, looking in remotes...
    cmake/3.30.1: Checking remote: conan-center
    cmake/3.30.1: Downloaded recipe revision 6d832cf2d46f6ec969ca5ed5b41f91eb
    glslang/1.3.268.0: Not found in local cache, looking in remotes...
    glslang/1.3.268.0: Checking remote: conan-center
    glslang/1.3.268.0: Downloaded recipe revision 4ddaf5ce2fae427c9c2857bfd4273eb4
    glfw/3.4: Not found in local cache, looking in remotes...
    glfw/3.4: Checking remote: conan-center
    glfw/3.4: Downloaded recipe revision 556ce0bc9e0abc75fe4378b86e566fc4
    opengl/system: Not found in local cache, looking in remotes...
    opengl/system: Checking remote: conan-center
    opengl/system: Downloaded recipe revision 4df6fecde4084386beded3ed0e56e4ea
    xorg/system: Not found in local cache, looking in remotes...
    xorg/system: Checking remote: conan-center
    xorg/system: Downloaded recipe revision f626cbdd0ba57d9c53bce2d8b9362fad
    vulkan-headers/1.3.268.0: Not found in local cache, looking in remotes...
    vulkan-headers/1.3.268.0: Checking remote: conan-center
    vulkan-headers/1.3.268.0: Downloaded recipe revision 830f0f3a78551d9966e3aca789fbaa98
    vulkan-utility-libraries/1.3.268.0: Not found in local cache, looking in remotes...
    vulkan-utility-libraries/1.3.268.0: Checking remote: conan-center
    vulkan-utility-libraries/1.3.268.0: Checking remote: c3i_PR-v2-24735
    Graph root
        cli
    Requirements
        abseil/20240116.2#996c9b7c09f1f561bdf2e2f3c889a8cb - Downloaded (conan-center)
        dawn/cci.20240726#3958bee736688833fe8c0ffd650d676d - Cache
        glfw/3.4#556ce0bc9e0abc75fe4378b86e566fc4 - Downloaded (conan-center)
        glslang/1.3.268.0#4ddaf5ce2fae427c9c2857bfd4273eb4 - Downloaded (conan-center)
        opengl/system#4df6fecde4084386beded3ed0e56e4ea - Downloaded (conan-center)
        spirv-headers/1.3.268.0#0909100ca76cc871d870de79077289fe - Downloaded (conan-center)
        spirv-tools/1.3.268.0#af55590b11a70128d8e76cf7222176e5 - Downloaded (conan-center)
        vulkan-headers/1.3.268.0#830f0f3a78551d9966e3aca789fbaa98 - Downloaded (conan-center)
        xorg/system#f626cbdd0ba57d9c53bce2d8b9362fad - Downloaded (conan-center)
    Build requirements
        cmake/3.30.1#6d832cf2d46f6ec969ca5ed5b41f91eb - Downloaded (conan-center)
    Resolved version ranges
        cmake/[>=3.17.2 <4]: cmake/3.30.1
    ERROR: Package 'vulkan-utility-libraries/1.3.268.0' not resolved: Unable to find 'vulkan-utility-libraries/1.3.268.0' in remotes.
    

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[request] dawn
2 participants