Closed Bug 989375 Opened 10 years ago Closed 10 years ago

[1.4] FishIEtank benchmark not functional (regression)

Categories

(Core :: Graphics, defect, P1)

ARM
Gonk (Firefox OS)
defect

Tracking

()

RESOLVED FIXED
mozilla31
blocking-b2g 1.4+
Tracking Status
firefox29 --- wontfix
firefox30 --- fixed
firefox31 --- fixed
b2g-v1.4 --- fixed
b2g-v2.0 --- fixed

People

(Reporter: mvikram, Assigned: snorp)

References

()

Details

(Keywords: perf, regression, Whiteboard: [caf priority: p2][c=benchmark p= s= u=1.4] [CR 640377])

Attachments

(2 files)

Since the following FFOS build, the MSFishieTank benchmark is not functional (this worked in previous builds).

Gecko:
a8dae518e0d19948ab348a561fdcced7e3eb9883
Gaia:
8c9191df3c107df4073f3ca63816a1d36c51af5d


STR:
Launch the browser to the following URL:
http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html

Results:
Animation is very sluggish with ~0 FPS.
blocking-b2g: --- → 1.4?
blocking-b2g: 1.4? → 1.4+
Before we do a window here, let's do the following:

1. Get a logcat
2. Confirm this doesn't reproduce on 1.3
We probably should have waiting blocking on this - we don't really have a clear owner of this bug until we diagnose the cause with a logcat.

Over to General until we figure out the QA Request.
Component: Gaia::Browser → General
QA Contact: sarsenyev
I tried to access the URL and catched an assertion in gdb:
0xb48496ac in mozilla::AtomicRefCountedWithFinalize<mozilla::layers::TextureHost>::Release (this=0xae9ce644)
    at ../../dist/include/mozilla/layers/AtomicRefCountedWithFinalize.h:37
37	        MOZ_ASSERT(mRecycleCallback == nullptr);
(gdb) bt
#0  0xb48496ac in mozilla::AtomicRefCountedWithFinalize<mozilla::layers::TextureHost>::Release (this=0xae9ce644)
    at ../../dist/include/mozilla/layers/AtomicRefCountedWithFinalize.h:37
#1  0xb484ced2 in mozilla::RefPtr<mozilla::layers::TextureHost>::~RefPtr (this=0xaedd6b40, __in_chrg=<optimized out>)
    at ../../dist/include/mozilla/RefPtr.h:224
#2  0xb4851eca in mozilla::layers::TextureParent::~TextureParent (this=0xaedd6b20, __in_chrg=<optimized out>)
    at ../../../gfx/layers/composite/TextureHost.cpp:747
#3  0xb4851ee4 in mozilla::layers::TextureParent::~TextureParent (this=0xaedd6b20, __in_chrg=<optimized out>)
    at ../../../gfx/layers/composite/TextureHost.cpp:747
#4  0xb4851476 in mozilla::layers::TextureHost::DestroyIPDLActor (actor=<optimized out>)
    at ../../../gfx/layers/composite/TextureHost.cpp:94
#5  0xb4625d90 in mozilla::layers::PLayerTransactionParent::RemoveManagee (this=0xad71f3c0, aProtocolId=<optimized out>, 
    aListener=<optimized out>) at PLayerTransactionParent.cpp:181
#6  0xb4672664 in mozilla::layers::PTextureParent::Send__delete__ (actor=0xaedd6b20) at PTextureParent.cpp:72
#7  0xb4672304 in mozilla::layers::PTextureParent::OnMessageReceived (this=0xaedd6b20, __msg=...) at PTextureParent.cpp:219
#8  0xb45bd702 in mozilla::layers::PCompositorParent::OnMessageReceived (this=0xae3d0340, __msg=...) at PCompositorParent.cpp:373
#9  0xb458861c in mozilla::ipc::MessageChannel::DispatchAsyncMessage (this=0xae3d0370, aMsg=...)
    at ../../../ipc/glue/MessageChannel.cpp:1142
