Display: Add swaprect feature for MDP composition.
Add swaprect feature for MDP composition. SwapRect is a SurfaceFlinger feature for selective composition of only thedirty region. * Existing SF does copying of the complete layer for every layer (in effect the full screen) whether or not the layer's information has changed (dirty region). This is very inefficient use of compositing hardware (MDP/GPU). * At the app level, we're doing dirty region rendering (App only renders what is changed) using the feature "Dirty Region Rendering". So, at the app level we know what has changed (dirty region) per layer. But SurfaceFlinger doesn't know this info and hence it's not able to use dirty region for selective composition and ends up compositing full screen. * For SurfaceFlinger to composite only the dirty region 1. It needs to know the dirty region (This needs to be passed down from the app) 2. It needs to pass this info to the actual compositing hardware (MDP / GPU) so that the hw can do selective composition * SWAPRECT feature needs to implement 1 & 2. * 1 is common for all composition types whereas 2 is different for each composition type This change implements 2 for MDP composition * We've also added strong checks in the feature to make sure the feature kicks in only for the UX scenario's where performance improvement is expected and no functionality issue would arise. To enable MDP Swaprect, setprop debug.sf.swaprect 1 and restart framework. Change-Id: Iac67acffcd4de1413cdbe0f15a278cc2cd54206f
Loading