Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@cbracken
Copy link
Member

@cbracken cbracken commented Apr 1, 2021

Notify Skia that we've updated texture handles within the current
binding such that Skia invalidates any assumptions about previous
context modifications that it had made.

This fixes a texture corruption issue reported in
flutter/flutter#78648

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See testing the engine for instructions on
    writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.
  • The reviewer has submitted any presubmit flakes in this PR using the engine presubmit flakes form before re-triggering the failure.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@cbracken
Copy link
Member Author

cbracken commented Apr 1, 2021

@chinmaygarde any suggestions for testing this? Will take a look at #16711 for ideas in the meantime.

@chinmaygarde
Copy link
Member

any suggestions for testing this

The embedder harness is not suited for verifying OpenGL state. You could manually check bindings but that would involve writing OpenGL directly in backend agnostic harness.

cbracken added 2 commits April 5, 2021 11:43
Notify Skia that we've updated texture handles within the current
binding such that Skia invalidates any assumptions about previous
context modifications that it had made.

This fixes a texture corruption issue reported in
flutter/flutter#78648
Out of concerns with GrDirectContext lifetime, reverting this bit.
Copy link
Member

@chinmaygarde chinmaygarde left a comment

Choose a reason for hiding this comment

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

Spoke via chat. We are going to forego the context reset on the destruction callback because of lifecycle issues and document that embedder may not trample OpenGL state in the destructor. This is hard to do during texture creation so the reset during that callback will be kept in place. This should fix the reported issue.

@cbracken cbracken added the waiting for tree to go green This PR is approved and tested, but waiting for the tree to be green to land. label Apr 5, 2021
@fluttergithubbot
Copy link
Contributor

This pull request is not suitable for automatic merging in its current state.

  • The status or check suite build_and_test_linux_unopt_debug has failed. Please fix the issues identified (or deflake) before re-applying this label.

@fluttergithubbot fluttergithubbot removed the waiting for tree to go green This PR is approved and tested, but waiting for the tree to be green to land. label Apr 5, 2021
@cbracken cbracken merged commit d5fdd57 into flutter:master Apr 5, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 5, 2021
@cbracken cbracken deleted the windows-texture-corruption branch April 6, 2021 00:51
fluttergithubbot pushed a commit to flutter/flutter that referenced this pull request Apr 6, 2021
duanqz pushed a commit to duanqz/engine that referenced this pull request Apr 16, 2021
Notify Skia that we've updated texture handles within the current
binding such that Skia invalidates any assumptions about previous
context modifications that it had made.

This fixes a texture corruption issue reported in
flutter/flutter#78648
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants