Skip to content

Fix deadlock in GFXRECON_FORCE_COMMAND_SERIALIZATION with nested wrapped functions#2782

Open
locke-lunarg wants to merge 2 commits intoLunarG:devfrom
locke-lunarg:locke-avoid-lock
Open

Fix deadlock in GFXRECON_FORCE_COMMAND_SERIALIZATION with nested wrapped functions#2782
locke-lunarg wants to merge 2 commits intoLunarG:devfrom
locke-lunarg:locke-avoid-lock

Conversation

@locke-lunarg
Copy link
Copy Markdown
Contributor

@locke-lunarg locke-lunarg commented Mar 13, 2026

closed: https://github.com/LunarG/Projects/issues/1129

When GFXRECON_FORCE_COMMAND_SERIALIZATION is enabled, and the original function calls sub wrapped functions, the sub wrapped functions would cause deadlock, if DecrementCallScope is called before the sub wrapped functions, like capture draw calls. AvoidApiCallLock has to be called to avoid api call lock.

@locke-lunarg locke-lunarg added the approved-to-run-ci Can run CI check on internal LunarG machines label Mar 13, 2026
@locke-lunarg locke-lunarg marked this pull request as ready for review March 13, 2026 19:54
@locke-lunarg locke-lunarg requested a review from a team as a code owner March 13, 2026 19:54
@locke-lunarg locke-lunarg force-pushed the locke-avoid-lock branch 2 times, most recently from a7f9fba to 13256ac Compare March 13, 2026 20:04
Capture draw calls shouldn't be locked. It should add AvoidApiCallLock
before DecrementCallScope.

For capture draw calls, DecrementCallScope mean it starts to run wrapped
function calls for capture. It would capture and lock. It should avoid
lock.
@locke-lunarg locke-lunarg changed the title Avoid deadlock for GFXRECON_FORCE_COMMAND_SERIALIZATION Fix deadlock in GFXRECON_FORCE_COMMAND_SERIALIZATION with nested wrapped functions Mar 13, 2026
@locke-lunarg locke-lunarg requested review from MarkY-LunarG, bradgrantham-lunarg and mark-lunarg and removed request for mark-lunarg March 14, 2026 03:52
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.

1 participant