Skip to content

Fix Vulkan renderer - #110

Merged
tdecroyere merged 23 commits into
mainfrom
fix-vulkan-renderer
Sep 2, 2026
Merged

Fix Vulkan renderer#110
tdecroyere merged 23 commits into
mainfrom
fix-vulkan-renderer

Conversation

@tdecroyere

@tdecroyere tdecroyere commented Aug 28, 2026

Copy link
Copy Markdown
Member

Fix the Vulkan renderer incrementally after the Vulkan 1.4.357 upgrade.

Current fixes:

  • clamp SystemDataPool commit batches to the number of items actually remaining in the pool, avoiding an out-of-range commit when large temporary pools approach their capacity
  • add a coarse Vulkan acceleration-structure build memory barrier so upload/copy writes and previous acceleration-structure build writes are visible to subsequent BLAS/TLAS builds; this is intentionally temporary until the common/renderer-level synchronization model records those implicit command accesses explicitly
  • wire the swapchain acquire semaphore into the next queue submission instead of leaving it signaled and unwaited
  • use acquire semaphores per frame slot, guarded by the queue timeline fence before reuse
  • use present semaphores per swapchain image, so a binary present semaphore is not reused while presentation may still own it
  • select a supported Vulkan swapchain composite-alpha mode and preserve destination alpha in the renderer compositing passes
  • fix renderer debug-UI command-buffer sizing and use the correct DrawTextShaderParameters push-constant size
  • simplify CPU timeline-fence waiting so LastCompletedFenceValue is updated after a successful vkWaitSemaphores

Validation status:

  • classic Khronos validation and Best Practices remain enabled by --gpu-debug
  • GPU-assisted validation remains optional through the existing GPU-validation option
  • synchronization validation is temporarily disabled: with Vulkan SDK/VVL 1.4.357, its submit-time validation path intermittently causes VK_ERROR_DEVICE_LOST in the Renderer without reporting a useful SYNC-HAZARD-*; base validation, Best Practices, and SyncVal with submit-time validation disabled do not reproduce the failure
  • this does not mean the synchronization model is considered fully validated; SyncVal should be revisited separately with a newer/fixed VVL or a targeted reproducer

Still intentionally deferred:

  • swapchain SUBOPTIMAL / OUT_OF_DATE handling
  • resize/fullscreen cleanup
  • timestamp implementation
  • memory/performance warnings
  • the broader renderer/global barrier-model redesign
  • re-enabling and re-validating synchronization validation

Do not consider the PR ready to merge until the current head has had a final local smoke test. Do not merge without explicit approval.

@tdecroyere
tdecroyere marked this pull request as ready for review September 2, 2026 19:05
@tdecroyere
tdecroyere merged commit a24af9b into main Sep 2, 2026
7 checks passed
@tdecroyere
tdecroyere deleted the fix-vulkan-renderer branch September 2, 2026 19:05
@github-project-automation github-project-automation Bot moved this from Todo to Done in Elemental Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant