[APP][7.0+][1st October 2019] Helix Engine 5.0.1b FINAL

Search This thread

mrjuniork

Forum Moderator
Staff member
Aug 29, 2015
2,012
5,438
OnePlus 6
OnePlus 7 Pro
Followed the instructions from OP and I got some nice results. Running on latest bluspark and OOS 5.1.2
Does it even make sense using a custom governor like Blu's, since HE is immediately using interactive governor once a non white listed app is opened? Especially in accordance with fastlane? Maybe I got something wrong, was just wondering :)
 

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
Does it even make sense using a custom governor like Blu's, since HE is immediately using interactive governor once a non white listed app is opened? Especially in accordance with fastlane? Maybe I got something wrong, was just wondering :)
On pre-defined profile data, I use interactive purely for the sake of stock kernels. Not every kernel will have blu_active and it will cause compatibility issues if it were to be in the pre-defined profile data. You can change the governor to whatever you like, that's what the CPU governor section is there for. However, if you use a different governor between profiles, the governors will always set back to default values defined in the kernel source code (e.g. if custom values were applied either by the user via EXKM or by the kernel via ramdisk, they'll be reset to absolute defaults). This will be fixed as soon as I implement governor tunables to HE sometime this summer.
 

stratosk21

Senior Member
Sep 27, 2012
648
180
OnePlus 5T
OnePlus 9 Pro
Followed the instructions from OP and I got some nice results. Running on latest bluspark and OOS 5.1.2
Update on one battery cycle. Morning and night using navigation and just Snapchat, Facebook, whatsapp, telegram Reddit etc. No games.
 

Attachments

  • Screenshot_20180613-225356.jpg
    Screenshot_20180613-225356.jpg
    202 KB · Views: 655

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
Is alpha 3 build with 32 bit ARM support up yet?
Thanks for reminding me, got side tracked today :eek:
https://plus.google.com/u/1/108192518012244687246/posts/jcZqSEu18Ad
@Jamess27 sorry for bothering you with so many tests lately, but could you try alpha-3 on your S7 please? I just want to check that I haven't accidentally broken support for the S7 after doing the changed I had to do to get it working on ARM 32-bit devices. You will need to wipe app data before testing alpha-3 because CPU paths are only detected in the first time setup.

As for other ARM 32-bit devices, please be aware that this has ONLY been tested on the OnePlus X so far. Your results may vary. If you encounter strange bugs either in the UI, take a screenshot showing this behaviour. If there are bugs in the behaviour (i.e. applying the values when switching between apps with different profiles), please use the debugging tool and carefully describe what behaviour you are seeing.
 

DaveedDB

Senior Member
Nov 11, 2013
1,111
472
Bridgetown
Is there no more big and small cluster control ? Are they both set together with new beta ?
 

Attachments

  • Screenshot_20180613-175353.png
    Screenshot_20180613-175353.png
    133.8 KB · Views: 293

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
Is there no more big and small cluster control ? Are they both set together with new beta ?
HTC 10? Ugh, looks like I fixed for ARM but broke for quad core arm64 chipsets -_- It's still working for my 5T and Honor View 10 though. I'll need to look into this for the next build!

EDIT: Roll back to alpha 2 for the time being.

No change in frequencies and governer on SD 800 SoC on Nexus 5. Will provide with logs tomorrow.
Cheers, you did use the debugging tool to monitor the changes, right? Also, remember you need to set up every single profile by yourself as I do not have pre-defined profile data for your device.
 
Last edited:

melphoi

Senior Member
Jul 31, 2012
146
36
Batam
Hello, I just installed this app and even though I'm not an expert about the details of this app, I think I know what is the main goal for this app
I'm on Touchwiz based ROM Nougat with S7 Flat G930FD and rooted with Magisk
How do I know whether this app working correctly or not?
I provide 3 images and I hope someone could lend me help
Thanks in advance
 

Attachments

  • Screenshot_20180614-110128.png
    Screenshot_20180614-110128.png
    115 KB · Views: 278
  • Screenshot_20180614-110158.png
    Screenshot_20180614-110158.png
    125.8 KB · Views: 276
  • Screenshot_20180614-110206.png
    Screenshot_20180614-110206.png
    89.2 KB · Views: 277

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
Hello, I just installed this app and even though I'm not an expert about the details of this app, I think I know what is the main goal for this app
I'm on Touchwiz based ROM Nougat with S7 Flat G930FD and rooted with Magisk
How do I know whether this app working correctly or not?
I provide 3 images and I hope someone could lend me help
Thanks in advance
The third screenshot is completely bugged. What version are you on? If you are not on alpha 3, I highly recommend you help me test the alpha builds. The beta build is very old and doesn't properly support Samsung and arm 32 bit devices, I have only just starting supporting them in the latest alpha builds.

