Skip to content

Commit

Permalink
Update Mesa version to 25.0
Browse files Browse the repository at this point in the history
Signed-off-by: nyanmisaka <[email protected]>
  • Loading branch information
nyanmisaka committed Feb 1, 2025
1 parent 9ba6e9a commit 3805c85
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 32 deletions.
3 changes: 2 additions & 1 deletion Dockerfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV ARCH=BUILD_ARCHITECTURE
ENV GCC_VER=GCC_RELEASE_VERSION
ENV LLVM_VER=LLVM_RELEASE_VERSION
ENV LLVMSPIRVLIB_VER=LLVMSPIRVLIB_RELEASE_VERSION
ENV SOURCE_DIR=/ffmpeg
ENV ARTIFACT_DIR=/dist
ENV TARGET_DIR=/usr/lib/jellyfin-ffmpeg
Expand Down Expand Up @@ -38,7 +39,7 @@ RUN apt-get update \

# Install newer tools from pip3
RUN pip3 install $(pip3 help install | grep -o "\-\-break-system-packages") --ignore-installed pip \
&& pip3 install $(pip3 help install | grep -o "\-\-break-system-packages") meson cmake mako jinja2
&& pip3 install $(pip3 help install | grep -o "\-\-break-system-packages") meson cmake mako jinja2 pyyaml

