xf86-video-intel: 2 commits - src/sna/sna_display.c src/sna/sna_driver.c
Chris Wilson
ickle at kemper.freedesktop.org
Sat Jun 7 07:08:15 PDT 2014
src/sna/sna_display.c | 18 ++++++++----------
src/sna/sna_driver.c | 4 ++--
2 files changed, 10 insertions(+), 12 deletions(-)
New commits:
commit ecd80a3a997b11307445c50621d4e86e241a5b22
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Jun 7 14:57:10 2014 +0100
sna: Fix reporting of TearFree
The switch was moved after we checked whether pageflips are supported,
but the log message was left in the old location.
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 97872a7..ce2490b 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -640,8 +640,6 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
sna->tiling & SNA_TILING_FB ? "tiled" : "linear");
xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Pixmaps %s\n",
sna->tiling & SNA_TILING_2D ? "tiled" : "linear");
- xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "\"Tear free\" %sabled\n",
- sna->flags & SNA_TEAR_FREE ? "en" : "dis");
xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Forcing per-crtc-pixmaps? %s\n",
sna->flags & SNA_FORCE_SHADOW ? "yes" : "no");
@@ -659,6 +657,8 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
if (sna->flags & SNA_HAS_FLIP &&
xf86ReturnOptValBool(sna->Options, OPTION_TEAR_FREE, ENABLE_TEAR_FREE))
sna->flags |= SNA_TEAR_FREE;
+ xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "TearFree %sabled\n",
+ sna->flags & SNA_TEAR_FREE ? "en" : "dis");
xf86SetGamma(scrn, zeros);
xf86SetDpi(scrn, 0, 0);
commit 035be60f332e4729fb90261605ef6c06a9d9c903
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Jun 7 13:26:12 2014 +0100
sna: Release CRTC on VT switch
In order to free up memory and improve our bookkeeping when the X server
is switched away from the current VT, disable the CRTC.
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 f81045d..896c50c 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1264,6 +1264,7 @@ sna_crtc_disable(xf86CrtcPtr crtc)
kgem_bo_destroy(&sna->kgem, sna_crtc->bo);
sna_crtc->bo = NULL;
+ assert(sna->mode.front_active);
sna->mode.front_active--;
sna->mode.dirty = true;
}
@@ -1284,6 +1285,7 @@ static void update_flush_interval(struct sna *sna)
if (!crtc->enabled) {
DBG(("%s: CRTC:%d (pipe %d) disabled\n",
__FUNCTION__,i, to_sna_crtc(crtc)->pipe));
+ assert(to_sna_crtc(crtc)->bo == NULL);
continue;
}
@@ -1299,9 +1301,10 @@ static void update_flush_interval(struct sna *sna)
max_vrefresh = max(max_vrefresh, xf86ModeVRefresh(&crtc->mode));
}
- if (max_vrefresh == 0)
+ if (max_vrefresh == 0) {
+ assert(sna->mode.front_active == 0);
sna->vblank_interval = 0;
- else
+ } else
sna->vblank_interval = 1000 / max_vrefresh; /* Hz -> ms */
DBG(("max_vrefresh=%d, vblank_interval=%d ms\n",
@@ -5391,6 +5394,9 @@ void sna_mode_reset(struct sna *sna)
DBG(("%s\n", __FUNCTION__));
sna_hide_cursors(sna->scrn);
+ for (i = 0; i < sna->mode.num_real_crtc; i++)
+ sna_crtc_disable(config->crtc[i]);
+ assert(sna->mode.front_active == 0);
for (i = 0; i < sna->mode.num_real_crtc; i++) {
struct sna_crtc *sna_crtc = to_sna_crtc(config->crtc[i]);
@@ -5402,14 +5408,6 @@ void sna_mode_reset(struct sna *sna)
rotation_reset(&sna_crtc->primary_rotation);
rotation_reset(&sna_crtc->sprite_rotation);
}
-
- for (i = 0; i < config->num_output; i++) {
- struct sna_output *sna_output = to_sna_output(config->output[i]);
- if (sna_output == NULL)
- continue;
-
- sna_output->dpms_mode = -1;
- }
}
static void transformed_box(BoxRec *box, xf86CrtcPtr crtc)
More information about the xorg-commit
mailing list