diff options
Diffstat (limited to 'xorg-server')
-rw-r--r-- | xorg-server/configure.ac | 6 | ||||
-rw-r--r-- | xorg-server/present/present.c | 33 | ||||
-rw-r--r-- | xorg-server/xkeyboard-config/rules/base.extras.xml.in | 12 |
3 files changed, 34 insertions, 17 deletions
diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac index 7ec19976b..8f823863d 100644 --- a/xorg-server/configure.ac +++ b/xorg-server/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.14.99.905, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2013-12-19" -RELEASE_NAME="Kraken" +AC_INIT([xorg-server], 1.15.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2013-12-27" +RELEASE_NAME="Egg Nog" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AC_USE_SYSTEM_EXTENSIONS diff --git a/xorg-server/present/present.c b/xorg-server/present/present.c index 50bd05539..30cd3b936 100644 --- a/xorg-server/present/present.c +++ b/xorg-server/present/present.c @@ -525,6 +525,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) WindowPtr window = vblank->window; ScreenPtr screen = window->drawable.pScreen; present_screen_priv_ptr screen_priv = present_screen_priv(screen); + uint8_t mode; if (vblank->wait_fence) { if (!present_fence_check_triggered(vblank->wait_fence)) { @@ -604,7 +605,20 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence); } - present_vblank_notify(vblank, vblank->kind, PresentCompleteModeCopy, ust, crtc_msc); + + /* Compute correct CompleteMode + */ + if (vblank->kind == PresentCompleteKindPixmap) { + if (vblank->pixmap && vblank->window) + mode = PresentCompleteModeCopy; + else + mode = PresentCompleteModeSkip; + } + else + mode = PresentCompleteModeCopy; + + + present_vblank_notify(vblank, vblank->kind, mode, ust, crtc_msc); present_vblank_destroy(vblank); } @@ -663,10 +677,18 @@ present_pixmap(WindowPtr window, if (crtc_msc >= target_msc) { if (divisor != 0) { target_msc = crtc_msc - (crtc_msc % divisor) + remainder; - if (target_msc <= crtc_msc) - target_msc += divisor; - } else + if (options & PresentOptionAsync) { + if (target_msc < crtc_msc) + target_msc += divisor; + } else { + if (target_msc <= crtc_msc) + target_msc += divisor; + } + } else { target_msc = crtc_msc; + if (!(options & PresentOptionAsync)) + target_msc++; + } } /* @@ -681,6 +703,9 @@ present_pixmap(WindowPtr window, if (!vblank->pixmap) continue; + if (!vblank->queued) + continue; + if (vblank->crtc != target_crtc || vblank->target_msc != target_msc) continue; diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in index aa47e3da0..dd3251b6e 100644 --- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in +++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in @@ -689,20 +689,12 @@ <variantList> <variant> <configItem> - <name>dvorak_a5</name> - <_description>Swedish (Dvorak A5)</_description> - </configItem> - </variant> - </variantList> - <variantList> - <variant> - <configItem> <name>sun_type6</name> <_description>Swedish (Sun Type 6/7)</_description> </configItem> </variant> - </variantList> - </layout> + </variantList> + </layout> <layout> <configItem> <name>ch</name> |