On Thu, Jan 27, 2011 at 8:40 PM, Maarten Maathuis <[email protected]> wrote: > - Apps like xterm can trigger a lot of fallback rendering. > - This can lead to (annoyingly) high latencies, because you > have to wait for the block handler. > - You need a driver that doesn't directly access the front > buffer to trigger this (NV50+ nouveau for example). > - Repeatingly doing dmesg on an xterm with a bitmap font > will reveal that you never see part of the text. > - I have recieved at least one complaint in the past of slow > terminal performance, which was related to core font > rendering. > - This does sacrifice some throughput, roughly 33% slower. > > Reviewed-by: Michel Dänzer <[email protected]> > Signed-off-by: Maarten Maathuis <[email protected]> > --- > exa/exa_migration_mixed.c | 17 +++++++++++++---- > 1 files changed, 13 insertions(+), 4 deletions(-) > > diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c > index fb47151..4f49905 100644 > --- a/exa/exa_migration_mixed.c > +++ b/exa/exa_migration_mixed.c > @@ -138,6 +138,7 @@ void > exaDamageReport_mixed(DamagePtr pDamage, RegionPtr pRegion, void *closure) > { > PixmapPtr pPixmap = closure; > + ScreenPtr pScreen = pPixmap->drawable.pScreen; > ExaPixmapPriv(pPixmap); > > /* Move back results of software rendering on system memory copy of mixed > driver > @@ -149,10 +150,18 @@ exaDamageReport_mixed(DamagePtr pDamage, RegionPtr > pRegion, void *closure) > if (!pExaPixmap->use_gpu_copy && exaPixmapHasGpuCopy(pPixmap)) { > ExaScreenPriv(pPixmap->drawable.pScreen); > > - if (pExaScr->deferred_mixed_pixmap && > - pExaScr->deferred_mixed_pixmap != pPixmap) > - exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap); > - pExaScr->deferred_mixed_pixmap = pPixmap; > + /* Front buffer: Don't wait for the block handler to copy back the > data. > + * This avoids annoying latency if you encounter a lot of software > rendering. > + */ > + if (pPixmap == pScreen->GetScreenPixmap(pScreen)) > + exaMoveInPixmap_mixed(pPixmap); > + else { > + if (pExaScr->deferred_mixed_pixmap && > + pExaScr->deferred_mixed_pixmap != pPixmap) > + exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap); > + > + pExaScr->deferred_mixed_pixmap = pPixmap; > + } > } > } > > -- > 1.7.4.rc2 > >
Are list patches still accepted or do i need to figure out how to get a personal git repo, so they can be pulled? -- Far away from the primal instinct, the song seems to fade away, the river get wider between your thoughts and the things we do and say. _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
