When blur is enabled there is severe lag while scrolling apps in App
drawer, scrolling through recents and occasionally on QS pull down.
Explicitly disabling the "Enable GL comp backpressure" prop seems to
slove the issue.
Lag & janks are gone now, even with blur.
Turns on `debug.sf.enable_adpf_cpu_hint` to allow SurfaceFlinger to
utilize Android Dynamic Performance Framework CPU hints, improving
overall UI responsiveness and frame pacing on Snapdragon devices.
Enable comprehensive ART optimizations including VDEX and ODEX
generation for all system components to improve first-boot performance
and reduce application startup latency.
Configuration:
- WITH_DEXPREOPT := true # Global dexpreopt enable
- DEX_PREOPT_DEFAULT := generate-vdex-and-image # VDEX+ODEX gen
- WITH_DEXPREOPT_DEBUG_INFO := false # Exclude debug symbols
Results:
- Verified generation of .odex files (optimized dex)
- Verified generation of .vdex files (verification dex)
- ART images created for core system components
- First boot time significantly reduced
- Application startup latency improved
Test procedure:
1. Full system build with 'm evolution' command
2. Verified artifacts in:
- system/framework/oat/arm64/*.odex
- system/framework/oat/arm64/*.vdex
- system/app/*/oat/arm64/*.odex
- system/priv-app/*/oat/arm64/*.vdex
3. Confirmed valid ART runtime loading during boot
- PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
Specifies the compiler filter used for system server code in Android
builds. This setting ensures that system server components are
optimized for performance using profile-guided compilation, which
can improve runtime efficiency.
https://source.android.com/docs/core/runtime/configure
- persist.sys.perf.scroll_opt=true : enhances touch responsiveness and
reduces rendering latency during UI scroll and fling operations by
optimizing frame pacing and buffer handling,
- persist.sys.perf.scroll_opt.heavy_app=1 : used with previous
setting, enables dynamic detection of heavy apps based on frame
duration and buffer load.
Optimizations :
- ro.hwui.render_ahead=5 : improve handling of QS pull-down animations
by prefetching frames,
- debug.hwui.use_hint_manager=true : send timing hints for better CPU
scheduling,
- debug.hwui.target_cpu_time_percent=30 : percentage of frame time
used for CPU work ; rest is
reserved for GPU work.
Forking vendor tree into Evolution X org repositories requires
privileged rights, and pushing fails due to git lfs:
batch request: git@lfs.undocumented.software: Permission denied (publickey).: exit status 255
error: failed to push some refs to 'github.com:Evolution-X-Devices/vendor_google_sunfish.git'
Fetching vendor tree from personal repo as a work-around.
Accoridng to
https://codeberg.org/petefoths-projects/unofficial-l4m-builds/wiki/Build-errors,-fixes-and-work-arounds,
this seems the correct way to address following errors:
FAILED:
build/make/core/artifact_path_requirements.mk:31: warning: device/google/sunfish/lineage_sunfish.mk produces files inside build/make/target/product/generic_system.mks artifact path requirement.
Offending entries:
system/priv-app/OmniStyle/OmniStyle.apk
system/app/GoogleExtShared/GoogleExtShared.apk
system/app/GooglePrintRecommendationService/GooglePrintRecommendationService.apk
system/etc/permissions/privapp-permissions-google.xml
system/priv-app/DocumentsUIGoogle/DocumentsUIGoogle.apk
system/priv-app/TagGoogle/TagGoogle.apk
In file included from build/make/core/main.mk:1173:
build/make/core/artifact_path_requirements.mk:31: error: Build failed.
This addresses the following build error:
[0620/164226.950272:ERROR:payload_generation_config.cc(270)] Sum of sizes in google_dynamic_partitions_partition_list is 5195177984, which is greater than google_dynamic_partitions_size (4873781248)
[0620/164226.950297:FATAL:generate_delta_main.cc(711)] Check failed: payload_config.target.ValidateDynamicPartitionMetadata().
out/host/linux-x86/bin/../lib64/libchrome.so(base::debug::StackTrace::StackTrace(unsigned long)+0x1b) [0x7face6bfb23b]
out/host/linux-x86/bin/../lib64/libchrome.so(logging::LogMessage::~LogMessage()+0x8c) [0x7face6b89cfc]
out/host/linux-x86/bin/delta_generator(+0x10e328) [0x555d10c12328]
/lib/x86_64-linux-gnu/libc.so.6(+0x2724a) [0x7face66a124a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7face66a1305]
out/host/linux-x86/bin/delta_generator(+0x10bce9) [0x555d10c0fce9]
This addresses the following build error:
[100% 166/166] writing legacy Make module rules ...
FAILED:
build/make/core/Makefile:161: error: overriding commands for target `out/target/product/sunfish/product/etc/default-permissions/default-permissions.xml', previously defined at out/soong/installs-lineage_sunfish.mk:127365
android.frameworks.schedulerservice is deprecated and limited to
max-level=5 in framework manifest. Hence, remove it from device
compatibility matrix to allow super image generation.
Change-Id: Icbeeeb07c9ba8c094a1c531e0a67bd1dbac8b926
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.