Fix MSAA 8x crash and eliminate redundant GPU stalls

- Add error handling: revert to 1x if recreateSwapchain fails
- Clamp requested MSAA to device maximum before applying
- Retry MSAA color image allocation without TRANSIENT on failure
- Remove redundant vkDeviceWaitIdle from WMO/M2/Character recreatePipelines
  (caller already waits once, was causing ~13 stalls instead of 1)
This commit is contained in:
Kelsi 2026-02-22 03:05:55 -08:00
parent e12141a673
commit fa1867cf2f
5 changed files with 17 additions and 7 deletions

View file

@ -3683,7 +3683,6 @@ float M2Renderer::raycastBoundingBoxes(const glm::vec3& origin, const glm::vec3&
void M2Renderer::recreatePipelines() {
if (!vkCtx_) return;
VkDevice device = vkCtx_->getDevice();
vkDeviceWaitIdle(device);
// Destroy old main-pass pipelines (NOT shadow, NOT pipeline layouts)
if (opaquePipeline_) { vkDestroyPipeline(device, opaquePipeline_, nullptr); opaquePipeline_ = VK_NULL_HANDLE; }