Port to PikaOS 4
Some checks failed
PikaOS Package Build Only (Canary) (i386) / build (push) Failing after 1s
PikaOS Package Build Only (Canary) (amd64-v3) / build (push) Has been cancelled
PikaOS Package Build Only (i386) / build (push) Failing after 1s
PikaOS Package Build Only (amd64-v3) / build (push) Failing after 1s
PikaOS Package Build & Release (Canary) (i386) / build (push) Failing after 1s
PikaOS Package Build & Release (Canary) (amd64-v3) / build (push) Successful in 19m28s
PikaOS Package Build & Release (i386) / build (push) Failing after 2s
PikaOS Package Build & Release (amd64-v3) / build (push) Failing after 1s

This commit is contained in:
Ward from fusion-voyager-3 2024-07-29 18:04:06 +03:00
parent 3ee475f881
commit 69a404a94b
37 changed files with 6363 additions and 556 deletions

1
.github/build-canary-i386 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/build-canary-v3 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/build-nest-i386 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/build-nest-v3 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/release-canary-i386 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/release-canary-v3 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/release-nest-i386 vendored Normal file
View File

@ -0,0 +1 @@
1

1
.github/release-nest-v3 vendored Normal file
View File

@ -0,0 +1 @@
1

37
.github/workflows/build-canaryi386.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: PikaOS Package Build Only (Canary) (i386)
on:
push:
branches:
- main
paths:
- '.github/build-canary-i386'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:canaryi386
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/i386.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh

37
.github/workflows/build-canaryv3.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: PikaOS Package Build Only (Canary) (amd64-v3)
on:
push:
branches:
- main
paths:
- '.github/build-canary-v3'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:canaryv3
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/amd64-v3.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh

37
.github/workflows/build-nesti386.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: PikaOS Package Build Only (i386)
on:
push:
branches:
- main
paths:
- '.github/build-nest-i386'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:nesti386
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/i386.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh

37
.github/workflows/build-nestv3.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: PikaOS Package Build Only (amd64-v3)
on:
push:
branches:
- main
paths:
- '.github/build-nest-v3'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:nestv3
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/amd64-v3.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh

View File

@ -0,0 +1,40 @@
name: PikaOS Package Build & Release (Canary) (i386)
on:
push:
branches:
- main
paths:
- '.github/release-canary-i386'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:canaryi386
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/i386.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh
- name: Release Package
run: ./release.sh

40
.github/workflows/release-canaryv3.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: PikaOS Package Build & Release (Canary) (amd64-v3)
on:
push:
branches:
- main
paths:
- '.github/release-canary-v3'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:canaryv3
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/amd64-v3.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh
- name: Release Package
run: ./release.sh

40
.github/workflows/release-nesti386.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: PikaOS Package Build & Release (i386)
on:
push:
branches:
- main
paths:
- '.github/release-nest-i386'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:nesti386
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/i386.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh
- name: Release Package
run: ./release.sh

40
.github/workflows/release-nestv3.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: PikaOS Package Build & Release (amd64-v3)
on:
push:
branches:
- main
paths:
- '.github/release-nest-v3'
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/pikaos-linux/pikaos-builder:nestv3
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update APT Cache
run: apt-get update -y
- name: Set Build Config
run: cp -vf ./pika-build-config/amd64-v3.sh ./pika-build-config.sh
- name: Build Package
run: ./main.sh
- name: Release Package
run: ./release.sh

View File

@ -1,49 +0,0 @@
name: PikaOS Package Release
on:
workflow_dispatch
jobs:
build:
runs-on: self-hosted
container:
image: ghcr.io/pikaos-linux/pika-package-container:latest
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update apt cache
run: apt-get update -y
- name: Build Package
run: ./main.sh
- name: Release Package
run: ./release.sh
- name: Purge cache
uses: strrife/cloudflare-chunked-purge-action@master
env:
# Zone is required by both authentication methods
CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }}
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
PURGE_URLS: ${{ vars.PURGE_URLS }}

View File

@ -1,49 +0,0 @@
name: PikaOS Package Release (i386)
on:
workflow_dispatch
jobs:
build:
runs-on: self-hosted
container:
image: ghcr.io/pikaos-linux/pika-i386-package-container:latest
volumes:
- /proc:/proc
options: --privileged -it
steps:
- uses: actions/checkout@v3
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: replace
- name: Update apt cache
run: apt-get update -y
- name: Build Package
run: ./main32.sh
- name: Release Package
run: ./release.sh
- name: Purge cache
uses: strrife/cloudflare-chunked-purge-action@master
env:
# Zone is required by both authentication methods
CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }}
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
PURGE_URLS: ${{ vars.PURGE_URLS }}

24
LICENSE.md Normal file
View File

@ -0,0 +1,24 @@
MIT License (With DPKG packaging compatibility)
Copyright (c) 2024 PikaOS
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Notes:
The files covered by this license are any files and directories in the root of this repository (including but not limited to: `main.sh`, `release.sh`, and `.github`), with the exception of the `debian` directory and its contents if `debian/copyright` exists, and declares any files or directories as a different LICENSE/COPYRIGHT.

View File

@ -16,9 +16,9 @@ debian/patches and add the name of the patch to debian/patches/series.
The X Strike Force team maintains X packages in git repositories on The X Strike Force team maintains X packages in git repositories on
git.debian.org in the pkg-xorg subdirectory. Most upstream packages salsa.debian.org in the xorg-team subdirectory. Most upstream packages
are actually maintained in git repositories as well, so they often are actually maintained in git repositories as well, so they often
just need to be pulled into git.debian.org in a "upstream-*" branch. just need to be pulled into salsa.debian.org in a "upstream-*" branch.
The .orig.tar.gz is upstream's mesa tarball. The .orig.tar.gz is upstream's mesa tarball.

