Win + Shift + Arrow Key shortcut causes rendering issues and crashes
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
Used RetroArch for the first time ever on steam and wanted to change the screen it was on with the Win + Shift + Arrow Key shortcut and then my pc crashed with the error VIDEO_SCHEDULER_INTERNAL_ERROR 0x119 and restarted automatically. Tested it out with the nightly version too and it crashed too. After some tests i figured out it only crashed when the refresh rate of my monitors didn't match (one was 240hz and the other one was 60hz). Video attached shows how it looks when both monitors are set to 60hz. when changing one back to 240hz and trying the same thing it crashes. i have no games installed added no cores and didn't change any settings. It also only happens when it's in fullscreen.
https://github.com/user-attachments/assets/ce43ebe7-203a-4641-8d9b-a383545fc606
Expected behavior
Expected it to change screens with no issues
Steps to reproduce the bug
- Change the refresh rate of one of your monitors so it doesn't match the other one
- Open RetroArch and put it in fullscreen
- Press Win + Shift + Arrow Key
Version/Commit
1.22.2 cf30bc29bb
Bisect Results
No response
Present in the nightly version
Yes, this is reproduced in the nightly build
Platform & operating system
Windows 11 Pro 25H2 build 26200.8037
Affected Cores
No response
Environment information
No response
Relevant log output
[INFO] RetroArch 1.22.2 (Git c335fa9)
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i3-10100F CPU @ 3.60GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2
[INFO] Version: 1.22.2
[INFO] Git: c335fa9
[INFO] Built: Mar 3 2026
[INFO] =================================================
[INFO] [Input] Found input driver: "dinput".
[INFO] [Environ] SET_PIXEL_FORMAT: RGB565.
[INFO] [Core] Version of libretro API: 1, Compiled against API: 1
[INFO] [Core] Geometry: 320x240, Aspect: 1.333, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Video] Set video size to: fullscreen.
[INFO] [XInput] Found XInput v1.4.
[INFO] [Input] Found joypad driver: "dinput".
[INFO] [D3D11] Device created (Feature Level: 11.0)
[INFO] [D3D11] Flip model and tear control supported and enabled.
[INFO] [D3D11] Requesting 1 maximum frame latency, using 1.
[INFO] [D3D11] Found GPU at index 0: "NVIDIA GeForce GTX 1660 SUPER".
[INFO] [D3D11] Found GPU at index 1: "Microsoft Basic Render Driver".
[INFO] [D3D11] Using GPU index 0.
[INFO] [Video] Found display server: "win32".
[INFO] [Audio] Set audio input rate to: 48000.00 Hz.
[INFO] [WASAPI] Client initialized (shared, PCM, 48000Hz, 64.0ms).
[INFO] [Audio] Started synchronous audio driver.
[INFO] [Microphone] Initialized microphone driver.
[INFO] [Display] Found display driver: "d3d11".
[INFO] [MIDI] Output device: "Microsoft GS Wavetable Synth".
[INFO] [Playlist] Loading favorites file: "C:\RetroArch-Win64\playlists\builtin\content_favorites.lpl".
[INFO] [Playlist] Loading history file: "C:\RetroArch-Win64\playlists\builtin\content_history.lpl".
[INFO] [Playlist] Loading history file: "C:\RetroArch-Win64\playlists\builtin\content_image_history.lpl".
[INFO] [Playlist] Loading history file: "C:\RetroArch-Win64\playlists\builtin\content_music_history.lpl".
[INFO] [Playlist] Loading history file: "C:\RetroArch-Win64\playlists\builtin\content_video_history.lpl".
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 on Windows 11 with mismatched monitor refresh rates, fullscreen mode, and the Win + Shift + Arrow shortcut. Start by tracing the win32 display path and D3D11 initialization shown in the log. Done means switching screens no longer causes rendering corruption or a VIDEO_SCHEDULER_INTERNAL_ERROR crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- computer-graphics, desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100