• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[TWEAK][04.NOV][NEAR Project Butter Implementation for all ICS ROMS][Beta1]

Search This thread

totiadrenalin

Senior Member
May 13, 2010
169
279
Sveti Nikole
IMPORTANT
After a month of testing in several roms, I decide to release the beta version!
It's almost same as the alpha version, but with several changes!
See the changelog!

Atention!
This is not the real project butter introduced in Android Jelly Bean!
This is just compilation of tweaks!
All tested buy me, one buy one!

MUST READ THIS FIRST
It is logical that adreno_config.txt is only for all those devices, which have the adreno graphics and qualcom cpu.
But down in the attachments you will find Project-Butter-for-ICS_v1.0 -Without_Adreno-Config-alpha2.zip,
This is for all other devices which doesn't have Qualcom CPU, and Adreno Graphic.
For those who doesn't know what is project butter please first watch this video: Project Butter

The code is for developers only, to implement it into there roms.
Down in the attachment will be the zip file for every regular user, if want to try it!

Files that I tweak are:
build.prop
adreno_config.txt
egl.cfg
libGLES_android.so

Some of this tweaks are well know for the Devs, but, as I could see checking all of the current known ICS roms for DS, are not!

Down below I'll explain all of the tweaks!

build.prop
Code:
#Grpahics & performances tweaks
com.qc.hardware=true
debug.sf.hw = 1
debug.composition.type=gpu
debug.enabletr = true
debug.qctwa.preservebuf = 1
debug.egl.hw=1
debug.egl.profiler=1
debug.performance.tuning=1
debug.gr.swapinterval=1
dev.pm.dyn_samplingrate=1
persist.sampling_profiler=0
persist.sys.NV_FPSLIMIT=60
persist.sys.ui.hw=1
persist.sys.use_16bpp_alpha=1
persist.sys.use_dithering=1
persist.sys.ui.hw=1
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.sf.compbypass.enable=1
windowsmgr.max_events_per_sec=250

#Media quality improvements
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
media.stagefright.enable-record=true
ro.media.enc.jpeg.quality=100
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
ro.media.enc.hprof.vid.fps=75
video.accelerate.hw=1


#Dalvik tweaks
dalvik.gc.type=precise
dalvik.vm.heapstartsize=5m
dalvik.vm.dexopt-data-only=1
dalvik.vm.verify_bytecode=false
dalvik.vm.jniopts=forcecopy
dalvik.vm.dexopt-flags=m=v,o=y
dalvik.vm.execution-mode=int:jit


#Other Performance Tweaks
ENFORCE_PROCESS_LIMIT=false
persist.android.strictmode=0
persist.service.lgospd.enable=0
persist.service.pcsync.enable=0
ro.min_pointer_dur=1
ro.telephony.call_ring.delay=0
ro.sec.proximity.delay=0
ro.HOME_APP_ADJ=1

adreno_config.txt
Code:
Use hardware-assisted binning.
from [COLOR="DarkRed"]binning=sw[/COLOR] to [COLOR="DarkRed"]binning=hw[/COLOR]

[COLOR="Navy"][SIZE="4"]Updated[/SIZE][/COLOR]

Use 2D hardware BLTs.
from [COLOR="DarkRed"]2D.HwBlt=0[/COLOR] to [COLOR="DarkRed"]2D.HwBlt=1[/COLOR]

Enable tiled textures.  Tiled textures are faster to render, but slower to load.
from [COLOR="DarkRed"]textureTiling=0[/COLOR] to [COLOR="DarkRed"]textureTiling=1[/COLOR]

Playing with the egl.cfg could cause boot loop on some devices !
egl.cfg
Code:
 remove the line: 
0 0 android

libGLES_android.so
Code:
mv /system//lib/egl/libGLES_android.so /system/lib/egl/libGLES_android.so.bak

EDIT:
For testing purposes only
I activate the MultiSampling Antialiasing (MSAA) in adreno_config.txt
Аttention
MSAA may slowdown a bit the GUI due to exchange of the graphics performance!

Code:
Specify the multisampling antialiasing smoothing strategy.
from [COLOR="DarkRed"]MSAASmoothing=Normal[/COLOR] to [COLOR="DarkRed"]MSAASmoothing=High[/COLOR].

Specify the allocation strategy for multisampling antialiasing buffers.
from [COLOR="DarkRed"]MSAABufferAllocation=on_demand[/COLOR] to [COLOR="DarkRed"]MSAABufferAllocation=always[/COLOR]

Force the MSAA antialiasing mode to the value in MSAAMode.
from [COLOR="DarkRed"]forceMSAAMode=0[/COLOR] to [COLOR="DarkRed"]forceMSAAMode=1[/COLOR]

Specifiy the antialiasing mode to use if forceMSAAMode is enabled.
from [COLOR="DarkRed"]MSAAMode=0[/COLOR] to [COLOR="DarkRed"]MSAAMode=2[/COLOR]
Maybe go a little too far with the antialiasing mode, but you can choose between 0 = default, 1 = 2x antialiasing, and 2 = 4x antialiasing

You can find the zip down in attachment!
Simply put in your sdcard, and flash it via any recovery!

CHANGELOG:
Code:
[COLOR="Silver"]Fixing buildprop.sh script.
Now it'll make all changings in build.prop correctly!
[SIZE="4"]build.prop[/SIZE]
Setting windowsmgr.max_events_per_sec to reasonable 250 = SingleCore max
[B][SIZE="4"]adreno_config.txt[/SIZE][/B]
Activating 2D Settings
Activating tiled textures[/COLOR]
[COLOR="Black"][SIZE="4"][FONT="Arial Black"][B]build.prop tweaks[/B][/FONT][/SIZE][/COLOR]
debug.composition.type=gpu
persist.sys.NV_FPSLIMIT=60
dev.pm.dyn_samplingrate=1
persist.sys.use_dithering=1
New update released,

IMPORTANT
If you get any scroling problems,
try changing debug.gr.swapinterval=0 to debug.gr.swapinterval=1
This will force the GPU rendering device to wait for the previews frame to be finished before pushing the next frame!
The framerate will be decreased, but you'll get more fluid graphic animations!

ATTENTION
This is a standalone flash zip
I tried to activate vsync clock.
But it is likely this tweak does not change anything!
I simply activate vsync_clk in the kernel, but this depends on how the developer compiling the kernel you are using!
Tested with several ICS roms with Sense 3.6-4 / A, and amidabuddha tweaked kernel 8.0.
Strange, but any kernel abouve v8.0 doesn't change anything in the performances!

vSync_Activator reuploaded!

Anyway!
I've attached some print screen!
 

Attachments

  • Project-Butter-for-ICS+MultiSampling_Antialiasing_(MSAA)_v1.5-beta1.zip
    150.4 KB · Views: 4,401
  • Project-Butter-for-ICS_v1.0-alpha2-no-MSAA.zip
    150.4 KB · Views: 1,187
  • Project-Butter-for-ICS_v1.5-beta1-no-MSAA.zip
    150.4 KB · Views: 2,805
  • vSync_Activator.zip
    142.9 KB · Views: 2,075
  • vSync_DeActivator.zip
    143.2 KB · Views: 903
  • Project-Butter-for-ICS-Without_adreno_conifg+Mali-GPU_v1.5-beta1.rar
    135 KB · Views: 3,817
Last edited:

alfredino85

Senior Member
Jan 4, 2011
241
50
Montebelluna
on fallout v5

i have flashed the zip file.
1) The file " /system/lib/egl/libGLES_android.so" has not been properly renamed in "/system/lib/egl/libGLES_android.so.back ".
2) the line "0 0 android" has been properly removed
3) the build.prop has not been properly edited

thank you!

edit: s-off hboot 7.xx
 

totiadrenalin

Senior Member
May 13, 2010
169
279
Sveti Nikole
Is v1.0-alpha1 different to the one posted here?

Project-Butter-for-ICS+MultiSampling Antialiasing (MSAA)_v1.0-alpha1.zip and this one are not!
Because of the MSAA activated in the Project-Butter-for-ICS+MultiSampling Antialiasing (MSAA)_v1.0-alpha1.zip.
But Project-Butter-for-ICS_v1.0-alpha1.zip and this one
are almost the same!
Except the fixes in updater-script and buildprop.sh.
And that this is a official, with explanation on every tweak, and changes!
 

Dreamtheater2003

Senior Member
Oct 20, 2008
353
24
Cainta
Is this the same as the one you've posted in virtuous thread? I've tried it but notice no difference.. can this be installed in virtuous rom? what changes are we expecting here? thank you
 

teadrinker

Senior Member
Jun 7, 2012
1,122
485
I've flashed the tweaks (with msaa) on a very stripped down stock ics using apex launcher and amidabuddhas Kernel, and it does seem buuuttery smooth :D :D

Sent from my HTC Desire S using xda app-developers app
 

Frostbeule2k

Senior Member
Aug 4, 2010
106
18
Baden-Baden
If flashed the Alpha 2 witho MSAA. I think the App Drawer is much smoother than without the "patch". At the home screens I´ve noticed no really improvements.
I using Nexx´s Cyanogemod 9 with the Apex launcher.
 
v1.0alpha2 no MSAA didnt work well with IceColdSandwich v8.5... firstly I thought it didnt boot because the screen stays black... but when plugged on cable and run adb logcat it shows it works... so I tried to switch the screen on with power button but nothing happend... on second push it instantly showed crt off animation and of course screen turned off... I am going to try alpha2 with MSAA...

