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

Get build flow cleaned up #32

Closed
3 of 14 tasks
sfricke-samsung opened this issue Jul 30, 2020 · 4 comments
Closed
3 of 14 tasks

Get build flow cleaned up #32

sfricke-samsung opened this issue Jul 30, 2020 · 4 comments

Comments

@sfricke-samsung
Copy link
Contributor

sfricke-samsung commented Jul 30, 2020

In order to improve adding more layers in the future and making sure everything works on major platforms (Windows, Linux, Android, etc) there are a few things that could be fixed

  • script with known good file to grab things like Vulkan Headers (same as Validation Layers and glslang use)
  • Directory structure for common files and for each layer
  • CMake flag to build only single layer
  • Make sure it builds on
    • Windows
    • Linux
    • Android
  • Way to test against CTS (can be done in CI)
    • Run with Validation Layers behind to make sure valid Vulkan is being produced if calls are made
  • README directions to build (point else where how to use)
  • Version for each layer per change (to be queried in VkLayerProperties::implementationVersion
  • Release binaries hosted on GitHub ( like how Validation Layers release for Android )

Bonus:

  • clang-format check in CI (would just use the same config as validation layers)
  • Markdown write up with some information about background of each layer added
@Tobski
Copy link

Tobski commented Jul 30, 2020

CMake flag to build only single layer

For this, I'd kind of expect there to be a single layer; otherwise we're just introducing a bunch of overhead by indirecting through all the layers. The same conclusion was reached by the (now singular) validation layer. Build flags to exclude extensions from the build wouldn't be a terrible idea though.

We should probably come up with a set of guidelines on how to contribute extensions (e.g. conventions they should use like how to adhere to build flags), and how to ship this layer with an application.

We should also add an implementation of VK_EXT_private_data as a part of the baseline changes as well, since it's almost guaranteed we'll need that for future extensions, otherwise this wheel will simply be reinvented over and over again (maybe that should be a separate issue?).

@djdeath
Copy link
Member

djdeath commented Jul 30, 2020

There are CI Linux/MacOS builds. It's based off what the validation layers have.

@sfricke-samsung
Copy link
Contributor Author

The difference is the old Validation Layers made no sense by themselves. For this, I wouldn't want to force the overhead of one extension layer over the other

As fo VK_EXT_private_data, there will be implementations that don't support it and that needs to be accounted for

@sfricke-samsung
Copy link
Contributor Author

So basically everything I wanted out of this issue was added with the sync2 layer

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

No branches or pull requests

3 participants