Last Comment Bug 774841 - fImageTargetTexture2D is not defined properly on maemo/meego/ubuntu-arm linux
: fImageTargetTexture2D is not defined properly on maemo/meego/ubuntu-arm linux
Status: RESOLVED FIXED
: regression
Product: Core
Classification: Components
Component: Graphics (show other bugs)
: Trunk
: ARM MeeGo
: -- normal (vote)
: mozilla17
Assigned To: Jeff Gilbert [:jgilbert]
:
Mentors:
Depends on:
Blocks: 750198 762259 774059
  Show dependency treegraph
 
Reported: 2012-07-17 13:24 PDT by Oleg Romashin (:romaxa)
Modified: 2012-08-31 06:51 PDT (History)
3 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
patch (1.53 KB, patch)
2012-07-18 13:16 PDT, Jeff Gilbert [:jgilbert]
bgirard: review+
Details | Diff | Review
fixed patch (1.17 KB, patch)
2012-07-18 13:33 PDT, Jeff Gilbert [:jgilbert]
jgilbert: review+
Details | Diff | Review
SetupLookup function before load GL symbols (799 bytes, patch)
2012-07-22 17:45 PDT, Oleg Romashin (:romaxa)
jgilbert: review+
Details | Diff | Review

Description Oleg Romashin (:romaxa) 2012-07-17 13:24:08 PDT
On harmattan N9 fennec just crashes on startup
~ $ /opt/fennec/lib/fennec-17.0a1/fennec
###################################### forms.js loaded
###################################### content loaded
Attempting load of libEGL.so
Can't find symbol 'EGLImageTargetTexture2DOES'
Can't find symbol 'GetTexImage'
Can't find symbol 'GetTexLevelParameteriv'
Segmentation fault (core dumped)


0x00000000 in ?? ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x415fd324 in fImageTargetTexture2D (this=0x4658f340, aSize=<value optimized out>)
    at gfx/gl/GLContext.h:3086
#2  mozilla::gl::TextureImageEGL::CreateBackingSurface (this=0x4658f340, aSize=<value optimized out>)
    at gfx/gl/GLContextProviderEGL.cpp:1528
#3  0x415fe0ec in Resize (this=0x4652dc00, aSize=..., aContentType=gfxASurface::CONTENT_COLOR, 
    aFlags=mozilla::gl::TextureImage::NoFlags) at gfx/gl/GLContextProviderEGL.cpp:1290
#4  TextureImageEGL (this=0x4652dc00, aSize=..., aContentType=gfxASurface::CONTENT_COLOR, 
    aFlags=mozilla::gl::TextureImage::NoFlags) at gfx/gl/GLContextProviderEGL.cpp:1016
#5  mozilla::gl::GLContextEGL::TileGenFunc (this=0x4652dc00, aSize=..., aContentType=gfxASurface::CONTENT_COLOR, 
    aFlags=mozilla::gl::TextureImage::NoFlags) at gfx/gl/GLContextProviderEGL.cpp:1628
#6  0x415f494c in mozilla::gl::TiledTextureImage::Resize (this=0x461645e0, aSize=<value optimized out>)
    at gfx/gl/GLContext.cpp:1242
#7  0x415f4dbc in mozilla::gl::TiledTextureImage::TiledTextureImage (this=0x461645e0, aGL=<value optimized out>, aSize=..., 
    aContentType=gfxASurface::CONTENT_COLOR, aFlags=mozilla::gl::TextureImage::NoFlags)
    at gfx/gl/GLContext.cpp:917
#8  0x415fc544 in mozilla::gl::GLContextEGL::CreateTextureImage (this=0x4652dc00, aSize=..., 
    aContentType=gfxASurface::CONTENT_COLOR, aWrapMode=<value optimized out>, aFlags=mozilla::gl::TextureImage::NoFlags)
    at gfx/gl/GLContextProviderEGL.cpp:1613
#9  0x415dd97c in CreateClampOrRepeatTextureImage (this=0x4614ea40, aContentType=<value optimized out>, 
    aFlags=<value optimized out>) at gfx/layers/opengl/ThebesLayerOGL.cpp:50
#10 mozilla::layers::BasicBufferOGL::BeginPaint (this=0x4614ea40, aContentType=<value optimized out>, aFlags=<value optimized out>)
    at gfx/layers/opengl/ThebesLayerOGL.cpp:555
