Closed
Bug 1280839
Opened 8 years ago
Closed 8 years ago
Recycle TextureClient in SharedPlanarYCbCrImage
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
FIXED
mozilla50
Tracking | Status | |
---|---|---|
firefox50 | --- | fixed |
People
(Reporter: sotaro, Assigned: sotaro)
References
(Blocks 1 open bug)
Details
Attachments
(4 files, 8 obsolete files)
(deleted),
patch
|
nical
:
review+
nical
:
feedback+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
nical
:
review+
nical
:
feedback+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
sotaro
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
sotaro
:
review+
|
Details | Diff | Splinter Review |
It is nice to recycle video buffer of FFmpegVideoDecoder.
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → sotaro.ikeda.g
Assignee | ||
Updated•8 years ago
|
Blocks: unaccel-video
Assignee | ||
Updated•8 years ago
|
Version: 49 Branch → 50 Branch
Assignee | ||
Comment 1•8 years ago
|
||
ImageContainer::CreatePlanarYCbCrImage() creates SharedPlanarYCbCrImage. Then it is nice if video buffers are recycled is handled under SharedPlanarYCbCrImage.
Assignee | ||
Comment 2•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8763726 -
Attachment description: patch - Update SendRecycleTexture usage → patch part 1 - Update SendRecycleTexture usage
Assignee | ||
Comment 3•8 years ago
|
||
Assignee | ||
Comment 4•8 years ago
|
||
Attachment #8763726 -
Attachment is obsolete: true
Assignee | ||
Comment 5•8 years ago
|
||
Attachment #8763751 -
Attachment is obsolete: true
Assignee | ||
Comment 6•8 years ago
|
||
Assignee | ||
Comment 7•8 years ago
|
||
Attachment #8763727 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8764476 -
Attachment description: Handle race condition in CompositableClient::GetTextureClientRecycler() → patch part 2 - Handle race condition in CompositableClient::GetTextureClientRecycler()
Assignee | ||
Comment 8•8 years ago
|
||
Attachment #8764477 -
Attachment is obsolete: true
Assignee | ||
Comment 9•8 years ago
|
||
Comment on attachment 8763823 [details] [diff] [review]
patch part 1 - Update SendRecycleTexture usage
:nical, can you feedback to the patches?
Attachment #8763823 -
Flags: feedback?(nical.bugzilla)
Assignee | ||
Updated•8 years ago
|
Attachment #8764476 -
Flags: feedback?(nical.bugzilla)
Assignee | ||
Updated•8 years ago
|
Attachment #8764494 -
Flags: feedback?(nical.bugzilla)
Comment 10•8 years ago
|
||
Comment on attachment 8764494 [details] [diff] [review]
patch part 3 - Recycle TextureClient in SharedPlanarYCbCrImage
Review of attachment 8764494 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/BufferTexture.cpp
@@ +226,5 @@
> return ImageDataSerializer::SizeFromBufferDescriptor(mDescriptor);
> }
>
> +gfx::IntSize
> +BufferTextureData::GetCbCrSize() const
Nit: this could return a Maybe<gfx::IntSize> (not very important).
::: gfx/layers/client/TextureClientRecycleAllocator.cpp
@@ +88,5 @@
> +YCbCrTextureClientAllocationHelper::IsCompatible(TextureClient* aTextureClient)
> +{
> + MOZ_ASSERT(aTextureClient->GetFormat() == gfx::SurfaceFormat::YUV);
> +
> + BufferTextureData* bufferData = aTextureClient->GetInternalData()->AsBufferTextureData();
Ideally we shouldn't be poking at the internal data, but I guess we don't have a good API to do what you want to do here so it will be ok for now.
Attachment #8764494 -
Flags: feedback?(nical.bugzilla) → feedback+
Comment 11•8 years ago
|
||
Comment on attachment 8764476 [details] [diff] [review]
patch part 2 - Handle race condition in CompositableClient::GetTextureClientRecycler()
Review of attachment 8764476 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/client/CompositableClient.cpp
@@ +276,5 @@
> + ImageBridgeChild::GetSingleton()->GetMessageLoop()->PostTask(runnable.forget());
> +
> + // should stop the thread until done.
> + while (!done) {
> + barrier.Wait();
Hopefully we don't run into this case too often...
Attachment #8764476 -
Flags: feedback?(nical.bugzilla) → feedback+
Updated•8 years ago
|
Attachment #8763823 -
Flags: feedback?(nical.bugzilla) → feedback+
Assignee | ||
Comment 12•8 years ago
|
||
>
> ::: gfx/layers/client/TextureClientRecycleAllocator.cpp
> @@ +88,5 @@
> > +YCbCrTextureClientAllocationHelper::IsCompatible(TextureClient* aTextureClient)
> > +{
> > + MOZ_ASSERT(aTextureClient->GetFormat() == gfx::SurfaceFormat::YUV);
> > +
> > + BufferTextureData* bufferData = aTextureClient->GetInternalData()->AsBufferTextureData();
>
> Ideally we shouldn't be poking at the internal data, but I guess we don't
> have a good API to do what you want to do here so it will be ok for now.
Yea, we do not have a good API for now, then I used a bit dirty way.
Assignee | ||
Comment 13•8 years ago
|
||
Apply the comment.
Attachment #8764494 -
Attachment is obsolete: true
Assignee | ||
Comment 14•8 years ago
|
||
Assignee | ||
Comment 15•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8763823 -
Flags: review?(nical.bugzilla)
Assignee | ||
Updated•8 years ago
|
Attachment #8764476 -
Flags: review?(nical.bugzilla)
Assignee | ||
Updated•8 years ago
|
Attachment #8765331 -
Flags: review?(nical.bugzilla)
Assignee | ||
Updated•8 years ago
|
Attachment #8766182 -
Flags: review?(nical.bugzilla)
Assignee | ||
Updated•8 years ago
|
Attachment #8766182 -
Flags: review?(nical.bugzilla)
Updated•8 years ago
|
Attachment #8763823 -
Flags: review?(nical.bugzilla) → review+
Updated•8 years ago
|
Attachment #8764476 -
Flags: review?(nical.bugzilla) → review+
Updated•8 years ago
|
Attachment #8765331 -
Flags: review?(nical.bugzilla) → review+
Assignee | ||
Comment 16•8 years ago
|
||
Attachment #8766182 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8766211 -
Flags: review?(nical.bugzilla)
Updated•8 years ago
|
Attachment #8766211 -
Flags: review?(nical.bugzilla) → review+
Assignee | ||
Comment 17•8 years ago
|
||
Rebased.
Attachment #8765331 -
Attachment is obsolete: true
Attachment #8766607 -
Flags: review+
Assignee | ||
Comment 18•8 years ago
|
||
Rebased.
Attachment #8766211 -
Attachment is obsolete: true
Attachment #8766610 -
Flags: review+
Comment 19•8 years ago
|
||
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/00203ba4e8bf
Recycle SharedPlanarYCbCrImage r=nical
Comment 20•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox50:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Assignee | ||
Updated•8 years ago
|
Summary: Recycle video buffer of FFmpegVideoDecoder → Recycle TextureClient in SharedPlanarYCbCrImage
Updated•4 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•