---
# System prepended metadata

title: Vulkan backend code coverage

---

# Vulkan backend code coverage

(or missing thereof)

Expected:

 - Various Adapter initialization failure cases
 - Various error cases in Vulkan operations
 - Validation layer stuff
 - All the swapchain stuff
 - Code guarded by toggles
 - SubmitPendingCommands with no pending commands. (just dead code? need end2end tests)

Not expected, not covered by other backend investigation:

 - Creating a vertex buffer of size UINT64_MAX (we add an extra padding byte), same for non-vertex non-index with the alignment to 4. (can't test because of enforcerange)
 - Viewport width = 0 (there is special logic for this in Vulkan)
 - Wrapping a shared image on a lost device
 - Readonly depth stencil attachments for VulkanImageUsage (dead code remove it)
 - [Some descriptor set allocation stress testing](https://analysis.chromium.org/coverage/p/chromium/file?host=chromium.googlesource.com&project=chromium/src&ref=refs/heads/main&revision=a87d6be71e67e4cad7266fc27e8c8d82846d38a0&path=//third_party/dawn/src/dawn/native/vulkan/DescriptorSetAllocator.cpp&platform=linux&test_suite_type=any&modifier_id=0#100)

Not expected, same as other backends

 - Resolving query set (need to test sparsely written query sets)
 - Timestamp writes on passes beginning and end
 - WriteTimestamp in passes
 - Scissor rect
 - Pipeline statistics queries lol
 - Sampler address modes
