A downloadable tool for Windows

Download NowName your own price

Does your monitor stay black when waking your PC?

If you own an NVIDIA RTX 40‑series or 50‑series GPU and experience intermittent black screens, “No Signal”, or failed wake‑from‑sleep events, RTXFixer 2.2 is designed to help.

RTXFixer is a lightweight background utility that safely forces Windows to re‑apply valid display modes.
This triggers the GPU and monitor to re‑negotiate their DisplayPort / HDMI handshake, often restoring video output instantly — without rebooting, logging out, or restarting GPU drivers.

What’s New in Version 2.2

  • 🧠 Nuclear Reset Fallback
    When the standard resolution‑cycle fails (e.g. the GPU driver is completely hung), RTXFixer now automatically performs a full display‑adapter reset (CDS_RESET) and retries the handshake — breaking through even deeply locked‑up states.

  • ⚡ Always Responsive
    Display resets now run on a background thread. The tray menu stays fully interactive, even during a fix.

  • 🎯 Smarter Single‑Monitor Handling
    On single‑monitor systems, the tool automatically switches to a full reset — no more silent “no‑op” when targeting secondary displays.

  • 💾 Resolution Preservation
    Instead of forcing a “maximum native” mode, RTXFixer now captures your exact configured resolution, refresh rate, and monitor placement and restores them precisely after the handshake.

  • ⌨ Easier Panic Hotkey
    The hotkey has been changed to Ctrl + Shift + F12 (no more Alt). Faster to press when your screen is black.

  • 📋 Enhanced Logging
    Logs now include millisecond timestamps and thread IDs, making it easier to diagnose what happened.

Works With

  • NVIDIA RTX 40 Series (4060, 4070, 4080, 4090, etc.)
  • NVIDIA RTX 50 Series (5060, 5070, 5080, 5090, etc.)
  • Windows 10 & Windows 11
  • HDMI and DisplayPort monitors
  • Single‑ and multi‑monitor setups

Features

  • ✔ Reliable Handshake Reset + Nuclear Fallback
    Captures your current display settings (resolution, refresh, position) → drops to 1024×768 to break the handshake → restores your exact original settings. If the drop fails, a full adapter reset is triggered automatically and the handshake is retried.

  • ✔ Smart Display Targeting
    Choose from the tray menu: Reset Secondary Only (default, safest), Reset Primary Only, or Reset ALL Displays. Single‑monitor systems are handled intelligently — no skipped resets.

  • ✔ Automatic Resume Protection
    Detects system wake‑from‑sleep and only fires if no active display paths are found, preventing unnecessary flicker.

  • ✔ Fully Responsive Tray App
    No window, no taskbar clutter. Resets run in the background — the tray icon and menu never freeze.

  • ✔ Cooldown & Concurrency Safety
    Prevents retry storms (hotkey spam, overlapping wake events) with an in‑memory cooldown — no registry writes.

  • ✔ Detailed Logging
    Every action, return code, and step is written to %LocalAppData%\RTXFixer\rtx_fixer.log.

  • ✔ Audio Feedback (Screen‑Independent)
    • 2 low beeps = Fix started
    • 1 high beep = Success
    • 3 low beeps = Failed or suppressed (cooldown / no valid target)

Hotkey

Ctrl + Shift + F12
Triggers the fix using the current target mode (set via tray menu).
(Previously Ctrl+Alt+Shift+F12 — now even easier to press during a black‑screen emergency.)

How to Use

  1. Download and extract the ZIP file (do not run directly from inside the archive).
  2. Run RTXFixer.exe — the app starts silently in your system tray.
  3. Manual fix:
    • Press Ctrl + Shift + F12, or
    • Right‑click the tray icon → Force Handshake Fix
  4. Advanced targeting: right‑click tray icon → select Reset Secondary Only, Reset Primary Only, or Reset ALL Displays.

Optional: Run on Startup (Recommended)

  1. Right‑click RTXFixer.exeCreate shortcut
  2. Press Win + R, type shell:startup and press Enter
  3. Move the shortcut into that folder

RTXFixer will now launch silently at login.

Emergency Backup (Windows Shortcut)

If RTXFixer cannot restore your display:
Win + Ctrl + Shift + B
(Restarts the graphics driver — more disruptive, but effective)

RTXFixer is recommended first because it is gentler and preserves open apps.

What This Tool Does NOT Do

RTXFixer does not:

  • Install, modify, or replace GPU drivers
  • Permanently change display settings
  • Overclock hardware
  • Modify system files beyond safe Windows APIs

RTXFixer only re‑applies existing, valid display modes.

⚠️ IMPORTANT: What This Does NOT Fix

This tool is designed for display handshake bugs only.

It will NOT fix:

❌ Physically faulty HDMI / DisplayPort cables
❌ Dead monitors or GPUs
❌ System crashes or freezes (BSOD)
❌ PCs that are fully unresponsive to input

If your keyboard LEDs don’t respond, this tool cannot help.

Disclaimer

RTXFixer is a community‑made utility and is not affiliated with NVIDIA.

Provided as‑is, without warranty of any kind.
Tested on Windows 11. Use at your own risk.

Updated 19 days ago
StatusReleased
CategoryTool
PlatformsWindows
Authorkivsa85
Tagsblack-screen, driver, fix, gpu, handshake, nvidia, rtx, tool, utility, windows
Average sessionA few seconds
LanguagesEnglish
InputsKeyboard, Mouse
AccessibilityBlind friendly
AI DisclosureAI Assisted, Code

Download

Download NowName your own price

Click download now to get access to the following files:

RTXFixer_v2.2.rar 48 MB

Development log

Comments

Log in with itch.io to leave a comment.

Hola,

Primero gracias por la herramienta, la idea es justo lo que necesitaba para el bug de pantallas negras de las RTX 50 series. Quería reportar un caso en el que el fix no funciona, con logs incluidos por si ayuda a depurarlo.

Mi setup: RTX 5070 Ti, 3 monitores (DISPLAY1 y DISPLAY3 secundarios, DISPLAY2 primario), TargetMode=SecondaryOnly.

Cuando ejecuto el fix con las pantallas ya en negro (handshake roto), el log muestra esto:

[WARN] Safe search failed; fallback 1024x768 test RC=-1

[STEP] DROP 1024x768@60Hz Fields=0x207C00A0

[RC] Drop RC=-1

[WARN] No successful resets.

Es decir, incluso el CDS_TEST inicial sobre el modo de fallback (1024x768@60Hz) devuelve RC=-1, antes de intentar aplicar ningún cambio real. Esto pasa tanto en DISPLAY1 como en DISPLAY3, así que no parece específico de un monitor.

Cuando el bug NO ha ocurrido y ejecuto el mismo atajo solo para probar, todo funciona perfecto (TEST, DROP y RESTORE devuelven RC=0 sin problema).

Mi sospecha (sin ser experto) es que cuando el handshake DP/HDMI se rompe del todo, el driver nvlddmkm deja de aceptar cualquier consulta/cambio de modo en los displays secundarios, no solo el modo que la app prueba primero. Si es así, quizás el problema no esté en qué modo eligen probar, sino en que haría falta otro mecanismo aparte del cambio de resolución (por ejemplo, forzar un reset del adaptador de pantalla completo, no solo del modo, o reintentar tras un pequeño delay) para esos casos en los que el subsistema está completamente colgado.

Te paso el log completo por si es útil:

2026-06-18 18:00:43 | [START] RTXFixer started. TargetMode=SecondaryOnly

2026-06-18 18:01:24 | [RUN] Manual=True TargetMode=SecondaryOnly

2026-06-18 18:01:24 | [TARGET] \\.\DISPLAY1 (NVIDIA GeForce RTX 5070 Ti) Primary=False

2026-06-18 18:01:24 | [TEST] 640x480@75Hz RC=0

2026-06-18 18:01:24 | [INFO] Selected drop mode 640x480@75Hz

