mpvプレーヤーをVulkan対応にする
[主題]
自前ビルドしているmpvを、Vulkan対応させる手順を述べる。(最終更新日:2025.05.28)
[背景]
筆者が過去に投稿(月一で更新中)したmpvプレーヤーのコンパイル手順は、Vulkan対応していない。
ひょんなことから、mpvがVulkan対応で、macOSの場合、MoltenVKというものを使うことを知った。本稿は、mpvプレーヤーをコンパイルする
を、Vulkan対応させるための差分記事である。
[環境]
参考までに、筆者の環境を記載しておく
MacBook Air 2023 15.3inch(Apple Silicon Mac, M2)
macOS Sequoia 15.5
Xcode 16.3
CommandLine Tools for Xcode 16.3.0.0.1
MacBook Pro 2018 15.4inch(Intel based Mac)
macOS Sequoia 15.5
Xcode 16.3
CommandLine Tools for Xcode 16.3.0.0.1
[前提]
この記事に従って、mpvを自前ビルドしていることを前提とする。(Homebrew等のパッケージマネージャーを使っている場合は、対象外である)
[追加されるライブラリ]
以下のライブラリが追加される。
- Shaderc
- vulkan(Vulkan Loader及びVulkan Header)
- MoltenVK
[変更の対象となるライブラリ]
以下のライブラリが変更の対象となる。これ以外はmpvプレーヤーをコンパイルする
と共通である。(なので、共通部分は、この記事には書かない)
- libplacebo
- mpv
[手順]
-
Shaderc
バイナリも配布されているが、x86_64用である。よってソースからビルドする。なお、cmakeとPython3がインストールされている必要がある。git clone "https://github.com/google/shaderc.git" cd shaderc ./utils/git-sync-deps mkdir -p ../shaderc_build cd ../shaderc_build #GoogleTestをビルドしない。(DSHADERC_SKIP_TESTS) #https://www.reddit.com/r/vulkan/comments/ecnjn7/converting_shader_source_to_spirv_on_the_fly/ #macOS Ctalina以降向け export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)" cmake -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DSHADERC_SKIP_COPYRIGHT_CHECK=True \ -DSHADERC_SKIP_TESTS=True \ ../shaderc ninja sudo ninja install
-
vulkan(Vulkan Loader及びVulkan Header)
cmakeとPython3、及びninjaがインストールされている必要がある。git clone "https://github.com/KhronosGroup/Vulkan-Loader.git" git clone "https://github.com/KhronosGroup/Vulkan-Headers.git" export PKG_CONFIG="pkgconf" export CMAKE_GENERATOR="Ninja" export MACOSX_DEPLOYMENT_TARGET="15.0" cd Vulkan-Headers mkdir -p build cd build cmake \ -DCMAKE_BUILD_TYPE=Release \ .. cd ../ sudo cmake --install build cd Vulkan-Loader mkdir -p build cd build cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ -DSYSCONFDIR=/usr/local/etc \ .. cd ../ cmake --build build sudo cmake --install build
-
MoltenVK
git clone "https://github.com/KhronosGroup/MoltenVK.git" cd MoltenVK ./fetchDependencies --macos make macos MVK_CONFIG_LOG_LEVEL=1 sed -i '' "s|./libMoltenVK|/usr/local/lib/libMoltenVK|g" Package/Latest/MoltenVK/dylib/macOS/MoltenVK_icd.json cat Package/Latest/MoltenVK/dylib/macOS/MoltenVK_icd.json sudo install -d /usr/local/{lib,etc/vulkan/icd.d} sudo install -vm755 Package/Latest/MoltenVK/dylib/macOS/libMoltenVK.dylib /usr/local/lib sudo install -vm644 Package/Latest/MoltenVK/dylib/macOS/MoltenVK_icd.json /usr/local/etc/vulkan/icd.d
以下はmpvプレーヤーをコンパイルする
と共通の部分である。くれぐれも、ディスクイメージのマウントと、環境変数の設定を忘れないこと。
-
libplacebo
export CFLAGS="-arch arm64" export CPPFLAGS="-arch arm64" cd ${CMPL}/libplacebo meson \ setup \ --wipe \ --prefix ${TARGET} \ -Dbuildtype=release \ -Db_lto=true \ -Db_lto_mode=thin \ -Dvulkan-registry="/usr/local/share/vulkan/registry/vk.xml" \ -Dvulkan=enabled \ -Dshaderc=enabled \ -Dxxhash=enabled \ -Dopengl=disabled \ -Dd3d11=disabled \ -Dglslang=disabled \ -Ddemos=false \ --default-library=static \ build meson compile -C build meson install -C build unset CFLAGS unset CPPFLAGS
-
mpv
export CFLAGS="-arch arm64" export CPPFLAGS="-arch arm64" cd ${CMPL}/mpv meson \ setup \ --wipe \ --prefix ${TARGET} \ --default-library=static \ -Dswift-flags="-target arm64-apple-macosx15.0" \ -Dbuildtype=release \ -Db_lto=true \ -Db_lto_mode=thin \ -Dgl=disabled \ build meson compile -C build meson install -C build meson compile -C build macos-bundle unset CFLAGS unset CPPFLAGS
参考サイト
- google/shaderc: A collection of tools, libraries, and tests for Vulkan shader compilation.
- m154k1/mpv-build-macOS: A set of scripts that help build mpv with MoltenVK support.
- mpvプレーヤーをコンパイルする
以上
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント