Commit Graph

362 Commits

Author SHA1 Message Date
Michel Dänzer
b26c136ee9 EXA: Stop tracking damage for pixmaps subject to ModifyPixmapHeader.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-02-26 10:35:44 +01:00
Michel Dänzer
170cf1270d EXA: Handle separate alpha maps properly in Composite fallback.
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-24 09:22:09 +01:00
Maarten Maathuis
b2ceea3635 Revert "exa: the extent of the valid region is probably much larger than that of the pending damage."
This reverts commit 97c1cbc702.

- 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-17 19:40:59 +01:00
Maarten Maathuis
3175646b10 exa: exaPixmapDirty should use official damage functions.
- Otherwise other users will not be notified of damage.
2009-02-17 19:25:35 +01:00
Maarten Maathuis
97c1cbc702 exa: the extent of the valid region is probably much larger than that of the pending damage.
- Since the default has been changed from nothing to everything.
2009-02-17 19:25:35 +01:00
Maarten Maathuis
caa5310e16 exa: reintroduce src rect optimisation, with a slightly higher threshold.
- I got some feedback on gtkperf line test regression.
- The increased threshold should ensure the destination optimisation is dominant.
2009-02-16 20:41:14 +01:00
Maarten Maathuis
46eeaf82e2 exa: fix performance regression from 736b6fbd2c
- 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-16 17:41:51 +01:00
Michel Dänzer
736b6fbd2c EXA: Try to prevent the valid regions from growing too many rects.
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-15 17:44:51 +01:00
Maarten Maathuis
1cb5afdf1e dix: always NULL pGC->tile.pixmap in Create{Scratch}GC. 2009-02-08 18:59:17 +01:00
Maarten Maathuis
6fd8fe9cb9 exa: fix exaValidateGC.
- 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-08 18:43:15 +01:00
Maarten Maathuis
30daba6903 exa: All fallbacks should have a GC, remove some code.
- 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-08 02:08:13 +01:00
Maarten Maathuis
ffa72793e2 exa: Calling exaMarkSync after UTS is the drivers responsibility. 2009-02-07 21:58:17 +01:00
Maarten Maathuis
68665d78e7 exa: don't use fbCopyNtoN 2009-02-06 18:42:39 +01:00
Maarten Maathuis
2e76958d30 fb: move some code to mi 2009-02-06 18:42:39 +01:00
Maarten Maathuis
f06bde3d4b exa: create ExaCheckGetImage 2009-02-06 18:42:39 +01:00
Maarten Maathuis
258fc4b106 exa: wrap the remainder of exa_unaccel.c 2009-02-06 18:42:38 +01:00
Maarten Maathuis
6fabf24949 exa: use proper wrapping in exa.c 2009-02-06 18:42:38 +01:00
Maarten Maathuis
015c99a4ad exa: properly wrap GC functions 2009-02-06 18:42:38 +01:00
Maarten Maathuis
5e6a06fe69 exa: add GC private 2009-02-06 18:42:38 +01:00
Maarten Maathuis
5cc67ae94c exa: kill of exaImageGlyphBlt
- It serves no obvious purpose, yet it directly accesses many fb
symbols.
2009-02-06 18:42:38 +01:00
Maarten Maathuis
6483834200 exa: Remove one of the many calls directly into the fb layer. 2009-02-06 18:42:38 +01:00
Michel Dänzer
f112d6bf59 EXA: Try harder to keep current pixmap copy up to date in exaMigrateToward*.
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-06 18:30:43 +01:00
Michel Dänzer
3948b52389 EXA: Guard empty pending region warning by DEBUG_MIGRATE.
It isn't very useful yet while the damage layer calls us for empty operations,
mostly confuses users.
2009-02-06 11:37:53 +01:00
Michel Dänzer
639f289dcd EXA: Declare glyph cache picture as component-alpha when necessary.
Without this, rendering component-alpha glyphs may break without a mask.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=19233 .
2009-01-13 13:05:32 +01:00
Maarten Maathuis
3534a5e5d9 exa: Allow drivers to set non-NULL devPrivate.ptr for !offscreen pixmaps. 2008-12-26 16:38:27 +01:00
Maarten Maathuis
027b440d4f exa: preparing as source and finishing access as mask is a bad idea 2008-12-26 15:51:55 +01:00
Maarten Maathuis
1567b7243f exa: A more correct fix. 2008-12-21 00:08:56 +01:00
Maarten Maathuis
2db7b66863 exa: a few cleanups
- Some warnings silenced.
- Some whitespace cleanup.
2008-12-19 23:12:37 +01:00
Peter Hutterer
cb95642dc8 Remove #define NEED_EVENTS and NEED_REPLIES
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-12 11:43:32 +10:00
Paulo Cesar Pereira de Andrade
49f77fff14 Rework symbol visibility for easier maintenance
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-12-03 05:43:34 -02:00
Paulo Cesar Pereira de Andrade
d6cbd4511e Export symbols defined in the sdk.
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-29 23:56:06 -02:00
Paulo Cesar Pereira de Andrade
31285d063e Make visible symbols required by xorg modules.
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-28 01:55:11 -02:00
Dave Airlie
08cd361234 exa: avoid doing prepare/done without intervening copies in exaFillRegionTiled
This does a precursor check to make sure the copies are required before
entering the prepare/done code.
2008-11-17 19:15:20 +10:00
Dave Airlie
8f8a9c19ad EXA: avoid copy operations if no boxes in use
Simple fix for now, I'm sure damage shouldn't be calling us with nbox = 0.
2008-11-17 10:24:39 +10:00
Michel Dänzer
21c116219c Fix typos which caused exaCompositeRects() to use an incorrect damage region.
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-11-08 01:25:14 +01:00
Keith Packard
8767fc8d47 Wrap AddTraps in exa and damage.
This fine (and unused) function wasn't ever wrapped which made it not work
under exa.