Join the alpha community in the OP, I post all my builds there.

FYI the frequencies is bugged for you which means the whole all is bugged for you. However, the next time you ask "how do I know it works?" And the frequencies are displayed normally, refer to Q2 of the FAQ post below the OP.
 

micoeyes

Senior Member
Feb 1, 2017
104
11
In Oneplus x is this normal? Just asking because I don't see anyother option other than CPU min. Max frequency
 

Attachments

  • Screenshot_Helix_Engine_20180614-145506.png
    Screenshot_Helix_Engine_20180614-145506.png
    79.2 KB · Views: 569

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
In Oneplus x is this normal? Just asking because I don't see anyother option other than CPU min. Max frequency

Yes, because ARM 32-bit devices aren't clustered. Also, Helix Engine only currently supports CPU min/max and governors. GPU is supported but only on selected chipsets and will be planning on expanding this after I get confirmation from the users that the app works on most devices properly.
 

melphoi

Senior Member
Jul 31, 2012
146
36
Batam
The third screenshot is completely bugged. What version are you on? If you are not on alpha 3, I highly recommend you help me test the alpha builds. The beta build is very old and doesn't properly support Samsung and arm 32 bit devices, I have only just starting supporting them in the latest alpha builds.

Join the alpha community in the OP, I post all my builds there.

FYI the frequencies is bugged for you which means the whole all is bugged for you. However, the next time you ask "how do I know it works?" And the frequencies are displayed normally, refer to Q2 of the FAQ post below the OP.

Thank you for your responses
I uninstalled the Beta version and installed the latest Alpha Version, and now I can see numbers of Frequencies, for example in Battery Profile
But did I make the correct input as the Hint suggestion ? I just changed the Max Frequencies from both Clusters (Big Cluster has 2600000 as default, Little Cluster has 1586000 as default)
Then I followed your guide to know if it working or not from the F.A.Q. Here's the screenshoot from Monitor App and Monitor CPU
Is this correct ?
 

Attachments

  • Screenshot_20180614-202632.png
    Screenshot_20180614-202632.png
    97.4 KB · Views: 354
  • 1.jpg
    1.jpg
    258.3 KB · Views: 340
  • 2.jpg
    2.jpg
    72 KB · Views: 340

ZeroInfinity

Recognized Developer
Dec 17, 2011
7,024
74,000
Brighton & Hove
Thank you for your responses
I uninstalled the Beta version and installed the latest Alpha Version, and now I can see numbers of Frequencies, for example in Battery Profile
But did I make the correct input as the Hint suggestion ? I just changed the Max Frequencies from both Clusters (Big Cluster has 2600000 as default, Little Cluster has 1586000 as default)
Then I followed your guide to know if it working or not from the F.A.Q. Here's the screenshoot from Monitor App and Monitor CPU
Is this correct ?

It looks correct. Make sure that the CPU frequencies are applied when an app executes the battery profile. So for example, when the logcat says Battery profile executed in the app you have opened, the CPU frequencies should change to the profile configuration you have set for the battery profile. It is easier to monitor this if you two instances of the debugger tool opened. So you can monitor the logcat in one window, and monitor the CPU frequencies in another.

