xf86-video-intel: 3 commits - src/sna/kgem.c src/sna/sna_display.c src/sna/sna_driver.c
Chris Wilson
ickle at kemper.freedesktop.org
Tue Mar 5 03:15:19 PST 2013
src/sna/kgem.c | 2 +-
src/sna/sna_display.c | 16 +++++++++++++++-
src/sna/sna_driver.c | 8 +++-----
3 files changed, 19 insertions(+), 7 deletions(-)
New commits:
commit 60ec35b8d25ecfabf1744ea7bc81109d7f2a90e2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Mar 5 11:14:37 2013 +0000
sna: Be explicit when checking for an idle bo after CPU synchronisation
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 324df6d..16f60bb 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -4793,7 +4793,7 @@ void kgem_bo_sync__cpu_full(struct kgem *kgem, struct kgem_bo *bo, bool write)
set_domain.write_domain = write ? I915_GEM_DOMAIN_CPU : 0;
if (drmIoctl(kgem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, &set_domain) == 0) {
- if (write || bo->needs_flush)
+ if (bo->exec == NULL)
kgem_bo_retire(kgem, bo);
bo->domain = write ? DOMAIN_CPU : DOMAIN_NONE;
}
commit ad4901a0354efaed65bb15ef33561df067d300b7
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Mar 5 09:23:07 2013 +0000
sna: Ensure that the tearfree swap is unmapped afterwards
After swapping the bo for the screen pixmap, we need to make sure that
we don't chase any dangling pointers.
References: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1133490
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index b70e055..e54c986 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3278,6 +3278,20 @@ sna_crtc_redisplay(xf86CrtcPtr crtc, RegionPtr region)
sna_crtc_redisplay__composite(crtc, region);
}
+static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo)
+{
+ struct sna_pixmap *priv = sna_pixmap(pixmap);
+
+ if (priv->mapped) {
+ assert(!priv->shm && priv->stride);
+ pixmap->devPrivate.ptr = PTR(priv->ptr);
+ pixmap->devKind = priv->stride;
+ priv->mapped = false;
+ }
+
+ priv->gpu_bo = bo;
+}
+
void sna_mode_redisplay(struct sna *sna)
{
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
@@ -3406,7 +3420,7 @@ disable:
COPY_LAST);
kgem_submit(&sna->kgem);
- sna_pixmap(sna->front)->gpu_bo = old;
+ set_bo(sna->front, old);
sna_dri_pixmap_update_bo(sna, sna->front);
sna->mode.shadow = new;
commit 007a95d62fc998b3a558bb80310c82256d00b0bb
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Mon Mar 4 13:52:04 2013 +0000
sna: Drop a local variable only used to hold a constant
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 83cda8c..0458743 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -489,7 +489,6 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
rgb defaultWeight = { 0, 0, 0 };
EntityInfoPtr pEnt;
int preferred_depth;
- int flags24;
Gamma zeros = { 0.0, 0.0, 0.0 };
int fd;
@@ -544,14 +543,13 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
return FALSE;
}
-
- flags24 = Support32bppFb | PreferConvert24to32 | SupportConvert24to32;
-
preferred_depth = sna->info->gen < 030 ? 15 : 24;
if (!fb_supports_depth(fd, preferred_depth))
preferred_depth = 24;
- if (!xf86SetDepthBpp(scrn, preferred_depth, 0, 0, flags24))
+ if (!xf86SetDepthBpp(scrn, preferred_depth, 0, 0,
+ Support32bppFb |
+ SupportConvert24to32 | PreferConvert24to32))
return FALSE;
switch (scrn->depth) {
More information about the xorg-commit
mailing list