Merge remote-tracking branch 'origin/3.7' into 3.8

This commit is contained in:
Tim Biermann 2024-12-31 11:40:33 +01:00
commit d728c39322
Signed by: tb
GPG Key ID: 42F8B4E30B673606
20 changed files with 32 additions and 212 deletions

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndMZ9o+j7wg1fHvDaz8cIywZ4HGz04x5w8tuvmPYTpqMYAspW4XOU7877pwVgOYi++plmXl7qLKAu3Lb7aMm0/wg=
SHA256 (Pkgfile) = 193ffe6c4e86557eafb1dfa5c7d962ffea6ea413c983f5b5690d93430f2457b0
RWTSGWF5Q7TndGX22q27acQs7LfPQ7mp2bR7GyNS7YOiFhMwdpNXuuuZTf7Xx0YvcfoIxRMDuf0e8/K5lQ6ZHDVRisf8YCy0ZAU=
SHA256 (Pkgfile) = b8b1c4ffba9bbfd8647968804e6301eed3ee4d6accf8dcbff09082c550bb5165
SHA256 (.footprint) = a2bb1a4403548b4c04557bd90a16fee59cd5889039c0cf51dba49018687e13f6
SHA256 (libvdpau-1.5.tar.bz2) = a5d50a42b8c288febc07151ab643ac8de06a18446965c7241f89b4e810821913

View File

@ -1,7 +1,7 @@
# Description: Video Decode and Presentation API for Unix provides a complete solution for decoding, post-processing, compositing, and displaying compressed or uncompressed video streams.
# URL: https://gitlab.freedesktop.org/vdpau/libvdpau
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: xorg-libxext meson ninja
# Depends on: xorg-libxext
name=libvdpau
version=1.5

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndDedGhcDj8SjOVbSgalYJGmW6WoPEZ76wiSSegbatbLMo0G9NS5V9GJuQrHMMXTlPGaYsnDN7iW+EkUX0W4FNQg=
SHA256 (Pkgfile) = 53b423c62a76a1cac5e7ab20f9d8cfedbd8254595af5bc900595db8785b970fa
RWTSGWF5Q7TndAiHnhYu6qvi/lgu0SjYC5/IZg9k7huBxAZDV3Jd96uAdZc0PW2JwnhsU+nlY910wysDSnpp/F3ay3gvUi2b2Ak=
SHA256 (Pkgfile) = acfb8db31b972d69b46b9913b0e02d6753c11d0dfdc8d3cf1c4cfbc0ff188b10
SHA256 (.footprint) = 1ad399d4b9aa0a16e8956a456ff6ff1880784a094ee6e155a9717918fc4dad7b
SHA256 (mesa-demos-9.0.0.tar.xz) = 3046a3d26a7b051af7ebdd257a5f23bfeb160cad6ed952329cdff1e9f1ed496b

View File

@ -1,7 +1,7 @@
# Description: Mesa 3D demos
# URL: https://www.mesa3d.org/
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: glew glu meson ninja
# Depends on: glew
# Optional: libdecor wayland
name=mesa-demos

View File

@ -36,7 +36,7 @@ lrwxrwxrwx root/root usr/lib/libGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0
lrwxrwxrwx root/root usr/lib/libOSMesa.so -> libOSMesa.so.8
lrwxrwxrwx root/root usr/lib/libOSMesa.so.8 -> libOSMesa.so.8.0.0
-rwxr-xr-x root/root usr/lib/libOSMesa.so.8.0.0
-rwxr-xr-x root/root usr/lib/libgallium-24.3.1-2.so
-rwxr-xr-x root/root usr/lib/libgallium-24.3.2-1.so
lrwxrwxrwx root/root usr/lib/libgbm.so -> libgbm.so.1
lrwxrwxrwx root/root usr/lib/libgbm.so.1 -> libgbm.so.1.0.0
-rwxr-xr-x root/root usr/lib/libgbm.so.1.0.0

View File

