question : same app run on different hardware use different amout of memory. the “-cookflavor” used is ETC1, on Tegra 4 the app use about 320M but on Adreno330 (Qualcomm 801) it use about 450M memory, both phone’s resolution is 1920*1080, I’m really confused why ?
Try “memreport -full” on the console on the two devices. This will write out a full memory report you can compare to see what is taking more space. You will see a logcat line something like this:
LogEngine: MemReportDeferred: saving to …/…/…//Saved/Profiling/MemReports/-Android-27-13.57.38/-Android-27-13.57.38.memreport
You will find the file in either:
depending on the UE4 version.
If you don’t see anything in the reports, it may be driver overhead differences for resources.
We think this post contains useful information which we would like to share with our public UE4 community. With your approval, we would like to make a copy of this post on the public AnswerHub which includes the discussion but strips out your username and company name. Please let us know if you are okay with this.
Hmm, I thought I had already answered this (or perhaps it was another similar thread?).
What I’m suspecting is that the Adreno 330 actually doesn’t support ETC1 in hardware. So to support that format anyway since it’s required, the driver would decompress the ETC1 textures to uncompressed RGBA and use that at run-time. This would of course use up a lot more memory, and it actually also be a bit slower (if you’re bandwidth bound that that point in time).
The best method is to use the native format on each device, which will optimize your overall download and run-time size further compared to using ETC1. Use ASTC wherever it is available (less memory usage, better quality).
But I might be wrong…