• Home
  • History
  • Annotate
  • only in /external/drm_hwcomposer/
History log of /external/drm_hwcomposer/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
48a4c0561fbdc9dc87cb50a17d0fb38b0259b318 15-Feb-2018 android-build-team Robot <android-build-team-robot@google.com> Snap for 4605948 from fd18c84d877c1d09cc4e8362971d63d5d723098b to pi-release

Change-Id: I946ab1785d6797c8d39071e2d66982a38ea40b37
fd18c84d877c1d09cc4e8362971d63d5d723098b 14-Feb-2018 Bill Yi <byi@google.com> Add metadata am: b4ae4fab95 am: f585f8670d
am: 4080c60680

Change-Id: Ib87cc0c4006a46bdd42e8efcc89c2cfed8088de5
4080c606808d16def52f1c5fb5ab4980c7d11f99 14-Feb-2018 Bill Yi <byi@google.com> Add metadata am: b4ae4fab95
am: f585f8670d

Change-Id: I8f237a044ca0d2e1f08fbac284fac5632e7b28bb
f585f8670d83e88b7c4ad78c2cbe28355e743550 14-Feb-2018 Bill Yi <byi@google.com> Add metadata
am: b4ae4fab95

Change-Id: I6b82b601ff50dcab94ceb42aab02f02710d72a65
b4ae4fab95bc638335309091084d5378ccabc7e3 13-Feb-2018 Bill Yi <byi@google.com> Add metadata

Exempt-From-Owner-Approval: meta data

BUG:67772237
Change-Id: I1251770a5a71442a9a258f88a0ab5852224d0544
ODULE_LICENSE_APACHE2
OTICE
d038faec5f31d205f6c140c666f01e62b7f24c26 11-Dec-2017 android-build-team Robot <android-build-team-robot@google.com> Snap for 4496165 from 31d68c84f2f92663e698699155d01eb14661bc48 to pi-release

Change-Id: I524a196cc2df22170174753821ad9ce534d1bc32
31d68c84f2f92663e698699155d01eb14661bc48 07-Dec-2017 Xin Li <delphij@google.com> DO NOT MERGE: Merge Oreo MR1 into master am: 65fe39d8b0 -s ours am: 10cd87412e
am: c929a32dbc -s ours

Change-Id: Ie1582296cee606a2a5bbf8187d8fb271e6b5948e
c929a32dbcef305d3d8e9e89e0fa7c419014ab4d 07-Dec-2017 Xin Li <delphij@google.com> DO NOT MERGE: Merge Oreo MR1 into master am: 65fe39d8b0 -s ours
am: 10cd87412e

Change-Id: I91a0feca939e4daaeff42508cf1d67af688d7b03
10cd87412efbc7aa41ce68a48f5c0ed9740e073b 07-Dec-2017 Xin Li <delphij@google.com> DO NOT MERGE: Merge Oreo MR1 into master
am: 65fe39d8b0 -s ours

Change-Id: I576e5c722ea58916331fe6f5ecee93b4ba8d95a9
65fe39d8b0b9ded2606b1880f6a9f93a24e14612 06-Dec-2017 Xin Li <delphij@google.com> DO NOT MERGE: Merge Oreo MR1 into master

Exempt-From-Owner-Approval: Changes already landed internally
Change-Id: Ifd8fe56c1b7ce565ab72c8f207ebe86c18da98ea
ab2479ab2468a080d92246a5140352e647500d5c 22-Nov-2017 android-build-team Robot <android-build-team-robot@google.com> Snap for 4464948 from ef7f923918952ea99af6b6f1f2c30db9baa2c224 to pi-release

Change-Id: I708981d899d2da91aa31b50bd66407e89f8a8b35
ef7f923918952ea99af6b6f1f2c30db9baa2c224 22-Nov-2017 Stephen Hines <srhines@google.com> resolve merge conflicts of cb34be5 to master

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I8d58046752ec975b41957b6ba81552c468c7e5f3
cb34be54e2d08cc185dab6e3aa8bfe700545b741 22-Nov-2017 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 03e4b92 to stage-aosp-master
am: eba3501283

Change-Id: I013b9e324b4a051a7f999f616f74319b89e74bf0
eba3501283fb36721b6e750ca3cbbe6b3d683e51 22-Nov-2017 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 03e4b92 to stage-aosp-master

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I72d53e4ed877dcd08504af65f24524acb9402ad8
03e4b928e678f224bf9e6320141b2db2ff306130 21-Nov-2017 Chih-Hung Hsieh <chh@google.com> Use -Werror in external/drm_hwcomposer

* Suppress non-critical warnings.

Bug: 66996870
Test: build with WITH_TIDY=1
Exempt-From-Owner-Approval: Fix broken builds
Change-Id: Icd412ef21c074ecea91eb91508703e42317a2b4b
ndroid.mk
0ba9b4623f989ff99de9cfe8230c3e5782c43201 07-Oct-2017 android-build-team Robot <android-build-team-robot@google.com> Snap for 4383207 from d37101dad9f4b0c28a0f6e83e773a185b39272ce to pi-release

Change-Id: I3cbe1fb94778cc030a7ba700954fe8e7ec7c5ec4
d37101dad9f4b0c28a0f6e83e773a185b39272ce 06-Oct-2017 Adrian Salido <salidoa@google.com> Merge "drm_hwcomposer: make sure primary plane is allocated for squash" into oc-mr1-dev am: 93be6aefeb
am: b764b4e1d8

Change-Id: Iab26ce06811d0a177c1b89d3965ac01b4c851316
b764b4e1d88634c779a63e58883cbc326e737a09 06-Oct-2017 Adrian Salido <salidoa@google.com> Merge "drm_hwcomposer: make sure primary plane is allocated for squash" into oc-mr1-dev
am: 93be6aefeb

Change-Id: I1b30d4e0665039d180913976f7545158298b9f7b
93be6aefeb68bf2b098ac4bd6c75a499862e63c7 06-Oct-2017 Adrian Salido <salidoa@google.com> Merge "drm_hwcomposer: make sure primary plane is allocated for squash" into oc-mr1-dev
d99c50afffb5a861f629e52110bfabb08bfa53f0 03-Oct-2017 android-build-team Robot <android-build-team-robot@google.com> Snap for 4373608 from 3f51ab804169fd8abb4255cb65b03b3ce071686e to pi-release

Change-Id: I403adcb3f218aaedef067d8c7d2b6a85b78382d4
556f56cea7c73c9ab06acd49c1509f256c4b51c0 02-Oct-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: make sure primary plane is allocated for squash

There are instances where the primary plane may have been disabled, look
through disabled planes as well to find primary plane to use for squash.

Change-Id: I615b4d94e852d21fa647ede6f2b53d55705d3011
Fixes: 66931966
Signed-off-by: Adrian Salido <salidoa@google.com>
rmdisplaycompositor.cpp
3f51ab804169fd8abb4255cb65b03b3ce071686e 26-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder am: 8fc5634650
am: a14966a185

Change-Id: I4f03182875cb7b0fed71ed20784d3d845daf74c9
a14966a185c7ada099273d03d31e64125f1315c3 26-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder
am: 8fc5634650

Change-Id: I505c9fe7f652146385299b2807d4cc1642f133d4
66add5d51fdc753bca43340ecbd0de5079ccedca 22-Sep-2017 android-build-team Robot <android-build-team-robot@google.com> release-request-ed8626b9-4479-4c76-9207-5f511f136606-for-git_pi-release-4354758 snap-temp-L65900000105223161

Change-Id: I175d5ecdbc5ef430328faef4645f4857276b8079
e64acba60e031af0b0a9617b8415008e744b4a40 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder am: 228ca6d118 am: 4b54b81847 am: 1ad48d0662 am: 2bd0f1d90e
am: b9cdd87a8c

Change-Id: Ida63f3d63416c07facf168d7dd3168df807d4aa4
b9cdd87a8c4b30ae1c8f98c22a5a2cb92c0ec876 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder am: 228ca6d118 am: 4b54b81847 am: 1ad48d0662
am: 2bd0f1d90e

Change-Id: I4cae74eacdb01c8b65c70e9dc0c0041f3502f648
2bd0f1d90e2854500d29582919c965f8cf81c889 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder am: 228ca6d118 am: 4b54b81847
am: 1ad48d0662

Change-Id: I377fb2ba4c75f12b74f7794c50c2d78c09aa082a
1ad48d06624a684c645268a60e06394839be6044 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder am: 228ca6d118
am: 4b54b81847

Change-Id: I5754e2f4cd28bc710ad32fb735b74af04b53bc10
4b54b818477fb0650dc563cf9196578816c34597 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder
am: 228ca6d118

Change-Id: I5a87a1016525e0b0211c40f9c58cc7062431c893
228ca6d1182a350e68242e1837c32d258fb17fee 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder

Precomp layers may be added to the back at different points which may
cause elements to be unsorted. Make sure that these are sorted after
provisioning planes to ensure right composition based on zorder.

Bug: 65587393
Change-Id: Ica6d12093818341eaeca6c63735c558511679f7b
Signed-off-by: Adrian Salido <salidoa@google.com>
rmdisplaycomposition.cpp
8fc5634650ccdeb95dc98e0b421dee3ff6edf154 22-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: reorder source layers according to zorder

Precomp layers may be added to the back at different points which may
cause elements to be unsorted. Make sure that these are sorted after
provisioning planes to ensure right composition based on zorder.

Bug: 65587393
Change-Id: Ica6d12093818341eaeca6c63735c558511679f7b
Signed-off-by: Adrian Salido <salidoa@google.com>
rmdisplaycomposition.cpp
974f7a4979cb5fb452ad38494de5d095e4752c1e 03-Sep-2017 android-build-team Robot <android-build-team-robot@google.com> release-request-b4448e78-a682-4bc1-b691-b70e74fef19f-for-git_pi-release-4314474 snap-temp-L95500000099150132

Change-Id: Iad8d25c8cd46e4bf6ec6f4e96b9a51bb3e2cda6e
bf510efb04e8954da409dc1f041839de0c38bff3 02-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits am: d6ad94289e
am: 582e7ab130

Change-Id: Iee1d070c1ac31ef981241cfc10d7ed02dd380e85
582e7ab130b9e7d9097ce23377cbb9ea63f3fdb4 02-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits
am: d6ad94289e

Change-Id: I222fcd0863dd3eb3fe8734fbfcc023319f939d1f
11d221991c0ef41ebf64cc1b878b5923227b5906 02-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix typo in formats switch statement am: 78beee0ecd am: 3eff025c2a am: a0bd156a4f am: cbe2d26cad
am: 4786422269

Change-Id: I3d9806c6b1771feee02013357461215758d4985c
47864222692d7a78147e35a6d81bf3b2abf52ea7 02-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix typo in formats switch statement am: 78beee0ecd am: 3eff025c2a am: a0bd156a4f
am: cbe2d26cad

Change-Id: Id03bb7080f744acc86c2da670406024e4100feed
cbe2d26cadc315c858fc753ea9e757d1ff0f831a 02-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix typo in formats switch statement am: 78beee0ecd am: 3eff025c2a
am: a0bd156a4f

Change-Id: Ifa962ae3a6e4b72929b6d113d21e4cb9a93d064c
a0bd156a4f9806ada1d142d512dc96036abb6c3a 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix typo in formats switch statement am: 78beee0ecd
am: 3eff025c2a

Change-Id: Ied73e5887b7d9fdb3ebdfd6fddc98f619d243f2e
3eff025c2aad9e324251986aadaebea187762c90 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix typo in formats switch statement
am: 78beee0ecd

Change-Id: I13a0894555d719e5d15b656c35918bc891f836db
d6ad94289ec909359d51eb1b605680cb5f223111 29-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits

There are additional formats that can be provided and are not handled.

Bug: 36731060
Change-Id: I9f1356762df71e38402ad01f96a650adf2a3cbdc
Signed-off-by: Adrian Salido <salidoa@google.com>
latformnv.cpp
78beee0ecd311706c7bb0cbef0e6e87286903fd6 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix typo in formats switch statement

Change-Id: I71e116fff098860a2aecf587298e7696d4bef012
latformnv.cpp
a944b927916cb3b355b7c05d26f8ba0c2994f9bd 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits am: a7e1ea5971 am: 4d2f0ec745 am: e37da9441b am: fb0071bb9f
am: c48d47c7a4

Change-Id: I26b4ea93a6e17f05e2e9e4085cb49670014474e3
c48d47c7a448b27fbd2f49e2cd5bf253806cc6f5 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits am: a7e1ea5971 am: 4d2f0ec745 am: e37da9441b
am: fb0071bb9f

Change-Id: Id2c5e3aa69e8df42e37d446a59884df2cd202e9c
fb0071bb9f49683989cc08b2b43c61784a03df14 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits am: a7e1ea5971 am: 4d2f0ec745
am: e37da9441b

Change-Id: I01be036f931279926d4dcba85ce76c442845b7c4
e37da9441be95b2406fc3c4999101294ba0f0623 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits am: a7e1ea5971
am: 4d2f0ec745

Change-Id: I51a8d7d07b9dfbde7573dfd61d34154a5191dc3a
4d2f0ec74509ff885a3b62b727dd269a179db2cf 01-Sep-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits
am: a7e1ea5971

Change-Id: I32aeff02404d2a91082fd8ee41d2a88256289f63
a7e1ea59712ce9ad363f89880091c7221caabb9b 29-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: enumerate additional formats for tegra downscale limits

There are additional formats that can be provided and are not handled.

Bug: 36731060
Change-Id: I9f1356762df71e38402ad01f96a650adf2a3cbdc
Signed-off-by: Adrian Salido <salidoa@google.com>
latformnv.cpp
73bf0e421c15d0172a640f625bd1fc901c674e37 28-Aug-2017 android-build-team Robot <android-build-team-robot@google.com> release-request-2c5efa61-1f02-4e74-bfeb-1ca3cd5028bd-for-git_pi-release-4301718 snap-temp-L56500000097146696

Change-Id: I5650f3bf8f14a8ab4ef33a8ece4e1887ba8ee07c
6a4647074cda7453c40ac245cacaf5151de29f80 25-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending am: a79125844f
am: ef3a25fbde

Change-Id: I9f2fa5d8b4bcce1e5ef1470144cd28195dc91491
ef3a25fbde10f3afaee0d82a1bb5866973836584 25-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending
am: a79125844f

Change-Id: I342b9611c05a3bab51f81534466492e82937b3cf
a79125844f52e3d9c01f896b3eacc229b9978bb8 22-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending

Tegra driver assumes that all layers with alpha component have premult
alpha. This can cause issues if blending is different since the alpha
component is supposed to be ignored in that case.

Fixes: 62401826
Test: share location in hangouts and drag around map

Change-Id: Iff870697f7efbf5d075a5925d63a8f0f672ee725
Signed-off-by: Adrian Salido <salidoa@google.com>
latformnv.cpp
latformnv.h
fa2a576c1176778b53ff3e203581e93b132e7971 24-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending am: 329e7682c6 am: 56a3fe4fcd am: 5ecd39be96 am: cca0ee2b3f
am: 4e33526994

Change-Id: Ica3d8f6aef144729913029229c496800a8f6b7c2
4e3352699419b5a002f4b23ceff7910a958ea43c 24-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending am: 329e7682c6 am: 56a3fe4fcd am: 5ecd39be96
am: cca0ee2b3f

Change-Id: If6fad9f2871d53c0d7ffe7ec16b681a14b97d087
cca0ee2b3f0d659cc3f882ba63721ea8553861ee 24-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending am: 329e7682c6 am: 56a3fe4fcd
am: 5ecd39be96

Change-Id: I0f65a6e3e2ea0ae669855095c686a6a4e3f0c3fa
5ecd39be96c538e1a8550cb23322d9ea5ce73738 24-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending am: 329e7682c6
am: 56a3fe4fcd

Change-Id: I650fb374e2f580cbca83b05c99561d17185a7a39
56a3fe4fcd5dcc2ed2266723f415b4fba22caf4b 24-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending
am: 329e7682c6

Change-Id: Ic489da6c5fe07e9b0f670bb284c9d3a075bd20bd
329e7682c63f7ddac92a90b244ed2c44610b882a 22-Aug-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: skip layers with non-premult blending

Tegra driver assumes that all layers with alpha component have premult
alpha. This can cause issues if blending is different since the alpha
component is supposed to be ignored in that case.

Fixes: 62401826
Test: share location in hangouts and drag around map

Change-Id: Iff870697f7efbf5d075a5925d63a8f0f672ee725
Signed-off-by: Adrian Salido <salidoa@google.com>
latformnv.cpp
latformnv.h
3216ff8d56fb5b49f3ad4a4b623a37d584839ff3 23-Aug-2017 Adrian Salido <salidoa@google.com> DO NOT MERGE: revert HWC2 changes am: 9cc83934f9
am: cc9d296ff7 -s ours

Change-Id: I52f4dbe4f6a36d5ea99a9b216cfa099e6a9793f8
cc9d296ff74eff2fa9eb30098e8452c4706ebd76 23-Aug-2017 Adrian Salido <salidoa@google.com> DO NOT MERGE: revert HWC2 changes
am: 9cc83934f9

Change-Id: I05491808727e9de5a066cda6887680c61838a932
9cc83934f92aab292f16213c1b716e8ecfcb5875 22-Aug-2017 Adrian Salido <salidoa@google.com> DO NOT MERGE: revert HWC2 changes

The changes are causing some issues with multi-window use cases.

Fixes: 64491794
Test: test gmail compose in multi-window + show taps enabled

Change-Id: I0b0a3f351ed48f81db89a71c78bf17bab8cb2acf
Signed-off-by: Adrian Salido <salidoa@google.com>
ndroid.mk
rmdisplaycomposition.cpp
rmdisplaycompositor.cpp
rmeventlistener.cpp
rmhwcomposer.h
rmhwctwo.cpp
rmhwctwo.h
rmresources.cpp
rmresources.h
lworker.cpp
lworker.h
wcomposer.cpp
wcutils.cpp
latform.h
latformdrmgeneric.cpp
latformdrmgeneric.h
latformnv.cpp
latformnv.h
syncworker.cpp
syncworker.h
1532a9ea098550a9cb8eadf9ed3656a4cdcf61de 21-Jul-2017 Adrian Salido <salidoa@google.com> Merge "drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 48c27f347e" into oc-dr1-dev-plus-aosp am: fd9b20ac97
am: 4039bd00ef

Change-Id: I127aca0a3311369dcb044d2a6509db8c10324855
43edcab0bc1d69ea231da8914a8069abdaa13461 21-Jul-2017 Adrian Salido <salidoa@google.com> Merge "drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 5dbc0adc18 am: a4fa377c61" into oc-mr1-dev-plus-aosp
am: 9a1285e60f

Change-Id: I3dfdd5cab272f9c69f8947c887cf66713b7b0d87
2c6068da88983442edba1b0c2754a0da2ec947f3 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 48c27f347e am: 2827209f78
am: 4182a44ad4

Change-Id: I754e10db5ad597820b3e0b2c882e2f2f5d15201c
4039bd00ef3939322a3ce7fff149fc37ed40255f 21-Jul-2017 Adrian Salido <salidoa@google.com> Merge "drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 48c27f347e" into oc-dr1-dev-plus-aosp
am: fd9b20ac97

Change-Id: I88eee73481134c6ad9365948b897a225c20c15d7
9a1285e60fc2ed256c4b11273055b1fe3a465cc2 21-Jul-2017 Android Build Merger (Role) <android-build-merger@google.com> Merge "drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 5dbc0adc18 am: a4fa377c61" into oc-mr1-dev-plus-aosp
4182a44ad49c1710e4eb790b7a18d3a337423edf 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 48c27f347e
am: 2827209f78

Change-Id: Ic67d21f09f1429c6dc601fc42aa206e9b5c88cc1
70505ab83e832f3fc1bdc885d0db0a426714b47f 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 5dbc0adc18
am: a4fa377c61

Change-Id: I2e58896970b9a70673288ff91b0e129c571ef9e6
fd9b20ac97dd367ce2f8baff962e3be1e7d90987 21-Jul-2017 Android Build Merger (Role) <android-build-merger@google.com> Merge "drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9 am: 48c27f347e" into oc-dr1-dev-plus-aosp
2827209f7801a9c1eb272075f8b8b0f80c663d31 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9
am: 48c27f347e

Change-Id: Icedb82c895a3e436cf7133e4cbc6e411c016f13c
a4fa377c61f8b18baa47f8912cc92d8b301a64f3 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9
am: 5dbc0adc18

Change-Id: Ibd11e714718744372d4ed20e2ba7553af995b097
6f6a28f08dd6866322b205e0c0b699bdbc6903ab 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: 19756b03f9
am: 48c27f347e

Change-Id: I93aa89c0ae036b7644dc00fbdc33d5439e98b8ad
5dbc0adc18bf8826339a2167e2e9fdb4936969f9 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation
am: 19756b03f9

Change-Id: I8b8c4a3c99ac3562fc79b22bf552048a537fef60
48c27f347ee4a34a84a7d39b1c63b422166834f1 21-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation
am: 19756b03f9

Change-Id: Icf3b3a761d8275c7a3527ff6efda1a124d27f4f8
19756b03f921c5d0ff2f4208322460d46a31814f 18-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation

Current approach is to allow atomic_check figure out any issues with
composition strategy and fallback to squash if there the atomic_check
fails. This leads to issues when there's a protected content as it
cannot be handled in squash.

Adding a new provisioning stage to check for hardware limitations and
address them early so a proper fall back can be in place.

Bug: 36731060
Change-Id: I6482953044bcea9c9a655f28672927b32ac57097
latformnv.cpp
latformnv.h
bb09a7f167cfe7e937845293d8c18b8b0ea8ceb6 19-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: ee24aca7b8 am: cbfc5a5d6b am: ae0502c648 am: 8fe20e590c
am: ba9667c18a

Change-Id: Ic480c24a50ddc96e89fafed00c2a563f4f470bab
ba9667c18a116b26009382734622f52825784936 19-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: ee24aca7b8 am: cbfc5a5d6b am: ae0502c648
am: 8fe20e590c

Change-Id: I9b48a87d1cdc8e5ad7c228daabb66171d446118a
8fe20e590c7ff4cb29e1d5904b4928e1be15e587 19-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: ee24aca7b8 am: cbfc5a5d6b
am: ae0502c648

Change-Id: I20188c4e624cfa5094c7d12bcf212d85fdc307b5
ae0502c6489dc87fa12e3234236e79d3a4da636f 19-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation am: ee24aca7b8
am: cbfc5a5d6b

Change-Id: Ic2f1eb4ad4c2cd184ce27c2c40ed9193ca2d2795
cbfc5a5d6bd7f8e3913560d8d0e5fdf865773fce 19-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation
am: ee24aca7b8

Change-Id: Iec3b1a94a34a8d6e2909fdcc76ceaed830367fa6
ee24aca7b8fbceab1011a4bb36b0baff08d9cdbc 18-Jul-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: add checks for tegra hardware limitation

Current approach is to allow atomic_check figure out any issues with
composition strategy and fallback to squash if there the atomic_check
fails. This leads to issues when there's a protected content as it
cannot be handled in squash.

Adding a new provisioning stage to check for hardware limitations and
address them early so a proper fall back can be in place.

Bug: 36731060
Change-Id: I6482953044bcea9c9a655f28672927b32ac57097
latformnv.cpp
latformnv.h
713d7547f5d7d96397c944cdf3f25db85df9c04c 19-May-2017 Chia-I Wu <olv@google.com> drm_hwcomposer: compile platform-specifc code as needed

Test: builds for ryu
Change-Id: If96d28919a893c5b0656af9ee602271f56293bac
ndroid.mk
84133ae06ac8a3e53309ae3209185cb4a613d440 18-May-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Marissa and remove Haixia am: d35880b46f am: 578059aa61 am: 3d139a7676 am: 9ca8544e73
am: b1484317a3

Change-Id: Ifbb43bef9e1c81b61a2321774eb21cec1532a0fe
b1484317a3de4ed24128141b888236a5657b88fe 18-May-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Marissa and remove Haixia am: d35880b46f am: 578059aa61 am: 3d139a7676
am: 9ca8544e73

Change-Id: Iac245c606378923f2f8e9f9fa65f6951af39ec97
9ca8544e733afedee9737c8696028fcaa98916fe 18-May-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Marissa and remove Haixia am: d35880b46f am: 578059aa61
am: 3d139a7676

Change-Id: I25b4611d1531c087e6425f18493a673e1b569213
3d139a7676b36662f52e99bd3afa01a6a7126dc6 18-May-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Marissa and remove Haixia am: d35880b46f
am: 578059aa61

Change-Id: I19c370fc8b22eb8efac926e480f3482427abb6c6
578059aa61b0a7e0a56e10d849bc978783a473d6 18-May-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Marissa and remove Haixia
am: d35880b46f

Change-Id: I1cf1a724d6c1fd65eca4a6fbe0c76f7969d4cca4
d35880b46f2fa8aeed3bcbd5d4012f4862806ffc 12-May-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Marissa and remove Haixia

Adding Marissa to OWNERS to get her listed on reviews.

While I'm in here, remove Haixia from OWNERS.

Change-Id: I6e07a686796c1d0cf3539be9bbdfc2b46dfb9938
Signed-off-by: Sean Paul <seanpaul@chromium.org>
WNERS
da26231102aebeaee1f4282f533f10ca9275a86c 04-May-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for GetColorModes & SetCursorPosition" am: b2a9617bc8 am: c604f0a549 am: 5c2a2479c1 am: 9a003f37b3
am: 4ab43739e5

Change-Id: Id5e173cbcdb3cd0b0f30fb5cf12dfae6a238be9e
4ab43739e556aab0e689005222f99d9b34e738d5 04-May-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for GetColorModes & SetCursorPosition" am: b2a9617bc8 am: c604f0a549 am: 5c2a2479c1
am: 9a003f37b3

Change-Id: I40d5637f88c90595910ac00c9d8c8b6553f6403e
9a003f37b36d300603f1560e0004f858a2fb9771 04-May-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for GetColorModes & SetCursorPosition" am: b2a9617bc8 am: c604f0a549
am: 5c2a2479c1

Change-Id: Id881dc357afb32dbe4f66a855d72568e4f0d0aac
5c2a2479c1b75bb659495da0c0e3a5f80db1d722 04-May-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for GetColorModes & SetCursorPosition" am: b2a9617bc8
am: c604f0a549

Change-Id: Ic9eb91e09535419c81c3d69a7e41f978e6c65d16
c604f0a549b9a981b42ba2b2c82180017cd36e25 04-May-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for GetColorModes & SetCursorPosition"
am: b2a9617bc8

Change-Id: I34f7ae957ba8256199a6b969669145b8c9ce19fd
b2a9617bc88bb5cf5ffd999e9aa8009eeac5ae21 04-May-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for GetColorModes & SetCursorPosition"
a3dc0d2f2acff5ed74f8ad5e0cc9195c8225e5da 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: avoid potential race condition between worker init and exit am: ba494c8efc am: d7a6c091e4 am: 884ae6f0d7 am: 64cacd753b
am: 39c391a036

Change-Id: Ibfc45d114fa1f4052b79d9f2ffa175eb6d538158
8035e239065d0d8c9059fb4d35108951a8c8dc9b 25-Apr-2017 Sean Paul <seanpaul@chromium.org> resolve merge conflicts of 5903f9a to oc-dev-plus-aosp
am: 8f88825edb

Change-Id: I850cceff0848aad6648bc804c982a1751d196caa
39c391a036f450728bbdc032d4b9fd5c1101e59e 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: avoid potential race condition between worker init and exit am: ba494c8efc am: d7a6c091e4 am: 884ae6f0d7
am: 64cacd753b

Change-Id: I721f131e024f714faa305e4cbd6c62ff6246a538
64cacd753bf0425737bfaf40e55077059c8da6bd 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: avoid potential race condition between worker init and exit am: ba494c8efc am: d7a6c091e4
am: 884ae6f0d7

Change-Id: I4f9e5911dd296c299042eb74e71d84147600e183
884ae6f0d789f3506bc5bf838c6dc33faa46d9c8 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: avoid potential race condition between worker init and exit am: ba494c8efc
am: d7a6c091e4

Change-Id: I3a0400378f8a1b2c008e6b8494e1fac0788acef2
d7a6c091e4ff5a12f76bc9c0bbde159cb59ba16a 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: avoid potential race condition between worker init and exit
am: ba494c8efc

Change-Id: Ie97c1ca0ed08d48b6bf15c9cf37d9ff58cc40fee
ba494c8efc0a210b1bd4af6358b60f52900dd8af 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: avoid potential race condition between worker init and exit

Protect worker initialization and exit with lock in case Exit is called
in different thread.

Change-Id: Ibddfce192deeea9d33575de8abf859fdca5f74ed
Signed-off-by: Adrian Salido <salidoa@google.com>
orker.cpp
8f88825edbe3cdae01df6bb5483984ba9672fbfc 25-Apr-2017 Sean Paul <seanpaul@chromium.org> resolve merge conflicts of 5903f9a to oc-dev-plus-aosp

Change-Id: Ifaba5b61db97ad44c15775b9ddfd60f26e9210f3
Test: I solemnly swear I built this conflict resolution.
5903f9a23c911f6cea193a3ba8cf1fb34f6b88e7 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: refactor Worker am: fa37f67815 am: e6ccbfd43e
am: fbce8b7ebc

Change-Id: Idfa27aa6781f73a87742b1ced4b75abcf115b7ba
fbce8b7ebcac3b86eab400a6b38f6cf1e81a1b1e 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: refactor Worker am: fa37f67815
am: e6ccbfd43e

Change-Id: If8812b3cbbbc486a7c83a75bf1d104e596d9447e
e6ccbfd43e832719c9463fa32740da243c93d4cb 25-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: refactor Worker
am: fa37f67815

Change-Id: Idc960cda14dc4abbcf34fff36f0c983e62db4a59
fa37f67815c29aaa17501569a19037b18512db99 16-Feb-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: refactor Worker

Make use of standard library mutex and conditions which simplifies use
of condition variables and benefits from things like scoped locking.

Also add tests to make sure it runs as expected.

Change-Id: Iaf92e17e1f6757dce490eddee61f84cb1f953b0c
ndroid.mk
rmcompositorworker.cpp
rmdisplaycompositor.cpp
rmhwctwo.cpp
wcomposer.cpp
ests/Android.mk
ests/worker_test.cpp
irtualcompositorworker.cpp
syncworker.cpp
syncworker.h
orker.cpp
orker.h
da5839cf9258f7b06b78c8a22e5749e390603b11 10-Nov-2016 Kalyan Kondapally <kalyan.kondapally@intel.com> drm_hwcomposer: Add support for GetColorModes & SetCursorPosition

For now we just return HAL_COLOR_MODE_NATIVE and store cursor
position.

BUG=None.
TEST=None.

Change-Id: Id6a7e157dbd9fc41fc53c0e33a6eb523632b9b7a
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
rmhwctwo.cpp
rmhwctwo.h
09db4a4721840702d3db81b2dcfb0f09bb046909 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Partially implement HWC2 API am: ac8741504b am: 46a1916dbf am: c2044d3ab8 am: fcc69d22ee
am: 982615eba7

Change-Id: I21e9b2ffe60884759f9ff7868676e1aa95c9c8ed
255f3a387a67c1024e0438c789eaf67a8f5c6b2c 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial stub HWC2 am: ed2ec4b0b3 am: 30d6f3b938 am: 3b3944d17c am: a1061d8b37
am: 859f9df24a

Change-Id: I6b0759d0ca649be09c3cc17635350a7e719bdddc
0cec0343e6a73aeca7a9f5b29ed7817dced50ca5 25-Apr-2017 Rob Clark <robdclark@gmail.com> drm_hwcomposer: Move eglCreateImageKHR into Importer am: 90f92d863c am: 83e8049f7b am: 21a6f1398e am: 02f41cace0
am: 66ffa0aac1

Change-Id: Id84f285134d42cfe5c4c465f7ad74a0c36a3a755
982615eba7fba6cd205045032d564bacaee8b3ad 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Partially implement HWC2 API am: ac8741504b am: 46a1916dbf am: c2044d3ab8
am: fcc69d22ee

Change-Id: Ie8dd14f5b4db59878ae4c0aa82c9f6fa5d313b71
859f9df24a773933de28500fe628b3dff0e78f7b 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial stub HWC2 am: ed2ec4b0b3 am: 30d6f3b938 am: 3b3944d17c
am: a1061d8b37

Change-Id: Icd858f483ac1bf0b947f793e114cca3ef08a463f
66ffa0aac1f1d455e649c7a7a66caa85c7b30670 25-Apr-2017 Rob Clark <robdclark@gmail.com> drm_hwcomposer: Move eglCreateImageKHR into Importer am: 90f92d863c am: 83e8049f7b am: 21a6f1398e
am: 02f41cace0

Change-Id: Ia6bb13ed34d4da3a7833ce1867e0d01656234390
fcc69d22eefcd66e1d6d92199b4a1a070cb576aa 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Partially implement HWC2 API am: ac8741504b am: 46a1916dbf
am: c2044d3ab8

Change-Id: Iaca0850aac571eccd9a1244203410edc84c8ec29
a1061d8b37324aeae8bd6ee0118a594866d3e8ed 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial stub HWC2 am: ed2ec4b0b3 am: 30d6f3b938
am: 3b3944d17c

Change-Id: Iaca905f15a17202b54b7ecf5ba1878f4d67bebec
02f41cace0b98ac4d5e0081ffef3b02beed0e294 25-Apr-2017 Rob Clark <robdclark@gmail.com> drm_hwcomposer: Move eglCreateImageKHR into Importer am: 90f92d863c am: 83e8049f7b
am: 21a6f1398e

Change-Id: I4480733c626ecdae7eea42ccb062024c2831504b
c2044d3ab811363215371f71dac5c961eb476b7b 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Partially implement HWC2 API am: ac8741504b
am: 46a1916dbf

Change-Id: Ifc7219375787d1fe3e5555be353041726478ba63
3b3944d17cfe5435015a175a9fa4d0b7a3a02cf3 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial stub HWC2 am: ed2ec4b0b3
am: 30d6f3b938

Change-Id: I806a3d9eea18ff85a3acb502bb5b40a4d07853df
21a6f1398ef269459ebae4da0e4cc1761f834683 25-Apr-2017 Rob Clark <robdclark@gmail.com> drm_hwcomposer: Move eglCreateImageKHR into Importer am: 90f92d863c
am: 83e8049f7b

Change-Id: I8b3b39724acf19b21e2151bc01f25bd1388a942f
46a1916dbf4ff17053b3bb830a704b101453a857 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Partially implement HWC2 API
am: ac8741504b

Change-Id: I0b08213db97514108147ec87ce971a85eb5cb94e
30d6f3b93837761ba1acb6f416ab0ba8783545d3 25-Apr-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial stub HWC2
am: ed2ec4b0b3

Change-Id: I490ffd4c85b5448f8a9b1ee0ebfbfadc70a27601
83e8049f7b40dbaceb0f8d7b2f9337e0fb23826c 25-Apr-2017 Rob Clark <robdclark@gmail.com> drm_hwcomposer: Move eglCreateImageKHR into Importer
am: 90f92d863c

Change-Id: Ic64083078f9bf44f2f48e4feb70e34903ff2b70b
d1dfcc04dfed3ff9c579fd23a42398e08ad87b92 19-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Move some utilities out of hwcomposer.cpp" am: 2e5d9d399f am: bc1e7d8bed am: 22004d1158 am: d11e0d29a0
am: 882a3d3c25

Change-Id: Id70be2d07866814ab801d003a6038a6e44562f56
02fa6396b0671379a1ec48afbadeb4ee1b4e1009 19-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Remove source_damage from DrmHwcLayer" am: 8321ff4156 am: 12b9c99806 am: 340660d753 am: 4300ebda27
am: a88e78dce2

