|
|
#1 | |
|
Registered User
Join Date: Jun 2010
Posts: 4
|
Hello,
I'm using Archlinux i686 (linux 2.6.34; Xorg 1.8.1.902) with a GeForce 9600 GT. When I use 256.35, glxgears needs 100% cpu on both cores (AMD Athlon(tm) 7750 Dual-Core Processor) and only makes ~9000 fps. With 195.36.31 it still uses 100% (but only on ONE core!) and makes ~16000 fps. I know that glxgears is not a realistic benchmark of any kind, but... could there be a regression with the driver? Thank you for your time. |
|
|
|
|
|
|
#2 | |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
Are you running a composite manager? What processes are using the CPU, besides glxgears? If it's the X server, then it's likely that something is triggering new code that detects when something is listening for Damage events and turns on some fairly expensive damage tracking in OpenGL. Do you see the same behavior if you stop GDM/KDM and just start a bare X server with xinit, then run glxgears from an xterm?
|
|
|
|
|
|
|
#3 |
|
Registered User
Join Date: Jun 2010
Posts: 4
|
My setup uses lxde with fluxbox and is started directly with startx - no compositing, no gdm/kdm/... I tested a little and noticed that this problem seems to correlate with fluxbox:
lxde + fluxbox = error fluxbox = error openbox = better than 195.36.31 awesome = better than 195.36.31 pure xterm = also better than 195.36.31 one cpu core gets used fully by glxgears, the other one works a lot on X (>50% of 2nd core). Fluxbox itself doesn't appear in conky nor top. I also noticed that conky itself (which is drawing on the root window) starts to use >25% of the 2nd core while glxgears runs. I also tested another OpenGL application (dolphin, a gamecube emulator) with lxde+fluxbox and openbox: The behaviour is the same - it uses a heck more cpu on fluxbox with the new driver. |
|
|
|
|
|
#4 | |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
Hmm, strange. I did a quick search of the Fluxbox code, and it doesn't look like there's any code that would trigger the new Damage tracking. I'll have to see if I can reproduce it to find out what's going on.
|
|
|
|
|
|
|
#5 |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
This didn't reproduce for me with Fluxbox on Ubuntu. I guess I'll have to download Arch Linux.
![]() |
|
|
|
|
|
#6 | |
|
Registered User
Join Date: Jun 2010
Posts: 4
|
Thanks for your help, much obliged.
What version of Ubuntu did you try? Lucid? According to Distrowatch it uses Xorg 1.7.6, while Archlinux already uses Xorg 1.8. Maybe that is the difference? |
|
|
|
|
|
|
#7 |
|
Registered User
Join Date: Jun 2010
Posts: 4
|
Hello again,
I just noticed that I was wrong regarding Fluxbox: It is a problem with conky. I didn't realize that conky is started with my Fluxbox configuration and not with any other wm. I just tested awesome + conky and I get the same problem: The framerate in glxgears goes way down, while cpu usage increases. I use conky 1.8.0 on the root window. Does that explain anything? What has changed with 256.35? |
|
|
|
|
|
#8 |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
Thanks, Ragnara. I took a look at the source code for Conky, and it's a bit convoluted, but it does look like it could be triggering this behavior. The problem is that it's requesting to be notified whenever any application renders to the root window, which includes all normal windows. This turns on some tracking code that causes OpenGL to notify the X server every time it displays a frame. For most applications, this is fine, but for a toy app like glxgears that renders hundreds or thousands of frames per second, it can use a lot of CPU time.
The problem is that the driver can't tell the difference between an app that doesn't really care that glxgears is being rendered, and an application like x11vnc that does care. Please try configuring conky with the --disable-xdamage option at compile time. |
|
|
|
![]() |
| Thread Tools | |
|
|