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.