(cherry picked from commit 06e7e1d048)
2008-10-23 09:56:45 -04:00
Adam Jackson
3891dd8924 exa: Add exaDrawableIsOffscreen() to the driver API. 2008-10-21 13:11:16 -04:00
Michel Dänzer
2188582e5e EXA: Avoid excessive syncing in PutImage 2008-10-20 09:55:24 -04:00
Maarten Maathuis
87a016ae00 exa: restore {x,y}{Src,Dst} to their original values when !done 2008-10-15 00:03:16 +02:00
Dave Airlie
717c7492a0 exa: don't call composite routines with no buffer.
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-07 02:38:44 +10:00
Maarten Maathuis
a29af64658 exa: remove "direct" case for exa{Trapezoids,Triangles}
- 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-03 23:59:06 +02:00
Maarten Maathuis
416870d8c9 exa: remove some excessive whitespace 2008-10-03 23:59:06 +02:00
Dave Airlie
5bf3f0fd4e exa: make sure pixmap devPrivate.ptr is NULL at create time 2008-09-26 08:59:30 +10:00
Julien Cristau
b4762c0245 exa: disable shared pixmaps
They got re-enabled in ee7c684f21
("Reimplement ShmPutImage.")
2008-09-16 17:13:42 +02:00
Dave Airlie
0466b8811c exa: drop cw.h inclusion
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-09-01 09:57:25 +10:00
Maarten Maathuis
f4e9a1a98f damage: choose less ambiguous function names 2008-08-31 17:46:26 +02:00
Maarten Maathuis
1861250cd7 {damage,exa}: sanitise damage
- 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-29 22:15:23 +02:00
Tomas Carnecky
ebea78cdba Prepare for array-index based devPrivates.
TODO: static indices can be made just an int; some indices
can be combined.
2008-08-28 18:05:40 -04:00
Adam Jackson
ee7c684f21 Reimplement ShmPutImage.
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-28 10:12:28 -04:00
Maarten Maathuis
dd1e54d6ee exa: fix thinko from 988725f32e
- the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)
2008-08-26 20:02:55 +02:00
Maarten Maathuis
7c14fdbacf exa: some minor cleanup
- Fix compile warning
- Order exa.h by source file that exports the function.
- Move the function i created earlier to private headers.
2008-08-26 17:56:40 +02:00
Maarten Maathuis
de79edbd9f exa: report damage manually for exa{Trapezoids,Triangles} when needed
- Plus a micro cleanup of unused variables.
2008-08-26 17:56:40 +02:00
Maarten Maathuis
988725f32e exa: move destination damage for internal calls to a special function
- This should improve clarity for someone who isn't familiar with the code.
2008-08-26 17:56:40 +02:00
Maarten Maathuis
ce19347680 exa_glyphs: remove useless offset 2008-08-26 17:56:39 +02:00
Maarten Maathuis
bc4cef1d0a exa: remove useless cache{X,Y}off from UploadToScreen() arguments. 2008-08-19 23:24:33 +02:00
Michel Dänzer
f227fbf74f EXA: Inline Prepare/FinishAccessWindow into only caller, ChangeWindowAttributes.
Also check the requested mask in addition to the GC state before doing work.
2008-08-19 11:36:12 +02:00
Michel Dänzer
825b3fe11d EXA: Don't use exaGlyphs if the driver doesn't provide a PrepareComposite hook.
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-19 11:22:40 +02:00
Maarten Maathuis
421b7e8f12 exa: fix assert logic thinko from 361a9eb953
- I guess failing PrepareAccess is rare, since this a 3 year old bug.
2008-08-17 19:57:02 +02:00
Michel Dänzer
4212599c92 EXA: Make sure damage tracking code is inactive if the driver manages pixmaps.
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-08 12:17:58 +02:00
Daniel Stone
e882ee7056 EXA: Remove unnecessary #includes
There wasn't actually any font code here, so no problem.
2008-08-05 01:17:32 +03:00
Michel Dänzer
148175fb8b EXA: Do still return FALSE if the driver PrepareCopy hook failed...
Thanks to Stuart Bennett for pointing out the problem on IRC.
2008-07-31 16:54:33 +02:00
Michel Dänzer
64ebeeb526 EXA: Fix exponential growth logic for GXcopy tiled fills.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16908 .
2008-07-31 10:58:52 +02:00
Michel Dänzer
8405c25d9d EXA: Simplify exaFillRegionTiled() control flow.
Also only call REGION_TRANSLATE() when necessary.
2008-07-31 10:55:44 +02:00
Michel Dänzer
a3afa6f2fb EXA: Optimize GXcopy tiled fills. 2008-07-30 18:30:37 +02:00
Michel Dänzer
37087bc106 EXA: Replace open coded CopyArea logic with GC op call. 2008-07-30 18:27:33 +02:00
Alan Hourihane
528b4e36ad Set driverPriv immediately on CreatePixmap.
If it's NULL anyway, we bail, if not, it lets
ModifyPixmapHeader know about the private.
2008-06-18 22:34:02 +01:00
Michel Dänzer
6b96281100 EXA: Fix exaGetPixmapFirstPixel() crash if the driver has a CreatePixmap hook.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16243
2008-06-06 11:01:03 +02:00
Michel Dänzer
29586101dc EXA: Only record damage generated by rendering operations.
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-24 20:01:41 +02:00
Michel Dänzer
f6d61d3d86 EXA: Don't migrate twice in exaImageGlyphBlt.
exaPrepareAccess already handles migration.
2008-05-24 20:01:36 +02:00
Michel Dänzer
d733043982 EXA: Don't suggest exaCopyDirty be inlined.
Leave the decision to the compiler toolchain.
2008-05-24 20:01:31 +02:00
Michel Dänzer
3baf3b42e0 EXA: Specify region used for source pixmap migration in exaCopyNtoN.
Avoids excessive migration overhead in some pathological cases. See
http://bugs.freedesktop.org/show_bug.cgi?id=15845 .
2008-05-24 20:01:21 +02:00
Michel Dänzer
3b8d53452c EXA: Fall back in CompositeRects if the driver can't accelerate Composite.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=15780 .
2008-05-01 15:10:52 +02:00
Michel Dänzer
8349732a67 EXA: Try to accelerate non-antialiased text via the glyph cache as well.
Treat 1 bit glyphs and masks as PICT_a8 in the glyph cache. We're not able to
accelerate them otherwise.
2008-04-28 21:09:35 +02:00
Michel Dänzer
a65d530040 EXA: Accumulate glyphs whenever possible, for full benefits of the glyph cache. 2008-04-28 21:03:12 +02:00
Michel Dänzer
e7eaac59c4 EXA: Glyph cache upload tweaks.
Track damage after using UploadToScreen directly.

