Scrolling right in java apps distorts screen

Bug #1032936 reported by Jochen Fahrner on 2012-08-04
42
This bug affects 9 people
Affects Status Importance Assigned to Milestone
OpenJDK
Confirmed
Medium
openjdk-6 (Ubuntu)
High
Unassigned
openjdk-7 (Ubuntu)
High
Unassigned

Bug Description

I have the same problem as reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=41086

When scrolling right in Java apps the screen becomes distorted. This does not happen when scrolling left.

See attached screenshot of TV-Browser where this happens normally.
After making the screenshot the distortion is away. Looks like the screen is redrwan after that.

Some more details:

In the above mentioned bug report the user has a AMD graphics card. I'm using the proprietary Nvidia driver, so I think it's not the graphics driver.

Since this only happens in java apps this must have something to do with openjdk.

This problem only exists with Unity (compiz) not with Unity 2D (metacity). So I think this is a problem with java graphics and compositing.

See also here:
http://hilfe.tvbrowser.org/viewtopic.php?f=14&t=14852

Created attachment 51459
Screenshot showing garbage area after scrolling to the right.

Example application for testing: TV Browser (see screenshot)

When scrolling to the right, the contents of the scrolled area become garbled. Moving the mouse pointer over elements in the garbled area apparently causes a redraw of that element, fixing the issue, but the other elements are not redrawn.

This does not occur when scrolling to the left. If the area is garbled and one scrolls to the left, everything is redrawn and appears correctly again.

