Bug 6083 - Vivante GPU doesn't work with X11
Summary: Vivante GPU doesn't work with X11
Status: VERIFIED FIXED
Alias: None
Product: BSPs
Classification: Build System, Metadata & Runtime
Component: bsps-meta-fsl-arm (show other bugs)
Version: 1.6
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 1.6
Assignee: Otavio Salvador
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2014-03-31 23:26 UTC by Gary Thomas
Modified: 2014-07-21 12:33 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments
X server log showing problems with Vivante GPU libraries (17.77 KB, text/x-log)
2014-03-31 23:26 UTC, Gary Thomas
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gary Thomas 2014-03-31 23:26:36 UTC
Created attachment 1879 [details]
X server log showing problems with Vivante GPU libraries

Build configuration:
BB_VERSION        = "1.21.1"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-13.10"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "nitrogen6x"
DISTRO            = "poky"
DISTRO_VERSION    = "1.5+snapshot-20140331"
TUNE_FEATURES     = "armv7a vfp neon callconvention-hard cortexa9"
TARGET_FPU        = "vfp-neon"
meta              = "master:5f05bdda0bf3f9fadf287a0632c2fa697380273f"
meta-fsl-arm      = "master:1b571a2f7b3b7ea42d6b4e1a1e85f20a5b7a1ba4"
meta-fsl-arm-extra = "master:30736bf64b3b010a73209abfa3371de5083d5c71"

The X11 server happy reports that it is using the Vivante libraries,
but I think there are problems.  In particular, I see this message
in the log (complete log attached):
[ 53044.383] (EE) AIGLX error: vivante exports no extensions (/usr/lib/dri/vivante_dri.so: undefined symbol: __driDriverExtensions)
[ 53044.383] (EE) AIGLX: reverting to software rendering

Then there are these messages which don't make much sense:
[ 53044.493] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 53044.495] (II) VIVANTE(0): Setting screen physical size to 211 x 127
(my physical screen is 800x480)

Finally, when I run Google chrome, I get a slew of EGL related errors:
[2136:2136:0327/105115:ERROR:gl_surface_glx.cc(742)] glXChooseFBConfig failed.
[2136:2136:0327/105115:ERROR:gpu_info_collector.cc(27)] gfx::GLContext::CreateOffscreenGLSurface failed
[2113:2131:0327/105117:ERROR:browser_process_resource_provider.cc(52)] Not implemented reached in task_manager::BrowserProcessResource::BrowserProcessResource()
[     1] libGAL: Performing a software resolve!
[2136:2136:0327/105117:ERROR:buffer_manager.cc(313)] [.Compositor-0x3b7c34f8]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error from previous GL command
[2203:2203:0327/105117:ERROR:gl_surface_glx.cc(742)] glXChooseFBConfig failed.
[2203:2203:0327/105117:ERROR:gpu_info_collector.cc(27)] gfx::GLContext::CreateOffscreenGLSurface failed
[     1] libGAL: Performing a software resolve!
[2203:2203:0327/105117:ERROR:buffer_manager.cc(313)] [.Compositor-0x39e5a998]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error from previous GL command
[2214:2214:0327/105117:ERROR:gl_surface_glx.cc(742)] glXChooseFBConfig failed.
[2214:2214:0327/105117:ERROR:gpu_info_collector.cc(27)] gfx::GLContext::CreateOffscreenGLSurface failed
[     1] libGAL: Performing a software resolve!
[2214:2214:0327/105118:ERROR:buffer_manager.cc(313)] [.Compositor-0x3b835a30]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error from previous GL command

and the chrome://gpu/ page indicates that hardware acceleration
is *not* available.
Comment 1 Diego 2014-04-02 09:19:30 UTC
Hi Gary.

I'm not an expert, but I think a clear distinction needs to be made for GLX and EGL.
GLX is OpenGL only (NOT OpenGL ES):
http://en.wikipedia.org/wiki/GLX
and while Vivante does on paper support OpenGL:
http://www.vivantecorp.com/index.php/en/technology/3d.html
it is not actually supported by headers (and probably will never be), see bug #5098.