5862
debian/changelog vendored

File diff suppressed because it is too large Load Diff

47
debian/control vendored
View File

@ -1,27 +1,27 @@
Source: mesa Source: mesa
Section: graphics Section: graphics
Priority: optional Priority: optional
Maintainer: First Mate Rummey <fmrummey@gmail.com> Maintainer: Ki'Sak <kisak.ppa@gmail.com>
XSBC-Original-Maintainer: Ubuntu X-SWAT <ubuntu-x@lists.ubuntu.com> XSBC-Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: Andreas Boll <aboll@debian.org> Uploaders: Ki'Sak <kisak.ppa@gmail.com>
Standards-Version: 4.1.4 Standards-Version: 4.1.4
Build-Depends: Build-Depends:
debhelper-compat (= 12), debhelper-compat (= 13),
directx-headers-dev (>= 1.602.0) [linux-amd64 linux-arm64], directx-headers-dev (>= 1.610.0) [linux-amd64 linux-arm64],
glslang-tools [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], glslang-tools [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
meson (>= 0.45), meson (>= 1.3.1),
quilt (>= 0.63-8.2~), quilt (>= 0.63-8.2~),
pkg-config, pkg-config,
libdrm-dev (>= 2.4.107-4), libdrm-dev (>= 2.4.119),
libx11-dev, libx11-dev,
libxxf86vm-dev, libxxf86vm-dev,
libexpat1-dev, libexpat1-dev,
libsensors-dev [!hurd-any], libsensors-dev [!hurd-any],
libxfixes-dev, libxfixes-dev,
libxext-dev, libxext-dev,
libva-dev (>= 1.6.0) [linux-any kfreebsd-any] <!pkg.mesa.nolibva>, libva-dev (>= 1.6.0) [linux-any] <!pkg.mesa.nolibva>,
libvdpau-dev (>= 1.1.1) [linux-any kfreebsd-any], libvdpau-dev (>= 1.1.1) [linux-any],
libvulkan-dev [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], libvulkan-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
x11proto-dev, x11proto-dev,
linux-libc-dev (>= 2.6.31) [linux-any], linux-libc-dev (>= 2.6.31) [linux-any],
libx11-xcb-dev, libx11-xcb-dev,
@ -39,27 +39,26 @@ Build-Depends:
python3, python3,
python3-mako, python3-mako,
python3-ply, python3-ply,
python3-pycparser [arm64 armhf],
python3-setuptools, python3-setuptools,
flex, flex,
spirv-tools,
rustfmt,
bison, bison,
libelf-dev [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], libelf-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
libwayland-dev (>= 1.15.0) [linux-any], libwayland-dev (>= 1.15.0) [linux-any],
libwayland-egl-backend-dev (>= 1.15.0) [linux-any], libwayland-egl-backend-dev (>= 1.15.0) [linux-any],
llvm-17-dev [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], llvm-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
libclang-17-dev [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], libclang-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
libclang-cpp17-dev [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], libclang-cpp17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
libclc-17-dev [amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], libclc-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
wayland-protocols (>= 1.24), wayland-protocols (>= 1.24),
zlib1g-dev, zlib1g-dev,
libglvnd-core-dev (>= 1.3.2), libglvnd-core-dev (>= 1.3.2),
valgrind [amd64 arm64 armhf i386 mips64el mipsel powerpc ppc64 ppc64el s390x], valgrind [amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x],
rustc [amd64 arm64 armel armhf mips64el mipsel ppc64el s390x], rustc [amd64 arm64 armel armhf loong64 powerpc ppc64 ppc64el riscv64 s390x x32],
bindgen [amd64 arm64 armel armhf mips64el mipsel ppc64el s390x], bindgen (>= 0.66.1~) [amd64 arm64 armel armhf loong64 powerpc ppc64 ppc64el riscv64 s390x x32],
llvm-spirv-17 [amd64 arm64 armel armhf mips64el mipsel ppc64el s390x], llvm-spirv-17 [amd64 arm64 armel armhf loong64 powerpc ppc64 ppc64el riscv64 s390x x32],
libclc-17 [amd64 arm64 armel armhf mips64el mipsel ppc64el s390x], libclc-17 [amd64 arm64 armel armhf loong64 powerpc ppc64 ppc64el riscv64 s390x x32],
libllvmspirvlib-17-dev, libllvmspirvlib-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32],
Rules-Requires-Root: no Rules-Requires-Root: no
Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git
Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa

26
debian/control.in vendored
View File

@ -1,28 +1,27 @@
Source: mesa Source: mesa
Section: graphics Section: graphics
Priority: optional Priority: optional
Maintainer: First Mate Rummey <fmrummey@gmail.com> Maintainer: Ki'Sak <kisak.ppa@gmail.com>
XSBC-Original-Maintainer: Ubuntu X-SWAT <ubuntu-x@lists.ubuntu.com> XSBC-Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: Andreas Boll <aboll@debian.org> Uploaders: Ki'Sak <kisak.ppa@gmail.com>
Standards-Version: 4.1.4 Standards-Version: 4.1.4
Build-Depends: Build-Depends:
debhelper-compat (= 12), debhelper-compat (= 13),
directx-headers-dev (>= 1.602.0) [linux-amd64 linux-arm64], directx-headers-dev (>= 1.610.0) [linux-amd64 linux-arm64],
glslang-tools [@LLVM_ARCHS@], glslang-tools [@LLVM_ARCHS@],
meson (>= 0.45), meson (>= 1.3.1),
quilt (>= 0.63-8.2~), quilt (>= 0.63-8.2~),
pkg-config, pkg-config,
libdrm-dev (>= 2.4.107-4), libdrm-dev (>= 2.4.119),
libx11-dev, libx11-dev,
libxxf86vm-dev, libxxf86vm-dev,
libexpat1-dev, libexpat1-dev,
libsensors-dev [!hurd-any], libsensors-dev [!hurd-any],
libxfixes-dev, libxfixes-dev,
libxext-dev, libxext-dev,
libva-dev (>= 1.6.0) [linux-any kfreebsd-any] <!pkg.mesa.nolibva>, libva-dev (>= 1.6.0) [linux-any] <!pkg.mesa.nolibva>,
libvdpau-dev (>= 1.1.1) [linux-any kfreebsd-any], libvdpau-dev (>= 1.1.1) [linux-any],
libvulkan-dev [@LLVM_ARCHS@], libvulkan-dev [@LLVM_ARCHS@],
vulkan-headers [@LLVM_ARCHS@],
x11proto-dev, x11proto-dev,
linux-libc-dev (>= 2.6.31) [linux-any], linux-libc-dev (>= 2.6.31) [linux-any],
libx11-xcb-dev, libx11-xcb-dev,
@ -40,10 +39,9 @@ Build-Depends:
python3, python3,
python3-mako, python3-mako,
python3-ply, python3-ply,
python3-pycparser [arm64 armhf],
python3-setuptools, python3-setuptools,
rustfmt,
flex, flex,
spirv-tools,
bison, bison,
libelf-dev [@LLVM_ARCHS@], libelf-dev [@LLVM_ARCHS@],
libwayland-dev (>= 1.15.0) [linux-any], libwayland-dev (>= 1.15.0) [linux-any],
@ -57,10 +55,10 @@ Build-Depends:
libglvnd-core-dev (>= 1.3.2), libglvnd-core-dev (>= 1.3.2),
valgrind [@VALGRIND_ARCHS@], valgrind [@VALGRIND_ARCHS@],
rustc [@RUSTICL_ARCHS@], rustc [@RUSTICL_ARCHS@],
bindgen [@RUSTICL_ARCHS@], bindgen (>= 0.66.1~) [@RUSTICL_ARCHS@],
llvm-spirv-@LLVM_VERSION@ [@RUSTICL_ARCHS@], llvm-spirv-@LLVM_VERSION@ [@RUSTICL_ARCHS@],
libclc-@LLVM_VERSION@ [@RUSTICL_ARCHS@], libclc-@LLVM_VERSION@ [@RUSTICL_ARCHS@],
libllvmspirvlib-@LLVM_VERSION@-dev, libllvmspirvlib-@LLVM_VERSION@-dev [@LLVM_ARCHS@],
Rules-Requires-Root: no Rules-Requires-Root: no
Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git
Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa

View File

@ -1,4 +1,4 @@
docs/*.rst docs/*.rst
docs/relnotes/* docs/relnotes/*
docs/_static/specs/*.spec docs/_extra/specs/*.spec
docs/_static/specs/OLD/*.spec docs/_extra/specs/OLD/*.spec

80
debian/rules vendored
View File

@ -15,7 +15,6 @@ DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
# for finding the correct llvm-config when meson doesn't know about it yet # for finding the correct llvm-config when meson doesn't know about it yet
LLVM_VERSION = 17 LLVM_VERSION = 17
export PATH:=/usr/lib/llvm-$(LLVM_VERSION)/bin/:$(PATH) export PATH:=/usr/lib/llvm-$(LLVM_VERSION)/bin/:$(PATH)
export LIBCLANG_PATH:=/usr/lib/llvm-$(LLVM_VERSION)/lib
export DEB_BUILD_MAINT_OPTIONS=optimize=-lto export DEB_BUILD_MAINT_OPTIONS=optimize=-lto
@ -43,46 +42,29 @@ confflags_DRI3 = -Ddri3=disabled
confflags_OSMESA = -Dosmesa=true confflags_OSMESA = -Dosmesa=true
confflags_SSE2 = -Dsse2=true confflags_SSE2 = -Dsse2=true
LLVM_ARCHS = amd64 arm64 armel armhf i386 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 LLVM_ARCHS = amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32
RUSTICL_ARCHS = amd64 arm64 armel armhf mips64el powerpc ppc64 ppc64el riscv64 s390x x32 RUSTICL_ARCHS = amd64 arm64 armel armhf loong64 powerpc ppc64 ppc64el riscv64 s390x x32
VALGRIND_ARCHS = amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x VALGRIND_ARCHS = amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x
WINE_ARCHS = amd64 arm64 armel armhf i386 powerpc WINE_ARCHS = amd64 arm64 armel armhf i386
# hurd doesn't do direct rendering # hurd doesn't do direct rendering
ifeq ($(DEB_HOST_ARCH_OS), hurd) ifeq ($(DEB_HOST_ARCH_OS), hurd)
confflags_DIRECT_RENDERING = -Dglx-direct=false confflags_DIRECT_RENDERING = -Dglx-direct=false
confflags_GBM = -Dgbm=disabled confflags_GBM = -Dgbm=disabled
else else
GALLIUM_DRIVERS += r300 r600 # Non-Linux ports lack epoll, so wayland isn't ready yet:
# https://gitlab.freedesktop.org/wayland/wayland/-/issues/72
# hurd also lacks *_CLOEXEC
EGL_PLATFORMS += wayland
GALLIUM_DRIVERS += nouveau r300 r600 virgl
confflags_DIRECT_RENDERING = -Dglx-direct=true confflags_DIRECT_RENDERING = -Dglx-direct=true
confflags_DRI3 = -Ddri3=enabled
confflags_GBM = -Dgbm=enabled confflags_GBM = -Dgbm=enabled
confflags_GALLIUM += -Dgallium-extra-hud=true confflags_GALLIUM += -Dgallium-extra-hud=true
confflags_GALLIUM += -Dgallium-vdpau=enabled confflags_GALLIUM += -Dgallium-vdpau=enabled
confflags_GALLIUM += -Dlmsensors=enabled confflags_GALLIUM += -Dlmsensors=enabled
# radv/lavapipe needs LLVM and the Vulkan loader, so only build on the subset of
# arches where we have LLVM enabled and where the Vulkan loader is built.
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64 armel armhf i386 mips64el powerpc ppc64 ppc64el s390x sparc64))
# drop virtio from armel, it doesn't build
ifneq (,$(filter $(DEB_HOST_ARCH), armel))
VULKAN_DRIVERS += amd swrast
else
VULKAN_DRIVERS += amd swrast virtio
endif
endif
# Only enable amd on riscv64, swrast needs CPU JIT support which doesn't work properly yet
ifneq (,$(filter $(DEB_HOST_ARCH), riscv64))
VULKAN_DRIVERS += amd
confflags_GALLIUM += -Ddraw-use-llvm=false
endif
ifeq ($(DEB_HOST_ARCH_OS), linux)
confflags_DRI3 = -Ddri3=enabled
# Gallium drivers which require kernel support, not yet ported to non-Linux
GALLIUM_DRIVERS += nouveau virgl
# Freedreno requires arm in addition # Freedreno requires arm in addition
ifneq (,$(filter arm arm64,$(DEB_HOST_ARCH_CPU))) ifneq (,$(filter arm arm64,$(DEB_HOST_ARCH_CPU)))
GALLIUM_DRIVERS += freedreno GALLIUM_DRIVERS += freedreno
@ -91,29 +73,24 @@ else
# etnaviv, tegra, vc4 and v3d kernel support are only available on armhf and arm64 # etnaviv, tegra, vc4 and v3d kernel support are only available on armhf and arm64
ifneq (,$(filter $(DEB_HOST_ARCH), armhf arm64)) ifneq (,$(filter $(DEB_HOST_ARCH), armhf arm64))
GALLIUM_DRIVERS += etnaviv panfrost svga tegra vc4 v3d GALLIUM_DRIVERS += etnaviv panfrost svga tegra vc4 v3d
VULKAN_DRIVERS += broadcom freedreno panfrost VULKAN_DRIVERS += broadcom freedreno
endif endif
ifneq (,$(filter $(DEB_HOST_ARCH), armhf arm64 riscv64)) ifneq (,$(filter $(DEB_HOST_ARCH), armhf arm64 loong64 riscv64))
GALLIUM_DRIVERS += lima GALLIUM_DRIVERS += lima
endif endif
# Build intel drivers on archs where libdrm-intel is installed
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32)) ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32))
GALLIUM_DRIVERS += svga GALLIUM_DRIVERS += crocus i915 iris svga
VULKAN_DRIVERS += intel intel_hasvk
# svga needs xa state tracker # svga needs xa state tracker
confflags_GALLIUM += -Dgallium-xa=enabled confflags_GALLIUM += -Dgallium-xa=enabled
VULKAN_DRIVERS += intel intel_hasvk
endif
ifneq (,$(filter $(DEB_HOST_ARCH), amd64))
confflags_GALLIUM += -Dintel-clc=disabled
else
confflags_GALLIUM += -Dintel-clc=disabled
endif endif
# Non-Linux ports lack epoll, so wayland isn't ready yet: ifneq (,$(filter $(DEB_HOST_ARCH), amd64))
# https://gitlab.freedesktop.org/wayland/wayland/-/issues/72 confflags_GALLIUM += -Dintel-clc=enabled
# hurd also lacks *_CLOEXEC endif
EGL_PLATFORMS += ,wayland
ifneq (,$(filter $(DEB_HOST_ARCH), $(VALGRIND_ARCHS))) ifneq (,$(filter $(DEB_HOST_ARCH), $(VALGRIND_ARCHS)))
confflags_VALGRIND += -Dvalgrind=enabled confflags_VALGRIND += -Dvalgrind=enabled
@ -121,17 +98,11 @@ else
# WSL supports only amd64 and arm64 # WSL supports only amd64 and arm64
DOZEN_INSTALLED=no DOZEN_INSTALLED=no
ifneq (,$(filter amd64 arm64,$(DEB_HOST_ARCH))) ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64))
GALLIUM_DRIVERS += d3d12 GALLIUM_DRIVERS += d3d12
VULKAN_DRIVERS += microsoft-experimental VULKAN_DRIVERS += microsoft-experimental
DOZEN_INSTALLED=yes DOZEN_INSTALLED=yes
endif endif
endif
# Build intel drivers on archs where libdrm-intel is installed
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386 kfreebsd-amd64 kfreebsd-i386 x32))
GALLIUM_DRIVERS += iris crocus i915
endif
# LLVM is required for building r300g, radeonsi and llvmpipe drivers. # LLVM is required for building r300g, radeonsi and llvmpipe drivers.
# It's also required for building OpenCL support. # It's also required for building OpenCL support.
@ -143,7 +114,12 @@ else
VULKAN_DRIVERS += amd VULKAN_DRIVERS += amd
confflags_GALLIUM += -Ddraw-use-llvm=false confflags_GALLIUM += -Ddraw-use-llvm=false
else else
# drop virtio from armel, it doesn't build
ifneq (,$(filter $(DEB_HOST_ARCH), armel))
VULKAN_DRIVERS += amd swrast VULKAN_DRIVERS += amd swrast
else
VULKAN_DRIVERS += amd swrast virtio
endif
endif endif
VULKAN_LAYERS += device-select intel-nullhw overlay VULKAN_LAYERS += device-select intel-nullhw overlay
@ -165,7 +141,7 @@ else
ifeq (,$(filter pkg.mesa.nolibva,$(DEB_BUILD_PROFILES))) ifeq (,$(filter pkg.mesa.nolibva,$(DEB_BUILD_PROFILES)))
confflags_GALLIUM += -Dgallium-va=enabled confflags_GALLIUM += -Dgallium-va=enabled
confflags_GALLIUM += -Dvideo-codecs="vc1dec, h264dec, h264enc, h265dec, h265enc" confflags_GALLIUM += -Dvideo-codecs="all"
endif endif
endif endif
@ -176,6 +152,8 @@ endif
empty:= empty:=
space := $(empty) $(empty) space := $(empty) $(empty)
comma := , comma := ,
EGL_PLATFORMS := $(patsubst %,'%',$(EGL_PLATFORMS))
EGL_PLATFORMS_LIST := $(subst $(space),$(comma),$(EGL_PLATFORMS))
GALLIUM_DRIVERS := $(patsubst %,'%',$(GALLIUM_DRIVERS)) GALLIUM_DRIVERS := $(patsubst %,'%',$(GALLIUM_DRIVERS))
GALLIUM_DRIVERS_LIST := $(subst $(space),$(comma),$(GALLIUM_DRIVERS)) GALLIUM_DRIVERS_LIST := $(subst $(space),$(comma),$(GALLIUM_DRIVERS))
VULKAN_DRIVERS := $(patsubst %,'%',$(VULKAN_DRIVERS)) VULKAN_DRIVERS := $(patsubst %,'%',$(VULKAN_DRIVERS))
@ -183,13 +161,13 @@ VULKAN_DRIVERS_LIST := $(subst $(space),$(comma),$(VULKAN_DRIVERS))
VULKAN_LAYERS := $(patsubst %,'%',$(VULKAN_LAYERS)) VULKAN_LAYERS := $(patsubst %,'%',$(VULKAN_LAYERS))
VULKAN_LAYERS_LIST := $(subst $(space),$(comma),$(VULKAN_LAYERS)) VULKAN_LAYERS_LIST := $(subst $(space),$(comma),$(VULKAN_LAYERS))
confflags_EGL = -Dplatforms="$(EGL_PLATFORMS)"
confflags_GLES = -Dgles1=disabled -Dgles2=enabled confflags_GLES = -Dgles1=disabled -Dgles2=enabled
confflags_GALLIUM += -Dgallium-drivers="[$(GALLIUM_DRIVERS_LIST)]" confflags_GALLIUM += -Dgallium-drivers="[$(GALLIUM_DRIVERS_LIST)]"
confflags += \ confflags += \
-Ddri-drivers-path=/usr/lib/$(DEB_HOST_MULTIARCH)/dri \ -Ddri-drivers-path=/usr/lib/$(DEB_HOST_MULTIARCH)/dri \
-Ddri-search-path='/usr/lib/$(DEB_HOST_MULTIARCH)/dri:\$$$${ORIGIN}/dri:/usr/lib/dri' \ -Ddri-search-path='/usr/lib/$(DEB_HOST_MULTIARCH)/dri:\$$$${ORIGIN}/dri:/usr/lib/dri' \
-Dplatforms="[$(EGL_PLATFORMS_LIST)]" \
-Dvulkan-drivers="[$(VULKAN_DRIVERS_LIST)]" \ -Dvulkan-drivers="[$(VULKAN_DRIVERS_LIST)]" \
-Dvulkan-layers="[$(VULKAN_LAYERS_LIST)]" \ -Dvulkan-layers="[$(VULKAN_LAYERS_LIST)]" \
-Dglvnd=true \ -Dglvnd=true \
@ -201,7 +179,6 @@ confflags += \
$(confflags_DIRECT_RENDERING) \ $(confflags_DIRECT_RENDERING) \
$(confflags_GBM) \ $(confflags_GBM) \
$(confflags_DRI3) \ $(confflags_DRI3) \
$(confflags_EGL) \
$(confflags_GALLIUM) \ $(confflags_GALLIUM) \
$(confflags_GLES) \ $(confflags_GLES) \
$(confflags_OSMESA) \ $(confflags_OSMESA) \
@ -296,9 +273,6 @@ override_dh_install:
install -m 755 debian/local/script debian/$$p/usr/share/bug/$$p; \ install -m 755 debian/local/script debian/$$p/usr/share/bug/$$p; \
done done
override_dh_missing:
dh_missing --fail-missing
override_dh_makeshlibs: override_dh_makeshlibs:
dh_makeshlibs -a -- -c4 dh_makeshlibs -a -- -c4

View File

@ -1 +1 @@
3.0 (native) 3.0 (quilt)

0
debian/tests/gles-gbm-build-test vendored Normal file → Executable file
View File

11
main.sh
View File

@ -1,8 +1,15 @@
#! /bin/bash #! /bin/bash
set -e set -e
VERSION="24.1.4"
source ./pika-build-config.sh
echo "$PIKA_BUILD_ARCH" > pika-build-arch
# Clone Upstream # Clone Upstream
git clone https://gitlab.freedesktop.org/mesa/mesa -b mesa-24.0.4 git clone https://gitlab.freedesktop.org/mesa/mesa -b mesa-"$VERSION"
cp -rvf ./debian ./mesa/ cp -rvf ./debian ./mesa/
cd ./mesa cd ./mesa
for i in $(cat ../patches/series) ; do echo "Applying Patch: $i" && patch -Np1 -i ../patches/$i || bash -c "echo "Applying Patch $i Failed!" && exit 2"; done for i in $(cat ../patches/series) ; do echo "Applying Patch: $i" && patch -Np1 -i ../patches/$i || bash -c "echo "Applying Patch $i Failed!" && exit 2"; done
@ -12,7 +19,7 @@ sed -i ' 1 s/.*/& - PikaOS YellowBirb Mesa Stable/' ./VERSION
apt-get build-dep ./ -y apt-get build-dep ./ -y
# Build package # Build package
LOGNAME=root dh_make --createorig -y -l -p mesa_"$VERSION" || echo "dh-make: Ignoring Last Error"
dpkg-buildpackage --no-sign dpkg-buildpackage --no-sign
# Move the debs to output # Move the debs to output

