From: Lucas C. V. <lv...@gm...> - 2009-02-17 02:23:22
|
Hi, it's me again. I was wondring, how can I enable GLSL my Intel i945 adapter? Using Ubuntu 8.04 with Mesa 7.0.3, the only shaders extensions I had were GL_ARB_fragment_program and GL_ARB_vertex_program, but no GL_ARB_fragment_shader or GL_ARB_vertex_shader. So I updated Ubuntu to 8.10 and Mesa 7.2 (what caused the problem I told in the other message) in hope to have it, but still got no GLSL support. Since Mesa have a GLSL compiler, and in i945 there is support to vertex and fragment programs (and they worked with Nvidia's CG shaders), why there is no support to GLSL? Is there a way to enable GLSL on i945? -- Lucas Clemente Vella lv...@gm... |
From: Philipp K. K. <pk...@sp...> - 2009-02-17 09:51:01
|
Lucas Clemente Vella schrieb: > Hi, it's me again. I was wondring, how can I enable GLSL my Intel i945 > adapter? Using Ubuntu 8.04 with Mesa 7.0.3, the only shaders extensions > I had were GL_ARB_fragment_program and GL_ARB_vertex_program, but no > GL_ARB_fragment_shader or GL_ARB_vertex_shader. So I updated Ubuntu to > 8.10 and Mesa 7.2 (what caused the problem I told in the other message) > in hope to have it, but still got no GLSL support. > > Since Mesa have a GLSL compiler, and in i945 there is support to vertex > and fragment programs (and they worked with Nvidia's CG shaders), why > there is no support to GLSL? Is there a way to enable GLSL on i945? You need a recent kernel, Mesa and libdrm. I currently use vanilla kernel 2.8.28 from kernel.org, libdrm-intel from Debian unstable and Mesa 7.3 (AFAIR from Debian unstable, too). Here's part of the glxinfo output: OpenGL vendor string: Tungsten Graphics, Inc OpenGL renderer string: Mesa DRI Intel(R) 965GM GEM 20090114 OpenGL version string: 2.1 Mesa 7.3 OpenGL shading language version string: 1.10 OpenGL extensions: GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, 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_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, Philipp |
From: Brian P. <br...@vm...> - 2009-02-17 14:12:28
|
Philipp Klaus Krause wrote: > Lucas Clemente Vella schrieb: >> Hi, it's me again. I was wondring, how can I enable GLSL my Intel i945 >> adapter? Using Ubuntu 8.04 with Mesa 7.0.3, the only shaders extensions >> I had were GL_ARB_fragment_program and GL_ARB_vertex_program, but no >> GL_ARB_fragment_shader or GL_ARB_vertex_shader. So I updated Ubuntu to >> 8.10 and Mesa 7.2 (what caused the problem I told in the other message) >> in hope to have it, but still got no GLSL support. >> >> Since Mesa have a GLSL compiler, and in i945 there is support to vertex >> and fragment programs (and they worked with Nvidia's CG shaders), why >> there is no support to GLSL? Is there a way to enable GLSL on i945? > > You need a recent kernel, Mesa and libdrm. > I currently use vanilla kernel 2.8.28 from kernel.org, libdrm-intel from > Debian unstable and Mesa 7.3 (AFAIR from Debian unstable, too). Here's > part of the glxinfo output: > > OpenGL vendor string: Tungsten Graphics, Inc > OpenGL renderer string: Mesa DRI Intel(R) 965GM GEM 20090114 > OpenGL version string: 2.1 Mesa 7.3 > OpenGL shading language version string: 1.10 > OpenGL extensions: > GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program, > GL_ARB_fragment_program_shadow, 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_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, You've got a 965 chipset but Lucas has 945. The 945 hardware does not support loops/conditionals/etc which are needed for fragment shaders. The best we could do is to switch between hardware and software rendering depending on what features the shaders use. In general, people don't like it when performance goes off a cliff when a software fallback is hit. That's why GLSL is not exposed on 945. -Brian |
From: Lucas C. V. <lv...@gm...> - 2009-02-17 14:24:17
|
Brian Paul escreveu: > You've got a 965 chipset but Lucas has 945. > > The 945 hardware does not support loops/conditionals/etc which are > needed for fragment shaders. The best we could do is to switch between > hardware and software rendering depending on what features the shaders use. > > In general, people don't like it when performance goes off a cliff when > a software fallback is hit. That's why GLSL is not exposed on 945. > > -Brian But if the CG compiler could generate the programs for it, then the GLSL should be able, too. I am not sure what magic it is done inside the CG compiler to handle 'if', but the vertex shader had one, and worked on i945. |
From: Brian P. <br...@vm...> - 2009-02-20 16:51:36
|
Lucas Clemente Vella wrote: > Brian Paul escreveu: >> You've got a 965 chipset but Lucas has 945. >> >> The 945 hardware does not support loops/conditionals/etc which are >> needed for fragment shaders. The best we could do is to switch between >> hardware and software rendering depending on what features the shaders use. >> >> In general, people don't like it when performance goes off a cliff when >> a software fallback is hit. That's why GLSL is not exposed on 945. >> >> -Brian > > But if the CG compiler could generate the programs for it, then the GLSL > should be able, too. > > I am not sure what magic it is done inside the CG compiler to handle > 'if', but the vertex shader had one, and worked on i945. > . if-statements can sometimes be converted into compare/selection statements. See the ARB_f_p CMP instruction, for example. Mesa's GLSL compiler doesn't do that transformation though. -Brian |