If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

OOP plugins 1.5x slower than normal plugins.

RESOLVED INCOMPLETE

Status

()

Core
Plug-ins
RESOLVED INCOMPLETE
8 years ago
6 months ago

People

(Reporter: romaxa, Unassigned)

Tracking

Trunk
x86
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments, 3 obsolete attachments)

(Reporter)

Description

8 years ago
Created attachment 435863 [details]
test plugin

Take Fennec Qt build.
Compile test plugin in attachments.
run fennec on defaultTest.html page with and without dom.ipc.plugins.enabled pref

dom.ipc.plugins.enabled=false - ~28fps
dom.ipc.plugins.enabled=true - ~8fps

Also "return" in beginning of nsPluginInstanceOwner::Paint function does not help.
Seems some problem in IPC or IPC/qt
(Reporter)

Comment 1

8 years ago
Created attachment 435884 [details]
Fixed testcase

Ok, seems first testcase was not very good, because it was overloading CPU and IPC bus with too frequent InvalidateRect calls....

In new test it is fixed, and no difference is:
IPC-ON ~ 30Fps
IPC-OFF ~ 45Fps
IPC - 1.5 times slower now
Attachment #435863 - Attachment is obsolete: true
(Reporter)

Updated

8 years ago
Summary: [QT-Port ?] OOP plugins 3.5x slower than normal plugins. → OOP plugins 1.5x slower than normal plugins.
(Reporter)

Comment 2

8 years ago
Local render - is new API which is painting plugins with image buffer 
X-Surf mode - normal XWindowless API
NO-IPC:
X-Surf mode  - 32 FPS
Local render - 45.5 FPS

IPC:
X-Surf mode  - 27.5 FPS
Local render - 36.0 FPS

We still have some perf problem with IPC plugins... not sure is it a lack of IPC communication or something else.
(Reporter)

Comment 3

8 years ago
Created attachment 443620 [details]
Opreport with test plugin IPC disabled (60FPS)
(Reporter)

Comment 4

8 years ago
Created attachment 443621 [details]
same test plugin, with IPC enabled ~50FPS
(Reporter)

Comment 5

8 years ago
Comment on attachment 443620 [details]
Opreport with test plugin IPC disabled (60FPS)

Ok, seems this profile data not valid...
Attachment #443620 - Attachment is obsolete: true
(Reporter)

Comment 6

8 years ago
Comment on attachment 443621 [details]
same test plugin, with IPC enabled ~50FPS

This too
Attachment #443621 - Attachment is obsolete: true
(Reporter)

Comment 7

8 years ago
I've checked test plugin which is fitting by size in one canvas tile, and FPS rate for widget paint:
NON-IPC - 35fps
IPC - 33.5-34fps

Son in this case different is almost minimal
(Reporter)

Comment 8

8 years ago
When plugin size is bigger than one fennec tile (youtube case), then we have more significant difference:
NON-IPC - 26-27fps
IPC - 22fps
(Reporter)

Comment 9

8 years ago
Created attachment 443625 [details]
Test Plugin bigger than fennec tile IPC enabled, 22fps
(Reporter)

Comment 10

8 years ago
Created attachment 443626 [details]
Test Plugin bigger than fennec tile IPC disabled, 26-27fps
(Reporter)

Comment 11

8 years ago
Plugin size bigger than fennec tile, we have 2 calls in different process during 1 paint event.

When Plugin size <= fennec tile then we have 1 call...

with 1 call we have ~1.5-2 fps difference
with 2 calls we have ~4 fps difference

I'll try to apply patch from bug 556487, and check how it affect on FPS rate when we have 0 calls to plugin process in paint event

Comment 12

6 months ago
Resolving old bugs which are likely not relevant any more, since NPAPI plugins are deprecated.
Status: NEW → RESOLVED
Last Resolved: 6 months ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.