libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.08k stars 1.81k forks source link

BFI causing strange flicker/pulsing with arcade roms #13477

Open Papadon23 opened 2 years ago

Papadon23 commented 2 years ago

First and foremost consider this:

Description

Black Frame Insertion appears to have pulsing/flickering (not the normal, expected flicker) that happens when running various arcade games using any working core (FB Alpha, FB Neo, MAME, etc.).

This takes place at BFI 1 (120hz) and BFI 2 (180hz) using either GL and VULKAN back ends.

I've verified it happening on 2 separate systems, both very powerful; 5800x with a 3080, and 5600g (onboard APU). BFI works perfectly fine on all console systems (SNES, NES, GENESIS, etc.)

Expected behavior

BFI should work properly on all cores/systems

Actual behavior

BFI causes random, large flickers/pulsing when loading many arcade games. Specifically, I tested Final Fight and Double Dragon with a number of cores, all producing the same issue.

Steps to reproduce the bug

  1. Set refresh rate to either 120hz or 180hz on desktop
  2. Launch retroarch and set the gpu driver to either VULKAN or GL
  3. Select BFI 1 or BFI 2 (depending on 120hz or 180hz monitor refresh)
  4. Load any 'arcade' core and try to play Final Fight/Double Dragon

Bisect Results

[Try to bisect and tell us when this started happening]

Version/Commit

You can find this information under Information/System Information

Environment information

hizzlekizzle commented 2 years ago

CPS1 runs at ~59.6 and Double Dragon runs at 57 Hz. If you're running these at their actual speeds (as opposed to re-timing them to 60 Hz), the BFI will flicker/pulse on the difference in timing. The default RetroArch settings should speed those games up to 60 Hz, which would provide smooth, non-flickering BFI.

Try moving your retroarch.cfg somewhere else temporarily to revert to default settings and change just the BFI settings and see if the issue resolves.

Papadon23 commented 2 years ago

Thanks for the info! I did create new cfgs multiple times by simply deleting them and starting over. I also tried sync to exact content both on and off, with the same results.

Any other potential settings or could this perhaps be a bug you think?

Cheers,

On Mon., Jan. 10, 2022, 11:14 p.m. hizzlekizzle, @.***> wrote:

CPS1 runs at ~59.6 and Double Dragon runs at 57 Hz. If you're running these at their actual speeds (as opposed to re-timing them to 60 Hz), the BFI will flicker/pulse on the difference in timing. The default RetroArch settings should speed those games up to 60 Hz, which would provide smooth, non-flickering BFI.

Try moving your retroarch.cfg somewhere else temporarily to revert to default settings and change just the BFI settings and see if the issue resolves.

— Reply to this email directly, view it on GitHub https://github.com/libretro/RetroArch/issues/13477#issuecomment-1009583564, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVGJFUM6AN2VNQSWUCQH4HDUVOVBBANCNFSM5LVHAKQQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

Papadon23 commented 2 years ago

OK - so after some further testing, and thanks to you pointing me in the right direction, it's DEFINITELY 'sync exact content to framerate' setting that is causing the flickering. As soon as that gets toggled to ON, the config file is basically dead. Even if I flip it back to OFF, the flickering will live on until I make a new config file. Perhaps the issue lies in whatever that setting does to other settings in the config file once it's activated?

Should we expect that the feature works with BFI in all games?

hizzlekizzle commented 2 years ago

IIRC, that feature works with BFI only on variable refresh-rate (i.e., gsync/freesync) displays. It is indeed a sort of "meta" option that sets a few other options at the same time, but I'm surprised that it's not re-setting those options when it's disabled. I'll see if anyone can reproduce.

Papadon23 commented 2 years ago

Thanks for looking into it - I am testing it with gsync and freesync displays with the variable refresh rates confirmed as working in applications. If it helps at all, the monitors I'm using are as follows: Asus VG27AQ (Gsync with a 3080) and Asus VG279QM (Freesync with a 5600g).