1- FROM nvidia/vulkan:1.3.280-ubuntu22 .04
1+ FROM nvidia/cuda:13.1.1-cudnn-devel-ubuntu24 .04
22
33RUN apt-get update && apt-get install -y --no-install-recommends \
44 build-essential \
55 cmake \
66 pkg-config \
7- vulkan-tools \
87 curl \
98 ca-certificates \
9+ libvulkan1 \
10+ libvulkan-dev \
11+ vulkan-tools \
12+ vulkan-validationlayers \
13+ mesa-vulkan-drivers \
14+ glslang-tools \
1015 && rm -rf /var/lib/apt/lists/*
1116
12- ARG SLANG_VERSION=2024.17.2
13- RUN curl -fsSL -o /tmp/slang.tar.gz https://github.com/shader-slang/slang/releases/download/v${SLANG_VERSION}/slang-${SLANG_VERSION}-linux-x86_64.tar.gz \
14- && tar -xzf /tmp/slang.tar.gz -C /tmp \
15- && install -m 0755 /tmp/slang-${SLANG_VERSION}/bin/slangc /usr/local/bin/slangc \
16- && rm -rf /tmp/slang.tar.gz /tmp/slang-${SLANG_VERSION}
17-
17+ RUN apt-get update && apt-get install -y --no-install-recommends ninja-build \
18+ && rm -rf /var/lib/apt/lists/*
1819WORKDIR /workspace
19- COPY CMakeLists.txt /workspace/CMakeLists.txt
20- COPY src /workspace/src
21- COPY include /workspace/include
22- COPY shaders /workspace/shaders
23- RUN cmake -S /workspace -B /workspace/build -DCMAKE_BUILD_TYPE=Release \
24- && cmake --build /workspace/build --config Release -j"$(nproc)" \
25- && install -m 0755 /workspace/build/vk-bench /usr/local/bin/vk-bench \
26- && install -d /usr/local/bin/shaders \
27- && cp /workspace/build/shaders/*.spv /usr/local/bin/shaders/
20+ COPY . .
21+
22+ # ---- Slang ----
23+ ARG SLANG_VERSION=2026.3.1
24+ RUN set -eux; \
25+ mkdir -p /opt/slang; \
26+ curl -fsSL -o /tmp/slang.tar.gz \
27+ "https://github.com/shader-slang/slang/releases/download/v${SLANG_VERSION}/slang-${SLANG_VERSION}-linux-x86_64.tar.gz" ; \
28+ tar -xzf /tmp/slang.tar.gz -C /opt/slang; \
29+ rm -f /tmp/slang.tar.gz; \
30+ echo "== slang extract tree (top) ==" ; \
31+ find /opt/slang -maxdepth 3 -type d -print; \
32+ echo "== searching for slangc ==" ; \
33+ SLANGC_PATH="$(find /opt/slang -type f -name slangc -perm -111 | head -n 1)" ; \
34+ test -n "$SLANGC_PATH" ; \
35+ echo "Found slangc at: $SLANGC_PATH" ; \
36+ install -m 0755 "$SLANGC_PATH" /usr/local/bin/slangc; \
37+ echo "== searching for libslang-compiler ==" ; \
38+ SLANG_LIB_DIR="$(dirname " $(find /opt/slang -type f -name 'libslang-compiler.so*' | head -n 1)")" ; \
39+ test -n "$SLANG_LIB_DIR" ; \
40+ echo "Using slang lib dir: $SLANG_LIB_DIR" ; \
41+ echo "$SLANG_LIB_DIR" > /etc/ld.so.conf.d/slang.conf; \
42+ ldconfig; \
43+ slangc -version
44+
45+
46+ # Runtime shader dir for Docker entrypoint / app
47+ ENV VK_BENCH_SHADER_DIR=/workspace/build/shaders
48+
49+ # NVIDIA runtime hint: ensure Vulkan capability is exposed
50+ ENV NVIDIA_DRIVER_CAPABILITIES=all
51+ RUN which slangc && slangc -version
52+ # ---- Build ----
53+ RUN rm -rf build \
54+ && cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DSLANGC=/usr/local/bin/slangc \
55+ && cmake --build build -v --target vk-bench-shaders vk-bench \
56+ && ls -lah build/shaders
2857
2958COPY docker/entrypoint.sh /entrypoint.sh
30- ENTRYPOINT ["/entrypoint.sh" ]
59+ RUN chmod +x /entrypoint.sh
60+ ENTRYPOINT ["/entrypoint.sh" ]
0 commit comments