This may be confined to java applications, and I only noticed this in tvbrowser (http://tvbrowser.org). Unfortunately I don't have any other java applications available to test.

Reproducible on the following hardware:
ATI Technologies Inc Mobility Radeon HD 3400 Series
ATI Technologies Inc Device 6719 (HD 6950 Cayman)

I can't seem to reproduce this on an RS880. Please attach the full Xorg.0.log file.

Created attachment 52006
Xorg.0.log

Here you are. For me, it's easily visible when dragging the horizontal scrollbar to the right.

What JRE/JDK are you using, and which rendering backend does it use? Did you make any changes in TV Browser's graphical settings? ...

Ideal would be some kind of simple test app or replayable trace which could be used to reproduce the problem independently from all such variables.

> What JRE/JDK are you using, and which rendering backend does it use?

I'm using sun-jdk-1.6.0.27 (amd64).

> Did you make any changes in TV Browser's graphical settings? ...

I've started with a clean profile and did not change any settings.

> Ideal would be some kind of simple test app or replayable trace which
> could be used to reproduce the problem independently from all such variables.

I'm sorry, but I can't provide this. This could of course be a bug in tvbrowser, as I don't have such issues with eclipse, but that may do the rendering in a completely different way after all. I've learned in the tvbrowser forum that the application has some display problems, though nothing that would compare to my issue here.

I will try to reproduce this with the nouveau driver *with the same config* and report back, just to be sure. Last time I tried the garbage problem did not occur though that was quite a while ago and may have been with an older version of tvbrowser. Unfortunately, it will take some time until I get to a machine using nvidia hardware.

Thanks for your help so far.

Created attachment 52553
garbadge in gnome-terminal

This problem also shows in ubuntu after upgrading from natty+xorg-edgers to oneiric. (See attached screenshot)

Then it not only happens in tvbrowser (there also).

The corruptions appear randomly all over the screen. What can be done to further investigate - as it is now, I can not seriously work with the system.

(In reply to comment #5)
> This problem also shows in ubuntu after upgrading from natty+xorg-edgers to
> oneiric. (See attached screenshot)

Why do you think it's the same bug? It seems rather unlikely.

Please file your own bug with all the relevant information.

>Why do you think it's the same bug? It seems rather unlikely.

Because the tvbrowser corruption happens since the upgrade and I saw the described other effect additionally - so the problems both started with the upgrade. But I'll stay away from this bug and just monitor it. Maybe your interested in the fact, that the terminal corruptions are gone after removing some remaining packages from the xorg-edgers PPA und that the tvbrowser corruptions are now still happening, but less often.

No garbage visible with nouveau driver and nVidia Corporation G70 [GeForce 7800 GS] (rev a2). Same versions of JDK and tvbrowser.

I changed the title to be a little more specific ;-)

Download full text (5.0 KiB)

I'm seeing similar corruption with tvbrowser, however I cant make it 'stick'. It corrupts only during the scrolling, and as mentioned, only when scolling sideways to the right. I do however see similar corruption a lot in other apps, that sticks until redraw. And it seems related to text rendering, not especially to scrolling. I suspect its the same issue as the corruption looks quite similar.

I see it most often in the bookmarks bar of Chromium, there it shows up usually after 1-2 hovers with the mouse pointer. Just make sure the bar is visible, and add some bookmarks there (with label). Sometimes gnome-terminal also corrupts, and for example the torrent list in Transmission. When I focus the window, the corruption disapears (until it corrupts again), probably gets redrawn?

AFAICT it is independent of compositing; it happens in gnome's fallback mode also, and xfce4 w/ compositing disabled.

Attaching a screen shot that shows both chromium and gnome-terminal corrupting.

Using the same xorg stack I see it on AMD Radeon HD4780, HD5450, HD5770 and HD6670, but not on Intel HD2000 (Sandy Bridge). Verified with kernel 3.0.x, 3.1.x and 3.2-rc5. No xorg.conf, no weird radeon module options.

The stack looks like this, its basicly pure builds from git, with xorg core from the 1.11 branch (xorg-edgers PPA on Ubuntu 11.10):
libdrm-dev 2.4.28+git20111207.dd9a5b4f-0ubuntu0sarvatt~oneiric
libdrm-intel1 2.4.28+git20111207.dd9a5b4f-0ubuntu0sarvatt~oneiric
libdrm-nouveau1a 2.4.28+git20111207.dd9a5b4f-0ubuntu0sarvatt~oneiric
libdrm-radeon1 2.4.28+git20111207.dd9a5b4f-0ubuntu0sarvatt~oneiric
libdrm2 2.4.28+git20111207.dd9a5b4f-0ubuntu0sarvatt~oneiric
libegl1-mesa 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libegl1-mesa-dev 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libegl1-mesa-drivers 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libgbm1 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libgl1-mesa-dev 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libgl1-mesa-dri 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libgl1-mesa-glx 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libglapi-mesa 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libglu1-mesa 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
libkms1 2.4.28+git20111207.dd9a5b4f-0ubuntu0sarvatt~oneiric
libopenvg1-mesa 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
mesa-common-dev 7.12.0~git20111209.eefff370-0ubuntu0sarvatt~oneiric
xserver-common 2:1.11.2.902+git20111209+server-1.11-branch.0ca8869e-0ubuntu0sarvatt~oneiric
xserver-xorg-core 2:1.11.2.902+git20111209+server-1.11-branch.0ca8869e-0ubuntu0sarvatt~oneiric
xserver-xorg-input-evdev 1:2.6.99+git20111201.a9cdb659-0ubuntu0sarvatt~oneiric
xserver-xorg-input-mouse 1:1.7.1+git20111207.8bc8502c-0ubuntu0sarvatt~oneiric
xserver-xorg-input-vmmou...

Read more...

Created attachment 54311
chromium and gnome-terminal corruption

(In reply to comment #9)
Ok, so that list wrapped badly. Lets remove redudant information and try again shall we ;-)

libdrm-dev 2.4.28+git20111207.dd9a5b4f
libdrm-intel1 2.4.28+git20111207.dd9a5b4f
libdrm-nouveau1a 2.4.28+git20111207.dd9a5b4f
libdrm-radeon1 2.4.28+git20111207.dd9a5b4f
libdrm2 2.4.28+git20111207.dd9a5b4f
libegl1-mesa 7.12.0~git20111209.eefff370
libegl1-mesa-dev 7.12.0~git20111209.eefff370
libegl1-mesa-drivers 7.12.0~git20111209.eefff370
libgbm1 7.12.0~git20111209.eefff370
libgl1-mesa-dev 7.12.0~git20111209.eefff370
libgl1-mesa-dri 7.12.0~git20111209.eefff370
libgl1-mesa-glx 7.12.0~git20111209.eefff370
libglapi-mesa 7.12.0~git20111209.eefff370
libglu1-mesa 7.12.0~git20111209.eefff370
libkms1 2.4.28+git20111207.dd9a5b4f
libopenvg1-mesa 7.12.0~git20111209.eefff370
mesa-common-dev 7.12.0~git20111209.eefff370
xserver-common 2:1.11.2.902+git20111209+server-1.11-branch.0ca8869e
xserver-xorg-core 2:1.11.2.902+git20111209+server-1.11-branch.0ca8869e
xserver-xorg-input-evdev 1:2.6.99+git20111201.a9cdb659
xserver-xorg-input-mouse 1:1.7.1+git20111207.8bc8502c
xserver-xorg-video-ati 1:6.14.99+git20111207.bc54e415
xserver-xorg-video-intel 2:2.17.0+git20111209.429a36f7
xserver-xorg-video-nouveau 1:0.0.16+git20111207.3d2a752c
xserver-xorg-video-radeon 1:6.14.99+git20111207.bc54e415

A couple of new data points:

Option "NoAccel" "true" shows no corruption.
Reverting to an older known good radeon driver version, but on this newer xorg stack still shows corruption.

So I will now try to focus on xorg core. I'm starting to think this is an issue with EXA acceleration (which intel is not using, it seems). Setting XAA with KMS didnt work..

Oh, Option "EXAPixmaps" "false" seems to fix/workaround most of the problems.

Still seeing some corruption while right-scrolling the tvbrowser app, but everything else seems clean.

Magic worked its way, and this has been fixed recently. I don't know which component it was, but I can exclude with certainty sun-jdk, tvbrowser, the kernel and most probably xf86-video-ati.

I think the other types of corruption reported here (chromium, gnome-terminal) are not related to my issue.

Jochen Fahrner (jofa) wrote :
Jochen Fahrner (jofa) on 2012-08-04
description: updated
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in openjdk-6 (Ubuntu):
status: New → Confirmed
ubuntuati (mail-ati-online) wrote :

Same problem in Xubuntu 12.10 on a Zotac ID34 (Nvidia). No problem in Ubuntu 12.10 with Xfce and Nvidia on a desktop-pc.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in openjdk-7 (Ubuntu):
status: New → Confirmed

This bug is still unsolved for me. I'm having Nvidia graphics card (Macbook 5,1) and using Ubuntu 12.04 with proprietary Nvidia driver.

I was also experiencing this problem, I think I solved it on my system by adding -Dsun.java2d.xrender=true. I tried to duplicate the issue several times after adding this command but was unable to get it to surface again. Hopefully this works for someone else.

Jochen Kemnade (jochenkemnade) wrote :

still broken in 13.10

Changed in openjdk:
importance: Unknown → Medium
status: Unknown → Confirmed
Mike Meehan (mjmeehan) wrote :

-Dsun.java2d.xrender=true also worked for me. Some details on what it's all about: http://docs.oracle.com/javase/7/docs/technotes/guides/2d/enhancements70.html and also: http://docs.oracle.com/javase/7/docs/technotes/guides/2d/flags.html. Notably, you can fix this broadly by using the following in /etc/:

export _JAVA_OPTIONS='-Dsun.java2d.xrender=true'

Mike Meehan (mjmeehan) wrote :

Sorry, /etc/profile in my comment above.

Mike Meehan (mjmeehan) wrote :

export _JAVA_OPTIONS='-Dsun.java2d.opengl=true'
may also be a good fit, depending on how good 3D is on your system.

Jochen Kemnade (jochenkemnade) wrote :

Still an issue on 14.04 beta

tags: added: trusty

It renders essential features or functionality of the package (or a dependent one) broken.

Changed in openjdk-6 (Ubuntu):
importance: Undecided → High
Changed in openjdk-7 (Ubuntu):
importance: Undecided → High
Cinquero (cinquero) wrote :

Still a hefty issue in Ubuntu 12.04 LTS (current).

Only -Dsun.java2d.opengl=true solves it, the xrender option just distorts the distortion a bit.

I have also detected that it does not happen when you run the java app as a different user (than that who runs the X server) via "ssh user@localhost -Y"...

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.