Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensions are locked to ~30fps on macOS #467

Open
GoodBoyNinja opened this issue Sep 25, 2022 · 9 comments
Open

Extensions are locked to ~30fps on macOS #467

GoodBoyNinja opened this issue Sep 25, 2022 · 9 comments

Comments

@GoodBoyNinja
Copy link

GoodBoyNinja commented Sep 25, 2022

Hey.

The problem: On Macs, extensions are locked to <60fps (maybe even 30fps), which makes performance feel much worse than on PC.

I have been testing my extension panel on a 14" M1 Pro MacBook pro with (120hz display).
I can't help but notice that the panel is locked to a lower fps:

Screen.Recording.2022-09-25.at.2.53.37.PM.mov

This is not a code issue nor an M1 issue, I have had this experience with other macs as well.
On PC, the same extension runs buttery smooth.

This is also not a 120hz vs 60hz issue. If I limit my mac's display to 60hz, the maximum fps is still noticeably lower.
I can also use chrome's debugging tools to prove that there are no fps drops in my interface.

Screen.Recording.2022-09-25.at.3.00.20.PM.mov

Other extensions seem to behave the same, feeling just overall sluggish compared to the host app.
This seems purely like a rendering issue, as if your implementation of CEF in After-Effects is capping the maximum frame rate on macs. On PCs things run very smoothly.

I know that you guys are busy and aiming to moving to UXP soon, but please, this is not a small issue.
It affects performance simnifically for all mac users, making buying extensions for mac less appealing and puts a cap on our ability to develop good tools for After-Effects, essentially hurting our income as well.
With the top performance looking like this, you're basically making us feel like the best we can do with 3rd party plugins is to give users some buttons and sliders, and it's really discouraging.

Please look into this. It makes the hard work we put into developing for the Adobe ecosystem feel like a waste of time.
Saar

@GoodBoyNinja
Copy link
Author

@GoodBoyNinja GoodBoyNinja changed the title Extensions are locked to sub-60fps on macOS !!! Extensions are locked to ~30fps on macOS !!! Sep 25, 2022
@GoodBoyNinja GoodBoyNinja changed the title Extensions are locked to ~30fps on macOS !!! Extensions are locked to ~30fps on macOS ! Sep 26, 2022
@GoodBoyNinja GoodBoyNinja changed the title Extensions are locked to ~30fps on macOS ! Extensions are locked to ~30fps on macOS Sep 26, 2022
@GoodBoyNinja
Copy link
Author

Hey!
After some more online reading I couldn't find anything that truly solves the problem.
However, I have found that inserting the following parameters in the manifest.xml inside the <CEFCommandLine> tag makes a difference:

  <Parameter>--windowless-frame-rate=60</Parameter>
  <Parameter>--disable-frame-rate-limit</Parameter>
  <Parameter>--disable-gpu-vsync</Parameter>
  <Parameter>--disable-gpu</Parameter>
  <Parameter>--disable-gpu-compositing</Parameter>
  <Parameter>--hardware-acceleration=false</Parameter>
  <Parameter>--hardware-video-decode-framerate=0</Parameter>
  <Parameter>--enable-begin-frame-scheduling</Parameter>

I believe some of those tags are redundant but not sure yet which ones exactly.

However, that doesn't solve the problem completely. While rendering seems to reach much higher frame rates now, interactions with the mouse are not entirely smooth and can feel a bit off, and some mouse interactions can feel delayed or out of sync. I have not yet tested it on a pc and can't verify it doesn't damage the experience there, which was fine before.

@GoodBoyNinja
Copy link
Author

Any feedback on this issue will be tremendously appreciated, thanks!

@GoodBoyNinja
Copy link
Author

I will try again in a month

@PerryDesign
Copy link

@GoodBoyNinja Did you happen to test on Win and confirm that things are still functioning properly?

@GoodBoyNinja
Copy link
Author

@GoodBoyNinja Did you happen to test on Win and confirm that things are still functioning properly?

Not in the past couple of months, but before that, yes. This extension has been developed mostly on Windows where things were always perfectly smooth. Others' extensions seem to behave similarly.

@PerryDesign
Copy link

@sujaisivanandan Would you be able to take a look at this issue?

@manishkrmishra
Copy link
Contributor

@GoodBoyNinja : The CEF has clamped frame rate @ 30fps for the OSR. CEP doesn't actually interfere here for the performance concerns.
The single available workaround can be to use --disable-frame-rate-limit as CEFCommandLineParameter, but we don't recommend it. It essentially turns the vsync off & can shoot up CPU & GPU usage to max. Also, the results are going to be choppy & stuttering.

@GoodBoyNinja
Copy link
Author

@GoodBoyNinja : The CEF has clamped frame rate @ 30fps for the OSR. CEP doesn't actually interfere here for the performance concerns. The single available workaround can be to use --disable-frame-rate-limit as CEFCommandLineParameter, but we don't recommend it. It essentially turns the vsync off & can shoot up CPU & GPU usage to max. Also, the results are going to be choppy & stuttering.

Sounds like it's time to shift my future hopes towards UXP.
Thank you both for the informative answers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants