Hello community,
here is the log from the commit of package xf86-video-intel for openSUSE:Factory checked in at 2014-09-01 16:58:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-intel (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-intel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-intel"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-intel/xf86-video-intel.changes 2014-07-27 08:25:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-video-intel.new/xf86-video-intel.changes 2014-09-01 16:59:00.000000000 +0200
@@ -1,0 +2,23 @@
+Fri Aug 29 17:01:35 UTC 2014 - eich@suse.com
+
+- u_Erase-cursor-image-when-changing-rotation.patch
+ -> U_Erase-cursor-image-when-changing-rotation.patch
+
+-------------------------------------------------------------------
+Fri Aug 29 16:38:59 UTC 2014 - eich@suse.com
+
+- u_Erase-cursor-image-when-changing-rotation.patch
+ Erase cursor image when changing rotation:
+ The rotated cursor image will be at a different location
+ in the 64x64 bit block and won't overlap with the unrotated
+ image. Therefore it will not be overwritten if the real image
+ is smaller (bnc#893752).
+
+-------------------------------------------------------------------
+Fri Aug 29 16:36:51 UTC 2014 - eich@suse.com
+
+- u_sna_dri3_mesa_relies_upon_implicit_fences.patch
+ -> U_sna_dri3_mesa_relies_upon_implicit_fences.patch
+ Patches from upstream should be flagged with 'U'.
+
+-------------------------------------------------------------------
Old:
----
u_sna_dri3_mesa_relies_upon_implicit_fences.patch
New:
----
U_Erase-cursor-image-when-changing-rotation.patch
U_sna_dri3_mesa_relies_upon_implicit_fences.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-intel.spec ++++++
--- /var/tmp/diff_new_pack.XSpoNr/_old 2014-09-01 16:59:01.000000000 +0200
+++ /var/tmp/diff_new_pack.XSpoNr/_new 2014-09-01 16:59:01.000000000 +0200
@@ -87,7 +87,8 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64
-Patch0: u_sna_dri3_mesa_relies_upon_implicit_fences.patch
+Patch0: U_sna_dri3_mesa_relies_upon_implicit_fences.patch
+Patch1: U_Erase-cursor-image-when-changing-rotation.patch
%x11_abi_videodrv_req
@@ -106,6 +107,7 @@
%setup -q
%patch0 -p1
+%patch1 -p1
%build
autoreconf -fi
++++++ U_Erase-cursor-image-when-changing-rotation.patch ++++++
From: Egbert Eich
Date: Fri Aug 29 18:25:55 2014 +0200
Subject: [PATCH]Erase cursor image when changing rotation
Patch-mainline: upstream
References: bnc#893752
Signed-off-by: Egbert Eich
The rotated cursor image will be at a different location
in the 64x64 bit block and won't overlap with the unrotated
image. Therefore it will not be overwritten if the real image
is smaller.
Signed-off-by: Egbert Eich
---
src/sna/sna_display.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 2d5477d..8472b76 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -4273,7 +4273,8 @@ static struct sna_cursor *__sna_get_cursor(struct sna *sna, xf86CrtcPtr crtc)
image = sna->cursor.scratch;
cursor->last_width = cursor->last_height = size;
}
- if (width < cursor->last_width || height < cursor->last_height)
+ if (width < cursor->last_width || height < cursor->last_height ||
+ size > cursor->size || rotation != cursor->rotation)
memset(image, 0, 4*size*size);
if (rotation == RR_Rotate_0) {
if (argb == NULL) {
++++++ U_sna_dri3_mesa_relies_upon_implicit_fences.patch ++++++
From 3320ac8c424320740db89fa10d0704d01a094b99 Mon Sep 17 00:00:00 2001
From: Chris Wilson
Date: Tue, 22 Jul 2014 08:38:42 +0100
Subject: [PATCH] sna/dri3: Mesa relies upon implicit fences
Keith Packard says that he did not implement fences for mesa and so DRI3
with explicit fencing is currently broken by design.
Signed-off-by: Chris Wilson
---
src/sna/sna_accel.c | 3 +++
src/sna/sna_dri3.c | 32 ++++++++++++++++++++++++++++----
2 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 97bcdcf..29f633f 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1408,6 +1408,9 @@ static void __sna_free_pixmap(struct sna *sna,
__sna_pixmap_free_cpu(sna, priv);
+ if (priv->flush)
+ sna_accel_watch_flush(sna, -1);
+
if (priv->header) {
assert(pixmap->drawable.pScreen == sna->scrn->pScreen);
assert(!priv->shm);
diff --git a/src/sna/sna_dri3.c b/src/sna/sna_dri3.c
index 5d51b41..61ebbe4 100644
--- a/src/sna/sna_dri3.c
+++ b/src/sna/sna_dri3.c
@@ -39,6 +39,8 @@
#include
#include
+#define MESA_IS_BROKEN 1
+
static DevPrivateKeyRec sna_sync_fence_private_key;
struct sna_sync_fence {
SyncFenceSetTriggeredFunc set_triggered;
@@ -49,6 +51,22 @@ static inline struct sna_sync_fence *sna_sync_fence(SyncFence *fence)
return dixLookupPrivate(&fence->devPrivates, &sna_sync_fence_private_key);
}
+static inline void mark_dri3_pixmap(struct sna *sna, struct sna_pixmap *priv, struct kgem_bo *bo)
+{
+ if (!MESA_IS_BROKEN)
+ return;
+
+ bo->flush = true;
+ if (bo->exec)
+ sna->kgem.flush = 1;
+ if (bo == priv->gpu_bo)
+ priv->flush |= 3;
+ else
+ priv->shm = true;
+
+ sna_accel_watch_flush(sna, 1);
+}
+
static void sna_sync_flush(struct sna *sna, struct sna_pixmap *priv)
{
struct kgem_bo *bo = NULL;
@@ -94,11 +112,13 @@ sna_sync_fence_set_triggered(SyncFence *fence)
DBG(("%s: associated pixmap=%ld\n", __FUNCTION__, get_drawable_pixmap(draw)->drawable.serialNumber));
sna_sync_flush(sna, sna_pixmap(get_drawable_pixmap(draw)));
} else { /* SyncFence are currently per-screen, sigh */
- struct sna_pixmap *priv;
+ if (!MESA_IS_BROKEN) {
+ struct sna_pixmap *priv;
- DBG(("%s: flushing all DRI3 pixmaps\n", __FUNCTION__));
- list_for_each_entry(priv, &sna->dri3.pixmaps, cow_list)
- sna_sync_flush(sna, priv);
+ DBG(("%s: flushing all DRI3 pixmaps\n", __FUNCTION__));
+ list_for_each_entry(priv, &sna->dri3.pixmaps, cow_list)
+ sna_sync_flush(sna, priv);
+ }
sna_accel_flush(sna);
}
@@ -278,6 +298,8 @@ static PixmapPtr sna_dri3_pixmap_from_fd(ScreenPtr screen,
}
list_add(&priv->cow_list, &sna->dri3.pixmaps);
+ mark_dri3_pixmap(sna, priv, bo);
+
return pixmap;
free_pixmap:
@@ -338,6 +360,7 @@ static int sna_dri3_fd_from_pixmap(ScreenPtr screen,
priv->pinned |= PIN_DRI3;
list_move(&priv->cow_list, &sna->dri3.pixmaps);
+ mark_dri3_pixmap(sna, priv, bo);
*stride = (priv->pinned & PIN_DRI3) ? priv->gpu_bo->pitch : priv->cpu_bo->pitch;
*size = kgem_bo_size((priv->pinned & PIN_DRI3) ? priv->gpu_bo : priv->cpu_bo);
DBG(("%s: exporting %s pixmap=%ld, handle=%d, stride=%d, size=%d\n",
--
2.0.1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org