Remix.run Logo
oreally 3 hours ago

> Seems to be something gamedevs are not commonly testing, and perhaps difficult to defend against when a game is directly interacting with the GPU.

I can guarantee you any gamedev worth his salt will have used alt-tab at some point in the game's development on windows. It's an incredibly common hotkey to use, and the devs very likely have multiple ides, notepads, image editing software running concurrently. You seem to be trying really hard.

> when a game is directly interacting with the GPU.

Most devs are using cross platform graphics APIs. OpenGL/DirectX/Vulkan. Alt-tab breaking is likely an OS issue.

timschmidt 2 hours ago | parent [-]

> I can guarantee you any gamedev worth his salt will have used alt-tab at some point in the game's development on windows.

Not exactly a repeatable testing framework, that.

> You seem to be trying really hard.

I almost strained a typing finger! /s lol

> Most devs are using cross platform graphics APIs. OpenGL/DirectX/Vulkan. Alt-tab breaking is likely an OS issue.

All the OSes seem to suffer from it similarly. More likely an issue that even the cross-platform graphics APIs rely heavily on shared memory buffers and most games depend on code written in languages which aren't strictly memory safe. Sharing a memory buffer between CPU and GPU (or even just multiple CPU cores) is quite difficult to do safely under all possible circumstances without proper language support.

oreally 2 hours ago | parent [-]

Yea I don't know how you can consider something as not 'tested' without a testing framework behind it.

timschmidt 2 hours ago | parent [-]

Perhaps you're not a software developer. Most devs understand that there's a big difference between "it worked for me a few times on my development workstation" and "it's routinely tested in all possible configurations under a variety of circumstances as part of a test harness or CI/CD process".

In fairness to game devs, alt-tab'ing out of a running game would be a challenge for many testing frameworks as it's not something you can do at compile time, requires running the game for a period of time (CI servers don't typically have GPUs), requires some sort of keyboard/mouse automation, and interaction with the underlying OS in addition to the game.

Issues which aren't added to some sort of test suite/CI tend to creep back in to codebases. Especially rapidly developed codebases like games. And threading issues are notoriously challenging to reproduce. Hopefully that helps you understand the difference.