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

h700: batocera-resolution sets display refresh to 144 Hz causing stutter with 60 Hz content #202

Open
mkasick opened this issue Dec 6, 2024 · 4 comments

Comments

@mkasick
Copy link

mkasick commented Dec 6, 2024

Knulli build version

firefly 2024/12/04 03:10

Your architecture

RG35XXSP

Issue description

I started noticing frequent screen stuttering in RetroArch after upgrading to firefly. It's particularly noticeable during full-screen scrolling that should consist of a smooth screen pan. I narrowed this behavior to commit 97174f3, which on H700 boards sets the internal LCD refresh rate to 144 Hz (as reported by fbset -i). Since 144 Hz isn't a multiple of 60 Hz, any 60 Hz content (which is most RetroArch cores) will exhibit stutter.

Is there a particular reason this change was made?

Detailed reproduction steps

Install firefly on an H700 board, run RetroArch on the internal LCD, scroll the screen.

Details of any attempts to fix this yourself

I've modified batocera-resolution to remove the fbset timing changes, and using the kernel's default timings (mode "640x480-60" timings 40000 40 40 44 40 8 4) the scrolling looks much better.

Details of any modifications you have made to Knulli.

None.

Logs and data

Output of fbset prior to upgrading (release 20240721):

mode "640x480-59"
    # D: 24.000 MHz, H: 31.169 kHz, V: 59.370 Hz
    geometry 640 480 640 960 32
    timings 41666 26 84 11 30 20 4
    rgba 8/16,8/8,8/0,8/24
endmode

Output of fbset after upgrading to firefly:

mode "640x480-144"
    # D: 74.482 MHz, H: 72.737 kHz, V: 143.748 Hz
    geometry 640 480 640 960 32
    timings 13426 192 56 22 1 136 3
    rgba 8/16,8/8,8/0,8/24
endmode

Output of fbset after disabling batocera-resolution (kernel defaults):

mode "640x480-60"
    # D: 25.000 MHz, H: 34.341 kHz, V: 60.459 Hz
    geometry 640 480 640 480 32
    timings 40000 40 40 44 40 8 4
    rgba 8/16,8/8,8/0,8/24
endmode
@Mikhailzrick
Copy link
Collaborator

Mikhailzrick commented Dec 12, 2024

Nice catch. If I recall the manual timings were needed because of some kernel mis-match. At least on the few 640x480 devices I've tested so far with firefly it doesn't seem to be needed any longer.

@fluxuspt
Copy link

fluxuspt commented Jan 3, 2025

Hello, i'm with the same issue on my SP, if i rollback to July release it's all smooth.
I've tried to manually change batocera-resolution, commented all fbset lines and changed the values, but after reboot the file it's restored to it's original state.

I've tried as well create a custom_startup.sh on /system, but no luck...

care to share how you managed to sort this issue?

thanks in advanced!

@Mikhailzrick
Copy link
Collaborator

Hello, i'm with the same issue on my SP, if i rollback to July release it's all smooth. I've tried to manually change batocera-resolution, commented all fbset lines and changed the values, but after reboot the file it's restored to it's original state.

I've tried as well create a custom_startup.sh on /system, but no luck...

care to share how you managed to sort this issue?

thanks in advanced!

You could grab the current batocera-resolution file and copy it over the existing one in /usr/bin/ and run the command batocera-save-overlay

@radityaargap
Copy link

Hello, i'm with the same issue on my SP, if i rollback to July release it's all smooth. I've tried to manually change batocera-resolution, commented all fbset lines and changed the values, but after reboot the file it's restored to it's original state.
I've tried as well create a custom_startup.sh on /system, but no luck...
care to share how you managed to sort this issue?
thanks in advanced!

You could grab the current batocera-resolution file and copy it over the existing one in /usr/bin/ and run the command batocera-save-overlay

Could you tell me how to do it in a way that i would understand please, i tried opening the batocera-resolution and there is no mentioning of fbset or anything similar to the lines above. Having to disable threaded video to remove the stuttering introduces audio stuttering. Very annoying, i hope it gets fixed in the next build.

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

4 participants