summaryrefslogtreecommitdiff
path: root/exa
AgeCommit message (Collapse)AuthorFilesLines
2008-11-17exa: avoid doing prepare/done without intervening copies in exaFillRegionTiledDave Airlie1-22/+39
This does a precursor check to make sure the copies are required before entering the prepare/done code.
2008-11-17EXA: avoid copy operations if no boxes in useDave Airlie1-0/+4
Simple fix for now, I'm sure damage shouldn't be calling us with nbox = 0.
2008-11-08Fix typos which caused exaCompositeRects() to use an incorrect damage region.Michel Dänzer1-3/+3
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18065 . Also, it can bail if either width or height of the bounding box is <= 0, not only if both of them are.
2008-10-23Wrap AddTraps in exa and damage.Keith Packard3-0/+26
This fine (and unused) function wasn't ever wrapped which made it not work under exa. (cherry picked from commit 06e7e1d0486e8c516a9b3219a2c86026f88825fc)
2008-10-21exa: Add exaDrawableIsOffscreen() to the driver API.Adam Jackson2-3/+2
2008-10-20EXA: Avoid excessive syncing in PutImageMichel Dänzer1-2/+4
2008-10-15exa: restore {x,y}{Src,Dst} to their original values when !doneMaarten Maathuis1-0/+6
2008-10-07exa: don't call composite routines with no buffer.Dave Airlie1-6/+8
We can get a case with gnome-terminal + links, where we get two arrays of glyphs all with 0 width and 0 heights in them. If this happens we manage to get to this case without any buffer setup and segfault.
2008-10-03exa: remove "direct" case for exa{Trapezoids,Triangles}Maarten Maathuis1-84/+7
- By adding a small hack to the xserver i was able to easily test the performance of the normally rare direct case (using cairo). - It turned out to be 70% slower for me (large test on an otherwise idle computer), which seems enough of a reason to remove it. - AddTraps could also use a 2nd look, but since noone is using that it's a bit hard and less useful to test.
2008-10-03exa: remove some excessive whitespaceMaarten Maathuis2-11/+10
2008-09-26exa: make sure pixmap devPrivate.ptr is NULL at create timeDave Airlie1-0/+3
2008-09-16exa: disable shared pixmapsJulien Cristau1-0/+10
They got re-enabled in ee7c684f21d220d5e046bab31ae617a7d64d60f6 ("Reimplement ShmPutImage.")
2008-09-01exa: drop cw.h inclusionDave Airlie3-3/+0
this doesn't seem to be needed, at least I can't see any warning without it. I'd like to build EXA into a driver and cw.h isn't exported
2008-08-31damage: choose less ambiguous function namesMaarten Maathuis1-7/+7
2008-08-29{damage,exa}: sanitise damageMaarten Maathuis4-83/+26
- Redo damage naming for more consistency. - Call post submission functions only where appropriate. - EXA can now live without it's odd damage workarounds.
2008-08-28Prepare for array-index based devPrivates.Tomas Carnecky1-2/+4
TODO: static indices can be made just an int; some indices can be combined.
2008-08-28Reimplement ShmPutImage.Adam Jackson3-104/+0
There's no reason to not just dispatch this straight into the GC. As a bonus, if you do so, damage wraps correctly, and thus swcursor works. The side effect is it's no longer possible to override ShmPutImage with ShmRegisterFuncs(). Also remove the (broken) damage tracking for same from EXA, since it didn't work right, and is now superfluous.
2008-08-26exa: fix thinko from 988725f32e082aee9392a71464125157a83d1e67Maarten Maathuis4-8/+8
- the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)
2008-08-26exa: some minor cleanupMaarten Maathuis3-17/+25
- Fix compile warning - Order exa.h by source file that exports the function. - Move the function i created earlier to private headers.
2008-08-26exa: report damage manually for exa{Trapezoids,Triangles} when neededMaarten Maathuis1-6/+16
- Plus a micro cleanup of unused variables.
2008-08-26exa: move destination damage for internal calls to a special functionMaarten Maathuis4-40/+48
- This should improve clarity for someone who isn't familiar with the code.
2008-08-26exa_glyphs: remove useless offsetMaarten Maathuis1-7/+6
2008-08-19exa: remove useless cache{X,Y}off from UploadToScreen() arguments.Maarten Maathuis1-2/+3
2008-08-19EXA: Inline Prepare/FinishAccessWindow into only caller, ChangeWindowAttributes.Michel Dänzer2-27/+12
Also check the requested mask in addition to the GC state before doing work.
2008-08-19EXA: Don't use exaGlyphs if the driver doesn't provide a PrepareComposite hook.Michel Dänzer1-4/+8
It's buggy without Composite acceleration (leading to cropped glyphs) and not really useful in that case anyway. The bug probably still needs to be found and fixed for drivers that provide a PrepareComposite hook but can't accelerate text rendering though.
2008-08-17exa: fix assert logic thinko from 361a9eb953aaa38f8ebc057185de29e50f9eef26Maarten Maathuis1-1/+1
- I guess failing PrepareAccess is rare, since this a 3 year old bug.
2008-08-08EXA: Make sure damage tracking code is inactive if the driver manages pixmaps.Michel Dänzer4-124/+153
It was always supposed to be like that... It was only recently pointed out (in a rather convoluted way) that it was not in fact the case.
2008-08-05EXA: Remove unnecessary #includesDaniel Stone2-4/+0
There wasn't actually any font code here, so no problem.
2008-07-31EXA: Do still return FALSE if the driver PrepareCopy hook failed...Michel Dänzer1-1/+3
Thanks to Stuart Bennett for pointing out the problem on IRC.
2008-07-31EXA: Fix exponential growth logic for GXcopy tiled fills.Michel Dänzer1-3/+4
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16908 .
2008-07-31EXA: Simplify exaFillRegionTiled() control flow.Michel Dänzer1-13/+11
Also only call REGION_TRANSLATE() when necessary.
2008-07-30EXA: Optimize GXcopy tiled fills.Michel Dänzer1-7/+53
2008-07-30EXA: Replace open coded CopyArea logic with GC op call.Michel Dänzer1-12/+6
2008-06-18Set driverPriv immediately on CreatePixmap.Alan Hourihane1-8/+6
If it's NULL anyway, we bail, if not, it lets ModifyPixmapHeader know about the private.
2008-06-06EXA: Fix exaGetPixmapFirstPixel() crash if the driver has a CreatePixmap hook.Michel Dänzer1-1/+3
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16243
2008-05-24EXA: Only record damage generated by rendering operations.Michel Dänzer5-4/+31
Recording damage from other operations (e.g. creating a client damage record) may confuse the migration code resulting in corruption. Option "EXAOptimizeMigration" appears safe now, so enable it by default. Also remove it from the manpage, as it should only be necessary on request in the course of bug report diagnostics anymore.
2008-05-24EXA: Don't migrate twice in exaImageGlyphBlt.Michel Dänzer1-12/+2
exaPrepareAccess already handles migration.
2008-05-24EXA: Don't suggest exaCopyDirty be inlined.Michel Dänzer1-1/+1
Leave the decision to the compiler toolchain.
2008-05-24EXA: Specify region used for source pixmap migration in exaCopyNtoN.Michel Dänzer1-21/+31
Avoids excessive migration overhead in some pathological cases. See http://bugs.freedesktop.org/show_bug.cgi?id=15845 .
2008-05-01EXA: Fall back in CompositeRects if the driver can't accelerate Composite.Michel Dänzer1-0/+3
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=15780 .
2008-04-28EXA: Try to accelerate non-antialiased text via the glyph cache as well.Michel Dänzer1-0/+15
Treat 1 bit glyphs and masks as PICT_a8 in the glyph cache. We're not able to accelerate them otherwise.
2008-04-28EXA: Accumulate glyphs whenever possible, for full benefits of the glyph cache.Michel Dänzer1-0/+96
2008-04-28EXA: Glyph cache upload tweaks.Michel Dänzer1-1/+8
Track damage after using UploadToScreen directly. Don't waste any effort on empty glyphs.
2008-04-28EXA: Use UploadToScreen() for uploads to glyph cacheOwen Taylor1-11/+66
When possible, use UploadToScreen() rather than CompositePicture() to upload glyphs onto the glyph cache pixmap. This avoids allocating offscreen memory for each glyph making management of offscreen areas much more efficient.
2008-04-28EXA: Clean up debug messagesOwen Taylor2-4/+1
2008-04-28EXA: Fix overlapping glyphs in glyph cacheOwen Taylor2-10/+18
Allocate each cache at a different vertical position in the per-format pixmap. Fix width/height confusion when choosing the cache for a glyph.
2008-04-28EXA: Add exaCompositeRects()Owen Taylor3-54/+267
Add a function to composite multiple independent rectangles from the same source to the same destination in a single operation: this is useful for building a glyph mask.
2008-04-28EXA: Use a single large glyph cache pixmapOwen Taylor4-0/+796
Add back exaGlyphs(); the new version copies the glyph images onto a single large glyph pixmap and draws from their to the destination surface. This reduces the management of small offscreen areas and will allow us to avoid texture unit setup between each glyph.
2008-04-21EXA: Set pixmap->accel_blocked on the screen pixmap, too.Tilman Sauerbeck2-0/+33
2008-04-21EXA: Update sys_pitch/fb_pitch in exaModifyPixmapHeader.Tilman Sauerbeck1-15/+28
exaModifyPixmapHeader now also only evaluates arguments that have a meaningful value.