(In reply to comment #0)
> 
> The X11 server happy reports that it is using the Vivante libraries,
> but I think there are problems.  In particular, I see this message
> in the log (complete log attached):
> [ 53044.383] (EE) AIGLX error: vivante exports no extensions
> (/usr/lib/dri/vivante_dri.so: undefined symbol: __driDriverExtensions)
> [ 53044.383] (EE) AIGLX: reverting to software rendering

This is normal, as AIGLX relies on GLX so in turn on OpenGL:
http://en.wikipedia.org/wiki/AIGLX

> 
> Then there are these messages which don't make much sense:
> [ 53044.493] (II) GLX: Initialized DRISWRAST GL provider for screen 0

This talks about GLX and "SWRAST GL" which probably means "OpenGL software rasterizer", which make sense, as Vivante does not officially support GLX / OpenGL.

> [ 53044.495] (II) VIVANTE(0): Setting screen physical size to 211 x 127
> (my physical screen is 800x480)

Don't know why, but nothing GLX / OpenGL related here.

> 
> Finally, when I run Google chrome, I get a slew of EGL related errors:
> [2136:2136:0327/105115:ERROR:gl_surface_glx.cc(742)] glXChooseFBConfig
> failed.
> [2136:2136:0327/105115:ERROR:gpu_info_collector.cc(27)]
> gfx::GLContext::CreateOffscreenGLSurface failed
> [2113:2131:0327/105117:ERROR:browser_process_resource_provider.cc(52)] Not
> implemented reached in
> task_manager::BrowserProcessResource::BrowserProcessResource()
> [     1] libGAL: Performing a software resolve!
> [2136:2136:0327/105117:ERROR:buffer_manager.cc(313)]
> [.Compositor-0x3b7c34f8]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error
> from previous GL command
> [2203:2203:0327/105117:ERROR:gl_surface_glx.cc(742)] glXChooseFBConfig
> failed.
> [2203:2203:0327/105117:ERROR:gpu_info_collector.cc(27)]
> gfx::GLContext::CreateOffscreenGLSurface failed
> [     1] libGAL: Performing a software resolve!
> [2203:2203:0327/105117:ERROR:buffer_manager.cc(313)]
> [.Compositor-0x39e5a998]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error
> from previous GL command
> [2214:2214:0327/105117:ERROR:gl_surface_glx.cc(742)] glXChooseFBConfig
> failed.
> [2214:2214:0327/105117:ERROR:gpu_info_collector.cc(27)]
> gfx::GLContext::CreateOffscreenGLSurface failed
> [     1] libGAL: Performing a software resolve!
> [2214:2214:0327/105118:ERROR:buffer_manager.cc(313)]
> [.Compositor-0x3b835a30]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error
> from previous GL command
> 

I see lots of GLX calls, but no EGL call. As per above the it all makes sense considering GLX / OpenGL are not supported (at least not officially).

> and the chrome://gpu/ page indicates that hardware acceleration
> is *not* available.

I think that would only work in case Chromium supported EGL calls / OpenGL ES acceleration. I think that support will probably come now that Chromium devs are targetting Wayland support.
Comment 2 Diego 2014-04-02 09:26:23 UTC
Regarding Chromium it looks like it has already some support for EGL:
http://code.google.com/p/chromium/issues/detail?id=90464

However, that is not related to tha main topic of this bug.

Gary, did you try to build glmark2 and run glmark2-es2?
Comment 3 Otavio Salvador 2014-05-22 19:07:44 UTC
Dora works fine in X11.
Comment 4 Stoicescu Cornel 2014-07-21 12:15:46 UTC
Hello Gary, can you please set this to VERIFIED if it's working now?

Thank you!
Comment 5 Otavio Salvador 2014-07-21 12:33:00 UTC
This is very old and we've been using X11 for a while. Closing it.