Closed Bug 713552 Opened 13 years ago Closed 12 years ago

Add MacIOSurfaceImageBasic

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 715785

People

(Reporter: BenWa, Unassigned)

References

Details

Currently we only support MacIOSurfaceImageOGL. This leads to a lot of nasty conditional code, caused a big headache for async plugins and is about to get significantly worse with bug 90268 and off main thread compositing. This should also remove some XP_MACOSX specific logic.

I'm suggesting that we implement MacIOSurfaceImageBasic to make plugins work more informally. 

This will remove nasty code like:
http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsObjectFrame.cpp#1567
as well as a problem with bug 90268 where mObjectFrame is null during shutdown at:
http://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/nsPluginInstanceOwner.cpp#259
as well as letting plugins with OMTC under Basic work the same way as in OGL.

I image that having MacIOSurfaceImageBasic should be beneficially for mac users that don't get hardware acceleration as well.

Matt was there a reason why MacIOSurfaceImageBasic was never implemented or was it just that we there wasn't a need at the time?
I don't remember the exact reason why we made this GL layers only, cc'ing roc.

Why would it perform better with BasicLayers? The advantage we get with OpenGL is avoiding a readback/upload.

Afaik, we can still only do this when we have Async Rendering, so the majority of the checks in the linked function still need to be there.
(In reply to Matt Woodrow (:mattwoodrow) from comment #1)
> Why would it perform better with BasicLayers? The advantage we get with
> OpenGL is avoiding a readback/upload.

We have to readback into a basic thebes layer for basic which would be no worse then having a MacIOSurfaceImageBasic. It should give us the benefit of being able to have an active layer.

> 
> Afaik, we can still only do this when we have Async Rendering, so the
> majority of the checks in the linked function still need to be there.

We have plugin layers for sync layer rendering on Mac. We're still hitting a small regression with async.
This has been rolled into bug 715785.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
No longer blocks: omtc
Blocks: omtc
You need to log in before you can comment on or make changes to this bug.