Fixed
Status Update
Comments
ys...@google.com <ys...@google.com> #2
Regression appears to have been caused by aosp/2758367
ys...@google.com <ys...@google.com> #3
We should probably update the benchmark to use the new flags to turn off the animations.
ys...@google.com <ys...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 136cfb249a9623d712b82db6b0832ccd63e3e582
Author: mkulaha <mkulaha@google.com>
Date: Wed Oct 04 08:05:18 2023
Possible fix for performance drop in PositionIndicator. Additional microbenchmark tests were added.
We saw some performance drops in PositionIndicator, that might happen due to chained snapshotFlow, which slows down the `firstPixel` benchmark.
Extra tests were added to separately check animated and non-animated PositionIndicator
Doc with benchmark results go/position-indicator-aosp_2770702
Bug: 302399827
Test: PositionIndicatorBenchmark.kt
Relnote: "Fixed performance issues in PositionIndicator"
Change-Id: I1c6546abc834f718c9d8f11d756262d507590acc
M wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/PositionIndicatorBenchmark.kt
M wear/compose/compose-material/src/main/java/androidx/wear/compose/material/PositionIndicator.kt
https://android-review.googlesource.com/2770702
Branch: androidx-main
commit 136cfb249a9623d712b82db6b0832ccd63e3e582
Author: mkulaha <mkulaha@google.com>
Date: Wed Oct 04 08:05:18 2023
Possible fix for performance drop in PositionIndicator. Additional microbenchmark tests were added.
We saw some performance drops in PositionIndicator, that might happen due to chained snapshotFlow, which slows down the `firstPixel` benchmark.
Extra tests were added to separately check animated and non-animated PositionIndicator
Doc with benchmark results go/position-indicator-aosp_2770702
Bug: 302399827
Test: PositionIndicatorBenchmark.kt
Relnote: "Fixed performance issues in PositionIndicator"
Change-Id: I1c6546abc834f718c9d8f11d756262d507590acc
M wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/PositionIndicatorBenchmark.kt
M wear/compose/compose-material/src/main/java/androidx/wear/compose/material/PositionIndicator.kt
ys...@google.com <ys...@google.com> #5
Looks like the latest changes (aosp/2770702 , aosp/2781074 ) improve performance according to the benchmarks
ys...@google.com <ys...@google.com> #6
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.wear.compose:compose-material:1.3.0-alpha08
jn...@google.com <jn...@google.com>
ys...@google.com <ys...@google.com> #7
Internally it has been commented that the right fix is probably for the existing rememberPlaceholderState to use rememberUpdatedState for the lambda.
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
commit a08d3c02b5babbf8587bb1498009b6f64e624e81
Author: John Nichol <jnichol@google.com>
Date: Fri Dec 02 12:12:33 2022
Update PlaceholderState to ensure that the state is updated if the onContentReady() lambda changes.
Update PlaceholderState to take a State<() -> Boolean> for the isContentReady lambda and update rememberPlaceholderState so that the lambda is wrapped in rememberUpdatedState so that the state will be updated if the lambda changes.
Bug: 260343754
Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Relnote: "PlaceholderState.rememberPlaceholderState() updated to use rememberUpdatedState to that the state will update if the onContentReady lambda."
Change-Id: I02635c21c723a91aa2f5915fe79468a463fd1698
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialTest.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/PlaceholderTest.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Placeholder.kt
M wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/PlaceholderDemo.kt
https://android-review.googlesource.com/2325120
Branch: androidx-main
commit a08d3c02b5babbf8587bb1498009b6f64e624e81
Author: John Nichol <jnichol@google.com>
Date: Fri Dec 02 12:12:33 2022
Update PlaceholderState to ensure that the state is updated if the onContentReady() lambda changes.
Update PlaceholderState to take a State<() -> Boolean> for the isContentReady lambda and update rememberPlaceholderState so that the lambda is wrapped in rememberUpdatedState so that the state will be updated if the lambda changes.
Bug: 260343754
Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Relnote: "PlaceholderState.rememberPlaceholderState() updated to use rememberUpdatedState to that the state will update if the onContentReady lambda."
Change-Id: I02635c21c723a91aa2f5915fe79468a463fd1698
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialTest.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/PlaceholderTest.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Placeholder.kt
M wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/PlaceholderDemo.kt
jn...@google.com <jn...@google.com>
na...@google.com <na...@google.com> #9
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.wear.compose:compose-material:1.2.0-alpha02
androidx.wear.compose:compose-material:1.1.1
na...@google.com <na...@google.com> #10
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.wear.compose:compose-material:1.4.0-rc01
Description
Version used: 1.1.0-rc01
Devices/Android versions reproduced on: Emulator / Android Studio Previews
Repro
Expected placeholder and content states
Actual final content state