OSDN Git Service

drm_hwcomposer: Really fail on CreateComposition failures
authorJohn Stultz <john.stultz@linaro.org>
Fri, 6 Jul 2018 17:34:42 +0000 (10:34 -0700)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 6 Jul 2018 19:22:07 +0000 (12:22 -0700)
commit76ca20e0224d40c1c0fcfe2c044e184997fac779
tree7dce53f4bb08c91890299ca5e3dcf8bd2ccfbe38
parent78c9f6c26210423926ea027edfab0b9504c2d7ff
drm_hwcomposer: Really fail on CreateComposition failures

The current logic in Validate assumes that if CreateComposition()
fails, it was due to overlay planes as sets the avail_planes to 1.

With most multi-plane compositions, this will then cause the
avil_planes to be later decremented to zero (to reserve the client
composited plane), resulting in all the layers to be set as
client composited.

However, in the case where there is only one layer, such as with
the Android BootAnimation, if CreateComposition fails, we set
avail_planes to one, and since there is only one layer, we don't
decrement it further, resulting in the layer to be validated as
a Device rendered layer, as if CreateComposition succeeded.

This adds an extra flag we don't mix up a single layer failure
as a success.

On HiKey/HiKey960, this patch fixes the issue where the
BootAnimation wouldn't display.

Change-Id: I58bf5f332667a46e8e997d1743b73dd4a768657f
Signed-off-by: John Stultz <john.stultz@linaro.org>
drmhwctwo.cpp