2026-06-18 18:01:24 | [STEP] DROP 640x480@75Hz Fields=0x7C0080

2026-06-18 18:01:25 | [RC] Drop RC=0

2026-06-18 18:01:26 | [STEP] RESTORE 1920x1080@75Hz

2026-06-18 18:01:27 | [RC] Restore RC=0

2026-06-18 18:01:27 | [OK] Restore applied (RC=0).

2026-06-18 18:01:27 | [INFO] Skipping \\.\DISPLAY2 (Primary=True)

2026-06-18 18:01:27 | [TARGET] \\.\DISPLAY3 (NVIDIA GeForce RTX 5070 Ti) Primary=False

2026-06-18 18:01:27 | [TEST] 640x480@144Hz RC=0

2026-06-18 18:01:27 | [INFO] Selected drop mode 640x480@144Hz

2026-06-18 18:01:27 | [STEP] DROP 640x480@144Hz Fields=0x7C0080

2026-06-18 18:01:28 | [RC] Drop RC=0

2026-06-18 18:01:29 | [STEP] RESTORE 1920x1080@144Hz

2026-06-18 18:01:30 | [RC] Restore RC=0

2026-06-18 18:01:30 | [OK] Restore applied (RC=0).

2026-06-18 19:24:18 | [RUN] Manual=True TargetMode=SecondaryOnly

2026-06-18 19:24:18 | [INFO] Skipping \\.\DISPLAY6 (Primary=True)

2026-06-18 19:24:18 | [TARGET] \\.\DISPLAY7 (NVIDIA GeForce RTX 5070 Ti) Primary=False

2026-06-18 19:24:18 | [WARN] Safe search failed; fallback 1024x768 test RC=-1

2026-06-18 19:24:18 | [STEP] DROP 1024x768@60Hz Fields=0x207C00A0

2026-06-18 19:24:18 | [RC] Drop RC=-1

2026-06-18 19:24:18 | [TARGET] \\.\DISPLAY8 (NVIDIA GeForce RTX 5070 Ti) Primary=False

2026-06-18 19:24:18 | [WARN] Safe search failed; fallback 1024x768 test RC=-1

2026-06-18 19:24:18 | [STEP] DROP 1024x768@60Hz Fields=0x207C00A0

2026-06-18 19:24:18 | [RC] Drop RC=-1

2026-06-18 19:24:18 | [WARN] No successful resets.

2026-06-18 19:24:31 | [RUN] Manual=True TargetMode=SecondaryOnly

2026-06-18 19:24:31 | [INFO] Skipping \\.\DISPLAY6 (Primary=True)

2026-06-18 19:24:31 | [TARGET] \\.\DISPLAY7 (NVIDIA GeForce RTX 5070 Ti) Primary=False

2026-06-18 19:24:31 | [WARN] Safe search failed; fallback 1024x768 test RC=-1

2026-06-18 19:24:31 | [STEP] DROP 1024x768@60Hz Fields=0x207C00A0

2026-06-18 19:24:31 | [RC] Drop RC=-1

2026-06-18 19:24:31 | [TARGET] \\.\DISPLAY8 (NVIDIA GeForce RTX 5070 Ti) Primary=False

2026-06-18 19:24:31 | [WARN] Safe search failed; fallback 1024x768 test RC=-1

2026-06-18 19:24:31 | [STEP] DROP 1024x768@60Hz Fields=0x207C00A0

2026-06-18 19:24:31 | [RC] Drop RC=-1

2026-06-18 19:24:31 | [WARN] No successful resets.

2026-06-18 19:26:42 | [START] RTXFixer started. TargetMode=SecondaryOnly

2026-06-18 19:50:13 | [START] RTXFixer started. TargetMode=SecondaryOnly

Si necesitas que pruebe alguna build de depuración o cambios concretos, encantado de ayudar. Gracias de nuevo por el trabajo.

Un saludo.

Hola,
Working on it, will let you know when I'm done.

Mucho gracias

Hi MIDASs18,
Please download the updated version (2.2) and advise if it's working for you.
Thank you