Commit Graph

72 Commits

Author SHA1 Message Date
Luc Verhaegen
59f9fb4b8c XAA PixmapOps: Sync before accessing unwrapped callbacks.
When using any XAAPixmapOps, we call into unknown but freshly
unwrapped callbacks (like fb ones). Unlike the XAA*Fallback calls,
we did so without syncing first, exposing us to all kinds of
synchronisation issues.

I believe that the rendering errors appeared now because *PaintWindow
vanished (e4d11e58), and we just use miPaintWindow instead. This
takes a less direct route to the hw and ends up at
PolyFillRectPixmap, which very often left drawing artifacts.

We now sync accordingly, and no longer get the rendering artifacts i
was methodically reproducing on radeonhd, radeon, unichrome...

Also, in order to allow driver authors to remove extensive syncing
or flushing to hide this issue, create XAA_VERSION_ defines, put
them in xaa.h and bump the patchlevel.

(novell bug #435791)
2008-11-07 19:13:58 +01:00
Julien Cristau
eadf90aa65 xaa: Fix compiler warning (implicit declaration)
xaaInit.c: In function 'XAAInit':
xaaInit.c:201: warning: implicit declaration of function 'miInitializeCompositeWrapper'
xaaInit.c:201: warning: nested extern declaration of 'miInitializeCompositeWrapper'
2008-10-26 11:44:57 +01:00
Adam Jackson
0b7b89fbac xalloc+bzero -> xcalloc 2008-10-06 14:19:30 -04:00
Adam Jackson
613ce09550 Fix strict-aliasing silliness in XAA. 2008-09-02 15:43:15 -04: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
Mathieu Bérard
faaf004615 Remove xaaTEGlyphBlt.S
Should have been removed in 593144dddd but
ajax was asleep at the wheel.
2008-08-18 17:23:26 -04:00
Mathieu Bérard
593144dddd Remove some unused assembly code and assyntax.h 2008-08-18 16:46:36 -04:00
Ivaylo Boyadzhiev
25882af6d3 Fix a longstanding XAA CopyPlane bug.
TmpBitPlane is a plane mask, not a plane index.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
2008-08-03 18:56:51 -07:00
Paul Bender
4c4e06af79 Bug #15665: Fix building without Composite. 2008-06-24 10:44:47 -04:00
Adam Jackson
f17ba5d584 Bug #13104: Remove broken XAA a1 glyph fast path. 2008-05-08 16:04:24 -04:00
Adam Jackson
9c2e0871cf Bug #13104: XAA: Adapt to glyph storage changes.
Glyph bits are now stored in a proper pixmap, not just hanging off the
end of a GlyphRec.
2008-05-07 13:21:26 -04:00
Adam Jackson
718652eaf9 Bug #13104: Don't let XAA glyph pixmaps anywhere near video memory.
Since glyphs are stored in pixmaps now, they can make their way into VRAM,
which invalidates a bunch of fast-path assumptions in the XAA code.  Thus
you end up doing color-expands or WriteBitmap from la-la land and your
aliased glyphs go all funny.

Since XAA isn't ever growing the ability to do sane glyph accel, just force
glyph pixmaps into host memory by catching them at CreatePixmap time.
2008-05-06 17:52:37 -04:00
Julien Cristau
4217ba0cf0 xaa: use xf86ReturnOptValBool instead of xf86IsOptionSet
The latter doesn't return the option's value, just whether it's present
in the configuration.
2008-03-22 17:53:45 +01:00
Adam Jackson
e91ff09568 Friends don't let friends call xf86AddModuleInfo.
That code only existed to leak memory.  It can go now, thanks.
2008-02-14 08:21:44 +11: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
733d42065f XFree86: Remove usage of alloca
Replace with heap allocations.
2007-11-05 14:34:42 +00:00
Aaron Plattner
f2e310132f Add CreatePixmap allocation hints.
These hints allow an acceleration architecture to optimize allocation of certain
types of pixmaps, such as pixmaps that will serve as backing pixmaps for
redirected windows.
2007-11-04 16:11:28 -08:00
Eamon Walsh
97c150b61b Merge branch 'master' into XACE-SELINUX
Conflicts:

	afb/afbpntwin.c
	afb/afbscrinit.c
	afb/afbwindow.c
	cfb/cfb.h
	cfb/cfballpriv.c
	cfb/cfbscrinit.c
	cfb/cfbwindow.c
	configure.ac
	fb/wfbrename.h
	hw/xfree86/xf4bpp/ppcIO.c
	hw/xfree86/xf4bpp/ppcPntWin.c
	hw/xfree86/xf4bpp/ppcWindow.c
	hw/xfree86/xf8_32bpp/cfbscrinit.c
	mfb/mfb.h
	mfb/mfbpntwin.c
	mfb/mfbscrinit.c
	mfb/mfbwindow.c
	mi/miexpose.c

Note: conflicts caused by devPrivates rework vs. paintwindow changes.
2007-09-19 07:25:55 -04:00
Eric Anholt
e4d11e58ce Remove the PaintWindow optimization.
This was an attempt to avoid scratch gc creation and validation for paintwin
because that was expensive.  This is not the case in current servers, and the
danger of failure to implement it correctly (as seen in all previous
implementations) is high enough to justify removing it.  No performance
difference detected with x11perf -create -move -resize -circulate on Xvfb.
Leave the screen hooks for PaintWindow* in for now to avoid ABI change.
2007-09-13 00:08:53 +00:00
Hong Liu
9adea80703 bgPixel (unsigned long) is 64-bit on x86_64, so -1 != 0xffffffff
This patch should fix bug 8080.
2007-09-04 08:48:26 +01:00
Eamon Walsh
4017d31902 devPrivates rework: since API is already broken, switch everything
over to new system.

Need to update documentation and address some remaining vestiges of
old system such as CursorRec structure, fb "offman" structure, and
FontRec privates.
2007-08-28 09:28:25 -04:00
Adam Jackson
ae7f71a8b3 Implement core protocol backing store exclusively in terms of Composite.
Composite's automatic redirection is a more general mechanism than the
ad-hoc BS machinery, so it's much prettier to implement the one in terms
of the other.  Composite now wraps ChangeWindowAttributes and activates
automatic redirection for windows with backing store requested.  The old
backing store infrastructure is completely gutted: ABI-visible structures
retain the function pointers, but they never get called, and all the
open-coded conditionals throughout the DIX layer to implement BS are gone.

Note that this is still not a strictly complete implementation of backing
store, since Composite will throw the bits away on unmap and therefore
WhenMapped and Always hints are equivalent.
2007-08-25 15:08:20 -04:00
Adam Jackson
4d76075dbb Death to RCS tags. 2007-06-29 14:06:52 -04:00
Adam Jackson
6ff239cb4e Make the use of ICEIL slightly less ugly. 2007-05-11 11:43:19 -04:00
Adam Jackson
82a8b99a6c Move the XAA private indices to be static.
Technically this is an ABI break, if you aren't smart enough to be using the
getter functions.  Cope.
2007-03-28 15:17:02 -04:00
Eric Anholt
6ed08949af Move libcw setup to the only renderer requiring it (XAA).
Additionally, protect libcw setup behind checks for Render, to avoid
segfaulting if Render isn't available (xnest).

The previous setup was an ABI-preserving dance, which is better nuked now.
Now, anything that needs libcw must explicitly initialize it, and
miDisableCompositeWrapper (previously only called by EXA and presumably binary
drivers) is gone.
2007-03-27 17:31:28 -07:00
Keith Packard
2be1ac15ae Remove smashing of CFLAGS from server build.
CFLAGS is a user variable, extracted from the environment at configure time
and settable by the user at build time. We must not override this variable.
2006-09-18 12:11:18 -07:00
Adam Jackson
0aaac95b0d Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
Daniel Stone
84683f19b4 get rid of XFree86LOADER, XFree86Server, XFree86Module, and IN_MODULE
Get rid of almost all uses of these definitions.  They're still defined for
delinquent out-of-tree drivers, and also for the Mesa build.  As well as
for miinitext.c.  But largely gone.
2006-07-18 18:17:38 -04:00
Eric Anholt
7106a77df3 Fix bugs in support for new repeatTypes in XAA and EXA.
EXA now won't pass pictures with new repeatTypes to drivers.  We can add a flag
for them to support it at a later time.
2006-07-03 16:41:44 +02:00
Keith Packard
124a81eb38 Merge branch 'origin' 2006-07-01 11:12:50 -07:00
Paul Mackerras
d3d6c5f4d0 Bug #7381: Coordinates get wrapped in accelerated line drawing on pixmap
XAAPolylinesWideSolid was adding the drawable origin onto each element in the
pPts array.  Since the values got stored back into the pPts array, they got
truncated to 16 bits, causing the overflow I saw.  This patch avoids storing
the coords back into the pPts array (and actually reduces the size of the
code too :).  Now the 32-bit sum of coords + origin doesn't get truncated to
16 bits, and the problem is solved.
2006-07-01 11:10:18 -07:00
Matthias Hopf
ea5e0eabd1 Bug 4320: Fastpath corner case improvement for Composite. 2006-06-21 17:08:55 +02:00
Adam Jackson
52fc7c8dc7 Ensure all *ModuleData symbols are marked _X_EXPORT. Start removing
XFree86LOADER ifdefs, non-loadable hasn't been supported for a while
    now. Remove completely gratuitious REMOVE_LOADER_CHECK_MODULE_INFO
    ifdefs surrounding a call to a function added in XFree86 4.1 (!).
    Miscellaneous static markings.
2006-06-05 03:00:24 +00:00
Matthias Hopf
9db5d2dfc3 Bug #4320: Improved XAA Composite fastpath. 2006-05-11 10:18:08 +00:00
Adam Jackson
291e89d4f2 Remove NEED_LINEHELPER BC cruft for pre-R6 DDXes. 2006-04-30 19:16:14 +00:00
Alan Coopersmith
d6337c8324 <sys/limits.h> -> <limits.h> so we can compile on non-BSD OS'es 2006-02-11 17:42:31 +00:00
Eric Anholt
c3d1403672 Remove libcwrapper usage from xorg server modules. The libcwrapper is only
of (marginal) use in the drivers, and that usage remains.
2006-02-10 22:00:30 +00:00
Eric Anholt
2af7e94eab Adjust the rules for auto-generating some source files, so that they work
on both GNU make and FreeBSD's make.
2005-12-22 13:54:08 +00:00
Kevin E Martin
7c00afd0ec Define XFree86Server only where it is required. 2005-12-02 06:02:45 +00:00
Kevin E Martin
da5d66f2ff Fix usage of XFree86LOADER/XFree86Module/IN_MODULE and update loadable
module builds to reflect this change.
2005-11-29 16:39:33 +00:00
Kristian Høgsberg
b349b20d78 Dist NOTES.
Dist helper shell scripts.
Dist XAA.HOWTO and a few more unused C files.
Dist xorgconf.cpp.
Fix DIST_EXTRA typo.
Clean yacc and lex generated files only during make maintainer-clean as we
    don't expect users to have those tools installed.
2005-10-13 18:08:24 +00:00
Daniel Stone
c3d6799cee Bug #594: CAN-2005-2495: Fix exploitable integer overflow in pixmap
creation, where we could create a far smaller pixmap than we thought,
    allowing changes to arbitrary chunks of memory. (Søren Sandmann
    Pedersen)
2005-09-13 01:33:19 +00:00
Daniel Stone
825a95a1fa Remove use of dix-config and xorg-config.h from public headers. 2005-08-24 11:18:35 +00:00
Søren Sandmann Pedersen
13e16ee93a Thu Aug 11 11:43:32 2005 Søren Sandmann <sandmann@redhat.com>
Make sure we don't crash on glyphs with NULL bits. Bug 659.
2005-08-11 15:46:42 +00:00
Søren Sandmann Pedersen
b25e6f82a1 fb/Makefile.am: add fbpseudocolor.h to sdk_HEADERS
hw/xfree86/xaa/Makefile.am: add xaaWrapper.h to sdk_HEADERS
2005-07-26 18:21:22 +00:00
Adam Jackson
4f9e76ed6a Dear libtool: Loadable modules do not need version numbers. kthnxbye. 2005-07-13 22:09:52 +00:00
Daniel Stone
0bb669638f Change <X11/misc.h> and <X11/os.h> to "misc.h" and "os.h". 2005-07-03 08:53:54 +00:00
Daniel Stone
e03198972c Add Xtrans definitions (FONT_t, TRANS_CLIENT) to clean up warnings.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
    source files in the xserver/xorg tree, predicated on defines of
    HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
    <X11/fonts/foo.h>.
2005-07-03 07:02:09 +00:00
Daniel Stone
826a6f029f Continuing Makefile cleanup; add DIX_CFLAGS and XORG_CFLAGS everywhere. 2005-07-02 18:59:44 +00:00