Change-Id: I700905a25555b936d3e761034716af188fd92000
b62d66484e44af0b802cd2832e8ce608952b84f0 19-Apr-2017 Sean Paul <seanpaul@chromium.org> resolve merge conflicts of 9a9d08d to oc-dev-plus-aosp
am: af18b5934b

Change-Id: I977b75d99aa4007ed268f12551624b8a421ad4ff
882a3d3c25f4ac737a04fb91e95290c86730177c 19-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Move some utilities out of hwcomposer.cpp" am: 2e5d9d399f am: bc1e7d8bed am: 22004d1158
am: d11e0d29a0

Change-Id: Id823e4f2b6361436939485577eb3c670cce78026
a88e78dce217bbb40cf150c573208db82664c286 19-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Remove source_damage from DrmHwcLayer" am: 8321ff4156 am: 12b9c99806 am: 340660d753
am: 4300ebda27

Change-Id: I8da71f8ca4b5bafccc0cf9f5949fc98d50418a4c
af18b5934be9c342a473ac2840d80d99ae07a7c2 19-Apr-2017 Sean Paul <seanpaul@chromium.org> resolve merge conflicts of 9a9d08d to oc-dev-plus-aosp

Change-Id: I9ad4ec897b60a54359106f0273fe214d8377d6ef
Test: I solemnly swear I built this conflict resolution.
49bc35edf3ba749bf3da4c50cd4a305e452a9fa2 19-Apr-2017 Adrian Salido <salidoa@google.com> fix integration issue with 6eae1c4
am: 46e985280a

Change-Id: Ib327af24b11da047710e04f89fdbdf791c563796
46e985280a5e6be49dafc5567fca75e5e56344ef 19-Apr-2017 Adrian Salido <salidoa@google.com> fix integration issue with 6eae1c4

Incorporate changes done for e5c7565i ("drm_hwcomposer: refactor Worker")

Change-Id: If2f14bdafb4d7e0c44e3afed978fb64a654e7ac0
syncworker.cpp
syncworker.h
2d32cf69fc254abe87dc25e73b142791ea59f001 18-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Harvest min/max resolutions from drm" am: 1703d204a7 am: 055874435b am: 791ca4e242 am: 8056832978
am: 4c262ddad1

Change-Id: I1a9ce4b88b5ee03c5bd8ba0479dd0f6917c88150
6f5d67ca9383d4fedba15992b15b2eb421aff74a 18-Apr-2017 Zach Reizner <zachr@google.com> resolve merge conflicts of 6419ef5 to oc-dev-plus-aosp
am: 6eae1c41cf

Change-Id: I0ca8f66c15c18c72f3843ebb737b2826f90c99f5
4c262ddad131a799a910b05b30737db8a1125452 18-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Harvest min/max resolutions from drm" am: 1703d204a7 am: 055874435b am: 791ca4e242
am: 8056832978

Change-Id: I04d7fe06d9a6284cf1b7c95e645be5f0051c6c17
6eae1c41cf951f934497e1aac4b0d483c2c61bca 14-Apr-2017 Zach Reizner <zachr@google.com> resolve merge conflicts of 6419ef5 to oc-dev-plus-aosp

Change-Id: Ie4977dd6a113a25966a88b7a55cd6704763e05f0
ac8741504befec1d8aa2067a6eb5c2088bc84160 10-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Partially implement HWC2 API

Implement the HWC2 API for drm_hwcomposer. There are still
a few TODOs sprinkled around, the biggest of which is virtual
display support.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ib3d48dabce1941b341d5a966d767baab8db1db10
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmhwctwo.cpp
rmhwctwo.h
ed2ec4b0b3dc739fc0fd3427b2b7bbbb40cc0de3 10-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial stub HWC2

This patch adds the HWC2 interface to drm_hwc, and stubs out all
functionality.

Change-Id: I65b09e7266e887dd184c0c345016d5a768f6349a
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
ndroid.mk
rmhwctwo.cpp
rmhwctwo.h
90f92d863c6ec50b1124a540f46cd74b1dedcfba 19-Oct-2016 Rob Clark <robdclark@gmail.com> drm_hwcomposer: Move eglCreateImageKHR into Importer

Since NV has a "special" nonstandard way to get an EGLImage from a
handle, move this into Importer where the other NV specialness is
abstracted. For the platformdrmgeneric case, use the dmabuf EGL
Extension.

Change-Id: I5353f4c95f55174df55ba92931cdc9a9eab80dca
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmdisplaycompositor.cpp
lworker.cpp
lworker.h
latform.h
latformdrmgeneric.cpp
latformdrmgeneric.h
latformnv.cpp
latformnv.h
42f19b0f08a4af1298da8ebcd0a911a2a0e29baa 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Clean up error conditions" am: c22b2a294f am: d83f784d05 am: c4b131c0c4 am: d982a46a4a
am: 517b189707

Change-Id: I8b365cefa27d5ccec1bd3ade5a60308eaf1d18c3
517b1897074ca529e9d141b156dcecf7f512247a 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Clean up error conditions" am: c22b2a294f am: d83f784d05 am: c4b131c0c4
am: d982a46a4a

Change-Id: I16b0264db050a98e161882f47bef227d5a343907
d11e0d29a0c5d3f3421c6b0c1701e816fd8b770f 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Move some utilities out of hwcomposer.cpp" am: 2e5d9d399f am: bc1e7d8bed
am: 22004d1158

Change-Id: I4b580a2ad5341b4c4440af1447e9c32ab661a32b
4300ebda27d0024d0201edcbe8477a63255c8e38 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Remove source_damage from DrmHwcLayer" am: 8321ff4156 am: 12b9c99806
am: 340660d753

Change-Id: I4a503ea18efd4d2277000e371fff654e20bf13b7
9a9d08d8cdd7d3c7ee6cad4e3e3a80572a64090c 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Break out of sync_wait loop on success" am: 669e7766bc am: 050f1d55e8
am: 263a957964

Change-Id: I184cc98822fb2134256e59d992dbc7530d49c00e
805683297861086955782353927db0f016b4d40f 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Harvest min/max resolutions from drm" am: 1703d204a7 am: 055874435b
am: 791ca4e242

Change-Id: I64f42d696fd4f3bd0da38615a5ee3347ffddeb45
6419ef5dd33faef61cb555a0b29c2c316aee21ae 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Don't pass hwc_procs_t to VsyncWorker" am: 57b56d03f6 am: dd82871834
am: a0d1f71514

Change-Id: Ib4c4b736755e1efa942952446aa63318cfd5b7e5
d982a46a4a4fc405d7af602e79a20ec6013f6533 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Clean up error conditions" am: c22b2a294f am: d83f784d05
am: c4b131c0c4

Change-Id: Ifde4336a33f402da9d1e23efd0d3b4031f1ad69a
22004d11582fa6f32bc1e8467453a8c114e726f2 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Move some utilities out of hwcomposer.cpp" am: 2e5d9d399f
am: bc1e7d8bed

Change-Id: I6d7c18dac139f52436d05a8f336ef85c4d3739fd
340660d753f1f87a913d07e44826ed3f94dbf255 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Remove source_damage from DrmHwcLayer" am: 8321ff4156
am: 12b9c99806

Change-Id: I9028338e788c1dd20b3fdf743c376f3b709841ca
263a957964dfc75ec2779c8d2b74fa855a60d34c 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Break out of sync_wait loop on success" am: 669e7766bc
am: 050f1d55e8

Change-Id: Id704637ca3dc7e80ab72e6e6d9bfacb17df37a2c
791ca4e24221292ae6058f76b37d7965ec34047e 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Harvest min/max resolutions from drm" am: 1703d204a7
am: 055874435b

Change-Id: I2bb2351e797f48ec39e65311a1630161baab6f33
a0d1f71514254af2f7924ef4bac4001641528b19 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Don't pass hwc_procs_t to VsyncWorker" am: 57b56d03f6
am: dd82871834

Change-Id: I6fb2c6734fc59249a8c113597c8b17d8489088c4
c4b131c0c4279afeea8a4d798f746087c6d751ab 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Clean up error conditions" am: c22b2a294f
am: d83f784d05

Change-Id: I46dca75a7cf381e6a0a582c2c92e977fbb060c33
bc1e7d8bed66da5b67850a087b36f580f642b43a 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Move some utilities out of hwcomposer.cpp"
am: 2e5d9d399f

Change-Id: I0be81ab25d5c975a60644e33209f9cf3d0e61997
12b9c99806bc53183e1348eb265e9a7c598af758 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Remove source_damage from DrmHwcLayer"
am: 8321ff4156

Change-Id: Id9620fa89b592debd26ce63d337f9217bca8589c
050f1d55e82b5fcee614b71c02a22275d8113d2d 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Break out of sync_wait loop on success"
am: 669e7766bc

Change-Id: I917c90974e821e0d26c6d58e24ad8a32c06fedb2
055874435b8857b8170a706b55f4f619dfee5057 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Harvest min/max resolutions from drm"
am: 1703d204a7

Change-Id: Iedb93c090ad3da6ca4e504cc9b57902cd8c0c95d
dd82871834cf7f5268b676447843283d28d6ae28 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Don't pass hwc_procs_t to VsyncWorker"
am: 57b56d03f6

Change-Id: I5103fda1c9735237e6929f2a3f171230a75956f8
d83f784d05391e241b2c6b023537b1c7bd27c978 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Clean up error conditions"
am: c22b2a294f

Change-Id: Ic6062d4cc9eb535cf1be676ab8b000a77e233dfd
2e5d9d399f6943826649c44926d4a5fffc44fc5a 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Move some utilities out of hwcomposer.cpp"
8321ff415662d0bdac0aaa8fd1886b7d8a8762f5 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Remove source_damage from DrmHwcLayer"
669e7766bc61fb9c3b2cfc65145c91a74fcd22fc 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Break out of sync_wait loop on success"
1703d204a70c10075611c8dba69485ca28c70eda 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Harvest min/max resolutions from drm"
57b56d03f64de5e7eba6798e847fbf063aec8d96 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Don't pass hwc_procs_t to VsyncWorker"
c22b2a294f1a44341139744b1b5ed40a8a9084fd 12-Apr-2017 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Clean up error conditions"
8f86c6ad65e89e843675ca5065558cfb29c75e4c 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback am: 45002321ef am: b736291ace am: 3db65cd246 am: 0df6bf6bcc
am: 2c223dcdb4

Change-Id: I9344267b48f524a8aaf8a6aa5c76ffafdd017777
2c223dcdb41cdd3da65fbb500c3a1eed94a47c56 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback am: 45002321ef am: b736291ace am: 3db65cd246
am: 0df6bf6bcc

Change-Id: Icf5f2d6885af247bb3821d9c1cfd6a23194a4faf
0df6bf6bcc61aeff3438647cb158b95b47d89833 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback am: 45002321ef am: b736291ace
am: 3db65cd246

Change-Id: I6042b2cb941b758cdaefa64ba9a59f7d8009ac20
3db65cd246d9112a39af02cce8137b65bca7ae21 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback am: 45002321ef
am: b736291ace

Change-Id: I8cb2db2414c39285f7d7d52dd6d7c94901a2de1a
b736291ace9281afab9484b141dd523b614d0214 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback
am: 45002321ef

Change-Id: Iead343d835ab82f1bb1d38ca0ab2c97118d5056c
333cb8016ee0563a9fe9b63a4fae1fd6aa210afe 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback am: 90414a3637
am: c0aab08c12

Change-Id: I1d27bed765cc09c9366c3a16987e907647451e0f
c0aab08c12db7ccf61f8cb8d8041d9ad86ce4a98 12-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback
am: 90414a3637

Change-Id: I00d06cd76dcb4127100c51a96e4fcf458e70bdbb
90414a36371ecb6a898e76a204a45fc5f219a67c 11-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback

During protected video playback an issue could happen when there are layers
below the protected video surface. The current logic in protected plane
provisioning logic includes all layers below the protected layer in precomp
plane in order to draw holes in these. However, when there are other layers in
place, in particular one that has blending (ex. PREMULT). For example:

Layers: count=3
[0] blending[a=255]=NONE display_frame[x/y/w/h]=0/125/2560/1438
[1] protected blending[a=255]=NONE display_frame[x/y/w/h]=0/181/2560/1438
[2] blending[a=255]=PREMULT display_frame[x/y/w/h]=0/0/2560/1800
Planes: count=3
[0] plane=17 type=LAYER source_layer=1
[1] plane=22 type=LAYER source_layer=2
[2] plane=23 type=PRECOMP source_layer=0
Squash Regions: count=0
Pre-Comp Regions: count=0

In this case, layer[0] is below protected surface (layer[1]). This causes
issues because precomp plane is setup to be on the highest z-order all the
time, and any time it isn't it expects any layers with higher z-order will
obscure some contents of the precomp layer. But in this case the layer on top
(layer[2]) has blending enabled (PREMULT) and is transparent so expectation is
that layer[0] is also rendered and blended with layer[2].

By merging any layer that is of higher z-order (layer[2] in example) to precomp
plane, all these layers can be handled during pre composition.

Test: run secure video in split screen mode
Bug: 36879178
Change-Id: I9b63b37fef0ae828c4a781e0d1da264d8a3d7a76
latform.cpp
latform.h
latformnv.cpp
45002321ef3a9023642cfb9854eb4171fa5653cb 11-Apr-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix pre comp regions during protected playback

During protected video playback an issue could happen when there are layers
below the protected video surface. The current logic in protected plane
provisioning logic includes all layers below the protected layer in precomp
plane in order to draw holes in these. However, when there are other layers in
place, in particular one that has blending (ex. PREMULT). For example:

Layers: count=3
[0] blending[a=255]=NONE display_frame[x/y/w/h]=0/125/2560/1438
[1] protected blending[a=255]=NONE display_frame[x/y/w/h]=0/181/2560/1438
[2] blending[a=255]=PREMULT display_frame[x/y/w/h]=0/0/2560/1800
Planes: count=3
[0] plane=17 type=LAYER source_layer=1
[1] plane=22 type=LAYER source_layer=2
[2] plane=23 type=PRECOMP source_layer=0
Squash Regions: count=0
Pre-Comp Regions: count=0

In this case, layer[0] is below protected surface (layer[1]). This causes
issues because precomp plane is setup to be on the highest z-order all the
time, and any time it isn't it expects any layers with higher z-order will
obscure some contents of the precomp layer. But in this case the layer on top
(layer[2]) has blending enabled (PREMULT) and is transparent so expectation is
that layer[0] is also rendered and blended with layer[2].

By merging any layer that is of higher z-order (layer[2] in example) to precomp
plane, all these layers can be handled during pre composition.

Bug: 36879178
Change-Id: I9b63b37fef0ae828c4a781e0d1da264d8a3d7a76
latform.cpp
latform.h
latformnv.cpp
21b08948435e63bc252f4840ec01656e9476364c 07-Apr-2017 Daniel Stone <daniel@fooishbar.org> drm_hwcomposer: Use correct DRM event context version am: 2d1bc46486 am: afa2a8a0d7 am: 77ce14f049 am: 731130c37d
am: c0a58b1967

Change-Id: Ic4d92d79f62c866198dafe16d3962eda1355b149
c0a58b196760d5a89d2451f6d5ff039ec8d87010 07-Apr-2017 Daniel Stone <daniel@fooishbar.org> drm_hwcomposer: Use correct DRM event context version am: 2d1bc46486 am: afa2a8a0d7 am: 77ce14f049
am: 731130c37d

Change-Id: Ia35ad3f1f00de2fe554f21cbeb2ed62e4c6fe4f0
731130c37d2def4a9b0255e122f136786a9c1765 07-Apr-2017 Daniel Stone <daniel@fooishbar.org> drm_hwcomposer: Use correct DRM event context version am: 2d1bc46486 am: afa2a8a0d7
am: 77ce14f049

Change-Id: I92b5ebcff9d98ee282b5d112d0554b9a947ae34c
77ce14f049bdfca272348d9ddf95bfe8da58a3f0 07-Apr-2017 Daniel Stone <daniel@fooishbar.org> drm_hwcomposer: Use correct DRM event context version am: 2d1bc46486
am: afa2a8a0d7

Change-Id: Id217e95a8f051791bcbb8563b2a2a9fce35876b2
afa2a8a0d7d88b03244ccfde07263994fd7e4b4d 07-Apr-2017 Daniel Stone <daniel@fooishbar.org> drm_hwcomposer: Use correct DRM event context version
am: 2d1bc46486

Change-Id: I800ac862d16cbe7b74e877a887ab6eaf58c16440
2d1bc46486b06c2a8a069c0c2731dcd46da0aacc 07-Apr-2017 Daniel Stone <daniel@fooishbar.org> drm_hwcomposer: Use correct DRM event context version

Explicitly declare which DRM event context version we want to use,
rather than just the latest one libdrm supports. New versions may change
semantics, or extend the structure, in ways we're unaware of.

Stick with version 2, which is the version that introduced
page_flip_handler.

Change-Id: I71e33f787b2b724596f8289d95311730f7aff8ff
Signed-off-by: Daniel Stone <daniels@collabora.com>
rmeventlistener.cpp
0e89268266a8754f5fc09595d6d7545bccb88017 01-Mar-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: introduce QueueWorker

Current method to queue work such as display compositions relies on
spinning the CPU until there is space in the queue. This is inefficient
for the time in which the queue happens to fill up.

Introduce a new QueueWorker class to simplify queueing work and handle
blocking for available space more efficiently.

Change-Id: Ida7aa612931700a56ecae3efc7ddd1c86efec699
ndroid.mk
utolock.cpp
utolock.h
rmcompositorworker.cpp
rmcompositorworker.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmeventlistener.cpp
wcomposer.cpp
ueue_worker.h
ests/Android.mk
ests/queue_worker_test.cpp
irtualcompositorworker.cpp
irtualcompositorworker.h
e5c7565114b786bdf1bacc8c8ff3cb9517d17b92 16-Feb-2017 Adrian Salido <salidoa@google.com> drm_hwcomposer: refactor Worker

Make use of standard library mutex and conditions which simplifies use
of condition variables and benefits from things like scoped locking.

Also add tests to make sure it runs as expected.

Change-Id: Iaf92e17e1f6757dce490eddee61f84cb1f953b0c
ndroid.mk
rmcompositorworker.cpp
rmdisplaycompositor.cpp
wcomposer.cpp
ests/Android.mk
ests/worker_test.cpp
irtualcompositorworker.cpp
syncworker.cpp
syncworker.h
orker.cpp
orker.h
80b1a5d903a7f9e14d9cde2de7f996185271a739 10-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move some utilities out of hwcomposer.cpp

There are some utility functions in hwcomposer.cpp that will
be useful for hwc2. Move them into hwcutils.cpp so they can
be used when hwcomposer.cpp is not compiled.

Change-Id: I66a332e3e6afc4dc64217a528db50d5adbe02ef6
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
ndroid.mk
rmhwcomposer.h
wcomposer.cpp
wcutils.cpp
6511c5ed357eacd1baf59d8992985053768d176b 10-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove source_damage from DrmHwcLayer

We don't use it, so get rid of it.

Change-Id: I63fc6bd06c0bfd4e7ad8315856e8f2372133624e
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmhwcomposer.h
d4a0a3d2aee4bbfe38395f4c2e11128461d13317 10-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Break out of sync_wait loop on success

Don't call sync_wait kAcquireWaitTries times if it returns successfully.

Change-Id: Iebdc2229966bfce4aaf35a07ef59aef405e301c6
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmdisplaycompositor.cpp
406dbfc4c7c9ae5a5d669c6cec00394fcc9bfa87 11-Feb-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Harvest min/max resolutions from drm

Store the minimum and maximum resolutions from drm in DrmResources

BUG=None
TEST=None

Change-Id: I21b9a3fc5f220585295733cc754fe0f6df0abae9
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmresources.cpp
rmresources.h
a5df1defa12bc38ed2e5c9cb2fdef85fe7ea0cd7 10-Feb-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don't pass hwc_procs_t to VsyncWorker

Introduce a new class to limit the hwc_procs_t callback
structure scope to hwcomposer.cpp

Change-Id: I68ec62e7947ca87702b3d6d0169ae850cfbf5d85
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
wcomposer.cpp
syncworker.cpp
syncworker.h
8600e347e14b42872b1c2762d51b27102ddc40f9 28-Feb-2017 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Clean up error conditions

Clean up error checking for some failure cases.

BUG=None
TEST=Tested on Qemu+drm_hwcomposer

Change-Id: I98bca1aef09060b5a023375dce564252a6073b96
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmdisplaycomposition.cpp
0cc4568f31d178a9e8b5443e83e15beea95eb1cc 24-Feb-2017 Robert Foss <robert.foss@collabora.com> drm_hwcomposer: Add missing assert.h include am: 15d6a22ad6 am: d0147d2dfa am: d6324e6759
am: d53cfbe9b8

Change-Id: I45d1780f6f154ee7fc5438553604c139cce44fcf
d53cfbe9b801fb9099fb2abce9d829cd15a906cf 24-Feb-2017 Robert Foss <robert.foss@collabora.com> drm_hwcomposer: Add missing assert.h include am: 15d6a22ad6 am: d0147d2dfa
am: d6324e6759

Change-Id: I518b235ec28d0248486f44df380928cc2a6a2f32
d6324e6759e78abe440b10542391a2200dd3340d 24-Feb-2017 Robert Foss <robert.foss@collabora.com> drm_hwcomposer: Add missing assert.h include am: 15d6a22ad6
am: d0147d2dfa

Change-Id: I4901a98ed0a9fec9d2f2fb45566ea533c8857be2
d0147d2dfac0499f3b787bd6c8c1270d176cd14f 24-Feb-2017 Robert Foss <robert.foss@collabora.com> drm_hwcomposer: Add missing assert.h include
am: 15d6a22ad6

Change-Id: I220404e3d70396f602fd41e754a314a6dd54367a
15d6a22ad6b0d7ea3a6ffbb48bcb6035c4321be3 20-Feb-2017 Robert Foss <robert.foss@collabora.com> drm_hwcomposer: Add missing assert.h include

drm_hwcomposer fails to compile on aosp/master due to
assert.h not being included.
This patch fixes this issue.

BUG=None
TEST=make

Change-Id: Icb5d5d8a33c9898a5aefa00c1bdbf29965de62a7
Signed-off-by: Robert Foss <robert.foss@collabora.com>
rmeventlistener.cpp
86fca4443d209381e1434574855bef0ba8417db1 31-Jan-2017 Dan Albert <danalbert@google.com> Add missing include. am: 1c5a6ac75d am: cb31814680 am: 77286a5cfb
am: e438c1de52

Change-Id: Ic76d336f33549e68cde658c971c5314d02fa3097
e438c1de52cb41283318b9ecf31eae98ff61dc9f 31-Jan-2017 Dan Albert <danalbert@google.com> Add missing include. am: 1c5a6ac75d am: cb31814680
am: 77286a5cfb

Change-Id: I1e9f6b9788365308b0b84383300d12f84390adb3
77286a5cfb39a6f75dc27112c5db137dc4cd83fe 31-Jan-2017 Dan Albert <danalbert@google.com> Add missing include. am: 1c5a6ac75d
am: cb31814680

Change-Id: I335f364a738b57f34b66c340a5c935a9eef270d0
cb318146806e752e5bb1f51e5cd63bfe23be1256 31-Jan-2017 Dan Albert <danalbert@google.com> Add missing include.
am: 1c5a6ac75d

Change-Id: If734812198f324842dcb92f760a37977050f8c95
1c5a6ac75d2c087bde9198b0510652451ffc0ae8 31-Jan-2017 Dan Albert <danalbert@google.com> Add missing include.

This was previously leaked by libc++.

Test: mma
Bug: http://b/34740564
Change-Id: I7084cdb44a9b7346556c20b1b6eeebc6ebb2d500
rmeventlistener.cpp
cc8e982928636720deaf308d70320915eabe23bb 24-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects am: 6862df5491 am: ff522c77d5 am: 5ad151f3ca am: 0b0a617525
am: 0378c5f2c9

Change-Id: I5f0739aa4cbe993a841ea240c59a4a3c54b96bd5
0378c5f2c908863c3d7c6750059fc55ca9808c95 24-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects am: 6862df5491 am: ff522c77d5 am: 5ad151f3ca
am: 0b0a617525

Change-Id: Iac004d1fc56485f3ce234fbe34b24513a13fb309
0b0a617525149a0ca9464c4022f4fdb2662624b7 24-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects am: 6862df5491 am: ff522c77d5
am: 5ad151f3ca

Change-Id: Idbc7d2b9453eb5a203467b82ebd0eaebf95010c7
5ad151f3ca7822559559dd5afa57c3bccfbc2648 24-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects am: 6862df5491
am: ff522c77d5

Change-Id: I9084ef5da1950f0c2c86fb567eb86fd1e6fc2fa6
ff522c77d52cc8324ba0a505706fe5f1c5d30178 24-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects
am: 6862df5491

Change-Id: I4583eaa39e7c53f67f6ded2e0c2863d49c9e8b5a
f42d0a23978561656e860a2e61dc5d3f3b643825 21-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects am: ced19e30cf am: d3542a23a7
am: 93657448e3

Change-Id: Ie53e21bae8677f678c133bfb80973d95204724d5
93657448e30de713733dc1c288a04c82db99c1d9 21-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects am: ced19e30cf
am: d3542a23a7

Change-Id: I71b6071e704e32b35745c0c3ca9f9f67387d53e3
d3542a23a704da1ab69d1832f85b6c2c0a1c4d74 21-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects
am: ced19e30cf

Change-Id: I8ae37f9946d2b98c775f8e7224e2e70466c245b7
ced19e30cf3d6c7314104caef34378c3d07c5169 21-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects

Bug: 32218819
Change-Id: Ic8f2c5d078a5ee9a48862a8e8faca051f199b78e
Signed-off-by: Adrian Salido <salidoa@google.com>
eparate_rects.cpp
6862df5491c082d667d4e21b749cfc9ff779306b 21-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: fix type size check for separate rects

Bug: 32218819
Change-Id: Ic8f2c5d078a5ee9a48862a8e8faca051f199b78e
Signed-off-by: Adrian Salido <salidoa@google.com>
eparate_rects.cpp
4216699f819e2bd09bac147e173c8321adc5ee1a 03-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: limit maximum depth of frame worker queue am: ff717ff5b0 am: 3af111cf59
am: 6d59b2091a

Change-Id: I922a21f182a80d6c60106130a33df153ce4e8710
6d59b2091a2ee207df2109ee89dd900e6e8c2432 03-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: limit maximum depth of frame worker queue am: ff717ff5b0
am: 3af111cf59

Change-Id: I47f54e2a0cc0c2235ffb757a5579268277dafe06
3af111cf5975e51318b8aa59f39e5d96c6bc3fbd 03-Oct-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: limit maximum depth of frame worker queue
am: ff717ff5b0

Change-Id: I89614273f61428a5303586c0fd63bdc4a53e3e63
ff717ff5b00180242041c0bd74d4e26dcfb2d260 30-Sep-2016 Adrian Salido <salidoa@google.com> drm_hwcomposer: limit maximum depth of frame worker queue

Each element of the queue requires use of limited resources
(file descriptors). If the queue doesn't get throttled when
frame worker is not getting scheduled to consume the elements
from it then it can quickly reach max fd limit and cause
unexpected behavior such as system crash.

Test: run cts including CtsMediaTestCases
Bug: 31594201
Change-Id: I77345ae66da5675f4214f42f0c5bfb773bf5fd3f
rmdisplaycompositor.cpp
d179e51623c9776a0d32752e89dc0d285271a8a8 23-Jun-2016 Sean Paul <seanpaul@chromium.org> Merge \"DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame am: c74c8b9339 am: b38dbf65e0\" into nyc-mr1-dev-plus-aosp
am: e01006bf0b -s ours

Change-Id: I10f6cf4f4df59472c2e5598886ababcc7eec51f3
bd1f2172820523848165e8352164e93fee19c366 23-Jun-2016 Sean Paul <seanpaul@chromium.org> Merge \"DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8ea am: 7ca7746261\" into nyc-mr1-dev-plus-aosp
am: 6f718d173a -s ours

Change-Id: I7719b53e123ed900ee4d0b090eba59a45437fd64
82318646561b4c710ebf554182711dc85454dd38 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame am: c74c8b9339 am: 80b6062966
am: 890853a1bf -s ours

Change-Id: Ia8a1f3bfdc53cd1c501a5bac532ec11785cdebac
f19a265be1d563d83db66cd8a61a1ba37632fc4a 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8ea am: 95ff952c0f
am: c81cbb069a -s ours

Change-Id: I3dfb91576ead7e2be97d2af0718979dea26eb605
e01006bf0b9deb64646051cad19b22600fd24db0 23-Jun-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame am: c74c8b9339 am: b38dbf65e0" into nyc-mr1-dev-plus-aosp
6f718d173a7554eb9716c55a95bd00ce3cdc2640 23-Jun-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8ea am: 7ca7746261" into nyc-mr1-dev-plus-aosp
890853a1bf6054ddd3e6e7a5ad7076ae3abf3e39 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame am: c74c8b9339
am: 80b6062966

Change-Id: I0936e00e4b5fa1712759b4a0a28e7c056c2d9e38
8f396f3e9b99c235ed40b6171f8e5da1a27e3930 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame am: c74c8b9339
am: b38dbf65e0

Change-Id: Ia0e142fdaa6ab5bd4d00f46f46e1dc9b43d51fad
c81cbb069aefa3c7a9af63b39a974b3c307e7457 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8ea
am: 95ff952c0f

Change-Id: I1e81cd2f16a77721e4086286c316a3d1f0a6d3a5
7411a2aa0cec49c6a258678e9f09845383af17e7 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8ea
am: 7ca7746261

Change-Id: Ibf56c0cf4d74bc186e86acaadc5cc40841cd797c
80b6062966f455d3926f5d38fa665c2f7f7fa1de 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame
am: c74c8b9339

Change-Id: Ie7d401ac8d7a91c027a7d93b1e86a8a58f03b96e
b38dbf65e012488d45a17507c0a761b2a1380def 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame
am: c74c8b9339

Change-Id: Ibfe0a03568d74f2517eb86d4f97b7339a5bb38bb
95ff952c0f57ec5d9a69a6d11ebfe27e78fceaa4 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: On error, free active composition
am: b4cf01b8ea

Change-Id: I4abe49d312a92fdac39cd95c95434384225c3f6c
7ca774626162860edcb8232863bacb7a729d3673 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: On error, free active composition
am: b4cf01b8ea

Change-Id: I3afa118c0e6d9ffbfc2c5f2e77d09b027882da4d
9d249f5759ecb3abd660ed514bac24dbe67a4ecd 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0 am: 9d7612026e am: 5ef27816e9 am: a48e4fbb76
am: a77cd05acd

Change-Id: I590705658bc023fa1092aa9bb2eba2319e87c302
fd4ebec1a3f0156f45b77d111ad4cfd8d8da645e 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: On error, free active composition am: 137a6a8e9b am: 7cabba9701 am: dd34aa9b8c am: df880a7cd0
am: 7c49f90c2a

Change-Id: Ie6eb3e93e84d355f3b393513265724cdab034a0f
a77cd05acd4606cb38abe59a2edd1efed16d57b0 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0 am: 9d7612026e am: 5ef27816e9
am: a48e4fbb76

Change-Id: I8489a79540f353bd2ea1de1365f5e6a8a3ac3e80
7c49f90c2ae578850211e963fad7c5eaac975ece 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: On error, free active composition am: 137a6a8e9b am: 7cabba9701 am: dd34aa9b8c
am: df880a7cd0

Change-Id: I7f91566dec685ffa136af5eadd7a5b97fb249bf4
a48e4fbb7619a87cd87c773090e10520d6ebf6e5 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0 am: 9d7612026e
am: 5ef27816e9

Change-Id: I0eef3e89310fbdad4589c396f7fa1a64e2da007b
df880a7cd04808242f6db0798192979f757fbdb5 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: On error, free active composition am: 137a6a8e9b am: 7cabba9701
am: dd34aa9b8c

Change-Id: I65b5140c6cc6e967dcef924b239165bbbf0093a0
5ef27816e917c3e7d9ead246a2b41cf9e08ff31f 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0
am: 9d7612026e

Change-Id: Ia67973ff43e70138d8f7a9e21e896f69e125bf9e
dd34aa9b8c52980b7122513fcdc30625c5d3811c 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: On error, free active composition am: 137a6a8e9b
am: 7cabba9701

Change-Id: I1063076ca5276bbf9048bd947f542e16696e865f
9d7612026ef82a71deca52c936bbf445a06cf278 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Count all layers with content in SquashFrame
am: fab5ea10b0

Change-Id: I050b6a4c2b9361dd89571712ad9dd8cc2c86060c
7cabba970139676246be8799069a552066addd13 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: On error, free active composition
am: 137a6a8e9b

Change-Id: I9a9f6885c36d354432600ce0127e50423ed7c276
c74c8b9339cb5fd4f00d1be6b857c6e60ba5fc49 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame

SquashFrame previously didn't run if there was only one overlay
layer in the layer stack. This would cause false failures when
the incoming composition was composed of one or more layers with
a precomposition or squash layer.

To fix this, count all layers which are not disabled, and only
skip squashing if there is just one content layer.

BUG=b/29122961
TEST=Tested on smaug with vertical multi-window YouTube

Change-Id: Icb175b7701928136730442a39c4717a780d34cfd
Signed-off-by: Sean Paul <seanpaul@chromium.org>
(cherry picked from commit fab5ea10b0e81e830c484e19b322a3c11fa9e9e6)
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
b4cf01b8eab70b554b3ddcad10cade7b6f0ffe0f 23-Jun-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: On error, free active composition

If we drop a frame while compositing, free the active composition.

Assume a frame pipeline of A->B->A. If we drop frame B, it will become
the active composition, which means the fences for A will not be released,
causing us to block A on A --> DEADLOCK.

BUG=b/29122961
TEST=Tested on smaug, no longer hangs

Change-Id: I98817bb361f1d0669395ddac5d96cf4f19d4b26a
Signed-off-by: Sean Paul <seanpaul@chromium.org>
(cherry picked from commit 137a6a8e9bea5c90a6832e9ed3e630f47041ab15)
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
fab5ea10b0e81e830c484e19b322a3c11fa9e9e6 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Count all layers with content in SquashFrame

SquashFrame previously didn't run if there was only one overlay
layer in the layer stack. This would cause false failures when
the incoming composition was composed of one or more layers with
a precomposition or squash layer.

To fix this, count all layers which are not disabled, and only
skip squashing if there is just one content layer.

BUG=b/29122961
TEST=Tested on smaug with vertical multi-window YouTube

Change-Id: Icb175b7701928136730442a39c4717a780d34cfd
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
137a6a8e9bea5c90a6832e9ed3e630f47041ab15 23-Jun-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: On error, free active composition

If we drop a frame while compositing, free the active composition.

Assume a frame pipeline of A->B->A. If we drop frame B, it will become
the active composition, which means the fences for A will not be released,
causing us to block A on A --> DEADLOCK.

BUG=b/29122961
TEST=Tested on smaug, no longer hangs

Change-Id: I98817bb361f1d0669395ddac5d96cf4f19d4b26a
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
7858d420f58e4b34f44eed9d41eccd59e87d4751 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes am: 8cc4e2a2de am: 325164feb1
am: 424608e4ab -s ours

* commit '424608e4ab89fb11450e7889779109f8ce15bdce':

Change-Id: I916b8333e4e497e8a4570866622ccfafeea06b0a
c4f1f5e08b0d56bf0361064810e097e1f21e6dd7 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface am: d9c3e2d9c8 -s ours am: 4258a8a169
am: 3fd4ebedc7 -s ours

* commit '3fd4ebedc713d3bc6ca86b3530e35304fd7c7539':

