Closed
Bug 714723
Opened 13 years ago
Closed 13 years ago
CAOpenGLLayer based plugins not being rendered on Firefox 9.0.1
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: vishvesh.com, Unassigned)
References
Details
Attachments
(1 file)
20.20 KB,
application/octet-stream
|
Details |
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
Steps to reproduce:
1. Run any plugin using CAOpenGLLayer for drawing with either Core Animation or Invalidating Core Animation drawing model set.
Actual results:
Nothing is rendered.
Upon investigation it looks like "- (BOOL)canDrawInCGLContext:(CGLContextObj)ctx pixelFormat:(CGLPixelFormatObj)pf forLayerTime:(CFTimeInterval)t displayTime:(const CVTimeStamp *)ts;" is not called.
This doesn't happen on all the Macintosh machines. I was able to generate this issue on machines having following graphics card.
NVIDIA GeForce 8600M GT
ATI Radeon HD 2600 Pro
Intel GMA X3100
Expected results:
Animation should render
Updated•13 years ago
|
Component: General → Plug-ins
Product: Firefox → Core
QA Contact: general → plugins
It works fine on Intel HD Graphics and NVIDIA GeForce GT 330M. The attached plug-in code uses webkits NetscapeCoreAnimationPlugin with a basic CAOpenGLLayer. I was also able to generate the issue with FireBreath example plug-in(BasicMediaPlayer.plugin).
https://bugzilla.mozilla.org/attachment.cgi?id=569333
Comment 3•13 years ago
|
||
I just moved it to the correct area in Bugzilla. You can try poking in either https://lists.mozilla.org/listinfo/dev-tech-plugins or #developers on irc.mozilla.org
Comment 4•13 years ago
|
||
I was away. I will be looking into this issue early next week.
I would recommend using ICA where available:
https://wiki.mozilla.org/NPAPI:InvalidatingCoreAnimation
I see this issue with ICA too. I intend to implement ICA but right now I don't see much of an advantage since there are render problems with ICA on the above mentioned graphics card.
I was able to fix the issue. I commented the property "kCGLPFAAllowOfflineRenderers" in the file nsCoreAnimationSupport.mm.
Line number 455 of Firefox 9 source code.
CGLPixelFormatAttribute attributes[] = {
kCGLPFAAccelerated,
// kCGLPFAAllowOfflineRenderers,
kCGLPFADepthSize, (CGLPixelFormatAttribute)24,
(CGLPixelFormatAttribute)0
};
According to Apple OpenGL mailing thread
Quoting Apple's engineer:
""kCGLPFAAllowOfflineRenderers allows OpenGL view to work correctly if the user is on a MacPro and has two graphics cards and wants to drag the view across the monitors connected to different graphics cards."
--
Robert Chin
Apple Inc."
http://lists.apple.com/archives/mac-opengl/2010/Jan/msg00036.html
Setting this flag causes the rendering to fail on machines with single Graphics Card. All the machines I saw this issue on were machines with single graphics card.
Chromium has multiple checks before setting this property, I think Firefox needs to have them to.
http://src.chromium.org/svn/trunk/src/ui/gfx/gl/gl_context_cgl.cc
Comment 8•13 years ago
|
||
Thanks for the great investigative work Vishvesh :D!
This link has more information for you:
http://developer.apple.com/library/mac/#technotes/tn2229/_index.html
We've introduced this change to support newer macbook pros with dual gpu for battery performance. This is already improved on trunk. We've only enable the kCGLPFAAllowOfflineRenderers for certain plugins that have contacted us asking for this support so your plugin will not get this flag set on trunk.
This change is in Firefox 10: http://mxr.mozilla.org/mozilla-beta/source/gfx/thebes/nsCoreAnimationSupport.mm . Can you see if this is fixed in Firefox 10 beta? I'll see if we plan on releasing an update for Firefox 9.
Reporter | ||
Comment 10•13 years ago
|
||
It seems to be working fine on Firefox 10 beta.
Reporter | ||
Comment 11•13 years ago
|
||
(In reply to Benoit Girard (:BenWa) from comment #8)
> Thanks for the great investigative work Vishvesh :D!
>
> This link has more information for you:
> http://developer.apple.com/library/mac/#technotes/tn2229/_index.html
>
> We've introduced this change to support newer macbook pros with dual gpu for
> battery performance. This is already improved on trunk. We've only enable
> the kCGLPFAAllowOfflineRenderers for certain plugins that have contacted us
> asking for this support so your plugin will not get this flag set on trunk.
>
> This change is in Firefox 10:
> http://mxr.mozilla.org/mozilla-beta/source/gfx/thebes/nsCoreAnimationSupport.
> mm . Can you see if this is fixed in Firefox 10 beta? I'll see if we plan on
> releasing an update for Firefox 9.
Is there going to be an update for this issue on Firefox 9?
Comment 12•13 years ago
|
||
I've asked if this was possible. There is no planned security update for Firefox 9.0 in which I could tag this patch along. This will be released in Firefox 10 in ~3 weeks however.
Reporter | ||
Comment 13•13 years ago
|
||
Okay
Updated•13 years ago
|
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•