Skip to content

Commit d28587d

Browse files
committed
Update to mesa 24.3.0
As part of the update also adapt the patch and make PKGBUILD files more similar to upstream.
1 parent cb61745 commit d28587d

3 files changed

Lines changed: 532 additions & 552 deletions

File tree

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From 037c35841d89fbb8150f839960e34a1e20810b3f Mon Sep 17 00:00:00 2001
1+
From c7acec8f82d6a7bda2e8074f736a006010b7fff2 Mon Sep 17 00:00:00 2001
22
From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
33
Date: Thu, 22 Feb 2024 22:32:45 +0100
44
Subject: [PATCH] STEAMOS: Dynamic swapchain override for gamescope limiter for
@@ -9,17 +9,17 @@ been removed because the Gamescope WSI layer already handles that.
99

1010
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
1111
---
12-
src/loader/loader_dri3_helper.c | 42 +++++++++++++++++++++++++++++++--
13-
src/loader/loader_dri3_helper.h | 1 +
14-
src/loader/meson.build | 2 +-
15-
3 files changed, 42 insertions(+), 3 deletions(-)
12+
.../frontends/dri/loader_dri3_helper.c | 41 ++++++++++++++++++-
13+
.../frontends/dri/loader_dri3_helper.h | 1 +
14+
src/gallium/frontends/dri/meson.build | 2 +-
15+
3 files changed, 41 insertions(+), 3 deletions(-)
1616

17-
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
18-
index dc1db4fa8be..38e55dc23ae 100644
19-
--- a/src/loader/loader_dri3_helper.c
20-
+++ b/src/loader/loader_dri3_helper.c
21-
@@ -289,6 +289,30 @@ dri3_update_max_num_back(struct loader_dri3_drawable *draw)
22-
}
17+
diff --git a/src/gallium/frontends/dri/loader_dri3_helper.c b/src/gallium/frontends/dri/loader_dri3_helper.c
18+
index 268ec3d86c8..b657f233634 100644
19+
--- a/src/gallium/frontends/dri/loader_dri3_helper.c
20+
+++ b/src/gallium/frontends/dri/loader_dri3_helper.c
21+
@@ -76,6 +76,30 @@ get_screen_for_root(xcb_connection_t *conn, xcb_window_t root)
22+
return NULL;
2323
}
2424

2525
+static unsigned
@@ -46,10 +46,10 @@ index dc1db4fa8be..38e55dc23ae 100644
4646
+ return override_value;
4747
+}
4848
+
49-
void
50-
loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
49+
static xcb_visualtype_t *
50+
get_xcb_visualtype_for_depth(struct loader_dri3_drawable *draw, int depth)
5151
{
52-
@@ -303,10 +327,12 @@ loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
52+
@@ -288,10 +312,12 @@ loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
5353
* PS. changing from value A to B and A < B won't cause swap out of order but
5454
* may still gets wrong target_msc value at the beginning.
5555
*/
@@ -64,20 +64,19 @@ index dc1db4fa8be..38e55dc23ae 100644
6464
}
6565

6666
static void
67-
@@ -438,6 +464,12 @@ loader_dri3_drawable_init(xcb_connection_t *conn,
68-
draw->swap_interval = dri_get_initial_swap_interval(draw->dri_screen_render_gpu,
69-
draw->ext->config);
67+
@@ -420,6 +446,11 @@ loader_dri3_drawable_init(xcb_connection_t *conn,
68+
69+
draw->swap_interval = dri_get_initial_swap_interval(draw->dri_screen_render_gpu);
7070

7171
+ draw->orig_swap_interval = draw->swap_interval;
72-
+
7372
+ unsigned gamescope_override = gamescope_swapchain_override();
7473
+ if (gamescope_override == 1)
7574
+ draw->swap_interval = 1;
7675
+
7776
dri3_update_max_num_back(draw);
7877

7978
/* Create a new drawable */
80-
@@ -1085,6 +1117,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
79+
@@ -1064,6 +1095,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
8180
if (draw->type == LOADER_DRI3_DRAWABLE_WINDOW) {
8281
dri3_fence_reset(draw->conn, back);
8382

@@ -90,31 +89,31 @@ index dc1db4fa8be..38e55dc23ae 100644
9089
/* Compute when we want the frame shown by taking the last known
9190
* successful MSC and adding in a swap interval for each outstanding swap
9291
* request. target_msc=divisor=remainder=0 means "Use glXSwapBuffers()
93-
diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h
94-
index cc2362dd599..fe73b3f329c 100644
95-
--- a/src/loader/loader_dri3_helper.h
96-
+++ b/src/loader/loader_dri3_helper.h
97-
@@ -178,6 +178,7 @@ struct loader_dri3_drawable {
92+
diff --git a/src/gallium/frontends/dri/loader_dri3_helper.h b/src/gallium/frontends/dri/loader_dri3_helper.h
93+
index 9061e9755e2..6cc64be298a 100644
94+
--- a/src/gallium/frontends/dri/loader_dri3_helper.h
95+
+++ b/src/gallium/frontends/dri/loader_dri3_helper.h
96+
@@ -170,6 +170,7 @@ struct loader_dri3_drawable {
9897
bool block_on_depleted_buffers;
9998
bool queries_buffer_age;
10099
int swap_interval;
101100
+ int orig_swap_interval;
102101

103-
struct loader_dri3_extensions *ext;
104102
const struct loader_dri3_vtable *vtable;
105-
diff --git a/src/loader/meson.build b/src/loader/meson.build
106-
index ffb970f26be..326e2b5b9fd 100644
107-
--- a/src/loader/meson.build
108-
+++ b/src/loader/meson.build
109-
@@ -29,7 +29,7 @@ if with_platform_x11 and with_dri3
110-
dependencies : [
111-
idep_mesautil,
112-
dep_libdrm, dep_xcb_dri3, dep_xcb_present, dep_xcb_sync, dep_xshmfence,
113-
- dep_xcb_xfixes,
114-
+ dep_xcb_xfixes, dep_xcb_xrandr, idep_mesautil
115-
],
116-
build_by_default : false,
117-
)
103+
104+
diff --git a/src/gallium/frontends/dri/meson.build b/src/gallium/frontends/dri/meson.build
105+
index a98c8c0a903..0d4f816d920 100644
106+
--- a/src/gallium/frontends/dri/meson.build
107+
+++ b/src/gallium/frontends/dri/meson.build
108+
@@ -23,7 +23,7 @@ if with_platform_x11
109+
deps_for_libdri += dep_xcb
110+
if with_dri_platform == 'drm'
111+
deps_for_libdri += [dep_xcb_dri3, dep_xcb_present, dep_xcb_sync,
112+
- dep_xshmfence, dep_xcb_xfixes]
113+
+ dep_xshmfence, dep_xcb_xfixes, dep_xcb_xrandr, idep_mesautil]
114+
files_libdri += files('loader_dri3_helper.c')
115+
endif
116+
endif
118117
--
119-
2.45.0
118+
2.47.1
120119

0 commit comments

Comments
 (0)