Summary: | broken on big-endian systems | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Mark Kettenis <kettenis> | ||||||
Component: | Driver/Radeon | Assignee: | xf86-video-ati maintainers <xorg-driver-ati> | ||||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||
Severity: | normal | ||||||||
Priority: | medium | ||||||||
Version: | git | ||||||||
Hardware: | Other | ||||||||
OS: | All | ||||||||
Whiteboard: | |||||||||
i915 platform: | i915 features: | ||||||||
Attachments: |
|
Description
Mark Kettenis
2013-07-07 12:12:42 UTC
Have you tried completely disallowing direct CPU access to the scanout buffer instead? Seems like that should fix this problem without reintroducing the other one. Created attachment 82197 [details] [review] patch that fixes the accelerated case Looks like I jumped to conclusions here. For the (EXA) accelerated case, the problem is that UTS/DFS get bypassed for the "screen pixmap". That was the right thing to do when the front buffer had a surface reg allocated to it that made sure the required byte swapping was done in hardware. But now that this isn't the case anymore, all pixmaps over 8bpp need byte swapping. See the attached patch. Of course this will leave the unaccelerated case broken. In that case the RADEON_TILING_SURFACE flag really has to be set. But there should be no interference with page flipping in that case. Patch pushed, thanks. (In reply to comment #3) > Of course this will leave the unaccelerated case broken. In that case the > RADEON_TILING_SURFACE flag really has to be set. But there should be no > interference with page flipping in that case. Right. Or, the shadow update hook could swap the bytes. Do you want to look into fixing the unaccelerated case as well? We only need swapping for r1xx-r5xx asics. For r6xx+, the display hardware already handles the swapping. Michel, thanks. Yes I will look at fixing the shadowfb case as well. Alex, when you say that for r6xx the display hardware already handles the swapping, are you referring to the unaccelerated case? Or are you saying my change to RADEONPrepareAccess_CS() is wrong? (In reply to comment #6) > Alex, when you say that for r6xx the display hardware already handles the > swapping, are you referring to the unaccelerated case? Or are you saying my > change to RADEONPrepareAccess_CS() is wrong? For unaccelerated. RADEONPrepareAccess_CS() only applies to r1xx-r5xx GPUs. R6xx and newer asics have their own PrepareAccess functions. shadowfb has been fixed now as well |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.