pixmaps's contents are undefined, so we won't need to upload the
undefined contents in MoveIn. Use the ExaCheck* for async ops as well,
so that dirty is always tracked. While the performance impact for my ls
-lR test was not significant (though the avoiding-upload path was being
hit), it's likely to be important for the upcoming Get/PutImage
acceleration from ajax.
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.
xf86DefModeSet.c with FreeBSD make, where RM was undefined. While here,
make the build of xf86DefModeSet.c depend on its sources, so it'll
rebuild properly, and make it a normal CLEANFILE rather than a
DISTCLEANFILE, since the intention seems to be to build it at the
user's build time.
causing our search loop for evictable blocks to possibly skip a good
candiate, and another was the allocator would occasionally use
area->offset as if it was the base of the pixmap, while for a pixmap
that is not in available state, it is not. This caused some funny
miscalculation leading to overlapping pixmaps and accesses beyond the
end of the framebuffer. To make things cleared, I renamed save_offset
to base_offset, made sure it's the one used everywhere in the
allocator, and only align "offset" for the client at the end of
exaOffscreenAlloc().
don't expect drivers to be able to accelerate without exa assistance).
Instead, drop back to plain old miGlyphs for a 62.5% +/- 1.5% reduction
in runtime of my ls -lR test (n=5) with component alpha. While a
reasonable approach would seem to be making a better test to see
whether the entire path would be accelerated and force migration
appropriately, my attempt at this made the situation much worse.
accelerate repeat NPOT thus triggering software fallback (this is the
case with gnome desktop for example). This adds a simple optimisation
to exa that removes "repeat" when it's obviously useless, that is, the
single picture instance covers the entire rectangle beeing used
instead of reporting "unrecognized option" when the argument is
missing. Also give correct error instead of "unrecognized option" for
options only available to root.
so resulted in a solid black glyph if the font rendering actually
resulted in a fallback (subpixel AA, for example) and the temporary got
migrated after 10 or so glyphs.
compatible with glibc, so the backtrace support check fails. Work
around this by wrapping the code in a configure check for execinfo.h,
and emulate detection for the monolith. (Yuri Vasilevski)
- Merge various fb/ bits of COMPOSITE support from xserver, which weren't
necessary before due to cw hiding the issues. Fixes offset calculations
for a number of operations, and may pull some fixes that cairo has
wanted for XAA as well.
- Add a new call, miDisableCompositeWrapper(), which a DDX can call to keep
cw from getting initialized from the damage code. While it would be
cleaner to have each DDX initialize it if it needs it, we don't have
control over all of them (e.g. nvidia).
- Use the miDisableCompositeWrapper() to keep cw from getting set up for
screens using EXA, because EXA is already aware of composite. Avoiding
cw improved performance 0-35% on operations tested by ajax in x11perf.
particularly thanks to Prepare/FinishAccess) to avoid DFS/memcpy on
pixmap move-out if it's unnecessary. This was disabled in KAA because
cache misuse on ATI made me guess that this code was wrong.
- Unwrap Glyphs on closescreen.
hw/xfree86/utils/ioport/Makefile.am
Add ioport and pcitweak utils from monolith hw/xfree86/etc dir.
Generate xf86DefModeSet.c from vesamodes & extramodes
Add apSolaris.shar to EXTRA_DIST
ChangeLog
include xorg-config.h for modular build
Adjust XF86CONFIG defines for modular build
Fixes for modular build:
- include modular server config headers
- change default XCONFIGFILE to xorg.conf
- define XKB_RULES_DIR if not defined by Imake
than the max, it was bumped, and then if you were above the threshhold
you got moved in. Instead, do the above-threshhold check separate from
score starting out less than max. While this will likely make thrashing
cases worse, I hope it will fix some issues with long term performance
(think of an xcompmgr with a backbuffer it's doing only accelerated
operations to. If some new pixmap comes in and bumps it out, even once,
it will never get a chance to re-migrate because its score will be
maxed). Change migration-out to be the same way for symmetry, though it
shouldn't ever affect anything.
- Fix a lot of debugging output, both in terms of printing quality, and
completeness. The fallback debugging covers a lot more now, pointing
out new areas for improvement. Debugging toggles are now centralized in
exaPriv.h.
example of this is the root weave, which paints slightly slower on SiS
now in my testing. However, according to keithp some apps use this
feature for a sort of cheap backing store, which this could help with
significantly. While I haven't done much performance testing with it,
it will at least rule out one possible source of terrible performance.
chown/chmod later. Also disable by default on platforms that don't need
setuid root X servers (Darwin & SPARC's, according to
InstallXserverSetUID settings in the old Imake config files).
hook so we can upload a subset of a pixmap, and convert the current
drivers to respect that. Use this support to directly UploadToScreen in
exaGlyphs, providing a 47.4% +/-2.4% decrease in wall time for ls -lR
programs/Xserver in an antialiased gnome-terminal on an M6 (n=3, caches
hot). I would have bumped major version, only I can't tell what the
EXA_VERSION_* is supposed to be doing as opposed to the module version.
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)
module for FreeBSD by setting some missing defines (XFree86Module,
IN_MODULE) in the dri directory. Note that those missing defines should
be somewhere generic, since there are other consumers of them, but I
haven't figured out where.
Define NO_SYS_HEADERS, as the monolithic build does. Helps FreeBSD.
Don't include validate.c in the library, since it seems to be a userland
test program.
around CPU access to the framebuffer. This allows the hardware to set
up swappers to deal with endianness, or to tell EXA to move the pixmap
out to framebuffer if insufficient swappers are available (note: must
not fail on front buffer!).
Submitted by: benh
LEDs match text console mode state. Move push of streams module earlier
so it's loaded before we start using kbd ioctls provided by the streams
module.
overridden at make install time.
Remove driverdir and inputdir from pkg-config file. The directory layout of
moduledir is fixed and well known by drivers.
loops, doesn't deal with failure, doesn't present the interface to
drivers that I expected) and instead replace it with a simple fallback
to software when coordinate limits could be violated. Act similarly in
other acceleration cases as well.
The solution I want to see (and intend to do soon) is to (when necessary)
create temporary pictures/pixmaps pointing towards the real ones' bits,
with the offsets adjusted, then render from/to those using adjusted
coordinates.
Now, if either source or dest were in framebuffer, try to get both
there, but prefer system memory for both otherwise. Required making
exaasync.c go through the try-acceleration path. This significantly
improves window resizing under composite, because previously the
pattern of creating a new pixmap and copying default contents from the
screen caused a fallback every time due to the new destination pixmap
being in system memory.
simplify/clarify it for driver writers who probably don't want to know
what pPixmap->devPrivate.ptr or pPixmap->devKind mean. Converts the sis
driver to use them, and bumps the EXA module minor version.
programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
programs/Xserver/hw/xfree86/os-support/linux/Imakefile Add basic ACPI Linux
support so that events can be passed to the driver. (Alan Hourihane)
detection/configuration, DDX options. Make building of Xorg DDX fully
optional. Clarify and correct some help texts. Change all comments to
use dnl instead of #. Quote all tests correctly, and guard
pure-variable tests with 'x' (e.g. test $DMX = yes -> test "x$DMX" =
xyes). Since the DDXes seem to have pretty divergent extension support
these days, get rid of EXTENSION_LIBS, DMX_EXTENSIONS and
XPRINT_EXTENSIONS, and go back to building extension lists by hand in
the DDX-specific sections. Use portable POSIX constructs everywhere
(e.g. test foo && test bar, instead of test foo -a bar).
Clean up old cruft.
Set _XSERVER64 on 64-bit architectures, and use x86_64 for host_cpu instead
of amd64 (Jürg Billeter).
Link this module with libXext.la.
Mon Aug 15 14:56:57 2005 Søren Sandmann <sandmann@redhat.com>
Remove the xkb* files.
Add xkbVT.o and friends as the last things on the link line so they will
override the symbols in libxkb.a. Add a comment on how this situation
might not be considered ideal.
Remove the xkb* files.
Add xkbVT.o and friends as the last things on the link line so they will
override the symbols in libxkb.a. Add a comment on how this situation
might not be considered ideal.
Bugzilla #1068 <https://bugs.freedesktop.org/show_bug.cgi?id=1068> Port
Solaris keyboard code to work with kbd driver.
Also incorporated "audio bell" feature from Xsun keyboard DDX to play bell
tones via /dev/audio (specified via Option "BellDevice" "/dev/audio" in
keyboard device options).
.cvsignore files
Use XORG_CFLAGS. Ensure that all exa files are in SOURCES
remove _XOPEN_SOURCE as it's always in xtrans.pc these days and gcc whines
libdamage.la needs libcw.la when COMPOSITE is defined, but that
libdamage.la must be after libcomposite.la, so add libcw.la to
DAMAGE_LIB instead of EXTENSION_LIBS. Regularize library link order
across all X servers
Olli Helenius)
- Fix some distcheck problems for non-solaris systems
- Change server version number from the Xorg rev to an independent one
- _POSIX_SOURCE and _XOPEN_SOURCE defined to the right values
Fix the dri and drm build. Fix server-side DMX extension build. Make
xf4bpp use the correct version of mfbline.c for mfbseg.c. Add #ifndef
_HEADERNAME_H_/#define _HEADERNAME_H_/.../#endif to the headers.
- Add build system for xserver/xorg/hw/xfree86/dri
- Add glcore.h to symlink.sh
- Symlink.sh: add some more DRI files, symlink glcore.h from
extras/Mesa/include/GL/internal to proto/GL
- proto/GL/Makefile.am: install glcore.h
- xf86-video-ark: s/module-dir/xorg-module-dir/
- Use x86emu on Solaris instead of vm86
- Better per-OS control over which xf86Kbd*.c and *Pci.c files to build
- Set various #defines to be defined or not on Solaris as needed
<https://bugs.freedesktop.org/attachment.cgi?id=3058>
08-Jul-2005 nv driver updates from Mark Vojkovich:
Change some console restore code for NV11. Hopefully, we can more reliably
restore the console for desktop systems using DVI. This may correct a
recent regression on NV11.
Also, new PCI IDs.
Add new nVidia PCI ids to match nv_driver.c changes.
Add prototype for XkbSetExtension()
Add #include <ctype.h> for isspace() & isdigit()
Add #include <grp.h> (for initgroups()) and remove extra *
Add prototype for xorgGetVersion()
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>.
Changed the semantics of the Convolution filter a bit. It now doesn't try
to normalize the filter values but leaves this to the client. This
gives more reasonable behaviour in the limit where the filter
parameters sum up to 0.
recognize them. I'm not sure if this file is supposed to be maintained
still, but I'd like to close FreeBSD ports/32121 which has been around
for far too long.
- support for mouse-like devices that report absolute coordinates
- support for mouse-like devices that need to know screen size so they can
scale absolute coordinates to screen size
- fix 3-button emulation
DRIINFO version to match. Fix various pointer printfs in libdri to be
64-bit aware. Silence a warning about redefining noXFree86DRIExtension.
(Jesse Barnes)
number of the DRIInfoRec, disambiguating it from the XF86DRI protocol
version number. Modify DRIQueryVersion to return the libdri version
number, which all DDXes were requesting implicitly. Fix the DDXes to
check for the DRIINFO version they were compiled against.
standard mode solely determined by the mode ID or it may be a detailed
mode with almost arbitrary mode parameters. The mode parameters are
passed to the BIOS in a memory area pointed to by es:di. If bit 11 in
the video mode is set this memory area is evaluated. When we don't have
such an area (passed to VBESetVBEMode() this function should unset this
bit for sanity reasons. (Bugzilla #3329)
number of preallocated slots. We should really make this dynamic - but
I don't think this ever caused a problem so it's more or less academic.
A. Avoid that *SyncStart starts before *BlankStart. If *BlankStart >
*SyncStart it is made = *SyncStart and its width is made maximal but such
that the blank does not exceed *Total. Since the Sync width has the
same restrictions as the Blank width monitors should still be able to
clamp after the sync pulse. B. Over time mode validation has become
inconsistent when people started to add additional features to the mode
validation. One such feature is that the mode->Crtc* values have been
(ab)used to allow the driver ValidMode() function to pass driver
normalized timing values back to the validation function. The
introduction of these features made the code less readable and created
numerous possibly unintended side effects in the validation semantics.
I've attempted to consolidate these changes making the code more
consistent and eliminating a number of side effects. This should not
cause problems for the majority of drivers, still it should receive
testing - especially with ATi Mach64 and Radeon code. (Bugzilla #3325).