Use SwapbuffersWait config option to control waiting on fullscreen swaps

As fullscreen swaps were going via a different path to the swapping of
ordinary windows, we were no longer honouring the xorg.conf option to
disable swapbuffer waiting.

This changes the code to only use pageflipping if the Option
"SwapbuffersWait" is set to "TRUE" (default).

Jesse's comment was that this should be superseded by actually
supporting asynchronous page flips. As we are missing kernel and dix level
support for that, in the meantime honour the config option.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
Chris Wilson 2011-04-12 13:48:38 +01:00
parent c9fb69cb25
commit 1d102cc6ed
3 changed files with 2 additions and 4 deletions

View File

@ -1607,7 +1607,7 @@ Bool intel_mode_pre_init(ScrnInfoPtr scrn, int fd, int cpp)
gp.value = &has_flipping;
(void)drmCommandWriteRead(intel->drmSubFD, DRM_I915_GETPARAM, &gp,
sizeof(gp));
if (has_flipping) {
if (has_flipping && intel->swapbuffers_wait) {
xf86DrvMsg(scrn->scrnIndex, X_INFO,
"Kernel page flipping support detected, enabling\n");
intel->use_pageflipping = TRUE;

View File

@ -425,7 +425,7 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
/* Wait for the scanline to be outside the region to be copied */
if (pixmap_is_scanout(get_drawable_pixmap(dst)) &&
intel->swapbuffers_wait) {
intel->swapbuffers_wait && INTEL_INFO(intel)->gen < 60) {
BoxPtr box;
BoxRec crtcbox;
int y1, y2;

View File

@ -658,8 +658,6 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
intel->swapbuffers_wait = xf86ReturnOptValBool(intel->Options,
OPTION_SWAPBUFFERS_WAIT,
TRUE);
if (IS_GEN6(intel))
intel->swapbuffers_wait = FALSE;
xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Framebuffer %s\n",
intel->tiling & INTEL_TILING_FB ? "tiled" : "linear");