xf86-video-intel: 3 commits - man/intel.man src/intel_driver.c src/intel_options.c src/intel_options.h src/sna/sna_blt.c src/sna/sna_display.c src/sna/sna_driver.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Jul 3 05:06:55 PDT 2013


 man/intel.man         |   13 +++++++++++++
 src/intel_driver.c    |    5 +----
 src/intel_options.c   |    2 +-
 src/intel_options.h   |    2 +-
 src/sna/sna_blt.c     |    8 ++++----
 src/sna/sna_display.c |    3 +++
 src/sna/sna_driver.c  |    9 ---------
 7 files changed, 23 insertions(+), 19 deletions(-)

New commits:
commit 1445a62da8a08acd8a732176d085fd098f68cec3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jul 3 12:59:31 2013 +0100

    intel: Add an option for forced rediscovery of output status on startup
    
    Specifying
      Section "Device"
        Option "ReprobeOutputs" "true"
      EndSection
    will restore the old behaviour of scanning each output on startup and
    picking a spanning mode.
    
    The behaviour was changed in
    commit 8a6a21bff86100144ba7960fc32a299ac54ada83 [2.21.11]
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Wed Jun 26 13:29:48 2013 +0100
    
        sna: Use the existing configuration for initial modes
    
    Please do notify us of any circumstances that force you to use this
    flag.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=66494
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/man/intel.man b/man/intel.man
index fbd0230..9e19687 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -134,6 +134,19 @@ disable render acceleration and only use the BLT engine.
 .IP
 Default: use UXA (render acceleration)
 .TP
+.BI "Option \*qReprobeOutputs\*q \*q" boolean \*q
+Disable or enable rediscovery of connected displays during server startup.
+As the kernel driver loads it scans for connected displays and configures a
+console spanning those outputs. When the X server starts, we then take the
+list of connected displays and framebuffer layout and use that for the
+initial configuration. Sometimes, not all displays are correctly detected by
+the kernel and so it is useful in a few circumstances for X to force the
+kernel to reprobe all displays when it starts. To make the X server recheck
+the status of connected displays, set the \*qReprobeOutputs\*q option to true.
+Please do file a bug for any circumstances which require this workaround.
+.IP
+Default: reprobing is disabled for a faster startup.
+.TP
 .BI "Option \*qVideoKey\*q \*q" integer \*q
 This is the same as the
 .B \*qColorKey\*q
diff --git a/src/intel_options.c b/src/intel_options.c
index ca172b5..b81bde6 100644
--- a/src/intel_options.c
+++ b/src/intel_options.c
@@ -17,6 +17,7 @@ const OptionInfoRec intel_options[] = {
 	{OPTION_TRIPLE_BUFFER,	"TripleBuffer", OPTV_BOOLEAN,	{0},	1},
 	{OPTION_PREFER_OVERLAY, "XvPreferOverlay", OPTV_BOOLEAN, {0}, 0},
 	{OPTION_HOTPLUG,	"HotPlug",	OPTV_BOOLEAN,	{0},	1},
+	{OPTION_REPROBE,	"ReprobeOutputs", OPTV_BOOLEAN,	{0},	0},
 #ifdef INTEL_XVMC
 	{OPTION_XVMC,	"XvMC",		OPTV_BOOLEAN,	{0},	1},
 #endif
diff --git a/src/intel_options.h b/src/intel_options.h
index 8cee054..112983d 100644
--- a/src/intel_options.h
+++ b/src/intel_options.h
@@ -23,6 +23,7 @@ enum intel_options {
 	OPTION_TRIPLE_BUFFER,
 	OPTION_PREFER_OVERLAY,
 	OPTION_HOTPLUG,
+	OPTION_REPROBE,
 #if defined(XvMCExtension) && defined(ENABLE_XVMC)
 	OPTION_XVMC,
 #define INTEL_XVMC 1
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index eaf54e9..de27a36 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -2936,6 +2936,9 @@ static bool sna_probe_initial_configuration(struct sna *sna)
 	int width, height;
 	int i, j;
 
+	if (xf86ReturnOptValBool(sna->Options, OPTION_REPROBE, FALSE))
+		return false;
+
 	/* First scan through all outputs and look for user overrides */
 	for (i = 0; i < config->num_output; i++) {
 		xf86OutputPtr output = config->output[i];
commit 2ecff61d369d9f67c6e28d407941f35ed6195156
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jul 3 12:45:10 2013 +0100

    intel: Retire Option "RelaxedFencing"
    
    The kernel bugs have long since been fixed and should have been
    propagated to all stable kernels long ago. Now there should be no need
    to workaround those bugs.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/intel_driver.c b/src/intel_driver.c
index 7569c13..f4d76bb 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -585,10 +585,7 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
 
 	intel->has_prime_vmap_flush = has_prime_vmap_flush(intel);
 
-	intel->has_relaxed_fencing =
-		xf86ReturnOptValBool(intel->Options,
-				     OPTION_RELAXED_FENCING,
-				     INTEL_INFO(intel)->gen >= 033);
+	intel->has_relaxed_fencing = INTEL_INFO(intel)->gen >= 033;
 	/* And override the user if there is no kernel support */
 	if (intel->has_relaxed_fencing)
 		intel->has_relaxed_fencing = has_relaxed_fencing(intel);
diff --git a/src/intel_options.c b/src/intel_options.c
index fda2e8b..ca172b5 100644
--- a/src/intel_options.c
+++ b/src/intel_options.c
@@ -17,7 +17,6 @@ const OptionInfoRec intel_options[] = {
 	{OPTION_TRIPLE_BUFFER,	"TripleBuffer", OPTV_BOOLEAN,	{0},	1},
 	{OPTION_PREFER_OVERLAY, "XvPreferOverlay", OPTV_BOOLEAN, {0}, 0},
 	{OPTION_HOTPLUG,	"HotPlug",	OPTV_BOOLEAN,	{0},	1},
-	{OPTION_RELAXED_FENCING,"RelaxedFencing",	OPTV_BOOLEAN,	{0},	1},
 #ifdef INTEL_XVMC
 	{OPTION_XVMC,	"XvMC",		OPTV_BOOLEAN,	{0},	1},
 #endif
diff --git a/src/intel_options.h b/src/intel_options.h
index 8fa7a8f..8cee054 100644
--- a/src/intel_options.h
+++ b/src/intel_options.h
@@ -23,7 +23,6 @@ enum intel_options {
 	OPTION_TRIPLE_BUFFER,
 	OPTION_PREFER_OVERLAY,
 	OPTION_HOTPLUG,
-	OPTION_RELAXED_FENCING,
 #if defined(XvMCExtension) && defined(ENABLE_XVMC)
 	OPTION_XVMC,
 #define INTEL_XVMC 1
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 2874c64..aafa365 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -483,15 +483,6 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
 		sna->kgem.wedged = true;
 	}
 
-	if (!xf86ReturnOptValBool(sna->Options,
-				  OPTION_RELAXED_FENCING,
-				  sna->kgem.has_relaxed_fencing)) {
-		xf86DrvMsg(scrn->scrnIndex,
-			   sna->kgem.has_relaxed_fencing ? X_CONFIG : X_PROBED,
-			   "Disabling use of relaxed fencing\n");
-		sna->kgem.has_relaxed_fencing = 0;
-	}
-
 	/* Enable tiling by default */
 	sna->tiling = SNA_TILING_ALL;
 
commit c957f4171791447f1869f11fd724dbe92e6a8b91
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Jul 2 23:59:02 2013 +0100

    sna: Try harder to do the BLT upload along the fallback path
    
    Only in the !fallback path will we try using the render pipeline after
    the blt, in which case we can try using render rather than forcing a
    stall. In the fallback path, we are going to incur stalls and readbacks,
    anyway so ignore them when considering blt.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index e3d6f10..8b10707 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -2213,7 +2213,8 @@ fill:
 
 		if (src_pixmap->drawable.width  <= sna->render.max_3d_size &&
 		    src_pixmap->drawable.height <= sna->render.max_3d_size &&
-		    bo->pitch <= sna->render.max_3d_pitch)
+		    bo->pitch <= sna->render.max_3d_pitch &&
+		    !fallback)
 		{
 			return false;
 		}
@@ -2237,7 +2238,7 @@ fill:
 		if (!tmp->dst.bo) {
 			DBG(("%s: fallback -- unaccelerated read back\n",
 			     __FUNCTION__));
-			if (!kgem_bo_is_busy(bo))
+			if (fallback || !kgem_bo_is_busy(bo))
 				goto put;
 		} else if (bo->snoop && tmp->dst.bo->snoop) {
 			DBG(("%s: fallback -- can not copy between snooped bo\n",
@@ -2246,8 +2247,7 @@ fill:
 		} else if (!kgem_bo_can_blt(&sna->kgem, tmp->dst.bo)) {
 			DBG(("%s: fallback -- unaccelerated upload\n",
 			     __FUNCTION__));
-			if (!kgem_bo_is_busy(tmp->dst.bo) &&
-			    !kgem_bo_is_busy(bo))
+			if (fallback || !kgem_bo_is_busy(bo))
 				goto put;
 		} else {
 			ret = prepare_blt_copy(sna, tmp, bo, alpha_fixup);


More information about the xorg-commit mailing list