ishitatsuyuki / LatencyFleX

Vendor agnostic latency reduction middleware. An alternative to NVIDIA Reflex.
Apache License 2.0
797 stars 20 forks source link

Move the meson build files to the root of the repo #26

Closed orowith2os closed 1 year ago

orowith2os commented 1 year ago

Currently LatencyFleX has all the appropriate build files in layer/, however this can be a bit weird for packagers like Flatpak as ideally they would use something along the lines of buildsystem: meson and that'll handle most everything. This isn't the case, and it can complicate the build process a bit.

ishitatsuyuki commented 1 year ago

The separation is done for a good reason. The files at the root directory are the core logic files, while the files in the layer folder are specific to the integration work.

I don't see how it would complicate packaging in general, for Arch it's just calling cd before invoking meson. If Flatpak's configuration file doesn't play nicely with this honestly I think it's their problem.

orowith2os commented 1 year ago

Flatpak does a lot of work for you so you only have to specify some simple build arguments, but with how it's done currently it complicates it because Flatpak prefers using their buildsystem types.

For example: https://github.com/orowith2os/latencyflex-flatpak/blob/d0ed4b599906c6498fa1c440cdf94036845993a7/org.freedesktop.Platform.VulkanLayer.LatencyFleX.yml#L44 Here, I should be able to just specify meson as the buildsystem and it'll handle everything for me. But instead it needs simple which makes it a lot harder to manage.

Your latencyflex2 repo will also have a similar issue.

ishitatsuyuki commented 1 year ago

Thank you for explaining this, but once again this just seems to be a Flatpak design issue. Other package build systems as well as CI systems seem to handle this without any trouble (in fact, this is a common monorepo pattern). So I would appreciate if you take this packaging complaint upstream.

orowith2os commented 1 year ago

Turns out it was already possible in Flatpak, just undocumented. Now I've gotta clear up some other build errors (robin_hood).