Skip to content

Commit 70cf2d8

Browse files
committed
use packaged OpenCL
1 parent 493b94d commit 70cf2d8

1 file changed

Lines changed: 10 additions & 56 deletions

File tree

ffmpeg/cppbuild.sh

Lines changed: 10 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ AOMAV1_VERSION=3.14.1
5555
SVTAV1_VERSION=4.2.0
5656
ZIMG_VERSION=3.0.6
5757
FFMPEG_VERSION=8.1.2
58-
OPENCL_VERSION=2026.05.29
5958

6059
# Vendored snapshot of https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20847.patch
6160
# with the unsupported FFmpeg 8.1 Changelog hunk already removed.
@@ -83,24 +82,25 @@ download https://github.com/webmproject/libwebp/archive/refs/tags/v$WEBP_VERSION
8382
download https://storage.googleapis.com/aom-releases/libaom-$AOMAV1_VERSION.tar.gz aom-$AOMAV1_VERSION.tar.gz
8483
download https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$SVTAV1_VERSION/SVT-AV1-v$SVTAV1_VERSION.tar.gz SVT-AV1-$SVTAV1_VERSION.tar.gz
8584
download https://github.com/sekrit-twc/zimg/archive/refs/tags/release-$ZIMG_VERSION.tar.gz zimg-release-$ZIMG_VERSION.tar.gz
86-
case $PLATFORM in
87-
linux-arm64 | linux-x86_64 | macosx-arm64 | macosx-x86_64 | windows-x86_64)
88-
download https://github.com/KhronosGroup/OpenCL-Headers/archive/v$OPENCL_VERSION.tar.gz OpenCL-Headers-$OPENCL_VERSION.tar.gz
89-
download https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/v$OPENCL_VERSION.tar.gz OpenCL-ICD-Loader-$OPENCL_VERSION.tar.gz
90-
;;
91-
esac
9285
download https://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2 ffmpeg-$FFMPEG_VERSION.tar.bz2
9386

9487
mkdir -p $PLATFORM$EXTENSION
9588
cd $PLATFORM$EXTENSION
9689
INSTALL_PATH=`pwd`
9790
case $PLATFORM in
9891
linux-arm64 | linux-x86_64 | macosx-arm64 | macosx-x86_64 | windows-x86_64)
99-
OPENCL_PATH="$INSTALL_PATH"
92+
OPENCL_PATH="$TOP_PATH/opencl/cppbuild/$PLATFORM"
10093
OPENCL_CONFIG="--enable-opencl"
10194
OPENCL_CFLAGS="-I$OPENCL_PATH/include"
10295
OPENCL_LDFLAGS="-L$OPENCL_PATH/lib"
10396
OPENCL_LIBS="-lOpenCL"
97+
if [[ "$PLATFORM" == windows-* ]]; then
98+
if [[ ! -f "$OPENCL_PATH/include/CL/cl_d3d11.h" ]]; then
99+
echo "Error: OpenCL D3D11 sharing header not found: $OPENCL_PATH/include/CL/cl_d3d11.h"
100+
exit 1
101+
fi
102+
OPENCL_LIBS="-l:OpenCL.lib"
103+
fi
104104
;;
105105
esac
106106
DISABLE="$DISABLE $OPENCL_CONFIG"
@@ -127,10 +127,6 @@ tar --totals -xzf ../libwebp-$WEBP_VERSION.tar.gz
127127
tar --totals -xzf ../aom-$AOMAV1_VERSION.tar.gz
128128
tar --totals -xzf ../SVT-AV1-$SVTAV1_VERSION.tar.gz
129129
tar --totals -xzf ../zimg-release-$ZIMG_VERSION.tar.gz
130-
if [[ "$OPENCL_CONFIG" == "--enable-opencl" ]]; then
131-
tar --totals -xzf ../OpenCL-Headers-$OPENCL_VERSION.tar.gz
132-
tar --totals -xzf ../OpenCL-ICD-Loader-$OPENCL_VERSION.tar.gz
133-
fi
134130
tar --totals -xjf ../ffmpeg-$FFMPEG_VERSION.tar.bz2
135131

136132
if [[ "${ACLOCAL_PATH:-}" == C:\\msys64\\* ]]; then
@@ -163,50 +159,8 @@ sedinplace 's/CMAKE_C_COMPILER_ID MATCHES "Clang"/FALSE/g' SVT-AV1-*/CMakeLists.
163159
sedinplace '/ANativeWindow_release/d' ffmpeg-*/libavutil/hwcontext_mediacodec.c
164160
sedinplace 's/#define MAX_SLICES 32/#define MAX_SLICES 256/g' ffmpeg-*/libavcodec/h264dec.h
165161

166-
if [[ "$OPENCL_CONFIG" == "--enable-opencl" ]]; then
167-
echo ""
168-
echo "--------------------"
169-
echo "Building OpenCL"
170-
echo "--------------------"
171-
echo ""
172-
cd OpenCL-Headers-$OPENCL_VERSION
173-
case $PLATFORM in
174-
linux-arm64)
175-
CC="aarch64-linux-gnu-gcc" CXX="aarch64-linux-gnu-g++" cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH .
176-
make -j $MAKEJ
177-
make install/strip
178-
cd ../OpenCL-ICD-Loader-$OPENCL_VERSION
179-
CC="aarch64-linux-gnu-gcc" CXX="aarch64-linux-gnu-g++" cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH -DCMAKE_INSTALL_LIBDIR="lib" -DOPENCL_ICD_LOADER_HEADERS_DIR=$INSTALL_PATH/include .
180-
make -j $MAKEJ
181-
make install/strip
182-
;;
183-
windows-x86_64)
184-
CC="gcc -m64" CXX="g++ -m64" $CMAKE -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH .
185-
make -j $MAKEJ
186-
make install
187-
cd ../OpenCL-ICD-Loader-$OPENCL_VERSION
188-
CC="gcc -m64" CXX="g++ -m64" $CMAKE -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH -DCMAKE_INSTALL_LIBDIR="lib" -DOPENCL_ICD_LOADER_HEADERS_DIR=$INSTALL_PATH/include .
189-
make -j $MAKEJ
190-
make install
191-
;;
192-
*)
193-
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH .
194-
make -j $MAKEJ
195-
make install/strip
196-
cd ../OpenCL-ICD-Loader-$OPENCL_VERSION
197-
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH -DCMAKE_INSTALL_LIBDIR="lib" -DOPENCL_ICD_LOADER_HEADERS_DIR=$INSTALL_PATH/include .
198-
make -j $MAKEJ
199-
make install/strip
200-
;;
201-
esac
202-
if [[ "$PLATFORM" == windows-* && ! -f "$OPENCL_PATH/include/CL/cl_d3d11.h" ]]; then
203-
echo "Error: OpenCL D3D11 sharing header not found: $OPENCL_PATH/include/CL/cl_d3d11.h"
204-
exit 1
205-
fi
206-
cd ..
207-
if [[ "$PLATFORM" == macosx-* ]]; then
208-
export DYLD_LIBRARY_PATH="$OPENCL_PATH/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}"
209-
fi
162+
if [[ "$PLATFORM" == macosx-* && "$OPENCL_CONFIG" == "--enable-opencl" ]]; then
163+
export DYLD_LIBRARY_PATH="$OPENCL_PATH/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}"
210164
fi
211165

212166
case $PLATFORM in

0 commit comments

Comments
 (0)