I've build a new AM3 workstation with the 790GX chipset recently. The motherboard has a build Radeon HD 3300 (RS780) graphic card. My monitor runs in portrait mode (xrandr --output DVI-0 --rotate left). With this setup my display gets corrupted as follows: - In xterm when I type commands in the shell there appears a thin vertical line after each character. - When I start inkscape with a blank document on a virtual desktop and switch to another desktop and then back to inkscape, random black vertical lines appear on the screen. The pattern of the lines changes every time I switch back and forth again. - When I switch to a running mc (midnight commander) in my (gnu-)screen session, random white vertical lines appear on the screen. The pattern of the lines changes every time I switch back and forth again. I've tried to capture the corruption with a screenshot, but the screenshots are always uncorrupted.
Please attach your xorg log and config. Does it work better with xf86-video-ati from git master?
Created attachment 26247 [details] [review] xorg.conf
Created attachment 26248 [details] [review] Xorg.0.log
No, xf86-video-ati from git master does not help. I'm still seeing the same corruption.
Created attachment 26256 [details] [review] workaround There seems to be an off-by-one somewhere in the texture coordinates when transforms are used on r6xx/r7xx. The attached patch works around most of the problems but breaks certain other cases. Perhaps someone has an idea of what's going on, nothing is obviously jumping out at me.
Thanks for the workaround. Things look much better now. There is only one problem left as far as I can see: The vertical line of pixels ~10 pixels from the left is always duplicated in the very next vertical line of pixels. (E.g. if you move 1 pixel wide vertical line to that location it will appear as a 2 pixel wide line on the screen.)
(In reply to comment #6) > Thanks for the workaround. Things look much better now. > > There is only one problem left as far as I can see: > > The vertical line of pixels ~10 pixels from the left is always > duplicated in the very next vertical line of pixels. > (E.g. if you move 1 pixel wide vertical line to that location it > will appear as a 2 pixel wide line on the screen.) > Is there any way you could get a picture of it?
Created attachment 26288 [details] normal
Created attachment 26289 [details] double line
Created attachment 26290 [details] corruption
OK, I've uploaded three photos. The first shows no line doubling (normal). The second shows the doubling of the black-yellow line ~10 pixels from the left side of my monitor. The third shows general corruption in this screen area (red lines), produced by slowly moving the window with the red border.
Thank you very much on working on this, Alex Deucher I don't know if this could help solving the issue, but doing xrandr --rotate right ends in horizontal lines instead of vertical that appear on moving objects. I created a short video on how moving a window looks like with xrandr --rotate left ( http://tinypic.com/r/2uqnpc3/5 ) which is also available as attachment.
I see a similar issue on my left rotated screen. What branch is the workaround applied to? I am synced to git master, but see this as my latest changeset on src/r600_exa.c as: commit 7e4948a3ad80ae0885df89ac7320457cb90f0b55 Author: Alex Deucher <alexdeucher@gmail.com> Date: Thu Mar 26 14:22:35 2009 -0400 R6xx/R7xx EXA: rework composite pixel shader - move to vram storage - move swizzle logic to tex setup The patch fails against my tree.. I am on an HD3450.
(In reply to comment #13) > I see a similar issue on my left rotated screen. > > What branch is the workaround applied to? I am synced to git master, but see > this as my latest changeset on src/r600_exa.c as: It's not applied to any branch. It's attached to this bug.
Alex, what i meant was, I can't seem to apply your workaround patch to my git master tree. radeonhd/xf86-video-radeonhd$ grep -Ri vs_alu_const * radeonhd/xf86-video-radeonhd$ Which branch was it diff'ed against?
(In reply to comment #15) > Alex, what i meant was, I can't seem to apply your workaround patch to my git > master tree. > > radeonhd/xf86-video-radeonhd$ grep -Ri vs_alu_const * > radeonhd/xf86-video-radeonhd$ > > Which branch was it diff'ed against? > The patch is for radeon, not radeonhd.
I have this bug too. DRM is from kernel 2.6.30, radeon git version from 2009-06-28 with the partial fix from Alex applied. I have dual head configuration, first monitor is 1400x1050 and the second one is 2560x1024. The first monitor is rotated left and the second one has position set to "1050 160". The card is RV670PRO (agp version). Here is how it looks like (pixel columns mumbered from 0 to 1049): * 0. column is not shown (it is always black on the monitor) * columns 1-10 seem to be shown correclty after the black column * columns 11-27 are corrupted, it looks like the logical 17 columns are shown on 16 physical (monitor) columns * columns 28-1048 are shown correctly but they are shifted by one to the right on the monitor (so logical column 1048 is the last physical column on the monitor) * column 1049 (the last one) is not shown on the first monitor at all * but the columns 1048 and 1049 are shown as the first two columns of the second monitor (that means column 1048 is shown two times (once on each monitor))
fixed in 407e676b04117c7ca3dcc0cc072f3552b03c64e5
patch 407e676b04117c7ca3dcc0cc072f3552b03c64e5 fixes the problem with the incorrect rendering of columns 11-27. Also the image looks sharper now. I noticed it is a bit fuzzy before but I incorrectly attributed it to poor TN viewing angle in vertical direction. It does not fix everything though: * column 0 is still black - there is no image on it except the mouse cursor * column 1048 is the last one on the first monitor (which sounds ok considering the first column of pixels on LCD is not used) * the image on the second monitor starts with columns 1048 and 1049 which belong to the first monitor (i.e. column 1048 is displayed twice (once on each monitor)) I think this bug should be reopened (what I did) or a new one should be created. Still, it is much better than it was, thanks.
In my case everything is fine and fixed now. A big thank you to Roland.
I tried it with catalyst and got similar result. Column 1048 is shown on both monitors. So this part is probably not a radeon driver problem. The only thing (I still believe is raden driver fault) is that the first column of points is not shown with radeon driver but is shown correctly with catalyst driver.
xserver bug in the xrandr rotation code. fixed in 1.9.
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.