[Vulkan video] Duplicated frames cause a black screen
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
Sending duplicated frames from the cores cause a black screen.
When using the Vulkan driver in RetroArch, frame duping can result in a
black screen until the next input that causes a new frame to be
rendered. This happens when RetroArch does a video driver reinit. For
example when switching RetroArch from fullscreen to windowed or vice
versa. Or when the core requests a reinit through
RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO.
Expected behavior
Sending duplicate frames with the Vulkan driver, or doing a video driver reinit, Retroarch should show the content on screen, just like with the GL driver.
Actual behavior
Sending duplicate frames with the Vulkan driver, or doing a video driver reinit, Retroarch shows a black screen until a new frame is sent.
Steps to reproduce the bug
Happens on both beetle-psx and dosbox-core when frame-dupping is enable.
So, for example on the dosbox-core core with the Vulkan driver set as video driver:
- Load the dosbox-core core
- Load SuperFrog
- You will be on a black screen until you enter a value or press a key that causes a new different frame to be sent.
Bisect Results
In theory it has always happened with the Vulkan driver. Does not happen with the GL driver.
Version/Commit
You can find this information under Information/System Information
- RetroArch: 1.9.14 stable, and also current GIT code.
Environment information
- OS: GNU/Linux (X11, KMSDRM, Wayland)
- Compiler: gcc version 10.2.1 (Debian 10.2.1-6)
Related bugs
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with dosbox-core, SuperFrog, frame duplication, and the Vulkan video driver, then compare the behavior with the GL driver. Start by tracing video reinitialization through RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO and the duplicated-frame path. Done means duplicated frames remain visible after a Vulkan video-driver reinit without waiting for a new frame.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100