The default bug view has changed. See this FAQ.

Allow PCompositor to work with Basic Layers backend

RESOLVED FIXED in mozilla15

Status

()

Core
Graphics: Layers
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: romaxa, Assigned: romaxa)

Tracking

Trunk
mozilla15
All
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
Make compositor Parent deal with LAYERS_BASIC backend
Tested with OMTC embedding widget and it seems to work fine.
OMTC embedding has target surface and PCompositorParent working in the same threads, so for other threading model probably additional thread safety code required.
(Assignee)

Comment 1

5 years ago
Created attachment 621694 [details] [diff] [review]
Make PCompositorParent work with BASIC_LAYERS manager
Assignee: nobody → romaxa
Status: NEW → ASSIGNED
Attachment #621694 - Flags: review?(ajuma)

Comment 2

5 years ago
(In reply to Oleg Romashin (:romaxa) from comment #0)
> OMTC embedding has target surface and PCompositorParent working in the same
> threads, so for other threading model probably additional thread safety code
> required.

As I understand it, the thread safety issue comes from using Cairo on both the shadowable side and the shadow side, which would be the case whenever we're doing OMTC with BasicLayers.

I'm fine with taking this patch though, since it lets us starting experimenting with BasicLayers OMTC (which might help us decide whether we want to invest more time in it).

Comment 3

5 years ago
Comment on attachment 621694 [details] [diff] [review]
Make PCompositorParent work with BASIC_LAYERS manager

Review of attachment 621694 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/layers/ipc/CompositorParent.cpp
@@ +501,5 @@
>      if (!slm) {
>        return NULL;
>      }
>      return new ShadowLayersParent(slm, this);
> +  } else if (backendType == LayerManager::LAYERS_BASIC) {

Add a comment here that using this means using Cairo on two threads, so in order to ship this we need to build Cairo thread-safe (which might cause performance regressions).
Attachment #621694 - Flags: review?(ajuma) → review+
The other alternative would be a new basic backend that doesn't use cairo (uses pixman directly maybe?). Not sure if that's a good idea or not.
(Assignee)

Comment 5

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/e9e72f732d8b
https://hg.mozilla.org/mozilla-central/rev/e9e72f732d8b
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla15
You need to log in before you can comment on or make changes to this bug.