Go Back   nV News Forums > Linux Support Forums > NVIDIA Linux

Newegg Daily Deals

Reply
 
Thread Tools
Old 12-25-10, 06:39 PM   #1
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Nvidia Driver team will oversleep Web GPU acceleration?

This is not Nvidia's problem but just Chromium 10.0.616.0 which sucks this way:


When visiting HTML5 web page with Google Chromium 10.0.616.0 on PC with you will see message on console:
Code:
[25964:25964:53200619961:ERROR:
base/native_library_linux.cc(32)] dlopen failed when
trying to open libGLESv2.so: libGLESv2.so: cannot open
shared object file: No such file or directory
saying that OpenGL ES 2.0 library is not present.

It means only that dumb Chromium looks for libGLESv2.so on desktops system instead using libGL.


Firefox 4.0.b8 after toggling webgl.enabled_for_all_sites to true works great. Which is a proof that Chromium 10.0.616.0 is buggy

Last edited by zbiggy; 12-28-10 at 05:58 PM. Reason: This is not Nvidia's problem but just Chromium which sukcs!
zbiggy is offline   Reply With Quote
Old 12-25-10, 07:48 PM   #2
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

It looks mesa-lib compiled with these options:
Code:
--enable-gles-overlay --with-state-trackers=egl,es,vega --enable-gallium-swrast
will provide missing OpenGL ES libraries:
Code:
/usr/lib/libGLESv1_CM.so
/usr/lib/libGLESv1_CM.so.1
/usr/lib/libGLESv1_CM.so.1.1.0
/usr/lib/libGLESv2.so
/usr/lib/libGLESv2.so.2
/usr/lib/libGLESv2.so.2.0.0
using software emulation. If you will have luck and use egl_glx driver/translator Nvidia will do some hw GLX acceleration as much as EGL to GLX is possible to be translated.

Unfortunately for Chromium 10.0.616.0 this cheat is not enough and it will crash at GPU acceleration code:
Code:
/usr/lib/chromium/chrome --type=gpu-process
--channel=25734.0xb222a50.801587199:
symbol lookup error: /usr/lib/egl/egl_x11_swrast.so:
undefined symbol: _eglInitDriverFallbacks
Hmm it looks egl_glx driver is not in use. Will check this later why...
zbiggy is offline   Reply With Quote
Old 12-25-10, 09:06 PM   #3
Deanjo
Registered User
 
Join Date: Aug 2004
Posts: 301
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Forgive me if I'm wrong but I do believe nvidia already supports openGL ES 2.0 through the openGL 4.1 spec.

Edit:Actually confirmed this, setup a symlink for libGLESv2.so to the nvidia libGL library and enjoy.
Deanjo is offline   Reply With Quote
Old 12-26-10, 05:09 AM   #4
KDE
Registered User
 
Join Date: Nov 2007
Posts: 50
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

libGLESv2.so isn't necessary. Chrome is using libGL.so without symlink by gpu-process.
KDE is offline   Reply With Quote
Old 12-26-10, 05:52 AM   #5
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Quote:
Originally Posted by Deanjo View Post
Forgive me if I'm wrong but I do believe nvidia already supports openGL ES 2.0 through the openGL 4.1 spec.

Edit:Actually confirmed this, setup a symlink for libGLESv2.so to the nvidia libGL library and enjoy.
I recompiled mesa-lib without OpenGL ES and have done symlink to Nvidia's GL library:
/usr/lib/libGLESv2.so -> libGL.so.260.19.29

then ended up with this error on chromium:
Code:
libEGL warning: Could not open driver /usr/lib/egl/egl_glx (/usr/lib/egl/egl_glx: cannot open shared object file: No such file or directory)
libEGL warning: The driver can be overridden by setting EGL_DRIVER
/usr/lib/chromium/chrome --type=gpu-process --channel=11886.0xaf1fc60.895158881: symbol lookup error: /usr/lib/egl/egl_glx.so: undefined symbol: _eglInitDriverFallbacks
To do the tests I visit: http://html5test.com and wait till it finishes testing.
zbiggy is offline   Reply With Quote
Old 12-26-10, 05:53 AM   #6
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Quote:
Originally Posted by KDE View Post
libGLESv2.so isn't necessary. Chrome is using libGL.so without symlink by gpu-process.
How to compile chrome(inium) to use libGL instead of libGLESv2?
zbiggy is offline   Reply With Quote
Old 12-26-10, 06:13 AM   #7
KDE
Registered User
 
