-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] Wait for the previous AHB texture to be fully recyclable. #52588
Conversation
Still WIP as I am not able to explain a validation error on early semaphore destruction. But it may be that I am doing something wrong where the tracked objects are being collected too early. |
Oh, missed your comment here. i will check this out and play around with it for a bit, I have a few ideas. |
Ok, the validation errors due to bad tracking are now fixed. Need to verify the waits actually fix our original issue (they should) and also patchup the tracing in the present ready fence case as I believe I made the same mistake earlier. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
The Android surface transaction completion handler documentation states: ``` Buffers which are replaced or removed from the scene in the transaction invoking this callback may be reused after this point. ``` However, this is NOT sufficient. One also needs to be obtain the previous release fence and perform a wait for the buffer to be safely reusable. This patch adds a GPU side wait for this fence using available extensions.
7660737
to
ca99a7c
Compare
Experimenting with the macrobenchmarks app, I couldn't see the checkerboarding we saw last week. I think this is good to go. |
…147939) flutter/engine@d88b7db...42898e0 2024-05-07 chinmaygarde@google.com [Impeller] Wait for the previous AHB texture to be fully recyclable. (flutter/engine#52588) 2024-05-07 jason-simmons@users.noreply.github.com Manual Skia roll to 2319f1ae8fe42525f8b6a1969a1cee67bdbee290 (flutter/engine#52615) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
The Android surface transaction completion handler documentation states:
However, this is NOT sufficient. One also needs to be obtain the previous release fence and perform a wait for the buffer to be safely reusable.
This patch adds a GPU side wait for this fence using available extensions.
Fixes flutter/flutter#147758