Files
rocm/blender.dockerfile
2024-09-13 14:20:49 -07:00

45 lines
1.3 KiB
Docker

ARG ROCM_VERSION="5.7.3"
FROM wtongze/rocm-base:${ROCM_VERSION}
# "gfx803" or "gfx803;gfx900"
ARG HIP_ARCH="gfx803"
ARG BLENDER_BRANCH="v3.6.15"
ARG DEBIAN_FRONTEND="noninteractive"
# Add GPU target
RUN echo "${HIP_ARCH}" | sed 's/;/\n/g' | sudo tee /opt/rocm/bin/target.lst
RUN sudo apt-get update && \
sudo apt-get install -y python3 git git-lfs
WORKDIR /home/rocm
RUN git clone --depth 1 https://projects.blender.org/blender/blender.git -b ${BLENDER_BRANCH} && \
mkdir blender/build
WORKDIR /home/rocm/blender
RUN sudo ./build_files/build_environment/install_deps.sh || true
RUN ./build_files/build_environment/install_linux_packages.py || true
RUN ./build_files/utils/make_update.py --use-linux-libraries
RUN sudo apt-get clean && sudo rm -rf /var/lib/apt/lists/*
# > Ref: https://github.com/xuhuisheng/rocm-gfx803/blob/master/blender.md
# inline stalls on blender 4+
# blender need at least HIP 5.5.0
RUN sed -i 's/__noinline__/__inline__/g' intern/cycles/kernel/device/hip/compat.h
RUN sed -i 's/major >= 9/major >= 8/g' intern/cycles/device/hip/util.h
WORKDIR /home/rocm/blender/build
RUN cmake \
-DWITH_CYCLES_HIP_BINARIES=ON \
-DCYCLES_HIP_BINARIES_ARCH=${HIP_ARCH} \
-DWITH_NANOVDB=OFF \
..
RUN make -j$(nproc)
RUN cpack -G TXZ
RUN cp $(ls -l blender*.tar.xz | awk '{ print $9 }' | tail -n1 | tr -d '\n') /home/rocm/blender.tar.xz
CMD ["bash", "-l"]