Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve synchronization of rendering after changes from transfer queues. #98388

Merged
merged 1 commit into from
Oct 21, 2024

Conversation

DarioSamo
Copy link
Contributor

After transfer queues were merged, some new unexpected synchronization errors popped up that were previously not encountered because the setup queue was introducing its own barriers and forcing most of the caches to be flushed through a global memory barrier.

These changes introduce proper synchronization tracking for usages on the previous frame, as the hazards were not visible inside the same frame but rather between frames. This has fixed some flickering that was visible in the TPS Demo in Mobile that did not happen before #90400 was merged.

This PR also fixes an error where debug labels were not being properly closed each frame, leading to the labels leaking into the next frames and causing them to keep growing in depth.

…sfer queues.

Fix an error where barriers are expected to be inserted for the swap chain textures.
Add the relevant synchronization stages and accesses to resources between frames.
Fix an error where debug labels weren't finished correctly between frames.
Breadcrumbs are now behind an optional macro as they currently lead to synchronization errors which are harmless.
Copy link
Member

@clayjohn clayjohn left a comment

Choose a reason for hiding this comment

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

Looks good to me!

@clayjohn clayjohn added this to the 4.4 milestone Oct 21, 2024
@Repiteo Repiteo merged commit a14e9e9 into godotengine:master Oct 21, 2024
20 checks passed
@Repiteo
Copy link
Contributor

Repiteo commented Oct 21, 2024

Thanks!

darksylinc added a commit to darksylinc/godot that referenced this pull request Oct 23, 2024
Adds "--accurate-breadcrumbs" CLI command

Additionally, leave out breadcrumbs code in non-debug, non-dev builds.
Fix regression introduced in godotengine#98388 where command_insert_breadcrumb() is
called even in non-debug builds.

Fixes godotengine#98338
laurentmackay pushed a commit to metapfhor/godot that referenced this pull request Oct 30, 2024
Adds "--accurate-breadcrumbs" CLI command

Additionally, leave out breadcrumbs code in non-debug, non-dev builds.
Fix regression introduced in godotengine#98388 where command_insert_breadcrumb() is
called even in non-debug builds.

Fixes godotengine#98338
MarcusPaulsson pushed a commit to MarcusPaulsson/godot that referenced this pull request Nov 5, 2024
Adds "--accurate-breadcrumbs" CLI command

Additionally, leave out breadcrumbs code in non-debug, non-dev builds.
Fix regression introduced in godotengine#98388 where command_insert_breadcrumb() is
called even in non-debug builds.

Fixes godotengine#98338
JayTropper pushed a commit to JayTropper/godot that referenced this pull request Nov 6, 2024
Adds "--accurate-breadcrumbs" CLI command

Additionally, leave out breadcrumbs code in non-debug, non-dev builds.
Fix regression introduced in godotengine#98388 where command_insert_breadcrumb() is
called even in non-debug builds.

Fixes godotengine#98338
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants