aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-04-11drm_hwcomposer: fix pre comp regions during protected playbackoreo-devAdrian Salido
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
2017-03-02drm_hwcomposer: introduce QueueWorkerAdrian Salido
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
2017-03-02drm_hwcomposer: refactor WorkerAdrian Salido
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
2017-02-24drm_hwcomposer: Add missing assert.h include am: 15d6a22ad6 am: d0147d2dfa ↵Robert Foss
am: d6324e6759 am: d53cfbe9b8 Change-Id: I45d1780f6f154ee7fc5438553604c139cce44fcf
2017-02-24drm_hwcomposer: Add missing assert.h include am: 15d6a22ad6 am: d0147d2dfaRobert Foss
am: d6324e6759 Change-Id: I518b235ec28d0248486f44df380928cc2a6a2f32
2017-02-24drm_hwcomposer: Add missing assert.h include am: 15d6a22ad6Robert Foss
am: d0147d2dfa Change-Id: I4901a98ed0a9fec9d2f2fb45566ea533c8857be2
2017-02-24drm_hwcomposer: Add missing assert.h includeandroid-o-preview-1android-n-mr2-preview-2o-previewRobert Foss
am: 15d6a22ad6 Change-Id: I220404e3d70396f602fd41e754a314a6dd54367a
2017-02-20drm_hwcomposer: Add missing assert.h includeRobert Foss
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>
2017-01-31Add missing include. am: 1c5a6ac75d am: cb31814680 am: 77286a5cfbDan Albert
am: e438c1de52 Change-Id: Ic76d336f33549e68cde658c971c5314d02fa3097
2017-01-31Add missing include. am: 1c5a6ac75d am: cb31814680Dan Albert
am: 77286a5cfb Change-Id: I1e9f6b9788365308b0b84383300d12f84390adb3
2017-01-31Add missing include. am: 1c5a6ac75dDan Albert
am: cb31814680 Change-Id: I335f364a738b57f34b66c340a5c935a9eef270d0
2017-01-31Add missing include.Dan Albert
am: 1c5a6ac75d Change-Id: If734812198f324842dcb92f760a37977050f8c95
2017-01-31Add missing include.Dan Albert
This was previously leaked by libc++. Test: mma Bug: http://b/34740564 Change-Id: I7084cdb44a9b7346556c20b1b6eeebc6ebb2d500
2016-10-24drm_hwcomposer: fix type size check for separate rects am: 6862df5491 am: ↵Adrian Salido
ff522c77d5 am: 5ad151f3ca am: 0b0a617525 am: 0378c5f2c9 Change-Id: I5f0739aa4cbe993a841ea240c59a4a3c54b96bd5
2016-10-24drm_hwcomposer: fix type size check for separate rects am: 6862df5491 am: ↵Adrian Salido
ff522c77d5 am: 5ad151f3ca am: 0b0a617525 Change-Id: Iac004d1fc56485f3ce234fbe34b24513a13fb309
2016-10-24drm_hwcomposer: fix type size check for separate rects am: 6862df5491 am: ↵Adrian Salido
ff522c77d5 am: 5ad151f3ca Change-Id: Idbc7d2b9453eb5a203467b82ebd0eaebf95010c7
2016-10-24drm_hwcomposer: fix type size check for separate rects am: 6862df5491android-n-mr2-preview-1Adrian Salido
am: ff522c77d5 Change-Id: I9084ef5da1950f0c2c86fb567eb86fd1e6fc2fa6
2016-10-24drm_hwcomposer: fix type size check for separate rectsAdrian Salido
am: 6862df5491 Change-Id: I4583eaa39e7c53f67f6ded2e0c2863d49c9e8b5a
2016-10-21drm_hwcomposer: fix type size check for separate rects am: ced19e30cf am: ↵Adrian Salido
d3542a23a7 am: 93657448e3 Change-Id: Ie53e21bae8677f678c133bfb80973d95204724d5
2016-10-21drm_hwcomposer: fix type size check for separate rects am: ced19e30cfAdrian Salido
am: d3542a23a7 Change-Id: I71b6071e704e32b35745c0c3ca9f9f67387d53e3
2016-10-21drm_hwcomposer: fix type size check for separate rectsandroid-7.1.2_r9android-7.1.2_r8android-7.1.2_r6android-7.1.2_r5android-7.1.2_r4android-7.1.2_r39android-7.1.2_r38android-7.1.2_r37android-7.1.2_r36android-7.1.2_r33android-7.1.2_r32android-7.1.2_r30android-7.1.2_r3android-7.1.2_r29android-7.1.2_r28android-7.1.2_r27android-7.1.2_r25android-7.1.2_r24android-7.1.2_r23android-7.1.2_r2android-7.1.2_r19android-7.1.2_r18android-7.1.2_r17android-7.1.2_r16android-7.1.2_r15android-7.1.2_r14android-7.1.2_r13android-7.1.2_r12android-7.1.2_r11android-7.1.2_r10android-7.1.2_r1nougat-mr2.3-releasenougat-mr2.2-releasenougat-mr2.1-releasenougat-mr2-security-releasenougat-mr2-releasenougat-mr2-pixel-releasenougat-mr2-devAdrian Salido
am: ced19e30cf Change-Id: I8ae37f9946d2b98c775f8e7224e2e70466c245b7
2016-10-20drm_hwcomposer: fix type size check for separate rectsnougat-mr1-devAdrian Salido
Bug: 32218819 Change-Id: Ic8f2c5d078a5ee9a48862a8e8faca051f199b78e Signed-off-by: Adrian Salido <salidoa@google.com>
2016-10-20drm_hwcomposer: fix type size check for separate rectsAdrian Salido
Bug: 32218819 Change-Id: Ic8f2c5d078a5ee9a48862a8e8faca051f199b78e Signed-off-by: Adrian Salido <salidoa@google.com>
2016-10-03drm_hwcomposer: limit maximum depth of frame worker queue am: ff717ff5b0 am: ↵Adrian Salido
3af111cf59 am: 6d59b2091a Change-Id: I922a21f182a80d6c60106130a33df153ce4e8710
2016-10-03drm_hwcomposer: limit maximum depth of frame worker queue am: ff717ff5b0Adrian Salido
am: 3af111cf59 Change-Id: I47f54e2a0cc0c2235ffb757a5579268277dafe06
2016-10-03drm_hwcomposer: limit maximum depth of frame worker queueAdrian Salido
am: ff717ff5b0 Change-Id: I89614273f61428a5303586c0fd63bdc4a53e3e63
2016-09-30drm_hwcomposer: limit maximum depth of frame worker queueAdrian Salido
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
2016-06-23Merge \"DO NOT MERGE: drm_hwcomposer: Count all layers with content in ↵Sean Paul
SquashFrame am: c74c8b9339 am: b38dbf65e0\" into nyc-mr1-dev-plus-aosp am: e01006bf0b -s ours Change-Id: I10f6cf4f4df59472c2e5598886ababcc7eec51f3
2016-06-23Merge \"DO NOT MERGE: drm_hwcomposer: On error, free active composition am: ↵Sean Paul
b4cf01b8ea am: 7ca7746261\" into nyc-mr1-dev-plus-aosp am: 6f718d173a -s ours Change-Id: I7719b53e123ed900ee4d0b090eba59a45437fd64
2016-06-23DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame ↵Sean Paul
am: c74c8b9339 am: 80b6062966 am: 890853a1bf -s ours Change-Id: Ia8a1f3bfdc53cd1c501a5bac532ec11785cdebac
2016-06-23DO NOT MERGE: drm_hwcomposer: On error, free active composition am: ↵Sean Paul
b4cf01b8ea am: 95ff952c0f am: c81cbb069a -s ours Change-Id: I3dfb91576ead7e2be97d2af0718979dea26eb605
2016-06-23Merge "DO NOT MERGE: drm_hwcomposer: Count all layers with content in ↵Android Build Merger (Role)
SquashFrame am: c74c8b9339 am: b38dbf65e0" into nyc-mr1-dev-plus-aosp
2016-06-23Merge "DO NOT MERGE: drm_hwcomposer: On error, free active composition am: ↵Android Build Merger (Role)
b4cf01b8ea am: 7ca7746261" into nyc-mr1-dev-plus-aosp
2016-06-23DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame ↵Sean Paul
am: c74c8b9339 am: 80b6062966 Change-Id: I0936e00e4b5fa1712759b4a0a28e7c056c2d9e38
2016-06-23DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrame ↵Sean Paul
am: c74c8b9339 am: b38dbf65e0 Change-Id: Ia0e142fdaa6ab5bd4d00f46f46e1dc9b43d51fad
2016-06-23DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8eaSean Paul
am: 95ff952c0f Change-Id: I1e81cd2f16a77721e4086286c316a3d1f0a6d3a5
2016-06-23DO NOT MERGE: drm_hwcomposer: On error, free active composition am: b4cf01b8eaSean Paul
am: 7ca7746261 Change-Id: Ibf56c0cf4d74bc186e86acaadc5cc40841cd797c
2016-06-23DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrameandroid-n-mr1-preview-2android-n-mr1-preview-1Sean Paul
am: c74c8b9339 Change-Id: Ie7d401ac8d7a91c027a7d93b1e86a8a58f03b96e
2016-06-23DO NOT MERGE: drm_hwcomposer: Count all layers with content in SquashFrameandroid-7.1.0_r7android-7.1.0_r6android-7.1.0_r5android-7.1.0_r4android-7.1.0_r3android-7.1.0_r2android-7.1.0_r1nougat-dr1-releaseSean Paul
am: c74c8b9339 Change-Id: Ibfe0a03568d74f2517eb86d4f97b7339a5bb38bb
2016-06-23DO NOT MERGE: drm_hwcomposer: On error, free active compositionSean Paul
am: b4cf01b8ea Change-Id: I4abe49d312a92fdac39cd95c95434384225c3f6c
2016-06-23DO NOT MERGE: drm_hwcomposer: On error, free active compositionSean Paul
am: b4cf01b8ea Change-Id: I3afa118c0e6d9ffbfc2c5f2e77d09b027882da4d
2016-06-23drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0 ↵Sean Paul
am: 9d7612026e am: 5ef27816e9 am: a48e4fbb76 am: a77cd05acd Change-Id: I590705658bc023fa1092aa9bb2eba2319e87c302
2016-06-23drm_hwcomposer: On error, free active composition am: 137a6a8e9b am: ↵Sean Paul
7cabba9701 am: dd34aa9b8c am: df880a7cd0 am: 7c49f90c2a Change-Id: Ie6eb3e93e84d355f3b393513265724cdab034a0f
2016-06-23drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0 ↵Sean Paul
am: 9d7612026e am: 5ef27816e9 am: a48e4fbb76 Change-Id: I8489a79540f353bd2ea1de1365f5e6a8a3ac3e80
2016-06-23drm_hwcomposer: On error, free active composition am: 137a6a8e9b am: ↵Sean Paul
7cabba9701 am: dd34aa9b8c am: df880a7cd0 Change-Id: I7f91566dec685ffa136af5eadd7a5b97fb249bf4
2016-06-23drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0 ↵Sean Paul
am: 9d7612026e am: 5ef27816e9 Change-Id: I0eef3e89310fbdad4589c396f7fa1a64e2da007b
2016-06-23drm_hwcomposer: On error, free active composition am: 137a6a8e9b am: 7cabba9701Sean Paul
am: dd34aa9b8c Change-Id: I65b5140c6cc6e967dcef924b239165bbbf0093a0
2016-06-23drm_hwcomposer: Count all layers with content in SquashFrame am: fab5ea10b0Sean Paul
am: 9d7612026e Change-Id: Ia67973ff43e70138d8f7a9e21e896f69e125bf9e
2016-06-23drm_hwcomposer: On error, free active composition am: 137a6a8e9bSean Paul
am: 7cabba9701 Change-Id: I1063076ca5276bbf9048bd947f542e16696e865f
2016-06-23drm_hwcomposer: Count all layers with content in SquashFrameandroid-wear-n-preview-2android-wear-7.1.1_r1android-n-preview-5android-n-iot-preview-2nougat-mr1-wear-releasen-iot-preview-2Sean Paul
am: fab5ea10b0 Change-Id: I050b6a4c2b9361dd89571712ad9dd8cc2c86060c