feat(vulkan): re-enable GPU-Assisted Validation #19

Merged
catbot merged 1 commit from claude/issue-17 into master 2026-06-03 04:11:00 +02:00
Member

What

Re-enables GPU-Assisted Validation (VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT) in the Vulkan instance's VkValidationFeaturesEXT enable list.

Why

GPU-AV was disabled to work around a bug in SDK 1.4.341, whose GPU-AV null-deref'd on descriptor_heap pipelines (VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT with layout = VK_NULL_HANDLE) inside PipelineSubState::GetPipelineLayoutUnion on the first dispatch/draw — Vulkan-ValidationLayers#12103. LunarG fixed it in the following SDK release.

The validation layer in this environment is now 1.4.350 (> 1.4.341), so the workaround is no longer needed and GPU-AV's shader-instrumentation / out-of-bounds checks can come back to aid debugging.

Verification

There is no automated test suite (crafter-build test reports "No tests matched"), so this was verified by exercising the engine directly:

  • Built and ran the HelloUI example, which renders entirely through the descriptor_heap compute pipelines (ui-quads, ui-circles, ui-images, ui-text) — exactly the pipeline class that crashed the old GPU-AV.
  • The layer confirms GPU-AV is active: "Both GPU Assisted Validation and Normal Core Check Validation are enabled".
  • The app renders the full UI for the entire run with no descriptor-heap null-deref, abort, or VUID errors.

Screenshots

HelloUI running with GPU-AV enabled

Resolves #17

## What Re-enables GPU-Assisted Validation (`VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT`) in the Vulkan instance's `VkValidationFeaturesEXT` enable list. ## Why GPU-AV was disabled to work around a bug in SDK 1.4.341, whose GPU-AV null-deref'd on `descriptor_heap` pipelines (`VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT` with `layout = VK_NULL_HANDLE`) inside `PipelineSubState::GetPipelineLayoutUnion` on the first dispatch/draw — [Vulkan-ValidationLayers#12103](https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12103). LunarG fixed it in the following SDK release. The validation layer in this environment is now **1.4.350** (> 1.4.341), so the workaround is no longer needed and GPU-AV's shader-instrumentation / out-of-bounds checks can come back to aid debugging. ## Verification There is no automated test suite (`crafter-build test` reports "No tests matched"), so this was verified by exercising the engine directly: - Built and ran the `HelloUI` example, which renders entirely through the `descriptor_heap` compute pipelines (`ui-quads`, `ui-circles`, `ui-images`, `ui-text`) — exactly the pipeline class that crashed the old GPU-AV. - The layer confirms GPU-AV is active: *"Both GPU Assisted Validation and Normal Core Check Validation are enabled"*. - The app renders the full UI for the entire run with **no** descriptor-heap null-deref, abort, or VUID errors. ## Screenshots ![HelloUI running with GPU-AV enabled](https://forgejo.catcrafts.net/attachments/4be94b46-8b6d-46c3-bb75-6f37b42a4573) Resolves #17
The GPU-AV enable list was removed to dodge a crash in SDK 1.4.341,
whose GPU-AV null-deref'd on descriptor_heap pipelines
(VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT, layout = VK_NULL_HANDLE)
in PipelineSubState::GetPipelineLayoutUnion:
  https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/12103

That was fixed in the next SDK release. The validation layer is now
1.4.350 (> 1.4.341), so restore VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
in the VkValidationFeaturesEXT enable list.

Verified by running the HelloUI example (which draws through the
descriptor_heap compute pipelines) with the layer active: it renders the
full UI for the entire run with GPU-AV reporting "Both GPU Assisted
Validation and Normal Core Check Validation are enabled" and no
descriptor-heap null-deref or VUID errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
catbot merged commit 7c00ddd474 into master 2026-06-03 04:11:00 +02:00
catbot deleted branch claude/issue-17 2026-06-03 04:11:00 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Catcrafts/Crafter.Graphics!19
No description provided.