Join Date: Nov 2007
Posts: 50
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Chrome should open libGL if libGLESv2 isn't present.
Chrome has options for GPU acceleration which are probably disabled by default, which depend on version of Chrome
command line: --enable-webgl, --enable-accelerated-compositing --enable-accelerated-2d-canvas
about:flags: GPU Accelerated Compositing, GPU Accelerated Canvas 2D
KDE is offline   Reply With Quote
Old 12-26-10, 07:14 AM   #8
Deanjo
Registered User
 
Join Date: Aug 2004
Posts: 301
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Quote:
Originally Posted by zbiggy View Post
I recompiled mesa-lib without OpenGL ES and have done symlink to Nvidia's GL library:
/usr/lib/libGLESv2.so -> libGL.so.260.19.29

then ended up with this error on chromium:
Code:
libEGL warning: Could not open driver /usr/lib/egl/egl_glx (/usr/lib/egl/egl_glx: cannot open shared object file: No such file or directory)
libEGL warning: The driver can be overridden by setting EGL_DRIVER
/usr/lib/chromium/chrome --type=gpu-process --channel=11886.0xaf1fc60.895158881: symbol lookup error: /usr/lib/egl/egl_glx.so: undefined symbol: _eglInitDriverFallbacks
To do the tests I visit: http://html5test.com and wait till it finishes testing.
Does your card support OGL 4.1?
Deanjo is offline   Reply With Quote

Old 12-26-10, 07:32 AM   #9
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Code:
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 8200/PCI/SSE2/3DNOW!
OpenGL version string: 3.3.0 NVIDIA 260.19.29
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
It looks it is 3.3.0.

Google chrome 8.0.552.224 does not display GL errors but it may be less advanced than chrominium I have: 10.0.616.0.

To have OpenGL 4.1 I should update to Geforce 430? Will it be enough?
zbiggy is offline   Reply With Quote
Old 12-26-10, 01:12 PM   #10
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

It looks chromium tries to open libGLESv2.so only when visiting WebGL web pages like this one: http://www.chromeexperiments.com/webgl (chromium crashes looking for libGLESv2.so when "Launch experiment" button is clicked). The WebGL is OpenGLES 2.0.
The question is who failed: Google for not providing wrapper in chromium to OpenGL on desktops or Nvidia for not providing OpenGL ES 2.0 library on Linux. Or me having Geforce 8200 with support for OpenGL 3.3 only.

Same problem in Gentoo:
http://bugs.gentoo.org/show_bug.cgi?id=348841

Can someone having Geforce with OpenGL 4.1 can confirm that symlinking libGLESv2.so to Nvidia's libGL.so makes chromium correctly display WebGL?

Chromium should not crash when libGLESv2.so is not present.
zbiggy is offline   Reply With Quote
Old 12-26-10, 01:19 PM   #11
Dragoran
Registered User
 
Join Date: May 2004
Posts: 711
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

Quote:
Originally Posted by zbiggy View Post
It looks chromium tries to open libGLESv2.so only when visiting WebGL web pages like this one: http://www.chromeexperiments.com/webgl (chromium crashes looking for libGLESv2.so when "Launch experiment" button is clicked). The WebGL is OpenGLES 2.0.
The question is who failed: Google for not providing wrapper in chromium to OpenGL on desktops or Nvidia for not providing OpenGL ES 2.0 library on Linux. Or me having Geforce 8200 with support for OpenGL 3.3 only.

Same problem in Gentoo:
http://bugs.gentoo.org/show_bug.cgi?id=348841

Can someone having Geforce with OpenGL 4.1 can confirm that symlinking libGLESv2.so to Nvidia's libGL.so makes chromium correctly display WebGL?

Chromium should not crash when libGLESv2.so is not present.
Quote:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 285/PCI/SSE2
OpenGL version string: 3.3.0 NVIDIA 260.19.29
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
Have not set any symlinks or any other magic and it "just works" (tm).

