Bug 248321 - Desktop full of artifacts (unusable) when openGl compositing is on
Summary: Desktop full of artifacts (unusable) when openGl compositing is on
Status: RESOLVED DUPLICATE of bug 243991
Alias: None
Product: kwin
Classification: Plasma
Component: compositing (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-19 04:58 UTC by TioDuke
Modified: 2010-08-22 09:18 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Screenshot (168.11 KB, image/jpeg)
2010-08-19 04:58 UTC, TioDuke
Details
My xorg.conf (1.97 KB, application/octet-stream)
2010-08-20 16:31 UTC, TioDuke
Details

Note You need to log in before you can comment on or make changes to this bug.
Description TioDuke 2010-08-19 04:58:19 UTC
Created attachment 50719 [details]
Screenshot

Version:           unspecified (using KDE 4.5.0) 
OS:                Linux

Every time I start a KDE session with openGL compositing enabled the screen is full of artifacts (partial sections of the screen overlapping each othe)r. I realized this seems to hapen whenever a window/notification/popup (re)draws itself.

I tried several things to work around the problem, with no avail:

- Disabling blur
- Disabling all effects by deselecting one by one
- Blacklisting blur and lanczos for my card by adding the following in kwinrc:
[Blacklist][Blur]
NVIDIA=GeForce FX 5200/PCI/SSE2:-:2.1.2 NVIDIA 173.14.27
[Blacklist][Lanczos]
NVIDIA=GeForce FX 5200/PCI/SSE2:-:2.1.2 NVIDIA 173.14.27
- Changing my video card's settings in xorg.conf (even the defaults do not help at all)
- Deleting my kwinrc
- Relogging without a .kde4 folder (new profile)

This does not happen when using Xrender compositing or after alt+shit+f12. The problem began after upgrading to 4.5, never on 4.4.5 or before (I am on KDE SC 4.x since version 4.3).

More details:

Distribution = Arch
KDE SC binaries = kdemod4 (chakra project)
KDE SC version = 4.5
Qt version = 4.6.31
kernel version = 2.6.35.2
NVIDIA propietary driver version = 173.14.27 (2.1.2)
Video card = NVIDIA GeForce FX 5200/PCI/SSE2

Reproducible: Always

Steps to Reproduce:
Just enable openGl compositing.

Actual Results:  
Desktop full of artifacts and thus completely unusable until alt+shit+F12


System configuration:

Distribution = Arch
KDE SC binaries = kdemod4 (chakra project)
KDE SC version = 4.5
Qt version = 4.6.31
kernel version = 2.6.35.2
NVIDIA propietary driver version = 173.14.27 (2.1.2)
Video card = NVIDIA GeForce FX 5200/PCI/SSE2

I am attaching a screenshot.
Comment 1 Thomas Lübking 2010-08-19 17:16:56 UTC
looks a bit like a syncing issue ...
launch nvidia-settings and disable "Sync to VBlank" on the "OpenGL Settings" page as well as both, the Texture and the Video Adaptor (it _should_ have no impact, but who knows ;-) in the "X Server XVideo Settings"

Then call "kcmshell4 kwincompositing", enter the advanced tab, and disable vblanking there as well. In doubt restart "kwin --replace &"

If it doesn't help you'll have to try to disable direct rendering :-(

Btw: did you downgrade Xorg-server to 1.7 (afaik the legacy driver is still not 1.8 compatible?!)
Comment 2 TioDuke 2010-08-20 05:15:17 UTC
Thank you for the suggestions. Unfortunately, it did not work.

I tried disabling  "Sync to VBlank" on the "OpenGL Settings",  Texture and the Video Adaptor + disabling vblanking on "kcmshell4 kwincompositing", to no avail. I then disabled "direct rendering" as well, but still no luck.

One thing I noticed after changing kwin settings was the following message in the terminal:

kwin(18590): OpenGL compositing self-check failed, disabling compositing. 
kwin(18590): Failed to initialize compositing, compositing disabled 
kwin(18590): Consult http://techbase.kde.org/Projects/KWin/4.0-release-notes#Setting_up 

So, in order to apply those setting, I needed to disable "sanity checks" too. The strange thing is that I do not need to do that when editing kwinrc manually + restarting kwin with "kwin --replace &". same thing at kde startup: no problems with sanity checks whatsoever.

Regarding my xorg version I'm on 1.8, in fact 1.8.1.902 and since version 173.14.27 the nvidia legacy driver (173 series, at least) works well on xorg 1.8 (the previous versions worked only after applying the --ignoreABI option on X startup, but this is not necessary any more).

In case it would be of any use, I am pasting my current kwin compositing settings. Maybe you could see something wrong in there (but it is pretty much default settings):

[Compositing]
AnimationSpeed=3
Backend=OpenGL
DisableChecks=false
Enabled=true
GLDirect=true
GLMode=TFP
GLTextureFilter=1
GLVSync=true
HiddenPreviews=5
OpenGLIsUnsafe=false
XRenderSmoothScale=false

This is after restoring "direct rendering" and "vblsnk sync".

Tell me if you need any other information and thank you.
Comment 3 TioDuke 2010-08-20 16:31:28 UTC
Created attachment 50783 [details]
My xorg.conf
Comment 4 TioDuke 2010-08-20 16:36:54 UTC
Yesterday, after posting, I made an interesting discovery.

My monitor is an Acer X185H which supports a maximum resolution of 1366x768 (WXGA). When I bought it, in order to get to use that resolution it was necessary to add a Modeline to the Monitor section of my xorg.conf and to use that in the Screen section:

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Acer"
    ModelName      "X183H"
    HorizSync       31.0 - 80.0
    VertRefresh     55.0 - 76.0
    Modeline       "1360x768@60" 84.50 1360 1392 1712 1744 768 783 791 807 -HSync +Vsync
    Option         "DPI" "96x96"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "ConnectToAcpid" "off"
    SubSection     "Display"
        Depth       24
        Modes      "1360x768@60"
    EndSubSection
EndSection

And then everything was OK: Xorg honoured the setting and was able to display in 1360x768 mode, whom KDE had no problems with.


So yesterday, I decided to run Xorg without a xorg.conf to see what happened. After restarting the Xorg server, the artifacts disappeared on KDE. Unfortunately, the resolution changed to 1280x1024 instead of the desired 1360x768.

This is the list of modes xrandr yields when no xorg.conf is used:
   1280x1024      50.0*    51.0  
   1280x960       52.0  
   1280x800       53.0  
   1280x720       54.0  
   1152x864       55.0  
   1024x768       56.0     57.0     58.0  
   832x624        59.0  
   800x600        60.0     61.0     62.0     63.0     64.0  
   640x512        65.0     66.0  
   640x480        67.0     68.0     69.0     70.0  
   576x432        71.0  
   512x384        72.0     73.0     74.0  
   416x312        75.0  
   400x300        76.0     77.0     78.0     79.0  
   320x240        80.0     81.0     82.0  

On the other hand, this is xrandr's output when using my xorg.conf:
   1360x768       50.0* 
   1024x768       51.0     52.0     53.0  
   832x624        54.0  
   800x600        55.0     56.0     57.0     58.0     59.0  
   640x512        60.0     61.0  
   640x480        62.0     63.0     64.0     65.0  
   576x432        66.0  
   512x384        67.0     68.0     69.0  
   416x312        70.0  
   400x300        71.0     72.0     73.0     74.0  
   320x240        75.0     76.0     77.0  


I also tried without an xorg.conf and using a resolution of 1280x720, which has the same aspect ratio as 1366x768 (16/9), but the artifacts were still there. So, it looks that the problem is somehow related to the screen geometry (1280x1024, which has a 5/4 aspect ratio, doesn't produce the artifacts).


I hope this information will help the developers found the reason for this bug.
Comment 5 Martin Flöser 2010-08-20 17:48:13 UTC
could you please do a glxinfo -l to get the limits of your graphics card. Please compare GL_MAX_TEXTURE_SIZE and GL_MAX_VIEWPORT_DIMS to your screen resolution.
Comment 6 Thomas Lübking 2010-08-20 20:02:37 UTC
@martin
both limits 4096 (still have such a card :-)
the texture would (should... "usually") just turn black btw.

@tio
what if you #comment the modeline and just add 

Section "Screen"
Identifier     "Screen0"
        Device         "Device0"
        Monitor        "Monitor0"
        DefaultDepth    24
        ........
        SubSection "Display"
                Modes   "1366x768" "1280x720" "800x450"
                Depth   1
        EndSubSection
EndSection
Comment 7 TioDuke 2010-08-20 20:34:21 UTC
@thomas

I don't think it will work, I had to add the modeline because, as you can see from xrandr's output, the 1366x768 was not "detected". I blame bloody Acer and/or NVidia (but this resolution was available on the win2k partition on the same machine, driver issue?).

Besides, I tried without xorg.conf to use the 1280x720 mode (same aspect ratio as 1366x768) and the artifacts were still there.
This is how I tried:
- Restarted xorg server without xorg.conf
- xorg defaulted to 1280x1024 mode
- There were no artifacts (but screen looked out of proportion)
- Set up screen resolution to 1280x720 mode using xrandr -s
- Restarted kwin: "kwin --replace &"
- The artifacts were back.

I will try, however, to do as you suggested and will post the results here (when I get home tonight)

@martin
I will post the results of "glxinfo -l", just in case.
Comment 8 TioDuke 2010-08-21 07:58:41 UTC
@thomas

Commenting the modeline and modifying the Screen section as you suggested did not work: first of all I need the modeline to obtain the 1366x768 resolution. And second and more important, I get the artifacts on KDE SC 4 if using 1280x720.

@martin
GL_MAX_TEXTURE_SIZE = 4096
GL_MAX_VIEWPORT_DIMS = 4096, 4096
Comment 9 TioDuke 2010-08-22 05:58:43 UTC
Eureka!

I think I resolved the problem, at least for myself. I reverted the commit applied in revision 1137490 http://websvn.kde.org/?view=revision&revision=1137490 and the artifacts are now gone (and openGL compositing is back!).
Comment 10 Martin Flöser 2010-08-22 09:18:13 UTC
duplicate to this bug as it's caused by the same commit. Fun, fun, we need that code to get free drivers working correctly and it breaks legacy non-free.

*** This bug has been marked as a duplicate of bug 243991 ***