mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
Guard renderWorld/renderHUD against null command buffer after device lost
After VK_ERROR_DEVICE_LOST, beginFrame returns VK_NULL_HANDLE but renderWorld() and renderHUD() were still called, passing the null handle to vkCmdBindPipeline which triggered a validation abort.
This commit is contained in:
parent
4cd1abd5a6
commit
0c5a915db3
1 changed files with 4 additions and 0 deletions
|
|
@ -3166,6 +3166,9 @@ void Renderer::renderOverlay(const glm::vec4& color) {
|
||||||
void Renderer::renderWorld(game::World* world, game::GameHandler* gameHandler) {
|
void Renderer::renderWorld(game::World* world, game::GameHandler* gameHandler) {
|
||||||
(void)world;
|
(void)world;
|
||||||
|
|
||||||
|
// Guard against null command buffer (e.g. after VK_ERROR_DEVICE_LOST)
|
||||||
|
if (currentCmd == VK_NULL_HANDLE) return;
|
||||||
|
|
||||||
// GPU crash diagnostic: skip ALL world rendering to isolate crash source
|
// GPU crash diagnostic: skip ALL world rendering to isolate crash source
|
||||||
static const bool skipAll = (std::getenv("WOWEE_SKIP_ALL_RENDER") != nullptr);
|
static const bool skipAll = (std::getenv("WOWEE_SKIP_ALL_RENDER") != nullptr);
|
||||||
if (skipAll) return;
|
if (skipAll) return;
|
||||||
|
|
@ -3731,6 +3734,7 @@ void Renderer::setTerrainStreaming(bool enabled) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::renderHUD() {
|
void Renderer::renderHUD() {
|
||||||
|
if (currentCmd == VK_NULL_HANDLE) return;
|
||||||
if (performanceHUD && camera) {
|
if (performanceHUD && camera) {
|
||||||
performanceHUD->render(this, camera.get());
|
performanceHUD->render(this, camera.get());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue