Faster card, slower graphics!
#1
This is probably more of a linux problem but as the only think I use Linux for at this moment is testing XBMC I thought I would try you all.

I have been running really well recently using my test rig of XP2200+, Ubuntu 7.04, 1Gb & AGP GeForce2 MX440. Although the graphics card was old and slow it worked well and I could play most standard and half-res HD without issue. The only area where it suffered was with overlays where you could have the vid source but nothing else (although you could see it trying). Music is great and the visualisations worked well.

I blagged a Nvidia FX5200 which should give me a bit more grunt (and a DVI port for my TV) so I did a complete clean install, got the source and T3CH, ran the make and now get almost no video at all (menu display and other XBMC functions are nice and snappy). On any vid source I get .3 FPS and 100% CPU. I've tried the Nvidia drivers (from Nvidia) but that way led to a would of pain. I am currently using nvidia-glx drivers from Ubuntu and the card is detected properly. X is good and desktop effects work OK.

Any ideas anout why I cannot get any better performance from what should be a much quicker card? I'm not in front of my machine at the moment but if anyone wants any logs I'll post them this evening.

Ta

Mike
Reply
#2
What do you get when you run glxgears?
Reply
#3
I get an average of about 600fps in glxgears.

Mike
Reply
#4
After a ton of research and trying various things I'm admitting defeat :-)

I've tried the nvidia-glx-new drivers which led me into a whole world of pain with terminals disappearing and patching drivers!, then back to the normal drivers with all sort of options and no improvement (going backwards really).

I've just remembered I have a Nvidia Ti 4200 installed in my XP machine so I'm going to swap that with the FX5200 and see if that one will play ball. The interesting thing was that the GUI in XBMC always worked superbly so the 3d stuff was always working, it was just the video rendering.

Great as Linux is, at times like this I really appreciate my windows boxes!

Roll on the fully packaged distribution without needing all of the X stuff....
Reply
#5
Can you paste the output of 'glxinfo'?
Reply
#6
I've now installed the GeForce4 Ti 4200 and glxgears is showing over 3000fps and XBMC is back running as expected. With the new card I can now video playing in the background of the interface (although not completely smooth but that is my hardware).

As a question, what settings should I be using in the Video player section? Hardware Overlay or Software (or does it make in difference in the Linux build?)

Ta for people's suggestions.
Reply
#7
I'm seeing the same issue. I have an nvidia geforce fx 5500 running with the proprietary nvidia drivers. I get great FPS on the XBMC UI, but playing a video is at 0.4 FPS and CPU 99%

Here is my output from glxinfo... let me know if you need any other info:

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
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_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce FX 5200/AGP/SSE2
OpenGL version string: 2.1.0 NVIDIA 97.55
OpenGL extensions:
GL_ARB_depth_texture, 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_mirrored_repeat, 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_S3_s3tc, GL_EXT_texture_env_add, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_minmax,
GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, GL_EXT_Cg_shader,
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_paletted_texture, 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_shared_texture_palette, 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_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_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_SGIS_generate_mipmap,
GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SGIX_shadow,
GL_SUN_slice_accum
Reply
#8
The rest...

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x21 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None
0x22 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None
0x23 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 None
0x24 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 None
0x25 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 None
0x26 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x27 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 None
0x28 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x29 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 None
0x2a 24 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 None
0x2b 24 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 None
0x2c 24 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 None
0x2d 24 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 None
0x2e 24 tc 0 32 0 r y . 8 8 8 0 4 0 0 16 16 16 16 0 0 None
0x2f 24 tc 0 32 0 r y . 8 8 8 8 4 0 0 16 16 16 16 0 0 None
0x30 24 tc 0 32 0 r . . 8 8 8 0 4 0 0 16 16 16 16 0 0 None
0x31 24 tc 0 32 0 r . . 8 8 8 8 4 0 0 16 16 16 16 0 0 None
0x32 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x33 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x34 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x35 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x36 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x37 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x38 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x39 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x3a 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x3b 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x3c 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x3d 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x3e 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x3f 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x40 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x41 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x42 24 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x43 24 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x44 24 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x45 24 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x46 24 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x47 24 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x48 24 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x49 24 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x4a 24 dc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 None
0x4b 24 dc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 None
0x4c 24 dc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 None
0x4d 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x4e 24 dc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 None
0x4f 24 dc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
0x50 24 dc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 None
0x51 24 dc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 None
0x52 24 dc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 None
0x53 24 dc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 None
0x54 24 dc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 None
0x55 24 dc 0 32 0 r y . 8 8 8 0 4 0 0 16 16 16 16 0 0 None
0x56 24 dc 0 32 0 r y . 8 8 8 8 4 0 0 16 16 16 16 0 0 None
0x57 24 dc 0 32 0 r . . 8 8 8 0 4 0 0 16 16 16 16 0 0 None
0x58 24 dc 0 32 0 r . . 8 8 8 8 4 0 0 16 16 16 16 0 0 None
0x59 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x5a 24 dc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x5b 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x5c 24 dc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x5d 24 dc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x5e 24 dc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x5f 24 dc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 Ncon
0x60 24 dc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 Ncon
0x61 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x62 24 dc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x63 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x64 24 dc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x65 24 dc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x66 24 dc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x67 24 dc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 Ncon
0x68 24 dc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 Ncon
0x69 24 dc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x6a 24 dc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x6b 24 dc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x6c 24 dc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x6d 24 dc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x6e 24 dc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
0x6f 24 dc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 Ncon
0x70 24 dc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 Ncon
Reply
#9
Question 
Huh

BUMP for d4rk
Reply
#10
Your glxinfo looks good, can you paste your xbmc.log as well?
Reply
#11
Here you go. Note that the "discontinuity" error continues until I kill the xbmc process.

http://pastebin.ca/628699

Regards.
Reply
#12
Both your glxinfo and xbmc.log look fine to me. I'm not sure what's causing the slowdown. Make sure that the .so files are up to date and that you're running the latest svn. If that doesn't fix it then maybe this needs to be a bug report. At what fps does it play when you 'Tab out' of fullscreen mode?
Reply
#13
Sad 
I tried this again with the latest SVN and still get very pour FPS during video playback. Sound appears to be ok, but frames are less than 1 FPS.

Here is my xbmc.log:
http://pastebin.ca/633402
Reply
#14
I have the same problem...

/frogge
Reply
#15
Hi, I have the same problem on my laptop (Nvidia Geforce FX5300 Go, with a 2.8 Ghz Pentium 4) and have been trying to figure out whats wrong. It seems to me that the problem is caused by the FX series lack of OpenGL features.

This a small part of my laptops glewinfo output:

GL_ARB_texture_non_power_of_two: MISSING
GL_ARB_texture_rectangle: OK

This is a very annoying problem, since in this case nvidias OpenGL driver is reporting the existence of the texture rectangle extension (responsible for drawing textures where height and width are "not the power of two"), but its missing the hardware acceleration of non_power_of_two rendering. These issues are further explained in this paper:

http://download.nvidia.com/developer/Pap...upport.pdf

The highlights of this paper are (page 9 - 10):

1. GeForce FX and NV3xGL-based Quadro FX GPUs lack hardware support for non-power-of-two textures (excepting the texture rectangle functionality provided by the ARB_texture_rectangle extension). If any texture unit could sample a bound 1D, 2D,3D, or cube map texture object with non-power-of-two size, the driver will automatically render with software rendering, which is correct but extremely slow.

2. Unlike NVIDIA’s GeForce 6 Series and NV4xGL-based Quadro FX GPUs, GeForce FX and NV3xGL-based Quadro FX GPUs do not have hardware support for fragment-level branching.

3. GeForce FX and NV3xGL-based Quadro FX GPUs lack hardware support for separate RGB and alpha blend equations. If the RGB and alpha blend equations are different, the driver will automatically render with full software rasterization, which is correct but extremely slow.

4. NVIDIA’s GeForce FX and NV3xGL-based Quadro FX GPUs lack hardware support for vertex fetching. GLSL vertex shaders that perform vertex texture fetches will fail to compile.

and

Future driver revisions may successfully compile GLSL vertex shaders with texture fetches but perform the vertex shader completely or partially with the CPU. In this case, the GPU can still accelerate rasterization and fragment processing.

From reading the source of LinuxRendererGL, I'm not quite sure how much of this affects the current renderer, but from my own test the problem is not solved by reverting to Power of Two textures and I believe the reliance on vetrex, fragment and pixel shaders in the rendering pipeline. Since I'm not really familiar with OpenGL programming I'm currently unable to build an alternative rendering pipeline, and don't quite understand the purpose of the shader code Wink

Just thought Id share my findings with everyone else having the same problems.

Glewinfo: http://pastebin.ca/638426

GLXinfo: http://pastebin.ca/638429
Reply

Logout Mark Read Team Forum Stats Members Help
Faster card, slower graphics!0