fImageTargetTexture2D is not defined properly on maemo/meego/ubuntu-arm linux

RESOLVED FIXED in mozilla17

Status

()

Core
Graphics
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: romaxa, Assigned: jgilbert)

Tracking

({regression})

Trunk
mozilla17
ARM
MeeGo
regression
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments, 1 obsolete attachment)

(Reporter)

Description

5 years ago
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
(Reporter)

Comment 1

5 years ago
yes it works fine with android drivers/libraries, but not with linux EGL version
(Assignee)

Comment 2

5 years ago
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
Assignee: nobody → jgilbert
Status: NEW → ASSIGNED
Attachment #643547 - Flags: review?(bgirard)
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.
Attachment #643547 - Flags: review?(bgirard) → review+
(Assignee)

Comment 4

5 years ago
Created attachment 643559 [details] [diff] [review]
fixed patch

Oops, fixed and carried over r+.
Attachment #643547 - Attachment is obsolete: true
Attachment #643559 - Flags: review+
(Assignee)

Updated

5 years ago
Blocks: 774059
(Assignee)

Comment 5

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/260ccc75c211
Target Milestone: --- → mozilla17

Comment 6

5 years ago
https://hg.mozilla.org/mozilla-central/rev/260ccc75c211
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
(Reporter)

Comment 7

5 years ago
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)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
(Reporter)

Comment 8

5 years ago
Created attachment 644807 [details] [diff] [review]
SetupLookup function before load GL symbols
Attachment #644807 - Flags: review?(jgilbert)
(Assignee)

Comment 9

5 years ago
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.
Attachment #644807 - Flags: review?(jgilbert) → review+
(Reporter)

Updated

5 years ago
Keywords: checkin-needed
(Assignee)

Comment 10

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/b8196337a85e
Status: REOPENED → ASSIGNED
(Assignee)

Updated

5 years ago
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/b8196337a85e
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago5 years ago
Resolution: --- → FIXED

Updated

5 years ago
Blocks: 750198
You need to log in before you can comment on or make changes to this bug.