novelrt / NovelRT

A cross-platform 2D game engine accompanied by a strong toolset for visual novels.
MIT License
184 stars 42 forks source link

Vulkan-Loader should support building Wayland support if detected #478

Closed capnkenny closed 2 years ago

capnkenny commented 2 years ago

Atm, if the Vulkan dependencies are vended by NovelRT, by default we will turn off Wayland support as not having Wayland will force Linux users to fail at the CMake level. (An example is a WSLg instance w/o Wayland support)

We should add a check to see if Wayland is found, and if so we'll want to turn the BUILD_WSI_WAYLAND_SUPPORT flag back on.

RubyNova commented 2 years ago

This bug itself is something I have questions about.

Like.

If you're on an X11 machine and want to publish a game to a Wayland one, what happens?

capnkenny commented 2 years ago

You need to build on a machine with Wayland support in order to publish with Wayland support, if I understand correctly, so essentially the build machine would need to support both to produce a binary that supports both.

The Vulkan SDK for Linux appears to provide this prebuilt so it's not a concern for SDK users, however I can't confirm yet as the LunarG site is still down.

RubyNova commented 2 years ago

Okay - in that case we should definitely note that if users want to deploy to other machines, that they use the SDK, and then we figure out how to make that work later

capnkenny commented 2 years ago

We can, if desired, force users to only use the SDK instead of vendoring? Just putting the option out there

RubyNova commented 2 years ago

No I don't think that's required unless we want to give Linux special behaviour here. On other platforms its a non-issue and so we should just probably make sure we can support building for Wayland with some kind of detection, but note it in our docs that if you want to deploy to Wayland from X11 you can't do it this way. Its easier and keeps the behaviour more in-line.

RubyNova commented 2 years ago

We're not doing this anymore due to a change in the fact we are no longer self-scaffolding Vulkan. This will be removed in the future.