libretro / libretro/RetroArch

Win + Shift + Arrow Key shortcut causes rendering issues and crashes

Open
#18,835 0 comments 0 reactions 0 assignees View on GitHub

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
  1. Change the refresh rate of one of your monitors so it doesn't match the other one
  2. Open RetroArch and put it in fullscreen
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.