diff --git a/README.md b/README.md index 2e27608..7570e2c 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,9 @@ video and ImGui rendering; and > [!IMPORTANT] > This project is under active development. Builds and feed playback have been > verified in current Ubuntu and Fedora environments and on a separate Ubuntu -> machine. macOS builds are in progress; native playback testing and packaging -> are still pending. Stable releases and MXL Fabrics support are planned. +> machine. Native builds and feed playback have also been verified on macOS +> with MoltenVK. macOS packaging, stable releases, and MXL Fabrics support are +> planned. ## Features @@ -112,8 +113,8 @@ The SDL3 and Vulkan loaders contain macOS library-name support. The Vulkan dependency is temporarily replaced by a portability fork while the upstream change is reviewed. -A macOS source build has succeeded on real Apple hardware and currently -requires: +A macOS source build and native feed playback have succeeded on real Apple +hardware. Building currently requires: - Xcode Command Line Tools; - Go; @@ -121,13 +122,40 @@ requires: - Vulkan loader and MoltenVK; - a macOS build of libmxl with matching headers and pkg-config metadata. +When libmxl has been built from its source tree but has not been installed into +a standard prefix, expose its build metadata, source headers, and library +directory to cgo. For example: + +```sh +export MXL_SOURCE=/Users/jitten/extra/mxl +export MXL_BUILD="$MXL_SOURCE/build/Darwin-Clang-Release" + +export PKG_CONFIG_PATH="$MXL_BUILD${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" +export CGO_CFLAGS="-I$MXL_SOURCE/lib/include" +export CGO_LDFLAGS="-L$MXL_BUILD/lib" + +mkdir -p build +go build -o build/mxl-player ./cmd/mxl-player +``` + +The `CGO_CFLAGS` workaround is needed because the headers are still in the MXL +source tree. A properly installed MXL SDK should expose them through +`libmxl.pc` instead. + Nonstandard loader locations can be supplied explicitly: ```sh -export SDL3_LIBRARY=/absolute/path/to/libSDL3.dylib -export VULKAN_LIBRARY=/absolute/path/to/libvulkan.dylib +export SDL3_LIBRARY="$(brew --prefix sdl3)/lib/libSDL3.dylib" +export VULKAN_LIBRARY=/absolute/path/to/libMoltenVK.dylib +export DYLD_LIBRARY_PATH="$MXL_BUILD/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}" + +./build/mxl-player ``` +Direct loading of `libMoltenVK.dylib` is the configuration verified to work. +The Vulkan loader installed through Homebrew did not work in the tested setup, +so it is not currently recommended for running the player. + The resulting executable may currently need an additional libmxl runtime search path, for example: @@ -136,9 +164,8 @@ install_name_tool -add_rpath /absolute/path/to/mxl/lib build/mxl-player ``` These workarounds should not be necessary once the libraries are installed in -a normal dynamic-loader path. Native playback testing is still pending. A -self-contained `.app` bundle and downloadable GitHub release are planned but do -not exist yet. +a normal dynamic-loader path. A self-contained `.app` bundle and downloadable +GitHub release are planned but do not exist yet. ## Running @@ -453,7 +480,8 @@ local MXL flow; it will not be implemented as a separate playback backend. See - Linux builds and feed playback have been verified on Ubuntu and Fedora; broader runtime and hardware coverage is still limited. -- macOS/MoltenVK support is not yet release-tested. +- macOS/MoltenVK builds and feed playback work on tested hardware, but the + application is not yet packaged or release-tested on a clean machine. - Windows support is not currently claimed. - GPU selection and verbose logging flags are incomplete. - There are no prebuilt packages or application bundles yet. diff --git a/imgui.ini b/imgui.ini index 302a6c8..9639166 100644 --- a/imgui.ini +++ b/imgui.ini @@ -5,7 +5,7 @@ Collapsed=0 [Window][Settings & Info] Pos=0,0 -Size=700,720 +Size=700,1080 Collapsed=0 [Window][Stats]