summaryrefslogtreecommitdiff
path: root/src/radeon_exa_funcs.c
AgeCommit message (Collapse)Author
2009-05-14Pre-R600 EXA: Fix coordinate limits off-by-one error.Michel Dänzer
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21598 . (cherry picked from commit 22e39392297fa11003df90c175db3c449d8f9853)
2009-02-27EXA: Make sure Prepare/FinishAccess hooks can handle EXA_PREPARE_AUX* indices.Michel Dänzer
And signal this to the EXA core using the new EXA_SUPPORTS_PREPARE_AUX flag.
2009-02-27Revert "EXA: Adapt to EXA changes in xserver Git."Michel Dänzer
This reverts commit de358736dc696559ba99c71cf5b2a97508201630.
2009-02-24EXA: Adapt to EXA changes in xserver Git.Michel Dänzer
The PrepareAccess hook can now get six different indices. Also remove superfluous instances of #include "exa.h". Note that you may need to run autoheader manually to get config.h.in updated.
2009-02-24Only call RADEONWaitForVLine if it might actually do anything useful.Michel Dänzer
Otherwise it and RADEONBiggerCrtcArea show up pretty high in x11perf -aa*text profiles.
2009-02-11Revert "Radeon EXA: wait for the engine to be idle before sw access"Alex Deucher
This reverts commit 0c4694c58f2ec152b19023626bc7ced891d9da65. This patch just adds latency and thus isn't a real solution
2009-02-10Radeon EXA: wait for the engine to be idle before sw accessAlex Deucher
Really we need proper fencing with timestamps but this should help in the short term. This should help with minor corruption issues and possibly lockups.
2009-01-24Drop memcpy fallbacks from EXA UploadToScreen and DownloadFromScreen hooks.Michel Dänzer
While in theory it's possible for the PrepareAccess hook to fail on big endian platforms, in practice it isn't at this point because there's no other users of the surface registers.
2008-12-05Make VSync for EXA and Xv configurableAlex Deucher
2008-12-05Optimise RADEONWaitForVLinePierre Ossman
Only avoid the vlines we are rendering to, instead of the entire screen. This way we don't stall the card for longer than we absolutely have to. EXA calls fixed by Alex Deucher.
2008-12-04First pass at tear-free accelAlex Deucher
if the dest pixmap is the front buffer, stall the pipe until the vline is outside the active area. For EXA, pick crtc based on the larger mode area; ideally we'd have one pixmap per crtc. For Xv, use dst window area to determine crtc.
2008-08-25Switch to using radeon_drm.h from the drmAlex Deucher
modelled after Matthias' similar rhd change
2008-08-25Move DRI to a separate structAlex Deucher
based on Matthias' similar work in rhd
2008-08-25Move accel state to a separate structAlex Deucher
2008-06-25RADEON: adjustments to Jerome's last commitAlex Deucher
- Flush caches and wait for idle after drawing - Make sure 3D is idle too (after composite or textured video)
2008-06-25radeon: flush & wait for 2d & dma idle after 2d blitJerome Glisse
This should help to avoid 2d & 3d engine to step on each other dma transaction.
2008-05-13RS4xx: Split out RS400 and RS480 as separate familiesAlex Deucher
RS400 (intel based IGP) and RS480 (AMD based IGP) have different MC setups and need to be handled differently
2008-05-12Replace CARD{8,16,32} with uint{8,16,32}_tMatt Turner
As has been done with xf86-video-intel, replace all CARD* datatypes with uint*_t datatypes available from stdint.h.
2008-05-09RADEON: fixup ifdef from last commitAlex Deucher
2008-05-08RADEON: disable MMIO paths for EXA composite/texvid on IGP/R5xxAlex Deucher
The MMIO paths eventually lead to a hang on r5xx/IGP. I haven't been able to find out why yet.
2008-04-14EXA: Don't wait for 3D idle after each Composite()Alex Deucher
wait in CompositeDone() instead
2008-03-19RADEON: add new macros to distinguish between R3xx and R5xx 3DAlex Deucher
2008-03-05AVIVO: Initial support for DCE 3.0 using atombiosAlex Deucher
DACs are working well, DIG support (DVI, HDMI, LVDS, etc.) still has some issues.
2008-03-01RS4xx: enable exa render accel and textured videoAlex Deucher
RS6xx paths seem to work fine on RS4xx
2008-02-28Handle EXA coordinate limits more cleverly.Michel Dänzer
Generally set the 2D engine limits, and only enforce the 3D engine limits in the CheckComposite hook. This should still prevent useless migration of pixmaps the 3D engine can't handle but allows for basic acceleration of bigger ones. Fixes http://bugs.freedesktop.org/show_bug.cgi?id=14708 .
2008-02-25fixup check for EXA composite pointed out by Alan SwansonDave Airlie
2008-02-24rs690: initial rs690 rotateDave Airlie
suffers same problem as r500 with clipping
2008-02-23r500: initial rotate support - not fully working yet.Dave Airlie
Just an example of how to setup and run the r500 3D engine for rotation. this rotates for me but I get some strange clipping on the bottom of my screen
2008-01-18RADEON: make sure EXA Composite is actually disabled on XPRESS chips.Alex Deucher
2008-01-16RADEON: add a message about render accel on newer cardsAlex Deucher
2008-01-16R300: only enable render accel on non-IGP r3xx/r4xx chips for nowAlex Deucher
2008-01-16R300: First pass at render accelAlex Deucher
This first pass is pretty limited. All it currently supports is transforms for rotation. No blending yet. Based on inital implementation from Wolke Liu with additional lock-up fixes by Dave Airlie.
2008-01-11radeon: remove stray includeGeorge Sapountzis
2007-12-19more endian related fixageDave Airlie
2007-09-27radeon: Fix build on little endian platforms.Michel Dänzer
This was accidentally broken when moving away from using pixmap data pointers directly.
2007-09-27radeon: EXA pitch fixes.Michel Dänzer
The combined pitch/offset registers only support pitches up to 16320 bytes. With EXA >= 2.3, set the maxPitchBytes field accordingly. With older versions, limit maxX such that the pitch of 32bpp pixmaps doesn't exceed the limit. Also check the limit in RADEONGetOffsetPitch just in case. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=12551 .
2007-09-27radeon: Don't use pixmap data pointer directly with EXA.Michel Dänzer
Fixes segfault with current xserver master without AccelDFS.
2007-03-20radeon: Only sync to hardware when really necessary with EXA.Michel Dänzer
In particular, don't sync again after accelerated DownloadFromScreen, which syncs implicitly. This avoids calling into the kernel when it's not necessary, which can be relevant in some situations.
2006-12-19radeon: Advertise 2D engine limits to EXA when we're not using the 3D engine.Michel Dänzer
Also round up to the maximum width and height, as that's what EXA compares.
2006-09-30radeon: Add support for page flipping with EXA.Michel Dänzer
Also use the damage layer directly instead of via shadowfb and blit dirty rectangles to the second page in LeaveServer in order to try and improve the tradeoff between performance and correctness.
2006-07-03Do even less cache flushing when the previous engine mode is known.Michel Dänzer
OTOH, flush everything when the previous engine mode is unknown, and mark the engine mode as unknown in a couple more cases.
2006-06-24Bug #7274: Fix corruption with 'small' accelerated DownloadFromScreen transfers.Michel Dänzer
2006-06-18Implement accelerated EXA DownloadFromScreen hook.Michel Dänzer
x11perf -getimage numbers only increase by about 20-30% on my PowerBook with an M9, but by about 100 times(!) with a PCIe X550. I suspect the former could perform better with PCI as opposed to AGP transfers, which would also remove the need to disable this by default with AGP.
2006-06-18Remove #include <fbdevhw.h>, not used here.Michel Dänzer
2006-05-01Bugzilla #6755 <https://bugs.freedesktop.org/show_bug.cgi?id=6755> PatchMichel Daenzer
#5536 <https://bugs.freedesktop.org/attachment.cgi?id=5536>: Change HostDataBlit interface to take dst_offset_pitch and coordinates instead of just a destination pointer, as the latter is not sufficient with tiling. Also, use HW clipping to avoid overwriting destination data outside of the specified width. Adapt to new HostDataBlit interface. This fixes corruption with UploadToScreen to the front buffer (from exaPutImage).
2006-03-22Convert use of xf86fopen() and other xf86 wrapped libc symbols to use libcKristian Høgsberg
symbols directly. The xf86* versions aren't supposed to be used directly. Drop libc wrapper; don't include xf86_ansic.h and add includes now missing.
2006-03-09Update drivers that support EXA for the new EXA ABI. This consists ofEric Anholt
moving all the accel and card members into the driver ptr, filling in the exa_major/ exa_minor fields, and always using LoadSubModule so we can check the module version up front. Only tested on ATI.
2005-09-18Break EXA ABI while we still can. Add coordinates to the UploadToScreenEric Anholt
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.
2005-09-12Fix Radeon EXA for when RENDER isn't definedDave Airlie
2005-09-11Add support for EXA to the radeon driver. Building EXA and XAA support isEric Anholt
controlled at compile time, plus the runtime option of Option "AccelMethod" "EXA" or "XAA". The XAA support appears to remain as before, while the EXA pieces need just a little more polishing. Notable features: - Render acceleration working on Radeon 100 and 200-series with DRI on. - DRI works with EXA Notable issues: - DGA disabled in the EXA case. - Backbuffer moves disabled in the EXA case. - No textured XVideo. - MMIO render acceleration is close but still has some issues. - Memory pressure while using Composite is really troublesome with DRI on. This patch is based on an initial patch by Zack Rusin, with significant work by Benjamin Herrenschmidt and myself.