Bug 95713 - [Cairo] [TextureMapper] Assertion failure in TextureMapperGL
Summary: [Cairo] [TextureMapper] Assertion failure in TextureMapperGL
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: 523.x (Safari 3)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Martin Robinson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-03 23:17 PDT by Martin Robinson
Modified: 2012-09-04 06:33 PDT (History)
3 users (show)

See Also:


Attachments
Patch (1.88 KB, patch)
2012-09-03 23:25 PDT, Martin Robinson
no flags Details | Formatted Diff | Diff
Patch with that returns the current GLX/EGLContext instead of the GLContext (1.90 KB, patch)
2012-09-03 23:29 PDT, Martin Robinson
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Robinson 2012-09-03 23:17:39 PDT
Since the platformContext() method of GraphicsContext3D always returns null when using the "use current context" rendering style, we end up inserting texture mapper data into the wrong hash entry and causing an assertion failure.

#0  0x00007ffff60bc370 in WTF::HashTable<void*, WTF::KeyValuePair<void*, WebCore::TextureMapperGLData::SharedGLData*>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void*, WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<void*>, WTF::HashMapValueTraits<WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::HashTraits<void*> >::checkKey<WTF::HashMapTranslator<WTF::HashMapValueTraits<WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<void*> >, void*> (this=0x7ffff7dd6fc0, key=@0x7fffffffc960: 0x0) at ../../Source/WTF/wtf/HashTable.h:588
#1  0x00007ffff60bb7c9 in WTF::HashTable<void*, WTF::KeyValuePair<void*, WebCore::TextureMapperGLData::SharedGLData*>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void*, WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<void*>, WTF::HashMapValueTraits<WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::HashTraits<void*> >::add<WTF::HashMapTranslator<WTF::HashMapValueTraits<WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<void*> >, void*, WebCore::TextureMapperGLData::SharedGLData*> (this=0x7ffff7dd6fc0, key=@0x7fffffffc960: 0x0, extra=@0x7fffffffc968: 0xc6f7b0) at ../../Source/WTF/wtf/HashTable.h:811
#2  0x00007ffff60bae10 in WTF::HashMap<void*, WebCore::TextureMapperGLData::SharedGLData*, WTF::PtrHash<void*>, WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >::inlineAdd (this=0x7ffff7dd6fc0, key=@0x7fffffffc960: 0x0, mapped=@0x7fffffffc968: 0xc6f7b0) at ../../Source/WTF/wtf/HashMap.h:334
#3  0x00007ffff60b9dd4 in WTF::HashMap<void*, WebCore::TextureMapperGLData::SharedGLData*, WTF::PtrHash<void*>, WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >::add (this=0x7ffff7dd6fc0, key=@0x7fffffffc960: 0x0, mapped=@0x7fffffffc968: 0xc6f7b0) at ../../Source/WTF/wtf/HashMap.h:361
#4  0x00007ffff60b958b in WebCore::TextureMapperGLData::SharedGLData::SharedGLData (this=0xc6f7b0, context=0x10081a0) at ../../Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:85
#5  0x00007ffff60b94e4 in WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData (context=0x10081a0) at ../../Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:75
#6  0x00007ffff60b987c in WebCore::TextureMapperGLData::TextureMapperGLData (this=0xd7d9f0, context=0x10081a0) at ../../Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:117
#7  0x00007ffff60b4643 in WebCore::TextureMapperGL::TextureMapperGL (this=0x94d540) at ../../Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:204
#8  0x00007ffff52ed3a7 in WebCore::TextureMapperGL::create () at ../../Source/WebCore/platform/graphics/texmap/TextureMapperGL.h:40
#9  0x00007ffff52ebcd0 in WebKit::AcceleratedCompositingContext::initialize (this=0x5cccd0) at ../../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp:101
#10 0x00007ffff52ec50b in WebKit::AcceleratedCompositingContext::setRootCompositingLayer (this=0x5cccd0, graphicsLayer=0xedd200) at ../../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp:247
0#11 0x00007ffff52f1868 in WebKit::ChromeClient::attachRootGraphicsLayer (this=0x588000, frame=0x5b4000, rootLayer=0xedd200) at ../../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:998
#12 0x00007ffff5eed181 in WebCore::RenderLayerCompositor::attachRootLayer (this=0x9ba400, attachment=WebCore::RenderLayerCompositor::RootLayerAttachedViaChromeClient) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:2293
#13 0x00007ffff5eecbd7 in WebCore::RenderLayerCompositor::ensureRootLayer (this=0x9ba400) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:2233
#14 0x00007ffff5ee5ec1 in WebCore::RenderLayerCompositor::enableCompositingMode (this=0x9ba400, enable=true) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:212
#15 0x00007ffff5ee6e9e in WebCore::RenderLayerCompositor::updateBacking (this=0x9ba400, layer=0x1485448, shouldRepaint=WebCore::RenderLayerCompositor::CompositingChangeRepaintNow) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:488
#16 0x00007ffff5ee71e5 in WebCore::RenderLayerCompositor::updateLayerCompositingState (this=0x9ba400, layer=0x1485448, shouldRepaint=WebCore::RenderLayerCompositor::CompositingChangeRepaintNow) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:557
#17 0x00007ffff5ed49ee in WebCore::RenderLayer::styleChanged (this=0x1485448, oldStyle=0x0) at ../../Source/WebCore/rendering/RenderLayer.cpp:4989
#18 0x00007ffff5e5fafa in WebCore::RenderBoxModelObject::styleDidChange (this=0x1484fe8, diff=WebCore::StyleDifferenceEqual, oldStyle=0x0) at ../../Source/WebCore/rendering/RenderBoxModelObject.cpp:465
#19 0x00007ffff5e41791 in WebCore::RenderBox::styleDidChange (this=0x1484fe8, diff=WebCore::StyleDifferenceEqual, oldStyle=0x0) at ../../Source/WebCore/rendering/RenderBox.cpp:209
#20 0x00007ffff5ddbdae in WebCore::RenderBlock::styleDidChange (this=0x1484fe8, diff=WebCore::StyleDifferenceEqual, oldStyle=0x0) at ../../Source/WebCore/rendering/RenderBlock.cpp:328
#21 0x00007ffff5f1a5ac in WebCore::RenderObject::setStyle (this=0x1484fe8, style=...) at ../../Source/WebCore/rendering/RenderObject.cpp:1775
#22 0x00007ffff5f19ec0 in WebCore::RenderObject::setAnimatableStyle (this=0x1484fe8, style=...) at ../../Source/WebCore/rendering/RenderObject.cpp:1676
#23 0x00007ffff577ca2b in WebCore::NodeRendererFactory::createRenderer (this=0x7fffffffd2c0) at ../../Source/WebCore/dom/NodeRenderingContext.cpp:219
#24 0x00007ffff577ccd5 in WebCore::NodeRendererFactory::createRendererIfNeeded (this=0x7fffffffd2c0) at ../../Source/WebCore/dom/NodeRenderingContext.cpp:252
#25 0x00007ffff5769aa3 in WebCore::Node::createRendererIfNeeded (this=0x157fa70) at ../../Source/WebCore/dom/Node.cpp:1388
#26 0x00007ffff572373d in WebCore::Element::attach (this=0x157fa70) at ../../Source/WebCore/dom/Element.cpp:980
#27 0x00007ffff5983d8c in WebCore::executeTask (task=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:89
#28 0x00007ffff5983fd1 in WebCore::HTMLConstructionSite::executeQueuedTasks (this=0x1b1d888) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:129
#29 0x00007ffff59a803f in WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken (this=0x1b1d860, token=0x157fc00) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:399
#30 0x00007ffff59a7e5d in WebCore::HTMLTreeBuilder::constructTreeFromToken (this=0x1b1d860, rawToken=...) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:370
#31 0x00007ffff5989914 in WebCore::HTMLDocumentParser::pumpTokenizer (this=0xbd7f70, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:269
#32 0x00007ffff59893e8 in WebCore::HTMLDocumentParser::resumeParsingAfterYield (this=0xbd7f70) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:190
#33 0x00007ffff59967dd in WebCore::HTMLParserScheduler::continueNextChunkTimerFired (this=0xccf630, timer=0xccf648) at ../../Source/WebCore/html/parser/HTMLParserScheduler.cpp:87
#34 0x00007ffff5996c5a in WebCore::Timer<WebCore::HTMLParserScheduler>::fired (this=0xccf648) at ../../Source/WebCore/platform/Timer.h:100
#35 0x00007ffff5d8345d in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x5ca580) at ../../Source/WebCore/platform/ThreadTimers.cpp:115
#36 0x00007ffff5d8338b in WebCore::ThreadTimers::sharedTimerFired () at ../../Source/WebCore/platform/ThreadTimers.cpp:93
#37 0x00007ffff64a2b6a in WebCore::timeout_cb () at ../../Source/WebCore/platform/gtk/SharedTimerGtk.cpp:49
#38 0x00007ffff47d3755 in g_timeout_dispatch (source=0xbf0660, callback=0x7ffff64a2b49 <WebCore::timeout_cb(gpointer)>, user_data=0x0) at gmain.c:4026
#39 0x00007ffff47d1ad7 in g_main_dispatch (context=0x450f70) at gmain.c:2715
#40 0x00007ffff47d266d in g_main_context_dispatch (context=0x450f70) at gmain.c:3219
#41 0x00007ffff47d2850 in g_main_context_iterate (context=0x450f70, block=1, dispatch=1, self=0x48c4f0) at gmain.c:3290
#42 0x00007ffff47d2c79 in g_main_loop_run (loop=0x7347e0) at gmain.c:3484
#43 0x00007ffff4c0ef6d in gtk_main () at gtkmain.c:1162
#44 0x000000000040546d in main (argc=1, argv=0x7fffffffd928) at ../../Tools/GtkLauncher/main.c:534
Comment 1 Martin Robinson 2012-09-03 23:22:04 PDT
Here's the actual assertion failure:

ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
../../Source/WTF/wtf/HashTable.h(588) : void WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::checkKey(const T&) [with HashTranslator = WTF::HashMapTranslator<WTF::HashMapValueTraits<WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<void*> >, T = void*, Key = void*, Value = WTF::KeyValuePair<void*, WebCore::TextureMapperGLData::SharedGLData*>, Extractor = WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void*, WebCore::TextureMapperGLData::SharedGLData*> >, HashFunctions = WTF::PtrHash<void*>, Traits = WTF::HashMapValueTraits<WTF::HashTraits<void*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, KeyTraits = WTF::HashTraits<void*>]
Comment 2 Martin Robinson 2012-09-03 23:25:32 PDT
Created attachment 161971 [details]
Patch
Comment 3 Martin Robinson 2012-09-03 23:29:51 PDT
Created attachment 161972 [details]
Patch with that returns the current GLX/EGLContext instead of the GLContext
Comment 4 WebKit Review Bot 2012-09-04 06:33:47 PDT
Comment on attachment 161972 [details]
Patch with that returns the current GLX/EGLContext instead of the GLContext

Clearing flags on attachment: 161972

Committed r127465: <http://trac.webkit.org/changeset/127465>
Comment 5 WebKit Review Bot 2012-09-04 06:33:50 PDT
All reviewed patches have been landed.  Closing bug.