Change-Id: I507f95bbaca12ce35e0591782aebd920a39cfe0f
b080c11b6d6a51b74bef8204ee6fe79583a6abf0 17-May-2016 Sean Paul <seanpaul@chromium.org> Merge "DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes am: 8cc4e2a2de am: c04f1f9a2f" into nyc-mr1-dev-plus-aosp
am: 21c2ce2f55 -s ours

* commit '21c2ce2f55520ed56586f9b07343d5b63d122a1e':
DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes

Change-Id: Ib11de6ab37a6a4c2ab1e6f292c4b650bc091c939
424608e4ab89fb11450e7889779109f8ce15bdce 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes am: 8cc4e2a2de
am: 325164feb1

* commit '325164feb17e00857f21220cb045260f00dc6b29':

Change-Id: Iceaa5b4c70cb6187d11df52e226b70d8df32bb18
3fd4ebedc713d3bc6ca86b3530e35304fd7c7539 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface am: d9c3e2d9c8 -s ours
am: 4258a8a169

* commit '4258a8a169938f1dca4bb61f2ea939dac38a0ff4':

Change-Id: I6ea4a19a0f3623e42aecfd47a5724a320c37cd91
e582a9e8992e01ab3368ac8cd5f2e2908c02f663 17-May-2016 Sean Paul <seanpaul@chromium.org> Merge "DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll am: 8eb85ff7d7 -s ours am: 45ea1b1c69" into nyc-mr1-dev-plus-aosp
am: 104aaf0153 -s ours

* commit '104aaf0153be17fa613465a85fb958e2fbd4dc39':

Change-Id: I7952d09a741adbe0710e64925e423d595f75a4eb
87dad64cc47725e7aa668bc8ec5f294486f5d450 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface am: d9c3e2d9c8 am: c7eaa80388 -s ours
am: d6d8bdfc23 -s ours

* commit 'd6d8bdfc23e244b31d9c832dcd27bbf0a7a8463e':
DO NOT MERGE: drm_hwcomposer: Introduce Planner interface

Change-Id: Ib5504bd86ccdc68dd9400d7474b429c9ed61aa06
325164feb17e00857f21220cb045260f00dc6b29 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes
am: 8cc4e2a2de

* commit '8cc4e2a2de3c0cf932226a5a6042de5d830fa24a':
DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes

Change-Id: Ic9d0109dedbaed4378fedb1c3a14948a5d5a3e32
21c2ce2f55520ed56586f9b07343d5b63d122a1e 17-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes am: 8cc4e2a2de am: c04f1f9a2f" into nyc-mr1-dev-plus-aosp
f93268eef455e95a0981e480d4925434058f259f 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes am: 8cc4e2a2de
am: c04f1f9a2f

* commit 'c04f1f9a2f6df48fcd3dd8cbc720b649068120e5':
DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes

Change-Id: I5802bc8d7571a9e9fb8adebbbda658462bc1978a
104aaf0153be17fa613465a85fb958e2fbd4dc39 17-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll am: 8eb85ff7d7 -s ours am: 45ea1b1c69" into nyc-mr1-dev-plus-aosp
4258a8a169938f1dca4bb61f2ea939dac38a0ff4 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface
am: d9c3e2d9c8 -s ours

* commit 'd9c3e2d9c8b15082b1ef2372406ba46e4bb7d199':
DO NOT MERGE: drm_hwcomposer: Introduce Planner interface

Change-Id: I50696960694fb94394c370624f2b4ebc65af93f9
89f4f171c1dad5fed32a1c98181fcbfb418ddfbc 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll am: 8eb85ff7d7 am: 1795902382 -s ours
am: 3a1b7f47b6 -s ours

* commit '3a1b7f47b66b0561a2897a8b4c99ee8648814274':
DO NOT MERGE: drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: Iee7cc225081fe04dd4fe6ae2af4fc5c336b5c2b5
934b07ea3a5b944fd0ed1a665c55e3d4b9e78209 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll am: 8eb85ff7d7 -s ours
am: 45ea1b1c69

* commit '45ea1b1c6943ff56569aca80b897259f4f04562d':

Change-Id: Ib1a1734fa7834554ddcc5542a77b7590dc932ec1
d6d8bdfc23e244b31d9c832dcd27bbf0a7a8463e 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface am: d9c3e2d9c8
am: c7eaa80388 -s ours

* commit 'c7eaa803884524c406ae123d890644252d37c5b8':
DO NOT MERGE: drm_hwcomposer: Introduce Planner interface

Change-Id: I38426db6a49e00a8afbc36cabf404d18f64af3d4
45ea1b1c6943ff56569aca80b897259f4f04562d 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll
am: 8eb85ff7d7 -s ours

* commit '8eb85ff7d7704a4783cbb97eec480ae2c93d7f3b':
DO NOT MERGE: drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: I00ad6d2959a3ac22424c0175d7a275dcd55ce4b2
3a1b7f47b66b0561a2897a8b4c99ee8648814274 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll am: 8eb85ff7d7
am: 1795902382 -s ours

* commit '179590238252ddd288fff0d79c1a7e41687ca74f':
DO NOT MERGE: drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: I3f4f1664b72c3925df9d5aa35ac858bd4d17f5cb
d7ec0b649e02b20b49bdb66ba56bca77908215e4 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function am: 3498225e33 -s ours am: f625e80960
am: 5496582b2c -s ours

* commit '5496582b2c8ada7e411386e7f05f7cf861a81288':

Change-Id: I414ccfb9a5280c82761f13548ff259625e466563
5496582b2c8ada7e411386e7f05f7cf861a81288 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function am: 3498225e33 -s ours
am: f625e80960

* commit 'f625e80960917ddfdec7292d0cb25bef86460d49':

Change-Id: Ie72266caeb72aac65b8bf2019b624ee5b9ea2dcd
e9986cb1d10003e362e6c318e566c31f55fcebfa 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function am: 3498225e33 am: beee54f5f0 -s ours
am: 4ddc50723b -s ours

* commit '4ddc50723b465a27b843a765674335f261e8fd6b':
DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: I6552875ffb082a759c62f8f51d650fccf2c13751
f625e80960917ddfdec7292d0cb25bef86460d49 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function
am: 3498225e33 -s ours

* commit '3498225e33e479e95bac6f3aec5fef04f23abddd':
DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: I02e96fb7cc26bdfafa6d043a44b6d5c579b6728d
4ddc50723b465a27b843a765674335f261e8fd6b 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function am: 3498225e33
am: beee54f5f0 -s ours

* commit 'beee54f5f094c45d1759b91d811a38191ff2d726':
DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: I360039ae5903ece437f5538448361627c645f946
251138dec249ca0d1282bda94e1f905bfb443c8f 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: 7379ecd4c3 -s ours am: 5cd2c80054
am: 7e3b327967 -s ours

* commit '7e3b327967bd2db9b3986f5c413075e56964f590':

Change-Id: Idecd954b029888c716a60103dbf516e334e72e6d
7e3b327967bd2db9b3986f5c413075e56964f590 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: 7379ecd4c3 -s ours
am: 5cd2c80054

* commit '5cd2c800543967e84eda37beeba6a379af5e4a51':

Change-Id: I6a2a7abf7c49690ef6224045170b8321fefc671a
2ea619ca70cccab4a44004ada7e01eabc64f3ee1 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: 7379ecd4c3 am: b80178ce2a -s ours
am: 9818471cdc -s ours

* commit '9818471cdc562fcef1dcb61f879818ba547b777f':
DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: I8ef8337a90c31ceac89d18d9545d8c2296dae508
5cd2c800543967e84eda37beeba6a379af5e4a51 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane
am: 7379ecd4c3 -s ours

* commit '7379ecd4c3ebb25e3ce730e4b2e51d2ad46d3a51':
DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: Ic670481d02da6772a0e3226c547edd8f7f74e6b8
3b87809c37f678387a186462795dd8f61dcca2ba 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers am: 9b70717071 -s ours am: 5deb6fa529
am: 33ada568c6 -s ours

* commit '33ada568c65582175007ad52f4f637c9bdcef7ab':

Change-Id: Ieb323b7d8635f20d746cf47f25e3c7be8625f1f2
8a4ecb04ff6fb69ddb97fc1399c21385179336f4 17-May-2016 Sean Paul <seanpaul@chromium.org> Merge "DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers am: 9b70717071 am: 5c904136cb -s ours" into nyc-mr1-dev-plus-aosp
am: 3ebc0bbc08 -s ours

* commit '3ebc0bbc08f4a4dbc3fcfc63e36af8382754244c':
DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers

Change-Id: I709db4d29f5d5c7fb20d78d68b813f2777ab9913
9818471cdc562fcef1dcb61f879818ba547b777f 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: 7379ecd4c3
am: b80178ce2a -s ours

* commit 'b80178ce2a4f3e4caf504756908804645dde8b60':
DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: I7244626e520e3cc546c6126974a95c5cbce9e0b1
a9cff45181ee1d10eac9e94c2e68f4e39ae0d254 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane am: 07aa8cc9f7 -s ours am: aefa495812
am: 405ed17580 -s ours

* commit '405ed175804c2207a8d30e2aa870e8a1543e6c51':

Change-Id: If5435f52c0292e0081c82398080515f8423a8a89
33ada568c65582175007ad52f4f637c9bdcef7ab 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers am: 9b70717071 -s ours
am: 5deb6fa529

* commit '5deb6fa5294feb8a76eee3b47eed60d479e12c10':

Change-Id: I7097d9cd6da691e0a1be8b4b076ea249b17f9d32
3ebc0bbc08f4a4dbc3fcfc63e36af8382754244c 17-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers am: 9b70717071 am: 5c904136cb -s ours" into nyc-mr1-dev-plus-aosp
5deb6fa5294feb8a76eee3b47eed60d479e12c10 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers
am: 9b70717071 -s ours

* commit '9b70717071da6b5c098d2363a350d1f0f2333423':
DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers

Change-Id: Icfc170734f2c5caa9cae7ac9bd2fc4f5714983f8
6148a6fb353fd662f6537036f22b77da52896ce8 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane am: 07aa8cc9f7 am: e1db0d47fc -s ours
am: 46e5572cd8 -s ours

* commit '46e5572cd84873159b7e14452324b0a747b2eb94':
DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: I5b1772289d15a5608161a9ce4874217608a5c2bd
405ed175804c2207a8d30e2aa870e8a1543e6c51 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane am: 07aa8cc9f7 -s ours
am: aefa495812

* commit 'aefa495812cc8d86a77ab0a75611ec9bb9fd3a48':

Change-Id: I8edd7532188458bb577273d0d3bdfea7da8ea970
d51870e1d20514dca430ced3417e846fa0318148 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers am: 9b70717071
am: 5c904136cb -s ours

* commit '5c904136cb06cebb52ebfdc9db17f80c823f7911':
DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers

Change-Id: Iccd1b7c8686601b960bfe87d9573e937d6728e83
aefa495812cc8d86a77ab0a75611ec9bb9fd3a48 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane
am: 07aa8cc9f7 -s ours

* commit '07aa8cc9f7a3905e62f71b0be8e0129c69ef81e0':
DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: I7d89e01bf70d620ad30fb4c7b02fdd6d0e59aa22
28903336f23c0410572bb0ebfa2848ad09253776 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: 717a44be8f -s ours am: 5e3fc2d1a0
am: 57c66f169d -s ours

* commit '57c66f169d7261216677d79d581121ffd14305ee':

Change-Id: I97b893a6cd79eb3136b79f8b78ab91a33309cc89
46e5572cd84873159b7e14452324b0a747b2eb94 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane am: 07aa8cc9f7
am: e1db0d47fc -s ours

* commit 'e1db0d47fc455f01ab73b65881dc56ae83f9641d':
DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: I1a89f3c5674082d2d27d6c5c7b708a00b94eecc7
57c66f169d7261216677d79d581121ffd14305ee 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: 717a44be8f -s ours
am: 5e3fc2d1a0

* commit '5e3fc2d1a015f25f9eac7a77c523b8c9592bab96':

Change-Id: I798c86bce294f5f50d5610f169fb30c8682f090b
b05982646720a59e493ab8c1587f1e3465363e71 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: 717a44be8f am: 57288fab52 -s ours
am: 62e40db515 -s ours

* commit '62e40db5151c9d860e6d2431bcfa1480353cb5f1':
DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: I34aa6094b0bf25051ccb93224519c641e6e358b2
5e3fc2d1a015f25f9eac7a77c523b8c9592bab96 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit
am: 717a44be8f -s ours

* commit '717a44be8f9f9282e6708b78cb3f2bbc8de7cb3a':
DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: Ie8e701d3661fd2578771bfa2596130fd2c6a0452
62e40db5151c9d860e6d2431bcfa1480353cb5f1 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: 717a44be8f
am: 57288fab52 -s ours

* commit '57288fab52fad3f8e9bbef146c9fae2b37128cf0':
DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: I3c84c0faba1a27f830f0beba4421fd00ad4a3f7b
169ec96064a86aaa0744df97fb48446b279e6668 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags am: 0f27fb9ece am: 813a19edfe
am: bd7ade0f03 -s ours

* commit 'bd7ade0f03919050ffb6cdfd8df56d8ab1f5849a':

Change-Id: Ie3d25e9c22c775e39a274aa81c20089630d59acc
6297e1a6c132f1432f74adf119c59272112d3d1b 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files am: 5b978756df -s ours am: 4a4a0564bb
am: 49151c0d22 -s ours

* commit '49151c0d228c77e3391518545b723ef6b94a0f42':

Change-Id: I8b4ab39c32ef1b5b38833176947612a43ce0e8a2
13e287d57f3adbfb9ea730d3712aa2dd47bb8175 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags am: 0f27fb9ece am: aad3bb84a0
am: b649ce2bd6 -s ours

* commit 'b649ce2bd645f1af234d346fa98649de09c94753':
DO NOT MERGE: drm_hwcomposer: Update platform log tags

Change-Id: I8546a6736aff08b185a48b9e90974eb565f626c3
0d8715f4572ee1c9d8a5aa3d38f0b74586ad4f29 17-May-2016 Sean Paul <seanpaul@chromium.org> Merge "DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards am: e65d1be1f8 am: bea399f7b2" into nyc-mr1-dev-plus-aosp
am: 3cf7141eaa -s ours

* commit '3cf7141eaa51e3a7beafff3c8ccb2c7a1b8284bd':

Change-Id: Id82e017097530258a0da2994d93a958e9c1c3fe7
5d32ae118351353ed914df5a50f4e8a624fc34b3 17-May-2016 Sean Paul <seanpaul@chromium.org> Merge "DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files am: 5b978756df am: 8a928a4b39 -s ours" into nyc-mr1-dev-plus-aosp
am: 9813d7def5 -s ours

* commit '9813d7def540e44d5c7edf8d81e92c0175dc7362':
DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: I94451838a054efd86f302116d0ea87ba33e1bb58
33ef0c1ae460e886432587d8af90fb4a606e42f4 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers am: 070a47e9ff am: 311fb540ef
am: 1695a00cad -s ours

* commit '1695a00cad6ae7dca0c7bf42901644e09898f875':

Change-Id: Iffc0b17377916b77a21ee7036d0fc43f58b72c62
31b504564557f18cc9a468c56a1e352f1b9bad15 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h am: 22fd62fbd3 -s ours am: 9c938cc1fa
am: 4e1b4edb0e -s ours

* commit '4e1b4edb0ec9b7e4774e12b489c99687b4553492':

Change-Id: I646510002001dcee20984a17394783105cb741f0
bd7ade0f03919050ffb6cdfd8df56d8ab1f5849a 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags am: 0f27fb9ece
am: 813a19edfe

* commit '813a19edfe8cfbdb36dc258ae9369f9732f23f75':

Change-Id: Ib8a93e5aad181cfc42971bcad9d84cc6d7835201
49151c0d228c77e3391518545b723ef6b94a0f42 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files am: 5b978756df -s ours
am: 4a4a0564bb

* commit '4a4a0564bbce21c0cc4212cc89bc128c6dc5d2b7':

Change-Id: I55ea7205b68579f773fb6636a6c9f08ab000e352
813a19edfe8cfbdb36dc258ae9369f9732f23f75 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags
am: 0f27fb9ece

* commit '0f27fb9ece1707c76e70c35b5d757609801eef0e':
DO NOT MERGE: drm_hwcomposer: Update platform log tags

Change-Id: I6390e00e4425ecd6e923c3c4801caa231abdcc14
b649ce2bd645f1af234d346fa98649de09c94753 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags am: 0f27fb9ece
am: aad3bb84a0

* commit 'aad3bb84a07e1d096308d66fc6ea685ca3a0bdd3':
DO NOT MERGE: drm_hwcomposer: Update platform log tags

Change-Id: Idf980816a17bed9f45af63706531ecf967ca6a30
3cf7141eaa51e3a7beafff3c8ccb2c7a1b8284bd 17-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards am: e65d1be1f8 am: bea399f7b2" into nyc-mr1-dev-plus-aosp
9813d7def540e44d5c7edf8d81e92c0175dc7362 17-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files am: 5b978756df am: 8a928a4b39 -s ours" into nyc-mr1-dev-plus-aosp
4f912f37ba57f50a50996d51617b026b4919d40b 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files am: 5b978756df
am: 8a928a4b39 -s ours

* commit '8a928a4b399cdb74d9a93d31e456bc98bd93cae1':
DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: I5153e8ecba4f22a39db3cf56378e73c6a9b65a8c
4a4a0564bbce21c0cc4212cc89bc128c6dc5d2b7 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files
am: 5b978756df -s ours

* commit '5b978756df6c94e0d263063a569716b099367171':
DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: Ica9c22be9ab5023a5d9f8c1b300baad0a58fa638
1695a00cad6ae7dca0c7bf42901644e09898f875 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers am: 070a47e9ff
am: 311fb540ef

* commit '311fb540efec7bf0878687093be46a6702fc684d':

Change-Id: Ib250b02a8551f4f512993ad5c381415af298369f
4e1b4edb0ec9b7e4774e12b489c99687b4553492 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h am: 22fd62fbd3 -s ours
am: 9c938cc1fa

* commit '9c938cc1faf03d838585bfed0f9d404b2f9ecf4c':

Change-Id: I3b186a0453b27f2d356c402dcb6b8b13096cf4b6
a5d9478b6cd802adf383c0896eddd98a442c2a35 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards am: e65d1be1f8
am: bea399f7b2

* commit 'bea399f7b2fc26a07e20cd1fb0bffe9c6207aded':

Change-Id: I1ca119b67d733d76d8bb88249221c86e9b9ae1db
bea399f7b2fc26a07e20cd1fb0bffe9c6207aded 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards
am: e65d1be1f8

* commit 'e65d1be1f8d8f770ccb44ec119514cc6df8d89bc':
DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards

Change-Id: Ic07cd0cfcc4b91beb1433588454a101c93e3d5c1
311fb540efec7bf0878687093be46a6702fc684d 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers
am: 070a47e9ff

* commit '070a47e9ffa14edd1f6a8f9e9209840d421c7e33':
DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers

Change-Id: I55ed59401f029a28259f8189a5c8786d2c9a3ee8
9c938cc1faf03d838585bfed0f9d404b2f9ecf4c 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h
am: 22fd62fbd3 -s ours

* commit '22fd62fbd30a8691555fd51090fa78542367971b':
DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h

Change-Id: Ie07bdd99efe1fd71b8dbd52c4ffd564de8ffc2fa
55a102086cdb638d0415402dc9d789c31c15d47e 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards am: e65d1be1f8 am: 6e24827716
am: 1123e16835 -s ours

* commit '1123e16835b7d455f3b6b04ab3c2a38fbd1abd92':
DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards

Change-Id: Ie8b6622bb951de1bb2e6f9c99e36d8abb31f3834
f3ed75157ff6b47aeff04486728cc30430c64286 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers am: 070a47e9ff am: 3cca650694
am: 71462a17dc -s ours

* commit '71462a17dcb64a34b39a579b67ddd174adcd8087':
DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers

Change-Id: I3d76f6af2cb4c3a35e578e0a03db6d6320fe9477
ec4c1e3655fc821dd0cf4ac1685079b9cb7c6ce2 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h am: 22fd62fbd3 am: 458c67f746 -s ours
am: 9133b9c63e -s ours

* commit '9133b9c63e34a141745a0fec67e23365ea28ebd1':
DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h

Change-Id: Ibf54ed55b1a635abba305e37d627d1457364311a
1123e16835b7d455f3b6b04ab3c2a38fbd1abd92 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards am: e65d1be1f8
am: 6e24827716

* commit '6e24827716d2be4ec52c6f7a36fa26a26d93e159':
DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards

Change-Id: I56687b23ea529dcb2f5c01b1fd7520e5d1815bf9
71462a17dcb64a34b39a579b67ddd174adcd8087 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers am: 070a47e9ff
am: 3cca650694

* commit '3cca6506945126ef0db19189349e5f896a416617':
DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers

Change-Id: Ia70490bb300b8da326b4704e2452275d564ce900
9133b9c63e34a141745a0fec67e23365ea28ebd1 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h am: 22fd62fbd3
am: 458c67f746 -s ours

* commit '458c67f74665fb074b076cbdba5af90fd5e1f4a4':
DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h

Change-Id: Ie09fd09bf8b15ce17c7a2a4c22060c34bf7754a4
75808e1905c2a522b2f1f069de240a1f648617b8 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable am: 6275fb70c2 am: 051cbeffb9
am: 3636f62201 -s ours

* commit '3636f62201a55fd70753d12420b97e579f3a79a9':

Change-Id: Ib385f308aeeffab641d3db975ba10731965e68f1
0b541988fb6d2e9aef18d7bb1ab6b34a7b532734 17-May-2016 Sean Paul <seanpaul@chromium.org> Merge "DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch am: 0d0981a0bc am: 07caa6cfe7 -s ours" into nyc-mr1-dev-plus-aosp
am: 42e0774d45 -s ours

* commit '42e0774d458bca8dea826f405f75a96920085976':

Change-Id: I8344a1cbe0f66595d865b748039f15fe289b07d7
9e1ccba72dd70e4dee8c55baf6cdc7daabe2abdf 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable am: 6275fb70c2 am: 408a7c237f
am: c37cccf5a9 -s ours

* commit 'c37cccf5a99c500d3069286edd7723f2620e3794':
DO NOT MERGE: drm_hwcomposer: Remove unused variable

Change-Id: I9c41c07d2a8d9af0e51b1c2c6575a9dba010c463
a60f7f0b1113de34349fcd07c0e646d9c8974b46 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch am: 0d0981a0bc -s ours am: ef46652e0b
am: 39ce3337f2 -s ours

* commit '39ce3337f296488c48ea4df88d05ec3b3a94cefb':
DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch

Change-Id: I4a63a7f515b5514df317d85cf3ab71e150ef9775
3636f62201a55fd70753d12420b97e579f3a79a9 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable am: 6275fb70c2
am: 051cbeffb9

* commit '051cbeffb9165ced850176085ecae13631c41b7c':

Change-Id: Ic42103ef2d440468b19653415eeb1f9b64c19f55
42e0774d458bca8dea826f405f75a96920085976 17-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch am: 0d0981a0bc am: 07caa6cfe7 -s ours" into nyc-mr1-dev-plus-aosp
a58b61dfb0aa7e6d3bf008d21d442e8e75ecd2ca 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch am: 0d0981a0bc
am: 07caa6cfe7 -s ours

* commit '07caa6cfe76f3a80ab23a87ee666f0f953bbb407':
DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch

Change-Id: I747f81c9b6cb9dc84726c9991a73c7f25bba4db5
c37cccf5a99c500d3069286edd7723f2620e3794 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable am: 6275fb70c2
am: 408a7c237f

* commit '408a7c237f9336483317dbf54802c09168fcc50b':
DO NOT MERGE: drm_hwcomposer: Remove unused variable

Change-Id: I03faa369e4f7c688095137d2605ab17a4f48589f
39ce3337f296488c48ea4df88d05ec3b3a94cefb 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch am: 0d0981a0bc -s ours
am: ef46652e0b

* commit 'ef46652e0b2fe1a5327f4929b7c4d09531cc021b':
DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch

Change-Id: I852f94ae4d72d184cb68f5ce3dfa33de3c98ecce
408a7c237f9336483317dbf54802c09168fcc50b 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable
am: 6275fb70c2

* commit '6275fb70c2a85245bd0468be315b13eeb8223c04':
DO NOT MERGE: drm_hwcomposer: Remove unused variable

Change-Id: I35a697700adde2e173383b723bb79ac606c1337b
ef46652e0b2fe1a5327f4929b7c4d09531cc021b 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch
am: 0d0981a0bc -s ours

* commit '0d0981a0bc77ae09ccb115f778d7a157d16dbb3c':
DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch

Change-Id: Ife69b234e1e5c5d054a47d4af92268155716aa99
8d0a3f56708bf9e3be4c6d907d23e7d34f18a636 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 7de353c980 am: 931f817c09
am: c256e24642 -s ours

* commit 'c256e24642fa10b7e373be44738947d4aafbfe14':

Change-Id: I2348a5898c88ea2793574b3d4e204e035368d090
c256e24642fa10b7e373be44738947d4aafbfe14 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 7de353c980
am: 931f817c09

* commit '931f817c096970dac06cee2c9b745fa741bf5f09':

Change-Id: I562b6aee8c236ac43d4d401d6f76bf01529f9372
713d80166233968a667759a43763c4d0cb7b0dda 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 7de353c980 am: c28de5ea01
am: ae9ff17cbe -s ours

* commit 'ae9ff17cbe3d2da28ca0aa444723ca0cb4984cd3':
DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I3328d75ae3066d40d2309d95a3003674c3537b27
ae9ff17cbe3d2da28ca0aa444723ca0cb4984cd3 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 7de353c980
am: c28de5ea01

* commit 'c28de5ea01b97337ba4e6c7a74974e09e027db55':
DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I26819ed789feb4005ef15cc8165fe25b7b38c774
c04f1f9a2f6df48fcd3dd8cbc720b649068120e5 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes
am: 8cc4e2a2de

* commit '8cc4e2a2de3c0cf932226a5a6042de5d830fa24a':
DO NOT MERGE: drm_hwcomposer: Use Planner interface to provision planes

Change-Id: Ie1621bc0610655437e58a7f98e4fc9177445c975
c28de5ea01b97337ba4e6c7a74974e09e027db55 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor
am: 7de353c980

* commit '7de353c98079f840d7090d7541b2307ffc9da827':
DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I30e0c56d0f853a52e3e1c88eba19099273295dca
c7eaa803884524c406ae123d890644252d37c5b8 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface
am: d9c3e2d9c8

* commit 'd9c3e2d9c8b15082b1ef2372406ba46e4bb7d199':
DO NOT MERGE: drm_hwcomposer: Introduce Planner interface

Change-Id: Ib540305069398638db10a6fc3a4db41d8a36096f
179590238252ddd288fff0d79c1a7e41687ca74f 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t use Plan() in SquashAll
am: 8eb85ff7d7

* commit '8eb85ff7d7704a4783cbb97eec480ae2c93d7f3b':
DO NOT MERGE: drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: Id0a88d543ed011b95c1a7ae8634e20663dd45611
beee54f5f094c45d1759b91d811a38191ff2d726 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function
am: 3498225e33

* commit '3498225e33e479e95bac6f3aec5fef04f23abddd':
DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: I1fdb8639ffeafab600952b872c254da47f7e406c
b80178ce2a4f3e4caf504756908804645dde8b60 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane
am: 7379ecd4c3

* commit '7379ecd4c3ebb25e3ce730e4b2e51d2ad46d3a51':
DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: I49a868e5c6004cd953448912a0455352c1897131
5c904136cb06cebb52ebfdc9db17f80c823f7911 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers
am: 9b70717071

* commit '9b70717071da6b5c098d2363a350d1f0f2333423':
DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers

Change-Id: Idf79f87ca6b866c115a7f32c096f5d8946decde1
e1db0d47fc455f01ab73b65881dc56ae83f9641d 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane
am: 07aa8cc9f7

* commit '07aa8cc9f7a3905e62f71b0be8e0129c69ef81e0':
DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: Icd38c1a7ca085c617f24398c44d2fc5939a5edb3
57288fab52fad3f8e9bbef146c9fae2b37128cf0 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit
am: 717a44be8f

* commit '717a44be8f9f9282e6708b78cb3f2bbc8de7cb3a':
DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: Ia34f75d02c5bbce17dc2d4903074f46e0757cc15
aad3bb84a07e1d096308d66fc6ea685ca3a0bdd3 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags
am: 0f27fb9ece

* commit '0f27fb9ece1707c76e70c35b5d757609801eef0e':
DO NOT MERGE: drm_hwcomposer: Update platform log tags

Change-Id: Id154c972eb21337219ad6e04814430fe300a1abb
8a928a4b399cdb74d9a93d31e456bc98bd93cae1 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files
am: 5b978756df

* commit '5b978756df6c94e0d263063a569716b099367171':
DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: Ic90df1f080a12c786fd3bb1df1447901cba4eaa2
6e24827716d2be4ec52c6f7a36fa26a26d93e159 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards
am: e65d1be1f8

* commit 'e65d1be1f8d8f770ccb44ec119514cc6df8d89bc':
DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards

Change-Id: I66a66083bf236a49e14d9993b731cb7a3f26ec44
3cca6506945126ef0db19189349e5f896a416617 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers
am: 070a47e9ff

* commit '070a47e9ffa14edd1f6a8f9e9209840d421c7e33':
DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers

Change-Id: I718b21018f423ac1c89a32b1c6abe34ffaf94196
458c67f74665fb074b076cbdba5af90fd5e1f4a4 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h
am: 22fd62fbd3

* commit '22fd62fbd30a8691555fd51090fa78542367971b':
DO NOT MERGE: drm_hwcomposer: Move importer.h to platform.h

Change-Id: I1105fc01ae5c16be9a53be4f95209b042ee8e687
051cbeffb9165ced850176085ecae13631c41b7c 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable
am: 6275fb70c2

* commit '6275fb70c2a85245bd0468be315b13eeb8223c04':
DO NOT MERGE: drm_hwcomposer: Remove unused variable

Change-Id: Ia98f1aaef0a89fd8536a521c19d929ace282fbef
07caa6cfe76f3a80ab23a87ee666f0f953bbb407 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch
am: 0d0981a0bc

* commit '0d0981a0bc77ae09ccb115f778d7a157d16dbb3c':
DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch

Change-Id: Id8e0182c9bd91e7d7f5fba19f2e6a17dce36b549
931f817c096970dac06cee2c9b745fa741bf5f09 17-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor
am: 7de353c980

* commit '7de353c98079f840d7090d7541b2307ffc9da827':
DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I5d28da683f4d7f83978801cb94b9f0d44ffc9635
4ce203c64814baf44802236509d3d58bd2d3c932 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use Planner interface to provision planes am: aa18d918e2 am: 8c0a47a5f1 am: 4ca00447b0 am: 77b99c0d53
am: f4f8726078

* commit 'f4f8726078bbf3b1c63d20976783150f7fddaf0a':
drm_hwcomposer: Use Planner interface to provision planes

Change-Id: Ib9174f0ab882588e1d2b992eda2e1fdb45c74055
1dcb7da974ee1016c1f9038264deb6468d248eac 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce Planner interface am: 4c4646e7b8 am: 5563c4be83 am: fea9de697b am: 65c98977df
am: f5e96e8209

* commit 'f5e96e82091f36b67c26ff6c68a236e39596d94f':
drm_hwcomposer: Introduce Planner interface

Change-Id: I88b51776dc6f09c1af344d1c763aeea451e48c3e
f4f8726078bbf3b1c63d20976783150f7fddaf0a 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use Planner interface to provision planes am: aa18d918e2 am: 8c0a47a5f1 am: 4ca00447b0
am: 77b99c0d53

* commit '77b99c0d53c1270aba7af30020e44ac039b2d917':
drm_hwcomposer: Use Planner interface to provision planes

Change-Id: I52c684d91953047125cd7ce8676a6c17acda61c3
f5e96e82091f36b67c26ff6c68a236e39596d94f 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce Planner interface am: 4c4646e7b8 am: 5563c4be83 am: fea9de697b
am: 65c98977df

* commit '65c98977dfb8254ca651c880b4797322ed8bd62d':
drm_hwcomposer: Introduce Planner interface

Change-Id: Ic72dc855bb3ac0dec996d8e48900a564e7cb00f9
77b99c0d53c1270aba7af30020e44ac039b2d917 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use Planner interface to provision planes am: aa18d918e2 am: 8c0a47a5f1
am: 4ca00447b0

* commit '4ca00447b0555d47a2348e273632c365504a7a3b':
drm_hwcomposer: Use Planner interface to provision planes

Change-Id: If87aea203053158a2c684356407f4315af0c6350
65c98977dfb8254ca651c880b4797322ed8bd62d 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce Planner interface am: 4c4646e7b8 am: 5563c4be83
am: fea9de697b

* commit 'fea9de697b67c114804d8b0d0a95fb3b9216d734':
drm_hwcomposer: Introduce Planner interface

Change-Id: I055313f4015c4094e79ce2a5febef178aa25ef03
4ca00447b0555d47a2348e273632c365504a7a3b 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use Planner interface to provision planes am: aa18d918e2
am: 8c0a47a5f1

* commit '8c0a47a5f13d2969178c079ba83758a6df4cda98':
drm_hwcomposer: Use Planner interface to provision planes

Change-Id: I7589af6a6ec0e4b67e957db682a17be382416ac0
fea9de697b67c114804d8b0d0a95fb3b9216d734 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce Planner interface am: 4c4646e7b8
am: 5563c4be83

* commit '5563c4be83b752aaf90c09f18c90a33293bbc791':
drm_hwcomposer: Introduce Planner interface

Change-Id: I08c2c5e38c41241387572bc497c3edf21782293e
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
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
d9c3e2d9c8b15082b1ef2372406ba46e4bb7d199 10-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Introduce Planner interface

This patch introduces a new Planner interface to the platform specific
code. This new interface will allow for platform-specific plane provisioning
decisions to cover various hardware quirks.

Each platform must provide a Planner with one or more PlanStage steps. These
stages are run in order and are used to move the given layers onto composition
planes.

There are two generic stages provided by the platform:
- Protected: Places layers on dedicated planes
- Greedy: Provisions as many layers to planes and sticks the rest in precomp

There is also one platform-specific stage included:
- ProtectedRotated: Places any protected & rotated layer on the primary plane

BUG=b/28117135
TEST=Tested on ryu with a variety of window layouts

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ib6062ab4779166753afaf122450bb63126bf9161
ndroid.mk
rmdisplaycomposition.h
latform.cpp
latform.h
latformdrmgeneric.cpp
latformnv.cpp
latformnv.h
8eb85ff7d7704a4783cbb97eec480ae2c93d7f3b 04-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don't use Plan() in SquashAll

Simplify the SquashAll() function by generating the composition
without using Plan(). This allows us to specify exactly what we
want on the screen without involving the normal plane provisioning
code.

BUG=b/28117135
TEST=Tested on ryu, squashing still works

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ieec9c323941e2a80252b33d14563c4d218d38dfb
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
3498225e33e479e95bac6f3aec5fef04f23abddd 10-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move SeparateLayers into a member function

Instead of passing a bunch of member data to a static function, make
SeparateLayers a member of DrmDisplayComposition. This will be simplified
further once the Planner interface is implemented.

BUG=b/28117135
TEST=Tested on ryu

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ia4e15aa20b6dc14b044ee1dec7b5fce514278be7
rmdisplaycomposition.cpp
rmdisplaycomposition.h
7379ecd4c3ebb25e3ce730e4b2e51d2ad46d3a51 11-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Now that DrmCompositionPlane is classified, move the type into it
as a subclass.

BUG=b/28117135
TEST=Tested on ryu

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I774f477e75b3a2e2916c5d98931730dac46d3877
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
9b70717071da6b5c098d2363a350d1f0f2333423 11-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use a vector for composition source_layers

Instead of a 1:1 mapping of layer:plane, use a vector to store
source layers for a composition plane. This will allow us to
represent squash compositions more easily by adding all source
layers to the vector.

This should also facilitate hardware which allows multiple fbs per plane.

BUG=b/28117135
TEST=Tested on ryu

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I5d4bfc6e9da022eaab047f948cc874d6a8a25746
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
07aa8cc9f7a3905e62f71b0be8e0129c69ef81e0 11-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add type to DrmCompositionPlane

Instead of encoding the plane/composition type in source_layer,
move it to its own explicit type. This will allow us to expand
source_layer to include more than one layer.

BUG=b/28117135
TEST=compiles and runs on smaug

Change-Id: I19b1ed8e395347bbefb0fb6a0ab02d6ac0e5c1c1
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
717a44be8f9f9282e6708b78cb3f2bbc8de7cb3a 11-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix up some printf warnings and a clang-style nit

BUG=None
TEST=Compiles

Change-Id: Ie95aad60b225784c36d411ec16a34ff32ea8acc6
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmplane.cpp
rmresources.cpp
latform.h
0f27fb9ece1707c76e70c35b5d757609801eef0e 10-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update platform log tags

So they now say "platform" instead of "importer"

BUG=b/28117135
TEST=None

Change-Id: I7fe6bc7d31ca448ef561d78f7806fa487eb612f6
Signed-off-by: Sean Paul <seanpaul@chromium.org>
latformdrmgeneric.cpp
latformnv.cpp
5b978756df6c94e0d263063a569716b099367171 22-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move drmgeneric and nv importer cpp files

Final step in the platform renaming, move the drmgeneric and
nvimporter files to their new place.

BUG=b/28117135
TEST=compiles

Change-Id: Ied60a82526f42f13a64192373cb49f3dfffef74f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
rmgenericimporter.cpp
vimporter.cpp
latformdrmgeneric.cpp
latformnv.cpp
e65d1be1f8d8f770ccb44ec119514cc6df8d89bc 21-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Update the platform precompiler guards

Rename the guards in the platform headers to match their
filename. This wasn't done in the previous commits so the
diff remained clean.

BUG=b/28117135
TEST=compiles

Change-Id: Ie495bd8e00784da1d48f200c6981f23448b7c6d2
Signed-off-by: Sean Paul <seanpaul@chromium.org>
latform.h
latformdrmgeneric.h
latformnv.h
070a47e9ffa14edd1f6a8f9e9209840d421c7e33 21-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Move platform-specific importer headers

Now that importer.h is platform.h, move the platform-specific
headers to match.

BUG=b/28117135
TEST=compiles

Change-Id: I08563505b77529257892841845ef4117d2992bb0
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmgenericimporter.cpp
rmgenericimporter.h
vimporter.cpp
vimporter.h
latformdrmgeneric.h
latformnv.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>
rmcomposition.h
rmcompositor.h
rmdisplaycomposition.h
rmgenericimporter.cpp
rmgenericimporter.h
wcomposer.cpp
mporter.h
vimporter.cpp
vimporter.h
latform.h
6275fb70c2a85245bd0468be315b13eeb8223c04 04-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Remove unused variable

BUG=None
TEST=Compiles

Change-Id: I8a003dc14828ed0c10fd161b00d1bc1c5069431f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
0d0981a0bc77ae09ccb115f778d7a157d16dbb3c 10-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix protected layer hole punch

The old code didn't dereference the layer index from the
bitmask which caused it to subtract layers it shouldn't
have. In order to do this right, we need to look at the
layer index corresponding to the bit in the id_set to
ensure we're excluding the correct layers.

BUG=None
TEST=Precomposition doesn't draw over dedicated layers

Change-Id: I8531e1ef3b2beb4674041145e2b38ce4b3dbe346
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
eparate_rects.h
7de353c98079f840d7090d7541b2307ffc9da827 03-May-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Use linear scaling instead of nearest neighbor

So scaled layer transitions between hw plane and gl plane look better.

BUG=b/28431632
TEST=Tested on low resolution paused YouTube video

Change-Id: I507722c28c5b8ec4e8d16ae436a04afc8cffaa0f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
lworker.cpp
8c0a47a5f13d2969178c079ba83758a6df4cda98 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use Planner interface to provision planes
am: aa18d918e2

* commit 'aa18d918e24d63b650791fe021f41761d8a33d3b':
drm_hwcomposer: Use Planner interface to provision planes

Change-Id: I398ddfefd96008093c293419c0b9f001dd0fd81f
5563c4be83b752aaf90c09f18c90a33293bbc791 17-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce Planner interface
am: 4c4646e7b8

* commit '4c4646e7b8a5cffdc8a2d53374b5340c07d14012':
drm_hwcomposer: Introduce Planner interface

Change-Id: Ia44346289bd7a3b6501ee4430425c1f989de5b95
aa18d918e24d63b650791fe021f41761d8a33d3b 12-May-2016 Sean Paul <seanpaul@chromium.org> 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
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
4c4646e7b8a5cffdc8a2d53374b5340c07d14012 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce Planner interface

This patch introduces a new Planner interface to the platform specific
code. This new interface will allow for platform-specific plane provisioning
decisions to cover various hardware quirks.

Each platform must provide a Planner with one or more PlanStage steps. These
stages are run in order and are used to move the given layers onto composition
planes.

There are two generic stages provided by the platform:
- Protected: Places layers on dedicated planes
- Greedy: Provisions as many layers to planes and sticks the rest in precomp

There is also one platform-specific stage included:
- ProtectedRotated: Places any protected & rotated layer on the primary plane

BUG=b/28117135
TEST=Tested on ryu with a variety of window layouts

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ib6062ab4779166753afaf122450bb63126bf9161
ndroid.mk
rmdisplaycomposition.h
latform.cpp
latform.h
latformdrmgeneric.cpp
latformnv.cpp
latformnv.h
4f3f9f5f3c8777a3441bdf64e756c38734c97a94 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t use Plan() in SquashAll am: 4f4ef69e53 am: fb4ff9c8fd am: 8077df37e9 am: ea7c765bac
am: 4253821c46

* commit '4253821c46bcc17ba06e32a10f02d8515990358d':
drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: I8c5fc95db11ac80d44c5d5e562252f0a25bf3f8b
1cce76be4cfac7a5717dfc41672236b188400068 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move SeparateLayers into a member function am: 3960cddcd1 am: 0b3ee1b416 am: 75a789c18d am: fffaf4cb92
am: a9ff2070b4

* commit 'a9ff2070b4d63a09d9a2de41ff3cfdaa1be258ca':
drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: Id83b10af0441df605a6c44930e037d3070455b24
780b6ef623a4518c6afed944d28da777cb7b2619 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: bbe39db913 am: fdd249e3f6 am: cfe9a2d4f6 am: e9c9adaf8f
am: 6d0f45e8aa

* commit '6d0f45e8aadda98ac9fa38b1c3785c36e7aebf22':
drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: Ifea7ab194eac4b4324cde4ae1550c5672607eca4
6fa761c5faa64f3db804d6bfefa0f21a6183944f 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use a vector for composition source_layers am: ca699be0bc am: da63e0dabf am: 1f436211cd am: d1659a2794
am: c6d20cc5d4

* commit 'c6d20cc5d4f8f4a5f1950568cedb77edc8075100':
drm_hwcomposer: Use a vector for composition source_layers

Change-Id: I80b1e0d06de21e15702e6e18a79aa3a837aceedc
5fe9051ded556c6fdce73daa390dd798d7744f7f 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add type to DrmCompositionPlane am: 39b3784628 am: dc3f0449e7 am: c332966611 am: d2e9e0183d
am: d5e99e1b7a

* commit 'd5e99e1b7abfa08fea6ad96f3bcee0e4e1e0ab71':
drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: Iaa7be934591e6bccc621d48bea8a06fa2b696877
d6f1c52f2771e195525968455cf143a17fe79080 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: f741c672ba am: d5dc59dcd4 am: 8b050a10dc am: 84e588b03e
am: 94bc7ca0e8

* commit '94bc7ca0e899135b1f2b8f60c4641e49e6ffe37d':
drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: I30c25838f92b1c10bbd0ede8e8cf67ab258f9099
4253821c46bcc17ba06e32a10f02d8515990358d 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t use Plan() in SquashAll am: 4f4ef69e53 am: fb4ff9c8fd am: 8077df37e9
am: ea7c765bac

* commit 'ea7c765bac3ed4564348f627d57d309beab54971':
drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: Id1ed8d22199659a1d07cff2855f7bd2e60c1ede2
a9ff2070b4d63a09d9a2de41ff3cfdaa1be258ca 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move SeparateLayers into a member function am: 3960cddcd1 am: 0b3ee1b416 am: 75a789c18d
am: fffaf4cb92

* commit 'fffaf4cb920988d6a8a99bcf8780425cf72e33f3':
drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: I002781354447e6bf503b0fbad0f0a4db0eff7805
6d0f45e8aadda98ac9fa38b1c3785c36e7aebf22 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: bbe39db913 am: fdd249e3f6 am: cfe9a2d4f6
am: e9c9adaf8f

* commit 'e9c9adaf8f114e9325a8cd569cd3536ea79a3ec9':
drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: Ifbe194bc2fd88fb5542c8d509693c2717f044245
c6d20cc5d4f8f4a5f1950568cedb77edc8075100 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use a vector for composition source_layers am: ca699be0bc am: da63e0dabf am: 1f436211cd
am: d1659a2794

* commit 'd1659a27940a9fc40aa56333f4811afc6257eda7':
drm_hwcomposer: Use a vector for composition source_layers

Change-Id: I637d0d236b80891312d564203ead8db4ff8ab25a
d5e99e1b7abfa08fea6ad96f3bcee0e4e1e0ab71 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add type to DrmCompositionPlane am: 39b3784628 am: dc3f0449e7 am: c332966611
am: d2e9e0183d

* commit 'd2e9e0183d37a2c073ce6b86ebabb1115f679afb':
drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: Iab9de74580905626a1d1a81061d26d8663fb8b49
94bc7ca0e899135b1f2b8f60c4641e49e6ffe37d 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: f741c672ba am: d5dc59dcd4 am: 8b050a10dc
am: 84e588b03e

* commit '84e588b03e173314d765dfbebe5899288fcd85b1':
drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: Ib69e0b79f783b4b1390f9a24ef4e7ad3cb7f5be3
ea7c765bac3ed4564348f627d57d309beab54971 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t use Plan() in SquashAll am: 4f4ef69e53 am: fb4ff9c8fd
am: 8077df37e9

* commit '8077df37e92953726f35a61659328358e28b0240':
drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: I63e38e8297065507029d6a99971e92a505e522dc
fffaf4cb920988d6a8a99bcf8780425cf72e33f3 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move SeparateLayers into a member function am: 3960cddcd1 am: 0b3ee1b416
am: 75a789c18d

* commit '75a789c18dfac174affcebc2d34234e27d27a14a':
drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: Ie10ab5c21e6ee60a1d2d9133e0a96ebb96d0d42c
e9c9adaf8f114e9325a8cd569cd3536ea79a3ec9 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: bbe39db913 am: fdd249e3f6
am: cfe9a2d4f6

* commit 'cfe9a2d4f62f72f32aad3c7710b295941166303a':
drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: I3827269e515a75a23360c90b5d439ed11c5a2be0
d1659a27940a9fc40aa56333f4811afc6257eda7 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use a vector for composition source_layers am: ca699be0bc am: da63e0dabf
am: 1f436211cd

* commit '1f436211cd0579fb356ca6eecea3a0552aad3498':
drm_hwcomposer: Use a vector for composition source_layers

Change-Id: I418506010476bdd1b1f2c52f6dccd527e7a6cc9b
d2e9e0183d37a2c073ce6b86ebabb1115f679afb 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add type to DrmCompositionPlane am: 39b3784628 am: dc3f0449e7
am: c332966611

* commit 'c33296661133c6e46bfdcd5aea2754741cee193c':
drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: I2bedffca8a4904f09d3452c231146ee3bea787e3
84e588b03e173314d765dfbebe5899288fcd85b1 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: f741c672ba am: d5dc59dcd4
am: 8b050a10dc

* commit '8b050a10dc26b829901ff7f15c3b2545138876d6':
drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: If0bba6929fafa81e20ec080be4ea6089505ecc3f
8077df37e92953726f35a61659328358e28b0240 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t use Plan() in SquashAll am: 4f4ef69e53
am: fb4ff9c8fd

* commit 'fb4ff9c8fd02b0dbc40035c2cea7cebe50d014b6':
drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: I8897b3c19cd96f2f2dbd3c03eee4235483dcd11d
75a789c18dfac174affcebc2d34234e27d27a14a 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move SeparateLayers into a member function am: 3960cddcd1
am: 0b3ee1b416

* commit '0b3ee1b416d5a08eb8dbc62c928fd6a9f3199443':
drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: I8dc3715a04c13e7857a9c701a7b2afe4766582b0
cfe9a2d4f62f72f32aad3c7710b295941166303a 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane am: bbe39db913
am: fdd249e3f6

* commit 'fdd249e3f68b738cea8c8953e486ded9134f5363':
drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: Ie2bb9a1c6e9c9e236117fe338919c2ced774f717
1f436211cd0579fb356ca6eecea3a0552aad3498 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use a vector for composition source_layers am: ca699be0bc
am: da63e0dabf

* commit 'da63e0dabf4d8aa65d359119e99ec515727119fc':
drm_hwcomposer: Use a vector for composition source_layers

Change-Id: I54fde51dd03c4966c9d1dce66c04f33af2baae2e
c33296661133c6e46bfdcd5aea2754741cee193c 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add type to DrmCompositionPlane am: 39b3784628
am: dc3f0449e7

* commit 'dc3f0449e76da12135d9253b3ddf33d823c19f07':
drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: I47a6bcfcc7322fb2812c89c5c6f1147899b9460b
8b050a10dc26b829901ff7f15c3b2545138876d6 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up some printf warnings and a clang-style nit am: f741c672ba
am: d5dc59dcd4

* commit 'd5dc59dcd42844e130ba63e7af1ec7b5fc43ca2d':
drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: I311dc32973c8210f61d90abc54b13a4a4613c781
fb4ff9c8fd02b0dbc40035c2cea7cebe50d014b6 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t use Plan() in SquashAll
am: 4f4ef69e53

* commit '4f4ef69e539c8f0c7352f12247b7551936736d04':
drm_hwcomposer: Don't use Plan() in SquashAll

Change-Id: I1e64e50d46810e29659c9d90cd443256bea074a5
0b3ee1b416d5a08eb8dbc62c928fd6a9f3199443 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move SeparateLayers into a member function
am: 3960cddcd1

* commit '3960cddcd115201392efc6ada9a939e20769732d':
drm_hwcomposer: Move SeparateLayers into a member function

Change-Id: Ie16d88476d18e970f241609723a7df7a8308e60f
fdd249e3f68b738cea8c8953e486ded9134f5363 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane
am: bbe39db913

* commit 'bbe39db91385424991ce86f333cc6c2ebe871a66':
drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Change-Id: Ic6efa9bdaadcc70df5c8e3fae925630c0bc629d2
da63e0dabf4d8aa65d359119e99ec515727119fc 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use a vector for composition source_layers
am: ca699be0bc

* commit 'ca699be0bcc162c8748abb63cd4f7158733b1466':
drm_hwcomposer: Use a vector for composition source_layers

Change-Id: Ia7cf9dd6ad688088072b9b8b145a1edfe3089bc7
dc3f0449e76da12135d9253b3ddf33d823c19f07 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add type to DrmCompositionPlane
am: 39b3784628

* commit '39b3784628eb4169b46e71b30c98daf83c93bb8e':
drm_hwcomposer: Add type to DrmCompositionPlane

Change-Id: I5c3d46ba374ce85702246b236748f2029167e502
d5dc59dcd42844e130ba63e7af1ec7b5fc43ca2d 16-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up some printf warnings and a clang-style nit
am: f741c672ba

* commit 'f741c672bade253f172c642049a3b8f25d3bcb22':
drm_hwcomposer: Fix up some printf warnings and a clang-style nit

Change-Id: I6887e7db18f9b0a7393f7899bb3fdbceb3537e43
4f4ef69e539c8f0c7352f12247b7551936736d04 04-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don't use Plan() in SquashAll

Simplify the SquashAll() function by generating the composition
without using Plan(). This allows us to specify exactly what we
want on the screen without involving the normal plane provisioning
code.

BUG=b/28117135
TEST=Tested on ryu, squashing still works

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ieec9c323941e2a80252b33d14563c4d218d38dfb
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
3960cddcd115201392efc6ada9a939e20769732d 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move SeparateLayers into a member function

Instead of passing a bunch of member data to a static function, make
SeparateLayers a member of DrmDisplayComposition. This will be simplified
further once the Planner interface is implemented.

BUG=b/28117135
TEST=Tested on ryu

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ia4e15aa20b6dc14b044ee1dec7b5fce514278be7
rmdisplaycomposition.cpp
rmdisplaycomposition.h
bbe39db91385424991ce86f333cc6c2ebe871a66 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move DrmCompositionPlaneType into DrmCompositionPlane

Now that DrmCompositionPlane is classified, move the type into it
as a subclass.

BUG=b/28117135
TEST=Tested on ryu

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I774f477e75b3a2e2916c5d98931730dac46d3877
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
ca699be0bcc162c8748abb63cd4f7158733b1466 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use a vector for composition source_layers

Instead of a 1:1 mapping of layer:plane, use a vector to store
source layers for a composition plane. This will allow us to
represent squash compositions more easily by adding all source
layers to the vector.

This should also facilitate hardware which allows multiple fbs per plane.

BUG=b/28117135
TEST=Tested on ryu

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I5d4bfc6e9da022eaab047f948cc874d6a8a25746
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
39b3784628eb4169b46e71b30c98daf83c93bb8e 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add type to DrmCompositionPlane

Instead of encoding the plane/composition type in source_layer,
move it to its own explicit type. This will allow us to expand
source_layer to include more than one layer.

BUG=b/28117135
TEST=compiles and runs on smaug

Change-Id: I19b1ed8e395347bbefb0fb6a0ab02d6ac0e5c1c1
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
700292e3e7ab39e04c554b036d44c68dd1333a8b 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update platform log tags am: 0aee6b2afa am: f229769b54 am: 263c2bd00d am: 6d1b12d1f0
am: 528400998e

* commit '528400998ecfd16461d87558c339511a2d069d38':
drm_hwcomposer: Update platform log tags

Change-Id: I0d9a89083bde407101726851d450654fb6d60141
9708874b58c6ec437d3c24f66cc2f14d5758fc7b 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move drmgeneric and nv importer cpp files am: b0acc54a88 am: 97422aef80 am: 33e61d6b24 am: 0401691e0f
am: 4c719e570a

* commit '4c719e570a4b7f578dc907279375cd239d8598ff':
drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: I3db04b2bf67b5c36bae010445cb4426d420972f9
4f6c3042a614b97a75430e648b646bf090ab93cf 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update the platform precompiler guards am: 5d8acfc2f9 am: d56fde285d am: d3d4615a56 am: cdfdbb3852
am: 856c913edb

* commit '856c913edb6bd5d86dc218ca3ac70a2383f07cf5':
drm_hwcomposer: Update the platform precompiler guards

Change-Id: I7145f1bc1dd4ad0f7e20ca6bc7b881b8e18609f2
e746706830df54691fa5948a766219f052ba4d28 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move platform-specific importer headers am: ea045b79f0 am: 5b09d0bf38 am: bf46093560 am: ee3668df15
am: ffd1800c70

* commit 'ffd1800c70ae90872e135877611c083fd7af5b37':
drm_hwcomposer: Move platform-specific importer headers

Change-Id: I12844092431b475f17d3d4a5a7d11eb11266643d
00f96022a0eb33f5111ac9d6f422cdc89c639a44 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move importer.h to platform.h am: 637699644d am: 752d2a9a29 am: 67cbb0c6fc am: c26a69e6d0
am: 611073b18b

* commit '611073b18b112a1991b8897fdaa0e98c6948725d':
drm_hwcomposer: Move importer.h to platform.h

Change-Id: I42cc14ed6088d1563a888bb0bc7634aad845ee6d
c4387ac1521011cf7223f95503dcf39ea864a03f 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove unused variable am: 84b8fe0eeb am: ed36e8fd28 am: 87c015ffde am: d32773d643
am: 563e4fc475

* commit '563e4fc4751a03614bce449c6da316af35d0ce13':
drm_hwcomposer: Remove unused variable

Change-Id: Icd1e334390d62ed19f0158f09c96d2f7ac31bb5f
1d53ce41c83a2367c8bfc400bd66cec677d770a5 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix protected layer hole punch am: f1d2579822 am: eaab1690ea am: 437f03e1ff am: 2b4d3f20e1
am: d3962e5b19

* commit 'd3962e5b193834b717162956aa66d780be5cd4a4':
drm_hwcomposer: Fix protected layer hole punch

Change-Id: I15948628656e275f4585304250a2bb888ddeb2cb
528400998ecfd16461d87558c339511a2d069d38 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update platform log tags am: 0aee6b2afa am: f229769b54 am: 263c2bd00d
am: 6d1b12d1f0

* commit '6d1b12d1f04b78da5cc478f9185ef14c03a80cd1':
drm_hwcomposer: Update platform log tags

Change-Id: I5f75ccf93267149b0074c2243e1fe37a32aead4e
4c719e570a4b7f578dc907279375cd239d8598ff 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move drmgeneric and nv importer cpp files am: b0acc54a88 am: 97422aef80 am: 33e61d6b24
am: 0401691e0f

* commit '0401691e0f5dd104ff934d18042d554b40f3f23f':
drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: Ia72b547f37d711f1566afc579e1e30bdcd7811ac
856c913edb6bd5d86dc218ca3ac70a2383f07cf5 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update the platform precompiler guards am: 5d8acfc2f9 am: d56fde285d am: d3d4615a56
am: cdfdbb3852

* commit 'cdfdbb3852a0a3950cc613d00da87ef8eb67832a':
drm_hwcomposer: Update the platform precompiler guards

Change-Id: I8d0cd4a1baadb065cbaf45add8d851341ac90a65
ffd1800c70ae90872e135877611c083fd7af5b37 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move platform-specific importer headers am: ea045b79f0 am: 5b09d0bf38 am: bf46093560
am: ee3668df15

* commit 'ee3668df15c6ed24a351d92f92e6c066b5c7d19a':
drm_hwcomposer: Move platform-specific importer headers

Change-Id: Ia6168b203d82acd6d9b3e9fbe2c9fc60192a5e76
611073b18b112a1991b8897fdaa0e98c6948725d 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move importer.h to platform.h am: 637699644d am: 752d2a9a29 am: 67cbb0c6fc
am: c26a69e6d0

* commit 'c26a69e6d006a6e1c55797da6107b150977803ed':
drm_hwcomposer: Move importer.h to platform.h

Change-Id: Ida68e93eed60207155451c59fb3bbf8e302ab919
563e4fc4751a03614bce449c6da316af35d0ce13 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove unused variable am: 84b8fe0eeb am: ed36e8fd28 am: 87c015ffde
am: d32773d643

* commit 'd32773d6439f2bd7d3b20cf1e06ef023542de630':
drm_hwcomposer: Remove unused variable

Change-Id: I682a240fead7d2b92beedd34465d32b9f4cd79e7
d3962e5b193834b717162956aa66d780be5cd4a4 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix protected layer hole punch am: f1d2579822 am: eaab1690ea am: 437f03e1ff
am: 2b4d3f20e1

* commit '2b4d3f20e12ea0cd8e7016048e80383e07f3a9b3':
drm_hwcomposer: Fix protected layer hole punch

Change-Id: I45f6effb8d0b23fd0728473ebbfe133afaa47b21
6d1b12d1f04b78da5cc478f9185ef14c03a80cd1 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update platform log tags am: 0aee6b2afa am: f229769b54
am: 263c2bd00d

* commit '263c2bd00db580ba6a33b45d1e19bf5dfaa42bc8':
drm_hwcomposer: Update platform log tags

Change-Id: I15c721cf4bbe27ca6a4559baa0a12a42933684fd
0401691e0f5dd104ff934d18042d554b40f3f23f 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move drmgeneric and nv importer cpp files am: b0acc54a88 am: 97422aef80
am: 33e61d6b24

* commit '33e61d6b24179fb0a4a4e49f090bf7d83efe7614':
drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: Ie99ce35a432b9ec5d561bdddfbc5014ce68499f3
cdfdbb3852a0a3950cc613d00da87ef8eb67832a 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update the platform precompiler guards am: 5d8acfc2f9 am: d56fde285d
am: d3d4615a56

* commit 'd3d4615a5697cb53bd37c448cfff7c7b2cb0e27d':
drm_hwcomposer: Update the platform precompiler guards

Change-Id: I7d16284c129d77b5641ad40014aee447fd8bfd25
ee3668df15c6ed24a351d92f92e6c066b5c7d19a 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move platform-specific importer headers am: ea045b79f0 am: 5b09d0bf38
am: bf46093560

* commit 'bf460935602baf8daf9f8251138ed14221db614d':
drm_hwcomposer: Move platform-specific importer headers

Change-Id: I6cfac3eaf80a1199e052afc7d3c8b3101743f51d
c26a69e6d006a6e1c55797da6107b150977803ed 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move importer.h to platform.h am: 637699644d am: 752d2a9a29
am: 67cbb0c6fc

* commit '67cbb0c6fc687ca6bd57da3595c7af64152c175a':
drm_hwcomposer: Move importer.h to platform.h

Change-Id: I98cdc6d2782fc96e8c1178b9fee1718faeda998a
d32773d6439f2bd7d3b20cf1e06ef023542de630 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove unused variable am: 84b8fe0eeb am: ed36e8fd28
am: 87c015ffde

* commit '87c015ffde7ad71d3267c5d91fcc2220df2b348c':
drm_hwcomposer: Remove unused variable

Change-Id: Iab1a2162b94fd2609b7824cad494541ad4f0ff74
2b4d3f20e12ea0cd8e7016048e80383e07f3a9b3 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix protected layer hole punch am: f1d2579822 am: eaab1690ea
am: 437f03e1ff

* commit '437f03e1ffaba61cddee057395166b5e592968bc':
drm_hwcomposer: Fix protected layer hole punch

Change-Id: I529e63be8e518c8d7c7df259815694d837a785e1
263c2bd00db580ba6a33b45d1e19bf5dfaa42bc8 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update platform log tags am: 0aee6b2afa
am: f229769b54

* commit 'f229769b545cbb39b3fbeee961bda29c429db272':
drm_hwcomposer: Update platform log tags

Change-Id: I5d083ffda9195819f03a28dd2f168750166a8ef1
33e61d6b24179fb0a4a4e49f090bf7d83efe7614 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move drmgeneric and nv importer cpp files am: b0acc54a88
am: 97422aef80

* commit '97422aef805bee62c4f4093680ec62e9058e1a93':
drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: Ie2e76b5139938d97294d8fa3ce577fc0930502ac
d3d4615a5697cb53bd37c448cfff7c7b2cb0e27d 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update the platform precompiler guards am: 5d8acfc2f9
am: d56fde285d

* commit 'd56fde285d06310fe33deb992cbd5543b778950d':
drm_hwcomposer: Update the platform precompiler guards

Change-Id: I78ba9acdffe6bf349a457f11317a4c4f238475d0
bf460935602baf8daf9f8251138ed14221db614d 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move platform-specific importer headers am: ea045b79f0
am: 5b09d0bf38

* commit '5b09d0bf38c4500bf02f8d32c4567dbe9b335ca5':
drm_hwcomposer: Move platform-specific importer headers

Change-Id: I1fd7997d1c0716ce89a46996648ba6a4aa55a1c3
67cbb0c6fc687ca6bd57da3595c7af64152c175a 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move importer.h to platform.h am: 637699644d
am: 752d2a9a29

* commit '752d2a9a2916d98d7411fe6f78933d7b1e2a2b06':
drm_hwcomposer: Move importer.h to platform.h

Change-Id: Ibae68cb0895497f7e1dc817d442740dc856598e8
87c015ffde7ad71d3267c5d91fcc2220df2b348c 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove unused variable am: 84b8fe0eeb
am: ed36e8fd28

* commit 'ed36e8fd2860c5f3cf4288d1ebca47e8436c8471':
drm_hwcomposer: Remove unused variable

Change-Id: Ia0ef85823876ce6d657e87c4e654312cade9534d
437f03e1ffaba61cddee057395166b5e592968bc 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix protected layer hole punch am: f1d2579822
am: eaab1690ea

* commit 'eaab1690ea97137a28c149fbd29f4424719b9697':
drm_hwcomposer: Fix protected layer hole punch

Change-Id: I97089bb5d6dc31793669c22bd8ca63dd2dbc9efb
f229769b545cbb39b3fbeee961bda29c429db272 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update platform log tags
am: 0aee6b2afa

* commit '0aee6b2afa33652722641cbf3d4cc1689e1baa1b':
drm_hwcomposer: Update platform log tags

Change-Id: I370b7973fd0afd6b64bcf18107d3cb0f48b6f3e4
f741c672bade253f172c642049a3b8f25d3bcb22 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up some printf warnings and a clang-style nit

BUG=None
TEST=Compiles

Change-Id: Ie95aad60b225784c36d411ec16a34ff32ea8acc6
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmplane.cpp
rmresources.cpp
latform.h
97422aef805bee62c4f4093680ec62e9058e1a93 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move drmgeneric and nv importer cpp files
am: b0acc54a88

* commit 'b0acc54a88ae3a970da48fba9ba0e1dfc5116132':
drm_hwcomposer: Move drmgeneric and nv importer cpp files

Change-Id: I7eef14d9c7e46e5725dc6fe1ab7f6bcc208114de
d56fde285d06310fe33deb992cbd5543b778950d 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update the platform precompiler guards
am: 5d8acfc2f9

* commit '5d8acfc2f9cd9a4f87ba6db4948a43783feeedc0':
drm_hwcomposer: Update the platform precompiler guards

Change-Id: I8aac3e2ad8e57878eb13cacef42a876fcf20eff4
5b09d0bf38c4500bf02f8d32c4567dbe9b335ca5 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move platform-specific importer headers
am: ea045b79f0

* commit 'ea045b79f04eb8ce460c8396f7a56778cc382c9c':
drm_hwcomposer: Move platform-specific importer headers

Change-Id: I58fe7600284e5de4baef04d15aedfda73b175272
752d2a9a2916d98d7411fe6f78933d7b1e2a2b06 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move importer.h to platform.h
am: 637699644d

* commit '637699644d49ef96e2243ddab67ee6a795800b1b':
drm_hwcomposer: Move importer.h to platform.h

Change-Id: Ic74b600ce0d496a143ad903f9c2b4eef8e717b73
ed36e8fd2860c5f3cf4288d1ebca47e8436c8471 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove unused variable
am: 84b8fe0eeb

* commit '84b8fe0eebaa9775212a49b7576bbef847fe594d':
drm_hwcomposer: Remove unused variable

Change-Id: Iab4432147cc01a8d629e1b5dae9f4590234bafff
eaab1690ea97137a28c149fbd29f4424719b9697 11-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix protected layer hole punch
am: f1d2579822

* commit 'f1d2579822fcce9bfff996d8bd95d81136459b59':
drm_hwcomposer: Fix protected layer hole punch

Change-Id: I36a69d81c480564fd66f05c530189112cd8c0db9
2a658ae687a91ee8d2e74aacd85375b1ca2c6d1a 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 6b9647f3d6 am: a9bd947fb4 am: b4307b84b0 am: 3aa3d6632b
am: 7abf5740ef

* commit '7abf5740ef8d2ad1bbe77a3003390b11c760fda0':
drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I9bdfbba2d18c906302795d681d6fd5cbf2493e66
7abf5740ef8d2ad1bbe77a3003390b11c760fda0 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 6b9647f3d6 am: a9bd947fb4 am: b4307b84b0
am: 3aa3d6632b

* commit '3aa3d6632bf28fdeec6c4acd6f97a8844740510c':
drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: Id2182a32399ec723eb31fcde4f327994cb4bd129
3aa3d6632bf28fdeec6c4acd6f97a8844740510c 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 6b9647f3d6 am: a9bd947fb4
am: b4307b84b0

* commit 'b4307b84b0d02381a00320e5149ee4cfd1a94264':
drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I5934a3ef18a8a5bcf9569029ad984df400dee303
b4307b84b0d02381a00320e5149ee4cfd1a94264 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use linear scaling instead of nearest neighbor am: 6b9647f3d6
am: a9bd947fb4

* commit 'a9bd947fb423239e05239684ec8039f3035fa5ba':
drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: Iaf819d681ba2da211db7982362fec0489b6ee0ec
a9bd947fb423239e05239684ec8039f3035fa5ba 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use linear scaling instead of nearest neighbor
am: 6b9647f3d6

* commit '6b9647f3d666fad92985d0b6cef7a5b199a71687':
drm_hwcomposer: Use linear scaling instead of nearest neighbor

Change-Id: I651cf76ce889ff05d94bcf4d76ad337843e56663
0aee6b2afa33652722641cbf3d4cc1689e1baa1b 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update platform log tags

So they now say "platform" instead of "importer"

BUG=b/28117135
TEST=None

Change-Id: I7fe6bc7d31ca448ef561d78f7806fa487eb612f6
Signed-off-by: Sean Paul <seanpaul@chromium.org>
latformdrmgeneric.cpp
latformnv.cpp
b0acc54a88ae3a970da48fba9ba0e1dfc5116132 22-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move drmgeneric and nv importer cpp files

Final step in the platform renaming, move the drmgeneric and
nvimporter files to their new place.

BUG=b/28117135
TEST=compiles

Change-Id: Ied60a82526f42f13a64192373cb49f3dfffef74f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
rmgenericimporter.cpp
vimporter.cpp
latformdrmgeneric.cpp
latformnv.cpp
5d8acfc2f9cd9a4f87ba6db4948a43783feeedc0 21-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update the platform precompiler guards

Rename the guards in the platform headers to match their
filename. This wasn't done in the previous commits so the
diff remained clean.

BUG=b/28117135
TEST=compiles

Change-Id: Ie495bd8e00784da1d48f200c6981f23448b7c6d2
Signed-off-by: Sean Paul <seanpaul@chromium.org>
latform.h
latformdrmgeneric.h
latformnv.h
ea045b79f04eb8ce460c8396f7a56778cc382c9c 21-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move platform-specific importer headers

Now that importer.h is platform.h, move the platform-specific
headers to match.

BUG=b/28117135
TEST=compiles

Change-Id: I08563505b77529257892841845ef4117d2992bb0
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmgenericimporter.cpp
rmgenericimporter.h
vimporter.cpp
vimporter.h
latformdrmgeneric.h
latformnv.h
637699644d49ef96e2243ddab67ee6a795800b1b 21-Apr-2016 Sean Paul <seanpaul@chromium.org> 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>
rmcomposition.h
rmcompositor.h
rmdisplaycomposition.h
rmgenericimporter.cpp
rmgenericimporter.h
wcomposer.cpp
mporter.h
vimporter.cpp
vimporter.h
latform.h
84b8fe0eebaa9775212a49b7576bbef847fe594d 04-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove unused variable

BUG=None
TEST=Compiles

Change-Id: I8a003dc14828ed0c10fd161b00d1bc1c5069431f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
f1d2579822fcce9bfff996d8bd95d81136459b59 10-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix protected layer hole punch

The old code didn't dereference the layer index from the
bitmask which caused it to subtract layers it shouldn't
have. In order to do this right, we need to look at the
layer index corresponding to the bit in the id_set to
ensure we're excluding the correct layers.

BUG=None
TEST=Precomposition doesn't draw over dedicated layers

