PDA

View Full Version : Compiz Slow using Direct Rendering


jvedi
October 12th, 2007, 01:18 AM
Ok, I've been trying to figure this out on my own for the past week, and I think I'm finally willing to admit I need help.

I was running CF just fine for about a week until I decided to try the blur plugin for the window decorations. Using the 4xBilinear filter wasn't enough, so I decided to try the Gaussian filter. Even with the radius set to 15 and the strength set to 1, there was absolutely no blurring. I ran fusion-icon from a terminal window to see if it was throwing any errors, and sure enough I saw:
compiz.real (blur) - Error: Failed to create framebuffer object

So with a little more research, I discovered that in order for that problem not to be thrown, I needed to disable indirect rendering in the fusion-icon menu. So I did, blur worked, except that CF slowed to a crawl. All the animations are choppy, the cube looks like a slideshow, and it's showing a lot more instablility than before.

As far as I can tell, direct rendering should work fine on my setup, but I'll let you guys be the judge of that.

I am running Debian Sid on an HP Pavilion dv2416us laptop:
-AMD Turion64 X2 TL-54 @ 1.8GHz
-2048MB RAM
-NVIDIA Geforce Go 6150 video card (128MB dedicated in BIOS)
-Kernel version 2.6.22-2-amd64
-NVIDIA driver installed from NVIDIA binary package (ver 100.14.19)
-KDE version 3.5.7
-CF installed from shame's git-repository
-loose-binding flag used

xorg.conf:
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
# FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "/usr/share/fonts/ttf"
EndSection

Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
# Load "glcore"
Load "glx"
Load "int10"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
EndSection

Section "Device"
Identifier "NVIDIA Geforce Go 6150"
Driver "nvidia"
BusID "PCI:0:5:0"
Option "RenderAccel" "true"
Option "AddARGBGLXVisuals" "true"
Option "AllowGLXWithComposite" "true"
Option "DisableRootGLXClipping" "false"
Option "DamageEvents" "true"
Option "UseEvents" "false"
Option "TripleBuffer" "false"
EndSection

Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-51
VertRefresh 43-60
EndSection

Section "Screen"
Identifier "Default Screen"
Device "NVIDIA Geforce Go 6150"
Monitor "Generic Monitor"
DefaultDepth 24
Option "XAANoOffscreenPixmaps"
SubSection "Display"
Depth 1
Modes "1280x800" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x800" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x800" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x800" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x800" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x800" "800x600" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
Option "AIGLX" "false"
EndSection

Section "DRI"
Mode 0666
EndSection

Section "Extensions"
Option "Composite" "true"
EndSection

X Server info:
X.Org X Server 1.4.0
Release Date: 5 September 2007
X Protocol Version 11, Revision 0
Build Operating System: Linux Debian (xorg-server 2:1.4-3)
Current Operating System: Linux linuxbook 2.6.22-2-amd64 #1 SMP Thu Aug 30 23:43:59 UTC 2007 x86_64
Build Date: 29 September 2007 08:59:46PM

Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Module Loader present

jvedi
October 12th, 2007, 01:20 AM
Output of glxinfo:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
GLX_EXT_fbconfig_packed_float, GLX_EXT_texture_from_pixmap,
GLX_EXT_framebuffer_sRGB
GLX version: 1.3
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce Go 6150/PCI/SSE2
OpenGL version string: 2.1.1 NVIDIA 100.14.19
OpenGL extensions:
GL_ARB_color_buffer_float, GL_ARB_depth_texture, GL_ARB_draw_buffers,
GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
GL_ARB_fragment_shader, GL_ARB_half_float_pixel, GL_ARB_imaging,
GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
GL_ARB_shadow, GL_ARB_shader_objects, GL_ARB_shading_language_100,
GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3, GL_ARB_texture_float,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader,
GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float,
GL_ATI_texture_mirror_once, GL_S3_s3tc, GL_EXT_texture_env_add,
GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, GL_EXT_draw_range_elements,
GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_framebuffer_object, GL_EXT_gpu_program_parameters,
GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
GL_EXT_stencil_clear_tag, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
GL_EXT_texture3D, GL_EXT_texture_compression_s3tc,
GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod,
GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp,
GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_timer_query,
GL_EXT_vertex_array, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square,
GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fence,
GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program,
GL_NV_fragment_program_option, GL_NV_fragment_program2,
GL_NV_framebuffer_multisample_coverage, GL_NV_half_float,
GL_NV_light_max_exponent, GL_NV_multisample_filter_hint,
GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_pixel_data_range,
GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners,
GL_NV_register_combiners2, GL_NV_texgen_reflection,
GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
GL_NV_texture_expand_normal, GL_NV_texture_rectangle,
GL_NV_texture_shader, GL_NV_texture_shader2, GL_NV_texture_shader3,
GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_NV_vertex_program2,
GL_NV_vertex_program2_option, GL_NV_vertex_program3,
GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod,
GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum

