by Rachael » Sun Mar 15, 2020 8:04 pm
Ok so what's happening here then is, when you are switching away from GZDoom to another window set without the compositor, the surface that Vulkan was using is effectively lost, and that is what causes the error.
The reason why the problem goes away when you run the compositor is because the compositor will force that surface to be retained, even if you don't actually see it. The compositor works by forcing all applications to draw their full windows, and it will handle the hiding/showing of windows and window overlaps by itself, rather than letting the applications deal with that instead.
The basic take-away from this is, then - that you can't minimize GZDoom without the compositor or else it will render to a null surface that doesn't exist, and hence the error.
Considering compositing is a modern feature of all OS's nowadays and pretty much a staple feature (hell, even versions of Windows past 8 refuse to run if you don't have it turned on), I don't know if it's worth going to the extra effort to fix this issue.
Nevertheless though, the fix doesn't seem to be too complex - GZDoom can check for the validity of the surface before rendering to it. Theoretically. I don't know how feasible that actually is, though.
Ok so what's happening here then is, when you are switching away from GZDoom to another window set without the compositor, the surface that Vulkan was using is effectively lost, and that is what causes the error.
The reason why the problem goes away when you run the compositor is because the compositor will force that surface to be retained, even if you don't actually see it. The compositor works by forcing all applications to draw their full windows, and it will handle the hiding/showing of windows and window overlaps by itself, rather than letting the applications deal with that instead.
The basic take-away from this is, then - that you can't minimize GZDoom without the compositor or else it will render to a null surface that doesn't exist, and hence the error.
Considering compositing is a modern feature of all OS's nowadays and pretty much a staple feature (hell, even versions of Windows past 8 refuse to run if you don't have it turned on), I don't know if it's worth going to the extra effort to fix this issue.
Nevertheless though, the fix doesn't seem to be too complex - GZDoom can check for the validity of the surface before rendering to it. Theoretically. I don't know how feasible that actually is, though.