Skip to content

vulkan(replay): don't hard-fail on optional device features the replay GPU lacks - #4

Draft
manon-traverse wants to merge 1 commit into
v1.xfrom
pr-replay-optional-features
Draft

vulkan(replay): don't hard-fail on optional device features the replay GPU lacks#4
manon-traverse wants to merge 1 commit into
v1.xfrom
pr-replay-optional-features

Conversation

@manon-traverse

Copy link
Copy Markdown
Collaborator

Summary

Don't hard-fail replay when the replay GPU lacks an optional physical-device feature the capture enabled.

Problem

Serialise_vkCreateDevice checks each VkPhysicalDeviceFeatures bit the capture enabled against the replay device and aborts with APIHardwareUnsupported if one is missing. When a capture is made on a slightly different driver than replay (e.g. an Android updatable/prerelease Adreno driver at capture vs the system driver at replay), the replay device may not advertise an optional feature (observed: sparseResidencyImage3D), so replay fails outright.

Fix

If the replay device lacks an enabled optional feature, strip it from the replay vkCreateDevice and RDCWARN instead of failing. The frame usually does not exercise the stripped feature, so replay proceeds.

Testing

A capture that previously failed replay with "Capture requires physical device feature 'sparseResidencyImage3D' which is not supported" now opens and replays.


🤖 Draft opened on the Traverse-Research fork for internal human review before any upstream submission.

…y GPU lacks

When replaying a capture on a slightly different driver than it was made on
(e.g. an Android updatable/prerelease driver at capture time vs the system
driver at replay), the replay physical device may not advertise an optional
feature the capture had enabled, and replay aborted with APIHardwareUnsupported.
Strip the unsupported feature from the replay device creation and warn instead,
so the frame can still be replayed - it usually does not exercise the stripped
feature.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant