This commit is contained in:
joborun linux 2024-12-07 03:08:25 +02:00
parent 822480b1ab
commit 4a8642f760
4 changed files with 95 additions and 21 deletions

View file

@ -0,0 +1,61 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Fri, 6 Dec 2024 15:03:49 +0100
Subject: [PATCH] Revert "dri: revert INVALID modifier special-casing"
Causes crashes on some older Radeon GPUs. This reverts commit
4c065158927d7bacc5eb1e4f2491b1db93f1dc12.
Closes: https://gitlab.archlinux.org/archlinux/packaging/packages/mesa/-/issues/19
See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12253
---
.pick_status.json | 2 +-
src/gallium/frontends/dri/dri2.c | 22 ++++++++++++++++++++--
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/.pick_status.json b/.pick_status.json
index 140cbe3b7d22..a29c6a60575a 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -2114,7 +2114,7 @@
"description": "dri: revert INVALID modifier special-casing",
"nominated": true,
"nomination_type": 2,
- "resolution": 1,
+ "resolution": 0,
"main_sha": null,
"because_sha": "361f3622587e5bc452a62dbd671969b713273b79",
"notes": null
diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c
index 18baf444f82c..d8ee9536479e 100644
--- a/src/gallium/frontends/dri/dri2.c
+++ b/src/gallium/frontends/dri/dri2.c
@@ -1130,8 +1130,26 @@ dri_create_image(struct dri_screen *screen,
if (!map)
return NULL;
- if (!pscreen->resource_create_with_modifiers && count > 0)
- return NULL;
+ if (count == 1 && modifiers[0] == DRM_FORMAT_MOD_INVALID) {
+ count = 0;
+ modifiers = NULL;
+ }
+
+ if (!pscreen->resource_create_with_modifiers && count > 0) {
+ bool invalid_ok = false;
+
+ for (unsigned i = 0; i < _count; i++) {
+ if (modifiers[i] == DRM_FORMAT_MOD_INVALID)
+ invalid_ok = true;
+ }
+
+ if (invalid_ok) {
+ count = 0;
+ modifiers = NULL;
+ } else {
+ return NULL;
+ }
+ }
if (pscreen->is_format_supported(pscreen, map->pipe_format, screen->target,
0, 0, PIPE_BIND_RENDER_TARGET))

View file

@ -8,7 +8,7 @@
pkgbase=mesa
pkgname=(mesa opencl-clover-mesa opencl-rusticl-mesa vulkan-intel vulkan-mesa-layers vulkan-nouveau vulkan-radeon vulkan-swrast vulkan-virtio)
pkgver=24.3.1
pkgrel=01
pkgrel=02
epoch=1
pkgdesc="An open-source implementation of the OpenGL specification w/o systemd or zstd"
url="https://www.mesa3d.org/"
@ -38,7 +38,8 @@ options=(
!lto
)
source=("https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz"{,.sig}
"https://docs.mesa3d.org/relnotes.html")
"https://docs.mesa3d.org/relnotes.html"
0001-Revert-dri-revert-INVALID-modifier-special-casing.patch)
# Rust crates for NVK, used as Meson subprojects
declare -A _crates=(
@ -67,6 +68,10 @@ done
prepare() {
cd mesa-$pkgver
# https://gitlab.archlinux.org/archlinux/packaging/packages/mesa/-/issues/19
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/12253
patch -Np1 -i ../0001-Revert-dri-revert-INVALID-modifier-special-casing.patch
# Include package release in version string so Chromium invalidates
# its GPU cache; otherwise it can cause pages to render incorrectly.
# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/2020604
@ -409,6 +414,7 @@ validpgpkeys=(946D09B5E4C9845E63075FF1D961C596A7203456 # Andres Gomez <tanty@ig
sha256sums=(9c795900449ce5bc7c526ba0ab3532a22c3c951cab7e0dd9de5fcac41b0843af # mesa-24.3.1.tar.xz
7bb8dc349e6ad1fb4ddc481cdbd5940b8b7acb16b301996a12a452d2deedd254 # mesa-24.3.1.tar.xz.sig
2f629b0df3c4a46c90dcd9ac6666dca8001cdd471f1aca040b0696230be0b2be # relnotes.html
3397cdff30322f9e27db820df5f1709bb682953d14773604357ba46ec247d551 # 0001-Revert-dri-revert-INVALID-modifier-special-casing.patch
ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9 # ucd-trie-0.1.6.tar.gz
a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f # pest_meta-2.7.11.tar.gz
168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26 # indexmap-2.2.6.tar.gz
@ -425,13 +431,13 @@ sha256sums=(9c795900449ce5bc7c526ba0ab3532a22c3c951cab7e0dd9de5fcac41b0843af #
692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56 # once_cell-1.8.0.tar.gz
901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9) # syn-2.0.68.tar.gz
## 203b203d41682579330376bb9f08be1ed16f14a00dcc7982f4affe660553b174 mesa-1_24.3.1-01-x86_64.pkg.tar.lz
## 4b34e6eafc94c7d438119b53e585da65f55b956669d4e73ccd96ccc099a9cf66 opencl-clover-mesa-1_24.3.1-01-x86_64.pkg.tar.lz
## 8d183f49a771ebb2d6b2718e88e32bd0a9356dfaac598cbacb8c060710aac266 opencl-rusticl-mesa-1_24.3.1-01-x86_64.pkg.tar.lz
## 0a2067e1149e2456b2e88a70f3fb98f5e35c2e8ad40ae867908d97f5ed7cb577 vulkan-intel-1_24.3.1-01-x86_64.pkg.tar.lz
## c88fe35cf0c211a3c9c0d66686ebc7bc2febe029069f1fc2e84d3613bd3dd78c vulkan-mesa-layers-1_24.3.1-01-x86_64.pkg.tar.lz
## 80dbabbff4199db4f6dd7ee6b6dc6818b9c8e86cb981f7538adb1bb877c77d8d vulkan-nouveau-1_24.3.1-01-x86_64.pkg.tar.lz
## 9f58a9573b25058614289a6133ed0ab57711681d71b8d957be601c694998b862 vulkan-radeon-1_24.3.1-01-x86_64.pkg.tar.lz
## ad872dc9798982530299614dc86f4f8dc44ec81055f34368987b17d16ad92782 vulkan-swrast-1_24.3.1-01-x86_64.pkg.tar.lz
## 16bd0c63344950fe247ac8df6dcf81baacd263872f61caaae34d8897832b2157 vulkan-virtio-1_24.3.1-01-x86_64.pkg.tar.lz
## 30c36a0ff41544249e6ba2cf3d64755040e7d50902cb965475e4b6d8d3349da7 mesa-1_24.3.1-02-x86_64.pkg.tar.lz
## 8ec2b9deacd52a252f67fb9aaf05a7286ae046fc4fba8d404507b443846369c0 opencl-clover-mesa-1_24.3.1-02-x86_64.pkg.tar.lz
## 36e285277e9272e2f074688dc8bf2b4f9f534aa8e0f58ccbd73911a2ac70540e opencl-rusticl-mesa-1_24.3.1-02-x86_64.pkg.tar.lz
## 66062fa24da16d84c93874ba2f41e2d87e907f4c1d16b31cda257d7f59ab6795 vulkan-intel-1_24.3.1-02-x86_64.pkg.tar.lz
## fb5ec619b77e40ed3266d757d7d4876826765fcbc1e5e441615b2e4138e7e2b3 vulkan-mesa-layers-1_24.3.1-02-x86_64.pkg.tar.lz
## 4a42f4419685a3aedb8f87dfbe126c46ed52da9d0fb5b561115f0148f4048236 vulkan-nouveau-1_24.3.1-02-x86_64.pkg.tar.lz
## 47d89f16777f449c55bdc6f225b5f1ad4982e3b669dcc8ad81532af5b92dda7c vulkan-radeon-1_24.3.1-02-x86_64.pkg.tar.lz
## e3ea6f41844ec75bdaedc033b9e553ad1fb7eb43a6b6e7779f7988dd65396312 vulkan-swrast-1_24.3.1-02-x86_64.pkg.tar.lz
## 53ea43a5b5cf72042555b5b0a81641b0a96afad0cb4c7ed48039cb6007a85b2a vulkan-virtio-1_24.3.1-02-x86_64.pkg.tar.lz

View file

@ -18,7 +18,7 @@ pkgname=(
mesa-docs
)
pkgver=24.3.1
pkgrel=1
pkgrel=2
epoch=1
pkgdesc="Open-source OpenGL drivers"
url="https://www.mesa3d.org/"
@ -90,6 +90,7 @@ options=(
)
source=(
"https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz"{,.sig}
0001-Revert-dri-revert-INVALID-modifier-special-casing.patch
)
validpgpkeys=(
946D09B5E4C9845E63075FF1D961C596A7203456 # Andres Gomez <tanty@igalia.com>
@ -128,6 +129,7 @@ done
b2sums=('d3efc322388e29f651b15b0396fef8a6acc0cf24881165900845e429dd6cb53d51511f174d6a4017f48962b764b9a42f069825196af9f4ca969a4b46e1108a0e'
'SKIP'
'811fa4d6f66d86dcfe08bce96d43b4c1b597c99682d0466081d795ed06c572fc25b4d49502861a9266cf36964e6831ba2fbd2c6f130e6b3385edfc34a0968f19'
'a6d47c903be6094423d89b8ec3ca899d0a84df6dbd6e76632bb6c9b9f40ad9c216f8fa400310753d392f85072756b43ac3892e0a2c4d55f87ab6463002554823'
'9c34f1ab14ad5ae124882513e0f14b1d731d06a43203bdc37fa3b202dd3ce93dbe8ebb554d01bab475689fe6ffd3ec0cbc0d5365c9b984cb83fb34ea3e9e732e'
'fac5cf6339dc3c0a40b100035a5c874cc7b2efeafeb31c51488d25156e392dc9db86a497e76eead351d2126f69d060422faa9c55d73407a0de9f5be18d234123'
@ -147,6 +149,7 @@ b2sums=('d3efc322388e29f651b15b0396fef8a6acc0cf24881165900845e429dd6cb53d51511f1
# https://docs.mesa3d.org/relnotes.html
sha256sums=('9c795900449ce5bc7c526ba0ab3532a22c3c951cab7e0dd9de5fcac41b0843af'
'SKIP'
'3397cdff30322f9e27db820df5f1709bb682953d14773604357ba46ec247d551'
'ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9'
'a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f'
'168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26'
@ -166,6 +169,10 @@ sha256sums=('9c795900449ce5bc7c526ba0ab3532a22c3c951cab7e0dd9de5fcac41b0843af'
prepare() {
cd mesa-$pkgver
# https://gitlab.archlinux.org/archlinux/packaging/packages/mesa/-/issues/19
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/12253
patch -Np1 -i ../0001-Revert-dri-revert-INVALID-modifier-special-casing.patch
# Include package release in version string so Chromium invalidates
# its GPU cache; otherwise it can cause pages to render incorrectly.
# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/2020604

View file

@ -1,10 +1,10 @@
mv mesa-1:24.3.1-01-x86_64.pkg.tar.lz mesa-1_24.3.1-01-x86_64.pkg.tar.lz
mv opencl-clover-mesa-1:24.3.1-01-x86_64.pkg.tar.lz opencl-clover-mesa-1_24.3.1-01-x86_64.pkg.tar.lz
mv opencl-rusticl-mesa-1:24.3.1-01-x86_64.pkg.tar.lz opencl-rusticl-mesa-1_24.3.1-01-x86_64.pkg.tar.lz
mv vulkan-intel-1:24.3.1-01-x86_64.pkg.tar.lz vulkan-intel-1_24.3.1-01-x86_64.pkg.tar.lz
mv vulkan-mesa-layers-1:24.3.1-01-x86_64.pkg.tar.lz vulkan-mesa-layers-1_24.3.1-01-x86_64.pkg.tar.lz
mv vulkan-nouveau-1:24.3.1-01-x86_64.pkg.tar.lz vulkan-nouveau-1_24.3.1-01-x86_64.pkg.tar.lz
mv vulkan-radeon-1:24.3.1-01-x86_64.pkg.tar.lz vulkan-radeon-1_24.3.1-01-x86_64.pkg.tar.lz
mv vulkan-swrast-1:24.3.1-01-x86_64.pkg.tar.lz vulkan-swrast-1_24.3.1-01-x86_64.pkg.tar.lz
mv vulkan-virtio-1:24.3.1-01-x86_64.pkg.tar.lz vulkan-virtio-1_24.3.1-01-x86_64.pkg.tar.lz
mv mesa-1:24.3.1-02-x86_64.pkg.tar.lz mesa-1_24.3.1-02-x86_64.pkg.tar.lz
mv opencl-clover-mesa-1:24.3.1-02-x86_64.pkg.tar.lz opencl-clover-mesa-1_24.3.1-02-x86_64.pkg.tar.lz
mv opencl-rusticl-mesa-1:24.3.1-02-x86_64.pkg.tar.lz opencl-rusticl-mesa-1_24.3.1-02-x86_64.pkg.tar.lz
mv vulkan-intel-1:24.3.1-02-x86_64.pkg.tar.lz vulkan-intel-1_24.3.1-02-x86_64.pkg.tar.lz
mv vulkan-mesa-layers-1:24.3.1-02-x86_64.pkg.tar.lz vulkan-mesa-layers-1_24.3.1-02-x86_64.pkg.tar.lz
mv vulkan-nouveau-1:24.3.1-02-x86_64.pkg.tar.lz vulkan-nouveau-1_24.3.1-02-x86_64.pkg.tar.lz
mv vulkan-radeon-1:24.3.1-02-x86_64.pkg.tar.lz vulkan-radeon-1_24.3.1-02-x86_64.pkg.tar.lz
mv vulkan-swrast-1:24.3.1-02-x86_64.pkg.tar.lz vulkan-swrast-1_24.3.1-02-x86_64.pkg.tar.lz
mv vulkan-virtio-1:24.3.1-02-x86_64.pkg.tar.lz vulkan-virtio-1_24.3.1-02-x86_64.pkg.tar.lz