diff --git a/android/app/src/main/kotlin/com/edde746/plezy/FlutterRendererPolicy.kt b/android/app/src/main/kotlin/com/edde746/plezy/FlutterRendererPolicy.kt index 0cc9ac99..5f2a738a 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/FlutterRendererPolicy.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/FlutterRendererPolicy.kt @@ -32,12 +32,9 @@ internal object FlutterRendererPolicy { return FlutterRenderer.SKIA } - // Impeller's Vulkan and OpenGLES backends both leave stale frames on the - // affected 32-bit TCL TV when Plezy uses its transparent TextureView - // composition (#1658). Restore the pre-2.9.0 Skia path for this hardware. - if (!is64Bit && manufacturer.equals("TCL", ignoreCase = true)) { - return FlutterRenderer.SKIA - } + // 32-bit Android TV SoCs are the low-memory / low-throughput class. Skia avoids + // Impeller/Vulkan's substantially higher raster cost on these devices. + if (!is64Bit) return FlutterRenderer.SKIA return FlutterRenderer.IMPELLER } diff --git a/android/app/src/test/kotlin/com/edde746/plezy/FlutterRendererPolicyTest.kt b/android/app/src/test/kotlin/com/edde746/plezy/FlutterRendererPolicyTest.kt index 7d2e042f..a43e8a84 100644 --- a/android/app/src/test/kotlin/com/edde746/plezy/FlutterRendererPolicyTest.kt +++ b/android/app/src/test/kotlin/com/edde746/plezy/FlutterRendererPolicyTest.kt @@ -19,6 +19,11 @@ class FlutterRendererPolicyTest { assertEquals(FlutterRenderer.IMPELLER, select(manufacturer = "TCL", is64Bit = true)) } + @Test + fun ordinary32BitAndroidTvUsesSkia() { + assertEquals(FlutterRenderer.SKIA, select(manufacturer = "SEI Robotics", is64Bit = false)) + } + @Test fun unsupportedTvsStayOnSkia() { assertEquals(FlutterRenderer.SKIA, select(sdkInt = 30)) @@ -38,7 +43,7 @@ class FlutterRendererPolicyTest { fun ordinaryAndroidDevicesKeepAutomaticImpellerBackend() { assertEquals( FlutterRenderer.IMPELLER, - select(manufacturer = "Samsung", isAndroidTv = false, sdkInt = 28, supportsVulkan11 = false) + select(manufacturer = "Samsung", isAndroidTv = false, sdkInt = 28, supportsVulkan11 = false, is64Bit = false) ) }