@ -1,8 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndFG+NoKanWP//hE8uh7h/TDRNq34kZXMqYKLWfN1cT2DJdHOiBp+QnHQverI4MS24uEuf7I5fsKUjCRD2I9+DAQ=
SHA256 (Pkgfile) = 88f464207f96429eecb26b9e12682be44e5d04aa21e867d6e104ec3ec66563fe
SHA256 (.footprint) = a276b5ad90f8d412fa6228d226dc3d1f86378fccd21c740d425aa6e1e563cfb7
SHA256 (mesa-24.3.1.tar.xz) = 9c795900449ce5bc7c526ba0ab3532a22c3c951cab7e0dd9de5fcac41b0843af
SHA256 (0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch) = 2c20fee505be9a1f08546b63457b8378b0f1fcff58e60c03378b7de0a87a1e81
SHA256 (0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch) = a58e6d0631da6dd077530136bb44f0233cd279fc75e3b65b495ec90be16db91a
SHA256 (0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch) = 606acb4073f46c7ca7edec96b6af06619642f3bbcd6afab2c57bff26266b917f
RWTSGWF5Q7TndCudb2ceN7+zrzQ9AWdQzFltxo5f5MzfYX0nIqC5UOx+RqFu958R6YiDWLlYls+vc5/cbPadhNqJ356gVKZ1BwQ=
SHA256 (Pkgfile) = 5b0458423570dacc51921b9f123e37f41bc3024d73944928b7360b497e73f3b4
SHA256 (.footprint) = 2053ba4142f14fb9a2a6a513958844493ab02b56f81fcc29721f46758495ebe4
SHA256 (mesa-24.3.2.tar.xz) = ad9f5f3a6d2169e4786254ee6eb5062f746d11b826739291205d360f1f3ff716

View File

