summaryrefslogtreecommitdiff
path: root/exa
AgeCommit message (Collapse)AuthorFilesLines
2009-02-27EXA: Handle separate alpha maps properly in Composite fallback, take two.Michel Dänzer3-1/+51
Preserve the EXA ABI by introducing a new driver flag EXA_SUPPORTS_PREPARE_AUX. If the driver doesn't set this flag, we have to assume any Prepare/FinishAccess driver hooks can't handle the EXA_PREPARE_AUX* indices, so we move out such pixmaps at PrepareAccess time. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 . Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-27Revert "EXA: Handle separate alpha maps properly in Composite fallback."Michel Dänzer6-45/+109
This reverts commit 170cf1270dff38d3cce7f5ba5b940d1c0d70eff5. Conflicts: exa/exa_render.c
2009-02-26EXA: Allow using exaCompositeRects also when we can't use a mask in exaGlyphs.Michel Dänzer3-198/+182
This should give the full benefits of the glyph cache even when we can't use a mask. This also means we no longer need to scan the glyphs to see if they overlap, we can just use a mask or not as the client asks. Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-26EXA: Stop tracking damage for pixmaps subject to ModifyPixmapHeader.Michel Dänzer1-0/+9
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-24EXA: Handle separate alpha maps properly in Composite fallback.Michel Dänzer6-108/+45
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 . As this can't work without new EXA_PREPARE_AUX* indices, this requires a major version bump, so we can also drop the UploadToScratch driver hook and ExaOffscreenSwap*(). So this also fixes http://bugs.freedesktop.org/show_bug.cgi?id=20213 . Moreover, introduce EXA_DRIVER_KNOWN_MAJOR to break compilation of drivers which may not be able to handle EXA_PREPARE_AUX*, giving instructions how to make them build again in the #error message. Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-17Revert "exa: the extent of the valid region is probably much larger than ↵Maarten Maathuis1-3/+13
that of the pending damage." This reverts commit 97c1cbc70216366e92b9371de608ce94e60aa874. - Sorry for the thinko, pending damage is often not fragmentated. - Should the dst region become fragmentated, you actually want to copy more to unfragmentate it.
2009-02-17exa: exaPixmapDirty should use official damage functions.Maarten Maathuis1-8/+2
- Otherwise other users will not be notified of damage.
2009-02-17exa: the extent of the valid region is probably much larger than that of the ↵Maarten Maathuis1-13/+3
pending damage. - Since the default has been changed from nothing to everything.
2009-02-16exa: reintroduce src rect optimisation, with a slightly higher threshold.Maarten Maathuis1-0/+7
- I got some feedback on gtkperf line test regression. - The increased threshold should ensure the destination optimisation is dominant.
2009-02-16exa: fix performance regression from 736b6fbd2c941b6276066cd1503523edebe7bf3dMaarten Maathuis2-10/+12
- The src optimisation is more aggressive and possibly harmful in light of the new initial state of pixmaps. - There is now actually a performance improvement by almost always keeping the number of rects low.
2009-02-15EXA: Try to prevent the valid regions from growing too many rects.Michel Dänzer1-1/+28
This helps contain region management overhead in some pathological cases, see e.g. http://bugs.freedesktop.org/show_bug.cgi?id=16647 . Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-08dix: always NULL pGC->tile.pixmap in Create{Scratch}GC.Maarten Maathuis1-1/+0
2009-02-08exa: fix exaValidateGC.Maarten Maathuis1-29/+55
- use DEST in the createPixmap wrapper, because stipple already takes MASK (in case someone uses swappers). - Anticipate some of the less common situations when fbValidateDrawable will access tile related pixmaps.
2009-02-08exa: All fallbacks should have a GC, remove some code.Maarten Maathuis3-28/+1
- I did some testing with full fallbacks forced by the driver. - I ran rendercheck, expedite and the (full) x11perf test suite. - Thanks to ajax for pointing out this should be unneeded.
2009-02-07exa: Calling exaMarkSync after UTS is the drivers responsibility.Maarten Maathuis1-2/+2
2009-02-06exa: don't use fbCopyNtoNMaarten Maathuis4-19/+149
2009-02-06fb: move some code to miMaarten Maathuis1-2/+2
2009-02-06exa: create ExaCheckGetImageMaarten Maathuis3-6/+35
2009-02-06exa: wrap the remainder of exa_unaccel.cMaarten Maathuis1-3/+27
2009-02-06exa: use proper wrapping in exa.cMaarten Maathuis1-71/+70
2009-02-06exa: properly wrap GC functionsMaarten Maathuis3-116/+248
2009-02-06exa: add GC privateMaarten Maathuis2-1/+22
2009-02-06exa: kill of exaImageGlyphBltMaarten Maathuis1-134/+1
- It serves no obvious purpose, yet it directly accesses many fb symbols.
2009-02-06exa: Remove one of the many calls directly into the fb layer.Maarten Maathuis1-26/+6
2009-02-06EXA: Try harder to keep current pixmap copy up to date in exaMigrateToward*.Michel Dänzer1-1/+11
This is probably required, but apparently not sufficient, for making migration heuristics other than "always" work correctly again. Not that I really care about them...
2009-02-06EXA: Guard empty pending region warning by DEBUG_MIGRATE.Michel Dänzer1-0/+2
It isn't very useful yet while the damage layer calls us for empty operations, mostly confuses users.
2009-01-13EXA: Declare glyph cache picture as component-alpha when necessary.Michel Dänzer1-3/+6
Without this, rendering component-alpha glyphs may break without a mask. Fixes http://bugs.freedesktop.org/show_bug.cgi?id=19233 .
2008-12-26exa: Allow drivers to set non-NULL devPrivate.ptr for !offscreen pixmaps.Maarten Maathuis1-1/+5
2008-12-26exa: preparing as source and finishing access as mask is a bad ideaMaarten Maathuis1-2/+2
2008-12-21exa: A more correct fix.Maarten Maathuis1-2/+1
2008-12-19exa: a few cleanupsMaarten Maathuis2-17/+17
- Some warnings silenced. - Some whitespace cleanup.
2008-12-12Remove #define NEED_EVENTS and NEED_REPLIESPeter Hutterer1-1/+0
A grep on xorg/* revealed there's no consumer of this define. Quote Alan Coopersmith: "The consumer was in past versions of the headers now located in proto/x11proto - for instance, in X11R6.0's xc/include/Xproto.h, all the event definitions were only available if NEED_EVENTS were defined, and all the reply definitions required NEED_REPLIES. Looks like Xproto.h dropped them by X11R6.3, which didn't have the #ifdef's anymore, so these are truly ancient now." Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2008-12-03Rework symbol visibility for easier maintenancePaulo Cesar Pereira de Andrade5-34/+34
Save in a few special cases, _X_EXPORT should not be used in C source files. Instead, it should be used in headers, and the proper C source include that header. Some special cases are symbols that need to be shared between modules, but not expected to be used by external drivers, and symbols that are accessible via LoaderSymbol/dlopen. This patch also adds conditionally some new sdk header files, depending on extensions enabled. These files were added to match pattern for other extensions/modules, that is, have the headers "deciding" symbol visibility in the sdk. These headers are: o Xext/panoramiXsrv.h, Xext/panoramiX.h o fbpict.h (unconditionally) o vidmodeproc.h o mioverlay.h (unconditionally, used only by xaa) o xfixes.h (unconditionally, symbols required by dri2) LoaderSymbol and similar functions now don't have different prototypes, in loaderProcs.h and xf86Module.h, so that both headers can be included, without the need of defining IN_LOADER. xf86NewInputDevice() device prototype readded to xf86Xinput.h, but not exported (and with a comment about it).
2008-11-29Export symbols defined in the sdk.Paulo Cesar Pereira de Andrade2-4/+4
This is the biggest "visibility" patch. Instead of doing a "export" symbol on demand, export everything in the sdk, so that if some module fails due to an unresolved symbol, it is because it is using a symbol not in the sdk. Most exported symbols shouldn't really be made visible, neither advertised in the sdk, as they are only used by a single shared object. Symbols in the sdk (or referenced in sdk macros), but not defined anywhere include: XkbBuildCoreState() XkbInitialMap XkbXIUnsupported XkbCheckActionVMods() XkbSendCompatNotify() XkbDDXFakePointerButton() XkbDDXApplyConfig() _XkbStrCaseCmp() _XkbErrMessages[] _XkbErrCode _XkbErrLocation _XkbErrData XkbAccessXDetailText() XkbNKNDetailMaskText() XkbLookupGroupAndLevel() XkbInitAtoms() XkbGetOrderedDrawables() XkbFreeOrderedDrawables() XkbConvertXkbComponents() XkbWriteXKBSemantics() XkbWriteXKBLayout() XkbWriteXKBKeymap() XkbWriteXKBFile() XkbWriteCFile() XkbWriteXKMFile() XkbWriteToServer() XkbMergeFile() XkmFindTOCEntry() XkmReadFileSection() XkmReadFileSectionName() InitExtInput() xf86CheckButton() xf86SwitchCoreDevice() RamDacSetGamma() RamDacRestoreDACValues() xf86Bpp xf86ConfigPix24 xf86MouseCflags[] xf86SupportedMouseTypes[] xf86NumMouseTypes xf86ChangeBusIndex() xf86EntityEnter() xf86EntityLeave() xf86WrapperInit() xf86RingBell() xf86findOptionBoolean() xf86debugListOptions() LoadSubModuleLocal() LoaderSymbolLocal() getInt10Rec() xf86CurrentScreen xf86ReallocatePciResources() xf86NewSerialNumber() xf86RandRSetInitialMode() fbCompositeSolidMask_nx1xn fbCompositeSolidMask_nx8888x0565C fbCompositeSolidMask_nx8888x8888C fbCompositeSolidMask_nx8x0565 fbCompositeSolidMask_nx8x0888 fbCompositeSolidMask_nx8x8888 fbCompositeSrc_0565x0565 fbCompositeSrc_8888x0565 fbCompositeSrc_8888x0888 fbCompositeSrc_8888x8888 fbCompositeSrcAdd_1000x1000 fbCompositeSrcAdd_8000x8000 fbCompositeSrcAdd_8888x8888 fbGeneration fbIn fbOver fbOver24 fbOverlayGeneration fbRasterizeEdges fbRestoreAreas fbSaveAreas composeFunctions VBEBuildVbeModeList() VBECalcVbeModeIndex() TIramdac3030CalculateMNPForClock() shadowBufPtr shadowFindBuf() miRRGetScreenInfo() RRSetScreenConfig() RRModePruneUnused() PixmanImageFromPicture() extern int miPointerGetMotionEvents() miClipPicture() miRasterizeTriangle() fbPush1toN() fbInitializeBackingStore() ddxBeforeReset() SetupSprite() InitSprite() DGADeliverEvent() SPECIAL CASES o defined as _X_INTERNAL xf86NewInputDevice() o defined as static fbGCPrivateKey fbOverlayScreenPrivateKey fbScreenPrivateKey fbWinPrivateKey o defined in libXfont.so, but declared in xorg/dixfont.h GetGlyphs() QueryGlyphExtents() QueryTextExtents() ParseGlyphCachingMode() InitGlyphCaching() SetGlyphCachingMode()
2008-11-28Make visible symbols required by xorg modules.Paulo Cesar Pereira de Andrade4-13/+13
This patch exports all symbols required by the compilable (in a x86 linux computer) xorg/driver/* modules. Still missing symbols worth mentioning are: sunleo miFindMaxBand no longer available intel (uxa/uxa-accel.c) fbShmPutImage no longer available (and should have been static) mga MGAGetClientPointer (should come from matrox's libhal) This is not a definitive "visibility" patch, as all it does is to export missing symbols, but the modules that current don't compile, may require more symbols once fixed, and third party drivers should also require more symbols exported. A "definitive" patch should export symbols defined in the sdk.
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.