xf86 drivers need to create RandR object in the PreInit stage,
before the ScreenRec is allocated. Changing the RandR DIX code
to permit this required the addition of functions that later associate the
objects with the related screen.
An additional change is that modes are now global, and no longer associated
with a specific screen. This change actually makes mode management cleaner
as there is no more per-screen list of modes to deal with.
This changes the RandR 1.2 ABI/API for drivers.
Only try to build Linux support on Linux. We should probably disable all
OS-dependent DDXes if we don't have a workable OS (and only build
Xephyr/Xfake), but that's future work.
If we're mapping something in the "legacy range" (0-1Mb), we shouldn't
expand the requested range to the entire 0-1Mb range. Typically this
is for mapping the VGA frame buffer, and some platforms support mmap of
the frame buffer but not the entire 0-1Mb range.
For example, HP sx1000 and sx2000 ia64 platforms can have memory from
0-0x9ffff, VGA frame buffer from 0xa0000-0xbffff, and memory from
0xc0000-0xfffff. On these platforms, we can't map the entire 0-1Mb
range with the same attribute because the memory only supports WB,
while the frame buffer supports only UC. But an mmap of just the
frame buffer should work fine.
Mach64 driver bails out on ia64 because it cannot map device
memory. It turns out that some bogus and unneeded code attempts
to find the root bridge of the device and fails to do so proberly
as there this host-to-pci bridge is not existant. This code has
been around for years although it completely unclear what it had
been intended for. Fixing this by eliminating the bogus code.
Add a server flag (AllowEmptyInput), which will inhibit adding the
standard keyboard and mouse drivers, if there are no input devices in the
config file.
Add a generic 'ring the bell' function (console bell on Linux and BSD,
/dev/audio on Solaris), and add DDX functions for this. Make this the
core keyboard's bell.
Port Xvfb and Xnest to this.
Port XFree86 to this, with OS-specific hooks for Linux, BSD, and Solaris
taken from foo_io.c in the old layer.
Move the bell into an OS function, and use that if it's declared; else,
fall back to using the driver's function.
Remove the Linux keyboard bell function; just move it into the OS layer.
Use named initialisers when converting the old structures, and eliminate
unused functions.
Don't allow users to change the core pointer.
Fix xf86SendDragEvents to check the device button state, not the core
pointer's.
Remove unused xf86CheckButton.
Add KdOsAddInputDrivers, which adds all relevant input drivers.
Could possibly be refactored to KdAddInputDrivers, which called through
OsFuncs to a new function, if it existed.
Update the DEVICE_ABS_CALIB stuff to include the new elements.
New DEVICE_ABS_AREA support.
dev->touchscreen becomes dev->absolute, with _CALIB and _AREA stuff in it.
Update xfree86 to compile with this, kdrive needs an update too.
Move the keymap copying to event processing time (in
ProcessInputEvents), instead of being at event enqueuing time.
Break SetCore{Pointer,Keyboard} out into separate functions.
Change mieqEnqueue to take a device pointer, that asks for the
_original_ device associated with this event.
This allows overlay Xv adaptors to work slightly better with compositing
managers.
Bump the video driver ABI minor so drivers only need to check for this at build
time.
This allows overlay Xv adaptors to work slightly better with compositing
managers.
Bump the video driver ABI minor so drivers only need to check for this at build
time.
Update mipointer API to take a device argument to (almost) all functions,
and split miPointerAbsoluteCursor into a couple of separate functions.
Remove miPointerAbsoluteCursor call from mieq, as we now deal with it in
GetPointerEvents.
Make miPointerSetPosition (successor of miPointerAbsoluteCursor) take
pointers to x and y, so it can return the clipped values.
Modify callers of miPointer*() functions to generally use the new
functions.
This should fix things with multi-head setups.
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.
CVT reduced blanking modes are typically only seen on digital connections to
LCDs, but there are some monitors that report them as supported over the
VGA connector too, which is perfectly legitimate, electrically speaking.
Well, kinda. Strictly we prefer M_T_BUILTIN strongest since those are modes
where the driver has said it absolutely can't do anything else (VBE). Then
we look for user-defined modes, ie, modelines from the config file. Then
we consider modes reported by the monitor via EDID. Finally if nothing has
matched yet we consider the default mode pool.
Within each of the above-mentioned classes, modes with the M_T_PREFERRED bit
take priority over other modes in the same class.
This logic ensures that the timings sent to the monitor exactly match the
timings it reported as supported, which occasionally don't match the numbers
you might get for that mode from CVT or GTF.
This allows the server to guess an appropriate initial virtual size and
resolution. The heuristic is to select the largest driver-reported mode
that matches the monitor's physical aspect ratio. We revalidate this
estimate after mode validation, since we may have filtered away all
modes that would fill that size.
Also, the EDID preferred timing is now marked as M_T_PREFERRED as well.
Always add a mouse driver instance configured to send core events, unless
a core pointer already exists using either the mouse or void drivers. This
handles the laptop case where the config file only specifies, say,
synaptics, which causes the touchpad to work but not the pointing stick.
We don't double-instantiate the mouse driver to avoid the mouse moving twice
as fast, and we skip this logic when the user asked for a void core pointer
since that probably means they want to run with no pointer at all.
Base EDID only lets you specify the maximum dotclock in tens of MHz, which
is too fuzzy for some monitors. 1600x1200@60 is just over 160MHz, but if
the monitor really can't handle any mode at 170MHz, then 160 is more
correct. Fix up the EDID block before the driver can see it in this case,
so we don't spuriously reject modes.
The X gamma is used to set the output ramp of the card. Setting a 2.2 output
gamma going into a 2.2 monitor gives an effective gamma of 4.84, which is
very much not what you want.
broken for any 32 bit X server running on a 64 bit kernel) so #ifdef
them out for now. the PCI rework tree will make all this crap go away,
so I think we can tolerate the extra #ifdef for the next release.
instead of `/bin/sh /etc/init.d/xprint get_xpserverlist`
- allows the initscript to set its own different shell under #!
- allows disabling of XPSERVERLIST by making the script non-executable
* Allow files to be installed by using dist_*_DATA instead of EXTRA_DIST.
Also, use dist_*_SCRIPTS to install scripts.
* Fix minor typos in man pages.
Don't allocate events on every GKE/GKVE/GPE call, just have the DDX manage
it instead. Introduce GetMaximumEventsNum(), which is the maximum number
of events these functions will ever produce.
Dummy out all of the PCI bus and device access control functions. We
need a better way to do this, and that will probably be in
libpciaccess and / or the kernel.
Refactor xf86GetPciInfoForEntity to use pci_device_find_by_slot.
Refector xf86CheckPciSlot to use xf86GetPciEntity.
Eliminate disablePciBios and the one place that calls it.
Add the 'ephyr' mouse and keyboard drivers to the driver list so we can
re-add devices.
Set the names properly in Ephyr{Keyboard,Mouse}Init, not in InitInput.
Do a linear n -> n initialisation on the map up until KD_MAX_BUTTON in
KdNewPointer, moving it out of both KdParsePointer, and KdPointerProc.
Also remove dead pointer acceleration code.
Builds fb/* twice, defining FB_ACCESS_WRAPPER for libwfb.la. Define a macro,
FBPREFIX(X) which expands to fbX for libfb.la and wfbX for libwfb.la. Use the
macro on [w]fbModuleData so the new module loads.
Conflicts:
hw/xfree86/common/xf86Init.c
hw/xfree86/int10/pci.c
hw/xfree86/scanpci/xf86PciData.h
hw/xfree86/scanpci/xf86PciStdIds.h
hw/xfree86/scanpci/xf86PciStr.h
hw/xfree86/scanpci/xf86ScanPci.h
hw/xfree86/utils/pcitweak/pcitweak.c
hw/xfree86/utils/scanpci/scanpci.c
Re-removed most of the conflicting files.
okay? Since xf86MapLegacyIO is called from only one place, cut the
parameter list down to the one parameter that actually conveys some
information: the one that gives a PCI device. Change from using a
PCITAG to a pci_device.
scanning. Log messages simplified to make the code shorter and less
convoluted. ScanPciDisplayPCICardInfo is now void since it was only
called from one place with a constant parameter.
Walk the directories with readdir, and don't stat everything we can
find. Thanks to davej for the public humiliation reminding me to go back
and re-fix this one.
Walk the directories with readdir, and don't stat everything we can
find. Thanks to davej for the public humiliation reminding me to go back
and re-fix this one.
Remove most of the rest of the old keyboard driver.
Move to the new Get{Keyboard,Pointer}Events API, which is mostly
complete at this stage: just missing the proximity events.
Initialise our axes properly in the DIX, and make sure we don't
unnecessarily clip maxval when it's not set.
Fix keymap copying in Xephyr (to some degree: it's still broken),
and set nAxes and nButtons properly.
Convert KDrive to GPE/GKE interface.
Add first-class drivers and enumerate every device separately through
Xi, instead of lamely attempting to aggregate them.
Add XKB support to the Linux keyboard driver.
Add 'thumb button' support to the tslib driver.
Rejig InitInput, so each DDX has to add a list of drivers it supports.
Support NewInputDeviceRequest, et al.
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.
xf86ExtendedInitInt10 to xf86int10GetBiosLocationType and
xf86int10GetBiosSegment.
These changes were tested on MGA hardware on x86-64 with various
combinations of InitPrimary and BiosLocation.
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.
configure only defines HAVE_BACKTRACE, not HAVE_EXECINFO_H.
This could cause problems on platforms where the size of a pointer is greater
than that of an integer, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=363218 .
These clients are by definition non-local and thus not direct rendering
capable, but they still need the QueryVersion and QueryDirectRenderingCapable
requests to find out cleanly.
lists, a really bad hash table, the last vestiges of the other backends,
and some miscellaneous cleanups. Good for dropping 300k from the size of
the built server on x86.
(such as libcw.la) that we link into the server, causing it to be rebuild
automatically when they're updated. Some system libraries are included, but
don't appear to cause any harm. You would think this would be automatic...
add_matching_devices_to_configure_list, and check_for_matching_devices
from xf86Helper.c to xf86Init.c. These functions are only called from
a single place in xf86Init.c, so it makes sense for them to live
there. They were originally in xf86Helper.c because they evolved out
another function that was already in that file.
tag bits when I originally coded it. I mistakenly thought that the
original code masked off the PCI function bits, so I just always
passed 0 as the function. That was a mistake.
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.
Add #include <sys/file.h> on Solaris for FNONBLOCK/FASYNC definitions
hw/kdriver/linux/Makefile.am Move agp.c & agp.h to KDRIVE_HW_SOURCES since
they're not needed for Xephyr-only builds
Add -lrt to XEPHYR_LIBS if needed to get nanosleep().
down into an OutReverse and an Add. Turn off the fallback to software
glyphs when component alpha, now that we expect all (new) drivers to be
able to support it. Also, make Xephyr fall back in the CA Over case to
exercise this code. This speeds up my rgb24text and ls -lR in
gnome-terminal by a factor of 5.
os-support/linux/lnx_KbdMap.c) we overrun the usefully-named global
array 'map', scribbling on other random static variables elsewhere.
This is fixed by changing the size of at2lnx. (David Woodhouse). Bug
#5169
lack of a better name. This one behaves somewhat between Greedy and
Always. It moves in if we can accelerate, unless the destination is
clean and shouldn't be kept in framebuffer according to the score, in
which case we migrate out (and force-migrate anything where migration
is free). This should help fix lack of acceleration for drivers without
UTS since removing exaAsyncPixmapGCOps, and has removed one performance
trap with Radeon I'd noticed. It is the new default.
video driver ABI needs to be bumped to 1.0. The rest of the ABI minor
versions were bumped to include the LoaderGetABIVersion function.
Add a DrawblePtr argument to the XV hooks. This allows drivers to determine
that the target window is redirected and draw to the appropriate place.
devPrivate.ptr when pointing at offscreen memory, outside of
exaPrepare/FinishAccess(). This was used with fakexa to find (by NULL
dereference) many instances of un-Prepared CPU access to the
framebuffer:
- GC tiles used in several ops when fillStyle == FillTiled were never
Prepared.
- Migration could lead to un-Prepared access to mask data in render's
Trapezoids and Triangles
- PutImage's UploadToScreen failure fallback failed to Prepare.
acceleration, and set the migration scheme to Always on init (since
this is all for testing, and Always should make migration happen more
frequently than Greedy).
there but #ifdefed out. Insead of BTS, BT was executed. This patch
enables the BTS function and hooks it up the the correct opcode. (ATI
Technologies Inc.)
initialized for the current server generation. Fixes a problem where it
would use stale private index and blow up in colorful ways if no driver
called DRIScreenInit() on the second generation (which happens due to a
bug in radeon that i'll fix separately). Note: clearing the index in
DRIReset() wouldn't work as DRIReset() is called before the
CloseScreen() chain
desired location always (unless they don't fit in FB, in which case
they all get moved out for software rendering). The default remains as
before, but can be controlled by the MigrationHeuristic xorg.conf
option (which is intentionally not documented, as it may be
short-lived). This is part of the exa-damagetrack work, which appears
stable in testing with fakexa, unlike the work as a whole.
same width/height for front-buffer drawing. The fakexa code then uses
this extra space for offscreen pixmaps. Note that this tones down the
absurdity of fakexa's offscreen pixmap alignment requirements (odd
alignment is too weird, so stick with "24", which is still strange but
exists out there). It also fixes a couple of bugs in the fakexa
implementation revealed by using offscreen pixmaps.
This patch is from DragonFly developer Joerg Sonnenberger and the pkgsrc
collection.
I tested using /dev/sysmouse with moused using my serial /dev/cuaa0.
a first pass of doxygen documentation of EXA. This removes the
corresponding pieces of exa-driver.txt, which were becoming stale.
Hopefully the documentation will stay much more up-to-date this way.
Many thanks to jbarnes for writing exa-driver.txt which was used a lot
in writing this documentation.
when extending the driver interface. The card and accel structures are
merged into the ExaDriverRec, which is to be allocated using
exaDriverAlloc(). The driver structure also grows exa_major and
exa_minor, which drivers fill in and have checked by EXA
(double-checking that the driver really did check that the EXA version
was correct). Removes exaInitCard(), which is replaced by the driver
filling in the rec by hand, and the exaGetVersion() and related
EXA_*VERSION which are replaced by always using the XFree86 loadable
module versioning.
implementation that calls fb to get its work done. The purpose is to
have a trusted EXA driver for use with testing changes to the core of
EXA. However, fakexa has not received much testing yet, lacks offscreen
pixmaps support, and doesn't reliably provide garbage when EXA doesn't
get its syncing right. All of these should be fixed soon.
function pointers to implement a level of flexability that was never
used. The code also had unused support for extracting a single image
type from a larger expansion ROM.
Fix the spelling of PCI_BIOS_OPEN_FIRMWARE.
Fix a couple errors in #ifdef debug code.
These changes have been tested on x86 and x86-64 Linux.
Class information is not, and never has been, stored there. Therefore,
this is just a bunch of elaborate code to read 0x00000000.
This has received testing on x86 and x86-64 Linux.
the current cursor when disabling FB access and would try to restore
that cursor when re-enabling. However, that cursor might have been
destroyed in between. This fixes it by updating the saved cursor
pointer when a cursor is set and vtSema is FALSE.
dependencies. It was nearly abstract enough already to be used by
multiple DDXes. This will be useful for EXA development through
providing a fake acceleration implementation within Xephyr, so that
testing can be done on new EXA code without worrying about buggy
drivers.
the wrappers to provide it. Wrapper gone, and getsecs doesn't exist on
linux so it now blows up. Fixes it by just calling gettimeofday() in
all cases instead.
the generator routine: the allocated modeline wasn't nulled and
mode->name's \0 wasn't copied over. PrintModeLine was rewritten and
HDisplay gets rounded up to character width instead of refused.
Attempt to build xeglmodule.c, not xglxmodule.c.
Add xf86Sbus.h to EXTRA_DIST, as _HEADERS doesn't appear to get the same
treatment as _SOURCES in terms of automatically DISTing.
we only take it when clipping a DRI drawable instead of on every tree
update. Note drawable lock acquisition per- screen instead of globally,
and drop it in BlockHandler if necessary.
structures. Greatly reduces the number of uninitialized-value accesses
during Xgl startup according to valgrind. Allocating and filling these
in by hand on the stack seems very shady to me.
miinitext in the XGL case. Prevents mismatched structure sizes on my
_XSERVER64 machine. At this point, with the uncommitted render/ diffs,
Xglx starts up but displays badly.
- add hw/xfree86/utils/cvt/, cvt.c, cvt.man.pre and Makefile.am.
- Adjust configure.ac and hw/xfree86/utils/Makefile.am for cvt.
- Add MonPtr->reducedblanking and Option "ReducedBlanking" to the Monitor
section.
- Check for reduced blanking in xf86CheckModeForMonitor and disallow modes
with less than 25% blanking otherwise.
- Fix some warnings in hw/xfree86/common/xf86Config.c.
building within the xorg server tree. Requires additional, uncommitted
dix changes to successfully build, and successful running is still yet
to happen.
mappings (including left-handed mouse etc.). Fixed incorrect usage of
non-reversed, but ZAxisMapped buttons for state detection. Nuked unused
part of reverseMap.
URL in log file for Xorg CVS. Also fixed wording of statement to not
refer to monolithic CVS since modular uses the same code, so it was
appearing in modular builds too.
screen size (display mode). Useful for faked widescreen modes, modes
which are scaled by the driver, etc. This really helps fixing RandR's
sometimes dumb DPI assumptions.
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.
Don't try to build dmx/input/usb-*.c if <linux/input.h> isn't found
Replace -rdynamic with $(LD_EXPORT_SYMBOLS_FLAG) for compatibility with
compilers other than gcc
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
addition of depth 12 & 30. It causes more than MAXFORMATS depths to be
added to the screen which causes an array in the Screen structure to
overflow and crash on server reset.
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.
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.
implementation. Includes cache flushing to prevent bad first reads of
the framebuffer, fixing blending of many formats, falling back on many
unsupported operations, and falling back early to prevent migration.
Passes all of rendercheck except some of the blend (!) tests.
in the kaa structure: markSync and waitMarker. The first, if set,
returns a hardware-dependent marker number which can then be waited for
with waitMarker. If markSync is absent (which is the case on all
drivers currently), waitMarker must wait for idle on any given marker
number. The intention is to allow for more parallelism when we get
downloading from framebuffer, or more fine-grained idling.
- Replace the KdMarkSync/KdCheckSync functions with kaaMarkSync and
kaaWaitSync. These will need to be refined when KAA starts being smart
about using them. Merge kpict.c into kasync.c since kasyn.c has all the
rest of these fallback funcs.
- Restructure all drivers to initialize a KaaInfo structure by hand rather
than statically in dubious order.
- Whack the i810 driver into shape in hopes that it'll work after this
change (it certainly wouldn't have before this). Doesn't support my
i845 though.
- Make a new KXV helper to avoid duplicated code to fill the region with
the necessary color key. Use it in i810 and mach64 (tested).
- 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).
change "foo.h" to <X11/foo.h> for core headers, e.g. X.h, Xpoll.h;
change "foo.h", "extensions/foo.h" and "X11/foo.h" to
<X11/extensions/foo.h> for extension headers, e.g. Xv.h;
change "foo.[ch]" to <X11/Xtrans/foo.[ch]> for Xtrans files.
(https://bugs.freedesktop.org/attachment.cgi?id=2434) Fix Solaris build
bustage caused by namespace collision between symbols defined in
<sys/kbd.h> and those in "xf86_OSlib.h". Patch by Alan Coopersmith
<alan.coopersmith@sun.com>.
Linux-only fixes: Fix case where a smaller write-combining region
blocks write-combining setting of the whole frame buffer. Fix bug in wc
setting code when regions are first splitted and setting of
write-combining then fails.
DriverFunc() also returns FALSE when the specific sub function isn't
supported. In the case of xf86RandRGetInfo() we simply rely on what has
been set before and return TRUE. In the case of xf86RandRSetConfig() we
only bail with FALSE if we have to do a rotation and the call fails. We
presently cannot do rotation on the fly without the help of a driver
function (Bugzilla #2745).
from within winDestroyWindowsWindow
DestroyWindow send a WM_WINDOWPOSCHANGED to another window causing a
restacking of all windows, even of the window which is just about to
destroyed and whose structures may not be intact anymore.
xc/programs/Xserver/hw/xnest/Imakefile
//bugs.freedesktop.org/show_bug.cgi?id=2653) attachment #2020
(https://bugs.freedesktop.org/attachment.cgi?id=2020): Cleanup Xnest
usage of the DPMS dummy stub functions from dpmsstubs.c instead of
using it's own copy of these functions.
(https://bugs.freedesktop.org/attachment.cgi?id=2019): Fix
|xf86SignalHandler()| which resets the signal handler before setting
the flag indicating a signal has been caught, theoretically allowing
the possibility of infinite recursion. Patch by Andrew Church
<xzilla@achurch.org>.
xc/programs/Xserver/hw/xnest/Window.c
//bugs.freedesktop.org/show_bug.cgi?id=2546) attachment #2005
(https://bugs.freedesktop.org/attachment.cgi?id=2005): Fix Xnest to
update the shape regions in the backend server whenever a client
changes them in Xnest (the fix is to add a new wrapper which calls
|xnestShapeWindow()| before calling |miSetShape()|). Patch by Mark
McLoughlin <mark@skynet.ie>
the async windowmanager thread. Fixes some restacking problems occuring
which were timing dependent Do not raise the window on WM_ACTIVATE
Removed unused code for WM_WINDOWPOSCHANGING ESC is debug key. Print
status but do not abort processing the message
winfont.c
winmultiwindowshape.c
winmultiwindowwindow.c
winpfbdd.c
winshaddd.c
winshadddnl.c
winshadgdi.c
Fix incorrect wrapping of functions. Ensure the pointers from pScreen point
to the called function even if wrapped functions changed it
Set the window properties to NULL to avoid referencing freed memory because
of timing problems after deleting a window
Do not wrap ChangeWindowAttributes. All functions are noops currently
When COMPOSITE is enabled, call CopyWindow even when the pixels "don't
move" on screen.
Don't reject modes that are not supported by the unused monitor.
xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c
//bugs.freedesktop.org/show_bug.cgi?id=825) attachment #956
(https://bugs.freedesktop.org/attachment.cgi?id=956): Fix build
problems on Linux/SPARC. Patch by Jeremy Huddleston
<eradicator@gentoo.org>. Approved in the 2005-01-31 Xorg
release-wranglers phone call.
permissions when no access to HW registers is required. For API changes
which mostly involve the modifications to make the RRFunc (introduced
with 6.8) more flexible please check Bugzilla #2407. NOTE: This patch
applies changes to OS specific files for other OSes which I cannot
test.
but includes debugging to ensure that the reg being submitted is the
one that follows in the packet. Convert most uses of OUT_RING to it,
and convert a couple of OUT_REG sets to DMA_PACKET0/OUT_RING_REG. Also,
add checking to see if more registers are submitted to a DMA_PACKET0
than should be, to avoid hangs during stupid mistakes (checking for
less isn't done).
virtually impossible to determine if the old code did what it was
supposed to do. Also changed paradigm: Trust the based address more
than the (guessed) size. (Bugzilla #2383)
reading a register/attempting DMA. Now it'll wait for a certain number
of seconds rather than a certain number of times through the loop
before deciding that it's timed out and resetting the hardware. Also,
add more timeout handling, and reset the draw state after resetting the
engine.
problems on may systems which don't support APM standby and might not
be required as according to the APM specs the chips should receive
enough power to retain its state.
- Print out power state change requests to log file in all verbosity
levels.
- Don't change server state if no driver PM function is registered.
(Bugzilla #2279)
relied on the generic VGA layer to restore text console fonts for us
when shutting down the server or VT switching back to the text console.
This has worked rather well but it has some downsides on Linux: a. Many
people use fbdev as console text mode. In this case it is not necessary
to save/restore console fonts as the console is running in graphics
mode anyway. b. Some architectures don't have a fbdev console but
require a full POST of even the primary card (ie. IA64). This posting
has to take place before we even have a chance to save anything.
Therefore the fonts we save are the once written to the chip by POST,
not what has been programmed by the user. c. Certain chipsets utilize
the BIOS to perform mode setting. This may interfer with the vga
save/restore font function in a strange way. It would therefore be
preferrable to let the OS - which has been used to set up the font in
the first place - take care of saving/restoring the data. I will attach
a patch which will do so for Linux. To make this fully functional a
small patch needs to be applied to the Linux kernel. To disable this
feature add: #define DoOSFontRestore NO to your host.def. (Bugzilla
#2277)
InitOutput.c
XWin.rc
winerror.c
wintrayicon.c
winvideo.c
winshaddd.c
Set PROJECT_NAME in Imakefile to create alternative window titles for
Cygwin/X and Xming
are always emitted. Fix the real problem, which was not enough regs
being initialized in ati_draw.c. Fix a typo that was resulting in alpha
coming out as 0 * src or 0 * broken instead of src * 1 or src * mask.
Assign the blending results to R0, as appears to be necessary. Unbreak
the dst-alpha-blend-with-no-dst-alpha code. Yow. And set the right DMA
count for the r200 traps code.
non-mask rendering. Reenable it. Also, R200TexFormats was used instead
of R100 in one place. Harmless so far, because the formats were in the
same order.
(https://bugs.freedesktop.org/attachment.cgi?id=1530): Fix the current
implementation to make it possible to slow down the mouse pointer or
use arbitrary fractions (without running into rounding error issues).
The change is using the same method of preserving rounding errors that
the exponential method is already using. Patch by Jan Brunner
<Jan_B@gmx.ch>.
needed when building this file
- bug fix: pointerMsg -> keyboardMsg in auto-configuration code.
- make the 'kbd' driver the default for autoconfiguration everywhere.
compiled in or not.
Removed stale make variable.
Updated xaaWrapper.c: Under certain circumstances the accel path was not
used when possible. Removed some debugging stuff and stale code that
had been commented out.
Check if maps are really installed before attempting to list them.
obj_base.h is not needed anymore. Using <objbase.h> instead.
Use Xwindows.h instead of windows.h
do not include win_ms.h
remove extra definition of sleep()
Set HOME to Documents and Settings/username if not set
Use Xming basedir instead of ProjectRoot for system.XWinrc
Fix callback functions to use wBOOL instead of BOOL
Fix compiler warnings. Added debug output.
Fix warning about undefined macro max
Avoid PIO access on IA64. Some IA64 machine check if legacy ports outside
the VGA range are accessed. The ATi driver however does this to probe
for ISA Mach8/32/64. Since no IA64 has ISA slots this restriction
should not be relevant to the user.
Avoid recursive calls of xf86scanpci(). This function normally detects that
it has been called before by checking if the PCI structure is filled
out. So far if this was not the case (because PCI probing has failed
for some reason) the function is traversed again. With the chipset
specific PCI bus probing this can lead to an endless recursive loop as
the post-probing code calls xf86scanpci() from within this function.
The OS specific PCI code for Linux worked only if bus 0 was populated as it
checked for the presence of /proc/bus/pci/00. Fixed to check for
/proc/bus/pci/<bus_to_look_for> instead.
Remove old obsolete include/extensions/damage.h.
Include srvrv_ctrl(xfree86) in macintosh US XKB symbol file so VT switching
works again on mac (#1872).
Remove out of place #define's of printf to xf86printf. This definition
should only be in xfree86/os-support/xf86_libc.h
update references to xf86site.def in comments (Bug #1827).
fix kbd driver for wskbd protocol and pure wscons console driver (Bug
#1825).
don't add '-4' to generated default file name (bug #1826).
typo in resource name (XFree86 bug #1300, X.org bug #1825)
Updating to EDID 1.3. (Bugzilla# 1490, Jay Cotton, Egbert Eich).
Removing unneeded code.
Fixed KGA handling for i810. KGA handling for chips derived from C&T chips
is slightly different. The changes make the code consistent with the
C&T (chips) and i740 drivers.
XScreenSaverSetAttributes() followed by XScreenSaverUnsetAttributes().
Caused by missing FreeResource() in XScreenSaverUnsetAttributes().
Removing unused DDC sections that caused misinterpretation of DDC data due
to a missing break statement in a switch.
Fixed typo: #if <-> #ifdef.
lists themselves. To use with the Sun compilers, add to host.def: #
define UseCCMakeDepend YES # define DependFlags -cc $(CC) -d -xM (Sun
bug id #4245688 - fix by Alan Coopersmith)
Add Solaris to the platforms on which mprotect is run to set execute
permissions when necessary. (Sun bug id #6175128 - fix by Alan
Coopersmith)
Internationalize digital output (Sun bug id #4119396 - fix by Steve
Swales), add -bgpixmap option to set XPM file as background (originally
from STSF project version of xclock by Alan Coopersmith)
xc/programs/xmodmap/handle.c,pf.c xmodmap was printing line numbers which
are one too low in error messages (Xorg bugzilla #1739, Sun bug id
4637857 - fix by Sam Lau)
Added support for IBM space saver keyboard (Stefan Dirsch). Added support
for Cherry CyMotion Master XPress (Marcus Schaefer).
Change order of SetDisplayDevice(), HWRestore(), UnbindGART() and
RestoreBIOSMemSize() to be exactly opposite to the Save procedure in
EnterVT() (Matthias Hopf, Alan Hourihane).
Fix text mode restauration by removing the assumption that the register
which determines which head is programmed is set. to the active head by
the BIOS (Mark Vojkovich).
When I wrote the resource code 5 years ago I made some assumptions which
turned out to be false: I've assumed that the bus number of the PCI
hostbridge would be the PCI bus the bridge links to. This is not
correct. Fixing this assumption is not easy. However I hope that the
attached patch will make the system work regardless as it 'ignores'
host bridges from which the target bus is not known. This should not
matter at all as we really don't care about host bridges (unless we
have bridge specific code which retrieves information about the
bridge).
Fixed server crash on reset when a structure allocated in PreInit() was
freed on CloseScreen().
Fixed ring buffer lock ups that happened because the structure that
contained ringbuffer data was not zeroed after allocation.
Fixed numerous warnings due to signed unsigned comparisons.
programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
(NVBacklightEnable): Changed the order in which the sequencer registers
and the backlight control registers are written. The sequencer control
register need to be written first otherwise DPMS screen blanking
produces vertical bars on a mobile device. lib/Xau/Imakefile: Build
libXau static library PIC so it can be linked into toolkits that would
like to wrap its functionality.
version called the driver directly and too late.
Unblank secondary screen explicitely. Don't rely on the value read during
register save as the BIOS have blanked the secondary head.
Checking if server isn't switched away before calling sync. Sanity check
for possible bugs in aother areas of the code.
Fixing default amount of of allocated video memory from AGP for i810: Use
16MB if less than 192MB are installed else use 24MB (Matthias Hopf).
xc/programs/Xserver/hw/xfree86/drivers/i2c/fi1236.c Make sure formatting
style is consistent within a single function. MT2032 functions are best
be in separate file anyway.
code is practically untouched since xatitv (which was a standalone test
program). However, it all worked and was debugged over long period of
time, so I prefer to to mess with these for now.
New drivers: fi12xx (including MT2032 - this would be be split off later).
tdaXXX msp34xx bt8xx
#defines/-D options.
programs/Xserver/hw/xfree86/common/xf86DPMS.c Use defaultDPMSEnabled global
for the default state of DPMS if not set in any config files.
programs/Xserver/hw/xfree86/os-support/sunos/solaris-sparcv8plus.S Add
support for required assembly inline functions for Sun compilers on
Solaris/sparc.
Add support for Solaris/sparc libraries.
Alan Coopersmith from release 6.8.1.
Fail during initialization with error if font/fontset is not set for
widget. This prevents a sig11 later when the non-existent font/fontset
structs are referenced.
Check if xf86Info.kbdProc pointer is really set before calling it on abort
as this pointer won't be set if the new modular keyboard driver is used
(Matthias Hopf).
Added new libs to the bindist control files.
Removed inclusion of unnecessary kernel header on Linux. This may fail in
an -ansi environment.
chipsets can be probed without OS support as probing them is only
possible using ACPI. One example of this are the HP ZX1/2 chipsets:
previously the code assumed that these chips were present when no other
of the known chipsets could be probed. This assumption brought SGI
Altrix machines with 64 CPUs to a grinding halt.
troubles.
- Move the RemoveBlockAndWakeupHandlers to match
RegisterBlockAndWakeupHandlers.
- Enable R100 trapezoid "acceleration" when DRI is working, so that it can
be exposed and worked on.
instead of ErrorFs for things that are really bad, and put limits on
some loops. Now, sometimes instead of hanging the entire system, we
(mostly-) cleanly drop to console when the card has hung.
not doing an add of 1 per triangle like I hoped, and instead seems to
be saturating all the pixels or something. The R100 acceleration
renders pretty well, with some gaps. Note that both are slower than
software due to lack of DMA to submit vertices.
- Mostly fix R128 and Radeon transform support, including supporting
bilinear filtering on R128. Subpixel offsets are still probably an
issue (reported by rendercheck), but I want to make 100% sure about my
understanding of the protocol before changing everybody, including fb.
- Add support for dst formats without alpha to R128 Composite.
- Remove the R128 Blend code, which has long outlived its usefulness. (I
kept it around for one reason: It could be useful for the w/h > 1024
case with no mask and a non-src op. That seems pretty infrequent and
not worth the trouble).
might be able to do Precise in hardware, so leave it up to the driver.
- Add a helper function for computing a set of offsets for smooth trapezoid
rasterizing using many sharp trapezoids.
RasterizeTrapezoid screen function. These hooks will be called for
imprecise, non-sharp trapezoids with A8 destinations.
Note that the current main consumer of trapezoids, cairo, is requesting
precise, sharp trapezoids by not changing the default Picture
attributes, but gets non-sharp effects in software because fb bases its
choice of sharp/non-sharp on the mask format being A8 vs A1, and cairo
asks for A8. Follow fb's (poor?) example by ignoring the sharp setting
and basing the choice off of the mask being A8.
heuristic, delay the decision until the first
kaaPixmapUse{Screen|Memory}, and put it in framebuffer if UseScreen was
called. Provides a significant improvement in cairo speeds (100%
speedup in cairogears here) and is likely to improve text performance
as well.
Fix build failures when UseDeprecatedKeyboardDriver is YES and
DoLoadableServer is NO (Bug #1229, Kristian Hgsberg).
Fix failure when using DLL loader and LD_BIND_NOW is set (Bug #1212, Adam
Jackson).
None works.
Copy filter to backing picture during validation.
Mark picture serialNumber when setting Filter or Transform so Validate
occurs.
Initialize xf86Screens[i]->pScreen to NULL so that RADEON driver doesn't
crash during server reset using old pScreen.
Fix for lockups on some versions of Matrox Mystique. #687, Patch from Mike
Harris.
Call xf86EnableDisableFBAccess though the function pointer instead of
directly. #1041, Patch from Aaron Plattner.
Swap the phsyical size of the screen when rotiation. #1050, Patch from
Aaron Plattner.
Fri Aug 13 19:47:12 2004 Soeren Sandmann <sandmann@redhat.com>
Make HAVE_FT_BITMAP_SIZE_Y_PPEM conditional on the FreeType version instead
of proping it. This way it will work with the monolithic version too.
#1062, Patch by Owen Taylor.
Xnest was half-using midispcur and doing a bad job of it. Replace all of
that code with mipointer which does a lot of the work.
Support DDXen which don't provide GetWindowPixmap, or which return NULL for
the root pixmap.
Harold L. Hunt II, Alexander Gottwald).
Fix crash when using X core font in zh_CN.UTF-8 locale (Bug #368, Yu Shao,
David Dawes).
Fix glXMakeCurrent(Dpy, None, NULL) crash (Bug #719, Adam Jackson).
HP-PA build fix (Bug #828, Guy Martin, Paul Anderson).
Fix SDK build for GATOS and Wacom driver (Bug #829, Bryan Stine).
Fix attempt to read video ROM before enabling it (Bug #843, Ivan
Kokshaysky, Mike A. Harris).
Fix detection of primary adapter (Bug #843, Ivan Kokshaysky, Mike A.
Harris).
Clarify xset man page description of how to use the keyboard repeat rate
settings (Bug #846, Mike A. Harris).
Fix problem where print-screen key would get remapped to sys-req in certain
keymaps, which broke GNOME printscreen functionality (Bug #847, Owen
Taylor).
Fix several render problems:
- MMIO mode support
- Hang on IGP chips
- VT switching hang
- 3D render corruption (Bug #922, Hui Yu).
the other render symbols.
Initialize screen_x and screen_y to 0. This fixes a problem with the new
Damage based sprite, where intersection test against the root pixmap
would fail because the two fields were not initialized (damage.c,
166-170).
2.1.8 (Chisato Yamauchi).
A small backward compatibility fix to make the freetype module build with
freetype version < 2.1.7.
Fixed/added some debugging code.
SetupForCPUToScreenAlphaTexture2. These add a dstFormat argument after
the previous format argument, which the driver needs to use to properly
set up the destination format. Two new arrays are added for the list of
destination formats supported that correspond to the previous format
arrays for sources.
- Make Render acceleration only occur when the new hook for that
acceleration type is supplied and the dst format list is set, along
with the src format list being set. Without knowing the destination
format, the Render acceleration couldn't properly support all the
destinations it might encounter.
- Bump XAA module minor version.
- Update the Radeon Render acceleration to use the new hooks when the XAA
module is sufficiently new. Fix a bug in the src/dst alpha booleans for
ops, and use them to set blend_cntl to support destinations without
alpha. Add missing PICT_a1r5g5b5 texture format, and add list
terminator. (!)
2004-08-02 Kensuke Matsuzaki
Fix the bug that we can't copy & paste multi-byte string to Unicode-base
Windows application. Rename fUnicodeSupport to fUseUnicode, because it
don't mean wheather Windows support Unicode or not.
XAACachePlanarMonoStippleWeak to XAAGetCachePlanarMonoStipple() for
consistency with other parts of xaa and fix forward declaration in
xaalocal.h. Fixes last comments on Bug #962.
Fixed FreeType module to build with FreeType versions older than 2.1.7.
Fixed typo.
Added vtSema to protect call of driver DPMS function.
removed unneeded variable
Modified RandR driver hook to reduce the number of function calls to one.
Function is sufficiently generic to be extended in the future.
This file currently contains the Cygwin/X specific release notes from 6.7.0
and a first collection of what will make up the release notes for the
next release
build fixes for AMD64.
Made shm* functions in the libc_wrapper more standard conformant by setting
errno correctly.
Use xf86ExendedInitInt10() in VBEExtendedInit() to be able to pass flags.
framebuffer formats except cfb and the overlay modes should work, and
r128 and radeon need to be loaded from the ati driver (both issues to
be fixed soon). Tested on i740, s3virge, mach64, tdfx, vesa, and vga
drivers. elfloader users shouldn't be affected.
- Fix launch of X clients by double clicking in the Finder when there is a
space in the path (Torrey T. Lyons).
- Interpret scroll wheel mouse events correctly when shift is held down
(Benjamin Burke).
- Add option to always use Mac command key equivalents (John Harper and
Torrey T. Lyons).
- Add support for dynamic screen configuration changes in rootless mode
(John Harper and Torrey T. Lyons).
- Add documentation on generic rootless layer (Torrey T. Lyons).
Improved support for Compose and Kana Lock LED's on Sun keyboards
Add event definitions for additional keys on Sun Japanese keyboards
VUID mouse protocol support for Solaris Make default mouse message clearer
on machines that use a default other than /dev/mouse.
rate selection necessary for Mac fbdev
Don't know about fb changes to pixmaps, so can't track dirt.
Add Mac specific 1280x854 mode. Warn when requested mode isn't found.
Add ability to soft-boot video cards.
Add region expand request. FIXME: need test cases
(XFree86 Bugzilla #1438, John Heasley). "To fix this, I've added a
mouse buffer (Xisb buffer) "scale" value to the MouseDevPtr type. If
set, it is used as structure size of which we want space for a few."
- On R128, don't refer to an old Composite's mask transform when the
current Composite doesn't have a mask.
- Staticize some global variables in r128_composite.c.
on screen 0 can cause a segfault. Fix by preventing reinitialization of
detached inputs. When Xinerama is active and screen 0 is detached,
pixmaps for XGetImage must be obtained from another screen.
header include. I don't know how this happened, but I'm going to blame
a "few" fscks having happened between testing the code and committing
(due to other driver changes that made me not blame dirty for the
failures I saw) for disappearance of kasync.c changes. Fixes a lot of
corruption.
IA32 only, anyway (Egbert Eich).
Disabling generic VGA testing for IA64 architectures. Temporarily disabling
support for ZX1 bus. This code is extremely invasive and is executed as
fallback without testing for a ZX1 chipset. It brings a SGI Altrix to a
grinding halt. (Egbert Eich).
IA64 (Egbert Eich).
Fixed wrong function prototype (Egbert Eich).
Don't test for generic VGA on IA64 (Egbert Eich).
Fixed a segfault when accessing a structure before verifying the pointer
exists (Egbert Eich).
Added a showcache option for debugging (Egbert Eich).
Increase default video RAM size to 16MB when DRI is enabled and more than
128MB are available (Egbert Eich). Fixed lockups during mode switch.
Problem was introduced when attempting to copy the behavior during
LeaveVT()/EnterVT() but but forgetting to call I810DRILeave() before
I810DRIEnter(). The entire DRILeave()/Enter() scenario has been
commented out as it didn't seem to be necessary (Egbert Eich).
Fix TweakMemorySize() (tested with i855/i865) (Egbert Eich).
increased MAX_DEVICES to 128 (Egbert Eich).
Use OS provided PCI config space access as default method (Egbert Eich).
Added support for Linux 2.6 proc file format.
Fixed unaligned accesses to pieces of the VBE info block. VESA did not
align elements to size (Egbert Eich).
offscreen pixmap area, and set it when any rendering occurs. When
moving a pixmap out of offscreen, don't read data back if it wasn't
dirtied (compared to the system memory copy).
out when allocation can't find a free area of the requested size. When
offscreen pixmaps get used, the offscreen area's score is increased by
a constant value. Every certain number of increases, all offscreen area
scores get decreased by a fraction. When choosing a set of areas to
remove for a new allocation, the set of areas with the smallest total
score is chosen for removal. While this is not the smartest system, it
prevents things like always removing the first offscreen area in memory
(likely the most recent) to be kicked out when doing replacing.
builds with non-gcc compilers that refuse to let you do return
function_that_returns_void(...)
programs/Xserver/hw/xfree86/os-support/shared/sigiostubs.c Remove includes
of xf86drm.h that break non-DRI builds
xc/config/cf/Imake.rules Correct comment to match rule name for
InstallDriverSDKObjectModule
xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.c Log results of
ioctls to probe keyboard type & layout
solid-fill-based composite acceleration.
- Use a real pixmap when doing an UploadToScratch (For pDrawable->type ==
DRAWABLE_WINDOW, you need to get the backing pixmap).
- Pass back the x/y offsets from kaaGetOffscreenPixmap unconditionally,
because they'll be used in the scratch case.
- Turn on the Render acceleration for Rage 128 and Radeon 100-series at
last!
Fix a few allocation bugs with alternate visual ids Allow for non-8/8/8
alternate visuals
Turn off any existing shadow before enabling it again (avoids
re-registering existing damage)
Add some validation code to catch re-registered damages
addition to the ARGB32 one. This allows 'glitz' to run on top of any X
server using mesa.
Switch to using 32bpp for depth 24 pixmaps (even when the frame buffer is
not depth 24).
KdCheckSync -- the boolean used in the latter won't be set yet.
Oops. == instead of =.
Must sync hardware before rasterizing trapezoids in case the mask is in
off-screen memory and has just been erased. Yes, it is silly to place
masks in off-screen memory. That's a separate issue.
Off-screen reallocation could have used a stale pointer.
Separate framebuffer mapping computation from actual frame buffer mapping.
Now map the frame buffer from vesaEnable so that VT switch shares the
same mapping code. This makes sure any shadow framebuffer is allocated
again.
- Add monochrome hardware cursor support.
- Try to auto-detect AGP support for DRI on Radeons. And fail. Detect it
properly on R128.
- Set up card for pseudo-DMA if possible. Convert 2D rendering code to
prepare DMA packets only. Use generic code to decode DMA packets to
MMIO if PDMA is unavailable. Add WIP code to support "real" DMA without
DRM support.
- Dispatch pending DMA commands when the server sleeps. Otherwise some
things, such as typing in an xterm, wouldn't show up for a time.
- Fix Radeon Composite acceleration in many ways, and add Rage 128
Composite acceleration. Disable them both due to still-not-understood
issues they have. They fail with In, Out, AtopReverse, and Xor, and
text rendering is strange.
- Add textured XV support for R100 and Rage 128. No brightness/sat
controls, but it does support multiple ports, and cooperates with
Composite.
- Add WIP code for hostdata uploads.
- Many cleanups and fixes.
xc/programs/Xserver/hw/xfree86/xf86config/xorgconfig.c
- Clean up server name changes from TM branch
- Set default XKB rules file name correctly
- Use default font path from Imake configuration for the default font path
in generated xorg.conf files.
- Use path variables from Imake configuration for paths to files, in case
vendor has configured them to install somewhere other than the
defaults.
because CHAR_BIT is defined to __CHAR_BIT__ which is a compiler
intrinsic define. BugZilla #605: Fixing build on IA64 which is broken
due to the inclusion of the kernel header asm/page.h. Kernel headers
however don't work with
-ansi. The inclusion of asm/page.h can however savely be removed as it
there are plenty of other ways to determine the page size.
ati driver, cascading between VESA and FBDEV. We only have init
functions done so far; need to add all of the others. Fixed some
compiler warnings. Whitespace and formatting cleanups (using 4 spaces,
no tabs)
Get rid of all references to SCO.
Change SDK include dir to $(includedir)/xizzle. Add SDK libs where
necessary.
Reformat to be nicer and easier to shuffle around; also, fix lib ordering
so we get so much closer to the elusive final link. Shuffle
common/xf86Init.c into libxizzle.a.
Fix a couple of early snafus - s/BUILDXI/XINPUT/, et al; make the SDK stuff
conditional as needed; fix the SBus includes.
Name library os-support/libxizzleos.a, not os-support/foo/libxizzlefoo.a.
Clean up ARCH_SOURCES so it's always initialised to something.
Move linked libraries to _LIBADD, which somehow escaped my attention. Make
inclusion of drm/libxizzlelinuxdrm.a dependent on DRI.
s/VERSION/VBE_VERSION/;
Axe this redundant dir.
All Xizzle-specific: axe hw/xizzle/Xi, shuffle link order, fix list of
required modules to be vaguely sane, add some pertinent libs/incs.
anyone uses this in production, a big scary monster will eat them. hrm,
perhaps i should make it have a --i-know-what-i'm-doing param that it
doens't start without, heh
- Reserve areas for back/depth/span when USING_DRI && GLXEXT. This would be
better in a TransitionTo3d, but we'd need to work with the offscreen
memory manager for that.
- Misc. fixes to ati_dri.c for DRI+GLX. Needs more work still.
pixmap into temporary offscreen storage. Subsequent UploadToScratch may
clobber the data of previous ones. This allows hardware acceleration of
composite operations on glyphs.
- Add a new UploadToScreen kaa hook for doing the actual moving of data to
framebuffer. This would allow us to do things like hostdata blits or
memcpy to agp and then blit.
- Add an UploadToScreen on ATI which is just memcpy, but which will be
replaced with a hostdata blit soon.
- Add UploadToScratch on ATI and reserve 64k of scratch space. This
provided a 3x speedup of rgb24text on my Radeon.
emitting as a tri fan rather than a tri list. A rect list would save an
additional vertex (out of 4) per rectangle, but there's no measurable
speed difference and the tri fan may be useful when transforms come
into play.
accel. I don't 100% trust that the math works for Saturate, but I can't
tell from existing information.
- Fix texture pitch fallback checks.
- Fallback when src or mask have transforms.
- Disable Radeon Composite accel until the offset thing is fixed.
- Set offscreenPitch to 64 on Radeon thanks to new information and a kaa
fix. Fixes acceleration at width!=1024.
functions. Along with making things more readable, it fixes a problem
where the coordinates would get messed up if acceleration failed due to
things like pixmaps being in the wrong locations.
pixmaps are offscreen and don't have alpha maps. It is the last case
checked before going to software fallback
- Use the new Composite hook in the ati driver to implement acceleration of
most Composites that get done in an xcompmgr environment on r100 series
cards. It is only available when using the DRM. There are still some
corruption issues, but the DRI is still non-default and I need to get
this into version control.
- Add libdrm and libdri. Portions of the DRI extension are stubbed out.
- Use the DRM in the ATI driver when available. This provides a minor
performance improvement in x11perf, and opens the possibility of using
the 3d hardware for acceleration in the future.
- Implement solid fill acceleration for Composite in KAA.
- Implement Blend hook for Composite and use it on r128.
- Fix a bug of mine that resulted in overuse of offscreen memory.
- Fix many miscellaneous bugs in ATI driver and add PCI IDs.
the ATI driver. It suffers from hw/sw synchronization problems, it
looks like, but may be good enough to work on Render acceleration
experiments. Committing it as-is so I don't lose it again.
Check window reorigin in PositionWindow and bump pixmap serial numbers to
revalidate GCs.
Fix picture clip region origin in automatic update
Initialize client private 'critical' value
Clean up pixmap bounds checking code to only affect contents allocated by
fb.
Oops. Call SourceValidate for Composite operations.
Add Xchips server (vesa based)
available, with fbdev being used by default.
- Use depth 16 by default when vesa backend is used.
- Add MMIO defines for PowerPC (should be in a common location).
Many thanks for Michel Daenzer for much of this code.
- Remove usleeps from idle and waitavail code, recommended by keithp.
- Add a workaround for apparent broken acceleration with Rage 128 and
offset alignment with 8-bit acceleration (24-hack and plain 8-bit).
- Minor cleanup of setup code.
- Disable acceleration with 24bpp due to apparent broken acceleration.
Accel at 24bpp was the cause of the crashes when people tried to use
any depth over 16. XFree86 doesn't support 24 either.
- Disable at < 8bpp, too.
- Add the other Rage 128 PCI IDs.
- Remove unnecessary setting of scissor registers (only default scissor
gets used).
help with ati, and future DRM drivers.
- Add new "ati" kdrive driver. It has ancestry in the r128 driver from
andersca, but took a detour through being the WIP SiS 300 driver on the
way. It supports Radeons (tested on QD VIVO and 7500) and Rage 128.
Current limitations include that it requires depth 16 and that the
other Rage 128 PCI IDs aren't included yet.
change, just cleaning up a bit)
Reset the screen->memory_base value when frame buffer is remapped. This
makes sure new off-screen allocations point at the newly mapped region
rather than the old (now unmapped) region.
Sufficient, but not always necessary.
Add borderClip to damage on creation so that clients needn't guess.
Fix API to FbDots functions to make PolyPoint work with screen_x/screen_y
offsets
Add debugging code to make sure no pictures are left pointing at freed
pixmaps. "Can't" happen, but it did once.
Change KdOffscreenArea structure to eliminate separate private structure,
eliminate the ScreenPtr, change from doubly linked to singly linked
list.
Don't damage BackgroundNone windows on PW_BACKGROUND. Re-clip damage to
borderClip in DamageSubtract.
have redirected subwindows in manual mode. Those clients are marked
Critical and given a significant scheduling boost whenever they receive
a damage notify event. This dramatically improves update frequency.
If the kernel reported a large number of keys, readKernelMapping would walk
off the end of the kdKeysym array.
Fix usage of _IOWR; the 'size' argument is actually a datatype.