Change-Id: I8531e1ef3b2beb4674041145e2b38ce4b3dbe346
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
eparate_rects.h
6b9647f3d666fad92985d0b6cef7a5b199a71687 03-May-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use linear scaling instead of nearest neighbor

So scaled layer transitions between hw plane and gl plane look better.

BUG=b/28431632
TEST=Tested on low resolution paused YouTube video

Change-Id: I507722c28c5b8ec4e8d16ae436a04afc8cffaa0f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
lworker.cpp
ace2f3ce6ff316dd5d18f7523b521397b5406607 26-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t composite over protected layers am: 0478f79 am: 1545252
am: f05a5a4 -s ours

* commit 'f05a5a461be420713df89862d1706b0db1ff3c54':

Change-Id: I9927a356d2c56a768d2fb377389a23c2ca7f2a09
f05a5a461be420713df89862d1706b0db1ff3c54 26-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t composite over protected layers am: 0478f79
am: 1545252

* commit '1545252d1243071414e70b203835a6eed4f4fd16':

Change-Id: I634351e2d1d8ca43a4a131ef07b0056c34a4105d
92858090f9d093d6717360277173343d51d6bd01 26-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t composite over protected layers am: 0478f79 am: f69e046 -s ours
am: 1e8be09 -s ours

* commit '1e8be097b1add084d83cb78ba64f69398fc838fc':
DO NOT MERGE: drm_hwcomposer: Don't composite over protected layers

Change-Id: Ia7657884524400212b5599909c4cb2c631b4c302
1e8be097b1add084d83cb78ba64f69398fc838fc 26-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t composite over protected layers am: 0478f79
am: f69e046 -s ours

* commit 'f69e046c43c55bfc11fdb7a7a6b43bbe2b40dc0b':
DO NOT MERGE: drm_hwcomposer: Don't composite over protected layers

Change-Id: Ice48704a1077f258c351c791e735bb06ba3a4885
1545252d1243071414e70b203835a6eed4f4fd16 26-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t composite over protected layers
am: 0478f79

* commit '0478f7914c65212ebef37fac5533b30ac2e462c0':
DO NOT MERGE: drm_hwcomposer: Don't composite over protected layers

Change-Id: I510bdf8572605d7b9b7518b50947d46a31a8ba73
f69e046c43c55bfc11fdb7a7a6b43bbe2b40dc0b 26-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don\'t composite over protected layers
am: 0478f79

* commit '0478f7914c65212ebef37fac5533b30ac2e462c0':
DO NOT MERGE: drm_hwcomposer: Don't composite over protected layers

Change-Id: I33000d0d17593d684a7d914f75fce0bc24081257
0478f7914c65212ebef37fac5533b30ac2e462c0 18-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Don't composite over protected layers

This patch changes two things with respect to protected layers:

1- It provisions the HW plane in the correct position. ie: if
the background layer is slated for a HW plane, it will be
placed on the primary layer and the protected layer will be
placed on top of it.
2- It punches a hole through the precomposite and squash layers
such that when they are placed on top of the protected layer,
they do not obstruct it.

BUG=b/27502957
TEST=Tested on smaug with multi-window with a variety of different
layouts and visible layers

Change-Id: Ie30939f2bb750dbe3faa558ddb094b677f41f45e
Signed-off-by: Sean Paul <seanpaul@chromium.org>
(cherry picked from commit 8a628b9d22f778fcb4dc445d677f6f028667c885)
rmdisplaycomposition.cpp
eparate_rects.h
9bdc1ed1d5f183410b7345db083533dbb4c30b76 21-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t composite over protected layers am: 8a628b9 am: 3def47b am: 6620574 am: 39f6d3e
am: 8197010

* commit '8197010693709c890e68a34809d1d96401cf3385':
drm_hwcomposer: Don't composite over protected layers

Change-Id: I7ea3760f77095a0b74b308dd9c05172c3c88e411
8197010693709c890e68a34809d1d96401cf3385 21-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t composite over protected layers am: 8a628b9 am: 3def47b am: 6620574
am: 39f6d3e

* commit '39f6d3e297370e12a78c3ec9cd09c620b4c0fbe4':
drm_hwcomposer: Don't composite over protected layers

Change-Id: I0e26310a89f04eb135f99ad86befa96b42837290
39f6d3e297370e12a78c3ec9cd09c620b4c0fbe4 21-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t composite over protected layers am: 8a628b9 am: 3def47b
am: 6620574

* commit '662057496da30bb27a3fdb1b4911afa653e380c3':
drm_hwcomposer: Don't composite over protected layers

Change-Id: Iee79ab1bc9a5339d338e9710355a21ac9a2fb7d6
662057496da30bb27a3fdb1b4911afa653e380c3 20-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t composite over protected layers am: 8a628b9
am: 3def47b

* commit '3def47b7ee6d54e42cb9bd6294f23a9a4db35301':
drm_hwcomposer: Don't composite over protected layers

Change-Id: I338923061ff6c7402ba8a8fa075737eb53372600
3def47b7ee6d54e42cb9bd6294f23a9a4db35301 20-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don\'t composite over protected layers
am: 8a628b9

* commit '8a628b9d22f778fcb4dc445d677f6f028667c885':
drm_hwcomposer: Don't composite over protected layers

Change-Id: I51b74f4f4337f1db2bc6fe1011ddd9c18e11bf04
8a628b9d22f778fcb4dc445d677f6f028667c885 18-Apr-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don't composite over protected layers

This patch changes two things with respect to protected layers:

1- It provisions the HW plane in the correct position. ie: if
the background layer is slated for a HW plane, it will be
placed on the primary layer and the protected layer will be
placed on top of it.
2- It punches a hole through the precomposite and squash layers
such that when they are placed on top of the protected layer,
they do not obstruct it.

BUG=b/27502957
TEST=Tested on smaug with multi-window with a variety of different
layouts and visible layers

Change-Id: Ie30939f2bb750dbe3faa558ddb094b677f41f45e
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
eparate_rects.h
dfcfe97b0230f17b18342defa8ebb09ab0edfb65 01-Apr-2016 Rob Herring <robh@kernel.org> Merge "drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency" am: 1a0eb7e am: ce7b4f6 am: 3548845
am: 835ef18

* commit '835ef188a731c41f5410f037a300c4dda3b8dc38':
drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency

Change-Id: Ice5f665ec9d5edd17486b941d39a2eea25b810de
835ef188a731c41f5410f037a300c4dda3b8dc38 01-Apr-2016 Rob Herring <robh@kernel.org> Merge "drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency" am: 1a0eb7e am: ce7b4f6
am: 3548845

* commit '35488451142625d3749b12dbcf3c1a27cfa350c7':
drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency

Change-Id: Ibc64be3a08658147152dc3c4f68b89255c4867a1
35488451142625d3749b12dbcf3c1a27cfa350c7 01-Apr-2016 Rob Herring <robh@kernel.org> Merge "drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency" am: 1a0eb7e
am: ce7b4f6

* commit 'ce7b4f61336dc3d448a0c73276e1fa8651b0dba8':
drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency

Change-Id: I24f47e20314b1e9ef638434be234631d303d92e0
ce7b4f61336dc3d448a0c73276e1fa8651b0dba8 01-Apr-2016 Rob Herring <robh@kernel.org> Merge "drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency"
am: 1a0eb7e

* commit '1a0eb7eecadd9981b2872d7264a297edcf77dd0e':
drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency

Change-Id: Ib31b1835a06227b3f9229cd8b882cd72949b33ca
1a0eb7eecadd9981b2872d7264a297edcf77dd0e 01-Apr-2016 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency"
702da6075bc9451ca5b98c7868388b96a654702a 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix build warnings am: e564764
am: d72d51f -s ours

* commit 'd72d51faa2f7d963139c3b8449f482b517ddb786':
DO NOT MERGE: drm_hwcomposer: Fix build warnings

Change-Id: I4c1bb525cee2e0267e3fc34d737468e1a34b2d41
48959a9cfd6d5d9f0d1d35e9f8e67398f7ff3a8e 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add hotplug event handler am: 4e4d840
am: 32d334e -s ours

* commit '32d334ef40f32b5c5ce70c6182c34e8dcb19668d':
DO NOT MERGE: drm_hwcomposer: Add hotplug event handler

Change-Id: I1e68c824a303ecf5fb1d1f1e4c7f4c98d90ffba6
7577277ac6014de09abd5099fe2ec1e65af0f216 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Set DPMS ON when setting active config am: cc593a6
am: 279710b -s ours

* commit '279710b75c39813f5d4a0c2cd70d6031b8a549e4':
DO NOT MERGE: drm_hwcomposer: Set DPMS ON when setting active config

Change-Id: Ief8175ea806ca1a25d31fdce62416185ff1d7ed1
99772127d040a937a6a24dcde6d9e859dc126da0 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add DrmEventListener worker am: 3b1c03a
am: 0758c7b -s ours

* commit '0758c7b64bfc544f7f9841e916504cfd32973f30':
DO NOT MERGE: drm_hwcomposer: Add DrmEventListener worker

Change-Id: I5402cc5c7637c264f9f4ac207ed66cddf2b3345d
e64ce58d9d68174d696243de4fd178b1e9503da0 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Protect autofd.h with #ifdef/#define am: 4248d74
am: a5da690 -s ours

* commit 'a5da690a5392ad6f68db62c4e5c2bfc3ca8c4c43':
DO NOT MERGE: drm_hwcomposer: Protect autofd.h with #ifdef/#define

Change-Id: I8a2a03880ac636651a14548f4e65ea409f2f8e65
3709115257354f7baaccbd2bde3dfaf2bafbed11 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add connection state to DrmConnector am: 0a1bb6f
am: cbd6ade -s ours

* commit 'cbd6ade813dc1e16b27f59f1f4cc58f98b41518e':
DO NOT MERGE: drm_hwcomposer: Add connection state to DrmConnector

Change-Id: I5558d8c115351072f68a152ffc2fbedc593ebf89
535a66ed723fd59ff6ba0a7907efe7de5dbd6595 01-Apr-2016 Rob Herring <robh@kernel.org> DO NOT MERGE: drm_hwcomposer: Convert to upstream DRM atomic interfaces am: b02d858
am: 4d04b89 -s ours

* commit '4d04b89ffb5acd3360ad73eeebdd905ca61dd6b6':
DO NOT MERGE: drm_hwcomposer: Convert to upstream DRM atomic interfaces

Change-Id: I44fb41cd968c8e76eda520a99a6bfa0d3e0fa2e3
d72d51faa2f7d963139c3b8449f482b517ddb786 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix build warnings
am: e564764

* commit 'e564764364decc3f1a3f697d23a6737faeffa49f':
DO NOT MERGE: drm_hwcomposer: Fix build warnings

Change-Id: Ic5a2d6b20cfca58a4ff237688203c40e456272f1
32d334ef40f32b5c5ce70c6182c34e8dcb19668d 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add hotplug event handler
am: 4e4d840

* commit '4e4d8408ea2bddc669e4a0060bbc37f1d5fbafe2':
DO NOT MERGE: drm_hwcomposer: Add hotplug event handler

Change-Id: Iafa4eee13d3192cb8e4db0f2a66009ee4271532a
279710b75c39813f5d4a0c2cd70d6031b8a549e4 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Set DPMS ON when setting active config
am: cc593a6

* commit 'cc593a6210b82941651298ae4130245e6dc7e5f4':
DO NOT MERGE: drm_hwcomposer: Set DPMS ON when setting active config

Change-Id: I5354ab1a84845c757c142f30f624139f8381fe8a
0758c7b64bfc544f7f9841e916504cfd32973f30 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add DrmEventListener worker
am: 3b1c03a

* commit '3b1c03ab6613789254e0406f015b05ebbe1383ea':
DO NOT MERGE: drm_hwcomposer: Add DrmEventListener worker

Change-Id: I6c6dc969d0d21e1e17b7fa1fc19a966e016ae87f
a5da690a5392ad6f68db62c4e5c2bfc3ca8c4c43 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Protect autofd.h with #ifdef/#define
am: 4248d74

* commit '4248d744d3be0fdd1233ef620678b581af56468f':
DO NOT MERGE: drm_hwcomposer: Protect autofd.h with #ifdef/#define

Change-Id: Ieba9cb73eaba09373b2b7e92e7a5f033645ec3c0
cbd6ade813dc1e16b27f59f1f4cc58f98b41518e 01-Apr-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add connection state to DrmConnector
am: 0a1bb6f

* commit '0a1bb6f0d006eabdb8c8a3ee61100a63af0396ef':
DO NOT MERGE: drm_hwcomposer: Add connection state to DrmConnector

Change-Id: I2f4da5a0038cebc6fa5dc313fbc511ae35b9725a
4d04b89ffb5acd3360ad73eeebdd905ca61dd6b6 01-Apr-2016 Rob Herring <robh@kernel.org> DO NOT MERGE: drm_hwcomposer: Convert to upstream DRM atomic interfaces
am: b02d858

* commit 'b02d858190cc779875d02195631483096024d6ca':
DO NOT MERGE: drm_hwcomposer: Convert to upstream DRM atomic interfaces

Change-Id: I244a5e56b38341724bbce70acb7fac97bcb32414
e564764364decc3f1a3f697d23a6737faeffa49f 29-Mar-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Fix build warnings

A cleanup patch to fix the build warnings that have surfaced
from the new build system.

BUG=None
TEST=Builds without warnings

Change-Id: I2ad898e627d451f87705d2bdf06a315b8e1c7a1c
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.h
wcomposer.cpp
vimporter.cpp
4e4d8408ea2bddc669e4a0060bbc37f1d5fbafe2 26-Oct-2015 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add hotplug event handler

Add a hotplug event handler to handle hotplug events. Upon
hotplug, the handler is responsible for finding and setting
the preferred mode of the new display.

BUG=chrome-os-partner:41682
TEST=Tested on ryu with DP

Change-Id: Ide57382624c7839ed81a712bc29ea2e1cc19dcae
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
cc593a6210b82941651298ae4130245e6dc7e5f4 29-Mar-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Set DPMS ON when setting active config

Ensure we turn the connector on after we set the active mode.

BUG=chrome-os-partner:41682
TEST=Tested on smaug with DP

Change-Id: I3410a1ac261fb0848d668c5baef2d77eb860017b
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
3b1c03ab6613789254e0406f015b05ebbe1383ea 28-Jul-2015 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add DrmEventListener worker

This patch adds a worker which listens to drm events. If the
drm event has a handler associated with it, the listener will
call the handler.

BUG=chrome-os-partner:41682
TEST=Tested on ryu with DP

Change-Id: I5d691d191425604766a00be3e72111095d025d06
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
rmeventlistener.cpp
rmeventlistener.h
rmresources.cpp
rmresources.h
4248d744d3be0fdd1233ef620678b581af56468f 24-Mar-2016 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Protect autofd.h with #ifdef/#define

So we don't end up redeclaring its classes.

BUG=None
TEST=Compiles

Change-Id: Ic15ba4412f11bad8ef7ec4f68af6ad87e0d674cc
Signed-off-by: Sean Paul <seanpaul@chromium.org>
utofd.h
0a1bb6f0d006eabdb8c8a3ee61100a63af0396ef 26-Oct-2015 Sean Paul <seanpaul@chromium.org> DO NOT MERGE: drm_hwcomposer: Add connection state to DrmConnector

So we can determine if it's connected or not.

BUG=chrome-os-partner:41682
TEST=Tested on ryu with DP

Change-Id: Ie0dadb2737d3a98257fb6e4fa02f17d7dae44f6c
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmconnector.cpp
rmconnector.h
b02d858190cc779875d02195631483096024d6ca 04-Feb-2016 Rob Herring <robh@kernel.org> DO NOT MERGE: drm_hwcomposer: Convert to upstream DRM atomic interfaces

drm_hwcomposer is currently using preliminary version of the atomic API.
The final version merged upstream is slightly different. Convert it to the
upstream API.

The most significant change is positive return values for
drmModeAtomicAddProperty are not a failure, so we need to test for
negative return values instead of non-zero.

BUG=none
TEST=Tested with 4.4 kernel on virtio-gpu and freedreno

Change-Id: I0b1f4bcd7766a3053a484f55e01c8b2ba56d716d
Signed-off-by: Rob Herring <robh@kernel.org>
rmdisplaycompositor.cpp
99c55b0154f2aa554a8bc25a0376ced2352d42bc 01-Apr-2016 Rob Herring <robh@kernel.org> drm_hwcomposer: remove unnecessary gralloc_drm_bo_t dependency

gralloc_bo is not used anywhere and depending on it pulls in unnecessary
dependencies from drm_gralloc, so remove it.

Change-Id: I81b9dc88124ea6a0e66e188656d44215e735d177
Signed-off-by: Rob Herring <robh@kernel.org>
rmgenericimporter.cpp
c8f0c78c71433fe8dd408e58b6a7b6c78c951002 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix build warnings am: 5325e10 am: 4b5d216 am: fd8a8a0
am: 240434a

* commit '240434ab2a1dbbcb1070b88c4349fbc3d3ab8a5a':
drm_hwcomposer: Fix build warnings

Change-Id: I258b9f5bcc528f27193df7c860df5724e2f4e8e5
b69924d185116e82dda4e2b4f8610e73f15c8c22 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add hotplug event handler am: 3a69f73 am: 833356e am: 833fb7f
am: bac790c

* commit 'bac790c96f084fc25506d37cea1901c1fc577caf':
drm_hwcomposer: Add hotplug event handler

Change-Id: I9118d251455fd4b1af8ca1bdef1f01b2652a06ba
240434ab2a1dbbcb1070b88c4349fbc3d3ab8a5a 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix build warnings am: 5325e10 am: 4b5d216
am: fd8a8a0

* commit 'fd8a8a073465a2ef196c0891a427ba4260c5449a':
drm_hwcomposer: Fix build warnings

Change-Id: Id0a51c7154f3a72e24e6f84799ca3a3da787e4e4
bac790c96f084fc25506d37cea1901c1fc577caf 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add hotplug event handler am: 3a69f73 am: 833356e
am: 833fb7f

* commit '833fb7f5fb4a7396683d8cca488506d3a287ec19':
drm_hwcomposer: Add hotplug event handler

Change-Id: I9f7d118f39a233cb7fce6af311267535035f8aca
fd8a8a073465a2ef196c0891a427ba4260c5449a 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix build warnings am: 5325e10
am: 4b5d216

* commit '4b5d21698a57aff7453c963fb9342137ba825ea5':
drm_hwcomposer: Fix build warnings

Change-Id: I934f5809f72f61b3ba1db8b7aa13315a73658fca
833fb7f5fb4a7396683d8cca488506d3a287ec19 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add hotplug event handler am: 3a69f73
am: 833356e

* commit '833356e7956094442c654e58db341cfbb3e7d153':
drm_hwcomposer: Add hotplug event handler

Change-Id: Ica50b2e4052fda80a232f3a97471f4d17a22e853
4b5d21698a57aff7453c963fb9342137ba825ea5 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix build warnings
am: 5325e10

* commit '5325e10e691d56d5d6ae3173b55216833dc7d144':
drm_hwcomposer: Fix build warnings

Change-Id: Ib59555eeffc997657d5f78d8a694e01e34de2fa7
833356e7956094442c654e58db341cfbb3e7d153 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add hotplug event handler
am: 3a69f73

* commit '3a69f73205d4da12c1de16d06d0589e443a65812':
drm_hwcomposer: Add hotplug event handler

Change-Id: I554b61978eea38b175d713a8deff0b20763bf8a7
5325e10e691d56d5d6ae3173b55216833dc7d144 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix build warnings

A cleanup patch to fix the build warnings that have surfaced
from the new build system.

BUG=None
TEST=Builds without warnings

Change-Id: I2ad898e627d451f87705d2bdf06a315b8e1c7a1c
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.h
wcomposer.cpp
vimporter.cpp
3a69f73205d4da12c1de16d06d0589e443a65812 26-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add hotplug event handler

Add a hotplug event handler to handle hotplug events. Upon
hotplug, the handler is responsible for finding and setting
the preferred mode of the new display.

BUG=chrome-os-partner:41682
TEST=Tested on ryu with DP

Change-Id: Ide57382624c7839ed81a712bc29ea2e1cc19dcae
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
78214cc4005f9a80880457613bd11304252f545c 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set DPMS ON when setting active config am: 55584b5 am: 216e80d am: 3b4088d
am: 476b3a7

* commit '476b3a7ba6a98055b22090db92baa405daebda9f':
drm_hwcomposer: Set DPMS ON when setting active config

Change-Id: Ib3cec7b3a86843e6a4fbf77c759278c7acf8aed3
476b3a7ba6a98055b22090db92baa405daebda9f 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set DPMS ON when setting active config am: 55584b5 am: 216e80d
am: 3b4088d

* commit '3b4088d8c8a07ede926dbc92ce20cc0ef48919ab':
drm_hwcomposer: Set DPMS ON when setting active config

Change-Id: I3f46c84c4f325f31ddaaffc8411638f3bad6b73e
3b4088d8c8a07ede926dbc92ce20cc0ef48919ab 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set DPMS ON when setting active config am: 55584b5
am: 216e80d

* commit '216e80d532a989530e5c4567d305d07ea7fd94be':
drm_hwcomposer: Set DPMS ON when setting active config

Change-Id: I6bee36752c6604b7ec9b689e150861a71f1b653c
216e80d532a989530e5c4567d305d07ea7fd94be 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set DPMS ON when setting active config
am: 55584b5

* commit '55584b51b27481f7219c7c95a0a6350f43443457':
drm_hwcomposer: Set DPMS ON when setting active config

Change-Id: I03a200688b7b9ed88ff2b96077362f7255d5ee35
55584b51b27481f7219c7c95a0a6350f43443457 29-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set DPMS ON when setting active config

Ensure we turn the connector on after we set the active mode.

BUG=chrome-os-partner:41682
TEST=Tested on smaug with DP

Change-Id: I3410a1ac261fb0848d668c5baef2d77eb860017b
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
7f97427629380bf05ba9db54f9c9ecab8657c0e9 25-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add DrmEventListener worker
am: 047b9b2

* commit '047b9b2484b4e68741df2cb522915f968c013373':
drm_hwcomposer: Add DrmEventListener worker
7776d476ee052a2e1c44fca755107823cc4fc218 25-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Protect autofd.h with #ifdef/#define
am: 538a375

* commit '538a375097b7df59f8852997f9dada0bde86b328':
drm_hwcomposer: Protect autofd.h with #ifdef/#define
047b9b2484b4e68741df2cb522915f968c013373 28-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add DrmEventListener worker

This patch adds a worker which listens to drm events. If the
drm event has a handler associated with it, the listener will
call the handler.

BUG=chrome-os-partner:41682
TEST=Tested on ryu with DP

Change-Id: I5d691d191425604766a00be3e72111095d025d06
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
rmeventlistener.cpp
rmeventlistener.h
rmresources.cpp
rmresources.h
538a375097b7df59f8852997f9dada0bde86b328 24-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Protect autofd.h with #ifdef/#define

So we don't end up redeclaring its classes.

BUG=None
TEST=Compiles

Change-Id: Ic15ba4412f11bad8ef7ec4f68af6ad87e0d674cc
Signed-off-by: Sean Paul <seanpaul@chromium.org>
utofd.h
5f368969e5b0bd6e39762f0a3a12b579b1d7e8ed 24-Mar-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add connection state to DrmConnector
am: 0921649

* commit '092164970256626a4c66164405633a006721e327':
drm_hwcomposer: Add connection state to DrmConnector
092164970256626a4c66164405633a006721e327 26-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add connection state to DrmConnector

So we can determine if it's connected or not.

BUG=chrome-os-partner:41682
TEST=Tested on ryu with DP

Change-Id: Ie0dadb2737d3a98257fb6e4fa02f17d7dae44f6c
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmconnector.cpp
rmconnector.h
78216ec3682dcf530df5308766835e14ce8d0993 11-Feb-2016 Rob Herring <robh@kernel.org> drm_hwcomposer: Convert to upstream DRM atomic interfaces
am: bc9305e7fb

* commit 'bc9305e7fb1a959d964abb698066cb1b51fd379d':
drm_hwcomposer: Convert to upstream DRM atomic interfaces
bc9305e7fb1a959d964abb698066cb1b51fd379d 04-Feb-2016 Rob Herring <robh@kernel.org> drm_hwcomposer: Convert to upstream DRM atomic interfaces

drm_hwcomposer is currently using preliminary version of the atomic API.
The final version merged upstream is slightly different. Convert it to the
upstream API.

The most significant change is positive return values for
drmModeAtomicAddProperty are not a failure, so we need to test for
negative return values instead of non-zero.

BUG=none
TEST=Tested with 4.4 kernel on virtio-gpu and freedreno

Change-Id: I0b1f4bcd7766a3053a484f55e01c8b2ba56d716d
Signed-off-by: Rob Herring <robh@kernel.org>
rmdisplaycompositor.cpp
5086fe1e75faed8e8d75008002a88b21c3d58933 10-Feb-2016 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for virtual connectors"
am: 3934c3916e

* commit '3934c3916e84e5dde7973c925dbffb9a7a6938da':
drm_hwcomposer: Add support for virtual connectors
3934c3916e84e5dde7973c925dbffb9a7a6938da 10-Feb-2016 Sean Paul <seanpaul@chromium.org> Merge "drm_hwcomposer: Add support for virtual connectors"
9b10c5fc9aae12f08362485682e8eb388a56410b 05-Dec-2015 Rob Herring <robh@kernel.org> drm_hwcomposer: Add support for virtual connectors

Allow virtual connector type in order to support virtio-gpu.

BUG=none
TEST=Tested with virtio-gpu on QEMU

Change-Id: I7ae5091d3587bcae75da6bff23d7bc85aa6164f1
Signed-off-by: Rob Herring <robh@kernel.org>
rmconnector.cpp
70e2bef4cf352601628c1dec2650f7bd2934b6c7 21-Jan-2016 David Ung <davidu@nvidia.com> drm_hwcomposer: Increase fence timeout upto 5x
am: 49d657d512

* commit '49d657d512b033addd8926eff7e735d6d36e641b':
drm_hwcomposer: Increase fence timeout upto 5x
269f3111af526e6f31748dc37067ca1065c0c95a 21-Jan-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add OWNERS file
am: 20dde297bf

* commit '20dde297bf335e4b167090211ffea33ecdec6782':
drm_hwcomposer: Add OWNERS file
49d657d512b033addd8926eff7e735d6d36e641b 20-Jan-2016 David Ung <davidu@nvidia.com> drm_hwcomposer: Increase fence timeout upto 5x

Increase the fence wait value each time by a factor of 2.

Bug: chrome-os-partner:48289
Test: Run apps and see no frame drops

Change-Id: I9b7b910e5a8c9d287ea69b13dca0d4c1194ac86c
Signed-off-by: David Ung <davidu@nvidia.com>
rmdisplaycompositor.cpp
20dde297bf335e4b167090211ffea33ecdec6782 14-Jan-2016 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add OWNERS file

So people know who to bug for reviews.

BUG=None
TEST=None

Change-Id: I20bb80929a7fac59ca2137b415c9d0e000d79c54
Signed-off-by: Sean Paul <seanpaul@chromium.org>
WNERS
8e94833f468707281fcf29755474548f6cfdcbf5 30-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Always call PrepareFrame() for compositions
am: e3141c6fa6

* commit 'e3141c6fa66806f55fed65c83ed0c2c0201490e0':
drm_hwcomposer: Always call PrepareFrame() for compositions
e3141c6fa66806f55fed65c83ed0c2c0201490e0 30-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Always call PrepareFrame() for compositions

Previously this was not called for compositions which were known to
fail the atomic test. Unfortunately this left the composition in a
state which could not be processed by SquashFrame (only one layer and
source_layer was still set to kSourceSquash).

So call PrepareFrame() on every composition so SquashFrame stays happy.

Change-Id: I976e344ce4970370d9ca4307c2f2c45025199b64
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
20b7d304c56c9120024808c40c80cd4092bbb804 26-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Save the atomic_test result between tests
am: 6c18b3b67e

* commit '6c18b3b67e50e12f77f76108363493162ff36340':
drm_hwcomposer: Save the atomic_test result between tests
6c18b3b67e50e12f77f76108363493162ff36340 25-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Save the atomic_test result between tests

Previously, we would only test the first frame when the geometry
changed. However, if SF sent us the same composition with different
FBs, we could end up sending invalid frames to the kernel.

This change saves the result of the atomic_test between geometry
changes so we avoid using hw composition for all invalid frames.

Bug: 25866352
Test: Tested on smaug, observed squashes between geometry changes

Change-Id: I3b5d9e83a870481bf2e6869900eafaf0ca66a0d5
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
04d1eb0183509a961c63e9c66bab98cf3ad860cb 24-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: only check the composition after a geometry change
am: 6afbb6aef0

* commit '6afbb6aef0c89b8e737624c4baa1208aaec6f48e':
drm_hwcomposer: only check the composition after a geometry change
6afbb6aef0c89b8e737624c4baa1208aaec6f48e 24-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: only check the composition after a geometry change

Do not check the composition with kernel for every frame. We are currently
using synchronous atomic ioctl calls, so all test-only calls are serialized
with the actual commits.

BUG=25866352
TEST=same test procedure as crosbug.com/p/47206

Change-Id: Ia423243c279fc677ff6213115a8f20efa40c235e
rmdisplaycomposition.h
rmdisplaycompositor.cpp
0814b6bfaf0a2dc04b101cb00408d6bf1e0dfeec 24-Nov-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Skip layers which aren\'t on-screen" into mnc-dr-dev
am: d0cff784a8

* commit 'd0cff784a82bbb63047420da20fef7d3739715bd':
drm_hwcomposer: Skip layers which aren't on-screen
d0cff784a82bbb63047420da20fef7d3739715bd 24-Nov-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Skip layers which aren't on-screen" into mnc-dr-dev
b1008373244ff109cadb8b5d443e95d98d034124 24-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Skip layers which aren't on-screen

Don't composite layers whose bounds are entirely off screen, or
which have width or height of 0.

Bug: chrome-os-partner:47938
Test: Swipe between videos in Google Photos

Change-Id: I29671db6763caf3cb764b06d1ff955276ebecd80
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
45aff352c3e6a3436a0b1a7474ba43caa432777e 23-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: set blending mode to kPreMult for GL output
am: 0c7da1e236

* commit '0c7da1e236c3a31a5bc171aac4d5f2a1033f10e1':
drm_hwcomposer: set blending mode to kPreMult for GL output
0c7da1e236c3a31a5bc171aac4d5f2a1033f10e1 23-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: set blending mode to kPreMult for GL output

The correct blending mode for the GL output is actually premult, because
regardless of the original layer blending mode, the result RGB components
are always pre-multiplied with alpha already.

This prevents the result of a SquashAll() from getting multiplied by
alpha twice.

BUG=25838542
TEST=verify the blinking is fixed on the status bar icons

Change-Id: Ie5bbc53110c342576b81818da6069cba201db609
rmdisplaycompositor.cpp
dd7afde06c5ebc84ea9a154a8bed579267e8e30e 23-Nov-2015 David Riley <davidriley@google.com> Merge "drm_hwcomposer: Check the composition before sending to frame worker" into mnc-dr-dev
am: 4fdafe6d98

* commit '4fdafe6d988b5cac91b5448e197891508b5e6e2d':
drm_hwcomposer: Check the composition before sending to frame worker
e4eb4ab40235816c2bfea19f8748a69c1640e354 23-Nov-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Allow for multiple transforms at once" into mnc-dr-dev
am: d4bd44dba3

* commit 'd4bd44dba3559738a0124a875a109ca11ec57acd':
drm_hwcomposer: Allow for multiple transforms at once
8f24b05aae2a83910a970a3073b97698a75889a0 23-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Split DrmDisplayCompositor::SquashAll()
am: d51c7617d5

* commit 'd51c7617d590c806c53ca3fdbc9428c03261dac1':
drm_hwcomposer: Split DrmDisplayCompositor::SquashAll()
600960c117c1e892df5d7d293ecf471df2521477 23-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add test_only mode to CommitFrame
am: c07b211215

* commit 'c07b21121553f981a1888bb855c987138879c267':
drm_hwcomposer: Add test_only mode to CommitFrame
4fdafe6d988b5cac91b5448e197891508b5e6e2d 20-Nov-2015 David Riley <davidriley@google.com> Merge "drm_hwcomposer: Check the composition before sending to frame worker" into mnc-dr-dev
d4bd44dba3559738a0124a875a109ca11ec57acd 20-Nov-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Allow for multiple transforms at once" into mnc-dr-dev
04b47ea435834b4373d57dae6485986b9f0918ae 20-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Allow for multiple transforms at once

Because sometimes one just ain't enough, allow more than
one transform at a time.

Bug: chrome-os-partner:46710
Test: Tested with the CTS Verifier "Camera Orientation" test

Change-Id: Ie5f9bbbc7c89964feafc78150e18512861c85b69
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
rmdisplaycompositor.cpp
rmhwcomposer.h
lworker.cpp
wcomposer.cpp
d51c7617d590c806c53ca3fdbc9428c03261dac1 18-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Split DrmDisplayCompositor::SquashAll()

Split the SquashAll function into SquashAll and SquashFrame. This
will allow us to squash arbitrary compositions without using the
active composition or applying it to the screen.

Bug: 25379136
Test: Tested on smaug

Change-Id: I1767f731e14f36540151556ce07373848b604030
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
647beb27af04c33d415c75149c4c93d767693caf 19-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Check the composition before sending to frame worker

Before we send a composition to the frame worker and display, run it
through the kernel to test whether it can be put on hardware. If the
kernel rejects the composition, use the squashing code to flatten it
on one layer and send the result to the frame worker.

Bug: 25379136
Test: Tested on smaug, frames were squashed, fun was had

Change-Id: Icac3c034d0eb4c0becbdc0f8ace1de75ab8ae2b8
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
3368263694e8eac1083395d23b4dcd55946c7574 20-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Create mode blob on modeset queue
am: 35301f498c

* commit '35301f498c372f3ad2bbbc969acda39056131b26':
drm_hwcomposer: Create mode blob on modeset queue
9cbc3de3ab4efa16014e9c5629cdd287d1637958 20-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: during SquashAll, skip layers with kSourceNone
am: 2b4b1eea6b

* commit '2b4b1eea6b7075efe356af8bb2e948201635c5c2':
drm_hwcomposer: during SquashAll, skip layers with kSourceNone
c07b21121553f981a1888bb855c987138879c267 17-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add test_only mode to CommitFrame

Allow the caller of CommitFrame to run the commit in "test only" mode
which will send the frame to the kernel, but won't actually change any
registers.

Bug: 25379136
Test: Tested on smaug

Change-Id: I831b5f17d433bc60d9f107689feb1d7672c100a9
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
35301f498c372f3ad2bbbc969acda39056131b26 17-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Create mode blob on modeset queue

Instead of creating the mode blob right before doing the modeset,
create it as soon as the modeset is queued. This will allow us to
use the blob for both atomic test as well as commit.

In addition to keeping the blob around, store the blob's id while
the mode is active so we don't need to look it up when/if the next
modeset comes in.

Bug: 25379136
Test: Tested on smaug

Change-Id: I60e6f83310ea0601388bb31b63d25c6fd7b8fc4d
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
2b4b1eea6b7075efe356af8bb2e948201635c5c2 18-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: during SquashAll, skip layers with kSourceNone

This complicates returning layers to the active composition on failure. They
will not go back in the correct order and this will confuse all subsequent
attempts to use the active composition.

Change-Id: Iab6fae7b4a88f97206bac08237d574ff1bfd802f
rmdisplaycompositor.cpp
be7761ef74b0901339a9b34100e1fd64077061fc 17-Nov-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: composite down to a primary plane after a timeout" into mnc-dr-dev
am: f1acc6d72d

* commit 'f1acc6d72d61e3347c1a765ecad6b13a378d89a0':
drm_hwcomposer: composite down to a primary plane after a timeout
2768efe1d4852841f7b931d0a96075d4ba075da3 17-Nov-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: avoid creating release fences for invalid OutputFd" into mnc-dr-dev
am: 153b38ac1d

