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

[Impeller] Fix contiguous clip restoration #38964

Merged
merged 1 commit into from
Jan 18, 2023

Conversation

bdero
Copy link
Member

@bdero bdero commented Jan 18, 2023

Because we treat the stencil buffer like a heightmap, clip restores work by flattening out everything above a certain height on the stencil buffer. This means when we have a group of contiguous clip restore entities, we can just render the last one and get identical results -- this is what we do.

We track a stack of stencil coverage rectangles to cull draw calls that obviously won't impact any pixels due to the stencil heightmap. The code that handles popping this stack assumed that the restore would always be current_stencil_depth - 1, which is wrong -- a single clip restore entity may reduce the stencil height by any amount, and so we need to do the same for the stencil coverage stack.

@bdero bdero self-assigned this Jan 18, 2023
@bdero bdero changed the title [Impeller] Fix back-to-back clip restoration [Impeller] Fix contiguous clip restoration Jan 18, 2023
Copy link
Member

@zanderso zanderso left a comment

Choose a reason for hiding this comment

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

LGTM

@bdero bdero added the autosubmit Merge PR when tree becomes green via auto submit App label Jan 18, 2023
@auto-submit auto-submit bot merged commit 0d79533 into flutter:main Jan 18, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 18, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 18, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 18, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jan 18, 2023
…118720)