edit: the same symptoms with 1.0 alpha 2 + MSAA as well...
 
Last edited:

jader13254

Senior Member
May 25, 2012
5,928
17,917
Hamburg
Thank You, works pretty good :good: on Xperia arc S, i Must Mount /systen before installation :)

Maybe I'll Include to One of My ROM's :) ( if u allow)

Sent from my LT18i using xda app-developers app
 

totiadrenalin

Senior Member
May 13, 2010
169
279
Sveti Nikole
Thank You, works pretty good :good: on Xperia arc S, i Must Mount /systen before installation :)

Maybe I'll Include to One of My ROM's :) ( if u allow)

Sent from my LT18i using xda app-developers app

I put the code with reason.
Anyway. I just put together Tweaks.
And I don't say that this is a real project butter.
Because to port the real project butter, some build.prop, and adreno_config.txt tweaks are not enough.
first we will need to activate the triple frame buffer in the gpu drivers. Triple frame buffers
Also we need to activate vsync.
That's wy i name this thread near Project butter
 

Top Liked Posts

  • There are no posts matching your filters.
  • 83
    IMPORTANT
    After a month of testing in several roms, I decide to release the beta version!
    It's almost same as the alpha version, but with several changes!
    See the changelog!

    Atention!
    This is not the real project butter introduced in Android Jelly Bean!
    This is just compilation of tweaks!
    All tested buy me, one buy one!

    MUST READ THIS FIRST
    It is logical that adreno_config.txt is only for all those devices, which have the adreno graphics and qualcom cpu.
    But down in the attachments you will find Project-Butter-for-ICS_v1.0 -Without_Adreno-Config-alpha2.zip,
    This is for all other devices which doesn't have Qualcom CPU, and Adreno Graphic.
    For those who doesn't know what is project butter please first watch this video: Project Butter

    The code is for developers only, to implement it into there roms.
    Down in the attachment will be the zip file for every regular user, if want to try it!

    Files that I tweak are:
    build.prop
    adreno_config.txt
    egl.cfg
    libGLES_android.so

    Some of this tweaks are well know for the Devs, but, as I could see checking all of the current known ICS roms for DS, are not!

    Down below I'll explain all of the tweaks!

    build.prop
    Code:
    #Grpahics & performances tweaks
    com.qc.hardware=true
    debug.sf.hw = 1
    debug.composition.type=gpu
    debug.enabletr = true
    debug.qctwa.preservebuf = 1
    debug.egl.hw=1
    debug.egl.profiler=1
    debug.performance.tuning=1
    debug.gr.swapinterval=1
    dev.pm.dyn_samplingrate=1
    persist.sampling_profiler=0
    persist.sys.NV_FPSLIMIT=60
    persist.sys.ui.hw=1
    persist.sys.use_16bpp_alpha=1
    persist.sys.use_dithering=1
    persist.sys.ui.hw=1
    ro.max.fling_velocity=12000
    ro.min.fling_velocity=8000
    ro.sf.compbypass.enable=1
    windowsmgr.max_events_per_sec=250
    
    #Media quality improvements
    media.stagefright.enable-player=true
    media.stagefright.enable-meta=true
    media.stagefright.enable-scan=true
    media.stagefright.enable-http=true
    media.stagefright.enable-record=true
    ro.media.enc.jpeg.quality=100
    ro.media.dec.jpeg.memcap=8000000
    ro.media.enc.hprof.vid.bps=8000000
    ro.media.enc.hprof.vid.fps=75
    video.accelerate.hw=1
    
    
    #Dalvik tweaks
    dalvik.gc.type=precise
    dalvik.vm.heapstartsize=5m
    dalvik.vm.dexopt-data-only=1
    dalvik.vm.verify_bytecode=false
    dalvik.vm.jniopts=forcecopy
    dalvik.vm.dexopt-flags=m=v,o=y
    dalvik.vm.execution-mode=int:jit
    
    
    #Other Performance Tweaks
    ENFORCE_PROCESS_LIMIT=false
    persist.android.strictmode=0
    persist.service.lgospd.enable=0
    persist.service.pcsync.enable=0
    ro.min_pointer_dur=1
    ro.telephony.call_ring.delay=0
    ro.sec.proximity.delay=0
    ro.HOME_APP_ADJ=1

    adreno_config.txt
    Code:
    Use hardware-assisted binning.
    from [COLOR="DarkRed"]binning=sw[/COLOR] to [COLOR="DarkRed"]binning=hw[/COLOR]
    
    [COLOR="Navy"][SIZE="4"]Updated[/SIZE][/COLOR]
    
    Use 2D hardware BLTs.
    from [COLOR="DarkRed"]2D.HwBlt=0[/COLOR] to [COLOR="DarkRed"]2D.HwBlt=1[/COLOR]
    
    Enable tiled textures.  Tiled textures are faster to render, but slower to load.
    from [COLOR="DarkRed"]textureTiling=0[/COLOR] to [COLOR="DarkRed"]textureTiling=1[/COLOR]

    Playing with the egl.cfg could cause boot loop on some devices !
    egl.cfg
    Code:
     remove the line: 
    0 0 android

    libGLES_android.so
    Code:
    mv /system//lib/egl/libGLES_android.so /system/lib/egl/libGLES_android.so.bak

    EDIT:
    For testing purposes only
    I activate the MultiSampling Antialiasing (MSAA) in adreno_config.txt
    Аttention
    MSAA may slowdown a bit the GUI due to exchange of the graphics performance!

    Code:
    Specify the multisampling antialiasing smoothing strategy.
    from [COLOR="DarkRed"]MSAASmoothing=Normal[/COLOR] to [COLOR="DarkRed"]MSAASmoothing=High[/COLOR].
    
    Specify the allocation strategy for multisampling antialiasing buffers.
    from [COLOR="DarkRed"]MSAABufferAllocation=on_demand[/COLOR] to [COLOR="DarkRed"]MSAABufferAllocation=always[/COLOR]
    
    Force the MSAA antialiasing mode to the value in MSAAMode.
    from [COLOR="DarkRed"]forceMSAAMode=0[/COLOR] to [COLOR="DarkRed"]forceMSAAMode=1[/COLOR]
    
    Specifiy the antialiasing mode to use if forceMSAAMode is enabled.
    from [COLOR="DarkRed"]MSAAMode=0[/COLOR] to [COLOR="DarkRed"]MSAAMode=2[/COLOR]
    Maybe go a little too far with the antialiasing mode, but you can choose between 0 = default, 1 = 2x antialiasing, and 2 = 4x antialiasing

    You can find the zip down in attachment!
    Simply put in your sdcard, and flash it via any recovery!

    CHANGELOG:
    Code:
    [COLOR="Silver"]Fixing buildprop.sh script.
    Now it'll make all changings in build.prop correctly!
    [SIZE="4"]build.prop[/SIZE]
    Setting windowsmgr.max_events_per_sec to reasonable 250 = SingleCore max
    [B][SIZE="4"]adreno_config.txt[/SIZE][/B]
    Activating 2D Settings
    Activating tiled textures[/COLOR]
    [COLOR="Black"][SIZE="4"][FONT="Arial Black"][B]build.prop tweaks[/B][/FONT][/SIZE][/COLOR]
    debug.composition.type=gpu
    persist.sys.NV_FPSLIMIT=60
    dev.pm.dyn_samplingrate=1
    persist.sys.use_dithering=1
    New update released,

    IMPORTANT
    If you get any scroling problems,
    try changing debug.gr.swapinterval=0 to debug.gr.swapinterval=1
    This will force the GPU rendering device to wait for the previews frame to be finished before pushing the next frame!
    The framerate will be decreased, but you'll get more fluid graphic animations!

    ATTENTION
    This is a standalone flash zip
    I tried to activate vsync clock.
    But it is likely this tweak does not change anything!
    I simply activate vsync_clk in the kernel, but this depends on how the developer compiling the kernel you are using!
    Tested with several ICS roms with Sense 3.6-4 / A, and amidabuddha tweaked kernel 8.0.
    Strange, but any kernel abouve v8.0 doesn't change anything in the performances!

    vSync_Activator reuploaded!

    Anyway!
    I've attached some print screen!
    5
    Ok!
    I'll try to fix problems!
    5
    To be honest: ViperSaga is running smooth enough for me that i do not really need this mod at the moment.
    But thanks for your help.

    To be honest ViperSaga already has most of the tweaks.
    That's why you don't need this tweak!
    I can see that my mission was done!
    My initial goal was to help rom devs to make there ROMS smoother!
    That's why I put all of the tweak CODES!
    :)
    Best Regards my friend!
    And about the wifi problem?
    If somebody that have the WIFI issue, and have good will to help me,
    PM me please!
    4
    vSync activator is empty

    My Mistake, Sorry!
    I'm not at home right now!
    I'll reupload it right after I get hme!
    Untill than you could add the tweak manually!
    via terminal!
    Code:
    su
    mount -o rw,remount /system
    echo "#!/system/bin/sh" > /system/etc/init.d/20-vsync
    echo "#" >> /system/etc/init.d/20-vsync
    echo "echo "1" > /d/clk/mdp_vsync_clk/enable" >> /system/etc/init.d/20-vsync
    mount -o ro,remount /system
    And reboot the phone!

    This code will create a file named 20-vsync in the init.d folder, which will activate the mdp_vsync clock