8cc4e2a2de3c0cf932226a5a6042de5d830fa24a |
|
12-May-2016 |
Sean Paul <seanpaul@chromium.org> |
DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes Use the new Planner interface to handle the layer->plane mapping. This allows us to simplify the Plan() function by offloading the plane provisioning to the platform specific code. BUG=b/28117135 TEST=Tested on ryu with a variety of window layouts/workloads Signed-off-by: Sean Paul <seanpaul@chromium.org> Change-Id: I75a0c5d87a9096e7a83ecbc848c75fee42ee1131
/external/drm_hwcomposer/drmcomposition.h
|
22fd62fbd30a8691555fd51090fa78542367971b |
|
21-Apr-2016 |
Sean Paul <seanpaul@chromium.org> |
DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h We're going to need more platform-specific stuff, so lump it all in the same header. BUG=b/28117135 TEST=compiles Change-Id: Idfe82e9a29a0bcd284a02b2e58af0e620fdc542b Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|
7642c9230a7a5e30bd8e47d656d0d8f3162323f9 |
|
29-Oct-2015 |
Zach Reizner <zachr@google.com> |
drm_hwcomposer: update #include's for drm_hwcomposer.h That's the second most important part of renaming a file. Change-Id: If9280f3b360389ef17b798e162a9c3b0c0a3133b
/external/drm_hwcomposer/drmcomposition.h
|
5757e82631820372382d3369c54cc3a1ffef812f |
|
17-Oct-2015 |
Zach Reizner <zachr@google.com> |
drm_hwcomposer: implement squashing Change-Id: Ifd4feaa0de303ddfd519d4415ab31d2a72f26022
/external/drm_hwcomposer/drmcomposition.h
|
92f8e6399c0829c6ba6db77d5ea1bbd22f510bb1 |
|
13-Oct-2015 |
Zach Reizner <zachr@google.com> |
drm_hwcomposer: ground work for squashing This patch rearranges things to make squashing possible. The high-level changes: - A new Plan phase that happens in QueueComposition. This is where the overlay allocation is moved to. It's also the only safe time that the composition can try to plan squashing. This is because squashing depends on the exact ordering of compositions. - GLWorker now renders regions rather than layers. A region in this case is a clipping rectange and set of layers that are to be rendered in that rectangle. This is always what GLWorker did in the end, but now the work to seperate layers into regions is done externally. This was changed because the output of SquashState is a list of stable regions that need to be put through GLWorker The Plan methods of the Compositions are responsible for updating per-display SquashState and for allocation regions/layers to squashing, pre-composition, or hardware overlay. Because of the drastic changes to how composition planning works, it was necessary to bundle it with the GLWorker change. This change also includes plenty of other refactorings that were deemed to be too painful to try and seperate into another change. Change-Id: Ie7bfe077067e936a0862a07cbe87b525eab8d4f8
/external/drm_hwcomposer/drmcomposition.h
|
573554106db499d323bea12ff00363b1816f8c8a |
|
19-Sep-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Process modesets via compositor This patch queues modeset in the compositor for application on the next frame. This allows us to perform the modeset atomically with the first frame that comes in after the mode is changed. Change-Id: I6bb9edd17bbdd6dbee5c0474f2e43599781cc7a7 Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|
4a253659cef3d82bfb0b25b3ff4c7b073d7a0460 |
|
11-Sep-2015 |
Zach Reizner <zachr@google.com> |
drm_hwcomposer: implement the safe handling of layers This is a sweeping change to discard our usage of struct hwc_layer_t outside hwcomposer.cpp. That was a dangerous struct that was a source of many of our errors. Replacing it with safer RAII-style classes reduces the amount and complexity of our code. Change-Id: I580cafdf89bd1e7e6583f3073858b8e78e6018ba
/external/drm_hwcomposer/drmcomposition.h
|
bdc67bffcffaa838836b1111f6dcf07cba5ff134 |
|
21-Sep-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Plumb frame number through display composition Having frame number in the composition is very useful for debugging transient issues, plumb it through the drm compositor stack. Change-Id: Ibc7555c89bea79c580b3201b11db4ced6360efb9 Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|
098070590ae648ede5f2ef846298de178ccd3637 |
|
13-Aug-2015 |
Zach Reizner <zachr@google.com> |
drm_hwcomposer: enhance stability using various wrapper classes This commit contains a lot of churn because it changes code to use automatic resource lifetimes as much as possible. As more things get changed, this is essential to maintaining stability. In addition, this change changes how layers are passed through the compositor API. Before each layer was passed down one at a time. Now they are passed in all at once. This is simpler for the implementation because it makes errors more atomic and makes decisions easier for the compositors. Change-Id: Ic3e6b5d0089fb1631ea256adcce9910ed8f38366
/external/drm_hwcomposer/drmcomposition.h
|
459a5a9ccd014224882e5522d2957aba10413691 |
|
01-Aug-2015 |
Zach Reizner <zachr@google.com> |
Revert "Revert "drm_hwcomposer: remove compositor interface"" This reverts commit 1c5e55680d9165d8f9bb2bc6e2c4261574b5d41d.
/external/drm_hwcomposer/drmcomposition.h
|
1c5e55680d9165d8f9bb2bc6e2c4261574b5d41d |
|
30-Jul-2015 |
Puneet Kumar <puneetster@google.com> |
Revert "drm_hwcomposer: remove compositor interface" This reverts commit 7912438911de042dc035cf1ea39daaf4e56bf9f3. For now until we can get back to a stable SF/compositor. Change-Id: I2ba7cab4f1cccfe44b3d35fb18c7784125e88fd6
/external/drm_hwcomposer/drmcomposition.h
|
7912438911de042dc035cf1ea39daaf4e56bf9f3 |
|
23-Jul-2015 |
Zach Reizner <zachr@google.com> |
drm_hwcomposer: remove compositor interface The compositor interface had only one implementation and one user. The compositor interface also needs to change to accomodate some changes for fences to work optimally. Change-Id: I02d21b0a0e86fa21b3c5f4ad84ff571611643994
/external/drm_hwcomposer/drmcomposition.h
|
2e46fbd90b1aae158ec0437f564dd610e7392f7a |
|
09-Jul-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Disable unused planes Right before queuing up a composition, go through the list of unused planes and add disable markers such that they don't remain active when the new frame is posted. BUG=chrome-os-parter:42311 TEST=Tested on smaug, turned on/off bunch of times, no dup icons Change-Id: Ic2e5e210873efb6dc41fd43682fe00db33c2a28e Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|
9099aa5e280c094154fd312f415336c1aabb4b8e |
|
09-Jul-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Use vector for overlay planes For two reasons: 1- Because we don't need to use deque 2- Because we'll need to erase from the middle in the future, and deque makes that difficult while iterating BUG=chrome-os-parter:42311 TEST=Tested on smaug, turned on/off bunch of times, no dup icons Change-Id: I306bdea15d7165f63afeb3b1e06774e2e9a1785f Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|
db7a17d28ca48f81be3091e99564e47fa0503e9e |
|
25-Jun-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Process DPMS requests through compositor This patch changes the behavior of DPMS in hwcomposer from applying asynchronously/immediately, to queuing in the compositor and being processed in order. This is desirable for a couple of reasons: 1- It ensures all frames set before set_power_mode are shown on the screen before it turns off 2- We make sure we don't rmfb a framebuffer that is currently applied to a disabled crtc. The second reason above can cause the display to turn back off once it's on since the fb will dereference to zero in the kernel and it will disable the pipe without notifying us. Change-Id: I2aab9ee0353b12fecced46766ed2dbb64f0aef4b Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|
98e73c89a683a92f44c99fb8dc85e51bdda243ba |
|
24-Jun-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Split the drm compositor into per-display threads This patch splits out the current single drm compositor with per-display compositors, each with their own thread. The per-display compositors are hidden behind a singleton drm compositor. This allows us to maintain a whole-world view of all displays involved in a frame. This becomes useful if we start switching up crtcs/encoders for the displays. This also allows us to issue one DrmComposition when the frame is being assembled. The single DrmComposition handles the plane allocation (since they might switch between displays), and contains per-display compositions which are used to store the layer->plane/crtc information for each frame. The display compositors use the per-display compositions to display the frame on their output. Each display compositor receives a shared pointer to the frame's DrmComposition on QueueComposition. As a result, both the composition, and the per-display compositions, live for as long as any one display is still using it. While this is sub-optimal (since a display might never update again), this is probably fine for now. Finally, splitting things up per-display will allow us to inject non-compositing jobs into the composite queue. An example would be turning the display off, or setting the mode. This ensures that all frames in the composite queue are displayed before the mode changes or the display is disabled. Signed-off-by: Sean Paul <seanpaul@chromium.org> Change-Id: I8a233ea64710b238f70acbcde1f6d771e297b069
/external/drm_hwcomposer/drmcomposition.h
|
b386f1b1b3716c06831d82493e9ba5a156094701 |
|
13-May-2015 |
Sean Paul <seanpaul@chromium.org> |
drm_hwcomposer: Use hw planes + drm atomic interface Replace the basic, single overlay, modeset/flip implementation with a new Compositor instantiation for drm. The new compositor uses the drm atomic interface to composite layers to multiple hardware planes. This change also introduces an importer argument in Compositor::CreateComposition. By specifying the importer, Compositor instances are responsible for cleaning up buffer objects submitted via Composition::AddLayer. Change-Id: Ic292829cd93475d754294b00428de132301092b2 Signed-off-by: Sean Paul <seanpaul@chromium.org>
/external/drm_hwcomposer/drmcomposition.h
|