diff options
author | marha <marha@users.sourceforge.net> | 2013-07-26 07:46:15 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-07-26 07:46:15 +0200 |
commit | ec34243fae167734bfa5ba81278763af7db0fb2b (patch) | |
tree | 759fdfbe8376d8ba3a9dd82d33df9d2735e2fbc9 /xorg-server/hw | |
parent | 1ba15549ff13d0bfcf4e82c6005d3cc40f2bf098 (diff) | |
parent | 8647aa1a5029fcd96f134103331ddf3c21bc0a0b (diff) | |
download | vcxsrv-ec34243fae167734bfa5ba81278763af7db0fb2b.tar.gz vcxsrv-ec34243fae167734bfa5ba81278763af7db0fb2b.tar.bz2 vcxsrv-ec34243fae167734bfa5ba81278763af7db0fb2b.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
xserver mesa git update 26 Jul 2013
Diffstat (limited to 'xorg-server/hw')
-rw-r--r-- | xorg-server/hw/xfree86/modes/xf86RandR12.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/xorg-server/hw/xfree86/modes/xf86RandR12.c b/xorg-server/hw/xfree86/modes/xf86RandR12.c index 2817aaa1f..76614de78 100644 --- a/xorg-server/hw/xfree86/modes/xf86RandR12.c +++ b/xorg-server/hw/xfree86/modes/xf86RandR12.c @@ -1771,6 +1771,19 @@ xf86RandR12EnterVT(ScrnInfoPtr pScrn) return RRGetInfo(pScreen, TRUE); /* force a re-probe of outputs and notify clients about changes */ } +static void +xf86DetachOutputGPU(ScreenPtr pScreen) +{ + rrScrPrivPtr rp = rrGetScrPriv(pScreen); + int i; + + /* make sure there are no attached shared scanout pixmaps first */ + for (i = 0; i < rp->numCrtcs; i++) + RRCrtcDetachScanoutPixmap(rp->crtcs[i]); + + DetachOutputGPU(pScreen); +} + static Bool xf86RandR14ProviderSetOutputSource(ScreenPtr pScreen, RRProviderPtr provider, @@ -1780,7 +1793,7 @@ xf86RandR14ProviderSetOutputSource(ScreenPtr pScreen, if (provider->output_source) { ScreenPtr cmScreen = pScreen->current_master; - DetachOutputGPU(pScreen); + xf86DetachOutputGPU(pScreen); AttachUnboundGPU(cmScreen, pScreen); } provider->output_source = NULL; @@ -1808,7 +1821,7 @@ xf86RandR14ProviderSetOffloadSink(ScreenPtr pScreen, if (!sink_provider) { if (provider->offload_sink) { ScreenPtr cmScreen = pScreen->current_master; - DetachOutputGPU(pScreen); + xf86DetachOutputGPU(pScreen); AttachUnboundGPU(cmScreen, pScreen); } @@ -1899,7 +1912,7 @@ xf86RandR14ProviderDestroy(ScreenPtr screen, RRProviderPtr provider) RRSetChanged(screen); } else if (config->randr_provider->output_source) { - DetachOutputGPU(screen); + xf86DetachOutputGPU(screen); config->randr_provider->output_source = NULL; RRSetChanged(screen); } |