From 88e23dfd3ac4be7ad98f62dd6fec06348c2ccb04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Zwing?= Date: Sun, 27 Oct 2024 16:10:46 +0100 Subject: [PATCH] .packaging: Add DXVK binaries for ARM64 and ARM64EC --- .github/workflows/deb.yml | 63 ++++++++++++++++++++++++--- .packaging/ubuntu2204/Dockerfile | 3 +- .packaging/ubuntu2204/dxvk/Dockerfile | 7 +++ 3 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 .packaging/ubuntu2204/dxvk/Dockerfile diff --git a/.github/workflows/deb.yml b/.github/workflows/deb.yml index 7479cd58..6c3a2a5c 100644 --- a/.github/workflows/deb.yml +++ b/.github/workflows/deb.yml @@ -160,6 +160,53 @@ jobs: path: hangover-libarm64ecfex_${{ env.HOVERSION }}_arm64.deb + dxvk: + needs: foundations + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Checkout DXVK + uses: actions/checkout@v4 + with: + repository: AndreRH/dxvk + fetch-tags: true + submodules: true + fetch-depth: 16 + path: dxvk + + - name: Cache docker image + id: cache-foundation + uses: actions/cache@v4 + env: + cache-name: cache-foundation + with: + path: foundationubuntu2204.tgz + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('.packaging/ubuntu2204/Dockerfile') }} + + - name: Import docker image + run: docker image load -i foundationubuntu2204.tgz + + - name: get version + run: echo DXVKVERSION=$(git -C dxvk describe --abbrev=0) >> "$GITHUB_ENV"; echo DXVKVERSION=$(git -C dxvk describe --abbrev=0) + + - name: Setup packaging + run: | + cp -r .packaging/ubuntu2204/dxvk/* dxvk + + - name: Build package + run: cd dxvk; docker build -t dxvk . + + - name: Extract package + run: docker run --rm dxvk cat /opt/dxvk/output/dxvk-${{ env.DXVKVERSION }}.tar.gz > dxvk-${{ env.DXVKVERSION }}.tar.gz + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: dxvk-${{ env.DXVKVERSION }}.tar.gz + path: dxvk-${{ env.DXVKVERSION }}.tar.gz + + qemu: needs: foundations runs-on: ubuntu-latest @@ -324,7 +371,7 @@ jobs: bundle: - needs: [fex-pe, qemu, wine] + needs: [dxvk, fex-pe, fex-pe-ec, qemu, wine] runs-on: ubuntu-latest strategy: matrix: @@ -355,26 +402,32 @@ jobs: - name: get version run: git describe --tags | sed "s/hangover-/HOVERSION=/" >> "$GITHUB_ENV"; git describe --tags | sed "s/hangover-/HOVERSION=/" - - name: Download Artifacts 1/3 + - name: Download Artifacts 1/4 uses: actions/download-artifact@v4 with: pattern: hangover*${{ matrix.codename }}_arm64.deb merge-multiple: true - - name: Download Artifacts 2/3 + - name: Download Artifacts 2/4 uses: actions/download-artifact@v4 with: pattern: hangover-libwow64fex*_arm64.deb merge-multiple: true - - name: Download Artifacts 3/3 + - name: Download Artifacts 3/4 uses: actions/download-artifact@v4 with: pattern: hangover-libarm64ecfex*_arm64.deb merge-multiple: true + - name: Download Artifacts 4/4 + uses: actions/download-artifact@v4 + with: + pattern: dxvk*.tar.gz + merge-multiple: true + - name: Bundle - run: tar -cf hangover_${{ env.HOVERSION }}_${{ matrix.os }}_${{ matrix.codename }}_arm64.tar hangover*${{ matrix.codename }}_arm64.deb hangover-libwow64fex*_arm64.deb hangover-libarm64ecfex*_arm64.deb + run: tar -cf hangover_${{ env.HOVERSION }}_${{ matrix.os }}_${{ matrix.codename }}_arm64.tar hangover*${{ matrix.codename }}_arm64.deb hangover-libwow64fex*_arm64.deb hangover-libarm64ecfex*_arm64.deb dxvk*.tar.gz - name: Upload Artifact uses: actions/upload-artifact@v4 diff --git a/.packaging/ubuntu2204/Dockerfile b/.packaging/ubuntu2204/Dockerfile index f905b494..849e30b4 100644 --- a/.packaging/ubuntu2204/Dockerfile +++ b/.packaging/ubuntu2204/Dockerfile @@ -62,6 +62,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libcups2-dev:arm64 \ libxkbcommon-dev:arm64 \ libxkbregistry-dev:arm64 \ - libwayland-dev:arm64 + libwayland-dev:arm64 \ + meson glslang-dev glslang-tools RUN cd /opt; wget https://github.com/bylaws/llvm-mingw/releases/download/20240929/llvm-mingw-20240929-ucrt-ubuntu-20.04-x86_64.tar.xz; tar -xJf llvm-mingw-20240929-ucrt-ubuntu-20.04-x86_64.tar.xz; rm *.tar.xz; mv llvm-mingw-20240929-ucrt-ubuntu-20.04-x86_64 bylaws-llvm-mingw-20240929-ucrt-ubuntu-20.04-x86_64 diff --git a/.packaging/ubuntu2204/dxvk/Dockerfile b/.packaging/ubuntu2204/dxvk/Dockerfile new file mode 100644 index 00000000..3bc4e275 --- /dev/null +++ b/.packaging/ubuntu2204/dxvk/Dockerfile @@ -0,0 +1,7 @@ +FROM foundationubuntu2204 + +RUN rm -rf /opt/dxvk; mkdir -p /opt/dxvk/output +COPY ./ /opt/dxvk/ +RUN ls -la /opt/dxvk/ +ENV PATH="/opt/bylaws-llvm-mingw-20240929-ucrt-ubuntu-20.04-x86_64/bin:$PATH" +RUN cd /opt/dxvk; ./package-release.sh $(git describe --abbrev=0) /opt/dxvk/output