Skip to content

Fix --wsi auto side effects#2837

Merged
MarkY-LunarG merged 1 commit intoLunarG:devfrom
roman-berger-arm:fix-wsi-sideeffects
Apr 13, 2026
Merged

Fix --wsi auto side effects#2837
MarkY-LunarG merged 1 commit intoLunarG:devfrom
roman-berger-arm:fix-wsi-sideeffects

Conversation

@roman-berger-arm
Copy link
Copy Markdown
Contributor

@roman-berger-arm roman-berger-arm commented Mar 31, 2026

Currently --wsi auto (default flag) is adding all surface extensions from the replay and trying to initialize their compositors. This is done to deal with an edge case of where multiple WSIs are available in the caputre. However, when compositors are not available on the replay device, the surface extensions are not removed leading to the application breaking during the vkCreateInstance call with VK_ERROR_EXTENSION_NOT_PRESENT. This makes --remove-unsupported a required option to replay the trace.

The change that creates this behaviour is introduced in PR #2736, while testing the fix I could not reproduce the issue with vulkaninfo that originally prompted this change.

Instead of adding all the surface extensions from the replay and then removing some if they are not available. This change proposes to add them if they are available, by going through all the capture time surface extensions and checking if they are available and then adding them.

@roman-berger-arm roman-berger-arm requested a review from a team as a code owner March 31, 2026 12:22
@fabian-lunarg fabian-lunarg added the approved-to-run-ci Can run CI check on internal LunarG machines label Mar 31, 2026
Comment thread framework/decode/vulkan_replay_consumer_base.cpp
@MarkY-LunarG MarkY-LunarG force-pushed the fix-wsi-sideeffects branch from 40ef154 to fce86da Compare April 9, 2026 13:22
Currently `--wsi auto` (default flag) is adding all surface extensions
from the replay and trying to initialize their compositors. This is
done to deal with an edge case of where multiple WSIs are available
in the caputre. However, when compositors are not available on the
replay device, the surface extensions are not removed leading to the
application breaking during the `vkCreateInstance` call with
`VK_ERROR_EXTENSION_NOT_PRESENT`. This makes `--remove-unsupported` a
required option to replay the trace.

Instead of adding all the surface extensions from the replay and then
removig some if they are not available. This change proposes to add
them if they are available, by going through all the capture time
surface extensions and checking if they are available and then adding
them.

Change-Id: I5c0ae6ab6240e75ee2520174a1dcdd0e17791444
@MarkY-LunarG MarkY-LunarG added this pull request to the merge queue Apr 13, 2026
Merged via the queue into LunarG:dev with commit 3229413 Apr 13, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved-to-run-ci Can run CI check on internal LunarG machines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants