-
Notifications
You must be signed in to change notification settings - Fork 371
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
Use 'performance' CPU frequency scaling governor instead of 'ondemand' #820
Comments
Per.: OctoPrint/OctoPi-UpToDate#6 (comment) I would refrain from saying that we should change OctoPi governor. I think we should stay with ondemand, but tune gpu_freq and alike to force specific clock. It will be more power efficient, and will remove re-encoding stuttering. The |
If you can find an alternative solution that resolves the problem, then yeah, I think that's a viable solution, however, as of right now this is the only method that provides results. |
@lps-rocks I think you should try forcing |
That doesn't force a static clock speed. It sets the maximum frequency the GPU blocks will run at, it's still subject to frequency scaling. Right now, you're just throwing solutions at a wall to see what sticks without understanding the underlying technology. If you're going to criticize a working solution, understand it before denouncing it. I'm currently running with https://forums.raspberrypi.com//viewtopic.php?p=169726#p169726
|
I'm just saying that proposing I did not yet test myself |
Claiming something is 'always' bad, is a terrible justification for shouting something down without empirical evidence that it's always bad. The performance governor can be enabled wherever latency sensitive applications exist because state transitions can take enough time to cause delays in processing. It's also generally best when you need significant varying degrees of performance in a very short time period, which is the case with video.
You're making an assumption that it's the GPU core that's the bottleneck when down scaling, and not necessarily the arm cores. Let's test these things before making claims and assumptions - You've wasted enough time trying to justify an untested position. |
Here you are: I just briefly tested this
It solves frame drops on USB cam in my limited testing when using
|
Can you test the inter-frame latency consistency? That was the issue I was seeing was inconsistent interframe timings as well as drops. |
Do you have anything that would analyze pts of h264 stream? |
There's still improvement to be made in |
If there is anything I can ask people to test it might help to narrow down the issue. |
What were you doing?
What did you expect to happen?
Smooth Video playback
What happened instead?
Inconsistant interframe timings.
Did the same happen when running OctoPrint in safe mode?
No since I can't use the new video stack in Safe mode.
Version of OctoPi
OctoPi 1.0.0
Printer model & used firmware incl. version
N/A
Screenshot(s)/video(s) showing the problem:
https://i.hexhost.net/0decc46e-478c-497b-a27e-ed2ab4df8dbb.jpg
I have read the FAQ. (Yes)
Resolution
Changing the CPU frequency scaling governor from 'ondemand' (the default on the base OS that OctoPi is built on) to 'performance' resolved the isues. This tells me the scaling governor 'ondemand' takes too long to transition CPU states when processing video frames.
I opened this under the OctoPi project since this isn't something that 'camera-streamer' can resolve due to it being an OS level configuration item that needs to be changed.
The text was updated successfully, but these errors were encountered: