Closed
Bug 1322650
Opened 8 years ago
Closed 8 years ago
[geckoview] [e10s] Make WebGL work
Categories
(Core Graveyard :: Embedding: APIs, defect)
Core Graveyard
Embedding: APIs
Tracking
(firefox55 fixed)
RESOLVED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox55 | --- | fixed |
People
(Reporter: snorp, Assigned: snorp)
References
(Depends on 1 open bug)
Details
Attachments
(12 files, 8 obsolete files)
(deleted),
text/x-review-board-request
|
jchen
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jgilbert
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jgilbert
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jchen
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jhlin
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jhlin
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jgilbert
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jchen
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jchen
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jchen
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jchen
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
jhlin
:
review+
|
Details |
It's either broken or using readback right now with e10s.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 10•8 years ago
|
||
mozreview-review |
Comment on attachment 8855600 [details]
Bug 1322650 - Make video decoding work with new SurfaceTexture API
https://reviewboard.mozilla.org/r/126460/#review130304
::: dom/media/platforms/android/RemoteDataDecoder.cpp:178
(Diff revision 1)
> {
> }
>
> RefPtr<InitPromise> Init() override
> {
> - mSurfaceTexture = AndroidSurfaceTexture::Create();
> + jni::Object::LocalRef surf = SurfaceAllocator::AcquireSurface(mConfig.mDisplay.width, mConfig.mDisplay.height, false);
The size of texture should be `mConfig.mImage` rather than `mConfig.mDisplay`.
Not really a problem because decoder/producer will override our setting anyway. :)
Attachment #8855600 -
Flags: review?(jolin) → review+
Comment 11•8 years ago
|
||
mozreview-review |
Comment on attachment 8855601 [details]
Bug 1322650 - Don't use inout param for Surface in ICodec
https://reviewboard.mozilla.org/r/126462/#review130308
Good catch!Thanks a lot。
Attachment #8855601 -
Flags: review?(jolin) → review+
Comment 12•8 years ago
|
||
mozreview-review |
Comment on attachment 8855604 [details]
Bug 1322650 - Update JNI bindings
https://reviewboard.mozilla.org/r/126468/#review130698
Attachment #8855604 -
Flags: review?(nchen) → review+
Comment 13•8 years ago
|
||
mozreview-review |
Comment on attachment 8855596 [details]
Bug 1322650 - Add GeckoSurfaceTexture, GeckoSurface and associated Android Service
https://reviewboard.mozilla.org/r/126452/#review130700
::: mobile/android/base/Makefile.in:575
(Diff revision 1)
> aidl_src_path := $(srcdir)/aidl
> aidl_target_path := generated
> +gfx_pkg := org/mozilla/gecko/gfx
> media_pkg := org/mozilla/gecko/media
>
> +$(aidl_target_path)/$(gfx_pkg)/%.java:$(aidl_geckoview_src_path)/$(gfx_pkg)/%.aidl
Should add the .aidl to the GECKOVIEW_AIDLS list below instead of adding these lines.
::: mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/ISurfaceAllocator.aidl:9
(Diff revision 1)
> +
> +package org.mozilla.gecko.gfx;
> +
> +import org.mozilla.gecko.gfx.GeckoSurface;
> +
> +interface ISurfaceAllocator {
I think this should be integrated into IProcessManager, because IProcessManager is always available in a child prorcess and you won't need to create a separate SurfaceAllocatorService and wait on it to start.
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoSurface.java:28
(Diff revision 1)
> +
> + private static HashMap<Long, GeckoSurfaceTexture> sSurfaceTextures = new HashMap<Long, GeckoSurfaceTexture>();
> +
> + private long mHandle;
> + private boolean mIsSingleBuffer;
> + private AtomicBoolean mIsAvailable;
Just use `volatile boolean`
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoSurface.java:85
(Diff revision 1)
> + out.writeLong(mHandle);
> + out.writeByte((byte) (mIsSingleBuffer ? 1 : 0));
> + out.writeByte((byte) (mIsAvailable.get() ? 1 : 0));
> + }
> +
> + @WrapForJNI(exceptionMode = "ignore")
Get rid of all the `exceptionMode = "ignore"`. "ignore" should only be used in limited circumstances.
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoSurfaceTexture.java:55
(Diff revision 1)
> + public int getTexName() {
> + return mTexName;
> + }
> +
> + @WrapForJNI(exceptionMode = "ignore")
> + public boolean getIsSingleBuffer() {
`public boolean isSingleBuffer()`
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoSurfaceTexture.java:98
(Diff revision 1)
> + }
> +
> + long handle = sNextHandle.getAndIncrement();
> + int texName = nativeAcquireTexture();
> +
> + GeckoSurfaceTexture gst;
final
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoSurfaceTexture.java:119
(Diff revision 1)
> +
> + return gst;
> + }
> +
> + public static void dispose(long handle) {
> + GeckoSurfaceTexture gst;
final
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SurfaceAllocator.java:68
(Diff revision 1)
> +
> + // Release the SurfaceTexture on the other side
> + try {
> + sConnection.getAllocator().releaseSurface(surface.getHandle());
> + } catch (RemoteException e) {
> + Log.w(LOGTAG, "Failed to release surface texture: " + e);
`Log.w(LOGTAG, "Failed to release surface texture", e);`
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SurfaceAllocator.java:75
(Diff revision 1)
> +
> + // And now our Surface
> + try {
> + surface.release();
> + } catch (Exception e) {
> + Log.w(LOGTAG, "Failed to release surface: " + e);
Log.w(LOGTAG, "Failed to release surface", e);
Attachment #8855596 -
Flags: review?(nchen)
Comment 14•8 years ago
|
||
mozreview-review |
Comment on attachment 8855599 [details]
Bug 1322650 - Allow access to TexturePoolOGL from Java
https://reviewboard.mozilla.org/r/126458/#review130974
Attachment #8855599 -
Flags: review?(nchen) → review+
Comment 15•8 years ago
|
||
mozreview-review |
Comment on attachment 8855603 [details]
Bug 1322650 - Adjust Android Flash support to API changes
https://reviewboard.mozilla.org/r/126466/#review130982
::: dom/plugins/base/nsNPAPIPluginInstance.cpp:890
(Diff revision 1)
> - if (!surface) {
> + jni::Object::LocalRef obj = java::SurfaceAllocator::AcquireSurface(0, 0, false);
> + if (!obj) {
> return nullptr;
> }
>
> + java::GeckoSurface::LocalRef surf = java::GeckoSurface::LocalRef(java::GeckoSurface::Ref::From(obj));
Just use `java::GeckoSurface::LocalRef surf = java::SurfaceAllocator::AcquireSurface(0, 0, false);`. No need for `obj`.
::: dom/plugins/base/nsNPAPIPluginInstance.cpp:894
(Diff revision 1)
>
> + java::GeckoSurface::LocalRef surf = java::GeckoSurface::LocalRef(java::GeckoSurface::Ref::From(obj));
> +
> nsCOMPtr<nsIRunnable> frameCallback = NewRunnableMethod(this, &nsNPAPIPluginInstance::OnSurfaceTextureFrameAvailable);
> - surface->SetFrameAvailableCallback(frameCallback);
> - return surface.forget();
> +
> + PluginTextureListener::Init();
Don't need this. You only need to call `Init` manually when you have static methods.
::: dom/plugins/base/nsNPAPIPluginInstance.cpp:897
(Diff revision 1)
> nsCOMPtr<nsIRunnable> frameCallback = NewRunnableMethod(this, &nsNPAPIPluginInstance::OnSurfaceTextureFrameAvailable);
> - surface->SetFrameAvailableCallback(frameCallback);
> - return surface.forget();
> +
> + PluginTextureListener::Init();
> +
> + java::SurfaceTextureListener::LocalRef listener = java::SurfaceTextureListener::New();
> + PluginTextureListener::AttachNative(listener, MakeUnique<PluginTextureListener>(frameCallback.get()));
I don't think `DisposeNative` ever gets called.
::: dom/plugins/base/nsNPAPIPluginInstance.cpp:900
(Diff revision 1)
> +
> + java::SurfaceTextureListener::LocalRef listener = java::SurfaceTextureListener::New();
> + PluginTextureListener::AttachNative(listener, MakeUnique<PluginTextureListener>(frameCallback.get()));
> +
> + java::GeckoSurfaceTexture::LocalRef gst = java::GeckoSurfaceTexture::Lookup(surf->GetHandle());
> + auto st = java::sdk::SurfaceTexture::LocalRef(java::sdk::SurfaceTexture::Ref::From(gst));
`const auto& st = java::sdk::SurfaceTexture::Ref::From(gst);`. Don't need to make a new local reference.
Attachment #8855603 -
Flags: review?(nchen)
Assignee | ||
Comment 16•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8855596 [details]
Bug 1322650 - Add GeckoSurfaceTexture, GeckoSurface and associated Android Service
https://reviewboard.mozilla.org/r/126452/#review130700
> Should add the .aidl to the GECKOVIEW_AIDLS list below instead of adding these lines.
Whoops, rebase snafu.
> I think this should be integrated into IProcessManager, because IProcessManager is always available in a child prorcess and you won't need to create a separate SurfaceAllocatorService and wait on it to start.
The problem is that this service needs to live wherever the compositor is, whereas IProcessManager always talks to the main (parent) process.
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Attachment #8855597 -
Attachment is obsolete: true
Attachment #8855597 -
Flags: review?(jgilbert)
Assignee | ||
Updated•8 years ago
|
Attachment #8855598 -
Attachment is obsolete: true
Attachment #8855598 -
Flags: review?(jgilbert)
Assignee | ||
Updated•8 years ago
|
Attachment #8855599 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8855600 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8855601 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8855602 -
Attachment is obsolete: true
Attachment #8855602 -
Flags: review?(jgilbert)
Assignee | ||
Updated•8 years ago
|
Attachment #8855603 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8855604 -
Attachment is obsolete: true
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 29•8 years ago
|
||
mozreview-review |
Comment on attachment 8855596 [details]
Bug 1322650 - Add GeckoSurfaceTexture, GeckoSurface and associated Android Service
https://reviewboard.mozilla.org/r/126452/#review131568
::: mobile/android/base/Makefile.in:573
(Diff revision 2)
>
> # Generate Java binder interfaces from AIDL files.
> GECKOVIEW_AIDLS = \
> org/mozilla/gecko/IGeckoEditableChild.aidl \
> org/mozilla/gecko/IGeckoEditableParent.aidl \
> + org/mozilla/gecko/gfx/GeckoSurface.aidl \
Don't need `GeckoSurface.aidl` in the list
Attachment #8855596 -
Flags: review?(nchen) → review+
Comment 30•8 years ago
|
||
mozreview-review |
Comment on attachment 8857104 [details]
Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S
https://reviewboard.mozilla.org/r/129010/#review131710
::: gfx/gl/AndroidSurfaceTexture.h:14
(Diff revision 1)
> -#include "mozilla/Monitor.h"
> -
> -#include "GeneratedJNIWrappers.h"
> #include "SurfaceTexture.h"
>
> +typedef uint64_t AndroidSurfaceTextureHandle;
Are you sure you don't mean void*?
::: gfx/gl/SharedSurface.h:310
(Diff revision 1)
> already_AddRefed<layers::SharedSurfaceTextureClient> NewTexClient(const gfx::IntSize& size);
>
> static void RecycleCallback(layers::TextureClient* tc, void* /*closure*/);
>
> // Auto-deletes surfs of the wrong type.
> - bool Recycle(layers::SharedSurfaceTextureClient* texClient);
> + virtual bool Recycle(layers::SharedSurfaceTextureClient* texClient);
This is pretty dangerous.
::: gfx/gl/SharedSurfaceEGL.cpp:254
(Diff revision 1)
> +}
> +
> +void
> +SharedSurface_SurfaceTexture::LockProdImpl()
> +{
> + if (!mSurface->GetAvailable()) {
LockProd doesn't support being fallible.
Instead, MOZ_RELEASE_ASSERT(GetAvailable()).
::: gfx/gl/SharedSurfaceEGL.cpp:270
(Diff revision 1)
> + if (!mSurface->GetAvailable()) {
> + return;
> + }
> +
> + mGL->SwapBuffers();
> + mSurface->SetAvailable(false);
This isn't viable, unfortunately. There's a bunch of places we'd unlock at.
Conceptually, this fits better as ProducerRelease, but when it comes down to it, I don't think we have the right architecture for this sort of requirement yet. We can add it, though. (layers change)
::: gfx/gl/SharedSurfaceEGL.cpp:284
(Diff revision 1)
> +}
> +
> +bool
> +SharedSurface_SurfaceTexture::ReadbackBySharedHandle(gfx::DataSourceSurface* out_surface)
> +{
> + return false;
Leave { return false; } definitions in the header.
::: gfx/gl/SharedSurfaceEGL.cpp:327
(Diff revision 1)
> +
> +bool
> +SurfaceFactory_SurfaceTexture::Recycle(layers::SharedSurfaceTextureClient* texClient)
> +{
> + SharedSurface_SurfaceTexture* surf = static_cast<SharedSurface_SurfaceTexture*>(texClient->Surf());
> + surf->JavaSurface()->SetAvailable(true);
Doesn't this mean that all surfaces returned by SurfaceFactory::NewTexClient (both recycled and fresh) would be available:true?
If so, you can instead override ShSurf::WaitForBufferOwnership to just call SetAvailable(true).
::: gfx/layers/GLImages.h:84
(Diff revision 1)
> - RefPtr<gl::AndroidSurfaceTexture> mSurfaceTexture;
> + AndroidSurfaceTextureHandle mHandle;
> gfx::IntSize mSize;
> gl::OriginPos mOriginPos;
Just make these public and const.
::: gfx/layers/ipc/LayersSurfaces.ipdlh:63
(Diff revision 1)
> double scaleFactor;
> bool isOpaque;
> };
>
> struct SurfaceTextureDescriptor {
> - uintptr_t surfTex;
> + uint64_t handle;
Probably uintptr_t, since this is really a pointer, yeah?
::: gfx/layers/opengl/TextureHostOGL.cpp:60
(Diff revision 1)
>
> #ifdef MOZ_WIDGET_ANDROID
> case SurfaceDescriptor::TSurfaceTextureDescriptor: {
> const SurfaceTextureDescriptor& desc = aDesc.get_SurfaceTextureDescriptor();
> + java::GeckoSurfaceTexture::LocalRef surfaceTexture = java::GeckoSurfaceTexture::Lookup(desc.handle());
> + if (!surfaceTexture) {
Should we assert here?
::: gfx/layers/opengl/TextureHostOGL.cpp:399
(Diff revision 1)
> MOZ_ASSERT(mSurfTex);
>
> gfx::Matrix4x4 ret;
> - mSurfTex->GetTransformMatrix(ret);
>
> + AndroidSurfaceTexture::GetTransformMatrix(java::sdk::SurfaceTexture::LocalRef(java::sdk::SurfaceTexture::Ref::From(mSurfTex)), ret);
It would be nice to split this up.
Like:
const auto& ref = java::sdk::SurfaceTexture::LocalRef(java::sdk::SurfaceTexture::Ref::From(mSurfTex));
AndroidSurfaceTexture::GetTransformMatrix(ref, ret);
::: gfx/layers/opengl/TextureHostOGL.cpp:433
(Diff revision 1)
> + // This advances the SurfaceTexture's internal buffer queue. We only want to do this
> + // once per transaction. We can then composite that texture as many times as needed.
State explicitly that calling this every composite could cause this texture to de-sync with the rest of the page content.
::: gfx/layers/opengl/TextureHostOGL.cpp:435
(Diff revision 1)
> + return;
> + }
> +
> + // This advances the SurfaceTexture's internal buffer queue. We only want to do this
> + // once per transaction. We can then composite that texture as many times as needed.
> + mSurfTex->UpdateTexImage();
Can you put this in the SurfaceTextureSourcec ctor? I think that would Do The Right Thing in SurfaceTextureHost::Lock() with the if (!mTextureSource) path.
::: gfx/layers/opengl/TextureHostOGL.cpp:491
(Diff revision 1)
> + // We don't want to wait until it's done compositing, there are fences that protect
> + // us from problems there. Send a message to recycle this surface immediately.
> + CallNotifyNotUsed();
Is this just an optimization? If so, can we avoid it for simplicity's sake?
Attachment #8857104 -
Flags: review?(jgilbert) → review-
Comment 31•8 years ago
|
||
mozreview-review |
Comment on attachment 8857105 [details]
Bug 1322650 - Disable blitting from a SurfaceTexture
https://reviewboard.mozilla.org/r/129012/#review131734
Attachment #8857105 -
Flags: review?(jgilbert) → review+
Comment 32•8 years ago
|
||
mozreview-review |
Comment on attachment 8857109 [details]
Bug 1322650 - Support a 'continuous' mode for SurfaceTexture
https://reviewboard.mozilla.org/r/129020/#review131738
::: dom/media/platforms/android/RemoteDataDecoder.cpp:136
(Diff revision 1)
> return;
> }
>
> if (size > 0) {
> RefPtr<layers::Image> img = new SurfaceTextureImage(
> - mDecoder->mSurfaceHandle, inputInfo.mImageSize,
> + mDecoder->mSurfaceHandle, inputInfo.mImageSize, false /* NOT continuous */,
If this is `false`, where's the `true` for Flash?
Attachment #8857109 -
Flags: review?(jgilbert) → review+
Comment 33•8 years ago
|
||
mozreview-review |
Comment on attachment 8857107 [details]
Bug 1322650 - Make video decoding work with new SurfaceTexture API
https://reviewboard.mozilla.org/r/129016/#review131944
Attachment #8857107 -
Flags: review?(jolin) → review+
Comment 34•8 years ago
|
||
mozreview-review |
Comment on attachment 8857108 [details]
Bug 1322650 - Don't use inout param for Surface in ICodec
https://reviewboard.mozilla.org/r/129018/#review131946
Attachment #8857108 -
Flags: review?(jolin) → review+
Comment 35•8 years ago
|
||
mozreview-review |
Comment on attachment 8857114 [details]
Bug 1322650 - Don't use AndroidBridge to get API version in media stack
https://reviewboard.mozilla.org/r/129030/#review131948
Attachment #8857114 -
Flags: review?(jolin) → review+
Comment 36•8 years ago
|
||
mozreview-review |
Comment on attachment 8857106 [details]
Bug 1322650 - Allow access to TexturePoolOGL from Java
https://reviewboard.mozilla.org/r/129014/#review132052
Attachment #8857106 -
Flags: review?(nchen) → review+
Comment 37•8 years ago
|
||
mozreview-review |
Comment on attachment 8857110 [details]
Bug 1322650 - Adjust Android Flash support to API changes
https://reviewboard.mozilla.org/r/129022/#review132062
::: dom/plugins/base/nsNPAPIPluginInstance.cpp:896
(Diff revision 1)
> - surface->SetFrameAvailableCallback(frameCallback);
> - return surface.forget();
> +
> + java::SurfaceTextureListener::LocalRef listener = java::SurfaceTextureListener::New();
> +
> + java::GeckoSurfaceTexture::LocalRef gst = java::GeckoSurfaceTexture::Lookup(surf->GetHandle());
> + const auto& st = java::sdk::SurfaceTexture::Ref::From(gst);
> + st->SetOnFrameAvailableListener(listener);
I think you removed the `AttachNative` call? In that case the native call in `SurfaceTextureListener` will fail.
Attachment #8857110 -
Flags: review?(nchen)
Comment 38•8 years ago
|
||
mozreview-review |
Comment on attachment 8857111 [details]
Bug 1322650 - Update JNI bindings
https://reviewboard.mozilla.org/r/129024/#review132064
Attachment #8857111 -
Flags: review?(nchen) → review+
Comment 39•8 years ago
|
||
mozreview-review |
Comment on attachment 8857112 [details]
Bug 1322650 - Force static accessors for some types during JNI bindings generation
https://reviewboard.mozilla.org/r/129026/#review132066
Attachment #8857112 -
Flags: review?(nchen) → review+
Comment 40•8 years ago
|
||
mozreview-review |
Comment on attachment 8857113 [details]
Bug 1322650 - Add jni::GetAPIVersion() to get Android API version
https://reviewboard.mozilla.org/r/129028/#review132070
::: widget/android/jni/Utils.h:149
(Diff revision 1)
> * Returns whether Gecko is running in a Fennec environment, as determined by
> * the presence of the GeckoApp class.
> */
> bool IsFennec();
>
> +int GetAPIVersion();
Add comment
Attachment #8857113 -
Flags: review?(nchen) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 58•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8857104 [details]
Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S
https://reviewboard.mozilla.org/r/129010/#review131710
> Are you sure you don't mean void*?
I don't, see below regarding the cross-process thing.
> Just make these public and const.
That doesn't follow the convention used in this class and the others in the file...
> Probably uintptr_t, since this is really a pointer, yeah?
It's not, as this goes cross-process. The handle (which I've changed to uint32_t) is created behind the scenes using Android binder.
> Can you put this in the SurfaceTextureSourcec ctor? I think that would Do The Right Thing in SurfaceTextureHost::Lock() with the if (!mTextureSource) path.
There are some changes in the "continuous mode" patch that make that a little harder to follow than the current way.
> Is this just an optimization? If so, can we avoid it for simplicity's sake?
It is an optimization, but without it we end up using one more buffer than necessary, which could be a fair amount of memory.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 71•8 years ago
|
||
mozreview-review |
Comment on attachment 8857110 [details]
Bug 1322650 - Adjust Android Flash support to API changes
https://reviewboard.mozilla.org/r/129022/#review134682
::: dom/plugins/base/nsNPAPIPluginInstance.cpp:897
(Diff revision 4)
> - return surface.forget();
> + java::SurfaceTextureListener::LocalRef listener = java::SurfaceTextureListener::New();
> +
> + PluginTextureListener::AttachNative(listener, MakeUnique<PluginTextureListener>(frameCallback.get()));
> +
> + java::GeckoSurfaceTexture::LocalRef gst = java::GeckoSurfaceTexture::Lookup(surf->GetHandle());
> + const auto& st = java::sdk::SurfaceTexture::Ref::From(gst);
`gst` can be null here
::: mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SurfaceTextureListener.java:25
(Diff revision 4)
> + @WrapForJNI(dispatchTo = "gecko") @Override // JNIObject
> + protected native void disposeNative();
> +
> @Override
> - protected void disposeNative() {
> - // SurfaceTextureListener is disposed inside AndroidSurfaceTexture.
> + protected void finalize() {
> + disposeNative();
We should clear the callback in `PluginTextureListener` ASAP, when it's no longer the current listener. It can take a long time for the finalizer to be called, if ever. In that case we'll leak a lot of things.
Attachment #8857110 -
Flags: review?(nchen) → review+
Comment 72•8 years ago
|
||
Now that we're able to pass Surface across processes through IPDL, it seems feasible to use PVideoDecoder on Android to replace ICodec and unify Gecko OOP decoding solution.
James and Jean-Yves, do you think it's worth filing a bug to explore that?
Flags: needinfo?(snorp)
Flags: needinfo?(jyavenard)
Assignee | ||
Comment 73•8 years ago
|
||
(In reply to John Lin [:jolin][:jhlin] from comment #72)
> Now that we're able to pass Surface across processes through IPDL, it seems
> feasible to use PVideoDecoder on Android to replace ICodec and unify Gecko
> OOP decoding solution.
>
> James and Jean-Yves, do you think it's worth filing a bug to explore that?
Sounds like a good idea to me!
Flags: needinfo?(snorp)
Comment 75•8 years ago
|
||
mozreview-review |
Comment on attachment 8857104 [details]
Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S
https://reviewboard.mozilla.org/r/129010/#review138336
::: gfx/gl/SharedSurfaceEGL.cpp:219
(Diff revision 3)
> +}
> +
> +bool
> +SharedSurface_SurfaceTexture::IsAvailable()
> +{
> + return true;
Leave this in the header if it's just always returning true.
::: gfx/gl/SharedSurfaceEGL.cpp:248
(Diff revision 3)
> +}
> +
> +layers::TextureFlags
> +SharedSurface_SurfaceTexture::GetTextureFlags() const
> +{
> + return layers::TextureFlags::DEALLOCATE_CLIENT;
Leave this in the header since it's returning a constant.
::: gfx/gl/SharedSurfaceEGL.cpp:266
(Diff revision 3)
> +void
> +SharedSurface_SurfaceTexture::UnlockProdImpl()
> +{
> + MOZ_RELEASE_ASSERT(mSurface->GetAvailable());
> +
> + GLContextEGL::Cast(mGL)->SetEGLSurfaceOverride(mOrigEglSurface);
MOZ_ASSERT(GetEGLSurfaceOverride() == mOrigEglSurface);
::: gfx/gl/SharedSurfaceEGL.cpp:318
(Diff revision 3)
> + if (!surface) {
> + // Try multi-buffer mode
> + surface = java::SurfaceAllocator::AcquireSurface(size.width, size.height, false);
> + if (!surface) {
> + // Give up
> + return nullptr;
do{}while is better for this fallback pattern.
::: gfx/gl/SharedSurfaceEGL.cpp:322
(Diff revision 3)
> + jni::Object::LocalRef surface = java::SurfaceAllocator::AcquireSurface(size.width, size.height, true);
> + if (!surface) {
> + // Try multi-buffer mode
> + surface = java::SurfaceAllocator::AcquireSurface(size.width, size.height, false);
> + if (!surface) {
> + // Give up
NS_WARNING?
::: gfx/gl/SharedSurfaceEGL.cpp:322
(Diff revision 3)
> + jni::Object::LocalRef surface = java::SurfaceAllocator::AcquireSurface(size.width, size.height, true);
> + if (!surface) {
> + // Try multi-buffer mode
> + surface = java::SurfaceAllocator::AcquireSurface(size.width, size.height, false);
> + if (!surface) {
> + // Give up
::: gfx/layers/opengl/TextureHostOGL.cpp:491
(Diff revision 3)
> + // We don't want to wait until it's done compositing, there are fences that protect
> + // us from problems there. Send a message to recycle this surface immediately.
> + CallNotifyNotUsed();
Drop this optimization. I don't like the complexity-to-value tradeoff here. We really want to keep these lifetime cycles simple.
Leave this for a follow-up bug, if anything.
Attachment #8857104 -
Flags: review?(jgilbert) → review-
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 88•8 years ago
|
||
mozreview-review |
Comment on attachment 8857104 [details]
Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S
https://reviewboard.mozilla.org/r/129010/#review139388
Attachment #8857104 -
Flags: review?(jgilbert) → review+
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → snorp
Comment 89•8 years ago
|
||
Pushed by jwillcox@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/b50714bd8d10
Add GeckoSurfaceTexture, GeckoSurface and associated Android Service r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/9badb2705567
Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/3644926d994a
Disable blitting from a SurfaceTexture r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/b12a741ef025
Allow access to TexturePoolOGL from Java r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/4135178bae2b
Make video decoding work with new SurfaceTexture API r=jolin
https://hg.mozilla.org/integration/mozilla-inbound/rev/b79cbaa5cf1a
Don't use inout param for Surface in ICodec r=jolin
https://hg.mozilla.org/integration/mozilla-inbound/rev/0c01bf8a1bd9
Support a 'continuous' mode for SurfaceTexture r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/d6516a10c808
Adjust Android Flash support to API changes r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/9d3843274c67
Update JNI bindings r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/adf185af7963
Add jni::GetAPIVersion() to get Android API version r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/f94c4f5bf53a
Don't use AndroidBridge to get API version in media stack r=jolin
Comment 90•8 years ago
|
||
Pushed by jwillcox@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/d047739306d9
back out f94c4f5bf53a for test failures r=me
Comment 91•8 years ago
|
||
Backed out for failing chrome's test_video_discovery.html and mda's test_Eviction_mp4.html, both on Android:
https://hg.mozilla.org/integration/mozilla-inbound/rev/215d55f7a37f2ae278e58822202d366e1913828c
https://hg.mozilla.org/integration/mozilla-inbound/rev/897d1373d09524ad16ea239e5d467f18a7a98acd
https://hg.mozilla.org/integration/mozilla-inbound/rev/837571f77f6f8567ee5c257ef3b8dc75085bda35
https://hg.mozilla.org/integration/mozilla-inbound/rev/0d58d6c747b3f8b5e28ba010c0b157175cfd02e8
https://hg.mozilla.org/integration/mozilla-inbound/rev/3a039782475fc03add8cad102c1664663b925f2e
https://hg.mozilla.org/integration/mozilla-inbound/rev/f0ecaccefc636e8be23c4033adb9e31111b32807
https://hg.mozilla.org/integration/mozilla-inbound/rev/d3e4300c8976e793f9ecbc44b2e2d9a603184148
https://hg.mozilla.org/integration/mozilla-inbound/rev/c74f6afe9f3c8b4fa9d5b26c4b506be0ca6c3331
https://hg.mozilla.org/integration/mozilla-inbound/rev/bba1444daf9a7f9682fb83e93967bb5e24178778
https://hg.mozilla.org/integration/mozilla-inbound/rev/ecff8148ec7a7c39fffbb8d39fb80845e9bbaf60
https://hg.mozilla.org/integration/mozilla-inbound/rev/3aca5a0bd0b471b0f99c930c1ed9fe65fea54646
https://hg.mozilla.org/integration/mozilla-inbound/rev/e3f581845c7e7312e34d25e80a133e13ee1bd94b
https://hg.mozilla.org/integration/mozilla-inbound/rev/bdf0752ee032028354a16a75fd07d2285877e861
Latest follow-up push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=d047739306d954ac5fc7671ecab3140b105b603c&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log c2: https://treeherder.mozilla.org/logviewer.html#?job_id=96947144&repo=mozilla-inbound
[task 2017-05-05T16:45:00.529336Z] 16:45:00 INFO - 170 INFO TEST-START | mobile/android/tests/browser/chrome/test_video_discovery.html
[task 2017-05-05T16:45:21.858298Z] 16:45:21 INFO - INFO | automation.py | Application ran for: 0:13:02.189956
[task 2017-05-05T16:45:21.858554Z] 16:45:21 INFO - INFO | zombiecheck | Reading PID log: /tmp/tmpE_91W5pidlog
[task 2017-05-05T16:45:21.976668Z] 16:45:21 INFO - /data/anr/traces.txt not found
[task 2017-05-05T16:45:23.426944Z] 16:45:23 INFO - mozcrash Downloading symbols from: https://queue.taskcluster.net/v1/task/UJRcFF0kThSELpOEWXqY2Q/artifacts/public/build/target.crashreporter-symbols.zip
[task 2017-05-05T16:45:27.373547Z] 16:45:27 INFO - mozcrash Copy/paste: /home/worker/workspace/build/linux64-minidump_stackwalk /tmp/tmpGoedFf/4bd99da4-c4fd-f67c-c13a-b56efd6bc52f.dmp /tmp/tmpElOwHu
[task 2017-05-05T16:45:33.988267Z] 16:45:33 INFO - mozcrash Saved minidump as /home/worker/workspace/build/blobber_upload_dir/4bd99da4-c4fd-f67c-c13a-b56efd6bc52f.dmp
[task 2017-05-05T16:45:33.988664Z] 16:45:33 INFO - mozcrash Saved app info as /home/worker/workspace/build/blobber_upload_dir/4bd99da4-c4fd-f67c-c13a-b56efd6bc52f.extra
[task 2017-05-05T16:45:33.991854Z] 16:45:33 WARNING - PROCESS-CRASH | mobile/android/tests/browser/chrome/test_video_discovery.html | application crashed [@ 0xb8f4eb17]
[task 2017-05-05T16:45:33.992207Z] 16:45:33 INFO - Crash dump filename: /tmp/tmpGoedFf/4bd99da4-c4fd-f67c-c13a-b56efd6bc52f.dmp
[task 2017-05-05T16:45:33.992387Z] 16:45:33 INFO - Operating system: Android
[task 2017-05-05T16:45:33.992652Z] 16:45:33 INFO - 0.0.0 Linux 2.6.29 #1 PREEMPT Thu Nov 7 22:27:50 UTC 2013 i686
[task 2017-05-05T16:45:33.992841Z] 16:45:33 INFO - CPU: x86
[task 2017-05-05T16:45:33.993070Z] 16:45:33 INFO - GenuineIntel family 6 model 3 stepping 3
[task 2017-05-05T16:45:33.993311Z] 16:45:33 INFO - 1 CPU
[task 2017-05-05T16:45:33.995218Z] 16:45:33 INFO - GPU: UNKNOWN
[task 2017-05-05T16:45:33.995294Z] 16:45:33 INFO - Crash reason: SIGSEGV
[task 2017-05-05T16:45:33.995655Z] 16:45:33 INFO - Crash address: 0x1
[task 2017-05-05T16:45:33.995984Z] 16:45:33 INFO - Process uptime: not available
[task 2017-05-05T16:45:33.996030Z] 16:45:33 INFO - Thread 59 (crashed)
[task 2017-05-05T16:45:33.996366Z] 16:45:33 INFO - 0 0xb8f4eb17
[task 2017-05-05T16:45:33.997257Z] 16:45:33 INFO - eip = 0xb8f4eb17 esp = 0x944b379c ebp = 0xb8f43bb0 ebx = 0xad34cff4
[task 2017-05-05T16:45:33.997335Z] 16:45:33 INFO - esi = 0x00000000 edi = 0x944b3868 eax = 0x00000000 ecx = 0x00000001
[task 2017-05-05T16:45:33.997396Z] 16:45:33 INFO - edx = 0x00000000 efl = 0x00000246
[task 2017-05-05T16:45:33.997455Z] 16:45:33 INFO - Found by: given as instruction pointer in context
[task 2017-05-05T16:45:33.997502Z] 16:45:33 INFO - 1 libstagefright.so + 0x79eec
[task 2017-05-05T16:45:33.997809Z] 16:45:33 INFO - eip = 0xad21aeec esp = 0x944b37a0 ebp = 0xb8f43bb0
[task 2017-05-05T16:45:33.998392Z] 16:45:33 INFO - Found by: stack scanning
[task 2017-05-05T16:45:33.998460Z] 16:45:33 INFO - 2 libxul.so!nsACString::Assign [nsTSubstring.cpp:d047739306d9 : 374 + 0xa]
[task 2017-05-05T16:45:33.998779Z] 16:45:33 INFO - eip = 0xa24d4ee7 esp = 0x944b37c0 ebp = 0x944b3808
[task 2017-05-05T16:45:33.999364Z] 16:45:33 INFO - Found by: stack scanning
[task 2017-05-05T16:45:33.999416Z] 16:45:33 INFO - 3 libomxpluginkk.so + 0x7f34
[task 2017-05-05T16:45:33.999996Z] 16:45:33 INFO - eip = 0x944fbf34 esp = 0x944b3810 ebp = 0xad21ad69 ebx = 0xa24d4de3
[task 2017-05-05T16:45:34.000055Z] 16:45:33 INFO - esi = 0x00000010 edi = 0x00000027
[task 2017-05-05T16:45:34.000110Z] 16:45:33 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.000177Z] 16:45:33 INFO - 4 libomxpluginkk.so!OmxPlugin::OmxDecoder::Init [OmxPlugin.cpp:d047739306d9 : 446 + 0x14]
[task 2017-05-05T16:45:34.000478Z] 16:45:33 INFO - eip = 0x944f8147 esp = 0x944b3820 ebp = 0x944b39b8
[task 2017-05-05T16:45:34.000536Z] 16:45:33 INFO - Found by: stack scanning
[task 2017-05-05T16:45:34.000871Z] 16:45:33 INFO - 5 libomxpluginkk.so!OmxPlugin::CreateDecoder [OmxPlugin.cpp:d047739306d9 : 1079 + 0x8]
[task 2017-05-05T16:45:34.000947Z] 16:45:33 INFO - eip = 0x944f8e2a esp = 0x944b39c0 ebp = 0x944b39f8 ebx = 0x944fbf34
[task 2017-05-05T16:45:34.001006Z] 16:45:33 INFO - esi = 0x9874d100 edi = 0x989d04a0
[task 2017-05-05T16:45:34.001051Z] 16:45:33 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.001651Z] 16:45:33 INFO - 6 libxul.so!mozilla::AndroidMediaPluginHost::CreateDecoder [AndroidMediaPluginHost.cpp:d047739306d9 : 278 + 0x14]
[task 2017-05-05T16:45:34.001722Z] 16:45:33 INFO - eip = 0xa3529838 esp = 0x944b3a00 ebp = 0x944b3a58 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.001773Z] 16:45:33 INFO - esi = 0x9874d100 edi = 0x00000000
[task 2017-05-05T16:45:34.001826Z] 16:45:33 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.001897Z] 16:45:33 INFO - 7 libxul.so!mozilla::AndroidMediaReader::ReadMetadata [AndroidMediaReader.cpp:d047739306d9 : 46 + 0xd]
[task 2017-05-05T16:45:34.002195Z] 16:45:33 INFO - eip = 0xa3529905 esp = 0x944b3a60 ebp = 0x944b3ae8 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.002254Z] 16:45:33 INFO - esi = 0x9896dc00 edi = 0x9896dc00
[task 2017-05-05T16:45:34.002306Z] 16:45:33 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.002391Z] 16:45:33 INFO - 8 libxul.so!mozilla::MediaDecoderReader::AsyncReadMetadata [MediaDecoderReader.cpp:d047739306d9 : 221 + 0x4]
[task 2017-05-05T16:45:34.003006Z] 16:45:33 INFO - eip = 0xa33dffc7 esp = 0x944b3af0 ebp = 0x944b3b38 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.003063Z] 16:45:33 INFO - esi = 0x9896dc00 edi = 0x944b3b18
[task 2017-05-05T16:45:34.003110Z] 16:45:33 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.003526Z] 16:45:34 INFO - 9 libxul.so!mozilla::detail::ProxyRunnable<mozilla::MozPromise<RefPtr<mozilla::MetadataHolder>, mozilla::MediaResult, true>, RefPtr<mozilla::MozPromise<RefPtr<mozilla::MetadataHolder>, mozilla::MediaResult, true> > (mozilla::MediaDecoderReader::*)(), mozilla::MediaDecoderReader>::Run [nsThreadUtils.h:d047739306d9 : 874 + 0xc]
[task 2017-05-05T16:45:34.003869Z] 16:45:34 INFO - eip = 0xa33e94de esp = 0x944b3b40 ebp = 0x944b3b78 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.004425Z] 16:45:34 INFO - esi = 0x988599c0 edi = 0x944b3b58
[task 2017-05-05T16:45:34.004486Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.005096Z] 16:45:34 INFO - 10 libxul.so!mozilla::AutoTaskDispatcher::TaskGroupRunnable::Run [TaskDispatcher.h:d047739306d9 : 205 + 0x6]
[task 2017-05-05T16:45:34.005445Z] 16:45:34 INFO - eip = 0xa2523144 esp = 0x944b3b80 ebp = 0x944b3b98 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.005508Z] 16:45:34 INFO - esi = 0x00000001 edi = 0x98710720
[task 2017-05-05T16:45:34.005561Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.005625Z] 16:45:34 INFO - 11 libxul.so!mozilla::TaskQueue::Runner::Run [TaskQueue.cpp:d047739306d9 : 240 + 0x6]
[task 2017-05-05T16:45:34.006218Z] 16:45:34 INFO - eip = 0xa2527519 esp = 0x944b3ba0 ebp = 0x944b3c18 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.006284Z] 16:45:34 INFO - esi = 0x9874e6e0 edi = 0x944b3bd0
[task 2017-05-05T16:45:34.007094Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.007166Z] 16:45:34 INFO - 12 libxul.so!nsThreadPool::Run [nsThreadPool.cpp:d047739306d9 : 225 + 0x4]
[task 2017-05-05T16:45:34.007254Z] 16:45:34 INFO - eip = 0xa252b824 esp = 0x944b3c20 ebp = 0x944b3c88 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.007563Z] 16:45:34 INFO - esi = 0x98988e20 edi = 0x00000000
[task 2017-05-05T16:45:34.007623Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.007692Z] 16:45:34 INFO - 13 libxul.so!nsThread::ProcessNextEvent [nsThread.cpp:d047739306d9 : 1270 + 0x4]
[task 2017-05-05T16:45:34.008025Z] 16:45:34 INFO - eip = 0xa252d73c esp = 0x944b3c90 ebp = 0x944b3d28 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.008349Z] 16:45:34 INFO - esi = 0x997116a0 edi = 0xa5f163ac
[task 2017-05-05T16:45:34.008400Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.008473Z] 16:45:34 INFO - 14 libxul.so!NS_ProcessNextEvent [nsThreadUtils.cpp:d047739306d9 : 393 + 0x11]
[task 2017-05-05T16:45:34.008778Z] 16:45:34 INFO - eip = 0xa252e388 esp = 0x944b3d30 ebp = 0x944b3d58 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.008842Z] 16:45:34 INFO - esi = 0x00000001 edi = 0x9837a0e0
[task 2017-05-05T16:45:34.008897Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.009245Z] 16:45:34 INFO - 15 libxul.so!mozilla::ipc::MessagePumpForNonMainThreads::Run [MessagePump.cpp:d047739306d9 : 368 + 0xc]
[task 2017-05-05T16:45:34.009327Z] 16:45:34 INFO - eip = 0xa274ec3c esp = 0x944b3d60 ebp = 0x944b3da8 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.009383Z] 16:45:34 INFO - esi = 0x9874da60 edi = 0x9837a0e0
[task 2017-05-05T16:45:34.009429Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.010024Z] 16:45:34 INFO - 16 libxul.so!MessageLoop::RunInternal [message_loop.cc:d047739306d9 : 238 + 0x4]
[task 2017-05-05T16:45:34.010372Z] 16:45:34 INFO - eip = 0xa2731155 esp = 0x944b3db0 ebp = 0x944b3dc8 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.010427Z] 16:45:34 INFO - esi = 0x9837a0e0 edi = 0x9837a0e0
[task 2017-05-05T16:45:34.010473Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.010536Z] 16:45:34 INFO - 17 libxul.so!MessageLoop::Run [message_loop.cc:d047739306d9 : 231 + 0x7]
[task 2017-05-05T16:45:34.010866Z] 16:45:34 INFO - eip = 0xa27312f4 esp = 0x944b3dd0 ebp = 0x944b3df8 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.010932Z] 16:45:34 INFO - esi = 0x9837a0e0 edi = 0x9837a0e0
[task 2017-05-05T16:45:34.010979Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.011572Z] 16:45:34 INFO - 18 libxul.so!nsThread::ThreadFunc [nsThread.cpp:d047739306d9 : 501 + 0x8]
[task 2017-05-05T16:45:34.011655Z] 16:45:34 INFO - eip = 0xa252e4b6 esp = 0x944b3e00 ebp = 0x944b3e48 ebx = 0xa5f14ee8
[task 2017-05-05T16:45:34.012220Z] 16:45:34 INFO - esi = 0x997116a0 edi = 0x9837a0e0
[task 2017-05-05T16:45:34.012274Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.012334Z] 16:45:34 INFO - 19 libnss3.so!_pt_root [ptthread.c:d047739306d9 : 216 + 0x7]
[task 2017-05-05T16:45:34.012675Z] 16:45:34 INFO - eip = 0xa90081db esp = 0x944b3e50 ebp = 0x944b3e98 ebx = 0xa90f6d10
[task 2017-05-05T16:45:34.013187Z] 16:45:34 INFO - esi = 0x9979e880 edi = 0xa9204330
[task 2017-05-05T16:45:34.013229Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.013262Z] 16:45:34 INFO - 20 libc.so + 0xf274
[task 2017-05-05T16:45:34.013315Z] 16:45:34 INFO - eip = 0xb7ecb274 esp = 0x944b3ea0 ebp = 0x00000000 ebx = 0xb7f54ff4
[task 2017-05-05T16:45:34.013355Z] 16:45:34 INFO - esi = 0x944b3f00 edi = 0xb8f4ce10
[task 2017-05-05T16:45:34.013390Z] 16:45:34 INFO - Found by: call frame info
[task 2017-05-05T16:45:34.013444Z] 16:45:34 INFO - 21 libnss3.so!_PR_CreateThread [ptthread.c:d047739306d9 : 541 + 0xa]
[task 2017-05-05T16:45:34.013492Z] 16:45:34 INFO - eip = 0xa90080bd esp = 0x944b3ec4 ebp = 0x00000000
[task 2017-05-05T16:45:34.013527Z] 16:45:34 INFO - Found by: stack scanning
[task 2017-05-05T16:45:34.013558Z] 16:45:34 INFO - 22 libc.so + 0xf179
[task 2017-05-05T16:45:34.013604Z] 16:45:34 INFO - eip = 0xb7ecb179 esp = 0x944b3edc ebp = 0x00000000
[task 2017-05-05T16:45:34.013639Z] 16:45:34 INFO - Found by: stack scanning
[task 2017-05-05T16:45:34.013671Z] 16:45:34 INFO - 23 libc.so + 0x26975
[task 2017-05-05T16:45:34.013717Z] 16:45:34 INFO - eip = 0xb7ee2975 esp = 0x944b3ef0 ebp = 0x00000000
[task 2017-05-05T16:45:34.013752Z] 16:45:34 INFO - Found by: stack scanning
[task 2017-05-05T16:45:34.013802Z] 16:45:34 INFO - 24 libnss3.so!_PR_CreateThread [ptthread.c:d047739306d9 : 541 + 0xa]
[task 2017-05-05T16:45:34.013848Z] 16:45:34 INFO - eip = 0xa90080bd esp = 0x944b3ef4 ebp = 0x00000000
[task 2017-05-05T16:45:34.013883Z] 16:45:34 INFO - Found by: stack scanning
Failure mda: https://treeherder.mozilla.org/logviewer.html#?job_id=96948313&repo=mozilla-inbound
[task 2017-05-05T16:40:00.972084Z] 16:40:00 INFO - 13 INFO TEST-START | dom/media/mediasource/test/test_Eviction_mp4.html
[task 2017-05-05T16:44:59.371557Z] 16:44:59 INFO - Buffered messages logged at 16:40:00
[task 2017-05-05T16:44:59.372526Z] 16:44:59 INFO - 14 INFO TEST-PASS | dom/media/mediasource/test/test_Eviction_mp4.html | Receive a sourceopen event
[task 2017-05-05T16:44:59.372644Z] 16:44:59 INFO - Buffered messages finished
[task 2017-05-05T16:44:59.372871Z] 16:44:59 INFO - 15 INFO TEST-UNEXPECTED-FAIL | dom/media/mediasource/test/test_Eviction_mp4.html | Test timed out.
[task 2017-05-05T16:44:59.372960Z] 16:44:59 INFO - reportError@SimpleTest/TestRunner.js:121:7
[task 2017-05-05T16:44:59.373152Z] 16:44:59 INFO - TestRunner._checkForHangs@SimpleTest/TestRunner.js:142:7
Flags: needinfo?(snorp)
Comment 92•8 years ago
|
||
Pushed by jwillcox@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/96fe52231b57
Add GeckoSurfaceTexture, GeckoSurface and associated Android Service r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/e56e5e1c8786
Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/4519296a323e
Disable blitting from a SurfaceTexture r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/2f19977cd6ab
Allow access to TexturePoolOGL from Java r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/2c2c1e33eccc
Make video decoding work with new SurfaceTexture API r=jolin
https://hg.mozilla.org/integration/mozilla-inbound/rev/3522917d8f10
Don't use inout param for Surface in ICodec r=jolin
https://hg.mozilla.org/integration/mozilla-inbound/rev/bd53533c108e
Support a 'continuous' mode for SurfaceTexture r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/3cb108f7492f
Adjust Android Flash support to API changes r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/4cf8f4d5064c
Update JNI bindings r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/4d486c7469eb
Add jni::GetAPIVersion() to get Android API version r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/31bd912fba54
Don't use AndroidBridge to get API version in media stack r=jolin
Comment 93•8 years ago
|
||
backed out for media test perma-failing on android like https://treeherder.mozilla.org/logviewer.html#?job_id=98512226&repo=mozilla-inbound&lineNumber=2424 & https://treeherder.mozilla.org/logviewer.html#?job_id=98522835&repo=mozilla-inbound&lineNumber=2593
Comment 94•8 years ago
|
||
Backout by ihsiao@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a5e2d088c2ed
Backed out 11 changesets for media test failures on android. a=backout
Assignee | ||
Comment 95•8 years ago
|
||
Ugh. Try run with another fix.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=068fcfd648a517419ea977c3802f20c79159a9dd
Flags: needinfo?(snorp)
Comment 96•8 years ago
|
||
Pushed by jwillcox@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f65355fbb871
Add GeckoSurfaceTexture, GeckoSurface and associated Android Service r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/c33d0ad89ea0
Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/1ca529ddcc14
Disable blitting from a SurfaceTexture r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/079d0ff41f04
Allow access to TexturePoolOGL from Java r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/2dd4da02b18e
Make video decoding work with new SurfaceTexture API r=jolin
https://hg.mozilla.org/integration/mozilla-inbound/rev/c77cd1905676
Support a 'continuous' mode for SurfaceTexture r=jgilbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/92f482c9e659
Adjust Android Flash support to API changes r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/7a0755319fd2
Update JNI bindings r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/1cbaa36e8e93
Add jni::GetAPIVersion() to get Android API version r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/3e8a6417ebd4
Don't use AndroidBridge to get API version in media stack r=jolin
Comment 97•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/f65355fbb871
https://hg.mozilla.org/mozilla-central/rev/c33d0ad89ea0
https://hg.mozilla.org/mozilla-central/rev/1ca529ddcc14
https://hg.mozilla.org/mozilla-central/rev/079d0ff41f04
https://hg.mozilla.org/mozilla-central/rev/2dd4da02b18e
https://hg.mozilla.org/mozilla-central/rev/c77cd1905676
https://hg.mozilla.org/mozilla-central/rev/92f482c9e659
https://hg.mozilla.org/mozilla-central/rev/7a0755319fd2
https://hg.mozilla.org/mozilla-central/rev/1cbaa36e8e93
https://hg.mozilla.org/mozilla-central/rev/3e8a6417ebd4
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox55:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Updated•6 years ago
|
Updated•6 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•