Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Integrated Graphics

Anya Ristow
Vengeance Studio
Join date: 21 Sep 2006
Posts: 1,243
04-10-2008 18:06
Is anyone running the Linux client on integrated (motherboard) graphics with any of these or similar chipsets?

Intel 965, G33, x3100
nVidia 690, 780

I'm looking to build a low-power, fanless PC and I'm windering how Linux support is for integrated graphics, and I'm wondering if there are any SL-specific limitations with these chipsets I should know about. I'm not looking for high performance; I'm looking for "it works, reliably".

Thanks,
Anya
Get Takacs
Registered User
Join date: 1 Mar 2007
Posts: 23
04-11-2008 00:53
My Thinkpad X61s has an Intel GM965/GL960.

It sucks. I get 5-15fps best on the lowest quality setting. Not sure if is driver related or the chipset, but yeah, don't bet the family farm on one of these working well for you.
Anya Ristow
Vengeance Studio
Join date: 21 Sep 2006
Posts: 1,243
04-11-2008 04:28
5-15 fps would be fine, actually. As long as it does work. Thanks.
Get Takacs
Registered User
Join date: 1 Mar 2007
Posts: 23
04-11-2008 04:43
From: Anya Ristow
5-15 fps would be fine, actually. As long as it does work. Thanks.


It's not glitch free, but doesn't often crash. Make sure you run a very modern distro, the current Ubuntu or Fedora versions pre-releases would probably be you best bet. I'm on Ubuntu Hardy myself.

/Get
Tiyuk Quellmalz
Registered User
Join date: 9 Jan 2007
Posts: 24
04-11-2008 09:25
I'm on Ubuntu Hardy 8.04, with a ThinkPad X61T... the Intel 965GM chipset with the X3100, like Get Takacs.

I found out heuristically that whatever GL natives are being used to render "Volume" objects are most likely implemented in software in Mesa/DRI for 965GM.

Enable the Debug menu (Ctl+Alt+Shift+D)
Now press Ctl+Alt+Shift+9

POOF! All rezzed prims are gone, but so is the lag. Characters, sky, water and land are NOT the issue - it's just that something related to drawing prims kills performance. I doubt it's texture fill rate, since I can get very good performance on Windows Vista with this chipset when I use the default "Low" detail settings detected, even with all the prims rendered.

I also tried the other way of eliminating prim lag, by setting all detail settings to lowest, and disabling flexible prims, trees, water, sky, etc. and *just* keeping plain old "Volume" textures (i.e., prims). Still exactly as much lag as if everything were enabled. So there's obviously a critical section implemented in software there. This is further illustrated by the fact that SL *pegs* one and a half of my cores while it's in the foreground. So the CPU is busy compensating for GL natives which are partially or completely implemented in software. Also, on my system, nametags and any other rendered text in the 3d world (excluding text in an image, and excluding text in UI elements) is garbled:
http://i56.photobucket.com/albums/g162/allquixotic/1bddde9d.png

I'm counting on the Intel guys who are implementing DRI2 and related changes, to bring us pointed performance improvements in 3d-rendered apps in general.

Names to google and proceed to bug about better GL natives for Intel cards:
Eric Anholt
Kristian Høgsberg
Brian Paul

Note: DRI2 + Gallium3d is the true future of open source direct rendering on Linux, but I figure that won't be ready for public consumption for at least a year. For the time being, DRI2 + Mesa (with specific modifications to Mesa to support DRI2) is as close to optimal as we have. It's just really unstable and barely works at all right now. However, development is progressing quickly. See Kristian's blog: http://hoegsberg.blogspot.com/2008/03/i-just-committed-last-bit-of-dri2-work.html

It sure would be nice to isolate the source of the performance problem, i.e. which exact GL native is causing the problem.

-Sean
Drake Bacon
Linux is Furry
Join date: 13 Jul 2005
Posts: 443
04-11-2008 14:34
You may also want to check Phoronix about Intel graphics news.

The NVidia integrated setups, I believe, are equal to low-end 6-series and 7-series cards, and just needs the usual NVidia binary driver.
_____________________
Drake Bacon/Drake Winger
Home: Custom AMD X2 (65nm) 5000+, 4 Gig RAM, Gentoo amd64, NVidia GeForce 8600GT PCIe
Mobile: Dell Inspiron E1505 (Core Duo 1.6GHz, 1 gig RAM, Gentoo x86, NVidia GeForce Go 7300 PCIe)
Backup: iMac (Core 2 Duo 2.4GHz, 4 gig RAM, ATI Radeon HD 2400, MacOS X Leopard)
Don't Ask: Asus EeePC 900A (Atom 1.6Ghz, 1 gig RAM, Intel graphics, Gentoo x86)
Get Takacs
Registered User
Join date: 1 Mar 2007
Posts: 23
04-14-2008 04:18
From: Tiyuk Quellmalz
I found out heuristically that whatever GL natives are being used to render "Volume" objects are most likely implemented in software in Mesa/DRI for 965GM.

Enable the Debug menu (Ctl+Alt+Shift+D)
Now press Ctl+Alt+Shift+9


That's pretty a pretty interesting observation /and/ menu. Thanks for pointing them out.

From: Tiyuk Quellmalz
It sure would be nice to isolate the source of the performance problem, i.e. which exact GL native is causing the problem.


So how do we go about doing this? Has DTrace been ported to Linux yet? Bugging people usually works better if you can point them at the problem with a bit more detail than "prims in SL 0wned your driver lolz!!111" :)

/Get
Tiyuk Quellmalz
Registered User
Join date: 9 Jan 2007
Posts: 24
04-22-2008 19:04
From: Get Takacs
That's pretty a pretty interesting observation /and/ menu. Thanks for pointing them out.