View File

@ -1,21 +0,0 @@
#! /bin/bash
set -e
# Clone Upstream
git clone https://gitlab.freedesktop.org/mesa/mesa -b mesa-24.0.4
cp -rvf ./debian ./mesa/
cd ./mesa
for i in $(cat ../patches/series) ; do echo "Applying Patch: $i" && patch -Np1 -i ../patches/$i || bash -c "echo "Applying Patch $i Failed!" && exit 2"; done
sed -i ' 1 s/.*/& - PikaOS YellowBirb Mesa Stable/' ./VERSION
# Get build deps
apt-get build-dep ./ -y
# Build package
dpkg-buildpackage --no-sign
# Move the debs to output
cd ../
mkdir -p ./output
mv ./*.deb ./output/

View File

@ -0,0 +1,44 @@
From 15f2c9c55318ec28d26f5812fe37f658e38d515d Mon Sep 17 00:00:00 2001
From: Friedrich Vock <friedrich.vock@gmx.de>
Date: Sat, 1 Jun 2024 11:57:04 +0200
Subject: aco: Limit rt stages to 128 vgprs
Totals from 35472 (7.40% of 479373) affected shaders:
MaxWaves: 206239 -> 283776 (+37.60%)
Instrs: 193922210 -> 202721106 (+4.54%)
CodeSize: 1056819972 -> 1110833680 (+5.11%); split: -0.00%, +5.11%
VGPRs: 6026704 -> 4540416 (-24.66%)
SpillSGPRs: 23742 -> 25754 (+8.47%)
SpillVGPRs: 118897 -> 2295118 (+1830.34%)
Scratch: 7201792 -> 152752128 (+2021.03%)
Latency: 2713432565 -> 3194796286 (+17.74%); split: -0.20%, +17.94%
InvThroughput: 1052131232 -> 935049835 (-11.13%); split: -16.59%, +5.46%
VClause: 6972784 -> 8716721 (+25.01%); split: -0.02%, +25.03%
SClause: 4879313 -> 4852452 (-0.55%); split: -0.88%, +0.33%
Copies: 32782141 -> 35223995 (+7.45%)
Branches: 11075847 -> 11094087 (+0.16%); split: -0.00%, +0.17%
VALU: 118525960 -> 120929058 (+2.03%)
SALU: 33924572 -> 33973293 (+0.14%); split: -0.03%, +0.17%
VMEM: 12419116 -> 17104582 (+37.73%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29593>
---
src/amd/compiler/aco_ir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/amd/compiler/aco_ir.cpp b/src/amd/compiler/aco_ir.cpp
index 05f0745e6a7..b51e30cd2ee 100644
--- a/src/amd/compiler/aco_ir.cpp
+++ b/src/amd/compiler/aco_ir.cpp
@@ -94,7 +94,7 @@ init_program(Program* program, Stage stage, const struct aco_shader_info* info,
/* apparently gfx702 also has 16-bank LDS but I can't find a family for that */
program->dev.has_16bank_lds = family == CHIP_KABINI || family == CHIP_STONEY;
- program->dev.vgpr_limit = 256;
+ program->dev.vgpr_limit = stage == raytracing_cs ? 128 : 256;
program->dev.physical_vgprs = 256;
program->dev.vgpr_alloc_granule = 4;
--
cgit v1.2.3