#10 0xb458b6cc in mozilla::ipc::MessageChannel::OnMaybeDequeueOne (this=0xae3d0370) at ../../../ipc/glue/MessageChannel.cpp:1039
#11 0xb43ac324 in DispatchToMethod<FdWatcher, void (FdWatcher::*)()> (method=
    (void (FdWatcher::*)(FdWatcher * const)) 0xb458b639 <mozilla::ipc::MessageChannel::OnMaybeDequeueOne()>, obj=<optimized out>, 
    arg=<optimized out>) at ../../../ipc/chromium/src/base/tuple.h:383
#12 RunnableMethod<FdWatcher, void (FdWatcher::*)(), Tuple0>::Run (this=<optimized out>) at ../../../ipc/chromium/src/base/task.h:307
#13 0xb4588aa0 in Run (this=<optimized out>) at ../../dist/include/mozilla/ipc/MessageChannel.h:383
#14 mozilla::ipc::MessageChannel::DequeueTask::Run (this=<optimized out>) at ../../dist/include/mozilla/ipc/MessageChannel.h:400
#15 0xb4579fcc in MessageLoop::RunTask (this=0xaf9ffde0, task=0xaedffce0) at ../../../ipc/chromium/src/base/message_loop.cc:344
#16 0xb457a90a in MessageLoop::DeferOrRunPendingTask (this=<optimized out>, pending_task=<optimized out>)
    at ../../../ipc/chromium/src/base/message_loop.cc:352
#17 0xb457ba06 in DoWork (this=<optimized out>) at ../../../ipc/chromium/src/base/message_loop.cc:430
#18 MessageLoop::DoWork (this=0xaf9ffde0) at ../../../ipc/chromium/src/base/message_loop.cc:409
#19 0xb457bc1c in base::MessagePumpDefault::Run (this=0xb1377160, delegate=0xaf9ffde0)
Component: General → Graphics: Layers
Product: Firefox OS → Core
Version: unspecified → 30 Branch
Depends on: 990217
The previous comment seems like a general regression and this stack has nothing todo with this bug.
Sorry, just realized Jason removed regression-wanted until we get some other info.
Component: Graphics: Layers → Performance
Keywords: perf
Product: Core → Firefox OS
Version: 30 Branch → unspecified
We're probably going to want to get a profile here.
Flags: needinfo?(bgirard)
Attached file log4012014.txt
The issue doesn't reproduce on 1.3
The animation is not sluggish and FPS info is shown between 8-20
added a log file for 1.4

1.3 Environmental Variables:
Device: Buri 1.3 MOZ
BuildID: 20140401004003
Gaia: 24f562fce468fc948ac9e6185e002c23350cb9ee
Gecko: 0adf24a785f2
Version: 28.0
Firmware Version: v1.2-device.cfg
Keywords: qawanted
I got a real stack now:
[Switching to Thread 1303.1430]
0xb56c2700 in mozilla::MediaDecoderStateMachine::DecodeMetadata (this=0xb3c4ae80) at ../../../content/media/MediaDecoderStateMachine.cpp:1879
1879	  MOZ_ASSERT(!(mMediaSeekable && mTransportSeekable) ||
(gdb) bt
#0  0xb56c2700 in mozilla::MediaDecoderStateMachine::DecodeMetadata (this=0xb3c4ae80) at ../../../content/media/MediaDecoderStateMachine.cpp:1879
#1  0xb56c27c4 in mozilla::MediaDecoderStateMachine::CallDecodeMetadata (this=0xb3c4ae80) at ../../../content/media/MediaDecoderStateMachine.cpp:1826
#2  0xb4b556f0 in nsRunnableMethodImpl<tag_nsresult (nsMemoryReporterManager::*)(), void, true>::Run (this=<optimized out>) at ../../dist/include/nsThreadUtils.h:383
#3  0xb56d2418 in mozilla::MediaTaskQueue::Runner::Run (this=0xb21746d0) at ../../../content/media/MediaTaskQueue.cpp:127
#4  0xb4b85582 in nsThreadPool::Run (this=0xb219bca0) at ../../../xpcom/threads/nsThreadPool.cpp:211
#5  0xb4b83952 in ProcessNextEvent (result=0xb3d56e1f, mayWait=true, this=0xb2194500) at ../../../xpcom/threads/nsThread.cpp:694
#6  nsThread::ProcessNextEvent (this=0xb2194500, mayWait=<optimized out>, result=0xb3d56e1f) at ../../../xpcom/threads/nsThread.cpp:618
#7  0xb4b3c5d8 in NS_ProcessNextEvent (thread=0xb2194500, mayWait=<optimized out>) at ../../../xpcom/glue/nsThreadUtils.cpp:263
#8  0xb4d320c4 in mozilla::ipc::MessagePumpForNonMainThreads::Run (this=0xb21a0130, aDelegate=0xb25bffa0) at ../../../ipc/glue/MessagePump.cpp:336
#9  0xb4d1f742 in MessageLoop::RunInternal (this=0xb25bffa0) at ../../../ipc/chromium/src/base/message_loop.cc:226
#10 0xb4d1f75a in RunHandler (this=0xb25bffa0) at ../../../ipc/chromium/src/base/message_loop.cc:219
#11 MessageLoop::Run (this=0xb25bffa0) at ../../../ipc/chromium/src/base/message_loop.cc:193
#12 0xb4b83316 in nsThread::ThreadFunc (arg=0xb2194500) at ../../../xpcom/threads/nsThread.cpp:308
#13 0xb476ca5c in _pt_root (arg=0xb2194580) at ../../../../../nsprpub/pr/src/pthreads/ptthread.c:212
#14 0xb6eb9a5c in __thread_entry (func=0xb476c9b5 <_pt_root>, arg=0xb2194580, tls=0xb3d56f00) at bionic/libc/bionic/pthread_create.cpp:92
#15 0xb6eb9bd8 in pthread_create (thread_out=0xb3d76af4, attr=<optimized out>, start_routine=0x78, arg=0xb2194580) at bionic/libc/bionic/pthread_create.cpp:201
#16 0x00000000 in ?? ()
Component: Performance → Video/Audio
Product: Firefox OS → Core
Chris and Roc seem to know MediaDecoderStateMachine. Any idea what's going on?
Flags: needinfo?(roc)
Flags: needinfo?(cpearce)
Flags: needinfo?(bgirard)
In addition to comment 8:

(gdb) p *this
$1 = {mRefCnt = {static isThreadSafe = true, 
    mValue = {<mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2>> = {<mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2>> = {
          mValue = 2}, <No data fields>}, <No data fields>}}, mDecoder = {mRawPtr = 0xb2d91200}, mState = mozilla::MediaDecoderStateMachine::DECODER_STATE_DECODING_METADATA, mAudioThread = {mRawPtr = 0x0}, 
  mDecodeTaskQueue = {ptr = 0xb219bd60}, mStateMachineThreadPool = {ptr = 0xb2138980}, mTimer = {mRawPtr = 0xb21602e0}, mTimeout = {mValue = 0}, mInRunningStateMachine = {value = false}, mPlayStartTime = {
    mValue = 0}, mSyncPointInMediaStream = -1, mSyncPointInDecodedStream = -1, mResetPlayStartTime = false, mPlayDuration = 0, mBufferingStart = {mValue = 0}, mStartTime = 0, mEndTime = -1, mSeekTarget = {
    mTime = -1, mType = mozilla::SeekTarget::Invalid}, mFragmentEndTime = -1, mAudioStream = {mRawPtr = 0x0}, mReader = {mRawPtr = 0xb2f8e790}, mPendingWakeDecoder = {mEvent = {mRawPtr = 0x0}}, 
  mCurrentFrameTime = 0, mAudioStartTime = 0, mAudioEndTime = -1, mVideoFrameEndTime = -1, mVolume = 1, mPlaybackRate = 1, mPreservesPitch = true, mBasePosition = 0, mDecodeStartTime = {mValue = 0}, 
  mBufferingWait = 30, mLowDataThresholdUsecs = 5000000, mAmpleVideoFrames = 3, mLowAudioThresholdUsecs = 300000, mAmpleAudioThresholdUsecs = 1000000, mAudioPrerollUsecs = 600000, mVideoPrerollFrames = 1, 
  mIsAudioPrerolling = 165, mIsVideoPrerolling = 165, mIsAudioDecoding = 165, mIsVideoDecoding = 165, mDispatchedAudioDecodeTask = false, mDispatchedVideoDecodeTask = false, mIsReaderIdle = false, 
  mSkipToNextKeyFrame = 165, mAudioCaptured = false, mTransportSeekable = true, mMediaSeekable = true, mPositionChangeQueued = false, mAudioCompleted = false, mGotDurationFromMetaData = false, 
  mDispatchedEventToDecode = false, mStopAudioThread = true, mQuickBuffering = false, mMinimizePreroll = false, mDecodeThreadWaiting = false, mRealTime = false, mEventManager = {mDecoder = 0xb2d91200, 
    mSamplesPerSecond = -2.87351825e-16, mSignalBuffer = {mRawPtr = 0xb3c1e568}, mSignalBufferLength = 0, mNewSignalBufferLength = 0, mSignalBufferPosition = 0, 
    mPendingEvents = {<nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator>> = {<nsTArray_base<nsTArrayInfallibleAllocator, nsTArray_CopyWithMemutils>> = {
          mHdr = 0xb6d227cc}, <nsTArray_TypedBase<nsCOMPtr<nsIRunnable>, nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator> >> = {<nsTArray_SafeElementAtHelper<nsCOMPtr<nsIRunnable>, nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator> >> = {<nsTArray_SafeElementAtSmartPtrHelper<nsIRunnable, nsTArray_Impl<nsCOMPtr<nsIRunnable>, nsTArrayInfallibleAllocator> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, mReentrantMonitor = {<mozilla::BlockingResourceBase> = {static kResourceTypeName = 0xb6ad9090, mChainPrev = 0x0, mDDEntry = 0xb21744d0, 
        static sCallOnce = {initialized = 1, inProgress = 1, status = PR_SUCCESS}, static sResourceAcqnChainFrontTPI = 1, static sDeadlockDetector = 0xb3c25160}, mReentrantMonitor = 0xb21388a0, 
      mEntryCount = 0}, mHasListener = false}, mInfo = {mVideo = {mDisplay = {<mozilla::gfx::BaseSize<int, nsIntSize>> = {width = 0, height = 0}, <No data fields>}, mStereoMode = mozilla::MONO, 
      mHasVideo = false}, mAudio = {mRate = 44100, mChannels = 2, mHasAudio = true}}, mMetadataManager = {mMetadataQueue = {sentinel = {next = 0xb3c4aff0, prev = 0xb3c4aff0, isSentinel = true}}}, 
  mLastFrameStatus = mozilla::MediaDecoderOwner::NEXT_FRAME_UNINITIALIZED}
I don't believe this stack either. Testing on desktop I don't see the page load an audio or video resource, and I don't see anything like that in the page source.
(In reply to Ralph Giles (:rillian) from comment #11)
> I don't believe this stack either. Testing on desktop I don't see the page
> load an audio or video resource, and I don't see anything like that in the
> page source.

Argh I googled for fishtank and IE and went to http://ie.microsoft.com/testdrive/performance/fishbowl/
Is this a stack for yet another bug?
Ignore my stacks above. They show another bug.
For the URL in the Description I get 

Program received signal SIGSEGV, Segmentation fault.
mozilla::gfx::GetCairoSurfaceForSourceSurface (aSurface=0x0, aExistingOnly=true) at ../../../gfx/2d/DrawTargetCairo.cpp:205
205	  if (aSurface->GetType() == SurfaceType::CAIRO) {
(gdb) bt
#0  mozilla::gfx::GetCairoSurfaceForSourceSurface (aSurface=0x0, aExistingOnly=true) at ../../../gfx/2d/DrawTargetCairo.cpp:205
#1  0xb4f0461c in mozilla::gfx::AutoClearDeviceOffset::Init (this=0xbe93bbd0, aSurface=<optimized out>) at ../../../gfx/2d/DrawTargetCairo.cpp:280
#2  0xb4f0466e in mozilla::gfx::AutoClearDeviceOffset::AutoClearDeviceOffset (this=0xbe93bbd0, aPattern=...) at ../../../gfx/2d/DrawTargetCairo.cpp:266
#3  0xb4f04de6 in DrawPattern (aPathBoundsClip=false, aDrawType=mozilla::gfx::DrawTargetCairo::DRAW_FILL, aOptions=..., aStrokeOptions=..., aPattern=..., this=0xb19f6880)
    at ../../../gfx/2d/DrawTargetCairo.cpp:654
#4  mozilla::gfx::DrawTargetCairo::DrawPattern (this=0xb19f6880, aPattern=..., aStrokeOptions=..., aOptions=..., aDrawType=mozilla::gfx::DrawTargetCairo::DRAW_FILL, aPathBoundsClip=false)
    at ../../../gfx/2d/DrawTargetCairo.cpp:644
#5  0xb4f0513e in mozilla::gfx::DrawTargetCairo::FillRect (this=0xb19f6880, aRect=<optimized out>, aPattern=..., aOptions=...) at ../../../gfx/2d/DrawTargetCairo.cpp:710
#6  0xb4f84734 in mozilla::layers::FillRectWithMask (aDT=0xb19f6880, aRect=..., aSurface=0x0, aFilter=<optimized out>, aOptions=..., aMaskLayer=0x0) at ../../../gfx/layers/basic/BasicLayersImpl.cpp:174
#7  0xb4f7f50c in mozilla::layers::BasicCanvasLayer::Paint (this=0xb2f4f560, aDT=0xb19f6880, aMaskLayer=0x0) at ../../../gfx/layers/basic/BasicCanvasLayer.cpp:46
#8  0xb4f832a6 in mozilla::layers::BasicLayerManager::PaintSelfOrChildren (this=0xb215c740, aPaintContext=<optimized out>, aGroupTarget=0xb25f3940) at ../../../gfx/layers/basic/BasicLayerManager.cpp:838
#9  0xb4f835ac in mozilla::layers::BasicLayerManager::PaintLayer (this=0xb215c740, aTarget=0xb25f3940, aLayer=0xb2f4f560, aCallback=<optimized out>, aCallbackData=0xbe93c758, aReadback=0xbe93c0f0)
    at ../../../gfx/layers/basic/BasicLayerManager.cpp:964
#10 0xb4f832e6 in mozilla::layers::BasicLayerManager::PaintSelfOrChildren (this=0xb215c740, aPaintContext=..., aGroupTarget=0xb25f3940) at ../../../gfx/layers/basic/BasicLayerManager.cpp:851
#11 0xb4f835ac in mozilla::layers::BasicLayerManager::PaintLayer (this=0xb215c740, aTarget=0xb25f3940, aLayer=0xb19f1000, aCallback=<optimized out>, aCallbackData=0xbe93c758, aReadback=0x0)
    at ../../../gfx/layers/basic/BasicLayerManager.cpp:964
#12 0xb4f83db2 in mozilla::layers::BasicLayerManager::EndTransactionInternal (this=0xb215c740, aCallback=
    0xb584fe81 <mozilla::FrameLayerBuilder::DrawThebesLayer(mozilla::layers::ThebesLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*)>, 
    aCallbackData=<optimized out>, aFlags=<optimized out>) at ../../../gfx/layers/basic/BasicLayerManager.cpp:627
#13 0xb58844a2 in nsDisplayList::PaintForFrame (this=0xbe93c73c, aBuilder=0xbe93c758, aCtx=<optimized out>, aForFrame=<optimized out>, aFlags=0) at ../../../layout/base/nsDisplayList.cpp:1439
#14 0xb58846c0 in nsDisplayList::PaintRoot (this=0xbe93c73c, aBuilder=0xbe93c758, aCtx=0xb1769e80, aFlags=0) at ../../../layout/base/nsDisplayList.cpp:1280
#15 0xb588e14a in nsLayoutUtils::PaintFrame (aRenderingContext=0xb1769e80, aFrame=0xb212a2b8, aDirtyRegion=<optimized out>, aBackstop=0, aFlags=41) at ../../../layout/base/nsLayoutUtils.cpp:2637
#16 0xb583cba2 in RenderDocument (aThebesContext=0xb25f3940, aBackgroundColor=4294967295, aFlags=<optimized out>, aRect=..., this=0xb2fc5f80) at ../../../layout/base/nsPresShell.cpp:4674
#17 PresShell::RenderDocument (this=0xb2fc5f80, aRect=..., aFlags=<optimized out>, aBackgroundColor=4294967295, aThebesContext=0xb25f3940) at ../../../layout/base/nsPresShell.cpp:4548
#18 0xb55bff90 in mozilla::dom::CanvasRenderingContext2D::DrawWindow (this=0xb19ed800, window=<optimized out>, x=<optimized out>, y=0, w=980, h=1317, bgColor=..., flags=30, error=...)
    at ../../../../content/canvas/src/CanvasRenderingContext2D.cpp:3656
#19 0xb5027d48 in drawWindow (args=..., self=0xb19ed800, cx=0xb3cbd240, obj=<optimized out>) at CanvasRenderingContext2DBinding.cpp:4156
#20 mozilla::dom::CanvasRenderingContext2DBinding::drawWindow (cx=0xb3cbd240, obj=<optimized out>, self=0xb19ed800, args=...) at CanvasRenderingContext2DBinding.cpp:4077
#21 0xb51fd718 in mozilla::dom::GenericBindingMethod (cx=0xb3cbd240, argc=<optimized out>, vp=<optimized out>) at ../../../dom/bindings/BindingUtils.cpp:2270
#22 0xb605578a in js::CallJSNative (cx=0xb3cbd240, native=0xb51fd65d <mozilla::dom::GenericBindingMethod(JSContext*, unsigned int, JS::Value*)>, args=...) at ../../../js/src/jscntxtinlines.h:239
#23 0xb6056bf6 in js::Invoke (cx=0xb3cbd240, args=..., construct=js::NO_CONSTRUCT) at ../../../js/src/vm/Interpreter.cpp:476
---Type <return> to continue, or q <return> to quit---
#24 0xb6057f08 in Interpret (cx=0xb3cbd240, state=...) at ../../../js/src/vm/Interpreter.cpp:2620
#25 0xb606199e in js::RunScript (cx=0xb3cbd240, state=...) at ../../../js/src/vm/Interpreter.cpp:423
#26 0xb6056b5c in RunScript (state=..., cx=0xb3cbd240) at ../../../js/src/vm/Interpreter.cpp:390
#27 js::Invoke (cx=0xb3cbd240, args=..., construct=js::NO_CONSTRUCT) at ../../../js/src/vm/Interpreter.cpp:495
#28 0xb60620f4 in js::Invoke (cx=0xb3cbd240, thisv=..., fval=..., argc=<optimized out>, argv=0xbe93db68, rval=...) at ../../../js/src/vm/Interpreter.cpp:532
#29 0xb5f33c10 in JS_CallFunctionValue (cx=0xb3cbd240, obj=<optimized out>, fval=..., args=..., rval=...) at ../../../js/src/jsapi.cpp:4965
#30 0xb52b6838 in nsXPCWrappedJSClass::CallMethod (this=0xb19fc880, wrapper=<optimized out>, methodIndex=<optimized out>, info_=0xb3141b08, nativeParams=0xbe93dc20)
    at ../../../../js/xpconnect/src/XPCWrappedJSClass.cpp:1273
#31 0xb52b2ef2 in nsXPCWrappedJS::CallMethod (this=0xb19fba40, methodIndex=<optimized out>, info=0xb3141b08, params=0xbe93dc20) at ../../../../js/xpconnect/src/XPCWrappedJS.cpp:517
#32 0xb4b33d4a in PrepareAndDispatch (self=0xb2163940, methodIndex=<optimized out>, args=0xbe93dccc) at ../../../../../../../xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp:93
#33 0xb4b3343c in SharedStub () from /Volumes/2mac/moz/ib2g/debnexusbuild/dist/bin/libxul.so
#34 0xb4b03e22 in (anonymous namespace)::MessageLoopIdleTask::Run (this=0xb18fa040) at ../../../xpcom/base/nsMessageLoop.cpp:114
#35 0xb4b0378a in (anonymous namespace)::MessageLoopTimerCallback::Notify (this=0xb2163970, aTimer=<optimized out>) at ../../../xpcom/base/nsMessageLoop.cpp:132
#36 0xb4b313fa in nsTimerImpl::Fire (this=0xb18f91f0) at ../../../xpcom/threads/nsTimerImpl.cpp:554
#37 0xb4b31578 in nsTimerEvent::Run (this=0xb2511090) at ../../../xpcom/threads/nsTimerImpl.cpp:635
#38 0xb4b2e952 in ProcessNextEvent (result=0xbe93ddbf, mayWait=false, this=0xb3c2e780) at ../../../xpcom/threads/nsThread.cpp:694
#39 nsThread::ProcessNextEvent (this=0xb3c2e780, mayWait=<optimized out>, result=0xbe93ddbf) at ../../../xpcom/threads/nsThread.cpp:618
#40 0xb4ae75d8 in NS_ProcessNextEvent (thread=0xb3c2e780, mayWait=<optimized out>) at ../../../xpcom/glue/nsThreadUtils.cpp:263
#41 0xb4cdd290 in mozilla::ipc::MessagePump::Run (this=0xb3c01b80, aDelegate=0xbe93df18) at ../../../ipc/glue/MessagePump.cpp:95
#42 0xb4cca742 in MessageLoop::RunInternal (this=0xbe93df18) at ../../../ipc/chromium/src/base/message_loop.cc:226
#43 0xb4cca75a in RunHandler (this=0xbe93df18) at ../../../ipc/chromium/src/base/message_loop.cc:219
#44 MessageLoop::Run (this=0xbe93df18) at ../../../ipc/chromium/src/base/message_loop.cc:193
#45 0xb5266896 in nsBaseAppShell::Run (this=0xb2f3be80) at ../../../widget/xpwidgets/nsBaseAppShell.cpp:164
#46 0xb5b13b5e in XRE_RunAppShell () at ../../../toolkit/xre/nsEmbedFunctions.cpp:679
#47 0xb4cdd3aa in mozilla::ipc::MessagePumpForChildProcess::Run (this=0xb3c01b80, aDelegate=0xbe93df18) at ../../../ipc/glue/MessagePump.cpp:253
#48 0xb4cca742 in MessageLoop::RunInternal (this=0xbe93df18) at ../../../ipc/chromium/src/base/message_loop.cc:226
#49 0xb4cca75a in RunHandler (this=0xbe93df18) at ../../../ipc/chromium/src/base/message_loop.cc:219
#50 MessageLoop::Run (this=0xbe93df18) at ../../../ipc/chromium/src/base/message_loop.cc:193
#51 0xb5b13a42 in XRE_InitChildProcess (aArgc=5, aArgv=<optimized out>, aProcess=<optimized out>) at ../../../toolkit/xre/nsEmbedFunctions.cpp:516
#52 0x00008862 in main (argc=6, argv=0xbe93ea14) at ../../../ipc/app/MozillaRuntimeMain.cpp:149
Back to milan
Component: Video/Audio → Graphics
Flags: needinfo?(roc)
Flags: needinfo?(milan)
Flags: needinfo?(cpearce)
I filed bug 991208 for the assertion found in comment 8
Ok. http://ie.microsoft.com/testdrive/performance/fishbowl/ as least has a media resource for the water sound animation.
(In reply to Gregor Wagner [:gwagner] from comment #14)
> Back to milan

Yes, Benoit is going to get the profile as soon as possible.  If somebody else can get the profile, it will speed things up.
Flags: needinfo?(milan)
Hm I never saw it working on my buri with an opt build and I always got the 'Well this is embarrassing" page. Milan, should we file another bug with the assertion in comment 13 and focus on the performance here if the site is working for you?
Flags: needinfo?(milan)
Probably a good idea (another bug).  I don't get a crash, but I do get sluggish framerate.
Flags: needinfo?(milan) → needinfo?(bgirard)
I can reproduce the stack in comment 13. But I suspect we're just hitting a out of memory crash.
Flags: needinfo?(bgirard)
Depends on: 993083
Doesn't look like out-of-memory:

The problem is that 'SharedSurface_GL* sharedSurf = mGLContext->RequestFrame();' is returning null in UpdateTarget and we never set mSurface and right now we assume that calling UpdateTarget always sets a valid mSurface. Snorp is seeing the same bug.
attachment 8402894 [details] [diff] [review] fixes the bug for me. Assigning to snorp.

Milan are you still interested in the performance for this testcase? If so I can get a follow up bug.
Assignee: nobody → snorp
Alright here's a profile of the performance regression:
http://people.mozilla.org/~bgirard/cleopatra/#report=47a3629901040c10630f14be82e4d8b815517c26

Looks like we're copying the image every draw. We shouldn't be copying the image at all.
Depends on: 962670
The perf issue is caused by bug 962670. We shouldn't leave this on trunk for very long since it can mask other issues.
Flags: needinfo?(mwu)
(In reply to Benoit Girard (:BenWa) from comment #26)
> The perf issue is caused by bug 962670. We shouldn't leave this on trunk for
> very long since it can mask other issues.

I think I have a pretty good grip on what's going on here. The canvas has a CanvasImageCache which stores SourceSurfaces. Normally, this would allow us to do the copy just once, and then use the cached copy afterwards. However, the image in this benchmark is 18mb uncompressed. On B2G, the CanvasImageCache has a max size of 10mb, so the image is never cached. Before bug 962670, we also had a cached copy on the surface provided by GetFrame, but this is thrown away now.

I'll put together a fix this week.
Flags: needinfo?(mwu)
This looks like two bugs we're tracking - it's a bit confusing, as we have the crash (:snorp fixing) and "not caching anymore" (:mwu fixing.)  This bug is more for the performance, but we already have a crash fix patch against it, so as long as this gets assigned to :mwu after :snorp's fix lands, I personally don't mind keeping both issues in the same bug.
Status: NEW → ASSIGNED
Priority: -- → P1
Whiteboard: [CR 640377] → [c=benchmark p= s= u=1.4] [CR 640377]
Review ping.
Flags: needinfo?(gwright)
Attachment #8402894 - Flags: review?(gwright) → review+
Flags: needinfo?(gwright)
(In reply to Milan Sreckovic [:milan] from comment #28)
> This looks like two bugs we're tracking - it's a bit confusing, as we have
> the crash (:snorp fixing) and "not caching anymore" (:mwu fixing.)  This bug
> is more for the performance, but we already have a crash fix patch against
> it, so as long as this gets assigned to :mwu after :snorp's fix lands, I
> personally don't mind keeping both issues in the same bug.

I'll file a new bug for the perf fix - should be less confusing overall.
https://hg.mozilla.org/mozilla-central/rev/729fff2368c4
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
(In reply to Michael Wu [:mwu] from comment #31)
> (In reply to Milan Sreckovic [:milan] from comment #28)
> > This looks like two bugs we're tracking - it's a bit confusing, as we have
> > the crash (:snorp fixing) and "not caching anymore" (:mwu fixing.)  This bug
> > is more for the performance, but we already have a crash fix patch against
> > it, so as long as this gets assigned to :mwu after :snorp's fix lands, I
> > personally don't mind keeping both issues in the same bug.
> 
> I'll file a new bug for the perf fix - should be less confusing overall.

Do we have any other bugs other than bug 962670, bug 990217 and bug 993083  for this ?
Flags: needinfo?(mwu)
Issue is still present in tip of v1.4 gaia/gecko . I can see fishIETank website but animation is shows big stutter and website does not seem to be functional :(

I can upload a video if you want.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
(In reply to Tapas Kumar Kundu from comment #35)
> Issue is still present in tip of v1.4 gaia/gecko . I can see fishIETank
> website but animation is shows big stutter and website does not seem to be
> functional :(
> 
> I can upload a video if you want.

There's two issues in this bug. One is a crash and the other is a performance issue. I'll be filing a new bug for the performance issue.
Flags: needinfo?(mwu)
Blocks: 996226
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
Whiteboard: [c=benchmark p= s= u=1.4] [CR 640377] → [caf priority: p2][c=benchmark p= s= u=1.4] [CR 640377]
Flags: in-moztrap?(ychung)
New test case needs to be added. There is no existing test case.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Test case added in moztrap:

https://moztrap.mozilla.org/manage/case/14333/
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
Flags: in-moztrap?(ychung)
Flags: in-moztrap+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: