Skip to content

Fix --wsi auto side effects#2837

Open
roman-berger-arm wants to merge 1 commit intoLunarG:devfrom
roman-berger-arm:fix-wsi-sideeffects
Open

Fix --wsi auto side effects#2837
roman-berger-arm wants to merge 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.

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
@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
all_capture_surface_extensions += ext;
all_capture_surface_extensions += ", ";
}
GFXRECON_LOG_WARNING("--wsi auto: could not find surface: %sinstead using: %s",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You removed the comma and space after the first %s.

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