So how do we go about doing this? Has DTrace been ported to Linux yet? Bugging people usually works better if you can point them at the problem with a bit more detail than "prims in SL 0wned your driver lolz!!111" :)

/Get


You're right that the lack of detail wouldn't be very helpful. However, lately (read: today) I've had a very different experience with SL on Linux. It's been a long road, but the end result is very positive.

Here's a summary:

(1) I'm on x86_64 Ubuntu 8.04 RC with Intel 965GM chipset (X3100) integrated graphics.
(2) I am using Michelle2 Zenovka's x86_64 build of the latest SL Viewer, 1.19.1(4). The "why" of this is below.
(3) I am using the latest GIT (development) versions of Mesa-DRI, the DRM kernel modules, libdrm, xorg-xserver, and xf86-video-intel from freedesktop.org.
(4) The latest Mesa interface to the i965 chipset's DRI advertises OpenGL 2.1 support (See below glxinfo call; really cool stuff is bolded).
And now, the RESULTS...
(5) With medium detail (Basic Shaders off -- they cause a userspace (soft) crash of the program after about 10 seconds), with Vertex Buffer Objects on, I get 10 to 15 FPS in a very primmy area, over water, with several avatars standing around dancing.

Compare this to 0.1 FPS on lowest detail with the drivers shipped with Ubuntu 8.04! Wow!

The Mesa/DRI/DRM/Xorg team has been making a lot of progress of late, it seems, even without DRI2. The new work towards supporting OpenGL 2.1 with hardware, rather than software, is making SL a very enjoyable thing with the 965 chipset, even with Windlight!

The details of my trials and tribulations to get this running are listed below the glxinfo that I promised you.

me@computer:~$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_swap_control, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_swap_control,
GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) 965GM 20061102
OpenGL version string: 2.1 Mesa 7.1
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
GL_ARB_fragment_shader, 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_shader_objects,
GL_ARB_shading_language_100, GL_ARB_shading_language_120, GL_ARB_shadow,
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_crossbar,
GL_ARB_texture_env_dot3, 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_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_clip_volume_hint, GL_EXT_cull_vertex, GL_EXT_compiled_vertex_array,
GL_EXT_copy_texture, GL_EXT_draw_range_elements,
GL_EXT_framebuffer_object, GL_EXT_fog_coord, 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_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB,
GL_EXT_vertex_array, GL_3DFX_texture_compression_FXT1,
GL_APPLE_client_storage, GL_APPLE_packed_pixels,
GL_ATI_blend_equation_separate, GL_ATI_separate_stencil,
GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture,
GL_MESA_window_pos, GL_NV_blend_square, GL_NV_light_max_exponent,
GL_NV_point_sprite, GL_NV_texture_rectangle, GL_NV_texgen_reflection,
GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_OES_read_format,
GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
GL_SUN_multi_draw_arrays

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 8 0 24 8 0 0 0 0 0 0 None
0x22 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x55 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None

--- How I did it ---

-I built the latest git version of the DRM kernel modules, libdrm, the Xorg xserver itself, Mesa-DRI, and xf86-video-intel (the xserver Intel chipset DDX), all from the "master" branches of the respective repositories on freedesktop.org. These are not using DRI2 because the lack of DRI2 support in the xf86-video-intel "master" branch holds back the entire stack from using DRI2. This is probably for the better right now, since DRI2 support is still very experimental.

-I built libdrm for 32-bit as well, and installed it into /usr/lib32 (the rest go into /usr/lib, which is a symlink to /usr/lib64 on Ubuntu 8.04).

-Unfortunately, the 32-bit mesa depends on a 32-bit X11 development environment (for example, /usr/lib32/pkgconfig/x11.pc). Ubuntu's repositories only ship 32-bit binaries for X11 and the X server, as far as I can tell.

-Unfortunately again, trying to coerce the xorg-xserver SDK to build for 32-bit requires libx11 and a plethora of other modular libraries to be built for 32-bit and have the respective pkg-config entries.

-This would be very exhausting work to check out all the freedesktop.org lib* under the xorg project and build them for 32-bit. ;-)

-Instead, I simply downloaded and installed Michelle2 Zinovka's excellent build of the latest stable SL viewer as of this writing, 1.19.1(4). I am fine without voice support, and the additional open source components included (OpenAL and Gstreamer) are icing on the cake.

-During the install I had a hitch with a version mismatch between Hardy's version of libboost-regex, and the version expected by Michelle's package. To resolve this, I took the long way around and used the "equivs" program (hand-edited by me so it's not broken) to create a dummy package for the libboost-regex version desired, so my Debian package database would be in a consistent state.

-So now I have a consistent dpkg database, a running SL client that uses no proprietary software, a development version of the 3d stack that uses no proprietary software, and I get 10-15 FPS. And it's running as x86_64 code.


Very important info: You should be aware that each individual Mesa DRI driver has a differing level of support for the OpenGL spec. Brian Paul usually plows ahead with implementing a 100% software (rasterized) version of the OpenGL spec and advertises that "Mesa" supports that spec; however, in reality, most of the DRI drivers lag several OpenGL versions behind Brian's work.

At the current time, it appears that contributors from Tungsten Graphics, Red Hat and Intel are making the most progress on the Intel 965 DRI backend to Mesa. If you use another Intel chipset, such as the 945, it has its own set of bugs, limitations, and support for OpenGL, which I am uninformed on.

Of course, if you go with Nvidia for the solution to your original problem of choosing an integrated chipset, you'll have their binary drivers to fall back on.

But I'm just saying that the open source alternative has really shaped up for me.

-Tiyuk