diff options
| author | xXJsonDeruloXx <danielhimebauch@gmail.com> | 2026-08-01 15:02:20 -0400 |
|---|---|---|
| committer | xXJsonDeruloXx <danielhimebauch@gmail.com> | 2026-08-01 15:02:20 -0400 |
| commit | 98106c79126fc01e96b7b718977b857cb216922f (patch) | |
| tree | ee3877f9ebc1e794c74511867bced4e6e6ab37b1 /docs | |
| parent | d859de9a5849f99824ba98a69d6658d9f7724bdf (diff) | |
| download | decky-lsfg-vk-agent/bionic-fg-x86_64-experiment.tar.gz decky-lsfg-vk-agent/bionic-fg-x86_64-experiment.zip | |
Add bionic-fg glibc x86_64 experimentagent/bionic-fg-x86_64-experiment
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/bionic-fg-experiment.md | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/docs/bionic-fg-experiment.md b/docs/bionic-fg-experiment.md new file mode 100644 index 0000000..e633611 --- /dev/null +++ b/docs/bionic-fg-experiment.md @@ -0,0 +1,71 @@ +# Bionic FG glibc experiment + +This branch vendors the `main` snapshot of +[bionic-fg](https://github.com/xXJSONDeruloXx/bionic-fg) and adds a Linux/glibc +build mode for an x86_64 Vulkan implicit layer. + +The vendored snapshot is based on upstream `main` at `9a81c36`; the matching +source changes are also available on bionic-fg branch +`agent/glibc-x86_64-layer`. + +The Android implementation uses AHardwareBuffer imports and JNI. The glibc +variant omits JNI/AHardwareBuffer and uses the existing single-device path: +swapchain images are copied into device-local frame inputs, the embedded compute +graph runs on the application device, and generated images are copied back into +the application swapchain. The source layer remains gated by +`BIONIC_FG_ENABLE=1`. + +## Build + +On an x86_64 Linux/glibc environment with CMake, Vulkan headers/loader, a C++17 +compiler, pthreads, and `zip` installed: + +```sh +./scripts/build_bionic_fg_x86_64.sh +``` + +The build stages: + +```text +out/bionic-fg-x86_64/libbionic_fg.so +out/bionic-fg-x86_64/VkLayer_BIONIC_framegen.json +out/bionic-fg-x86_64.zip +``` + +The manifest expects the standard per-user Vulkan layout: + +```text +~/.local/lib/libbionic_fg.so +~/.local/share/vulkan/implicit_layer.d/VkLayer_BIONIC_framegen.json +``` + +For a manual smoke test, copy those two files into place, create a Bionic FG +configuration, and launch a Vulkan application with: + +```sh +export BIONIC_FG_ENABLE=1 +export BIONIC_FG_CONFIG="$HOME/.config/bionic-fg/conf.toml" +export VK_LAYER_PATH="$HOME/.local/share/vulkan/implicit_layer.d" +``` + +```toml +version = 1 + +[global] +enabled = true +multiplier = 2 +flow_scale = 0.8 +model = 0 +``` + +This is intentionally a native-layer build experiment. The existing Decky +installer and UI still manage `lsfg-vk`; a follow-up branch should decide how a +runtime selector, configuration namespace, and architecture/package selection +should be exposed after testing the layer on real x86_64 Vulkan hardware. + +## Validation notes + +The produced library should be an x86-64 ELF shared object linked against the +system Vulkan loader and glibc. A successful build alone does not establish +frame-generation correctness; validation still requires a real x86_64 Vulkan +driver, a swapchain application, and inspection of the layer logs/artifacts. |
