Hi Andy.

I've checked power management component. It doesn't changes for a long time 
and works normal.
 

> Without it, on every hardware VSYNC the system wake up SurfaceFlinger and 
> wakes up all apps.  With it, you still do that, but instead of it all 
> happening at once it gets distributed.  For example, on Nexus 5, 
> SurfaceFlinger wakes up at VSYNC + 5ms, and apps wake up at VSYNC + 7.5ms. 
>  If you configure your boardconfig values for VSYNC_EVENT_PHASE_OFFSET_NS 
> and SF_VSYNC_EVENT_PHASE_OFFSET_NS to zero, you should get the old 
> "everybody wake up at once" behavior.
>

I don't set VSYNC_EVENT_PHASE_OFFSET_NS and SF_VSYNC_EVENT_PHASE_OFFSET_NS 
defines. I think this defines doesn't affect power consumption.
 

> Hardware VSYNC is disabled entirely unless DispSync believes that it is 
> falling out of sync with the actual refresh.  If it does, it turns hardware 
> VSYNC back on and re-synchronizes.  It determines the loss of synchronicity 
> by watching the release fences, which should be signaled at VSYNC.  (If 
> they're signaled slightly before VSYNC is reported, you can specify an 
> offset with PRESENT_TIME_OFFSET_FROM_VSYNC_NS in the boardconfig).
>
> If it's constantly attempting to resynchronize, you should figure out why 
> that is.  Maybe PRESENT_TIME_OFFSET_FROM_VSYNC_NS needs to be set?  
>

When you said "resynchronize" do you mean that DispSync disable/enable 
hardware vsync when it shouldn't?
I got behaviour when hardware vsync was changed to enable or disable state 
during video playback. Then I set PRESENT_TIME_OFFSET_FROM_VSYNC_NS define 
to 500000 and hardware vsync enable/disable behaviour became normal.
Is it normal value for PRESENT_TIME_OFFSET_FROM_VSYNC_NS define?
How to calculate values for these 3 defines? Are there some recommended 
values for these defines?
 

> Is the monotonic clock not working properly on your device?
>

If monotonic clock doesn't work properly I will have problems with 
Choreographer and other services.

The amount of added work should be minor.  
>
 
I want to believe but tests shows another.
I've rechecked time time when CPU works on maximal frequency. I've got:

CPUFreq Governor: interactive
Total number of OPP transitions: 109

|---------------------------------|
| OPP         | Time Spent in OPP |
|---------------------------------|
| OPP50_LOW   | 14s740ms          |
| OPP50_HIGH  | 5s320ms           |
| OPP100_LOW  | 0s0ms             |
| OPP119_LOW  | 0s0ms             |
| OPP119_HIGH | 0s0ms             |
|---------------------------------|

When I pass empty display retire fences to SurfaceFlinger and it doesn't 
call addPresentFence function from DispSync I got:

 CPUFreq Governor: interactive
Total number of OPP transitions: 65

|---------------------------------|
| OPP         | Time Spent in OPP |
|---------------------------------|
| OPP50_LOW   | 16s920ms          |
| OPP50_HIGH  | 3s120ms           |
| OPP100_LOW  | 0s0ms             |
| OPP119_LOW  | 0s0ms             |
| OPP119_HIGH | 0s0ms             |
|---------------------------------|

Difference is 2.2s or 60%.

Maksym. 

-- 
-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

--- 
You received this message because you are subscribed to the Google Groups 
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-porting+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to