Skip to content

Conversation

@MatkovIvan
Copy link
Member

Implement rendering using layers placeholders approach. It aligns caching (display list recording) with Android

Copy link
Collaborator

@igordmn igordmn left a comment

Choose a reason for hiding this comment

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

The code looks better now 👍.

Though, we should find the performance regression reason.

@@ -1000,7 +1000,7 @@ public final class androidx/compose/ui/graphics/SkiaGraphicsContext : androidx/c
public fun <init> (Z)V
Copy link
Collaborator

Choose a reason for hiding this comment

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

I tested FPS on run1 (x8 App). We have a new regression:
62 -> 55.

11% compared to jb-main (plus we have the previous 3% regression)

Copy link
Collaborator

Choose a reason for hiding this comment

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

IMHO, the regression is too big for merging. We can't be sure there is an easy fix, as it can depend on Skia internals.

We should figure it out before merging

Copy link
Member Author

Choose a reason for hiding this comment

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

I see different numbers locally. I did +- obvious optimization with matrices’ caching, so fps is a bit higher than on jb-main for me now. But since I didn't observe such a drop previously it's hard to tell how it will behave on your devices. Let's continue offline to figure it out

Copy link
Collaborator

@igordmn igordmn Jan 14, 2025

Choose a reason for hiding this comment

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

Also:

PC

wasm

reduced run1, x8 App: 99 -> 74

js

reduced run1, x8 App: 101 -> 75

desktop

widget gallery x160: 68 -> 42
codeviewer x20: 144 -> 92
run1 OPENGL, SOFTWARE: similar regression
run1 x8 App: 62 -> 55, 64 -> 57 (new test)
run1 x8 App + System.setProperty("skiko.gpu.priority", "integrated"): 49 -> 46

Windows laptop (only integrated GPU)

desktop

run1 x3 App. 55 -> 53

MatkovIvan added a commit to JetBrains/skiko that referenced this pull request Jan 14, 2025
New `PictureFilterCanvas` class that allows override picture rendering
during drawing

Required for
JetBrains/compose-multiplatform-core#1766
MatkovIvan added a commit that referenced this pull request Jan 15, 2025
Reverts shadow behavior changes from #1754 until #1766

In the current intermediate state it has the next problems:
- Missing shadows updates inside inner layers (might be fixed by
introducing more states
d3b624c)
- Incorrect positioning of shadows in a scrollable list: position inside
scroll inside position on screen (no easy fix, only #1766 or revert)
@MatkovIvan MatkovIvan force-pushed the ivan.matkov/layer-placeholder branch from 439aa42 to 49f7817 Compare January 17, 2025 17:17
@MatkovIvan
Copy link
Member Author

Superseded by #1784

@MatkovIvan MatkovIvan closed this Jan 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants