GPU disconnects randomly while playing

My RTX 3070 (laptop) disconnects randomly while gaming, if connected to an external display, the connection to it losts, if using just the laptop screen, the game crashes and if nvidia-smi is run in the terminal it shows: unable to determine the device handle for gpu0:0000:01:00.0 unknown error
Driver Version: 595.58.03
I use Hyprland

Never seen such a thing before, but immediate gut instinct is failing hardware.

Game puts GPU under heavy load, it heats up, either overheats or loses contact somewhere due to heat expansion. Would be my guess.

One way to confirm would be to try in a different OS, if you have one installed. If not, Nobara has LiveISOs that come preloaded with Nvidia drivers. The driver version will probably be different too, which is also a good thing to test against. You could spin up the LiveISO and try running something that puts a heavy load on the GPU, see if it happens there as well.

Hello there. I’ve seen this exact behavior on a friend’s laptop that also has an rtx3070 mobile but on windows.

While playing for an extended period of time his dGPU would “randomly” cut out entirely and the game would switch to running on the integrated graphics. Then after some time the game would automagically return to running on the 3070.

I highly doubt the operating system is at fault here. Like @zymotek suspects it is a hardware failure but one that can be fixed.

In this case the GPU temperature was completely fine (60-75C) and it would still cut out during gaming anyway. I would strongly suggest either you or a computer service check the condition of the thermal pads on top of the gpu’s VRMs and / or check if the heatsinks are clogged with dust because this laptop had the thermal pads completely cooked and brittle. The mosfets would silently overheat and cause the GPU power rail to cut off to protect itself. To my knowledge VRMs do not expose a temp sensor to the OS so just have the pads checked to be sure.

For now the problem seems to be solved, we’ll see.
Settings which I tried and may be the solution:

  • mask nvidia-powerd as the service showed in a log to be failing to control its parameters, the mask is needed in order to avoid that supergfxd launchs it automatically.
  • to avoid the possibility of the gpu being forced to shutdown or suspend while gaming:
    • set minimum clocks via systemd
    • set Runtime PM to ON via regla udev

Just a hunch / slightly educated guess:

IIRC nvidia-powerd is required on laptops for nvidia GPUs to reach maximum potential and, without it, the GPU caps its power draw at a more conservative level. I suspect that, by disabling it, you’ve effectively underclocked your GPU, which means it will generate less heat, and therefore be less likely to glitch out due to overheating. Could confirm by watching GPU wattage and temperatures while a game is running, for example using btop (press 5 to toggle GPU stats), or mangohud, with and without the service running.