summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2016-01-23 14:28:10 +0100
committerPacho Ramos <pacho@gentoo.org>2016-01-23 14:28:10 +0100
commita56306e9127a0550c308b49f4ea58c6f4351724f (patch)
treeb5e4ad3701e07571c89f8809ba1e035d805fadfe /media-libs/cogl/files
parentmedia-plugins/live: bump to 2016.01.20 (diff)
downloadgentoo-a56306e9127a0550c308b49f4ea58c6f4351724f.tar.gz
gentoo-a56306e9127a0550c308b49f4ea58c6f4351724f.tar.bz2
gentoo-a56306e9127a0550c308b49f4ea58c6f4351724f.zip
media-libs/cogl: Apply upstream fixes, also fix cogl not working at all with fglrx drivers, we need to apply the fix conditionally until someone figures out how to properly check for fglrx presence for the patch (#567168, upstream bug #756306, thanks to Olcay for reporting and testing this).
Package-Manager: portage-2.2.26
Diffstat (limited to 'media-libs/cogl/files')
-rw-r--r--media-libs/cogl/files/cogl-1.22.0-fglrx.patch10
-rw-r--r--media-libs/cogl/files/cogl-1.22.0-initial-output.patch46
-rw-r--r--media-libs/cogl/files/cogl-1.22.0-wait-flip.patch42
3 files changed, 98 insertions, 0 deletions
diff --git a/media-libs/cogl/files/cogl-1.22.0-fglrx.patch b/media-libs/cogl/files/cogl-1.22.0-fglrx.patch
new file mode 100644
index 000000000000..e213d584d2f6
--- /dev/null
+++ b/media-libs/cogl/files/cogl-1.22.0-fglrx.patch
@@ -0,0 +1,10 @@
+--- 122/cogl/driver/gl/gl/cogl-driver-gl.c 2015-09-02 18:39:02.000000000 +0200
++++ 122b/cogl/driver/gl/gl/cogl-driver-gl.c 2015-10-18 10:37:14.052350142 +0200
+@@ -419,7 +419,7 @@
+ if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 2))
+ /* We want to use version 120 if it is available so that the
+ * gl_PointCoord can be used. */
+- ctx->glsl_version_to_use = 120;
++ ctx->glsl_version_to_use = 150;
+ else
+ ctx->glsl_version_to_use = 110;
diff --git a/media-libs/cogl/files/cogl-1.22.0-initial-output.patch b/media-libs/cogl/files/cogl-1.22.0-initial-output.patch
new file mode 100644
index 000000000000..d7f9d0ff99f4
--- /dev/null
+++ b/media-libs/cogl/files/cogl-1.22.0-initial-output.patch
@@ -0,0 +1,46 @@
+From 188752158701e3a406e7fd5850b3eaf9c4798cd7 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Fri, 13 Nov 2015 13:35:05 -0500
+Subject: winsys-egl-kms: bypass initial output setup if kms fd passed in
+
+if mutter is handling the output setup, then we shouldn't do it,
+too.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=758073
+---
+ cogl/winsys/cogl-winsys-egl-kms.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c
+index b460907..6d7049d 100644
+--- a/cogl/winsys/cogl-winsys-egl-kms.c
++++ b/cogl/winsys/cogl-winsys-egl-kms.c
+@@ -663,6 +663,14 @@ _cogl_winsys_egl_display_setup (CoglDisplay *display,
+ return FALSE;
+ }
+
++ /* Force a full modeset / drmModeSetCrtc on
++ * the first swap buffers call.
++ */
++ kms_display->pending_set_crtc = TRUE;
++
++ if (kms_renderer->opened_fd < 0)
++ return TRUE;
++
+ output0 = find_output (0,
+ kms_renderer->fd,
+ resources,
+@@ -736,10 +744,6 @@ _cogl_winsys_egl_display_setup (CoglDisplay *display,
+ kms_display->width = output0->mode.hdisplay;
+ kms_display->height = output0->mode.vdisplay;
+
+- /* We defer setting the crtc modes until the first swap_buffers request of a
+- * CoglOnscreen framebuffer. */
+- kms_display->pending_set_crtc = TRUE;
+-
+ return TRUE;
+ }
+
+--
+cgit v0.11.2
+
diff --git a/media-libs/cogl/files/cogl-1.22.0-wait-flip.patch b/media-libs/cogl/files/cogl-1.22.0-wait-flip.patch
new file mode 100644
index 000000000000..b7c4d99a2812
--- /dev/null
+++ b/media-libs/cogl/files/cogl-1.22.0-wait-flip.patch
@@ -0,0 +1,42 @@
+From a583492ea2aa3ea8e78c269bd5db3f52f82aa79c Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Wed, 21 Oct 2015 15:47:01 -0400
+Subject: kms-winsys: don't wait for a flip when page flipping fails
+
+If we get EACCES from drmPageFlip we're not going to get
+a flip event and shouldn't wait for one.
+
+This commit changes the EACCES path to silently ignore the
+failed flip request and just clean up the fb.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=756926
+---
+ cogl/winsys/cogl-winsys-egl-kms.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c
+index 20c325c..b460907 100644
+--- a/cogl/winsys/cogl-winsys-egl-kms.c
++++ b/cogl/winsys/cogl-winsys-egl-kms.c
+@@ -590,7 +590,7 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
+ for (l = kms_display->crtcs; l; l = l->next)
+ {
+ CoglKmsCrtc *crtc = l->data;
+- int ret;
++ int ret = 0;
+
+ if (crtc->count == 0 || crtc->ignore)
+ continue;
+@@ -610,7 +610,8 @@ flip_all_crtcs (CoglDisplay *display, CoglFlipKMS *flip, int fb_id)
+ }
+ }
+
+- flip->pending++;
++ if (ret == 0)
++ flip->pending++;
+ }
+
+ if (kms_renderer->page_flips_not_supported && needs_flip)
+--
+cgit v0.11.2
+