xf86-video-intel: 2 commits - src/sna/kgem.c src/sna/sna_display.c src/sna/sna_display_fake.c src/sna/sna_driver.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Aug 26 03:45:01 PDT 2014


 src/sna/kgem.c             |    3 ++-
 src/sna/sna_display.c      |    5 +++--
 src/sna/sna_display_fake.c |    4 +++-
 src/sna/sna_driver.c       |    6 ++++++
 4 files changed, 14 insertions(+), 4 deletions(-)

New commits:
commit 51037706b068b52b7c8984527c209d295e1e3584
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Aug 26 11:43:28 2014 +0100

    sna: Fix attaching to a headless configuration
    
    ADDFB fails with a headless config (as any fb size is invalid).
    Fortunately, with headless we can use any depth we like.
    
    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 ea0324b..d162def 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -5677,13 +5677,13 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
 
 		sna_cursor_pre_init(sna);
 		sna_backlight_pre_init(sna);
+
+		set_size_range(sna);
 	} else {
 		if (num_fake == 0)
 			num_fake = 1;
 	}
 
-	set_size_range(sna);
-
 	if (!sna_mode_fake_init(sna, num_fake))
 		return false;
 
@@ -5740,6 +5740,7 @@ sna_mode_set_primary(struct sna *sna)
 		if (!xf86ReturnOptValBool(output->options, OPTION_PRIMARY, FALSE))
 			continue;
 
+		DBG(("%s: setting PrimaryOutput %s\n", __FUNCTION__, output->name));
 		rr->primaryOutput = output->randr_output;
 		RROutputChanged(rr->primaryOutput, 0);
 		rr->layoutChanged = TRUE;
diff --git a/src/sna/sna_display_fake.c b/src/sna/sna_display_fake.c
index b143d86..4d74c38 100644
--- a/src/sna/sna_display_fake.c
+++ b/src/sna/sna_display_fake.c
@@ -331,8 +331,10 @@ bool sna_mode_fake_init(struct sna *sna, int num_fake)
 	if (num_fake == 0)
 		return true;
 
-	if (sna->mode.num_real_crtc == 0)
+	if (sna->mode.num_real_crtc == 0) {
 		xf86CrtcConfigInit(sna->scrn, &sna_mode_funcs);
+		xf86CrtcSetSizeRange(sna->scrn, 1, 1, INT16_MAX, INT16_MAX);
+	}
 
 	ret = true;
 	while (ret && num_fake--)
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 4b35fe9..66f72dc 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -445,8 +445,14 @@ static Bool fb_supports_depth(int fd, int depth)
 {
 	struct drm_i915_gem_create create;
 	struct drm_mode_fb_cmd fb;
+	struct drm_mode_card_res res;
 	Bool ret;
 
+	memset(&res, 0, sizeof(res));
+	(void)drmIoctl(fd, DRM_IOCTL_MODE_GETRESOURCES, &res);
+	if (res.count_crtcs == 0)
+		return TRUE;
+
 	VG_CLEAR(create);
 	create.handle = 0;
 	create.size = 4096;
commit 8c5229cf8fc642f8b7e091c38bfd27032ee5e48c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sun Aug 24 16:25:05 2014 +0100

    sna: Make one last gasp at submitting the execbuffer before bailing
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 16f72a0..6d4e074 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -3209,7 +3209,8 @@ retry:
 	if (kgem_cleanup_cache(kgem))
 		goto retry;
 
-	return ret;
+	/* last gasp */
+	return do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, execbuf);
 }
 
 void _kgem_submit(struct kgem *kgem)


More information about the xorg-commit mailing list