I feel I've been pretty exhaustive with information about my system, but I know how annoying it can be for someone to just say "it doesn't work". If need to post anything else that might help with diagnostics, please tell me. I'm hoping that someone can help me.

jvedi
October 14th, 2007, 10:43 AM
OK, so I noticed something today. If I turn off Emerald and use the GTK window decorator instead of Emerald or Kwin, everything is nice and smooth. The only problem is that now the alpha blur setting in the blur plugin is useless because it relies on the opacity of the the decorations in emerald. Anyone see a solution?

gwrtheyrn
October 16th, 2007, 07:13 PM
OK, so I noticed something today. If I turn off Emerald and use the GTK window decorator instead of Emerald or Kwin, everything is nice and smooth. The only problem is that now the alpha blur setting in the blur plugin is useless because it relies on the opacity of the the decorations in emerald. Anyone see a solution?

i have exactly the same problem. i'm using opensuse 10.3 with nvidia driver. if i use emerald, the animations (e.g. for minimizing) are very slow, if i use gtk-window-decorator instead everything works smooth.

jvedi
October 17th, 2007, 11:12 PM
Yeah, the other thing that bothers me is that its not completely smooth. I still get stuttering when opening and closing windows, as well as the (un)minimize animations.

hcengar
October 23rd, 2007, 04:57 AM
I'm having the same problem. Using Fedora 7 and Compiz-Fusion the animations are choppy with Emerald but OK (not great) with GTK. I started getting this after upgrading video card to a Nvidia 8600 (I'm using the latest drivers). With the Intel GMA I was using before (included in the motherboard) the animations were smooth!

Nvidia driver: 100.14.19

xorg.conf (pertinent sections):

Section "Module"
Load "glx"
Load "extmod"
EndSection

Section "Monitor"
Identifier "Monitor0"
ModelName "LCD Panel 1680x1050"
DisplaySize 433 270
ModeLine "1680x1050_60.00" 146.2 1680 1784 1968 2256 1050 1051 1054 1087 -hsync +vsync
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
Option "AddARGBGLXVisuals" "true"
Option "DisableGLXRootClipping" "true"
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection



Any ideas?

Thanks!

Hector

Dual Cortex
October 25th, 2007, 03:01 AM
(unfortunately) Great to see I'm not the only one who has experienced this. Emerald has always choppy-ed up Beryl/Compiz fusion effects on my PC.
I have an 8600GT
With KWin, animations are completely smooth.

The only other major complaint I have so far is how relatively slow resizing a Window is. Ubuntu (7.10) dealt with this by not rendering the process when a window resizes, pretty simple, not sure how to explain it however. Maybe it's a compiz plugin? I haven't looked into it.

kishd
October 28th, 2007, 07:44 PM
Just change the resize mode for resizing windows in ccsm from normal to stretch or outline.

jvedi
November 27th, 2007, 01:08 AM
Ok, I want to at least get an answer for whether it's my hardware that's too slow, there's something wrong with my config, it's a Compiz bug, or a bug in the NVIDIA driver. Can anyone tell from the info I put in the original post?

Deciare
November 27th, 2007, 03:13 AM
OK, so I noticed something today. If I turn off Emerald and use the GTK window decorator instead of Emerald or Kwin, everything is nice and smooth. The only problem is that now the alpha blur setting in the blur plugin is useless because it relies on the opacity of the the decorations in emerald. Anyone see a solution?
gtk-window-decorator's blur mode is controlled by a key in the GConf database. Open gconf-editor and navigate to /apps/gwd/blur_type. A value of "none" (the default) means that window borders shouldn't blurred at all. Changing the value to "titlebar" causes only the top border to be blurred. Changing the value to "all" blurs every side of the window border.

Yeah, the other thing that bothers me is that its not completely smooth. I still get stuttering when opening and closing windows, as well as the (un)minimize animations.
If you have alpha blur enabled, and your open/close/minimise animations involve fading in or out, then the blurring effect would kick in during those animations. If blurring is what has been slowing you down so terribly, then blurred fades may explain why you lag during those specific animations.

It would also seem to indicate that your hardware does in fact have problems keeping up with the demands of the extreme blur settings you're using. I have a GeForce 6200 (original non-TurboCache version, based on GeForce 6600) and an Athlon 64 X2 4400+ (2.2 GHz), and animations that involve fading and blurring are a little bit stiff even for me.

With that said, hardware is certainly not my forte, so someone who knows what they're talking about should look over your configuration.

jvedi
November 27th, 2007, 03:38 AM
Thanks for the quick reply, I turned off the blur plugin to see if it would make any difference, and lo-and-behold it looks like everything is running smooth now :-D. I guess my hardware just isn't up to it, which is ok anyways because the window decorations I'm using now don't have any transparency at all.

I did notice a little bit of stuttering when I use expose though, especially when there are bigger windows on the screen, or more than 3 little ones. I'm just hoping someone who has a little more expertise in hardware will be able to give me a definitive answer.