Don't waste any effort on empty glyphs.
2008-04-28 21:00:55 +02:00
Owen Taylor
cc08c06665 EXA: Use UploadToScreen() for uploads to glyph cache
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-28 21:00:55 +02:00
Owen Taylor
13fd225630 EXA: Clean up debug messages 2008-04-28 21:00:55 +02:00
Owen Taylor
fcb5949928 EXA: Fix overlapping glyphs in glyph cache
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-28 21:00:54 +02:00
Owen Taylor
40eb14c948 EXA: Add exaCompositeRects()
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-28 21:00:54 +02:00
Owen Taylor
54184110f6 EXA: Use a single large glyph cache pixmap
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-28 21:00:54 +02:00
Tilman Sauerbeck
3f081b4de5 EXA: Set pixmap->accel_blocked on the screen pixmap, too. 2008-04-21 23:07:39 +02:00
Tilman Sauerbeck
26c1801a27 EXA: Update sys_pitch/fb_pitch in exaModifyPixmapHeader.
exaModifyPixmapHeader now also only evaluates arguments that have a
meaningful value.
2008-04-21 23:07:39 +02:00
Michel Dänzer
6c95fae1e9 EXA: Offscreen memory eviction improvements.
* Make sure available areas are considered to have no eviction cost. This seems
  to help for https://bugs.freedesktop.org/show_bug.cgi?id=15513 but I'm afraid
  that may just be coincidence.