@ -1,41 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Sat, 7 Dec 2024 13:10:04 +0100
Subject: [PATCH] dri: don't fetch X11 modifiers if we don't support them
If we supply modifiers to dri_create_image_with_modifiers() and
the driver doesn't support them, the function will fail. The X11
server always supports implicit modifiers so we can always fall
back to that.
Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 4c065158927d ("dri: revert INVALID modifier special-casing")
---
src/gallium/frontends/dri/loader_dri3_helper.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/gallium/frontends/dri/loader_dri3_helper.c b/src/gallium/frontends/dri/loader_dri3_helper.c
index 268ec3d86c8a..e1f51619c5fa 100644
--- a/src/gallium/frontends/dri/loader_dri3_helper.c
+++ b/src/gallium/frontends/dri/loader_dri3_helper.c
@@ -36,9 +36,11 @@
#include "loader_dri_helper.h"
#include "loader_dri3_helper.h"
+#include "pipe/p_screen.h"
#include "util/macros.h"
#include "util/simple_mtx.h"
#include "drm-uapi/drm_fourcc.h"
+#include "dri_screen.h"
#include "dri_util.h"
/**
@@ -1401,7 +1403,7 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int fourcc,
if (draw->dri_screen_render_gpu == draw->dri_screen_display_gpu) {
#ifdef HAVE_X11_DRM
- if (draw->multiplanes_available) {
+ if (draw->multiplanes_available && draw->dri_screen_render_gpu->base.screen->resource_create_with_modifiers) {
xcb_dri3_get_supported_modifiers_cookie_t mod_cookie;
xcb_dri3_get_supported_modifiers_reply_t *mod_reply;
xcb_generic_error_t *error = NULL;

View File

@ -1,69 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Sat, 7 Dec 2024 13:12:40 +0100
Subject: [PATCH] egl/wayland: only supply LINEAR modifier when supported
If we supply modifiers to dri_create_image_with_modifiers() and
the driver doesn't support them, the function will fail. We pass
__DRI_IMAGE_USE_LINEAR anyways so stripping the modifier is fine.
Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 4c065158927d ("dri: revert INVALID modifier special-casing")
---
src/egl/drivers/dri2/platform_wayland.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 513d2d0709b1..472665a36b0d 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -45,11 +45,13 @@
#include "util/u_vector.h"
#include "util/format/u_formats.h"
#include "main/glconfig.h"
+#include "pipe/p_screen.h"
#include "egl_dri2.h"
#include "eglglobals.h"
#include "kopper_interface.h"
#include "loader.h"
#include "loader_dri_helper.h"
+#include "dri_screen.h"
#include "dri_util.h"
#include <loader_wayland_helper.h>
@@ -1193,14 +1195,25 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
if (dri2_dpy->fd_render_gpu != dri2_dpy->fd_display_gpu &&
dri2_surf->back->linear_copy == NULL) {
uint64_t linear_mod = DRM_FORMAT_MOD_LINEAR;
+ const uint64_t *render_modifiers = NULL, *display_modifiers = NULL;
+ unsigned int render_num_modifiers = 0, display_num_modifiers = 0;
struct dri_image *linear_copy_display_gpu_image = NULL;
+ if (dri2_dpy->dri_screen_render_gpu->base.screen->resource_create_with_modifiers) {
+ render_modifiers = &linear_mod;
+ render_num_modifiers = 1;
+ }
+ if (dri2_dpy->dri_screen_display_gpu->base.screen->resource_create_with_modifiers) {
+ display_modifiers = &linear_mod;
+ display_num_modifiers = 1;
+ }
+
if (dri2_dpy->dri_screen_display_gpu) {
linear_copy_display_gpu_image = dri_create_image_with_modifiers(
dri2_dpy->dri_screen_display_gpu,
dri2_surf->base.Width, dri2_surf->base.Height,
linear_pipe_format, use_flags | __DRI_IMAGE_USE_LINEAR,
- &linear_mod, 1, NULL);
+ display_modifiers, display_num_modifiers, NULL);
if (linear_copy_display_gpu_image) {
int i, ret = 1;
@@ -1285,7 +1298,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
dri2_dpy->dri_screen_render_gpu,
dri2_surf->base.Width, dri2_surf->base.Height,
linear_pipe_format, use_flags | __DRI_IMAGE_USE_LINEAR,
- &linear_mod, 1, NULL);
+ render_modifiers, render_num_modifiers, NULL);
}
if (dri2_surf->back->linear_copy == NULL)

View File

@ -1,60 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Sat, 7 Dec 2024 13:15:57 +0100
Subject: [PATCH] egl/wayland: fallback to implicit modifiers if advertised by
compositor
The Wayland protocol defines INVALID as a special marker indicating
that implicit modifiers are supported. If the driver doesn't support
explicit modifiers and the compositor advertises support for implicit
modifiers, fallback to these.
This effectively restores logic removed in 4c065158927d, but only
for the specific case of Wayland instead of affecting all APIs.
(Wayland is one of the few APIs defining a special meaning for
INVALID.)
Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 4c065158927d ("dri: revert INVALID modifier special-casing")
---
src/egl/drivers/dri2/platform_wayland.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 472665a36b0d..2406bc18b744 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -1010,6 +1010,7 @@ create_dri_image(struct dri2_egl_surface *dri2_surf,
uint64_t *modifiers;
unsigned int num_modifiers;
struct u_vector *modifiers_present;
+ bool implicit_mod_supported;
assert(visual_idx != -1);
@@ -1049,6 +1050,25 @@ create_dri_image(struct dri2_egl_surface *dri2_surf,
num_modifiers = u_vector_length(modifiers_present);
}
+ if (!dri2_dpy->dri_screen_render_gpu->base.screen->resource_create_with_modifiers) {
+ /* We don't support explicit modifiers, check if the compositor supports
+ * implicit modifiers. */
+ implicit_mod_supported = false;
+ for (unsigned int i = 0; i < num_modifiers; i++) {
+ if (modifiers[i] == DRM_FORMAT_MOD_INVALID) {
+ implicit_mod_supported = true;
+ break;
+ }
+ }
+
+ if (!implicit_mod_supported) {
+ return;
+ }
+
+ num_modifiers = 0;
+ modifiers = NULL;
+ }
+
/* For the purposes of this function, an INVALID modifier on
* its own means the modifiers aren't supported. */
if (num_modifiers == 0 ||

View File

@ -5,12 +5,9 @@
# Optional: cbindgen directx-headers glslang libclc libunwind libva libvdpau lm_sensors lua python3-ply rust-bindgen spirv-llvm-translator vulkan-loader wayland-protocols
name=mesa
version=24.3.1
release=2
source=(https://archive.mesa3d.org/$name-$version.tar.xz
0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch
0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch
0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch)
version=24.3.2
release=1
source=(https://archive.mesa3d.org/$name-$version.tar.xz)
build() {
prt-get isinst directx-headers && PKGMK_MESA_GALLIUM+='d3d12,'
@ -38,10 +35,6 @@ build() {
printf '%s' "$version-$release" > $name-$version/VERSION
patch -Np1 -d $name-$version -i $SRC/0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch
patch -Np1 -d $name-$version -i $SRC/0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch
patch -Np1 -d $name-$version -i $SRC/0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch
meson setup build $name-$version $PKGMK_MESA \
--prefix=/usr \
--sysconfdir=/etc \

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndNYwRqluh+hzlvs+MajI7OOLCExhTrmKJHCbkhd344WsclBeQgFEx4sPhwfXJ5LlekamA315wmlsXXtJEMNk+AM=
SHA256 (Pkgfile) = 87ef254692a247434ace009f06616e674146031a6bfa4921ffe509a611d1e178
RWTSGWF5Q7TndEALsQiWLNnT2VIK/n18A4y7mG6646th5ADouLJxD2RfyHO/e7cf58DZXd2eKQEdDA22MPx2Sa8pqFTBIeDLogs=
SHA256 (Pkgfile) = 8cad914be6cffc27846c99e1ee68a18ab1d8e3d561887f24eb5bf4f02d633f9e
SHA256 (.footprint) = dc140cda3b16fb7a5b446a303695090542a6625ecd69cc23fe2bf16ff2b6153a
SHA256 (libXfont2-2.0.7.tar.xz) = 8b7b82fdeba48769b69433e8e3fbb984a5f6bf368b0d5f47abeec49de3e58efb

View File

@ -1,7 +1,7 @@
# Description: X font handling library version 2 for server & utilities
# URL: http://xorg.freedesktop.org
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: bzip2 freetype xorg-libfontenc xorg-xtrans
# Depends on: freetype xorg-libfontenc xorg-xtrans
name=xorg-libxfont2
version=2.0.7

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndNMXQRe8zV4ZAYrS16qqueMtrNZT9BdNC2bdaCQQu5pQXJgpsmPHeYiuyOkPA3b98T9yGAmQ5oFKUdfybIYnfQM=
SHA256 (Pkgfile) = e3dd9756da06226f9ed3a60dbee420620ca3d03ee231b498b93be694b3e7fa38
RWTSGWF5Q7TndM5qb3tuFj7viU4YZQnMAGn9eFCQkkVuHewJA/BGQuon7ojHqx0WNKgIxUQKLWOsoC7nmWrFAb9TJIVmJVckogg=
SHA256 (Pkgfile) = 77d5ffc4953be1b74368ca4fe40aca32e1af67d09c4dc8ecb3669bfd70f19dfa
SHA256 (.footprint) = f1911eec30c2bd653cc2cc043590002d596e3e31aa74155b536fb787c5f68673
SHA256 (libXft-2.3.8.tar.xz) = 5e8c3c4bc2d4c0a40aef6b4b38ed2fb74301640da29f6528154b5009b1c6dd49

View File

@ -1,7 +1,7 @@
# Description: X font rendering client library
# URL: http://xorg.freedesktop.org
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: harfbuzz util-linux
# Depends on: harfbuzz
name=xorg-libxft
version=2.3.8

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndLn+UwI/LQj/qXtnYbwjEs1FOQlsOAsQIBX4Cz4plwnkR0v9jnwdWtivndx1UJxtpSQBgVohbyMGDMGOAlpM0Aw=
SHA256 (Pkgfile) = 3e1dd0ae013259f3dd55f3c9fec2568b9f1e8a9186eadf3cfa195b832acb69db
RWTSGWF5Q7TndKLajcCzY5J9jipKt/01/kmjMGyClVBZfsnZ/KtU9VdD457OIGkx66P6yW9YfEk1Wn4yYev7LSF2MABaqeiTygU=
SHA256 (Pkgfile) = 825e9d4e875ce046c98b906d3912f1a1df6104853dbfa6a025b2f3bb4faa3cc6
SHA256 (.footprint) = 0b2e99e78b2cb7915c33269fc48ae699970ad466330a3d9e442e7cbe2d3ea84b
SHA256 (libXpresent-1.0.1.tar.xz) = b964df9e5a066daa5e08d2dc82692c57ca27d00b8cc257e8e960c9f1cf26231b

View File

@ -1,7 +1,7 @@
# Description: Xlib-based library for the X Present Extension
# URL: https://gitlab.freedesktop.org/xorg/lib/libxpresent
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: xorg-libxrandr xorg-libxrender xorg-libxfixes xorg-libxext xorg-libx11 xorg-libxcb xorg-libxau xorg-libxdmcp
# Depends on: xorg-libxfixes xorg-libxrandr
name=xorg-libxpresent
version=1.0.1

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndIu9JpgC/U1WMp3Zn1nE6VH/JFdgPNahnY4uTmkNWFflr5bSlOQyamwwF58obt53Zh1yv+idbnJlDY+w/xnCLQ0=
SHA256 (Pkgfile) = d941e79646ac67d10a1e11c1689276746d3d0abf6c2573a219d46308933fc47c
RWTSGWF5Q7TndAtI9kfJL3ic+7aNlGQvGXRBSDwHQU9cRtFIHiaOzBzXGbwnXBPabAlgXRypV7dFpR8v2nYpc3za9IWGl+5jgQI=
SHA256 (Pkgfile) = fcb13f4ba22af8018a559dff4f700b6d34925bbe148c547db0f0b8970e1a9d8c
SHA256 (.footprint) = 79223968225eb145500793faed2c1e9b7b3862c47ad9934ef30b34f607b68d06
SHA256 (libXvMC-1.0.14.tar.xz) = e4be9eb6b6bafdbbf81f47f7163047215376e45e2dc786d0ea6181c930725ed9

View File

@ -1,7 +1,7 @@
# Description: X Video Motion Compensation extension client library
# URL: http://xorg.freedesktop.org
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: meson ninja xorg-libxv
# Depends on: xorg-libxv
name=xorg-libxvmc
version=1.0.14

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/xorg.pub
RWTSGWF5Q7TndOpZHPDw1S3GE93LobzvTOfZPfAkvGemj6sW9ai1lu9o3znCFSyn7uvvWAQrAtxjHTbOfiSAzKP/d1WVkj/tlgI=
SHA256 (Pkgfile) = 2e2b7fadab559055d0eae879749f6773cfdb508b1dfaf2675b16bd4d1cb1ec80
RWTSGWF5Q7TndNExdJH5808ZNIPBB2qvjENZdLtJw8Ry4OSZXW8yZXlIlZwm/dEe53UWB5SIvVymfJJ+N3qXzZecBP4ZnJullww=
SHA256 (Pkgfile) = d1ee5ef56bccb0b17c9474cf09edb5003fa86aefe442c65c9aee475dca2b41c6
SHA256 (.footprint) = 69095fd05ef9fe78b9068cc2bbd4fac9504aef2327e282c17a319102fcdd11d9
SHA256 (xcompmgr-1.1.8.tar.bz2) = 0b89daf4f060fa3fa83cca862c45d531fef7121b5d06552c1d73d396ad9a7243
SHA256 (xcompmgr-1.1.10.tar.xz) = 7824f709c4f22432eaea7542ec93384e5dd48f6fcb85c12ff82d721423b0b98f

View File

@ -1,12 +1,12 @@
# Description: Compositing manager for X
# URL: http://xorg.freedesktop.org
# URL: https://xorg.freedesktop.org
# Maintainer: CRUX Xorg Team, xorg-ports at crux dot nu
# Depends on: xorg-libxcomposite xorg-libxdamage xorg-libxrender
name=xorg-xcompmgr
version=1.1.8
version=1.1.10
release=1
source=(https://www.x.org/releases/individual/app/xcompmgr-$version.tar.bz2)
source=(https://www.x.org/releases/individual/app/xcompmgr-$version.tar.xz)
build() {
cd xcompmgr-$version