diff options
author | marha <marha@users.sourceforge.net> | 2013-07-26 07:45:10 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-07-26 07:45:10 +0200 |
commit | 8647aa1a5029fcd96f134103331ddf3c21bc0a0b (patch) | |
tree | 419501343bcdd7e12477b1f3bbc302815752ce55 /xorg-server/hw/xfree86 | |
parent | acf3535c75d7c79154b6b89c66567317944d244c (diff) | |
download | vcxsrv-8647aa1a5029fcd96f134103331ddf3c21bc0a0b.tar.gz vcxsrv-8647aa1a5029fcd96f134103331ddf3c21bc0a0b.tar.bz2 vcxsrv-8647aa1a5029fcd96f134103331ddf3c21bc0a0b.zip |
xserver mesa git update 26 Jul 2013
xserver commit bdd1e22cbde9ea2324e4e1991c9e152f22f88151
mesa commit 81a156d099b5c224d4a528b66a80e25626ed65bc
Diffstat (limited to 'xorg-server/hw/xfree86')
-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); } |