mpvプレーヤーをVulkan対応にする
[主題]
自前ビルドしているmpvを、Vulkan対応させる手順を述べる。(最終更新日:2025.11.20)
[背景]
筆者が過去に投稿(月一で更新中)したmpvプレーヤーのコンパイル手順は、Vulkan対応していない。
ひょんなことから、mpvがVulkan対応で、macOSの場合、MoltenVKというものを使うことを知った。本稿は、mpvプレーヤーをコンパイルする
を、Vulkan対応させるための差分記事である。
[環境]
参考までに、筆者の環境を記載しておく
MacBook Air 2023 15.3inch(Apple Silicon Mac, M2)
macOS Thaoe 26.1
Xcode 26.1.1
CommandLine Tools for Xcode 26.1.0.0.1
MacBook Pro 2018 15.4inch(インテルMac)
macOS Monterey 12.7.6
CommandLine Tools for Xcode 14.2.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="26.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
この投稿へのコメント