diff options
| author | 2020-12-31 14:12:26 +0800 | |
|---|---|---|
| committer | 2021-04-06 00:49:51 +0000 | |
| commit | 05dc4e920df85a36204ad74c5f97d86c6ec2948a (patch) | |
| tree | 1a6a7c565869533f22eaf44d578d3119d3e516f0 /graphics/java/android | |
| parent | e4b4df1e28815ceb611751ffeb4e92a5b5d531f8 (diff) | |
Add 8k bitmap render support
Support vendor configure max bitmap size, because of
8k bitmap was over 100M
[Test Report]
1. AC on/off PASS
2. boot to launcher PASS
3. VTS/CTS command
run cts -m MediatekCtsMtkImageDecoderTest -t
android.mtk.cts.ImageDecoderTest#testDecoder8KPerformance
-l VERBOSE
4. CTS report
004_Release > C5_temp > QSC_Result > MM_Result_Report
cts_imagedecoderplugin_test.rar
Bug: 178353420
Change-Id: I582883cca51d42505ec8a81044e471998b88854b
Merged-In: I582883cca51d42505ec8a81044e471998b88854b
Diffstat (limited to 'graphics/java/android')
| -rw-r--r-- | graphics/java/android/graphics/RecordingCanvas.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/graphics/java/android/graphics/RecordingCanvas.java b/graphics/java/android/graphics/RecordingCanvas.java index c0e0a24583ec..4a24b4295d35 100644 --- a/graphics/java/android/graphics/RecordingCanvas.java +++ b/graphics/java/android/graphics/RecordingCanvas.java @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.util.Pools.SynchronizedPool; import android.view.DisplayListCanvas; import android.view.TextureLayer; +import android.os.SystemProperties; import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; @@ -41,7 +42,14 @@ public final class RecordingCanvas extends DisplayListCanvas { private static final int POOL_LIMIT = 25; /** @hide */ - public static final int MAX_BITMAP_SIZE = 100 * 1024 * 1024; // 100 MB + private static int getPanelFrameSize() { + final int DefaultSize = 100 * 1024 * 1024; // 100 MB; + return Math.max(SystemProperties.getInt("ro.hwui.max_texture_allocation_size", DefaultSize), + DefaultSize); + } + + /** @hide */ + public static final int MAX_BITMAP_SIZE = getPanelFrameSize(); private static final SynchronizedPool<RecordingCanvas> sPool = new SynchronizedPool<>(POOL_LIMIT); |