name: ci on: [ push, pull_request ] env: _CFLAGS: -O2 -Wformat -Wformat-security -Wall -Werror -D_FORTIFY_SOURCE=2 -fstack-protector-strong permissions: read-all jobs: clang14: runs-on: ubuntu-20.04 env: CC: /usr/bin/clang-14 CXX: /usr/bin/clang++-14 ASM: /usr/bin/clang-14 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install toolchain run: | if [[ -e $CC && -e $CXX ]]; then \ echo "clang-14 already presents in the image"; \ else \ echo "clang-14 missed in the image, installing from llvm"; \ echo "deb [trusted=yes] http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" | sudo tee -a /etc/apt/sources.list; \ sudo apt-get update; \ sudo apt-get install -y --no-install-recommends clang-14; \ fi - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libxext-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-11: runs-on: ubuntu-22.04 env: CC: /usr/bin/gcc-11 CXX: /usr/bin/g++-11 ASM: /usr/bin/gcc-11 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ automake \ cmake \ gcc \ g++ \ libtool \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ ninja-build \ pkg-config \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-production-kmd: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DENABLE_PRODUCTION_KMD=ON \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-nonfree-kernels-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DENABLE_NONFREE_KERNELS=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-kernels-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DENABLE_KERNELS=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-gen8-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DGEN8=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-gen9-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DGEN9=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-gen11-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DGEN11=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-gen12-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DGEN12=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-mtl-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DMTL=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-arl-off: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DARL=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ .. make VERBOSE=1 -j$(nproc) sudo make install gcc-10-AVC-HEVC-exclude: runs-on: ubuntu-20.04 env: CC: /usr/bin/gcc-10 CXX: /usr/bin/g++-10 ASM: /usr/bin/gcc-10 steps: - name: checkout media-driver uses: actions/checkout@v4 with: path: media - name: checkout libva uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout gmmlib uses: actions/checkout@v4 with: repository: intel/gmmlib path: gmmlib - name: install prerequisites run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ cmake \ libdrm-dev \ libegl1-mesa-dev \ libgl1-mesa-dev \ libx11-dev \ libx11-xcb-dev \ libxcb-dri3-dev \ libxext-dev \ libxfixes-dev \ libwayland-dev \ make - name: print tools versions run: | cmake --version $CC --version $CXX --version - name: build libva run: | cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make -j$(nproc) sudo make install - name: build gmmlib run: | cd gmmlib mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu .. make VERBOSE=1 -j$(nproc) sudo make install - name: build media-driver run: | cd media mkdir build && cd build cmake -DENABLE_NONFREE_KERNELS=ON \ -DENABLE_KERNELS=ON \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ -DVC1_Decode_Supported="no" \ -DAVC_Encode_VME_Supported="no" \ -DAVC_Encode_VDEnc_Supported="no" \ -DHEVC_Encode_VME_Supported="no" \ -DHEVC_Encode_VDEnc_Supported="no" \ -DAVC_Decode_Supported="no" \ -DHEVC_Decode_Supported="no" \ -DAVC_Decode_Supported="no" \ .. make VERBOSE=1 -j$(nproc) sudo make install