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