libretro / RetroArch

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

Black Frame Insertion doesn't work #9052

Open TheStremon opened 5 years ago

TheStremon commented 5 years ago

Description

The black frame insertion option for 120Hz (with CRT Switchres) doesn't work.

Expected behavior

When I activated the option, retroarch should add one black frame between 2 image frames, to simulate correct 60Hz when in 120Hz.

Actual behavior

The option isn't visible in retroarch menus, and manually activating it in the cfg file does nothing. I filmed my CRT screen with my phone at 240fps to be sure, and there are no black frames added.

Steps to reproduce the bug

  1. Have a compatible CRT 120Hz screen
  2. Activate switchres (with Calamity's CRT driver if needed) and video driver to d3d11
  3. Activate CRT Switchres option for 31kHz screens in retroarch
  4. Change the video_black_frame_insertion to true in the cfg file

Bisect Results

I never tested the function before today, so I can't say when it started. Modified many other options to try, nothing works

Version/Commit

Environment information

ghost commented 5 years ago

If it's not visible in the menu, that means your current video driver does not support it.

TheStremon commented 5 years ago

I see, it makes sense indeed. So after some tests, here how things go: d3d10 and 11 both work with switchres, but don't have BFI d3d9 doesn't work correctly with switchres, the screen resolution get messed up and doesn't fill up the screen. Vulkan and d3d12 simply crash and goes back to the desktop. Open GL works, and has BFI, but the screen flickers randomly, like the BFI falls out of sync sometimes. Is there anything I can do to make it work properly? From the info I could find, the best option should be d3d9 or d3d10. That's of course if it worked and had the option. I tried changing other sync and graphic options, nothing changes. Just in case you need, my graphic card is an AMD HD5770.

inactive123 commented 5 years ago

Somebody needs to implement it for D3D9/D3D10/D3D11/D3D12.

personaone commented 1 year ago

This also doesn't work on MacOS Metal, at least on my machine: [INFO] RetroArch 1.14.0 (Git GIT_VERSION) [INFO] CPU Model Name: Apple M1 Pro [INFO] Capabilities: NEON VFPv3 VFPv4 [INFO] Built: Dec 12 2022 [INFO] Version: 1.14.0 [INFO] Git: GIT_VERSION