GFX-Debuggers (NSight and Renderdoc Injector)

Helps you inject graphics debuggers (NSight and Renderdoc) into Minecraft, without fiddling with launchers or JVM arguments.

2,07k

GFX-Debuggers (NSight and Renderdoc Injector)

GFX Debuggers

This version-agnostic Fabric mod allows you to inject NSight or Renderdoc into Minecraft, without having to fiddle around with launchers, args or environment variables. At launch, it will ask you which debugger you want to attach, and injection can be skipped by closing the dialog. Supports both Linux and Windows, and should work with any version of Minecraft[citation needed], as long as Fabric was ported to it. Requires Fabric Loader 0.14.0+ and Java 17+.

Usage

1. Install Fabric. 2. Drop the mod into your mods folder 3. Launch the game, pick the debugger you want to use 4. Attach to the game process via your debugger of choice 5. Profit?

Advanced usage

You can skip the dialog (useful for dev environments) by setting the `debugger` system property. Allowed options are: ```shell -Ddebugger=nsight-frame # Launch with NSight Frame Debugger -Ddebugger=nsight-gpu # Launch with NSight GPU Trace Profiler -Ddebugger=renderdoc # Launch with RenderDoc -Ddebugger=last # Re-use the last picked debugger and options -Ddebugger=skip # Skip injection entirely, launch the game normally ```

The `last` option reads the saved configuration from the picker dialog (stored in `.minecraft/config/gfx-debuggers.properties`), including the selected debugger, platform, and any GPU Trace options. If no saved config exists, it falls back to showing the picker dialog.

NSight Graphics configuration

If the mod can't find your NSight installation, you can tell it where `ngfx` is:

Use either a JVM system property or an environment variable (the system property takes priority):

| Method | Example | |---|---| | Environment variable | `-Dngfx.path=C:Program FilesNVIDIA CorporationNsight Graphics 2025.5hostwindows-desktop-nomad-x64ngfx.exe` | | Environment variable | `NGFX_PATH=C:Program FilesNVIDIA CorporationNsight Graphics 2025.5` |

Both accept a direct path to the `ngfx` executable, an NSight Graphics installation root directory, or a directory containing the executable directly.

Search paths

Windows: - `%ProgramFiles%NVIDIA CorporationNsight Graphics *hostwindows-desktop-nomad-x64ngfx.exe` - `%ProgramFiles(x86)%NVIDIA CorporationNsight Graphics *hostwindows-desktop-nomad-x64ngfx.exe`

Linux: - `~/nvidia/NVIDIA-Nsight-Graphics-*/host/linux-desktop-nomad-x64/ngfx`

> NSight is kind of a pain to find, as many people install it on different drives and on linux it doesn't really have a standard location outside `~/nvidia/`. The newest version is preferred when multiple installations are found. If you have issues, check the logs to see where it's looking and add the path manually if needed.

RenderDoc configuration

If the mod can't find your RenderDoc installation, you can tell it where the library is:

Use either a JVM system property or an environment variable (the system property takes priority):

| Method | Example | |---|---| | Environment variable | `-Drenderdoc.path=C:Program FilesRenderDoc` | | Environment variable | `RENDERDOC_PATH=C:Program FilesRenderDoc` |

Both accept either a direct path to the library file (`renderdoc.dll` / `librenderdoc.so`) or the directory containing it.

On Linux, the legacy environment variable `RENDERDOC_LIB_PATH` (expects a direct path to `librenderdoc.so`) is still supported.

Search paths

Windows

1. `-Drenderdoc.path` system property 2. `RENDERDOC_PATH` environment variable 3. `%ProgramFiles%RenderDocrenderdoc.dll` 4. Versioned folders in `%ProgramFiles%` (e.g. `RenderDoc v1.32`) 5. Same searches under `%ProgramFiles(x86)%` 6. `%USERPROFILE%RenderDocrenderdoc.dll`

Linux

1. `-Drenderdoc.path` system property 2. `RENDERDOC_PATH` environment variable 3. `RENDERDOC_LIB_PATH` environment variable (legacy) 4. Common system library paths (`/usr/lib64/renderdoc/`, `/usr/lib/`, `/usr/lib/x86_64-linux-gnu/`, `/usr/local/lib/`, etc.) 5. `~/.local/lib/librenderdoc.so`

> Paths are searched in the order listed, and the first valid library found is used. If it can't find a valid .dll/.so, it will bail out and won't inject. Everything should be logged if anything goes wrong, so check the logs if you have issues.

ADS