Age | Commit message (Collapse) | Author |
|
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21598 .
(cherry picked from commit 22e39392297fa11003df90c175db3c449d8f9853)
|
|
And signal this to the EXA core using the new EXA_SUPPORTS_PREPARE_AUX flag.
|
|
This reverts commit de358736dc696559ba99c71cf5b2a97508201630.
|
|
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.
|
|
Otherwise it and RADEONBiggerCrtcArea show up pretty high in x11perf -aa*text
profiles.
|
|
This reverts commit 0c4694c58f2ec152b19023626bc7ced891d9da65.
This patch just adds latency and thus isn't a real solution
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
modelled after Matthias' similar rhd change
|
|
based on Matthias' similar work in rhd
|
|
|
|
- Flush caches and wait for idle after drawing
- Make sure 3D is idle too (after composite or textured video)
|
|
This should help to avoid 2d & 3d engine to step on each
other dma transaction.
|
|
RS400 (intel based IGP) and RS480 (AMD based IGP) have different
MC setups and need to be handled differently
|
|
As has been done with xf86-video-intel, replace all CARD* datatypes with
uint*_t datatypes available from stdint.h.
|
|
|
|
The MMIO paths eventually lead to a hang on r5xx/IGP. I haven't
been able to find out why yet.
|
|
wait in CompositeDone() instead
|
|
|
|
DACs are working well, DIG support (DVI, HDMI, LVDS, etc.)
still has some issues.
|
|
RS6xx paths seem to work fine on RS4xx
|
|
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 .
|
|
|
|
suffers same problem as r500 with clipping
|
|
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
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
This was accidentally broken when moving away from using pixmap data pointers
directly.
|
|
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 .
|
|
Fixes segfault with current xserver master without AccelDFS.
|
|
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.
|
|
Also round up to the maximum width and height, as that's what EXA compares.
|
|
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.
|
|
OTOH, flush everything when the previous engine mode is unknown, and mark the
engine mode as unknown in a couple more cases.
|
|
|
|
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.
|
|
|
|
#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).
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|