Code:
rpm -q chromium
chromium-9.0.600.0-2.fc14.x86_64
Dragoran is offline   Reply With Quote
Old 12-26-10, 01:36 PM   #12
zbiggy
Registered User
 
Join Date: Sep 2002
Posts: 623
Default Re: Nvidia Driver team will oversleep Web GPU acceleration?

OK. I know why WebGL in chromium is crashing on Nvidia hardware. This is the way chromium try to activate OpenGL:
1) try libEGL / libGLESv2 (if not present display error and crash)
2) try libGL
3) try libosmesa
Because chromium crashes after 1st try there is no chance to use Nvidia's libGL.

Here is workaround which works for me:
Code:
chromium --use-gl=desktop --enable-webgl
chromium run this way does not crash on WebGL content but displays this warning:
Code:
[2323:2323:33120768985:ERROR:app/gfx/gl/gl_context_linux.cc(539)] glXChooseFBConfig failed.
When trying to run experiment on http://www.chromeexperiments.com/webgl
here comes flood of missing GL functions:
Code:
[2323:2323:33631991252:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetProgramiv: unknown program
[2323:2323:33631991390:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetActiveAttrib: unknown program
[2323:2323:33631991485:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetAttribLocation: unknown program
[2323:2323:33631991631:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetProgramiv: unknown program
[2323:2323:33631991771:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetActiveAttrib: unknown program
[2323:2323:33631991866:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetAttribLocation: unknown program
[2323:2323:33631992040:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetProgramiv: unknown program
Here are GL errors when chromium is run with GPU acceleration of several things:
Code:
chromium --use-gl=desktop --enable-accelerated-2d-canvas --enable-accelerated-compositing
Errors on console:
Code:
[2462:2462:34027764084:ERROR:app/gfx/gl/gl_context_linux.cc(539)] glXChooseFBConfig failed.
[2462:2462:34027801765:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glShaderSource: unknown shader
[2462:2462:34027801790:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glCompileShader: unknown shader
[2462:2462:34027801831:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetShaderiv: unknown shader
[2462:2462:34027801948:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glShaderSource: unknown shader
[2462:2462:34027801957:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glCompileShader: unknown shader
[2462:2462:34027801995:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetShaderiv: unknown shader
[2462:2462:34027802113:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glAttachShader: unknown program
[2462:2462:34027802122:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glAttachShader: unknown program
[2462:2462:34027802131:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glLinkProgram: unknown program
[2462:2462:34027802170:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetProgramiv: unknown program
[2462:2462:34027802284:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glDeleteShader: unknown shader
[2462:2462:34027802293:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glDeleteShader: unknown shader
[2462:2462:34027802303:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glUniformLocation: unknown program
[2462:2462:34027802387:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glUniformLocation: unknown program
[2462:2462:34027802473:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetAttribLocation: unknown program
[2462:2462:34027802563:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glShaderSource: unknown shader
[2462:2462:34027802572:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glCompileShader: unknown shader
[2462:2462:34027802610:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetShaderiv: unknown shader
[2462:2462:34027802727:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glShaderSource: unknown shader
[2462:2462:34027802736:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glCompileShader: unknown shader
[2462:2462:34027802776:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetShaderiv: unknown shader
[2462:2462:34027802880:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glAttachShader: unknown program
[2462:2462:34027802889:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glAttachShader: unknown program
[2462:2462:34027802896:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glLinkProgram: unknown program
[2462:2462:34027802937:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetProgramiv: unknown program
[2462:2462:34027803044:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glDeleteShader: unknown shader
[2462:2462:34027803052:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glDeleteShader: unknown shader
[2462:2462:34027803063:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glUniformLocation: unknown program
[2462:2462:34027803140:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glUniformLocation: unknown program
[2462:2462:34027803235:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glUniformLocation: unknown program
[2462:2462:34027803315:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glGetAttribLocation: unknown program
[2462:2462:34027803393:ERROR:gpu/command_buffer/service/gles2_cmd_decoder.cc(3869)] glUniformLocation: unknown program
[2462:2462:34028621510:ERROR:app/gfx/gl/gl_context_linux.cc(539)] glXChooseFBConfig failed.
zbiggy is offline   Reply With Quote
Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 09:53 PM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.