* commit '153b38ac1d33df0c4c2aa3e790237d3c675ad95b':
drm_hwcomposer: avoid creating release fences for invalid OutputFd
fe9272d591cde91b9027842084951d5ae4db9642 17-Nov-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: add AutoLock to automatically handle pthread_mutex_lock" into mnc-dr-dev
am: a43948d9cd

* commit 'a43948d9cdad184e56800a9a8f499caf7653c580':
drm_hwcomposer: add AutoLock to automatically handle pthread_mutex_lock
f1acc6d72d61e3347c1a765ecad6b13a378d89a0 17-Nov-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: composite down to a primary plane after a timeout" into mnc-dr-dev
153b38ac1d33df0c4c2aa3e790237d3c675ad95b 17-Nov-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: avoid creating release fences for invalid OutputFd" into mnc-dr-dev
a43948d9cdad184e56800a9a8f499caf7653c580 17-Nov-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: add AutoLock to automatically handle pthread_mutex_lock" into mnc-dr-dev
bff33ac0e677875eb4b462a45ad90429b6484181 16-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: composite down to a primary plane after a timeout

DrmDisplayCompositor::SquashAll is triggered after a constant timeout in
DrmCompositorWorker::Routine. It will not be triggered more than one time
between genuine hwc_set calls. SquashAll has no effect if there are protected
layers, only one layer, or any errors. On success, SquashAll produces a new
DrmDisplayComposition that owns the layers in the planes of the active
composition and makes that the new active composition. SquashAll has no effect
on SquashState.

Change-Id: I975edb21847dcf2d93245f92a6e53a4e366c6a3b
rmcompositorworker.cpp
rmcompositorworker.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
02a1099e0f0264bdf24341bb81caf05cf96c255c 16-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Increase the virtual display compositor\'s fence timeout
am: faca209237

* commit 'faca20923756bbde0c46550216375ed87b39d5f0':
drm_hwcomposer: Increase the virtual display compositor's fence timeout
faca20923756bbde0c46550216375ed87b39d5f0 16-Nov-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Increase the virtual display compositor's fence timeout

50ms isn't enough time for some CTS tests (namely testSetLocalFocus). Increase
the timeout to 3 seconds, since we're not too worried about recovery time
from fence timeouts any longer.

Bug: 24362649
Test: Run cts test in a loop, ensuring the virtual compositor doesn't time out:
run cts --loop --class android.view.cts.WindowTest --method testSetLocalFocus --disable-reboot --min-loop-time 100 --max-random-loop-time 200

Change-Id: I5552ece3f6fe95d78a4e0770c1e30c96f2e75313
Signed-off-by: Sean Paul <seanpaul@chromium.org>
irtualcompositorworker.cpp
cb1cfc866b47c480a9fa84f6edcc5239ac99d277 14-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: avoid creating release fences for invalid OutputFd

This change also adds a check for OutputFd to see if it is valid.

Change-Id: If992d523c707cc5e6e660de721938a26f27477d8
utofd.h
rmdisplaycomposition.cpp
49446bc72b33b8b68352b2048657bea4a8da4a42 14-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add AutoLock to automatically handle pthread_mutex_lock

For functions that need to hold locks and also handle errors, using AutoLock
will make them much simpler and less prone to mutex handling errors.

Change-Id: Ida6545850e89186c552e3d58b2973c14852494ad
ndroid.mk
utolock.cpp
utolock.h
1c73420cf5fcdff40c37025348011963aaf6eb87 11-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add optional timeout for WaitForSignalOrExitLocked
am: 8467b12941

* commit '8467b129419b0f78974bd478809ad32da4fd09fa':
drm_hwcomposer: add optional timeout for WaitForSignalOrExitLocked
8467b129419b0f78974bd478809ad32da4fd09fa 11-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add optional timeout for WaitForSignalOrExitLocked

Change-Id: I5beef0833cc0a384aa76e821694183e024a8850c
orker.cpp
orker.h
dfbbc16ad55b1d875e840c2eac1e560ce28e903e 07-Nov-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: always put protected layers on hardware planes
am: db81fce674

* commit 'db81fce67419d82d828eebec25e57284e90dd93a':
drm_hwcomposer: always put protected layers on hardware planes
db81fce67419d82d828eebec25e57284e90dd93a 28-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: always put protected layers on hardware planes

Protected layers will not work inside of the GLWorker, so we are forced to put
them into planes directly.

Because we can now receive display contents which can never be properly
composited (e.g. 4 protected layers on hardware with only 3 planes), some
compromises had to be made for the composition planning algorithm. First all
protected layers are given a plane. Then the remaining planes are used by the
remaining layers, pre-composite buffer, and squash buffer. In the case where
there are too few planes for both a pre-composite buffer and squash buffer,
everything gets pushed into the pre-composite buffer and the squash buffer
will not be composited onto the screen. Another major limitation is that any
unprotected layers appearing behind a protected layer will actually appear on
top of that protected layer.

BUG=chrome-os-partner:43674
TEST=run protected content with lots of other layers

Change-Id: I94620d93f68ca14dc1966422dc89035ab84e3ff4
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmhwcomposer.h
wcomposer.cpp
e65083e236e05d0a809ad6c75cd37e87cb7f6716 03-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: fix spelling of "separate".
am: aa2f4a5eec

* commit 'aa2f4a5eec7f4117b9487a415739634007254822':
drm_hwcomposer: fix spelling of "separate".
aa2f4a5eec7f4117b9487a415739634007254822 02-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: fix spelling of "separate".

It is spelled "separate", not "seperate".

Change-Id: Id92d12aba42989a8a72e4596d425b2a9eea4e5ec
ndroid.mk
rmdisplaycomposition.cpp
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmhwcomposer.h
eparate_rects.cpp
eparate_rects.h
eperate_rects.cpp
eperate_rects.h
c1f1ce78b6daf2f641ae28c03590c94c7f65bcbb 02-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: filter out empty or invalid rects.
am: f3d360328e

* commit 'f3d360328e724c908827716d442c226e3128ff5a':
drm_hwcomposer: filter out empty or invalid rects.
f3d360328e724c908827716d442c226e3128ff5a 02-Nov-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: filter out empty or invalid rects.

We can safely ignore zero-area rects because they do not affect the outcome
of the separate_rects() function. Furthermore the line sweep algorithm would
break when two identical START or END events are added to the same set.

Additionally any rect with |left| greater than |right| or |top| greater than
|bottom| is invalid and shall be ignored.

Added test cases with empty and invalid rects. This case would have crashed (or
failed the assert in a debug build) without this fix.

BUG=chrome-os-partner:47103
TEST=verify no crash with Photos app

Change-Id: I80950ef376390a14a892c58b563eb3c0f79db71c
eperate_rects.cpp
b6687fea3c5173de26bf4df89b8a9d5bf7e53140 30-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Handle HWC_SKIP_LAYER properly
am: bd61c8dc8a

* commit 'bd61c8dc8a5a5198b5a35cae9908787209607a28':
drm_hwcomposer: Handle HWC_SKIP_LAYER properly
bd61c8dc8a5a5198b5a35cae9908787209607a28 29-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Handle HWC_SKIP_LAYER properly

Instead of ignoring skip layers, set all layers between the first
and last skip layer as HWC_FRAMEBUFFER in prepare(). In set(), substitute
the HWC_FRAMEBUFFER_TARGET in place of those layers.

Bug: 25366235
Test: Tested with gmail modal and rotation

Change-Id: Ife0fd569caf505263b00e5d0e8217a339aa09031
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
26a02f61c8d86906fc7ff72726a3b6bd044dcb35 29-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: add ATRACE_CALL.
am: 3979f7d252

* commit '3979f7d252b4b054417b59a5dac84281eeaa8435':
drm_hwcomposer: add ATRACE_CALL.
0ae4cff4ed9b4ae8930e48a956ad7162961cab18 29-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: update #include\'s for drm_hwcomposer.h
am: 7642c9230a

* commit '7642c9230a7a5e30bd8e47d656d0d8f3162323f9':
drm_hwcomposer: update #include's for drm_hwcomposer.h
704c2701a7c34072711c6c999fa65555c337c44b 29-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: rename file with underscore to not use underscore
am: d8c19a0e64

* commit 'd8c19a0e64f486fa54d00f39196b35cb19b05265':
drm_hwcomposer: rename file with underscore to not use underscore
1c0d7b9a7475b5b65bfcb2774e6d5d31a4378462 29-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: polish for old DRM wrapper code
am: ff30b52303

* commit 'ff30b52303cdbeb9cbfb054e2a12da1135ea49c9':
drm_hwcomposer: polish for old DRM wrapper code
3979f7d252b4b054417b59a5dac84281eeaa8435 29-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: add ATRACE_CALL.

The DrmDisplayCompositor::CommitFrame() has been moved to a separate
worker thread so it's helpful to add it to systrace.

Change-Id: I82031f56ddc0587266f9a213208134f045f66b9a
rmdisplaycompositor.cpp
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
rmcomposition.h
rmdisplaycomposition.h
rmdisplaycompositor.h
wcomposer.cpp
mporter.h
irtualcompositorworker.h
d8c19a0e64f486fa54d00f39196b35cb19b05265 29-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: rename file with underscore to not use underscore

Change-Id: Icbaef79cb224b45e500ac3a0e3f987de24151d6a
rm_hwcomposer.h
rmhwcomposer.h
ff30b52303cdbeb9cbfb054e2a12da1135ea49c9 29-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: polish for old DRM wrapper code

- deleted private copy constructors
- replace delete with unique_ptr
- use in-class assignment
- remove default constructors/destructors when no longer needed
- remove most iterators used in for loops
- move UniqueFd to its own header so drmresources can use it

Change-Id: Ib20cc0949cf4d381a58548b8156c5cb368ca3efe
utofd.h
rm_hwcomposer.h
rmcomposition.cpp
rmcompositor.cpp
rmcompositor.h
rmconnector.cpp
rmconnector.h
rmcrtc.cpp
rmcrtc.h
rmencoder.cpp
rmencoder.h
rmmode.cpp
rmmode.h
rmplane.cpp
rmplane.h
rmproperty.cpp
rmproperty.h
rmresources.cpp
rmresources.h
wcomposer.cpp
ec15f865ff4f212c5c48b6228a09b3a85a6388e3 28-Oct-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Use mode vrefresh if provided" into mnc-dr-dev
am: 7cd2643b0d

* commit '7cd2643b0de900e00e5b0cc0bd6dbbc649840b02':
drm_hwcomposer: Use mode vrefresh if provided
b3d9eb2398d7e237a2ac32e1e47d95c30952b28d 28-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: C++ coding style cleanup, no functional changes.
am: 479412cbe6

* commit '479412cbe6edbc265e4ab419cc9138e5ade6bd84':
drm_hwcomposer: C++ coding style cleanup, no functional changes.
531cf2a4353aa70a230e03bf9a70cd0ca0441dfa 28-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: move atomic modeset calls into a separate worker
am: dda2fabb6a

* commit 'dda2fabb6a8010768e199210b934a6326c891c2d':
drm_hwcomposer: move atomic modeset calls into a separate worker
7cd2643b0de900e00e5b0cc0bd6dbbc649840b02 28-Oct-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Use mode vrefresh if provided" into mnc-dr-dev
ad563d42f18fd4f8f99f489fa1b15fd709450025 28-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use mode vrefresh if provided

Instead of always calculating the vrefresh from clock + resolution,
use vrefresh from the mode if its provided.

Bug: 25319209
Test: Tested on smaug, refresh reports 60Hz

Change-Id: I963ccb153d1856f5e45e4a1aa6fbd20b105d4a84
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmmode.cpp
rmmode.h
479412cbe6edbc265e4ab419cc9138e5ade6bd84 27-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: C++ coding style cleanup, no functional changes.

Apply "override" keyword and remove redundant "virtual" keyword.
Ran clang-format on all files.

Change-Id: I76730296aa8f52e555137d4b5973fa27d38f0aa6
rmcompositorworker.h
rmdisplaycompositor.h
rmgenericimporter.h
rmhwcgralloc.h
vimporter.cpp
vimporter.h
irtualcompositorworker.cpp
irtualcompositorworker.h
syncworker.h
dda2fabb6a8010768e199210b934a6326c891c2d 23-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: move atomic modeset calls into a separate worker

We are currently using synchronous (blocking) atomic modeset calls
which unnecessarily delays GL.

BUG=25126188
TEST=check timestamp of SignalPreCompDone relative to hwc_set

Change-Id: Iba70c1c9591e467c1627516af123a43206da99fd
rmdisplaycompositor.cpp
rmdisplaycompositor.h
80b873403d69103646ea51242089d4a75d28f493 27-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: get gralloc buffer usage during hwc_set
am: 36d7c6e7dd

* commit '36d7c6e7ddb2e941f8611502ca938189290ff4b2':
drm_hwcomposer: get gralloc buffer usage during hwc_set
36d7c6e7ddb2e941f8611502ca938189290ff4b2 20-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: get gralloc buffer usage during hwc_set

This is needed during the layer composition planning phase to determine if a
layer is protected and therefore needs to be in its own overlay.

BUG=chrome-os-partner:43674

Change-Id: I33510a5a56b57aaaf55732149ae3e3d2f92ada79
rm_hwcomposer.h
rmhwcgralloc.h
wcomposer.cpp
bf050460374a8d951d01a272ed4b6495952d5f1f 24-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: remove unused and confusing HWC_FB_BUFFERS definition.
am: aa467a869c

* commit 'aa467a869ce178f7b5869c01049b815792fd54ff':
drm_hwcomposer: remove unused and confusing HWC_FB_BUFFERS definition.
e985f5403c94376fc939335311a34d3cd9f1b2df 24-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: implement squashing
am: 5757e82631

* commit '5757e82631820372382d3369c54cc3a1ffef812f':
drm_hwcomposer: implement squashing
aa467a869ce178f7b5869c01049b815792fd54ff 22-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: remove unused and confusing HWC_FB_BUFFERS definition.

BUG=none
TEST=builds

Change-Id: I5f143f93ebb82405320d4f0aaf03db4201380f8e
wcomposer.cpp
5757e82631820372382d3369c54cc3a1ffef812f 17-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: implement squashing

Change-Id: Ifd4feaa0de303ddfd519d4415ab31d2a72f26022
rmcomposition.cpp
rmcomposition.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
wcomposer.cpp
121d42e2a4fe5bcf460c76e5868f2d8806c56674 24-Oct-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: lazily generate shaders for GLWorkerCompositor" into mnc-dr-dev
am: 203f954f26

* commit '203f954f267d9027260b0d60c9cc842840fdf229':
drm_hwcomposer: lazily generate shaders for GLWorkerCompositor
203f954f267d9027260b0d60c9cc842840fdf229 24-Oct-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: lazily generate shaders for GLWorkerCompositor" into mnc-dr-dev
d68353163dc72d2282c564379785dfca47b6df65 23-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: lazily generate shaders for GLWorkerCompositor

This still generates the first shader at GLWorkerCompositor::Init() to check
for shader generation errors. It's the only time that shader compilation errors
will be shown on the log.

This change shortens GL initialization time from 2.8 seconds to about 450
milliseconds. Besides improving boot time by 2.3 seconds, less fence timeouts
should happen at boot time due to HWC blocking.

TEST=run and see no display glitches or glworker related errors in logs
BUG=chrome-os-partner:46739

Change-Id: Ia264e3f73a0ebe8558165ae3c215777ef6339ecc
lworker.cpp
lworker.h
29174fb781d280932f6971b0f71ed20a464b2b0a 23-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: use latest patchset of "separate C compliant header file."
am: 766518e046

* commit '766518e046494bd7207f709f2e2b0ab7734d7ce9':
drm_hwcomposer: use latest patchset of "separate C compliant header file."
766518e046494bd7207f709f2e2b0ab7734d7ce9 23-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: use latest patchset of "separate C compliant header file."

Revert "drm_hwcomposer: separate C compliant header file."

This reverts commit e7eff73fb428d53c5488ef470d9e401949eb1b00.

drm_hwcomposer: separate C compliant header file.

Creating C compliant header file drmhwcgralloc.h.
gralloc.tegra uses C compiler and depends only on code in drmhwcgralloc.h.
The module doesn't depend on anything present in new drm_hwcomposer.h.
This is required to fix the compile error.

Change-Id: If7188a20a7c4ef90eb7598f0cb7733b3a45ace51
rm_hwc.h
rm_hwcomposer.h
rmhwcgralloc.h
1552f7839665f6228a50dfece51f8ffc84a4d442 22-Oct-2015 Haixia Shi <hshi@google.com> Merge "drm_hwcomposer: remove unused and confusing HWC_FB_BUFFERS definition."
8c723fe0311e310a25cc261c3e0bf4fb872c51a2 22-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: remove unused and confusing HWC_FB_BUFFERS definition.

BUG=none
TEST=builds

Change-Id: I5f143f93ebb82405320d4f0aaf03db4201380f8e
wcomposer.cpp
f9f0fac935a9a2eb0b1148161b4d6a3452bbac85 22-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove hwc.drm.use_framebuffer_target property
am: 6f82f1d69d

* commit '6f82f1d69d1194ee43dd9f36c0314afb6634cbbb':
drm_hwcomposer: Remove hwc.drm.use_framebuffer_target property
cecfb1f894f1a2ef821eb0a02c7ea7890ba30564 22-Oct-2015 Niranjan Artal <nartal@nvidia.com> drm_hwcomposer: separate C compliant header file.
am: e7eff73fb4

* commit 'e7eff73fb428d53c5488ef470d9e401949eb1b00':
drm_hwcomposer: separate C compliant header file.
aa8c30217a0584e724caef2e456fe166da39c1f0 22-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add sanity check on display in SetLayers
am: c0b35480d6

* commit 'c0b35480d6fa2bddd69a1c0255f307203c160788':
drm_hwcomposer: Add sanity check on display in SetLayers
6f82f1d69d1194ee43dd9f36c0314afb6634cbbb 22-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove hwc.drm.use_framebuffer_target property

Remove the redundant property hwc.drm.use_framebuffer_target from
drm_hwcomposer. The same can be achieved by using the "Disable HW
overlays" toggle in Developer Options.

Change-Id: I3283a8931d84113d8dc63cc818598a7f9556a171
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
e7eff73fb428d53c5488ef470d9e401949eb1b00 20-Oct-2015 Niranjan Artal <nartal@nvidia.com> drm_hwcomposer: separate C compliant header file.

Creating C compliant header file drm_hwc.h.
gralloc.tegra uses C compiler and depends only on code in drm_hwc.h.
The module doesn't depend on anything present in new hwcomposer.h.
This is required to fix the compile error.

Change-Id: Ib668334c03168aa4b72ad9e793eff323bd2e88fa
rm_hwc.h
rm_hwcomposer.h
c0b35480d6fa2bddd69a1c0255f307203c160788 22-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add sanity check on display in SetLayers

Ensure that the displays given to SetLayers are actually drm displays
before referencing them in the composition_map_.

Change-Id: I87819cdb8f68ed09bf71b95dff149d5043931ffb
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmcomposition.cpp
32e47c4f3d0ffab28b76d60f6e043b42a0fce612 16-Oct-2015 Haixia Shi <hshi@chromium.org> am 34b12d33: drm_hwcomposer: fix missing assignment of premult flag

* commit '34b12d332b9108f28ee463f6911828c50fab68e9':
drm_hwcomposer: fix missing assignment of premult flag
34b12d332b9108f28ee463f6911828c50fab68e9 16-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: fix missing assignment of premult flag

This was somehow dropped due to the recent squash ground work CL.

BUG=24791071
TEST=verify bug is fixed

Change-Id: If5f2b61104d47a2d70d3c3b34149c1d62ec82659
lworker.cpp
be73d293c9494953eb314b3faf060d2ed0299ee7 16-Oct-2015 Sean Paul <seanpaul@google.com> am f81ba378: Merge "drm_hwcomposer: Use layer alpha to blend planes" into mnc-dr-dev

* commit 'f81ba3781d27876ce1b658ee71b474adf956e485':
drm_hwcomposer: Use layer alpha to blend planes
f81ba3781d27876ce1b658ee71b474adf956e485 16-Oct-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Use layer alpha to blend planes" into mnc-dr-dev
bae865974a28e3c85dcc45cbf47eb3e2503a9566 16-Oct-2015 Haixia Shi <hshi@chromium.org> am 2fddd37d: drm_hwcomposer: do not queue layers map for virtual display

* commit '2fddd37d1f8eeb410aa2499ff582220b55dd80d6':
drm_hwcomposer: do not queue layers map for virtual display
2fddd37d1f8eeb410aa2499ff582220b55dd80d6 16-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: do not queue layers map for virtual display

It is invalid to add a DrmCompositionDisplayLayersMap for the virtual
display because the corresponding physical display resources (such as
crtc, connector, etc.) do not exist.

BUG=24985282
TEST=verify that no crash occurs

Change-Id: I24a6671e7f94032a38104ae7ed3eb0da79479601
wcomposer.cpp
71b70544ad43633ef12f2fcd9e91a2ca3a8aecc9 16-Oct-2015 Zach Reizner <zachr@google.com> am d75d8d2b: drm_hwcomposer: add missing break statement

* commit 'd75d8d2bf2f53511b1826452c2a8547b6a338cc7':
drm_hwcomposer: add missing break statement
8e0e32576c755e051a92dea2c53654487c418741 16-Oct-2015 Zach Reizner <zachr@google.com> am fd6dc339: drm_hwcomposer: reimplement Dump for DrmDisplayCompositor

* commit 'fd6dc339551e5aa041daec7abffc3ff8eaeca138':
drm_hwcomposer: reimplement Dump for DrmDisplayCompositor
d75d8d2bf2f53511b1826452c2a8547b6a338cc7 15-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add missing break statement

By a stroke of luck, the fall through case had a break statement.

Change-Id: I29cb1206d114f31ec58a603cd9dcb986764d8344
rmdisplaycompositor.cpp
d8aefb635a854c36b0cf2eb36ecdf9070ddc7151 15-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use layer alpha to blend planes

Send the layer alpha to the drm plane's alpha property to
properly blend layers.

BUG=b/24821110
TEST=Tested on smaug with Downloads/About windows, blend properly

Change-Id: If96eb28d65d018863c39bc5a3554daef0264144b
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmplane.cpp
rmplane.h
fd6dc339551e5aa041daec7abffc3ff8eaeca138 14-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: reimplement Dump for DrmDisplayCompositor

Also fixes hwc_dump sometimes failing to null terminate its output buffer.

TEST=dumpsys SurfaceFlinger

Change-Id: Ibf93cfd496a07a9375d78a8b239c2c7876aff986
rm_hwcomposer.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
wcomposer.cpp
eperate_rects.h
57b907e73d3a97c65a249f95bfad1bf0a336fee6 15-Oct-2015 Zachary Reizner <zachr@google.com> am 738593c7: Merge "drm_hwcomposer: ground work for squashing" into mnc-dr-dev

* commit '738593c7c5e96b8a16fad8be661710374994e510':
drm_hwcomposer: ground work for squashing
753508fc003cebb79115d3618e814d5840f1297f 15-Oct-2015 Isaac Simha <isimha@nvidia.com> am 6e02c9da: drm_hwcomposer: Do not close duplicate gem handles in nvimporter

* commit '6e02c9dac49084e7e94f33e3861e30b46647f914':
drm_hwcomposer: Do not close duplicate gem handles in nvimporter
738593c7c5e96b8a16fad8be661710374994e510 15-Oct-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: ground work for squashing" into mnc-dr-dev
6e02c9dac49084e7e94f33e3861e30b46647f914 14-Oct-2015 Isaac Simha <isimha@nvidia.com> drm_hwcomposer: Do not close duplicate gem handles in nvimporter

When closing gem handles in ReleaseBufferImpl, do not try to close
the same one more than once.

BUG=chrome-os-partner:46443
TEST=Play youtube video, minimize. Observe no "Failed to close
gem handle" messages in logcat.

Change-Id: I06598f304e3bd167a77f105eb2be86595ada8f4d
Signed-off-by: Isaac Simha <isimha@nvidia.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
vimporter.cpp
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
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
lworker.cpp
lworker.h
4e81dbf1ea0541d2505063722b5fcd61052ccee1 14-Oct-2015 Sean Paul <seanpaul@google.com> am 0436173f: Merge "drm_hwcomposer: Disable planes on frame failure" into mnc-dr-dev

* commit '0436173f2e3ba646078baf33208fa3ea54113bde':
drm_hwcomposer: Disable planes on frame failure
0436173f2e3ba646078baf33208fa3ea54113bde 14-Oct-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Disable planes on frame failure" into mnc-dr-dev
c359481f9c64276e272973abe369ee000c8ecd2c 14-Oct-2015 Haixia Shi <hshi@chromium.org> am 806b395c: drm_hwcomposer: name the texture samplers individually and unroll loop

* commit '806b395c7ad59387773f31ffb5eb7c2f340bd794':
drm_hwcomposer: name the texture samplers individually and unroll loop
806b395c7ad59387773f31ffb5eb7c2f340bd794 13-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: name the texture samplers individually and unroll loop

Per GLSL spec: when aggregated into arrays within a shader, samplers can
only be indexed with a "dynamically uniform integra expression", other-
wise results are undefined.

The current fragment shader is not spec compliant because it evaluates
the sampler array in a non-uniform flow control, where the loop may exit
early in a "break" statement depending on the per-pixel alpha value.

BUG=24718688
BUG=chrome-os-partner:46348
TEST=follow bug report and verify GLWorker composites 5 layers correctly

Change-Id: I3a4c4b5aa847a1b5ec32f58f0e8c0b349289f5f5
lworker.cpp
ee90cb8ad03b2113682f13683c56fda06863314f 14-Oct-2015 Haixia Shi <hshi@google.com> am f95a1f03: Merge "drm_hwcomposer: fix logic error in premult blending" into mnc-dr-dev

* commit 'f95a1f03c188a9c6b51e849c1a959131f59e53da':
drm_hwcomposer: fix logic error in premult blending
ff0b8943136376f2143999bde0525218ea5e32d7 14-Oct-2015 Zach Reizner <zachr@google.com> am acba14be: drm_hwcomposer: set the composition map\'s display field

* commit 'acba14be77a39f6a1336f5751e99ff83f2df8ec1':
drm_hwcomposer: set the composition map's display field
f95a1f03c188a9c6b51e849c1a959131f59e53da 14-Oct-2015 Haixia Shi <hshi@google.com> Merge "drm_hwcomposer: fix logic error in premult blending" into mnc-dr-dev
19742e39efa8658fdb884fa614a695a7ff8c0888 14-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: fix logic error in premult blending

In case of premult blending, the tex.rgb is premultiplied with tex.a,
but it still needs to be multiplied by the plane alpha.

BUG=24914993
TEST=verify the blending artifacts are fixed

Change-Id: I9135f91d52b2d256a71895e13caf2158286de992
lworker.cpp
acba14be77a39f6a1336f5751e99ff83f2df8ec1 14-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: set the composition map's display field

Change-Id: I67842cdfd0afab67a81448c1b64da47d2f933db3
wcomposer.cpp
159208a94dd31550e4b5d1472e07fd121bd862ff 13-Oct-2015 Sean Paul <seanpaul@google.com> am 647781f6: Merge "drm_hwcomposer: Increase failure time for acquire fences" into mnc-dr-dev

* commit '647781f69641f85b080b1f649a01b4dae59938f2':
drm_hwcomposer: Increase failure time for acquire fences
647781f69641f85b080b1f649a01b4dae59938f2 13-Oct-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Increase failure time for acquire fences" into mnc-dr-dev
7858e02fd69d8720975afb45b84ebf5740e61c33 13-Oct-2015 Zach Reizner <zachr@google.com> am 7e88be90: drm_hwcomposer: improve logging and reliability of some error paths

* commit '7e88be90cf44838fd183ee3d4981c19d7171e501':
drm_hwcomposer: improve logging and reliability of some error paths
7b1e4bc9186b3920cf67bab4f84af59b93118319 13-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Disable planes on frame failure

When a frame fails, disable all active planes for the display
and signal the release fences. This avoids the situation where
we might end up frozen b/c someone is waiting for the active
fences to signal.

BUG=chrome-os-partner:46301
TEST=Tested on smaug with a kernel that fails every 1000 frames

Change-Id: I3cd4ad4f22801068465b2c6278e96027b5a7e3c5
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
971be15979d75c681054d1433c898969f267ed53 13-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Increase failure time for acquire fences

Increase the acquire timeout to effectively 500ms before failing
a frame. Also log every 100ms so we're still able to track long
fence waits.

BUG=chrome-os-partner:46301
TEST=Tested on smaug with cts test, saw timeout messages, but not
failures

Change-Id: I28ec8bbf95f4a70bd3e99ea7a3333166c6080788
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
5a55632bd3dd73fba74f204b38e1399bbb39aa73 13-Oct-2015 Zach Reizner <zachr@google.com> am f99d53f6: drm_hwcomposer: fix small class consistency issues

* commit 'f99d53f6f9535055710f17ff7573f9b52d54e07f':
drm_hwcomposer: fix small class consistency issues
9c0f850d403d21bac344e1a47c2f46d82a062a8e 13-Oct-2015 Zach Reizner <zachr@google.com> am a281f8fc: drm_hwcomposer: small feature/style enhancements for seperate_rects

* commit 'a281f8fce9fd2c6b9b1e539ffed18b71586a7bc5':
drm_hwcomposer: small feature/style enhancements for seperate_rects
da555d302acab22a033c052705da18a5d2df5109 13-Oct-2015 Zach Reizner <zachr@google.com> am 0867992b: drm_hwcomposer: use in-class member initializers for AutoEGLDisplayImage

* commit '0867992b119b957f16a93ac9582301c5cca80116':
drm_hwcomposer: use in-class member initializers for AutoEGLDisplayImage
7e88be90cf44838fd183ee3d4981c19d7171e501 13-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: improve logging and reliability of some error paths

Change-Id: I4a955c6261a9674009eec2264eb2ef4a161da9c4
rmcomposition.cpp
rmcompositor.cpp
wcomposer.cpp
f99d53f6f9535055710f17ff7573f9b52d54e07f 09-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: fix small class consistency issues

This also fixes a typo in an error message.

Change-Id: Ie6c369f5eb2496ac3ebb342dbdcdd70f3a176495
rm_hwcomposer.h
wcomposer.cpp
a281f8fce9fd2c6b9b1e539ffed18b71586a7bc5 09-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: small feature/style enhancements for seperate_rects

With C++11, we can condense the double angle brackets.

This commit also includes an integer version of seperate_rects and some
convenience functions for rectangles.

Change-Id: Ide2a6b930cdf30c0f7a58d4199e02c06df492776
eperate_rects.cpp
eperate_rects.h
0867992b119b957f16a93ac9582301c5cca80116 09-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: use in-class member initializers for AutoEGLDisplayImage

Change-Id: Id78a646d264eb3fab833f279f30570ddc89fadb7
utogl.h
c0faeb0ccbb22d64e3653266220e79e8c69641e8 10-Oct-2015 Haixia Shi <hshi@chromium.org> am 3a8773c4: drm_hwcomposer: support the PREMULT blending mode in glworker

* commit '3a8773c4747b9e9077bfaea4ab18225077ef90c6':
drm_hwcomposer: support the PREMULT blending mode in glworker
3a8773c4747b9e9077bfaea4ab18225077ef90c6 10-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: support the PREMULT blending mode in glworker

BUG=24791071
TEST=verify notification icon shade is consistent with or without glworker

Change-Id: Ib7db1ece2e1dd327fdc1ffdbd44c360bd63f76b9
lworker.cpp
a9ea57b219f2d4378579ea2f9bd16f7855d06dc7 09-Oct-2015 Season Li <seasonl@nvidia.com> am e823f649: drm_hwcomposer: Fix EGL_BAD_DISPLAY errors

* commit 'e823f649199c70560357a79c5709b8dd4009b459':
drm_hwcomposer: Fix EGL_BAD_DISPLAY errors
e823f649199c70560357a79c5709b8dd4009b459 08-Oct-2015 Season Li <seasonl@nvidia.com> drm_hwcomposer: Fix EGL_BAD_DISPLAY errors

Dont call eglDestroyImageKHR in move construtor
since image_ and display_ are not initialized.

Google Issue: 44452

Change-Id: Ie20be3b021d4562f2cd8a89d2666307afcde1cf2
utogl.h
a80dbbe9d022b72258380ec005534bf789a7c1d8 08-Oct-2015 Haixia Shi <hshi@chromium.org> am d21f5281: drm_hwcomposer: support virtual displays

* commit 'd21f528156b17c9e069bfb4e215d7e399c94795b':
drm_hwcomposer: support virtual displays
d21f528156b17c9e069bfb4e215d7e399c94795b 05-Oct-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: support virtual displays

Virtual display support is mandatory for HWC version 1.4.

As a minimal implementation, we use frambuffer target and let SF take care of
GLES composition. We still need to handle the acquire and release fences for
both the virtual display and all layers in a separate worker thread.

BUG=24609829
TEST=screen casting to chromecast

Change-Id: Idb962f4b5bb852c9ec9ebcaa1679a653c01737fb
ndroid.mk
wcomposer.cpp
irtualcompositorworker.cpp
irtualcompositorworker.h
7be4448c66499a823c4b6acd7b6551c005c60776 08-Oct-2015 Zachary Reizner <zachr@google.com> am c9d98e57: Merge "drm_hwcomposer: fill hwc_display_contents retireFenceFd" into mnc-dr-dev

* commit 'c9d98e57d47177b8ce1b5eff8e8f490e9bdbc16f':
drm_hwcomposer: fill hwc_display_contents retireFenceFd
c9d98e57d47177b8ce1b5eff8e8f490e9bdbc16f 08-Oct-2015 Zachary Reizner <zachr@google.com> Merge "drm_hwcomposer: fill hwc_display_contents retireFenceFd" into mnc-dr-dev
566da2bb02ea8ef6f817a702ecc73061c700fcdd 07-Oct-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: fill hwc_display_contents retireFenceFd

This restores the behavior of "drm_hwcomposer: Populate retireFenceFd"

The retire fence is triggered when all releaseFenceFd's of the display's
layers are triggered.

Change-Id: Id06f2df03dcb9638ccbae23f46c42b05551fae6d
wcomposer.cpp
49d8614350dad59ae6a1f784e2ad63496eacfea6 07-Oct-2015 Sean Paul <seanpaul@chromium.org> am 27ca02a5: drm_hwcomposer: Bump the acquire fence timeout to 83ms

* commit '27ca02a525513574c2e2ed2c559607487f0de42b':
drm_hwcomposer: Bump the acquire fence timeout to 83ms
27ca02a525513574c2e2ed2c559607487f0de42b 01-Oct-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Bump the acquire fence timeout to 83ms

To accomodate peak usage situations.

Change-Id: I46031ce394abf1ec09177089508dd625d7c17aaa
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.h
159b189188ffb22f2bcfc9306a556c73868e150b 02-Oct-2015 Sean Paul <seanpaul@chromium.org> am 57355410: drm_hwcomposer: Process modesets via compositor

* commit '573554106db499d323bea12ff00363b1816f8c8a':
drm_hwcomposer: Process modesets via compositor
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>
rmcomposition.cpp
rmcomposition.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmresources.cpp
rmresources.h
ce27f5384b7b3c69c3878d631d7e25775e86a581 30-Sep-2015 Haixia Shi <hshi@chromium.org> am 7acc59be: drm_hwcomposer: fix crash in hwc_set()

* commit '7acc59be7f12ad45b9abfa56c2d21726edf6224e':
drm_hwcomposer: fix crash in hwc_set()
7acc59be7f12ad45b9abfa56c2d21726edf6224e 30-Sep-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: fix crash in hwc_set()

For each display context we need to unconditionally call emplace_back()
on layers_indices to ensure that entries in layers_indices correspond to
the correct display.

BUG=24506167
TEST=still builds and boots ok
Change-Id: I6bc0858471c9ec51615c8ed7d8613529f77cb1ab
wcomposer.cpp
a2a1e662dc27cf8c57aa99fe71bbc7a34cd4674a 29-Sep-2015 Sean Paul <seanpaul@chromium.org> am d106b919: drm_hwcomposer: Set timeouts for fence waits

* commit 'd106b919a575fb45388ee4a21b41c77e18e7cd27':
drm_hwcomposer: Set timeouts for fence waits
d106b919a575fb45388ee4a21b41c77e18e7cd27 29-Sep-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set timeouts for fence waits

Instead of waiting forever for fences, set some reasonable timeouts
so we can move on with life if a fence doesn't signal.

BUG=chrome-os-partner:45868
TEST=Tested on smaug with osmos, recovered from fence timeouts

Change-Id: I7f18d684d483d789f228cbad8d5a3e43ac898a43
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmframebuffer.h
aa3b3e0eb1360aaa969220ee63f999130a5453e2 26-Sep-2015 Haixia Shi <hshi@chromium.org> am 2133275a: drm_hwcomposer: use GL_TEXTURE_EXTERNAL_OES target for src textures

* commit '2133275a68d3a3b4968c20e5827924abfa48938a':
drm_hwcomposer: use GL_TEXTURE_EXTERNAL_OES target for src textures
545dc4b95f15899db789a3a0caf39a0ceaf2a180 26-Sep-2015 Zach Reizner <zachr@google.com> am 4a253659: drm_hwcomposer: implement the safe handling of layers

* commit '4a253659cef3d82bfb0b25b3ff4c7b073d7a0460':
drm_hwcomposer: implement the safe handling of layers
2133275a68d3a3b4968c20e5827924abfa48938a 25-Sep-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: use GL_TEXTURE_EXTERNAL_OES target for src textures

The GL_TEXTURE_EXTERNAL_OES supports format conversion for YUV external
textures, whereas GL_TEXTURE_2D does not.

Convert crop rects to normalized coordinates.

BUG=chrome-os-partner:45761
TEST=run netflix and observe corruption is fixed during animation transition

Change-Id: Iad9a187faad6b58f1c4b1d19edd0d2a5cbc9a561
lworker.cpp
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
rm_hwcomposer.h
rmcomposition.cpp
rmcomposition.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
lworker.cpp
lworker.h
wcomposer.cpp
eperate_rects.h
2b2071d7740538b515a84fc2da08d7989aa3c60f 22-Sep-2015 Sean Paul <seanpaul@google.com> am 176d9464: Merge "drm_hwcomposer: limit maximum depth of display composition queue" into mnc-dr-dev

* commit '176d9464c7ca1004f8e2b994267ac0d07fd7237e':
drm_hwcomposer: limit maximum depth of display composition queue
176d9464c7ca1004f8e2b994267ac0d07fd7237e 22-Sep-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: limit maximum depth of display composition queue" into mnc-dr-dev
85f6950628d5ca9ca3903b737d139de23389aa20 21-Sep-2015 Sean Paul <seanpaul@chromium.org> am 51a597e1: drm_hwcomposer: Make gl worker log tag consistent with rest of hwc

* commit '51a597e185a9cc7f651f70b87c7d638a49c0e8b1':
drm_hwcomposer: Make gl worker log tag consistent with rest of hwc
8754107ccd9481f84acfa215330699557cc9dbfa 21-Sep-2015 Sean Paul <seanpaul@chromium.org> am bdc67bff: drm_hwcomposer: Plumb frame number through display composition

* commit 'bdc67bffcffaa838836b1111f6dcf07cba5ff134':
drm_hwcomposer: Plumb frame number through display composition
51a597e185a9cc7f651f70b87c7d638a49c0e8b1 21-Sep-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Make gl worker log tag consistent with rest of hwc

For easy logcat grepping.

Change-Id: I79b82f4d359268a6e116f602f2ffb90885cdb3dd
Signed-off-by: Sean Paul <seanpaul@chromium.org>
lworker.cpp
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>
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
b6610170017b62587ba047aef6737250ca64cc1b 11-Sep-2015 Haixia Shi <hshi@chromium.org> am 26fc2c21: drm_hwcomposer: correctly handle rotation + cropping

* commit '26fc2c21a055d0ef1bb85fe205d977bd1822769a':
drm_hwcomposer: correctly handle rotation + cropping
26fc2c21a055d0ef1bb85fe205d977bd1822769a 11-Sep-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: correctly handle rotation + cropping

BUG=chrome-os-partner:44741
TEST=ryu, window transition animation (10x slowdown) in all orientations

Change-Id: Ibeb880a60ecf168e9d15e2f16b5f0b5642d85f1c
lworker.cpp
549bf1785590677491830cc80896ee6e78911f6f 09-Sep-2015 Haixia Shi <hshi@chromium.org> am 1034bb7e: drm_hwcomposer: use HWC_FRAMEBUFFER_TARGET if all HWC_OVERLAY layers are skipped

* commit '1034bb7eef0582d8a641e455a6867aa5c99eaf2d':
drm_hwcomposer: use HWC_FRAMEBUFFER_TARGET if all HWC_OVERLAY layers are skipped
1034bb7eef0582d8a641e455a6867aa5c99eaf2d 09-Sep-2015 Haixia Shi <hshi@chromium.org> drm_hwcomposer: use HWC_FRAMEBUFFER_TARGET if all HWC_OVERLAY layers are skipped

Apparently there are cases (such as during rotation) where SF will put content
in framebuffer target and set HWC_SKIP_LAYER on all other layers. In this case
we need to use the HWC_FRAMEBUFFER_TARGET layer.

BUG=23936827
TEST=verify on ryu that rotation works

Change-Id: Ice8ee5a023a92fc286dbf837a822fa6f6c0fde6b
wcomposer.cpp
8fb41c6ff5a4d370bdf7d704b9bf2800e2f658c5 04-Sep-2015 Sean Paul <seanpaul@chromium.org> am 2143d3bc: drm_hwcomposer: Allow NULL crtcs in display composition

* commit '2143d3bc9da37525cacd432cd51b6e4f459c47a2':
drm_hwcomposer: Allow NULL crtcs in display composition
2143d3bc9da37525cacd432cd51b6e4f459c47a2 04-Sep-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Allow NULL crtcs in display composition

In cases where we have displays which do not have a mode,
the crtc will be NULL. This shouldn't fail the composition
initialization.

Change-Id: I1a6acb72cd3f614b5a7c854ba61be1539efa4bea
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmcomposition.cpp
rmdisplaycomposition.cpp
09719ab5964a1a66e51a851dce714b26952eaab9 28-Aug-2015 Stéphane Marchesin <marcheu@chromium.org> am 3c32ca68: drm_hwcomposer: Allow layer transforms

* commit '3c32ca686cfb7bc7384e6c675610b5898d4c7ba0':
drm_hwcomposer: Allow layer transforms
3c32ca686cfb7bc7384e6c675610b5898d4c7ba0 25-Aug-2015 Stéphane Marchesin <marcheu@chromium.org> drm_hwcomposer: Allow layer transforms

They are very much valid now. I think this is just leftover?

BUG=chrome-os-partner:42717
TEST=test rotation, it doesn't lock up

Change-Id: I4cd96ae91c91452ef2be3cb3b07c123ce38ed576
rmdisplaycomposition.cpp
9be6b279eb5d4c5a02b889a8a2c68b53a302b565 22-Aug-2015 Zach Reizner <zachr@google.com> am 8d63e7fd: drm_hwcomposer: cache the framebuffers given to the GLWorker

* commit '8d63e7fde00f5830480cd2225954f70e6b681d8b':
drm_hwcomposer: cache the framebuffers given to the GLWorker
8d63e7fde00f5830480cd2225954f70e6b681d8b 20-Aug-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: cache the framebuffers given to the GLWorker

This saves some work in EGL/GL that would normally get repeated every frame.
Because the same framebuffers are generally used every frame, this CL adds a
cache containing all the EGL/GL objects that correspond to the given
GraphicBuffer. The cache initially holds a strong reference while rendering,
but once glFinish is called, only a weak reference is held until rendering
to that same GraphicBuffer starts again. The weak reference is used to check
if that GraphicBuffer has been destroyed, which means the corresponding EGL/GL
resources should be destroyed.

The cache can be disabled with the following command:
$ adb shell setprop hwc.drm.use_framebuffer_cache 0

Change-Id: Iddee1efc5bad67f6c4479e7f402354e229c3b0a2
rmdisplaycompositor.cpp
lworker.cpp
lworker.h
562af09e6408e1ded2240cea99ab3c2f7c882768 19-Aug-2015 Zach Reizner <zachr@google.com> am 1946fa79: drm_hwcomposer: add properties to disable overlays or to use HWC_FRAMEBUFFER

* commit '1946fa79833304216f7d8997250f6c6a7092cae4':
drm_hwcomposer: add properties to disable overlays or to use HWC_FRAMEBUFFER
1e5d0396013a6919738cb1407ea36052bf11218d 18-Aug-2015 Zach Reizner <zachr@google.com> am 09807059: drm_hwcomposer: enhance stability using various wrapper classes

* commit '098070590ae648ede5f2ef846298de178ccd3637':
drm_hwcomposer: enhance stability using various wrapper classes
1946fa79833304216f7d8997250f6c6a7092cae4 14-Aug-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add properties to disable overlays or to use HWC_FRAMEBUFFER

To use SurfaceFlinger's GL compositor, use the setprop command:
$ adb shell setprop hwc.drm.use_framebuffer_target 1

A side effect of using the above property is that drm_hwcomposer will only be
compositing one primary plane.

To disable overlays (to force the GL compositor to be used more often):
$ adb shell setprop hwc.drm.use_overlay_planes 0

The default behavior is the opposite of the above properties.

Change-Id: I86afb533c10a8caa15931e8c292f52bb94e5f6c5
rmcomposition.cpp
wcomposer.cpp
49855c8739908d590b3224dca9d7eb2fecd25537 14-Aug-2015 Zach Reizner <zachr@google.com> am c6520e48: drm_hwcomposer: style fixes

* commit 'c6520e488fa82accb1882381bb5540ea419a0276':
drm_hwcomposer: style fixes
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
utogl.h
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmresources.cpp
lworker.cpp
lworker.h
wcomposer.cpp
c6520e488fa82accb1882381bb5540ea419a0276 13-Aug-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: style fixes

Change-Id: Id04a088a895f8372a32623713589d43d5e0495ef
rmmode.cpp
rmproperty.cpp
wcomposer.cpp
vimporter.cpp
04f45ff1fc4fc78a5dc0d6cac56c6eb5a5d3ee8d 08-Aug-2015 Zach Reizner <zachr@google.com> am b44fd10a: drm_hwcomposer: duplicate buffer_handles before hwc_set returns

* commit 'b44fd10aef978ff4f77258803f86d76244349333':
drm_hwcomposer: duplicate buffer_handles before hwc_set returns
984ee797a2d3f49bd04a1b0c64b4cf602547208c 08-Aug-2015 Zach Reizner <zachr@google.com> am 46ddd45e: drm_hwcomposer: fix buffer leak when using the GL compositor inside DrmDisplayCompositor

* commit '46ddd45e334b61e15a86cc333cc35e8cb64fc0b8':
drm_hwcomposer: fix buffer leak when using the GL compositor inside DrmDisplayCompositor
af92d5c7aac0416cda2244510e4de5f5a480e193 08-Aug-2015 Zach Reizner <zachr@google.com> am 459a5a9c: Revert "Revert "drm_hwcomposer: remove compositor interface""

* commit '459a5a9ccd014224882e5522d2957aba10413691':
Revert "Revert "drm_hwcomposer: remove compositor interface""
34c95d6b8ab63bca37f08c9a4087aceaab05abe9 08-Aug-2015 Zach Reizner <zachr@google.com> am 810ecc67: Revert "Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread""

* commit '810ecc67ae408e752325497c836cf6fdccd5ce55':
Revert "Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread""
bcd1efdcc644262cd004ae912fe514b23d4288e8 08-Aug-2015 Zach Reizner <zachr@google.com> am 713a6788: Revert "Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition""

* commit '713a6788528d4cc4cd477b2f546c8b922beb6dde':
Revert "Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition""
b44fd10aef978ff4f77258803f86d76244349333 08-Aug-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: duplicate buffer_handles before hwc_set returns

This is needed because SF will sometimes release buffer_handles before GL gets
to using them for composition.

Change-Id: I01db0975cc82d6b59bf4f9521a24071baf89c38a
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
lworker.cpp
46ddd45e334b61e15a86cc333cc35e8cb64fc0b8 30-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: fix buffer leak when using the GL compositor inside DrmDisplayCompositor

Change-Id: Id3a6deea9fc0f97640b34dacb25d36f3793f2d4e
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
459a5a9ccd014224882e5522d2957aba10413691 01-Aug-2015 Zach Reizner <zachr@google.com> Revert "Revert "drm_hwcomposer: remove compositor interface""

This reverts commit 1c5e55680d9165d8f9bb2bc6e2c4261574b5d41d.
ndroid.mk
ompositor.cpp
ompositor.h
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmresources.cpp
wcomposer.cpp
810ecc67ae408e752325497c836cf6fdccd5ce55 01-Aug-2015 Zach Reizner <zachr@google.com> Revert "Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread""

This reverts commit d078e4cab78f81057cd25355199caba5a147342e.
ndroid.mk
l_compositor.cpp
l_compositor.h
lworker.cpp
lworker.h
wcomposer.cpp
713a6788528d4cc4cd477b2f546c8b922beb6dde 01-Aug-2015 Zach Reizner <zachr@google.com> Revert "Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition""

This reverts commit cbe9c01336e23a63259db65d22d63d6a697b8813.
rmcomposition.cpp
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmframebuffer.h
lworker.cpp
lworker.h
7ad2feea2f8a3bcdb09d0f383d57473b5a617873 30-Jul-2015 Puneet Kumar <puneetster@google.com> am cbe9c013: Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition"

* commit 'cbe9c01336e23a63259db65d22d63d6a697b8813':
Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition"
571f5443b9701c1109125798cd46c5eb25b6286b 30-Jul-2015 Sean Paul <seanpaul@google.com> am e5b3336e: Merge "Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread"" into mnc-dr-dev

* commit 'e5b3336e85e91b494c88bedca319451ca0ac3e52':
Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread"
cbe9c01336e23a63259db65d22d63d6a697b8813 30-Jul-2015 Puneet Kumar <puneetster@google.com> Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition"

This reverts commit 2317bb19d8663efc31e6fcd8cf7fd2a73577253d.

For now until we figure out a more stable SF/hwc

Change-Id: Ia5ca089610a487bf036a1ddd5fb62e504e02ad98
rmcomposition.cpp
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmframebuffer.h
lworker.cpp
lworker.h
e5b3336e85e91b494c88bedca319451ca0ac3e52 30-Jul-2015 Sean Paul <seanpaul@google.com> Merge "Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread"" into mnc-dr-dev
90e5ef072466c749044ff621bc4b76968675fd84 30-Jul-2015 Puneet Kumar <puneetster@google.com> am 1c5e5568: Revert "drm_hwcomposer: remove compositor interface"

* commit '1c5e55680d9165d8f9bb2bc6e2c4261574b5d41d':
Revert "drm_hwcomposer: remove compositor interface"
d078e4cab78f81057cd25355199caba5a147342e 30-Jul-2015 Puneet Kumar <puneetster@google.com> Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread"

This reverts commit abebc7a78fe8a4df6495c8e5064719dc92b04004.

For now until we figure out a more stable solution for SF/hwc

Change-Id: I7a505fc67873f943704e8b48db4167b9beca7691
ndroid.mk
l_compositor.cpp
l_compositor.h
lworker.cpp
lworker.h
wcomposer.cpp
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
ndroid.mk
ompositor.cpp
ompositor.h
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmresources.cpp
wcomposer.cpp
d410f04ec8db892eb37758ddd230223ccab801bc 29-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: limit maximum depth of display composition queue

SurfaceFlinger will destroy our layer handles if we don't use them after about
a second. To get around this issue, we block SurfaceFlinger on hwc_set if the
display composition queue is getting too large. This often happens during
the init of the GLWorker or during heavy GPU usage.

Change-Id: Idb4a3a81e0d3a2caf7f94e5515a19ec16a1c67e3
rmdisplaycompositor.cpp
4bf32ebc2af6e635ced18455b270b4a27fc0bbff 24-Jul-2015 Zach Reizner <zachr@google.com> am 79124389: drm_hwcomposer: remove compositor interface

* commit '7912438911de042dc035cf1ea39daaf4e56bf9f3':
drm_hwcomposer: remove compositor interface
c4b49bc5bc7c2c04ad3be874a00ec30e312fb2e3 24-Jul-2015 Zach Reizner <zachr@google.com> am abebc7a7: drm_hwcomposer: remove GLCompositor and the GLWorker thread

* commit 'abebc7a78fe8a4df6495c8e5064719dc92b04004':
drm_hwcomposer: remove GLCompositor and the GLWorker thread
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
ndroid.mk
ompositor.cpp
ompositor.h
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmresources.cpp
wcomposer.cpp
abebc7a78fe8a4df6495c8e5064719dc92b04004 22-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: remove GLCompositor and the GLWorker thread

They are dead code now that DrmDisplayCompositor uses GL directly.

Change-Id: Ie4beeab60440a51bd87486847b5453e20288d1d8
ndroid.mk
l_compositor.cpp
l_compositor.h
lworker.cpp
lworker.h
wcomposer.cpp
e756ead823cfac5af83725cf039c0233675c5c42 22-Jul-2015 Sean Paul <seanpaul@google.com> am 21271278: Merge "drm_hwcomposer: Populate retireFenceFd" into mnc-dr-dev

* commit '2127127828a33c46e46831f35ba7b9fa27b3f5ba':
drm_hwcomposer: Populate retireFenceFd
2127127828a33c46e46831f35ba7b9fa27b3f5ba 22-Jul-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Populate retireFenceFd" into mnc-dr-dev
04206124b8977a49ce99f782bc121017622c06d8 16-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Populate retireFenceFd

Join all layer releaseFenceFd fences together to get the
retireFenceFd for the display.

Change-Id: I431ee227a62397b1900adb0caaf8b16b319a99cd
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
ff42650dc37cd4c914d78997bf4db4bc3b0772a1 21-Jul-2015 Zach Reizner <zachr@google.com> am 2317bb19: drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition

* commit '2317bb19d8663efc31e6fcd8cf7fd2a73577253d':
drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition
b663c8045e6c2aa94d757e596cfb290cb44d5462 21-Jul-2015 Zach Reizner <zachr@google.com> am ece04894: drm_hwcomposer: make sure all fences are released for DrmDisplayComposition

* commit 'ece04894ab2d2fc3d5001a9e50a242b2d3f765da':
drm_hwcomposer: make sure all fences are released for DrmDisplayComposition
2317bb19d8663efc31e6fcd8cf7fd2a73577253d 16-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition

To accomplish this a few things changed:
- DrmComposition::GetRemainingLayers always returns the number of planes needed
- DrmComposition::AddLayer succeeds even if no DrmPlane was found for it
- DrmDisplayComposition::AddLayer has overload that imports the given buffer
- GLWorkerCompositor has a function to finish its composite before returning

Put together this change makes DrmComposition always accepts all layers given to
it even if it means some of those layers are assigned a NULL DrmPlane. The
DrmDisplayCompositor will scan its given layers for any that are missing planes.
In such a case, a DrmPlane is stolen from the last layer to receive a plane.
Then all layers in the DrmDisplayComposition that have no planes (including the
one stolen from) are composited synchronously using a GLWorkerCompositor and a
new layer is generated from the results. That layer is added to the
DrmDisplayComposition using the new import AddLayer function and the stolen
DrmPlane. DrmDisplayCompostior then continues as usual.

Change-Id: Ia6477c210c8f1307a4e537bec46889110d79ca18
rmcomposition.cpp
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmframebuffer.h
lworker.cpp
lworker.h
ece04894ab2d2fc3d5001a9e50a242b2d3f765da 17-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: make sure all fences are released for DrmDisplayComposition

This change will release the layers passed back to SurfaceFlinger even on an
error in the compositor thread.

Change-Id: I22f622855c8c953a058b4a08d0af1ae427e4cbbd
rmdisplaycomposition.cpp
rmdisplaycomposition.h
e4c3703670d3333f5eed9d5d752a1a481be828e4 18-Jul-2015 Zach Reizner <zachr@google.com> am 952f70a7: drm_hwcomposer: clang-format style and gcc warning fixes

* commit '952f70a71347df3515e43bee15132d0ce6ecea32':
drm_hwcomposer: clang-format style and gcc warning fixes
952f70a71347df3515e43bee15132d0ce6ecea32 17-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: clang-format style and gcc warning fixes

The warning I fixed was unitialized rotation variable. The check for error
followed by a break satisfied the compiler.

Change-Id: Ia1a1a01da252a10aa245e45d588b3aeb91ebf58a
rmdisplaycompositor.cpp
9f01d951e5fab5735ac4c0c27818fc599a3b5e24 17-Jul-2015 Zach Reizner <zachr@google.com> am 57b8d76e: Merge "drm_hwcomposer: add transform support to OpenGL compositor" into mnc-dr-dev

* commit '57b8d76eca6647d9dc45e15a9e42313ff3d2d72e':
drm_hwcomposer: add transform support to OpenGL compositor
57b8d76eca6647d9dc45e15a9e42313ff3d2d72e 17-Jul-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: add transform support to OpenGL compositor" into mnc-dr-dev
d35ff53cf985afec7739f1cc784d8e044aa0358e 17-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add transform support to OpenGL compositor

The GL compositor will respect the layer.transform enum. However, using a
non-identity transform with source cropping is untested, and the documentation
is unclear on what the expected results should be anyways.

Change-Id: I10007743d5b17c611671b647e8f404fdbe1ab4a5
lworker.cpp
6edfd6d1918b8b387e40a78a2a2627cad4eab86c 17-Jul-2015 Zach Reizner <zachr@google.com> am 5536258d: Merge "drm_hwcomposer: style fixes with clang-format" into mnc-dr-dev

* commit '5536258d1da49616300efd1a86b8355dadc98e34':
drm_hwcomposer: style fixes with clang-format
aeed6583406052cffb29a9711969e78f03a316bb 17-Jul-2015 Zach Reizner <zachr@google.com> am 6283686b: Merge "drm_hwcomposer: make the gl worker compositor not nested" into mnc-dr-dev

* commit '6283686b120f3a79ac7680933efbd736b9df7fa6':
drm_hwcomposer: make the gl worker compositor not nested
aa4b210c0bab9f8831010d5d52a0a444735f545b 16-Jul-2015 Sean Paul <seanpaul@chromium.org> am 1c4c3263: drm_hwcomposer: Add rotation support for hw planes

* commit '1c4c32635df1f45bbcf63c8c1a76207ca90402e5':
drm_hwcomposer: Add rotation support for hw planes
5536258d1da49616300efd1a86b8355dadc98e34 16-Jul-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: style fixes with clang-format" into mnc-dr-dev
6283686b120f3a79ac7680933efbd736b9df7fa6 16-Jul-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: make the gl worker compositor not nested" into mnc-dr-dev
1c4c32635df1f45bbcf63c8c1a76207ca90402e5 14-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add rotation support for hw planes

This patch adds support for transformed layers by using the
rotation property on drm planes.

Bug: chrome-os-partner:42093
Test: On smaug using
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:<R>

Change-Id: I86bb8ef2f77b5d046a5fddd57db4b87070b5801f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
rmdisplaycompositor.cpp
rmplane.cpp
rmplane.h
b4a9aeff843e2a834335a4db0fef388ae37b423d 16-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: style fixes with clang-format

Change-Id: I020072a782dde7551ae940d12f3925b8680ba0af
rmdisplaycompositor.cpp
dac5d199ba3d6adeb96c385fa184351543f7cad6 16-Jul-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: make the gl worker compositor not nested

Change-Id: I06b75644408a570044499a9f603a478f3199661f
lworker.cpp
lworker.h
30dfb7b652661e6582dd1f5218fc741c05e1df4b 15-Jul-2015 Sean Paul <seanpaul@google.com> am 7f268265: Merge "drm_hwcomposer: Dump active composition plane/crtc/dimension info" into mnc-dr-dev

* commit '7f26826567ab53c1ebacdd3d7deb5ce4d566ce84':
drm_hwcomposer: Dump active composition plane/crtc/dimension info
7f26826567ab53c1ebacdd3d7deb5ce4d566ce84 15-Jul-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Dump active composition plane/crtc/dimension info" into mnc-dr-dev
db31cf80b0227f4bef459ebda673e1c9d8969935 15-Jul-2015 Sean Paul <seanpaul@chromium.org> am 24323e80: drm_hwcomposer: Convert src_x,src_y to 16.16 fixed

* commit '24323e80e466f0892ea0afe7a18cd1fbd0b62ae1':
drm_hwcomposer: Convert src_x,src_y to 16.16 fixed
24323e80e466f0892ea0afe7a18cd1fbd0b62ae1 15-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Convert src_x,src_y to 16.16 fixed

We convert src_w,src_h, but failed to convert src_x.src_y. This
has the effect of never indexing into fb's properly.

Bug: chrome-os-parter:42311
Test: On smaug, open up the add google account screen, it should
not be shifted

Change-Id: Ic5cf654d93ea6c89c2cbd23c1d847fbc412a7d19
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycompositor.cpp
fd37dfe3c0027857d66db489657f14955ced5790 13-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Dump active composition plane/crtc/dimension info

Should help with debugging if we can compare the SF layer info with
what drm_hwc is doing.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I333848b2141dff4c533f6dc22194826fdcf25dff
rmdisplaycompositor.cpp
77589e804aa3c8686c2fb3ee8e84dcc11b0cac44 14-Jul-2015 Stéphane Marchesin <marcheu@google.com> am 5069ca28: Merge "drm_hwcomposer: Print fps as float in dump()" into mnc-dr-dev

* commit '5069ca28d6ed969485ffae8a7742519868c33b53':
drm_hwcomposer: Print fps as float in dump()
3a9ba12881abb244286cd8d75b1437e680ef645b 14-Jul-2015 Stéphane Marchesin <marcheu@google.com> am 4c645f06: Merge "drm_hwcomposer: Convert v_refresh() to float" into mnc-dr-dev

* commit '4c645f06828f522056147c3582e89dc46d9f685a':
drm_hwcomposer: Convert v_refresh() to float
603a537694a967edaeefc96ad41442d5688b8d2b 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 5969042b: am e850fa2e: (-s ours) drm_hwcomposer: Process DPMS requests through compositor

* commit '5969042b5cb2324212a626786c35105ea4423510':
drm_hwcomposer: Process DPMS requests through compositor
drm_hwcomposer: Free failed composition in QueueComposition
6d837540363a5020cf098c267df774ae50f3e7c6 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 6f44db00: am 1abf5c3f: (-s ours) drm_hwcomposer: Add composition type to DrmComposition

* commit '6f44db00f345dcb0ca0aeff5877faed22604222a':
drm_hwcomposer: Add composition type to DrmComposition
6ac828a7c52cfc45f0efdd78750b303c8ed56762 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 4685a642: am e86fcfbb: (-s ours) drm_hwcomposer: Split the drm compositor into per-display threads

* commit '4685a6421b2cb242b4ccbe11e1804fccab1cd7f5':
drm_hwcomposer: Split the drm compositor into per-display threads
b926664c52e37a2284ad2acb1e294b0fec72fdd7 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 2e46fbd9: drm_hwcomposer: Disable unused planes

* commit '2e46fbd90b1aae158ec0437f564dd610e7392f7a':
drm_hwcomposer: Disable unused planes
5a27c3897834ee259d2087fee4e9b38ddfadbb5a 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 9099aa5e: drm_hwcomposer: Use vector for overlay planes

* commit '9099aa5e280c094154fd312f415336c1aabb4b8e':
drm_hwcomposer: Use vector for overlay planes
d9ad3802a4e05624f9aefe269008ed23ae70b978 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am db7a17d2: drm_hwcomposer: Process DPMS requests through compositor

* commit 'db7a17d28ca48f81be3091e99564e47fa0503e9e':
drm_hwcomposer: Process DPMS requests through compositor
a0914d4ef81b513e8d6fadd037ae4bade54e6221 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am fd138289: drm_hwcomposer: Free failed composition in QueueComposition

* commit 'fd1382895821a40310da9a22d7e0dce5bef4373b':
drm_hwcomposer: Free failed composition in QueueComposition
6c86a0fa1325dcac7474a9b3e81ebd3ef2766fa7 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am acb2a449: drm_hwcomposer: Add composition type to DrmComposition

* commit 'acb2a4494e79f0026f8615acc561257276a71062':
drm_hwcomposer: Add composition type to DrmComposition
7ed691894bf24b80e6dfada697e02ca0f34f4ba1 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 98e73c89: drm_hwcomposer: Split the drm compositor into per-display threads

* commit '98e73c89a683a92f44c99fb8dc85e51bdda243ba':
drm_hwcomposer: Split the drm compositor into per-display threads
5069ca28d6ed969485ffae8a7742519868c33b53 14-Jul-2015 Stéphane Marchesin <marcheu@google.com> Merge "drm_hwcomposer: Print fps as float in dump()" into mnc-dr-dev
4c645f06828f522056147c3582e89dc46d9f685a 14-Jul-2015 Stéphane Marchesin <marcheu@google.com> Merge "drm_hwcomposer: Convert v_refresh() to float" into mnc-dr-dev
5969042b5cb2324212a626786c35105ea4423510 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am e850fa2e: (-s ours) drm_hwcomposer: Process DPMS requests through compositor

* commit 'e850fa2e39da03695e03c1824a08f8be9b4cfdbf':
drm_hwcomposer: Process DPMS requests through compositor
drm_hwcomposer: Free failed composition in QueueComposition
6f44db00f345dcb0ca0aeff5877faed22604222a 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am 1abf5c3f: (-s ours) drm_hwcomposer: Add composition type to DrmComposition

* commit '1abf5c3fd61c1698e1ef7f9794cac5e22609a58c':
drm_hwcomposer: Add composition type to DrmComposition
4685a6421b2cb242b4ccbe11e1804fccab1cd7f5 14-Jul-2015 Sean Paul <seanpaul@chromium.org> am e86fcfbb: (-s ours) drm_hwcomposer: Split the drm compositor into per-display threads

* commit 'e86fcfbb5c3f857efbcccb335c9a1a72a7a101cb':
drm_hwcomposer: Split the drm compositor into per-display threads
839599292e09e70387d87ad7213733da858b37e5 13-Jul-2015 Stéphane Marchesin <marcheu@chromium.org> drm_hwcomposer: Print fps as float in dump()

This is more accurate than using ints which helps with profiling work.

Change-Id: I9ba8cc8a2b0e9c1fa02bc217444d4001f0e19009
rmdisplaycompositor.cpp
b74e08cc80325883bf4561e11cec0e83f0863728 05-Jul-2015 Stéphane Marchesin <marcheu@chromium.org> drm_hwcomposer: Convert v_refresh() to float

We convert v_refresh() to return a float and instead of storing it,
compute it on the fly from the pixel clock + htotal/vtotal. This makes
the synthetic vblank computation much more accurate.

Change-Id: I2a0becf75eaca8ace30d176fdc813f3b57ba23a5
rmmode.cpp
rmmode.h
syncworker.cpp
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>
rmcomposition.cpp
rmcomposition.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>
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
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>
rmcomposition.cpp
rmcomposition.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmresources.cpp
fd1382895821a40310da9a22d7e0dce5bef4373b 10-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Free failed composition in QueueComposition

Rather than maintaining ownership of the composition in the
caller, free the DrmComposition in QueueComposition on failure.

Change-Id: Id70e98ae1a8eef400bc29460bfc5a89c4707d617
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ompositor.h
rmcompositor.cpp
wcomposer.cpp
acb2a4494e79f0026f8615acc561257276a71062 25-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add composition type to DrmComposition

This allows us to have different types of compositions. This will
enable injection of non-frame related compositions such as dpms
and mode.

Change-Id: Ia62421c114c0c6bebccef3ce6ae936366b6aafe2
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
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
ndroid.mk
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmcompositorworker.cpp
rmcompositorworker.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
e850fa2e39da03695e03c1824a08f8be9b4cfdbf 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>
rmcomposition.cpp
rmcomposition.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
rmresources.cpp
1d4c54cbc40ac57139d336df4b80561df3238932 10-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Free failed composition in QueueComposition

Rather than maintaining ownership of the composition in the
caller, free the DrmComposition in QueueComposition on failure.

Change-Id: Id70e98ae1a8eef400bc29460bfc5a89c4707d617
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ompositor.h
rmcompositor.cpp
wcomposer.cpp
1abf5c3fd61c1698e1ef7f9794cac5e22609a58c 25-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add composition type to DrmComposition

This allows us to have different types of compositions. This will
enable injection of non-frame related compositions such as dpms
and mode.

Change-Id: Ia62421c114c0c6bebccef3ce6ae936366b6aafe2
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
e86fcfbb5c3f857efbcccb335c9a1a72a7a101cb 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
ndroid.mk
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmcompositorworker.cpp
rmcompositorworker.h
rmdisplaycomposition.cpp
rmdisplaycomposition.h
rmdisplaycompositor.cpp
rmdisplaycompositor.h
90fd1b39effffc2f8ed84bec462871643a100589 09-Jul-2015 Zach Reizner <zachr@google.com> am d20b3190: Merge "drm_hwcomposer: Add glworker" into mnc-dev

* commit 'd20b3190c28329914ad0c21c508cb3c9bb83ee02':
drm_hwcomposer: Add glworker
d20b3190c28329914ad0c21c508cb3c9bb83ee02 09-Jul-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: Add glworker" into mnc-dev
ed294c89d55e30a70657b83b38fbf0a9d7021ee5 08-Jul-2015 Sean Paul <seanpaul@chromium.org> am 85c58c63: drm_hwcomposer: Add blob property type

* commit '85c58c63ff707874d62e7b088e5ed439b8724d6f':
drm_hwcomposer: Add blob property type
6cbe883275ec58139ea13fef69628f233822808e 27-Jun-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: Add glworker

The glworker allows signalling the fence synchronously once the GL
work is done. It also helps performance by putting all GL in a
separate thread, which avoids (costly on some GPUs) makecurrent.

Change-Id: Ia4ee137df5c9a4b1afcf6180407371d6ba7f699a
ndroid.mk
l_compositor.cpp
l_compositor.h
lworker.cpp
lworker.h
85c58c63ff707874d62e7b088e5ed439b8724d6f 08-Jul-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add blob property type

The blob property type doesn't use the values_ vector, instead
just storing the blob id directly in value_.

Change-Id: Ibde7c64cb7fe515ece9e9f396866de2da518707f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmproperty.cpp
rmproperty.h
c656e8e5e8946eb0f7b03a5583e79323e8dc29aa 24-Jun-2015 Stéphane Marchesin <marcheu@chromium.org> am be98c8cb: drm_hwcomposer: Add tracing for the main functions

* commit 'be98c8cb94511d374238e4a02c92b545b6e5fde2':
drm_hwcomposer: Add tracing for the main functions
be98c8cb94511d374238e4a02c92b545b6e5fde2 24-Jun-2015 Stéphane Marchesin <marcheu@chromium.org> drm_hwcomposer: Add tracing for the main functions

This will help the profiling efforts, now that all the low-hanging
fruit is gone.

BUG=none
TEST=run systrace, see tracing

Change-Id: I9a149afdea8b84837c19f8e224ce8a7e2db1dd9a
rmcompositor.cpp
l_compositor.cpp
wcomposer.cpp
99dd4bd715603df6c671d1b81514b4cf5d9fa65e 20-Jun-2015 Stéphane Marchesin <marcheu@chromium.org> am cb3f984b: drm_hwcomposer: Switch to triple buffering

* commit 'cb3f984b07cde381bf4847426ef3b9ed1f956524':
drm_hwcomposer: Switch to triple buffering
cb3f984b07cde381bf4847426ef3b9ed1f956524 19-Jun-2015 Stéphane Marchesin <marcheu@chromium.org> drm_hwcomposer: Switch to triple buffering

This increases the performance of the UI (30->40 fps).

BUG=none
TEST=boot to UI, swipe between desktops, measure fps

Change-Id: Ie0ff4b51c3db402a40c9676d3f09d48d85097bce
wcomposer.cpp
d0369cb93acd3d9cc788ba0e839c438850098a1d 17-Jun-2015 Sean Paul <seanpaul@chromium.org> am 877be974: drm_hwcomposer: Use atomic modeset to set crtc timing

* commit '877be974a2d4fc518700be8ffe803a50cb716ead':
drm_hwcomposer: Use atomic modeset to set crtc timing
877be974a2d4fc518700be8ffe803a50cb716ead 03-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use atomic modeset to set crtc timing

Use the new drm blob ioctl and atomic modeset properties to
do atomic modesetting, as opposed to the old setCrtc call.

This allows us to set timing as soon as the system layer requests
a new active config, as opposed to delaying it until we have
an fb. Aside from reducing complexity, this should help with
event control requests as we'll be able to service them with
hw vblanks instead of synthesized sleeps.

Change-Id: I9c80d44f52f52881a3a25b2ae518973d468bc110
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmcompositor.cpp
rmcompositor.h
rmconnector.cpp
rmconnector.h
rmcrtc.cpp
rmcrtc.h
rmmode.cpp
rmmode.h
rmproperty.cpp
rmproperty.h
rmresources.cpp
rmresources.h
wcomposer.cpp
e18e40752374e48c40dc194b24791c7c9337d3f7 12-Jun-2015 Zach Reizner <zachr@google.com> am 1f4ff5ae: Merge "drm_hwcomposer: integrate GLCompositor with hwcomposer" into mnc-dev

* commit '1f4ff5aec7bec305558228adb65ba56bd0b9f366':
drm_hwcomposer: integrate GLCompositor with hwcomposer
1f4ff5aec7bec305558228adb65ba56bd0b9f366 12-Jun-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: integrate GLCompositor with hwcomposer" into mnc-dev
45624d3b2fb4ab6bec6d3fde56e3e2f0c21a9d7f 11-Jun-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: integrate GLCompositor with hwcomposer

This patch makes it such that HWC will always composite all layers even if
there are too few HW planes. Any layers that do not fit in a plane get
rendered into a screen sized buffer by GLCompositor, the result of which uses
up one of the available HW planes.

Change-Id: Ibd560ae4c536632ac32d965152ceacd92bbba39f
ndroid.mk
wcomposer.cpp
a10780f551d376352db80d5f8cb76c85609bc13b 11-Jun-2015 Zach Reizner <zachr@google.com> am 656da669: Merge "drm_hwcomposer: correct alpha channel output on gl framebuffers" into mnc-dev

* commit '656da669ecc00174ad2e64f0853db8084305debe':
drm_hwcomposer: correct alpha channel output on gl framebuffers
bfa8d5b87bf033ac06a8b186e065c746f5f9c5e9 11-Jun-2015 Sean Paul <seanpaul@google.com> am 61afa2a5: Merge "drm_hwcomposer: Use HW overlay planes" into mnc-dev

* commit '61afa2a5dc6e2a3483bd8def602f86797e27cca4':
drm_hwcomposer: Use HW overlay planes
0fe02e8c8feabf32cf7857b772cdc028328a597d 11-Jun-2015 Zach Reizner <zachr@google.com> am e7202500: Merge "drm_hwcomposer: make GLCompositor delete bo with Importer" into mnc-dev

* commit 'e72025008497ad14ddc00614df7a2251e8ef228f':
drm_hwcomposer: make GLCompositor delete bo with Importer
d937e49284a942edc3d250b006f33668f7024edf 11-Jun-2015 Zach Reizner <zachr@google.com> am a0918db0: Merge "drm_hwcomposer: fix misc style issues in gl_compositor.cpp" into mnc-dev

* commit 'a0918db023c05c0edc86098294029500c0dd2f34':
drm_hwcomposer: fix misc style issues in gl_compositor.cpp
656da669ecc00174ad2e64f0853db8084305debe 11-Jun-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: correct alpha channel output on gl framebuffers" into mnc-dev
61afa2a5dc6e2a3483bd8def602f86797e27cca4 11-Jun-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Use HW overlay planes" into mnc-dev
e72025008497ad14ddc00614df7a2251e8ef228f 11-Jun-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: make GLCompositor delete bo with Importer" into mnc-dev
a0918db023c05c0edc86098294029500c0dd2f34 11-Jun-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: fix misc style issues in gl_compositor.cpp" into mnc-dev
db556116fd464cfbf94a659532da2142a89c0aab 11-Jun-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: correct alpha channel output on gl framebuffers

Change-Id: I1ca8f2f7edb7fbb8691c4ba37c859bf60dcea77a
l_compositor.cpp
f5fa77cb53ed2e7f840c2f1d4c1f3a1fe6fcd466 11-Jun-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: make GLCompositor delete bo with Importer

Change-Id: I4ec6111372381701c238d5333aa1c56baf301e02
l_compositor.cpp
l_compositor.h
21b57e8f0a00d82ef6ad08b12d9b2ccc28458e20 11-Jun-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: fix misc style issues in gl_compositor.cpp

Change-Id: I9b3adf7979ff86eb1b89de03f3d8fe8bd1e35dc4
l_compositor.cpp
661696abbe409807a846a31517fff3e350ab108d 11-Jun-2015 Sean Paul <seanpaul@google.com> am 53a0dfe4: Merge "drm_hwcomposer: Reference count NvImporter buffers" into mnc-dev

* commit '53a0dfe448885612f9dfac019b432b5d1b5c91ec':
drm_hwcomposer: Reference count NvImporter buffers
cf29fd80f3781dbbbaa38ead7ab702a27807d2d5 11-Jun-2015 Sean Paul <seanpaul@google.com> am 9d1dfffb: Merge "drm_hwcomposer: Implement Dump() for DrmCompositor" into mnc-dev

* commit '9d1dfffb899ec896e7a79801c67377c78e3c240c':
drm_hwcomposer: Implement Dump() for DrmCompositor
72e73f6d8c3a56c45834d55e422ca2049766dd67 11-Jun-2015 Sean Paul <seanpaul@google.com> am 0ef8228a: Merge "drm_hwcomposer: Add Dump() to the Compositor interface" into mnc-dev

* commit '0ef8228adb0c652cc7361d24b123faadb49082d9':
drm_hwcomposer: Add Dump() to the Compositor interface
53a0dfe448885612f9dfac019b432b5d1b5c91ec 11-Jun-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Reference count NvImporter buffers" into mnc-dev
9d1dfffb899ec896e7a79801c67377c78e3c240c 11-Jun-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Implement Dump() for DrmCompositor" into mnc-dev
0ef8228adb0c652cc7361d24b123faadb49082d9 11-Jun-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Add Dump() to the Compositor interface" into mnc-dev
c8dcfe0ccf170ab7cef45d5ddec288fffd39b397 10-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Implement Dump() for DrmCompositor

Output simple fps information from the DrmCompositor on Dump().

Change-Id: Ic1f4f922fa2cd15e1fc7c6fdb412baa33611676f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmcompositor.cpp
rmcompositor.h
9046c64fcb9a504a04dbaa32718b2fb0503c843b 10-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Dump() to the Compositor interface

Add a Dump() function to the Compositor base class and pipe it
through hwcomposer. This can be invoked from the shell by
running "dumpsys SurfaceFlinger".

Change-Id: I87646f4e926ac6d52a04ba130957abdfab99c491
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ompositor.cpp
ompositor.h
wcomposer.cpp
c51b0c58ea3614fcbc2a1abab507421ed8a3190e 10-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use HW overlay planes

Now that buffers are sticking around while hwc wants them,
turn on use of HW overlay planes in the drm compositor.

Change-Id: I05fb0bfa54933c009168bfc7292d134e5e987542
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmcomposition.cpp
419b5e015b78f28838a4f270c906afcc3b2e429c 10-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Reference count NvImporter buffers

Instead of directly freeing buffers from the NvImporter
release callback, use reference counting to ensure that
we:
(a) don't free the buffer while NvGralloc is still using it
(b) don't free the buffer while HWC is still using it

Before this patch, we weren't satisifying (b). This would
cause us to free a buffer before and while it was on the
screen.

Change-Id: I6bbc541c72df4d5f12a8734de2f2e68168b73a07
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rm_hwcomposer.h
vimporter.cpp
vimporter.h
bc0fec2d40040dd2f92fbea4d4d839c22d3ec0ca 08-Jun-2015 Sean Paul <seanpaul@chromium.org> am 4095ca72: drm_hwcomposer: Don\'t compile all importers at once

* commit '4095ca7290dfdffbc23e3b5a9f12b60d26f6c78e':
drm_hwcomposer: Don't compile all importers at once
4095ca7290dfdffbc23e3b5a9f12b60d26f6c78e 08-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don't compile all importers at once

Choose based on the BoardConfig flags.

I'd like to revert this once drm_gralloc is available
in all working branches.

Change-Id: I171d8f9146bdca0f0671092b8e539031c2f64f0f
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
452501d14f0a388809fc9d51f88cf2512aa51e4d 04-Jun-2015 Sean Paul <seanpaul@chromium.org> am 1eb6006f: drm_hwcomposer: Initialize DrmProperty type_ member

* commit '1eb6006fb7d950c5aefb202459234c96f8bf2895':
drm_hwcomposer: Initialize DrmProperty type_ member
2a773e07f85ce725ba024d69cd382c21445577f9 04-Jun-2015 Sean Paul <seanpaul@chromium.org> am 5f9339cc: drm_hwcomposer: Fix case on DrmCrtc mode_valid_ member variable

* commit '5f9339cc2d9206bdaea047fef4e1d06d2911c81b':
drm_hwcomposer: Fix case on DrmCrtc mode_valid_ member variable
64057139ad7605c86b7e38ae9db34002e0b1377b 04-Jun-2015 Sean Paul <seanpaul@chromium.org> am 4057be36: drm_hwcomposer: Move event worker into VSyncWorker

* commit '4057be36a805d90b622a86c0073f4e275d3837ed':
drm_hwcomposer: Move event worker into VSyncWorker
6025f205a12e9b5f177fb5efe24cedce6c32adbd 04-Jun-2015 Sean Paul <seanpaul@chromium.org> am b386f1b1: drm_hwcomposer: Use hw planes + drm atomic interface

* commit 'b386f1b1b3716c06831d82493e9ba5a156094701':
drm_hwcomposer: Use hw planes + drm atomic interface
bb97dccaca11885ce26f55d16d9f864cea78b23b 04-Jun-2015 Sean Paul <seanpaul@chromium.org> am 117e169c: drm_hwcomposer: Add Importer to CreateComposition()

* commit '117e169cb9b5b3f0d45ad8ab300fb42712bac6c5':
drm_hwcomposer: Add Importer to CreateComposition()
86f7d0b3556eb557e3cf8b8bc76d4c711d828823 04-Jun-2015 Sean Paul <seanpaul@chromium.org> am da6270d4: drm_hwcomposer: Wrap the importers in a class

* commit 'da6270d4882eb0463717405bcadab3ac8fe902ea':
drm_hwcomposer: Wrap the importers in a class
1eb6006fb7d950c5aefb202459234c96f8bf2895 19-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initialize DrmProperty type_ member

Initialize it to an invalid value instead of INT.

Change-Id: I5d75b9a3696a748d6352d918263b482034a22001
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmproperty.cpp
rmproperty.h
5f9339cc2d9206bdaea047fef4e1d06d2911c81b 18-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix case on DrmCrtc mode_valid_ member variable

Change-Id: If2a431a4a18ea7908654a4a92a4a6acca8ed92d1
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rmcrtc.cpp
rmcrtc.h
4057be36a805d90b622a86c0073f4e275d3837ed 13-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Move event worker into VSyncWorker

Using the new Worker interface, split out the event worker
now that it just handles vsyncs.

Change-Id: I7ebc6237b10411fdba3b8826935921b8c83c4b6c
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
wcomposer.cpp
syncworker.cpp
syncworker.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>
ndroid.mk
rmcomposition.cpp
rmcomposition.h
rmcompositor.cpp
rmcompositor.h
rmcompositorworker.cpp
rmcompositorworker.h
rmresources.cpp
rmresources.h
wcomposer.cpp
117e169cb9b5b3f0d45ad8ab300fb42712bac6c5 03-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Importer to CreateComposition()

The Compositor will be responsible for releasing buffers that
are successfully added to a composition using AddLayer. To achieve
this, the Importer of the buffers must be provided to Compositor/Composition.

Change-Id: I1f0acd70c245b7a2b6c93649f247e30e7f2e9dc4
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ompositor.h
da6270d4882eb0463717405bcadab3ac8fe902ea 01-Jun-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Wrap the importers in a class

This will allow us to move the importer functionality into the
drmcompositor.

Change-Id: I4274ebd1776c4d7879342c54a2b7c4095ebc50f4
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
rmgenericimporter.cpp
rmgenericimporter.h
wcomposer.cpp
wcomposer_import_drm_gralloc.cpp
wcomposer_import_nv_gralloc.cpp
mporter.h
vimporter.cpp
vimporter.h
7054109749afec871ef8311b0fe7388537e3eeb7 04-Jun-2015 Tomasz Figa <tfiga@google.com> am 235c5e7e: drm_hwcomposer: Allow importer to be specified from BoardConfig

* commit '235c5e7e6f2e41fa788868c84bf982ac1a3ac4e8':
drm_hwcomposer: Allow importer to be specified from BoardConfig
235c5e7e6f2e41fa788868c84bf982ac1a3ac4e8 03-Jun-2015 Tomasz Figa <tfiga@google.com> drm_hwcomposer: Allow importer to be specified from BoardConfig

Use BOARD_DRM_HWCOMPOSER_BUFFER_IMPORTER from BoardConfig to
determine which importer to use.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ia081628830b78187ea1f8a3e3e4260188e130324
ndroid.mk
f236b1db3b47bdaf97a4ea6ca6f90b2df1871047 29-May-2015 Zach Reizner <zachr@google.com> am 15c9ffa2: drm_hwcomposer: add overlapping rectangle seperation algorithm

* commit '15c9ffa2a0d662a3400a5d31a94faf7517a1d815':
drm_hwcomposer: add overlapping rectangle seperation algorithm
15c9ffa2a0d662a3400a5d31a94faf7517a1d815 01-Apr-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add overlapping rectangle seperation algorithm

Change-Id: I40734ce77191ac37fb2a2c156d6010530df0434b
eperate_rects.cpp
eperate_rects.h
234375f99c519f3d014b2b195606b6aa011aae00 22-May-2015 Sean Paul <seanpaul@chromium.org> am cb8676c6: drm_hwcomposer: Add Worker class to abstract thread nasties

* commit 'cb8676c6dffe8ef0577ec4c367ad810a291ed390':
drm_hwcomposer: Add Worker class to abstract thread nasties
81e5e19ab10bfb5841d45f83e0601c69e21db050 21-May-2015 Sean Paul <seanpaul@chromium.org> am c002794b: drm_hwcomposer: Set requires_modeset() to false after modeset

* commit 'c002794bc04a1e6b64070d33754a49022a30aadb':
drm_hwcomposer: Set requires_modeset() to false after modeset
cb8676c6dffe8ef0577ec4c367ad810a291ed390 13-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add Worker class to abstract thread nasties

This will allow us to spin up threads more easily.

Change-Id: I74add3d20ab14a61f3c646877a3ee17d0bd99ac4
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
orker.cpp
orker.h
c002794bc04a1e6b64070d33754a49022a30aadb 13-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set requires_modeset() to false after modeset

Reset requires_modeset on a crtc once the initial modeset is
completed. Without this, we'll just do modesets instead of flips.

Change-Id: I998914c914ccb97346ed194a993c703f387bf93b
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
b3add5513f6361fd13b37effbe50adb1fb88ca5a 11-May-2015 Sean Paul <seanpaul@chromium.org> am e42febfa: drm_hwcomposer: Store displays in std::map

* commit 'e42febfa7feedb74ec239413820008bb38804505':
drm_hwcomposer: Store displays in std::map
f918de3eada1c878e73ac9460ca9939adcc7995f 11-May-2015 Sean Paul <seanpaul@chromium.org> am 5ad302ce: drm_hwcomposer: Fix up #include ordering

* commit '5ad302cef21fe8080bf3fa5a544945a23f9b7b84':
drm_hwcomposer: Fix up #include ordering
ba815e03b1ac342d42de9a3b4ea1d153db5d317e 11-May-2015 Sean Paul <seanpaul@google.com> am e41702f3: Merge "drm_hwcomposer: Wrap libdrm ops (minus modeset/flip) in C++ classes" into mnc-dev

* commit 'e41702f3ad11f2c1ce63b87850b8f4b8fd1d89f6':
drm_hwcomposer: Wrap libdrm ops (minus modeset/flip) in C++ classes
e42febfa7feedb74ec239413820008bb38804505 07-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Store displays in std::map

Instead of a fixed length array, use a std::map for
displays.

Change-Id: I77a4893f3051d6af4030e3208d096b5796796c84
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
5ad302cef21fe8080bf3fa5a544945a23f9b7b84 11-May-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Fix up #include ordering

Change-Id: I9d808389c60b9d77c8e03a09aeaf3f309353cde8
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
e41702f3ad11f2c1ce63b87850b8f4b8fd1d89f6 11-May-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Wrap libdrm ops (minus modeset/flip) in C++ classes" into mnc-dev
6a55e9fb8e16c63c2e42bde31814f963205f722d 30-Apr-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Wrap libdrm ops (minus modeset/flip) in C++ classes

This allows us to compartmentalize a bunch of code/logic from
hwcomposer.cpp into drm classes.

Signed-off-by: Sean Paul <seanpaul@chromium.org>

Change-Id: Id3f912126f1fdcd44d32c3eb4fba646f77590278
ndroid.mk
rmconnector.cpp
rmconnector.h
rmcrtc.cpp
rmcrtc.h
rmencoder.cpp
rmencoder.h
rmmode.cpp
rmmode.h
rmplane.cpp
rmplane.h
rmproperty.cpp
rmproperty.h
rmresources.cpp
rmresources.h
wcomposer.cpp
442fc62f07992f25a41a0042e6a723ba76018fc2 09-May-2015 Zach Reizner <zachr@google.com> am 568deeb5: Merge "drm_hwcomposer: add GLES compositor" into mnc-dev

* commit '568deeb5a62ae1c6f44e9129d3a4bb5f5a307183':
drm_hwcomposer: add GLES compositor
568deeb5a62ae1c6f44e9129d3a4bb5f5a307183 08-May-2015 Zach Reizner <zachr@google.com> Merge "drm_hwcomposer: add GLES compositor" into mnc-dev
01935f3245562c70ee911972fb039916ba74c46c 29-Apr-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add GLES compositor

This patch adds the GLES based compositor. This doesn't actually make
the hwcomposer use it, which will come in a later commit. This
version of the compositor uses syncpoints optimally and has no
fallback for the case where too many (32 currently) layers overlap.

(cherry picked from commit 6996227fe43bcf78c6e692e8098bdddb95bfda6e)

Change-Id: I3503cb5d1b309ae06d1ed2a8d244640ad81eda9e
l_compositor.cpp
l_compositor.h
af9ecabc61c42766126ea334a05135ed68d46e41 08-May-2015 Dan Albert <danalbert@google.com> am c5255b33: Add missing include for calloc/free.

* commit 'c5255b33e252af6d38c871576ce2778663717457':
Add missing include for calloc/free.
087dd8da52a74de821518be1710b64d59860fea0 08-May-2015 Dan Albert <danalbert@google.com> am d0afe23b: Stop using stlport.

* commit 'd0afe23bac9fcc7c45dad8b91e3cd05403829323':
Stop using stlport.
c5255b33e252af6d38c871576ce2778663717457 08-May-2015 Dan Albert <danalbert@google.com> Add missing include for calloc/free.

Bug: http://b/15193147
Change-Id: Ibb2fb6fef4ca6a23eb2f53111c4b01847fe468b2
wcomposer.cpp
d0afe23bac9fcc7c45dad8b91e3cd05403829323 07-May-2015 Dan Albert <danalbert@google.com> Stop using stlport.

This was dead a long time ago.

Bug: http://b/15193147
Change-Id: I9de3ad7fb14f987d36823e6fc4a60a33c92ddf4f
(cherry picked from commit 59368c2ccea1b108a580cab11443ca9630658cb7)
ndroid.mk
59368c2ccea1b108a580cab11443ca9630658cb7 07-May-2015 Dan Albert <danalbert@google.com> Stop using stlport.

This was dead a long time ago.

Bug: http://b/15193147
Change-Id: I9de3ad7fb14f987d36823e6fc4a60a33c92ddf4f
ndroid.mk
ef8f1f9905dbd1f49735f6df47f3128ecbc71c1e 29-Apr-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Update style to conform with Google Style Guide

Change-Id: I9b1a7dbcb9b8c6b0a6eb3c6416b5e4898a5097d8
Signed-off-by: Sean Paul <seanpaul@chromium.org>
rm_hwcomposer.h
wcomposer.cpp
wcomposer_import_drm_gralloc.cpp
wcomposer_import_nv_gralloc.cpp
6efb79fc87d788b5e9230908646a8579f94b7532 20-Apr-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: add a .clang-format for our style"
a8cdeee5fbb024c1866e21bd45f3d323d44d1dde 15-Apr-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Gate compilation on BOARD_USES_DRM_HWCOMPOSER"
8cbc25f1e29a623d17550e02fabda3126989ba7c 10-Apr-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Gate compilation on BOARD_USES_DRM_HWCOMPOSER

To avoid compiling on unwanted platforms.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Iec8122d32c25ea10fc68fa78e6e051e186ff0efb
ndroid.mk
cfc06ccf45d7766e57d185dc266b2cc4e02ec98f 10-Apr-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Gate compilation on BOARD_USES_DRM_HWCOMPOSER

To avoid compiling on unwanted platforms.

Change-Id: Iec8122d32c25ea10fc68fa78e6e051e186ff0efb
Signed-off-by: Sean Paul <seanpaul@chromium.org>
ndroid.mk
74a9b7ae469c392e5cbcf0f4dfe988b81ed955a0 02-Apr-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add a .clang-format for our style

Change-Id: If6059a0456376d2aba6ad09af28fbb7add33f0b4
(cherry picked from commit fd425aec49615e749e1edc596384a3502ea0db05)
clang-format
c10555daef886ddf6a3e50a542cc5718d03cd7df 02-Apr-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: add compositor interface header

Change-Id: I4b743e442e140f8fe5452fba3dd718995fe77b1b
(cherry picked from commit af3c4ecc830bef9d538333d0bf200fed39ae3649)
ndroid.mk
ompositor.cpp
ompositor.h
65051b451867ade2f07782a2fe3cf59ed8332ea4 27-Mar-2015 David Riley <davidriley@chromium.org> drm_hwcomposer: Fix missing header

Signed-off-by: David Riley <davidriley@google.com>
wcomposer_import_nv_gralloc.cpp
d846952d26ee9cd8a6e96e5bd1626cca636346cb 20-Mar-2015 Sean Paul <seanpaul@google.com> Merge "drm_hwcomposer: Introduce a new event worker to handle vblanks/flips" into lmp-mr1-dragon-dev
814bddbc4b7867da6801e60b27e1fd8040feac5d 03-Mar-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Introduce a new event worker to handle vblanks/flips

Instead of having a dedicated vsync worker for each display, factor out
the drm fd wait from the set workers into a global event worker. This
worker will dispatch vsync() callbacks to SurfaceFlinger, as well as
unblock the appropriate set worker when flips complete.

Change-Id: I169132b2a93a2c9feabcab116aab4e61861166e1
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
25c83e769162b3af5eb0644594f7cdd36d4e935c 11-Mar-2015 Zach Reizner <zachr@google.com> drm_hwcomposer: fix new then free error for hwc_context_t

Change-Id: Id987b9eebe818ded689dbdfd1c695118b0a81d5e
wcomposer.cpp
902c8949285041d2553ac3ad2c6cf6ff10662ebf 02-Mar-2015 Lauri Peltonen <lpeltonen@nvidia.com> drm_hwcomposer: Fix header compilation for C

Change-Id: I07ff3f16f3542071b42cfaa6b294017e54a84c4a
Reviewed-on: https://chrome-internal-review.googlesource.com/203636
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Tested-by: Stéphane Marchesin <marcheu@google.com>
rm_hwcomposer.h
77d6d7a907dc23a1de7c5544fc0db79bf462ff6f 23-Feb-2015 Lauri Peltonen <lpeltonen@nvidia.com> drm_hwcomposer: Cache FB and gem in gralloc buffer

Move drm fb object creation to the importer.

In NV importer, use GRALLOC_MODULE_PERFORM_SET_IMPORTER_PRIVATE
and GRALLOC_MODULE_PERFORM_GET_IMPORTER_PRIVATE to cache the hwc_drm_bo
in the gralloc buffer. This avoids the need to recreate fb objects
again each frame, and also greatly simplifies managing the lifetime of
the gem handles.

The drm_gralloc importer does not support caching at this point. In an
attempt to keep it somewhat working, add hwc_import_bo_release function
that hwc calls when it's ok to rm fb. If hwc_import_bo_release returns
true, then hwc will clean up gem handles as it did before.

We should consider doing a follow-up patch that adds fb/gem caching to
drm_gralloc importer also. Then some of the code that is kept in this
patch for backwards compatibility can be removed.

Change-Id: I92857dcaddf8cea219ebc041e16ef76087a1b696
Reviewed-on: https://chrome-internal-review.googlesource.com/200895
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Tested-by: Stéphane Marchesin <marcheu@google.com>
rm_hwcomposer.h
wcomposer.cpp
wcomposer_import_drm_gralloc.cpp
wcomposer_import_nv_gralloc.cpp
e147a2a71f7c7f0b3cc925199fe68951cb311379 22-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initialize timeline_next to 1

Initialize timeline_next to 1, because point 0 will be the very first
set operation. Since we increment every time set() is called,
initializing to 0 would cause an off-by-one error where
surfaceflinger would always composite on the front buffer.

Change-Id: I1e67c36864716595eb489286a7db3f1dcb04f67e
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chrome-internal-review.googlesource.com/200735
Tested-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Allen Martin <amartin@nvidia.com>
Reviewed-by: Sean Paul <seanpaul@google.com>
wcomposer.cpp
a99534ab0ddf258a46b7a680a6bc56b128c6ae48 22-Feb-2015 Allen Martin <amartin@nvidia.com> drm_hwcomposer: initialize timeline_next

Initialize timeline_next to 0

Change-Id: I5d9f051ac659b06be19f5e5eaaab8a665f10832c
Reviewed-on: https://chrome-internal-review.googlesource.com/200646
Reviewed-by: Sean Paul <seanpaul@google.com>
Commit-Queue: Sean Paul <seanpaul@google.com>
Tested-by: Sean Paul <seanpaul@google.com>
wcomposer.cpp
91fa3f84806a6de5ad26da95ecf883b664562407 22-Feb-2015 Allen Martin <amartin@nvidia.com> drm_hwcomposer: move AddFb/RmFb to reference gem handles

Move drmModeAddFB2 and drmModeRmFB to ensure a reference to the gem
handles are taken while the buffer is in use.

Change-Id: Ib9afdb91144850480ecaac9d73601d887af5fa12
Reviewed-on: https://chrome-internal-review.googlesource.com/200686
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Tested-by: Stéphane Marchesin <marcheu@google.com>
wcomposer.cpp
f4e49b8d453e6de7f81a6a029487210fe785979c 22-Feb-2015 Allen Martin <amartin@nvidia.com> drm_hwcomposer: Check against gem handles for popped buffer

Add check before closing gem handle for most recently popped buffer in
addition to buffers in queue.

Change-Id: Icb096bd4db439b1195a123e28468142829fc61ea
Reviewed-on: https://chrome-internal-review.googlesource.com/200725
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Tested-by: Stéphane Marchesin <marcheu@google.com>
wcomposer.cpp
3d3f70acc0d4934743271e0571a7c9a132da4a10 22-Feb-2015 Allen Martin <amartin@nvidia.com> drm_hwcomposer: Do not close gem handle if queued

Fix an issue where if the same gem handle was queued twice we would
close the handle when the first one came out of the queue, leading to
a failure when calling drmModeAddFB2() on the second buffer.

Change-Id: I0bd35158215f74b51111d2e259bca3ba5125b203
Reviewed-on: https://chrome-internal-review.googlesource.com/200715
Tested-by: Allen Martin <amartin@nvidia.com>
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
wcomposer.cpp
ceaadea1bdbfa571d44240a44638a79644d7c934 02-Feb-2015 Lauri Peltonen <lpeltonen@nvidia.com> drm_hwcomposer: Support Nvidia gralloc

When using an Nvidia gralloc implementation, ask Nvidia gralloc to import the
buffer_handle_t to the hwcomposer's drm device.

Arguably, the code to perform the import would more naturally belong to
drm_hwcomposer than Nvidia gralloc. But letting Nvidia gralloc do it has two
advantages. First, drm_hwcomposer doesn't need to include vendor headers or
link against vendor libraries. This means that it's easy to support both
drm_gralloc and Nvidia gralloc from the same default build of drm_hwcomposer.
Second, Nvidia gralloc will take care of properly setting up any vendor
specific metadata (such as tiling parameters) of the imported GEM handle.

Change-Id: I0f77fb301e7e0bff2a8cd7befeae4bc4892220ad
Reviewed-on: https://chrome-internal-review.googlesource.com/195115
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Tested-by: Stéphane Marchesin <marcheu@google.com>
ndroid.mk
rm_hwcomposer.h
wcomposer_import_nv_gralloc.cpp
64717b22fe9c1203f7feb607ce3e4cecc0818bb7 04-Feb-2015 Lauri Peltonen <lpeltonen@nvidia.com> drm_hwcomposer: Support other drm nodes than card0

On dragon, card0 = Nouveau, card1 = TegraDRM.

Change-Id: Ie69639e40162ceb4ab99025dd9406ae44b7204c8
Reviewed-on: https://chrome-internal-review.googlesource.com/196021
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Tested-by: Stéphane Marchesin <marcheu@google.com>
ndroid.mk
wcomposer.cpp
132e010f2394379b6e077a8dcb4d6f1e9204946e 12-Feb-2015 Lauri Peltonen <lpeltonen@nvidia.com> drm_hwcomposer: Fix fence leak

Hwcomposer is responsible for closing the acquire fences passed
in during hwc_set. Make sure that it does so, even if there is
an error condition.

Change-Id: I5c9096804c2613ec317c306dd361cb5f1a2ba5b2
Signed-off-by: Lauri Peltonen <lpeltonen@nvidia.com>
Reviewed-on: https://chrome-internal-review.googlesource.com/198356
Tested-by: Stéphane Marchesin <marcheu@google.com>
Commit-Queue: Stéphane Marchesin <marcheu@google.com>
Reviewed-by: Stéphane Marchesin <marcheu@google.com>
wcomposer.cpp
7c34cf640fb6810d56e735e7cef8c348e1406e8f 10-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Remove drmSetMaster call

Now that gralloc is using a render node, we can remove
this call. This allows us to run as a non-root user as
well.

Change-Id: I46c9c16c7a9a169378e567d4973172f8392d441b
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
aea15c2c769965c67cb18272d3f87dc3be2392b4 09-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use prime to import gem handles

Change-Id: Id5d5f9a61f092f33130fed4d8b8d00fcaf401dea
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer.cpp
wcomposer_import_drm_gralloc.cpp
7440561776d4af40222beeb1f1350e006c85e9fb 05-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Include stdlib.h in the importer

Change-Id: I3fffc5e62c07de9561b6f998700a98862ebd5fc8
Signed-off-by: Sean Paul <seanpaul@chromium.org>
wcomposer_import_drm_gralloc.cpp
24a26e3e5f975c6552e30a946792821ba69b654e 04-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Set display config on initialization

We shouldn't wait for surfaceflinger to set active config, initialize
the display with a config. For now we just choose the first config in
the list. This should change to a more sane choice, such as the preferred
mode or something similar.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ib063080c282cec28c9b0218c0ba5151d48b367ce
wcomposer.cpp
dffca95b7b29cbaf3a7ca2dcdc077b283d8004b1 04-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Ignore NULL display_contents

surfaceflinger will send in NULL display_contents in prepare/set,
make sure we don't blow up.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ia5085d4bd5e5928b52d81d14d027d0a162995946
wcomposer.cpp
a4283c5cc8b86227f998ee7827e6c5d3cfbdfa67 04-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Don't try to get configs for a disconnected connector

Short circuit getting the configs for connectors which are disconnected.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ieabbf08f4d4a6c8b03f948399113e3ad04a2d93a
wcomposer.cpp
fa406a10d4db9f58c822e20c60ea902aa2d56ccc 04-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Store active mode instead of config index

Since the config indices can change out from under us, store the
actual mode instead of an index. This avoids having to
reset active_config when we get a new list from the driver.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I09a1ffbdde16c44ccc8a1d2865f09a5da22c2e26
wcomposer.cpp
efb20cb773314e53a185d80454906243d7b9fb70 04-Feb-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Always perform a setcrtc initially

Always do a setcrtc on the first set(), this ensures things
are set up the way we expect them to be.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I4279d4de64339e72f0e7f9b315b2b9695704c78c
wcomposer.cpp
eb9e75c1bf7f7118d4877103c17523a7efdffda5 26-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Implement eventControl with vsync worker

Adds a new worker to handle events requested by eventControl.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I6d63bb43b5f112e2efb0c426e7fd59910fc98953
wcomposer.cpp
f1dc19141903d9c71f392eccdca568b80568f17b 24-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Implement release and retire fences using sw_sync

Once drm supports passing sync through, we'll move onto that.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I78bd5d380212b4aaec4b41dcba6cc882f1e5cc20
ndroid.mk
wcomposer.cpp
3bc48e852d7c0f6770d9cd43fa865593e4f2d5ab 23-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Reduce time spent in display_lock

This reduces the amount of time set will block on the
worker.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: If5d110ce78e98642265ffa7dcc25710bc227330b
wcomposer.cpp
9b1bb8466ebdfa9a3064523b4ec75ba396423b68 23-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Use queue buffer for pending sets

Instead of just using a front and back buffer, use a queue buffer
to allow more than one pending set.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I451acbcb08fac5191b76ec2e372fe612d227167c
ndroid.mk
wcomposer.cpp
cd36a9e3864aaba47ba22af36fad97fe6c782637 23-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Split gralloc out into an importer

Add the concept of an importer so we can plug in different
sources of bo.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I4f741ef4fa7c44e9cb31db61a146aed273854a69
ndroid.mk
rm_hwcomposer.h
wcomposer.cpp
wcomposer_import_drm_gralloc.cpp
9aa5ad3e2e25610c86ffc0714302b5905fbb8451 22-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Add a new set thread to post bo's

Adds a new set thread to wait on acquire fence, flip the bo,
and wait for it to be presented on screen.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: Ia931a7cbe287f4c744068fc80e476f81880bf608
ndroid.mk
wcomposer.cpp
e0c4c3d719ba0758fc0e1369de71b34f9442407b 20-Jan-2015 Sean Paul <seanpaul@chromium.org> drm_hwcomposer: Initial implementation

This adds a very basic hwcomposer implementation on top of
libdrm.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I472feb9bc08a4c4cd9849370c849d266ea58da9c
ndroid.mk
wcomposer.cpp
e0268cbb6c7364bf550a8bf0bb1770f8b4e42dd4 16-Jan-2015 Geoff Mendal <mendal@google.com> Initial empty repository