#11 0x415dbcd8 in mozilla::layers::ThebesLayerOGL::RenderLayer (this=0x45f17180, aPreviousFrameBuffer=0, aOffset=...)
    at gfx/layers/opengl/ThebesLayerOGL.cpp:812
#12 0x415c9308 in mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerOGL> (aContainer=0x435252c0, 
    aPreviousFrameBuffer=<value optimized out>, aOffset=<value optimized out>, aManager=<value optimized out>)
    at gfx/layers/opengl/ContainerLayerOGL.cpp:220
#13 0x415d72e8 in mozilla::layers::LayerManagerOGL::Render (this=0x4624e4d0)
    at gfx/layers/opengl/LayerManagerOGL.cpp:787
#14 0x415d7f04 in mozilla::layers::LayerManagerOGL::EndTransaction (this=0x4624e4d0, aCallback=
    0x40420790 <mozilla::FrameLayerBuilder::DrawThebesLayer(mozilla::layers::ThebesLayer*, gfxContext*, nsIntRegion const&, nsIntRegion const&, void*)>, aCallbackData=0xaef55120, aFlags=<value optimized out>)
    at gfx/layers/opengl/LayerManagerOGL.cpp:414
#15 0x40467a74 in nsDisplayList::PaintForFrame (this=<value optimized out>, aBuilder=0xaef55120, aCtx=<value optimized out>, 
    aForFrame=0x44bed7e8, aFlags=0) at layout/base/nsDisplayList.cpp:646
#16 0x40467c58 in nsDisplayList::PaintRoot (this=0xde1, aBuilder=0x4614c880, aCtx=0x4652dc00, aFlags=<value optimized out>)
    at layout/base/nsDisplayList.cpp:551
#17 0x40487f4c in nsLayoutUtils::PaintFrame (aRenderingContext=<value optimized out>, aFrame=0x44bed7e8, 
---Type <return> to continue, or q <return> to quit---q
aDirtyRegion=<value optimizQuit
Comment 1 Oleg Romashin (:romaxa) 2012-07-17 13:25:13 PDT
yes it works fine with android drivers/libraries, but not with linux EGL version
Comment 2 Jeff Gilbert [:jgilbert] 2012-07-18 13:16:50 PDT
Created attachment 643547 [details] [diff] [review]
patch

We were checking the wrong extension here.
The correct extension is: GL_OES_EGL_image:
http://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt
Comment 3 Benoit Girard (:BenWa) 2012-07-18 13:28:46 PDT
Comment on attachment 643547 [details] [diff] [review]
patch

I'm ok with the ext change but NOT the ifdef stuff.

conditional r+ on that being removed.
Comment 4 Jeff Gilbert [:jgilbert] 2012-07-18 13:33:09 PDT
Created attachment 643559 [details] [diff] [review]
fixed patch

Oops, fixed and carried over r+.
Comment 6 Ed Morley [:emorley] 2012-07-19 07:33:20 PDT
https://hg.mozilla.org/mozilla-central/rev/260ccc75c211
Comment 7 Oleg Romashin (:romaxa) 2012-07-22 17:44:33 PDT
Ok, that fix did not solve the problem.
real problem in lookup function which never initialized in GL context and without that function we cannot load symbols on linux (don't know why it works on android)
Comment 8 Oleg Romashin (:romaxa) 2012-07-22 17:45:16 PDT
Created attachment 644807 [details] [diff] [review]
SetupLookup function before load GL symbols
Comment 9 Jeff Gilbert [:jgilbert] 2012-07-23 13:08:23 PDT
Comment on attachment 644807 [details] [diff] [review]
SetupLookup function before load GL symbols

Review of attachment 644807 [details] [diff] [review]:
-----------------------------------------------------------------

Interesting. Yes, this is indeed the case. We do this on WGL, GLX, and even OSMesa, but not EGL.
GLLibraryLoader::LookupSymbol is designed to try to work even in the absence of mLookupFunction, but it's not as likely to.
Comment 11 Ed Morley [:emorley] 2012-07-24 02:59:40 PDT
https://hg.mozilla.org/mozilla-central/rev/b8196337a85e

Note You need to log in before you can comment on or make changes to this bug.