mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-21 20:26:45 +00:00
- Don't try to upload 0 byte-per-pixel (PICT_a1) data using
RADEONHostDataBlit.
- Disable the shortcut for switching from 3d to 3d in radeon_exa.c. It
appears that we do need the cache flush here, thought it's not clear
why. Disable the 2d to 2d shortcut while here, since I'm unsure of what
we're doing. Exposed by the following bit:
- Bug #4485: Add a new routine, exaGlyphs, to handle font drawing. Glyphs
were being accumulated in from non-migratable scratch pixmaps, causing
the destination pixmap to move towards screen but the migration
necessary for source never to happen, leading to abysmal performance.
Instead, copy the scratch glyph data into a real pixmap first, then
composite from that into the destination, allowing for migration. time
ls -lR from programs/Xserver showed 26.9% (+/- 6.3%) decrease in wall
time (n=3).
- Create exaDrawableUse* wrapping exaPixmapUse*, but which are aware of
windows needing backing store. Makes migration code prettier, and
ensures that composited windows will be migrated as normal when we turn
off cw for EXA. (issue brought up by keithp)
This commit is contained in:
parent
be2bdab433
commit
074913c8a9
12 changed files with 1047 additions and 147 deletions
|
|
@ -70,6 +70,7 @@ typedef struct {
|
|||
CopyWindowProcPtr SavedCopyWindow;
|
||||
#ifdef RENDER
|
||||
CompositeProcPtr SavedComposite;
|
||||
GlyphsProcPtr SavedGlyphs;
|
||||
#endif
|
||||
EnableDisableFBAccessProcPtr SavedEnableDisableFBAccess;
|
||||
Bool wrappedEnableDisableFB;
|
||||
|
|
@ -241,6 +242,12 @@ void
|
|||
exaEnableDisableFBAccess (int index, Bool enable);
|
||||
|
||||
/* exa.c */
|
||||
void
|
||||
exaDrawableUseScreen(DrawablePtr pDrawable);
|
||||
|
||||
void
|
||||
exaDrawableUseMemory(DrawablePtr pDrawable);
|
||||
|
||||
void
|
||||
exaPixmapUseScreen (PixmapPtr pPixmap);
|
||||
|
||||
|
|
@ -299,4 +306,15 @@ exaComposite(CARD8 op,
|
|||
CARD16 width,
|
||||
CARD16 height);
|
||||
|
||||
void
|
||||
exaGlyphs (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pDst,
|
||||
PictFormatPtr maskFormat,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
int nlist,
|
||||
GlyphListPtr list,
|
||||
GlyphPtr *glyphs);
|
||||
|
||||
#endif /* EXAPRIV_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue