perf(android): use Skia on 32-bit Android TVs
This commit is contained in:
@@ -32,12 +32,9 @@ internal object FlutterRendererPolicy {
|
|||||||
return FlutterRenderer.SKIA
|
return FlutterRenderer.SKIA
|
||||||
}
|
}
|
||||||
|
|
||||||
// Impeller's Vulkan and OpenGLES backends both leave stale frames on the
|
// 32-bit Android TV SoCs are the low-memory / low-throughput class. Skia avoids
|
||||||
// affected 32-bit TCL TV when Plezy uses its transparent TextureView
|
// Impeller/Vulkan's substantially higher raster cost on these devices.
|
||||||
// composition (#1658). Restore the pre-2.9.0 Skia path for this hardware.
|
if (!is64Bit) return FlutterRenderer.SKIA
|
||||||
if (!is64Bit && manufacturer.equals("TCL", ignoreCase = true)) {
|
|
||||||
return FlutterRenderer.SKIA
|
|
||||||
}
|
|
||||||
|
|
||||||
return FlutterRenderer.IMPELLER
|
return FlutterRenderer.IMPELLER
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ class FlutterRendererPolicyTest {
|
|||||||
assertEquals(FlutterRenderer.IMPELLER, select(manufacturer = "TCL", is64Bit = true))
|
assertEquals(FlutterRenderer.IMPELLER, select(manufacturer = "TCL", is64Bit = true))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun ordinary32BitAndroidTvUsesSkia() {
|
||||||
|
assertEquals(FlutterRenderer.SKIA, select(manufacturer = "SEI Robotics", is64Bit = false))
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun unsupportedTvsStayOnSkia() {
|
fun unsupportedTvsStayOnSkia() {
|
||||||
assertEquals(FlutterRenderer.SKIA, select(sdkInt = 30))
|
assertEquals(FlutterRenderer.SKIA, select(sdkInt = 30))
|
||||||
@@ -38,7 +43,7 @@ class FlutterRendererPolicyTest {
|
|||||||
fun ordinaryAndroidDevicesKeepAutomaticImpellerBackend() {
|
fun ordinaryAndroidDevicesKeepAutomaticImpellerBackend() {
|
||||||
assertEquals(
|
assertEquals(
|
||||||
FlutterRenderer.IMPELLER,
|
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