FIX: Content Adaptive Backlight

Search This thread

xdabbeb

Inactive Recognized Developer
Sep 10, 2010
1,248
7,257
I've seen a few threads/comments here about the flickering/adjusting of the backlight level at lower (less than 50%) brightness levels even though auto-brightness was off. As was suspected, it's just due to a content adaptive backlight module. It can be shut off by just running the CABLPreferences activity of the com.qualcomm.cabl app. It also looks like there is a "quality" setting in there to play with that just varies the aggressiveness of the effect.

If you don't know how to launch an activity, you can do the following:

Via ADB:
Code:
adb shell "am start -a android.intent.action.MAIN -n com.qualcomm.cabl/com.qualcomm.cabl.CABLPreferences"

Via Terminal on your phone:
Code:
am start -a android.intent.action.MAIN -n com.qualcomm.cabl/com.qualcomm.cabl.CABLPreferences

I haven't done any more checking, but I'm guessing this is just a flag that could be set in sys/devices/blah... by init.d script on boot as well.

If you prefer a gui, there are plenty of launchers out there that can select an activity to start. I actually had it set up as a long-press pie on LMT while I was playing with it.

It seems (on my phone, at least), that the app wasn't as good at turning it back on, but you can just clear the app data/cache on "Content Adaptive Backlight Settings" in application manager, reboot, and you'll be back to stock behavior.

Sorry I didn't post this sooner. I've been too busy playing with the G2!
 

jayochs

Senior Member
Jul 22, 2010
9,624
3,147
36
Central NJ
www.dinosaurstakefrance.com
this doesn't work.

I've tried this weeks ago. simply telling the app to turn it off does nothing, as it's still on no matter what. deleting the app produces the same exact effect.

in the build prop, the line pointing to cabl is set to false. therefore it's really not even reading what the app is saying it seems.

I believe it's a kernel issue that can only be solved once we get a custom one.

again, this isn't a fix and doesn't turn it off at all sadly.

Sent from my VS980 4G using Tapatalk 4

https://www.youtube.com/watch?v=slwkFhpiYbs&feature=youtube_gdata_player this video was made when it was set unchecked and set to off.

Sent from my VS980 4G using Tapatalk 4
 

xdabbeb

Inactive Recognized Developer
Sep 10, 2010
1,248
7,257
I read your post about this a couple of weeks ago and saw that you mentioned deleting the app, but did you try running it, unchecking the box and rebooting? Deleting it won't do anything, as the app is set to run on boot and (as far as I can tell) set whatever selection you have chosen. I did and this seems to have worked for me I checked by scrolling through a spot on settings that had normally triggered it. I'll play with it more later to see if I either got lucky when I tested it or it is still happening. I agree that this is working on a kernel level.
 

SysAdmNj

Senior Member
Jun 29, 2010
2,568
227
Is this issue on all carrier versions?

I use auto-brightness and the annoyance I have is that it doesn't change brightness right away when entering different lighting environments. It either takes time or doesn't change at all until I uncheck/check the auto-brightness setting.
 

jayochs

Senior Member
Jul 22, 2010
9,624
3,147
36
Central NJ
www.dinosaurstakefrance.com
I read your post about this a couple of weeks ago and saw that you mentioned deleting the app, but did you try running it, unchecking the box and rebooting? Deleting it won't do anything, as the app is set to run on boot and (as far as I can tell) set whatever selection you have chosen. I did and this seems to have worked for me I checked by scrolling through a spot on settings that had normally triggered it. I'll play with it more later to see if I either got lucky when I tested it or it is still happening. I agree that this is working on a kernel level.

yeah, if the app is deleted, then it can't run unless defaulted to on without the app. . so i tried deleting it, and then i also tried un checking the box, and it still does it. no matter what, there must be a setting somewhere else to actually turn it off. did you see that line in the build prop? it's set to false... weird right?

Sent from my VS980 4G using Tapatalk 4
 

xdabbeb

Inactive Recognized Developer
Sep 10, 2010
1,248
7,257
yeah, if the app is deleted, then it can't run unless defaulted to on without the app. . so i tried deleting it, and then i also tried un checking the box, and it still does it. no matter what, there must be a setting somewhere else to actually turn it off. did you see that line in the build prop? it's set to false... weird right?

Sent from my VS980 4G using Tapatalk 4

Yep, I did...and I remembered I had set it to true before I even began messing with the CABL App. I was thinking that could be the difference between what you and I had tried, but I just did a bit more testing to see if it was happening still and unfortunately I think I may have seen it. I'll play with it a bit more later to be sure. I also did a quick look in the usual places for this to be turned on/off in /sys/class/ and couldn't find anything. I suppose it's possible LG built the kernel for this device without the ability to turn it off. If so...that'll be unfortunate.
 

whittikins

Senior Member
Oct 12, 2011
761
191
Yep, I did...and I remembered I had set it to true before I even began messing with the CABL App. I was thinking that could be the difference between what you and I had tried, but I just did a bit more testing to see if it was happening still and unfortunately I think I may have seen it. I'll play with it a bit more later to be sure. I also did a quick look in the usual places for this to be turned on/off in /sys/class/ and couldn't find anything. I suppose it's possible LG built the kernel for this device without the ability to turn it off. If so...that'll be unfortunate.

I believe the original Nexus 7 had this feature in the kernel too. However, in custom kernels you could use Trickster mod to toggle the feature off. I think the kernel devs had to expose the setting though, so maybe we'll get this taken care of if we can get a custom kernel.
 
  • Like
Reactions: jayochs and xdabbeb

jayochs

Senior Member
Jul 22, 2010
9,624
3,147
36
Central NJ
www.dinosaurstakefrance.com
Scott, I sent you a message on hangouts but in my build prop, i don't show a 1 for the cabl setting.. i show false... as if it's already turned off in the build prop. I changed it to true once and it didn't do anything. those two top settings seem to be what's in the app.. you can check a box to turn it on and off (the first line) and then you can set the degree to which it handles the cabl (second line.) I've messed with both in the app and it did absolutely nothing... does the kernel need to be changed as well?

Sent from my VS980 4G using Tapatalk 4
 

Noam23

Senior Member
Feb 26, 2008
733
131
I've seen a few threads/comments here about the flickering/adjusting of the backlight level at lower (less than 50%) brightness levels even though auto-brightness was off. As was suspected, it's just due to a content adaptive backlight module. It can be shut off by just running the CABLPreferences activity of the com.qualcomm.cabl app. It also looks like there is a "quality" setting in there to play with that just varies the aggressiveness of the effect.

I'm not sure you really want to "fix" this feature.

LCD screens (like the one in the LG G2) have inherent low contrast ratio (just 1500:1, in comparison to infinity, with AMOLEDs). In order to compensate, LCD screens use a feature called "dynamic contrast", in which the backlight dims when the screen shows darker content, in order for the perceived black levels to appear darker (and not grey). I'm not sure you want to disable this feature, because the outcome will be grey blacks.
 
  • Like
Reactions: jonstrong

Scott

Retired Recognized Developer
I'm not sure you really want to "fix" this feature.

LCD screens (like the one in the LG G2) have inherent low contrast ratio (just 1500:1, in comparison to infinity, with AMOLEDs). In order to compensate, LCD screens use a feature called "dynamic contrast", in which the backlight dims when the screen shows darker content, in order for the perceived black levels to appear darker (and not grey). I'm not sure you want to disable this feature, because the outcome will be grey blacks.

I did not know about the contrast ratio on these screens. Makes sense what you are saying.

However like Jay said it does not react smoothly or at appropriate times.


Some will need to edit the kernel code to fix this.
 

xdabbeb

Inactive Recognized Developer
Sep 10, 2010
1,248
7,257
I'm not sure you really want to "fix" this feature.

LCD screens (like the one in the LG G2) have inherent low contrast ratio (just 1500:1, in comparison to infinity, with AMOLEDs). In order to compensate, LCD screens use a feature called "dynamic contrast", in which the backlight dims when the screen shows darker content, in order for the perceived black levels to appear darker (and not grey). I'm not sure you want to disable this feature, because the outcome will be grey blacks.

Yep. What @jayochs and @scrosler said. What you wrote does make sense, and I had noticed that it behaves the opposite of the CAB implementation on AMOLED screens (where it dims on lighter colored content)...so that gives even more credence to what you're saying, but the implementation is a little buggy. It transitions abruptly and causes the "flickering" that many have reported. I certainly wouldn't mind having it enabled if the transitions were slower/less frequent, but it's kind of annoying as it is. I never was able to find a way to disable it in the stock kernel anyway, so hopefully it can be fixed one way or another now that the source is available. Still the best phone I've owned!
 
  • Like
Reactions: jayochs

antinorm

Senior Member
Jul 24, 2009
84
24
I'm currently using Xposed to try and figure out what is going on here (I have several updateBrightness() events hooked, and am logging stack traces from them). It happened again less than an hour ago, so I need to go through that stack trace and see if I can figure out whether or not the actual brightness update can be blocked.

This has nothing to do with CABL, incidentally. I have CABL turned off, and I've seen the flicker-flicker-flicker-brightness drop issue with nothing more than a web page open. I usually keep my brightness around 68%-69%, too.
 

jayochs

Senior Member
Jul 22, 2010
9,624
3,147
36
Central NJ
www.dinosaurstakefrance.com
I'm currently using Xposed to try and figure out what is going on here (I have several updateBrightness() events hooked, and am logging stack traces from them). It happened again less than an hour ago, so I need to go through that stack trace and see if I can figure out whether or not the actual brightness update can be blocked.

This has nothing to do with CABL, incidentally. I have CABL turned off, and I've seen the flicker-flicker-flicker-brightness drop issue with nothing more than a web page open. I usually keep my brightness around 68%-69%, too.

i'm thinking it's CABL, but it's kernel level, NOT software level, which is why disabling it does absolutely nothing.
 
  • Like
Reactions: esgie

mannequin

Senior Member
Feb 7, 2011
1,603
362
New York
so no solution was ever found for this (besides a new kernel)? my phone doesn't flicker but on the brightness below 50% i can notice it's trying to readjust itself slightly once in awhile (with xda app or play store for example).
 

UnskilledOne

Member
Nov 26, 2013
22
3
Lala Land
Encountered this issue as well. So, the cause of this has something to do with the software and not the hardware? Don't want to send my phone back just to receive yet another problematic set.. I set my screen brightness to 38 which it flickers on certain photos and apps. Bumped it up to about 45 and it seems to have stopped.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    I've seen a few threads/comments here about the flickering/adjusting of the backlight level at lower (less than 50%) brightness levels even though auto-brightness was off. As was suspected, it's just due to a content adaptive backlight module. It can be shut off by just running the CABLPreferences activity of the com.qualcomm.cabl app. It also looks like there is a "quality" setting in there to play with that just varies the aggressiveness of the effect.

    If you don't know how to launch an activity, you can do the following:

    Via ADB:
    Code:
    adb shell "am start -a android.intent.action.MAIN -n com.qualcomm.cabl/com.qualcomm.cabl.CABLPreferences"

    Via Terminal on your phone:
    Code:
    am start -a android.intent.action.MAIN -n com.qualcomm.cabl/com.qualcomm.cabl.CABLPreferences

    I haven't done any more checking, but I'm guessing this is just a flag that could be set in sys/devices/blah... by init.d script on boot as well.

    If you prefer a gui, there are plenty of launchers out there that can select an activity to start. I actually had it set up as a long-press pie on LMT while I was playing with it.

    It seems (on my phone, at least), that the app wasn't as good at turning it back on, but you can just clear the app data/cache on "Content Adaptive Backlight Settings" in application manager, reboot, and you'll be back to stock behavior.

    Sorry I didn't post this sooner. I've been too busy playing with the G2!
    3
    Is this issue on all carrier versions?

    I use auto-brightness and the annoyance I have is that it doesn't change brightness right away when entering different lighting environments. It either takes time or doesn't change at all until I uncheck/check the auto-brightness setting.
    2
    Yep, I did...and I remembered I had set it to true before I even began messing with the CABL App. I was thinking that could be the difference between what you and I had tried, but I just did a bit more testing to see if it was happening still and unfortunately I think I may have seen it. I'll play with it a bit more later to be sure. I also did a quick look in the usual places for this to be turned on/off in /sys/class/ and couldn't find anything. I suppose it's possible LG built the kernel for this device without the ability to turn it off. If so...that'll be unfortunate.

    I believe the original Nexus 7 had this feature in the kernel too. However, in custom kernels you could use Trickster mod to toggle the feature off. I think the kernel devs had to expose the setting though, so maybe we'll get this taken care of if we can get a custom kernel.
    2
    Here are some build props for Qualcom devices that control the CABL


    Code:
    ro.qualcomm.cabl=1
    hw.cabl.level=Auto
    persist.qcom.cabl.video_only=1


    By adding / editing these lines in the build.prop you should be able to adjust as noted in the lines.

    And yes, it is in the kernel.


    Dont know why LG has an app for it?
    1
    I've seen a few threads/comments here about the flickering/adjusting of the backlight level at lower (less than 50%) brightness levels even though auto-brightness was off. As was suspected, it's just due to a content adaptive backlight module. It can be shut off by just running the CABLPreferences activity of the com.qualcomm.cabl app. It also looks like there is a "quality" setting in there to play with that just varies the aggressiveness of the effect.

    I'm not sure you really want to "fix" this feature.

    LCD screens (like the one in the LG G2) have inherent low contrast ratio (just 1500:1, in comparison to infinity, with AMOLEDs). In order to compensate, LCD screens use a feature called "dynamic contrast", in which the backlight dims when the screen shows darker content, in order for the perceived black levels to appear darker (and not grey). I'm not sure you want to disable this feature, because the outcome will be grey blacks.