View File

@ -1,35 +0,0 @@
From a4f14e7239780b02af8d74669c5458d4b0957d4d Mon Sep 17 00:00:00 2001
From: Roland Stigge <stigge@antcom.de>
Date: Sun, 2 Mar 2014 19:52:56 +0100
Subject: [PATCH] gallium: fix build failure on powerpcspe
In the case of powerpc, mesa activates some altivec instructions
that are unknown on the powerpcspe architecture (see
https://wiki.debian.org/PowerPCSPEPort), causing a build failure as the
'vand' opcode is not recognized by the assembler.
This patch fixes this by preventing the PPC-specialcasing in case of
powerpcspe (__NO_FPRS__ is only defined there).
https://bugs.debian.org/695746
---
src/gallium/include/pipe/p_config.h | 2 ++
1 file changed, 2 insertions(+)
--- a/src/util/detect_arch.h
+++ b/src/util/detect_arch.h
@@ -70,12 +70,14 @@
#endif
#endif
+#ifndef __NO_FPRS__
#if defined(__ppc__) || defined(__ppc64__) || defined(__PPC__) || defined(__PPC64__)
#define DETECT_ARCH_PPC 1
#if defined(__ppc64__) || defined(__PPC64__)
#define DETECT_ARCH_PPC_64 1
#endif
#endif
+#endif
#if defined(__s390x__)
#define DETECT_ARCH_S390 1

View File

@ -1,106 +0,0 @@
--- mesa/src/gallium/frontends/clover/llvm/invocation.cpp 2023-01-21 08:54:07.903736459 -0400
+++ invocation.cpp 2023-09-04 14:06:25.213896411 -0300
@@ -27,13 +27,17 @@
#include <llvm/IR/DiagnosticPrinter.h>
#include <llvm/IR/DiagnosticInfo.h>
#include <llvm/IR/LLVMContext.h>
+#include <llvm/IR/Module.h>
#include <llvm/Support/raw_ostream.h>
-#include <llvm/Transforms/IPO/PassManagerBuilder.h>
+#include <llvm/Transforms/IPO/Internalize.h>
#include <llvm-c/Target.h>
#ifdef HAVE_CLOVER_SPIRV
#include <LLVMSPIRVLib/LLVMSPIRVLib.h>
#endif
+#include <llvm-c/TargetMachine.h>
+#include <llvm-c/Transforms/PassBuilder.h>
+#include <llvm/Support/CBindingWrapping.h>
#include <clang/CodeGen/CodeGenAction.h>
#include <clang/Lex/PreprocessorOptions.h>
#include <clang/Frontend/TextDiagnosticBuffer.h>
@@ -439,10 +443,10 @@ clover::llvm::compile_program(const std:
namespace {
void
- optimize(Module &mod, unsigned optimization_level,
+ optimize(Module &mod,
+ const std::string& ir_target,
+ unsigned optimization_level,
bool internalize_symbols) {
- ::llvm::legacy::PassManager pm;
-
// By default, the function internalizer pass will look for a function
// called "main" and then mark all other functions as internal. Marking
// functions as internal enables the optimizer to perform optimizations
@@ -458,19 +462,53 @@ namespace {
if (internalize_symbols) {
std::vector<std::string> names =
map(std::mem_fn(&Function::getName), get_kernels(mod));
- pm.add(::llvm::createInternalizePass(
+ internalizeModule(mod,
[=](const ::llvm::GlobalValue &gv) {
return std::find(names.begin(), names.end(),
gv.getName()) != names.end();
- }));
+ });
+ }
+
+
+ const char *opt_str = NULL;
+ LLVMCodeGenOptLevel level;
+ switch (optimization_level) {
+ case 0:
+ default:
+ opt_str = "default<O0>";
+ level = LLVMCodeGenLevelNone;
+ break;
+ case 1:
+ opt_str = "default<O1>";
+ level = LLVMCodeGenLevelLess;
+ break;
+ case 2:
+ opt_str = "default<O2>";
+ level = LLVMCodeGenLevelDefault;
+ break;
+ case 3:
+ opt_str = "default<O3>";
+ level = LLVMCodeGenLevelAggressive;
+ break;
}
- ::llvm::PassManagerBuilder pmb;
- pmb.OptLevel = optimization_level;
- pmb.LibraryInfo = new ::llvm::TargetLibraryInfoImpl(
- ::llvm::Triple(mod.getTargetTriple()));
- pmb.populateModulePassManager(pm);
- pm.run(mod);
+ const target &target = ir_target;
+ LLVMTargetRef targ;
+ char *err_message;
+
+ if (LLVMGetTargetFromTriple(target.triple.c_str(), &targ, &err_message))
+ return;
+ LLVMTargetMachineRef tm =
+ LLVMCreateTargetMachine(targ, target.triple.c_str(),
+ target.cpu.c_str(), "", level,
+ LLVMRelocDefault, LLVMCodeModelDefault);
+
+ if (!tm)
+ return;
+ LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions();
+ LLVMRunPasses(wrap(&mod), opt_str, tm, opts);
+
+ LLVMDisposeTargetMachine(tm);
}
std::unique_ptr<Module>
@@ -500,7 +538,7 @@ clover::llvm::link_program(const std::ve
auto c = create_compiler_instance(dev, dev.ir_target(), options, r_log);
auto mod = link(*ctx, *c, binaries, r_log);
- optimize(*mod, c->getCodeGenOpts().OptimizationLevel, !create_library);
+ optimize(*mod, dev.ir_target(), c->getCodeGenOpts().OptimizationLevel, !create_library);
static std::atomic_uint seq(0);
const std::string id = "." + mod->getModuleIdentifier() + "-" +

View File

@ -1,153 +0,0 @@
From 0c3587a2f8e1b6cfadf9a4bbb6ae4b2c3e14a651 Mon Sep 17 00:00:00 2001
From: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Date: Sun, 10 Apr 2022 22:54:36 -0300
Subject: [PATCH] Revert "egl/wayland: deprecate drm_handle_format() and
drm_handle_capabilities()"
Commit af1ee8e010441f8f2ed8c77065b159652a4ac9fe dropped support to
wl_drm, as we thought that most compositors from active projects were
already supporting zwp_linux_dmabuf_v1.
But that's not true, so revert this commit in order to give these
projects a longer transition period.
Note that we didn't add back the support to GEM name API, and that was
on purpose.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
---
src/egl/drivers/dri2/egl_dri2.h | 1 +
src/egl/drivers/dri2/platform_wayland.c | 59 +++++++++++++++++++------
2 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
index 89158993efdd..1c840a966b3c 100644
--- a/src/egl/drivers/dri2/egl_dri2.h
+++ b/src/egl/drivers/dri2/egl_dri2.h
@@ -284,6 +284,7 @@ struct dri2_egl_display
struct zwp_linux_dmabuf_feedback_v1 *wl_dmabuf_feedback;
struct dmabuf_feedback_format_table format_table;
bool authenticated;
+ uint32_t capabilities;
char *device_name;
#endif
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index e9ecf6d1e716..19fad8bfa08e 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -1344,7 +1344,7 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy,
struct dri2_egl_surface *dri2_surf,
__DRIimage *image)
{
- struct wl_buffer *ret;
+ struct wl_buffer *ret = NULL;
EGLBoolean query;
int width, height, fourcc, num_planes;
uint64_t modifier = DRM_FORMAT_MOD_INVALID;
@@ -1448,11 +1448,28 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy,
ret = zwp_linux_buffer_params_v1_create_immed(params, width, height,
fourcc, 0);
zwp_linux_buffer_params_v1_destroy(params);
+ } else {
+ struct wl_drm *wl_drm =
+ dri2_surf ? dri2_surf->wl_drm_wrapper : dri2_dpy->wl_drm;
+ int fd, stride;
+
+ if (num_planes > 1)
+ return NULL;
+
+ query = dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd);
+ query &= dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
+ if (!query) {
+ if (fd >= 0)
+ close(fd);
+ return NULL;
+ }
- return ret;
+ ret = wl_drm_create_prime_buffer(wl_drm, fd, width, height, fourcc, 0,
+ stride, 0, 0, 0, 0);
+ close(fd);
}
- return NULL;
+ return ret;
}
static EGLBoolean
@@ -1699,16 +1716,21 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device)
static void
drm_handle_format(void *data, struct wl_drm *drm, uint32_t format)
{
- /* deprecated, as compositors already support the dma-buf protocol extension
- * and so we can rely on dmabuf_handle_modifier() to receive formats and
- * modifiers */
+ struct dri2_egl_display *dri2_dpy = data;
+ int visual_idx = dri2_wl_visual_idx_from_fourcc(format);
+
+ if (visual_idx == -1)
+ return;
+
+ BITSET_SET(dri2_dpy->formats.formats_bitmap, visual_idx);
}
static void
drm_handle_capabilities(void *data, struct wl_drm *drm, uint32_t value)
{
- /* deprecated, as compositors already support the dma-buf protocol extension
- * and so we can rely on it to create wl_buffer's */
+ struct dri2_egl_display *dri2_dpy = data;
+
+ dri2_dpy->capabilities = value;
}
static void
@@ -2077,13 +2099,12 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
wl_registry_add_listener(dri2_dpy->wl_registry,
&registry_listener_drm, dri2_dpy);
- /* The compositor must expose the dma-buf interface. */
- if (roundtrip(dri2_dpy) < 0 || dri2_dpy->wl_dmabuf == NULL)
+ if (roundtrip(dri2_dpy) < 0)
goto cleanup;
/* Get default dma-buf feedback */
- if (zwp_linux_dmabuf_v1_get_version(dri2_dpy->wl_dmabuf) >=
- ZWP_LINUX_DMABUF_V1_GET_DEFAULT_FEEDBACK_SINCE_VERSION) {
+ if (dri2_dpy->wl_dmabuf && zwp_linux_dmabuf_v1_get_version(dri2_dpy->wl_dmabuf) >=
+ ZWP_LINUX_DMABUF_V1_GET_DEFAULT_FEEDBACK_SINCE_VERSION) {
dmabuf_feedback_format_table_init(&dri2_dpy->format_table);
dri2_dpy->wl_dmabuf_feedback =
zwp_linux_dmabuf_v1_get_default_feedback(dri2_dpy->wl_dmabuf);
@@ -2091,7 +2112,6 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
&dmabuf_feedback_listener, dri2_dpy);
}
- /* Receive events from the interfaces */
if (roundtrip(dri2_dpy) < 0)
goto cleanup;
@@ -2178,6 +2198,19 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
dri2_wl_setup_swap_interval(disp);
+ if (dri2_dpy->wl_drm) {
+ /* To use Prime, we must have _DRI_IMAGE v7 at least. createImageFromFds
+ * support indicates that Prime export/import is supported by the driver.
+ * We deprecated the support to GEM names API, so we bail out if the
+ * driver does not suport Prime. */
+ if (!(dri2_dpy->capabilities & WL_DRM_CAPABILITY_PRIME) ||
+ (dri2_dpy->image->base.version < 7) ||
+ (dri2_dpy->image->createImageFromFds == NULL)) {
+ _eglLog(_EGL_WARNING, "wayland-egl: display does not support prime");
+ goto cleanup;
+ }
+ }
+
if (dri2_dpy->is_different_gpu &&
(dri2_dpy->image->base.version < 9 ||
dri2_dpy->image->blitImage == NULL)) {
--
GitLab

View File

@ -1 +1,6 @@
path_max.diff
src_glx_dri_common.h.diff
#kisak-mesa PPA Backports:
version
0004_aco:_Limit_rt_stages_to_128_vgprs.patch

10
pika-build-config/amd64-v3.sh Executable file
View File

@ -0,0 +1,10 @@
#! /bin/bash
export PIKA_BUILD_ARCH="amd64-v3"
export DEBIAN_FRONTEND="noninteractive"
export DEB_BUILD_MAINT_OPTIONS="optimize=+lto -march=x86-64-v3 -O3 -flto -fuse-linker-plugin -falign-functions=32"
export DEB_CFLAGS_MAINT_APPEND="-march=x86-64-v3 -O3 -flto -fuse-linker-plugin -falign-functions=32"
export DEB_CPPFLAGS_MAINT_APPEND="-march=x86-64-v3 -O3 -flto -fuse-linker-plugin -falign-functions=32"
export DEB_CXXFLAGS_MAINT_APPEND="-march=x86-64-v3 -O3 -flto -fuse-linker-plugin -falign-functions=32"
export DEB_LDFLAGS_MAINT_APPEND="-march=x86-64-v3 -O3 -flto -fuse-linker-plugin -falign-functions=32"
export DEB_BUILD_OPTIONS="nocheck notest terse"
export DPKG_GENSYMBOLS_CHECK_LEVEL=0

5
pika-build-config/i386.sh Executable file
View File

@ -0,0 +1,5 @@
#! /bin/bash
export PIKA_BUILD_ARCH="i386"
export DEBIAN_FRONTEND="noninteractive"
export DEB_BUILD_OPTIONS="nocheck notest terse"
export DPKG_GENSYMBOLS_CHECK_LEVEL=0

View File

@ -1,8 +1,2 @@
# send debs to server # send debs to server
rsync -azP --include './' --include '*.deb' --exclude '*' ./output/ ferreo@direct.pika-os.com:/srv/www/incoming/ rsync -azP --include './' --include '*.deb' --exclude '*' ./output/ ferreo@direct.pika-os.com:/srv/www/cockatiel-incoming/
# add debs to repo
ssh ferreo@direct.pika-os.com 'aptly repo add -force-replace -remove-files pikauwu-main /srv/www/incoming/'
# publish the repo
ssh ferreo@direct.pika-os.com 'aptly publish update -batch -skip-contents -force-overwrite pikauwu filesystem:pikarepo:'