# Avoids timeouts when using git and disable the detachedHead advice
RUN git config --global http.postbuffer 524288000 \
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile.make
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
#!/usr/bin/make
DISTRO=noble
GCC_VER=13
LLVM_VER=17
LLVM_VER=19
LLVMSPIRVLIB_VER=18
ARCH=amd64
.PHONY: Dockerfile
Dockerfile: Dockerfile.in
sed 's/DISTRO/$(DISTRO)/; s/BUILD_ARCHITECTURE/$(ARCH)/; s/GCC_RELEASE_VERSION/$(GCC_VER)/; s/LLVM_RELEASE_VERSION/$(LLVM_VER)/' $< > $@ || rm -f $@
sed 's/DISTRO/$(DISTRO)/; s/BUILD_ARCHITECTURE/$(ARCH)/; s/GCC_RELEASE_VERSION/$(GCC_VER)/; s/LLVM_RELEASE_VERSION/$(LLVM_VER)/; s/LLVMSPIRVLIB_RELEASE_VERSION/$(LLVMSPIRVLIB_VER)/' $< > $@ || rm -f $@
clean:
rm -f Dockerfile
27 changes: 16 additions & 11 deletions build
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,33 @@ cli_release="${1}"
case ${cli_release} in
'bullseye')
release="debian:bullseye"
gcc_version="10"
llvm_version="16"
gcc_ver="10"
llvm_ver="16"
llvmspirvlib_ver="11"
;;
'bookworm')
release="debian:bookworm"
gcc_version="12"
llvm_version="16"
gcc_ver="12"
llvm_ver="19"
llvmspirvlib_ver="15"
;;
'focal')
release="ubuntu:focal"
gcc_version="9"
llvm_version="12"
gcc_ver="9"
llvm_ver="18"
llvmspirvlib_ver="10"
;;
'jammy')
release="ubuntu:jammy"
gcc_version="11"
llvm_version="15"
gcc_ver="11"
llvm_ver="15"
llvmspirvlib_ver="15"
;;
'noble')
release="ubuntu:noble"
gcc_version="13"
llvm_version="17"
gcc_ver="13"
llvm_ver="19"
llvmspirvlib_ver="18"
;;
*)
echo "Invalid release."
Expand Down Expand Up @@ -95,7 +100,7 @@ cleanup() {
trap cleanup EXIT INT

# Generate Dockerfile
make -f Dockerfile.make DISTRO=${release} GCC_VER=${gcc_version} LLVM_VER=${llvm_version} ARCH=${arch}
make -f Dockerfile.make DISTRO=${release} GCC_VER=${gcc_ver} LLVM_VER=${llvm_ver} LLVMSPIRVLIB_VER=${llvmspirvlib_ver} ARCH=${arch}
# Set up the build environment docker image
${container_cmd} build . -t "${image_name}"
# Build the APKs and copy out to ${package_temporary_dir}
Expand Down
44 changes: 26 additions & 18 deletions docker-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ prepare_extra_amd64() {
popd

# SHADERC
shaderc_ver="v2023.7"
shaderc_ver="v2024.4" #"v2023.7"
if [[ ${GCC_VER} -lt 9 ]]; then
shaderc_ver="v2023.5"
fi
Expand Down Expand Up @@ -538,16 +538,21 @@ prepare_extra_amd64() {

# MESA
# Minimal libs for AMD VAAPI, AMD RADV and Intel ANV
if [[ ${LLVM_VER} -ge 11 ]]; then
mesa_branch="llvm15"
mesa_codecs="all"
if [[ ${LLVM_VER} -lt 15 ]]; then
mesa_branch="llvm11"
mesa_codecs="vc1dec,h264dec,h264enc,h265dec,h265enc"
if [[ ${LLVM_VER} -ge 15 ]]; then
if [[ ${LLVMSPIRVLIB_VER} -ge 15 ]]; then
# Intel ANV requires llvmspirvlib >= 15
mesa_vk_drv="amd,intel"
mesa_intel_clc="enabled"
mesa_llvm_clc="enabled"
apt-get install -y {llvm-,libllvmspirvlib-,libclc-,libclang-,libclang-cpp}${LLVMSPIRVLIB_VER}-dev libudev-dev
else
mesa_vk_drv="amd"
mesa_intel_clc="auto"
mesa_llvm_clc="disabled"
apt-get install -y libudev-dev
fi
apt-get install -y llvm-${LLVM_VER}-dev libudev-dev
pushd ${SOURCE_DIR}
git clone -b ${mesa_branch} --depth=1 https://gitlab.freedesktop.org/nyanmisaka/mesa.git
git clone -b staging/25.0 --depth=1 https://gitlab.freedesktop.org/mesa/mesa.git
meson setup mesa mesa_build \
--prefix=${TARGET_DIR} \
--libdir=lib \
Expand All @@ -557,34 +562,37 @@ prepare_extra_amd64() {
-Db_lto=false \
-Dplatforms=x11 \
-Dgallium-drivers=radeonsi \
-Dvulkan-drivers=amd,intel \
-Dvulkan-drivers=${mesa_vk_drv} \
-Dvulkan-layers=device-select,overlay \
-Ddri3=enabled \
-Degl=disabled \
-Dgallium-{extra-hud,nine}=false \
-Dgallium-{omx,vdpau,xa,opencl}=disabled \
-Dgallium-{extra-hud,nine,rusticl}=false \
-Dgallium-{vdpau,xa,opencl}=disabled \
-Dgallium-va=enabled \
-Dvideo-codecs=${mesa_codecs} \
-Dvideo-codecs=all \
-Dgbm=disabled \
-Dgles1=disabled \
-Dgles2=disabled \
-Dopengl=false \
-Dglvnd=false \
-Dglvnd=disabled \
-Dglx=disabled \
-Dlibunwind=disabled \
-Dllvm=enabled \
-Dllvm=${mesa_llvm_clc} \
-Damd-use-llvm=false \
-Dlmsensors=disabled \
-Dosmesa=false \
-Dshared-glapi=disabled \
-Dvalgrind=disabled \
-Dtools=[] \
-Dzstd=enabled \
-Dmicrosoft-clc=disabled
-Dmicrosoft-clc=disabled \
-Dintel-clc=${mesa_intel_clc} \
-Dintel-elk=false
meson configure mesa_build
ninja -j$(nproc) -C mesa_build install
cp -a ${TARGET_DIR}/lib/libvulkan_*.so ${SOURCE_DIR}/mesa
cp -a ${TARGET_DIR}/lib/libVkLayer_MESA*.so ${SOURCE_DIR}/mesa
cp -a ${TARGET_DIR}/lib/dri/radeonsi_drv_video.so ${SOURCE_DIR}/mesa
# radeonsi_drv_video.so -> libgallium_drv_video.so is soft link
cp ${TARGET_DIR}/lib/dri/radeonsi_drv_video.so ${SOURCE_DIR}/mesa
echo "mesa/lib*.so usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST}
echo "mesa/radeonsi_drv_video.so usr/lib/jellyfin-ffmpeg/lib/dri" >> ${DPKG_INSTALL_LIST}
cp ${TARGET_DIR}/share/drirc.d/*.conf ${SOURCE_DIR}/mesa
Expand Down

0 comments on commit 3805c85

Please sign in to comment.