summaryrefslogtreecommitdiff
path: root/libre/mesa/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/mesa/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch')
-rw-r--r--libre/mesa/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/libre/mesa/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch b/libre/mesa/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch
deleted file mode 100644
index 499f711c9..000000000
--- a/libre/mesa/0001-loader-dri3-Avoid-freeing-renderbuffers-in-use.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 897c54d522ab960a879b763a15e489f630c491ee Mon Sep 17 00:00:00 2001
-From: Thomas Hellstrom <thellstrom@vmware.com>
-Date: Thu, 11 Jan 2018 10:19:23 +0100
-Subject: [PATCH] loader/dri3: Avoid freeing renderbuffers in use
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upon reception of an event that lowered the number of active back buffers,
-the code would immediately try to free all back buffers with an id equal to or
-higher than the new number of active back buffers.
-
-However, that could lead to an active or to-be-active back buffer being freed,
-since the old number of back buffers was used when obtaining an idle back
-buffer for use.
-
-This lead to crashes when lowering the number of active back buffers by
-transitioning from page-flipping to non-page-flipping presents.
-
-Fix this by computing the number of active back buffers only when trying to
-obtain a new back buffer.
-
-Fixes: 15e208c4cc ("loader/dri3: Don't accidently free buffer holding new back content")
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104214
-Cc: "17.3" <mesa-stable@lists.freedesktop.org>
-Tested-by: Andriy.Khulap <andriy.khulap@globallogic.com>
-Tested-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
-Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
-Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
----
- src/loader/loader_dri3_helper.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
-index cc890bc923..8f8efcb646 100644
---- a/src/loader/loader_dri3_helper.c
-+++ b/src/loader/loader_dri3_helper.c
-@@ -205,7 +205,6 @@ void
- loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
- {
- draw->swap_interval = interval;
-- dri3_update_num_back(draw);
- }
-
- /** dri3_free_render_buffer
-@@ -377,7 +376,6 @@ dri3_handle_present_event(struct loader_dri3_drawable *draw,
- draw->flipping = false;
- break;
- }
-- dri3_update_num_back(draw);
-
- if (draw->vtable->show_fps)
- draw->vtable->show_fps(draw, ce->ust);
-@@ -402,7 +400,8 @@ dri3_handle_present_event(struct loader_dri3_drawable *draw,
- buf->busy = 0;
-
- if (buf && draw->num_back <= b && b < LOADER_DRI3_MAX_BACK &&
-- draw->cur_blit_source != b) {
-+ draw->cur_blit_source != b &&
-+ !buf->busy) {
- dri3_free_render_buffer(draw, buf);
- draw->buffers[b] = NULL;
- }
-@@ -537,6 +536,7 @@ dri3_find_back(struct loader_dri3_drawable *draw)
- /* Check whether we need to reuse the current back buffer as new back.
- * In that case, wait until it's not busy anymore.
- */
-+ dri3_update_num_back(draw);
- num_to_consider = draw->num_back;
- if (!loader_dri3_have_image_blit(draw) && draw->cur_blit_source != -1) {
- num_to_consider = 1;
---
-2.15.1
-