Genymobile / Genymobile/scrcpy
Fps locking to 30 in 3d scenes only.
- Dominant language
- C
- Stars
- 150k
- Forks
- 13.7k
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 2
Description
- Yes, I have read the [FAQ](https://github.com/Genymobile/scrcpy/blob/master/FAQ.md).
- Yes, I have searched in existing [issues](https://github.com/Genymobile/scrcpy/issues).
**Environment**
- OS: Windows 10 Home
- scrcpy version: 1.17
- installation method: Windows Release
- device model: LG8X ThinQ
- Android version: 10
**Describe the bug**
In 3d game scenes I cannot seem to get scrcpy to display at higher than 30 fps despite my phone running the scenes at 60 regardless of what I do. I used Scrcpy's built in fps counter to monitor this.
What I've done:
- First I checked using a 3rd party app that the 3d scenes run on 60fps on my phone even though it was pretty obvious by eye that they did. I verified they do.
- I tried dropping the settings both in scrcpy and in-game significantly to no avail.
- I tried every encoder available to my device with both opengl and direct3d, and whether I ran game and scrcpy settings on high or low, there was minimal if any fps change.
- I tried older scrcpy versions since I recall reaching higher fps values a few months ago during my testing in the same game, though I'd since locked things to 30fps for the sake of favoring resolution and consistency. Strangely I was unable to recreate this when using older versions of scrcpy.
- I tried restarting my phone and my pc.
- Edit* I forgot that I had also tried rendering expired frames to no effect.
Why am I unlocking my fps now if I had previously been locking it to 30fps? Well, with the new update to scrcpy I was testing out different encoders on my device, and found that some increased my performance by a rather hefty amount. I can now run things in much higher fidelity at a stable 30fps, but 3d scenes still won't go above it even with very low settings.
It's very odd. Something seems to be locking the fps to 30 in 3d scenes, as the first few seconds will run at a high frame-rate before locking to an extremely consistent 30-29fps. As for whether the issue stems from somewhere withing scrcpy, my pc or my android device I have no idea.
What my scrcpy.bat usually looks like:
scrcpy -b18M --crop 1080:1920:0:184 --render-driver=opengl -m 1920 --shortcut-mod=lalt --turn-screen-off --encoder 'c2.qti.avc.encoder' --max-fps 60
The low scrcpy settings I tried in addition to changing the in-game 3d resolution to very low were this:
scrcpy -b4M --crop 1080:1920:0:184 --render-driver=direct3d (tried opengl as well) -m 1000 --shortcut-mod=lalt --turn-screen-off --encoder (All different encoders) --max-fps 60
The encoders available to my device that I've tried are:
'OMX.qcom.video.encoder.avc'
'c2.android.avc.encoder'
'OMX.google.h264'
'c2.qti.avc.encoder'
The game in question is "Tales of Crestoria".
I'm a little new to filing github issues, so let me know if there's anything else you require from me!
Edit 2: Well, I experienced something rather odd. I had my phone locked for a good while while still connected via scrcpy. After unlocking it and coming back to the 3d scene I'd left off at, it ran at near 60fps for about a good maybe 7 seconds. So at the very least I can confirm this issue is not a lack of being able to reach those frame-rates at all due to weak hardware or anything.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.