perf(android): use Skia on 32-bit Android TVs
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user