If this is the intended behaviour you are getting on your device, then all is working well. However, if the frequencies are not changing as per the configurations you have set in each profile, then something is wrong.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 485
    Hey everyone! I've completely forgotten about the first year anniversary of Helix Engine! Thank you so much for all of those who have supported me from the very start!

    You know the drill, more codes for free premium upgrades ;)

    1XM1X878U41C4YGXRDHHA6V
    WSQZEFWQNBUB6DRYYRLM486
    107J4PA0Q5WRTX8TUD0N1MH
    PK18SG4KUTEES0YE185GF88
    5X3F6XL81E0L9X96L2V7VR0

    Redeem either in play store > redeem code, or Helix Engine > upgrade > change payment method > redeem code.

    Now you know how busy I've been, that I've forgotten the anniversary of my own app :p

    Please remember, I don't believe I can get 5.0.0 finished in time before I finish uni, so it may be until the end of May until more development picks up again. Meanwhile, one of the projects I am doing for uni is a new app, so something new may be on the horizon after I finish as I plan on continue working on that as well :)
    479
    5.0.0-alpha

    - Removed CAF boost framework/perf fix - not necessary to disable anymore, disabling input boost is enough to stop overriding behaviour
    - Significant code optimizations to keep the app running smoothly
    - Optimized App Engine
    - Significantly reduced risks of memory leaks
    - Fix some values not being applied properly due to improper permissions
    - Fix SoC model not being detected if installed for the first time or after factory reset
    - Removed Input Boost support due to the fact that it interferes with CPU freq capping
    - Removed dialog when MLM is enabled while entering battery or balanced profile, you can now edit everything while MLM is enabled
    - Input boost will automatically be disabled when Helix Engine is in use
    - Fixed notification not turning off when Accessibility Service gets turned off
    - Notification will now tell you if force performance mode is enabled
    - Fixed dyn stune boost not showing if input boost enable did not exist
    - Cleaned up Notification
    - Removed Sync App Engine and User Experience Program
    - Removed root access checking for the time being to speed up loading time when launching the app
    - Fix SoC detection for SDM636 but need to check if SDM660 will detect as SDM636 now

    Machine Learning 3.0:
    - Per-app profiles which are automatically generated from Helix Engine profiles as a "base"
    - App history which stores current configs of when target jank percentage was achieved
    - Room Database to keep per-app profile and app history records
    - Margin of error is now customizable
    - Min/max CPU freqs in battery and balanced profiles will be a range used by the algorithm
    - Schedtune/dynamic boost value will now be a maximum range value if MLM is enabled
    - Normalised per-app ML profile which is automatically generated from historical stats
    - Automatic database cleaning to prevent database from building up and taking up large storage space
    - Removed Speed of Learning modifier, it is integrated within the algorithm now

    Machine Learning 3.0:
    A special ML profile that is automatically generated will be used instead of the regular app engine profiles. The profile collects the average values from a local database created by Helix Engine containing a history of configs that were used to achieve the target jank percentage for that particular app. Overtime this profile should get more and more consistent.

    App Engine configs are still important because the profiles (battery/balanced) will give the app a starting point to work from. E.g. if you set an app to battery and has not been detected by Machine Learning before, it will use the config that's been set to the battery profile only for the first time.

    I've taken precautionary measures in the event that the database starts to use up a lot of storage - a history threshold is put in place (100 records per-app). When the size of the App History reaches the threshold, it will delete the oldest history record when a new history record is added. This way, you will still get a good sample size of historical data to get a normalised profile from, but the database won't grow into extreme sizes.

    CPU frequencies are now ranges you can set for the algorithm, so it won't go above or below this range. For schedtune/dynamic boost, the value set in battery or balanced will be the max range.

    Input Boosting:
    From my testing, I found that input boost interferes way too much with frequency capping, so I've stopped supporting it altogether. EAS kernels can still benefit with schedtune.boost and dynamic_schedtune.boost. This is not to say that Helix Engine does not support HMP, you are still fine to be on an HMP kernel, but you will get better performance/efficiency with an EAS kernel nevertheless.

    I've also enrolled to use Google's Play App Signing service, so hopefully people who are so anal about signatures will be satisfied.

    Update rolling out to the alpha channel in the play store now, or you can get the APK attached in this post.

    WARNING: IT IS ADVISABLE TO WIPE APP DATA BEFORE OR AFTER INSTALLING THIS UPDATE! THERE HAS BEEN SIGNIFICANT CHANGES AND BUGS MIGHT OCCUR IF YOU IGNORE THIS!

    ------------------
    EDIT 26/01/19:

    CAF Boost Framework no longer needed to be disabled or "fixed"! Helix Engine just disables input boosting which will be enough to keep CPU frequencies from obeying their capped values!

    Also fixed normalised per app profiles not being generated properly in the last build. It is 100% working now.

    A few changes to the logic and priority of which value gets decreased first, as well as re-implementing speed of learning, but is controlled automatically this time. Values will decrease according to a multiplier which will be determined by how far the jank percentage is from the target jank percentage.

    User Experience Program and Sync App Engine has been removed due to the fact that most recommended profiles are being set to balanced anyway, which is not supposed to happen at all. We will be collecting app engine lists which will be added to the shared profile data post maintained by @RogerF81.

    ------------------
    EDIT 30/01/19:

    There was a major bug where the machine learning mode would get stuck on values due to something I messed up, it's been fixed now and the latest build is rolling out in the play store. The latest build will also be attached in this post as 67.apk.
    476
    5.0.0-alpha EARLY TEST

    An advanced Merry Christmas to those who celebrate it!

    5.0.0-alpha:
    - Misc code optimizations to keep the app running smoothly
    - Significantly reduced risks of memory leaks
    - Fixed notification not turning off when Accessibility Service gets turned off
    - Notification will now tell you if force performance mode is enabled
    - Cleaned up Notification

    - Machine Learning 3.0
    - Normalised per-app ML profile which is automatically generated
    - Training Data to make ML behave more consistent than before
    - Automatic database cleaning to prevent database from building up and taking up large storage space
    - Removed Speed of Learning modifier as it is not needed for the new algorithm

    Machine Learning 3.0 in a nutshell:
    A special ML profile that is automatically generated will be used instead of the regular app engine profiles. The profile collects the average values from a local database created by Helix Engine containing a history of configs that were used to achieve the target jank percentage for that particular app. Overtime this profile should get more and more consistent.

    App Engine configs are still important because the profiles (battery/balanced) will give the app a starting point to work from. E.g. if you set an app to battery and has not been detected by Machine Learning before, it will use the config that's been set to the battery profile only for the first time.

    I've taken precautionary measures in the event that the database starts to use up a lot of storage - a history threshold is put in place (100 records per-app). When the size of the App History reaches the threshold, it will delete the oldest history record when a new history record is added. This way, you will still get a good sample size of historical data to get a normalised profile from, but the database won't grow into extreme sizes.

    NOTE: In the current state of 5.0.0-alpha, Machine Learning ONLY changes CPU frequencies. More parameters will be added later, this is a very early build of 5.0.0!

    This is only going to be an XDA release, it will not be available in the play store yet as it is a very early build. If you are having issues upgrading from 4.0.6-beta, or downgrading from 5.0.0-alpha to 4.0.6-beta wipe app data and try opening the app again.

    Again, this is a very early release of 5.0.0, don't expect it to be 100% perfect. If 4.0.6-beta is working great for you already, you don't have to upgrade to this build.

    Oh also here's 5 free premium upgrade codes, you can redeem either via play store > redeem or Helix Engine > Upgrade > Change Payment Method > Redeem Code:
    KGYQMFFJF3RJ1EJ4XL7KQK4
    BVK5FRP3KT084F28LJKQR42
    WN5YVBZRYACKKJ0VL5T0PSH
    K1CLUWSAW68TEX0JUZ9CNUF
    UA38F4EW9UBXV0YF8SZ15A0
    475
    Just finished my exams for this semester. New build of 5.0.0-alpha coming soon!

    I've fixed some idle drain issues reported by @raphielscape where stopping the perf service can cause more idle drain due to failed acquired lock errors by perf when the service is disabled, spamming the logcat like crazy. Perf will be restarted whenever the screen is off, and will be disabled whenever the screen is on.

    Also fixed normalised per app profiles not being generated properly in the last build. It is 100% working now.

    A few changes to the logic and priority of which value gets decreased first, as well as re-implementing speed of learning, but is controlled automatically this time. Values will decrease according to a multiplier which will be determined by how far the jank percentage is from the target jank percentage.

    EDIT: I am thinking of removing the User Experience Program/Sync App Engine. I was doing the implementation of having the recommended profile display on each app in App Engine, but it turns out that the majority of the recommendations are still balanced or completely wrong suggestions (e.g. Camera being recommended the battery profile WTF?). It might be worth just sharing our XML config files using Helix Engine's backup and restore feature, at least this will be more accurate. What do you guys think?
    475
    Surprise! New build is up - I couldn't wait hahaha

    New builds are posted here: https://xdaforums.com/showpost.php?p=78655092&postcount=3182 APK is attached in the post but is rolling out in the alpha channel via play store too.

    If you were on a previous build of 5.0.0-alpha before, it may not be necessary for you to wipe app data. If you encounter bugs, please wipe app data and see if you can reproduce the bug before reporting it.

    New location for user submitted configs after the absence of User Experience Program/Sync App Engine: https://github.com/Team-Helix/Helix-Engine-User-Configs

    If you want to submit your own configs, feel free to post it here and tag either me or @RogerF81 and we'll add it to the repo :)