* 5aee7914c Roll Dart SDK from 645fd748e79e to 0097dcbada06 (3 revisions) (flutter/engine#38883)

* 78a68b9df Roll Skia from c64a10d525d1 to aa99fa0bdd31 (10 revisions) (flutter/engine#38886)

* 398af8c20 Roll Fuchsia Mac SDK from w0hr1ZMvYGJnWInwK... to nPbEqgIfE8TLOokQH... (flutter/engine#38889)

* 703502712 Roll Skia from aa99fa0bdd31 to 5a51583d09dd (2 revisions) (flutter/engine#38892)

* 2075cf3f8 Roll Fuchsia Mac SDK from nPbEqgIfE8TLOokQH... to SmEVvAFBC8oriPBou... (flutter/engine#38897)

* ef06ef602 Roll Skia from 5a51583d09dd to 34a14247bd4b (1 revision) (flutter/engine#38901)

* 0d374a919 Roll Skia from 34a14247bd4b to c727016cc09e (1 revision) (flutter/engine#38903)

* 31f2020d9 Roll Skia from c727016cc09e to 214411b09e92 (2 revisions) (flutter/engine#38907)

* a3006de27 Bump actions/setup-python from 4.4.0 to 4.5.0 (flutter/engine#38909)

* eacc09c47 Bump github/codeql-action from 2.1.37 to 2.1.38 (flutter/engine#38910)

* c33c11c93 Roll Skia from 214411b09e92 to 3704033dd106 (1 revision) (flutter/engine#38908)

* afa093dbe [Impeller] Map UVs correctly for TiledTextureContents (flutter/engine#38894)

* 46ea2b3cc Roll Fuchsia Mac SDK from SmEVvAFBC8oriPBou... to bZfX8KCoI3CfxEzsG... (flutter/engine#38912)

* aadb97112 Roll Skia from 3704033dd106 to 58e745419425 (4 revisions) (flutter/engine#38936)

* 24b21a5b4 Roll Fuchsia Mac SDK from bZfX8KCoI3CfxEzsG... to iwCuzAuMgsk75hlT0... (flutter/engine#38938)

* e65558087 Roll Skia from 58e745419425 to 6afb97022fa7 (1 revision) (flutter/engine#38943)

* 5932badce Revert "Revert "[web] Don't overwrite editing state with semantic updates (#38271)" (#38562)" (flutter/engine#38854)

* 928772eba [web] Reduce code size impact of fallback font data (flutter/engine#38787)

* 88a8d9a36 Roll Skia from 6afb97022fa7 to 8ea9b39f7213 (18 revisions) (flutter/engine#38952)

* 3a479434b Roll Skia from 8ea9b39f7213 to 69d8378097df (6 revisions) (flutter/engine#38953)

* 641623a51 wrap focus() in a post update callback (flutter/engine#38958)

* 7d71ee3bf Roll Fuchsia Mac SDK from iwCuzAuMgsk75hlT0... to -1N2YUML8GqNhK8YP... (flutter/engine#38960)

* d762142bb reland fix canvas drawLine bugs (flutter/engine#38949)

* 0d7953387 [Impeller] Fix back-to-back clip restoration (flutter/engine#38964)

* 19fe86ca9 Update scenario screenshots to iOS 16 (flutter/engine#38962)

* eb18ac0a7 Fix iOS safari keyboard issue when semantics is enabled (flutter/engine#38822)

* 84a73d92f [Impeller Scene] Add SceneNodeValue for synchronously fetching loaded ipscenes (flutter/engine#38913)

* 7bff5dd11 Revert "Roll Dart SDK from 645fd748e79e to 0097dcbada06 (3 revisions) (#38883)" (flutter/engine#38973)

* c52b29081 Roll Fuchsia Mac SDK from -1N2YUML8GqNhK8YP... to P5QcCJU8I71xVXuMT... (flutter/engine#38976)
zanderso pushed a commit to zanderso/engine that referenced this pull request Jan 19, 2023
godofredoc pushed a commit that referenced this pull request Jan 19, 2023
gspencergoog pushed a commit to gspencergoog/flutter that referenced this pull request Jan 19, 2023
…lutter#118720)

* 5aee7914c Roll Dart SDK from 645fd748e79e to 0097dcbada06 (3 revisions) (flutter/engine#38883)

* 78a68b9df Roll Skia from c64a10d525d1 to aa99fa0bdd31 (10 revisions) (flutter/engine#38886)

* 398af8c20 Roll Fuchsia Mac SDK from w0hr1ZMvYGJnWInwK... to nPbEqgIfE8TLOokQH... (flutter/engine#38889)

* 703502712 Roll Skia from aa99fa0bdd31 to 5a51583d09dd (2 revisions) (flutter/engine#38892)

* 2075cf3f8 Roll Fuchsia Mac SDK from nPbEqgIfE8TLOokQH... to SmEVvAFBC8oriPBou... (flutter/engine#38897)

* ef06ef602 Roll Skia from 5a51583d09dd to 34a14247bd4b (1 revision) (flutter/engine#38901)

* 0d374a919 Roll Skia from 34a14247bd4b to c727016cc09e (1 revision) (flutter/engine#38903)

* 31f2020d9 Roll Skia from c727016cc09e to 214411b09e92 (2 revisions) (flutter/engine#38907)

* a3006de27 Bump actions/setup-python from 4.4.0 to 4.5.0 (flutter/engine#38909)

* eacc09c47 Bump github/codeql-action from 2.1.37 to 2.1.38 (flutter/engine#38910)

* c33c11c93 Roll Skia from 214411b09e92 to 3704033dd106 (1 revision) (flutter/engine#38908)

* afa093dbe [Impeller] Map UVs correctly for TiledTextureContents (flutter/engine#38894)

* 46ea2b3cc Roll Fuchsia Mac SDK from SmEVvAFBC8oriPBou... to bZfX8KCoI3CfxEzsG... (flutter/engine#38912)

* aadb97112 Roll Skia from 3704033dd106 to 58e745419425 (4 revisions) (flutter/engine#38936)

* 24b21a5b4 Roll Fuchsia Mac SDK from bZfX8KCoI3CfxEzsG... to iwCuzAuMgsk75hlT0... (flutter/engine#38938)

* e65558087 Roll Skia from 58e745419425 to 6afb97022fa7 (1 revision) (flutter/engine#38943)

* 5932badce Revert "Revert "[web] Don't overwrite editing state with semantic updates (flutter#38271)" (flutter#38562)" (flutter/engine#38854)

* 928772eba [web] Reduce code size impact of fallback font data (flutter/engine#38787)

* 88a8d9a36 Roll Skia from 6afb97022fa7 to 8ea9b39f7213 (18 revisions) (flutter/engine#38952)

* 3a479434b Roll Skia from 8ea9b39f7213 to 69d8378097df (6 revisions) (flutter/engine#38953)

* 641623a51 wrap focus() in a post update callback (flutter/engine#38958)

* 7d71ee3bf Roll Fuchsia Mac SDK from iwCuzAuMgsk75hlT0... to -1N2YUML8GqNhK8YP... (flutter/engine#38960)

* d762142bb reland fix canvas drawLine bugs (flutter/engine#38949)

* 0d7953387 [Impeller] Fix back-to-back clip restoration (flutter/engine#38964)

* 19fe86ca9 Update scenario screenshots to iOS 16 (flutter/engine#38962)

* eb18ac0a7 Fix iOS safari keyboard issue when semantics is enabled (flutter/engine#38822)

* 84a73d92f [Impeller Scene] Add SceneNodeValue for synchronously fetching loaded ipscenes (flutter/engine#38913)

* 7bff5dd11 Revert "Roll Dart SDK from 645fd748e79e to 0097dcbada06 (3 revisions) (flutter#38883)" (flutter/engine#38973)

* c52b29081 Roll Fuchsia Mac SDK from -1N2YUML8GqNhK8YP... to P5QcCJU8I71xVXuMT... (flutter/engine#38976)
ricardoamador pushed a commit to ricardoamador/engine that referenced this pull request Jan 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
autosubmit Merge PR when tree becomes green via auto submit App e: impeller
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants