Commit Graph

355 Commits

Author SHA1 Message Date
Eric Anholt
c3bc6dd551 Align scratch area offsets to the offscreen byte alignment. 2004-06-10 09:50:59 +00:00
Eric Anholt
cf3f95d216 Oops, testers reported that the last patch actually didn't work (conflicts
occurred), so the R300 PDMA doesn't work. Disable.
2004-06-10 08:37:28 +00:00
Eric Anholt
0b7647ee35 Bug #242: Fix setup of R300 cards, by providing R300 CP code from
volodya-project and initializing PDMA.
2004-06-10 05:57:31 +00:00
Franco Catrin L
b3a18ca8b8 Neomagic driver enabled 2004-06-07 05:13:29 +00:00
Franco Catrin L
893ea12559 small fixes. README added 2004-06-07 05:05:10 +00:00
Keith Packard
f8a1dd3ce7 Add top-level build support for GL X server (not working yet)
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
2004-06-04 16:10:50 +00:00
Phil Blundell
6741fadc52 New conditional. (REQUIRED_MODULES): Demand xcalibrateext if building
XCalibrate.
New file.
Add xcalibrate.c.
Read raw events if requested.
2004-06-02 20:49:50 +00:00
Phil Blundell
d4d0c8470c Add -lts if using tslib. 2004-05-30 20:40:30 +00:00
Carlos Romero
8124810950 Initialize permedia engine for acceleration to work. 2004-05-30 13:51:18 +00:00
Ralph Thomas
ea1bbf8d83 Adding driver for VIA CLE266 graphics chip. Currently it only accelerates
copy and fill operations.
2004-05-29 12:15:46 +00:00
Daniel Stone
6af411b02e Hey, I like devfs.
Try /dev/fb/0 if /dev/fb0 fails.
2004-05-28 04:56:49 +00:00
Carlos Romero
f8124d3ef5 Add pm2 to the build 2004-05-25 13:02:44 +00:00
Carlos Romero
32d0920ef9 Initial import of Permedia2 driver 2004-05-24 19:31:41 +00:00
Keith Packard
932efe8e6d Allow for multiple composite-based visuals, then add an RGB24 visual in
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).
2004-05-21 03:32:27 +00:00
Keith Packard
cde51fd05b Miscomputing pitch in 24bpp modes because of rounding errors. 2004-05-20 19:51:44 +00:00
Keith Packard
b9d920f3dc Fix SYNC_ALWAYS (debugging) code to use mach64WaitIdle instead of
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.
2004-05-20 05:27:03 +00:00
Keith Packard
94648799c8 Pin header-only pixmaps in memory.
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.
2004-05-20 02:42:20 +00:00
Eric Anholt
cade317d31 Overhaul of the ATI driver:
- 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.
2004-05-17 20:18:02 +00:00
Eric Anholt
834537e212 Make kaaMoveInPixmap public. This will be used by the ATI driver's xvideo
support to ensure that the destination is in framebuffer.
2004-05-17 07:19:49 +00:00
Eric Anholt
85f46e0bcd Add new CheckComposite hook. This allows a driver to avoid the migration of
pixmaps for a Composite operation if the operation can't be supported.
    This hook is optional.
2004-05-17 07:14:23 +00:00
Eric Anholt
74b2a76947 Add new flag, KAA_OFFSCREEN_ALIGN_POT, which tells KAA to align pixmap
pitches to a power-of-two number of bytes. Useful for Render
    acceleration on older cards.
2004-05-14 00:34:28 +00:00
Eric Anholt
2bea33e881 Don't let the visible screen get "migrated" offscreen, which manifests
itself as a hang.
Reported by: Ginokas <ginokas@free.fr>
2004-05-14 00:27:29 +00:00
Eric Anholt
40354e7618 Add generic functions for copying packed/planar XV data, copied from
mach64.
2004-05-13 22:57:15 +00:00
Eric Anholt
2e330e980f Move fourcc.h to a generic location in src/. 2004-05-13 21:41:48 +00:00
Keith Packard
f52a4d472d Follow GLX in setting ARGB visual nplanes to 24.
Retry current mouse protocol when sync is lost
2004-05-13 21:25:51 +00:00
Eric Anholt
aa5a878472 There's no need to explicitly set softCursor -- kdrive handles this if the
cursor hooks aren't set.
2004-05-13 21:15:06 +00:00
Keith Packard
7124cfaa00 Use current resolution by default, change rate to 75 to match
fbdevModeSupported cut-off (?). Glenn McGrath <glennm@hydrix.com>
2004-05-06 16:19:32 +00:00
Keith Packard
b5f200ce9d Attached is a patch to fix a build error whe ncompiling with tslib support,
a variable wasnt set, i just changed it to be like the other
    MAkefile.ams :) -- Glenn McGrath <glennm@hydrix.com>
2004-05-04 03:28:06 +00:00
Keith Packard
a8429d7610 Add completely fake X server -- draws to allocated buffer, has no keyboard
or mouse.
2004-04-28 07:26:46 +00:00
Franco Catrin L
20248eedd6 fixed Changelog format 2004-04-11 16:39:48 +00:00
Franco Catrin L
bc7168ee76 Added ROP 2004-04-11 16:24:03 +00:00
Franco Catrin L
784d37ee36 Fixed size calculation in solid rendering 2004-04-11 15:51:04 +00:00
Franco Catrin L
056322336c Basic bitblt implementation 2004-04-11 15:20:17 +00:00
Franco Catrin L
c231856a13 First acceleration function implemented (DrawSolid) 2004-04-11 00:53:10 +00:00
Franco Catrin L
47436a8af8 Finnally got MMIO working all timecat ChangeLog cat ChangeLog cat ChangeLog
:-D
2004-04-11 00:15:57 +00:00
Franco Catrin L
1740b938e4 Return back to VESA only version 2004-04-06 18:09:44 +00:00
Franco Catrin L
07bc231872 small fixes, but still can't get this driver woking again 2004-04-05 18:19:34 +00:00
Brent Cook
b526276faa removed hardcoded vesa references so we can operate with any backend. fbdev
works for initializing the screen, but input fails shortly after.
2004-04-05 02:52:35 +00:00
Brent Cook
920e6ff81b Begin separating VESA calls into a more generic backend wrapper like the
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)
2004-04-04 07:30:07 +00:00
Brent Cook
530371ceaf added touchscreen support, detect all known PCI chips in the Neomagic line.
We'll not bother with ISA for now.
2004-04-03 22:26:37 +00:00
Brent Cook
962b898868 initial import of original driver by Franco Catrin L. Wraps VESA for most
parts, with some hardware acceleration enabled for the cursor on the
    NM2300.
2004-04-03 22:22:48 +00:00
Daniel Stone
45b638b87f Twenty link errors for Xizzle now - count 'em. 20.
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.
2004-03-10 11:49:11 +00:00
Jaymz Julian
6c412a43e4 sdl x server so that we can x-on-x the fb stuff for ease of debugging. if
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
2004-02-28 09:47:55 +00:00
Warren Turkal
a27ffd2678 completely get rid of NeedNestedPrototypes
completely get rid of NeedVarargsPrototypes
remove a lot of NeedFunctionPrototypes
ansify many function declarations
2004-02-18 02:12:44 +00:00
Warren Turkal
b146ef1548 Moving toward a working input extension. 2004-02-15 15:04:57 +00:00
Jaymz Julian
bd20c8d340 Polling input mode for the kdrive os layer. And a moose! 2004-02-05 09:09:51 +00:00
Jaymz Julian
af798d2774 More NULL checks. These ones are more useful than the last (which just made
debugging a bunch of problems easier), since you can implement less in
    the basic simplest case driver now (not that i'm lazy, mind :-p)
2004-02-04 16:08:27 +00:00
Eric Anholt
2ec70aa701 Disable GLX visuals code on !GLXEXT, and remove a useless prototype. 2004-01-25 05:31:24 +00:00
Eric Anholt
01e9cc858a - Add glx visuals code based on XFree86's Radeon driver.
- 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.
2004-01-25 01:30:33 +00:00
Eric Anholt
f2bedd17af Oops, turn fallback output back off. 2004-01-25 01:16:19 +00:00
Eric Anholt
26c5a8dfdd Whitespace cleanup. 2004-01-25 01:04:12 +00:00
Keith Packard
6870c08157 Oops, lost a diff needed for the non-screen format pixmap code 2004-01-15 09:19:56 +00:00
Keith Packard
3867e03cb6 Fix up some mis-used variable names 2004-01-15 09:15:53 +00:00
Keith Packard
f233bbf365 Accelerate non-screen format pixmaps. 2004-01-15 09:13:01 +00:00
Anders Carlsson
a265167f19 Add IPAQ modeline by Dennis Noordsij. 2004-01-14 10:00:00 +00:00
Eric Anholt
6c97b277d9 Support 1x1 repeat sources in R128's Blend. 2004-01-11 00:10:34 +00:00
Eric Anholt
9270256565 Change PCI ID information field to be one of r128, r100, r200, r300. This
is all the information we need so far. Put that information into atic,
    and use it correctly in the code (unlike before).
2004-01-09 08:43:48 +00:00
Eric Anholt
5d51dfc69c Use the scratch area for Composite when one of src or dst is in memory. 2004-01-09 08:40:32 +00:00
Eric Anholt
6d8001f468 Compile fixes for non-DRI case and for non-C99 compiler. 2004-01-08 20:18:13 +00:00
Eric Anholt
b27729ec88 - Add a new UploadToScratch kaa hook for putting the data for a single
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.
2004-01-08 08:16:24 +00:00
Eric Anholt
737eddfa4b Disconnect the sis300 driver. I've never managed to fix it, and it breaks
the build on PPC.
2004-01-07 09:50:28 +00:00
Eric Anholt
5a2c23f8a1 Speed things up slightly by removing Z values from emitted vertices and by
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.
2004-01-07 02:30:29 +00:00
Eric Anholt
cff782078c - Don't forget to UNINIT miComputeCompositeRegion's regions
- Fix a bit of whitespace nearby.
2004-01-04 20:51:53 +00:00
Eric Anholt
34d1529731 - Correctly set the texture coordinate set source for the second texture
unit.
- Re-enable Radeon's Composite accel now that fonts work again.
2004-01-04 20:47:30 +00:00
Eric Anholt
9f1a92cd09 - Call appropriate Done function for Composite.
- Don't allow src transforms for Copy acceleration.
- Minor whitespace fixes.
2004-01-03 21:52:14 +00:00
Eric Anholt
3db761a17b - Add more Composite operations, including Saturate, to Radeon Composite
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.
2004-01-03 11:46:57 +00:00
Eric Anholt
d15acfa79b Split the various attempts at accelerating Composite into separate
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.
2004-01-03 11:25:27 +00:00
Eric Anholt
1e1a35e20c Actually align the offset of allocated offscreen areas. 2004-01-03 11:17:44 +00:00
Eric Anholt
354f8f7e94 Some strange \240 character snuck into the original commit of this file. 2003-12-31 23:24:33 +00:00
Eric Anholt
5f947b04da There's never a copy between different depths. Remove the check. 2003-12-30 08:45:53 +00:00
Eric Anholt
c8eb20a08e - Add new Composite hook for kdrive drivers, which only ensures that the
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.
2003-12-30 08:23:56 +00:00
Eric Anholt
adfc1ed8e1 Add dependency lines so that servers are rebuilt when server libraries are
changed.
2003-12-29 09:04:20 +00:00
Eric Anholt
df03e80ae9 Merge dri-0-1-branch to trunk. Notable changes:
- 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.
2003-12-29 06:24:01 +00:00
Eric Anholt
305c444de3 Add initial SiS 300-series (300, 305, 540, 630, 730) driver based off of
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.
2003-12-08 01:55:10 +00:00
Keith Packard
33fdd50a94 Wrap ClipNotify to see region motions during MoveWindow.
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)
2003-12-02 01:59:38 +00:00
Anders Carlsson
ae2454f656 Add support for setting the video mode. 2003-12-01 22:11:12 +00:00
Phil Blundell
e31051ba26 Call KdShadowUnset before fbdevSetShadow. 2003-12-01 21:49:41 +00:00
Eric Anholt
9cdd6fd9e3 - Add fbdev mode-setting backend to Xati. It and vesa are compiled in when
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.
2003-12-01 04:33:36 +00:00
Eric Anholt
ec7f553930 Add more RV250 PCI IDs. 2003-12-01 03:15:13 +00:00
Eric Anholt
d221c484f9 Remove sys/io.h inclusion from some files that didn't need it, and change
asm/io.h to sys/io.h in vga.c, which newer Linux complains about.
2003-12-01 01:46:42 +00:00
Eric Anholt
d803918a9f Add new Radeon 9200 PCI IDs. 2003-11-25 22:39:54 +00:00
Eric Anholt
d461855a73 - Fix Radeon offscreen pixmap pitch alignment.
- 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.
2003-11-23 10:12:04 +00:00
Eric Anholt
8e09afe657 Add RV250 PCI IDs. 2003-11-23 02:08:16 +00:00
Eric Anholt
b3247251fb - Fix a bug in pitch alignment for offscren pixmaps.
- Add 24-bit acceleration for Xati using the 8-bit trick from mach64.
- Add offscreen pixmap support to Xati.
2003-11-20 07:49:46 +00:00
Eric Anholt
41dde24b22 - Fix confusion of depth/bitsPerPixel in ati_draw.c
- 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).
2003-11-20 00:05:56 +00:00
Eric Anholt
7abbcce422 - Add PCI information (device/vendor id, bus location) to KdCardAttr to
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.
2003-11-19 08:32:38 +00:00
Keith Packard
e9cb70dae0 Reset available offscreen segment save function pointer. (Not a functional
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.
2003-11-18 18:38:48 +00:00
Seth W. Klein
f333581b7b Added infrastructure for driver specific usage messages and added vesa
usage message.
2003-11-18 04:53:16 +00:00
Keith Packard
003e87717c Recompute winSize/borderSize to fix them when changing redirection.
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.
2003-11-17 22:09:12 +00:00
Keith Packard
acd2007705 Clear window when Manual Subwindows redirect is destroyed
Fix Tile/Stipple origin with non-zero pixmap window origins
Use computed depth for TrueColor visuals as fbdev doesn't have one.
2003-11-17 06:54:52 +00:00
Keith Packard
cb6ef07bf0 Accelerated image text code drew glyphs at wrong location when compositing
manager enabled.
2003-11-14 07:46:20 +00:00
Keith Packard
318d525bf2 Have the composite extension tell the damage extension about clients which
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.
2003-11-13 09:14:29 +00:00
Eric Anholt
e9904cefa3 Fix Makefile.am's to include header files needed for distcheck. Remove
-Werror default and add --enable-werror switch to add it back.
2003-11-11 05:46:15 +00:00
Keith Packard
5dc119b73f Fix KdXv interface to pass drawable down so that bits can be put into
drawable pixmap rather than directly into the frame buffer. Rewrite
    logic in kdoffscreen to make space for new allocations, now deals
    correctly with locked areas.
2003-11-10 20:35:05 +00:00
Keith Packard
e500986657 Must offset composite parameters by drawable coordinates in accelerated
case.
2003-11-10 06:40:23 +00:00
Phil Blundell
d694b44259 Avoid ugly shell error when libXdmcp isn't present.
New functions. (TsInit): Register them.
2003-11-08 18:51:59 +00:00
Keith Packard
3e18c63634 Fix KAA to work with screen_x/screen_y hacks from COMPOSITE Also add
kaaComposite acceleration for simple bltblt case.
2003-11-08 00:28:19 +00:00
Keith Packard
1280f79054 Ok, Composite extension is semi-working; when no-one asks for redirection,
the server seems to act as before. With RedirectSubwindows (root,
    automatic), the server looks just like a regular X server. Now to go
    rewrite the (currently lame) compositing manager to get some real
    action on the screen.
Some of the fixes here are to make valgrind quiet with various ioctls used
    by kdrive/linux.
Also fixed a bug where fbdev initialization was out of order in fbdev.c and
    smi.c
2003-11-07 23:29:29 +00:00
Phil Blundell
d319a0a610 Fix warnings. 2003-11-07 23:00:06 +00:00
Matthew Allum
598c5d549a tslib improvements 2003-11-06 14:01:46 +00:00