* Only calculate eviction cost of each area once for each eviction pass.
  Safeguard against potential (though unlikely) division by zero.
* Cosmetic enhancements: Name eviction cost related variables 'cost' instead of
  'score' to emphasize that smaller values are better, update Doxygen file
  comment to the way eviction works now.
2008-04-21 10:45:11 +02:00
Tilman Sauerbeck
886af8f384 EXA: Avoid some fallbacks in exaCopyNtoN.
In some cases we can still do the copying in hardware even if the
dimensions of the pixmaps are out of range. This is true when the boxes
that we're to copy are all in the card's range.
2008-04-17 14:28:31 +02:00
Tilman Sauerbeck
f133d85778 EXA: Update pixmaps' accel_blocked field in ModifyPixmapHeader. 2008-04-14 12:48:13 +02:00
Tilman Sauerbeck
bb8868540f EXA: Teach exaCompositeFallbackPictDesc() about x8r8g8b8. 2008-04-14 12:48:13 +02:00
Owen W. Taylor
6b1a27023e EXA: Fix TS origin computation when implementing RenderComposite with tiling. 2008-04-07 11:01:09 +02:00
Fredrik Höglund
8074676d2d EXA: Optimize the eviction scanning loop in exaOffscreenAlloc.
Reduce the cost of the inner loop, by keeping a set of pointers to the
first and the last areas in the series, subtracting the cost of the first
area from the score, and adding the cost of the last area while walking
the list.  This commit also moves the scanning loop from exaOffscreenAlloc
into a separate function.

Idea by Michel Dänzer.
2008-03-31 21:24:59 +02:00
Fredrik Höglund
93d876891d EXA: Improve the algorithm used for tracking offscreen pixmap use.
Replace the current score keeping algorithm with a rolling counter that's
incremented in ExaOffscreenMarkUsed, with the previous value being stored
in the area.  exaOffscreenAlloc uses the difference between the counter
value and the value in the area when deciding which area to evict.
It now also takes the size of the areas into account, and favors evicting
smaller areas.

The credit for these ideas goes to Michel Dänzer.
2008-03-31 21:15:50 +02:00
Maarten Maathuis
f6d51797a5 EXA: Let the driver decide what repeat/extend types are supported. 2008-02-27 23:44:39 +01:00
Eric Anholt
5cb9e15562 EXA: Fix Render acceleration in copy and tiling cases.
Code shuffling in a634c9b034 broke this by
leaving pSrcPixmap = NULL.
2008-02-20 10:36:06 -08:00
Bernardo Innocenti
e6ea3147bf exa: make the prototype for exaGetPixmapFirstPixel() public
This fixes a warning in amd_drv which is using it.

Signed-off-by: Bernardo Innocenti <bernie@codewiz.org>
2008-01-14 13:09:13 -05:00
Alan Hourihane
57468a696e Fix Line drawing with CapNotLast set in PolySegment. 2008-01-04 12:37:55 +00:00
Eamon Walsh
2d17f47cc7 Merge branch 'master' into XACE-SELINUX
Conflicts:

	hw/xnest/Pixmap.c
	include/dix.h
2007-11-19 18:10:46 -05:00
Ben Skeggs
c89b543198 exa: set driverPriv to NULL before it might get used later with garbage 2007-11-17 18:20:49 +10:00
Eamon Walsh
1603130236 Merge branch 'master' into XACE-SELINUX
Conflicts:

	Xext/xace.c
	Xext/xace.h
2007-11-14 13:35:50 -05:00
Michel Dänzer
9bee1c6912 EXA: Disable problematic optimization of dest pixmap migration by default.
Also add some code comments about these optimizations.
2007-11-07 19:01:24 +01:00
Eamon Walsh
a52c9b2a59 Merge branch 'master' into XACE-SELINUX
Conflicts:

	dix/dispatch.c
	dix/property.c
	hw/xfree86/common/xf86VidMode.c
	include/xkbsrv.h
	render/glyph.c
	xkb/xkbActions.c
2007-11-05 19:08:36 -05:00
Daniel Stone
1179ddea94 EXA: Remove usage of alloca
Replace with heap allocations.
2007-11-05 14:36:36 +00:00
Daniel Stone
3b77689266 EXA: Remove usage of alloca
Replace with heap allocations.
2007-11-05 14:34:43 +00:00