Commit Graph

697 Commits

Author SHA1 Message Date
Peiyong Lin
425b39f877 Merge "Fix bad command length calculation" am: b44c4d4cd3 am: 97a0f117e1
am: 7fcc448a64

Change-Id: Id84ccd01a2aff67986796b96fa423e2cc7ccea8c
2019-12-02 14:49:41 -08:00
TreeHugger Robot
a62efe995c Merge "gralloc: test lock YCBCR_420_888" 2019-12-02 20:51:08 +00:00
Marissa Wall
d36e12776f gralloc: add reserved region
This patch adds a reserved region of shared memory to every gralloc
native_handle_t. The reserved region of memory will allow future
versions of Android to add new buffer features without requiring
gralloc upgrades.

Bug: 145232031
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: I1bdfec0a6ef85097096035d3d38e5c9e7fcc32f2
2019-12-02 10:47:42 -08:00
Marissa Wall
1b2c678bfc gralloc: test lock YCBCR_420_888
Gralloc 4 removes lockYCbCr but clients will still expect similar
functionality to lockYCbCr. This test case ensure that gralloc
will still behave sufficiently similarly when locking
YCBCR_420_888.

Bug: 141631415
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: I60d2c220bab858eabe89a95b225d2816ab7289cc
2019-12-02 10:47:41 -08:00
TreeHugger Robot
59d7a1a10e Merge "gralloc: add dump buffer(s)" 2019-11-29 17:40:37 +00:00
TreeHugger Robot
7a8f64c17b Merge "graphics: fix failed VTS cases" 2019-11-27 20:34:30 +00:00
Marissa Wall
0cf075621d gralloc: add dump buffer(s)
Add functions to IMapper to dump a buffer and to dump all the
buffers in the current process. The dump includes
all gettable or settable metadata.

Bug: 141632317
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: Iaa54b899aef185867b3fd66025c0eb251a9a7bd1
2019-11-27 09:21:05 -08:00
Peiyong Lin
a5aedc3293 Clean up BeginCommand.
BUG: N/A
Test: build, flash and boot
Change-Id: Ife6132307152e271548a54e11a472751c52d95e4
2019-11-25 16:18:58 -08:00
TreeHugger Robot
83f69f0da0 Merge "gralloc: update lock and lockYCbCr" 2019-11-25 17:44:53 +00:00
Marissa Wall
78b167aa60 Merge "gralloc: list supported metadata types" 2019-11-22 19:26:20 +00:00
Marissa Wall
0129f43366 gralloc: clean up comments
Clean up code comments based on review comments in ag/9684750 and
ag/9684750.

Bug: 144551649
Test: Compiles
Change-Id: I96f5962d2c1b79352f85dcf9354689814310ecc0
2019-11-22 01:44:26 +00:00
Marissa Wall
9c5ebfc5ba gralloc: update lock and lockYCbCr
IMapper 4.0 does support lockYCbCr functionality through lock and
BufferMetadata getters. However, we will wait to add the support in
one central gralloc library. For now just stub out the call so
there aren't any compiler errors.

Bug: 141631415
Test: Compiles

Change-Id: I9d2f70c87412f8ac2114db85eb6dc01539876e2b
2019-11-21 17:43:41 -08:00
TreeHugger Robot
96276e8996 Merge "gralloc: add get and set BufferMetadata support" 2019-11-21 20:41:22 +00:00
Ady Abraham
3fd4bc2802 Merge "composer: few changes for refresh rate switching" 2019-11-21 19:39:38 +00:00
Marissa Wall
0001a5d5ba gralloc: list supported metadata types
Add function to get the metadata types supported by IMapper.
In future releases, we will add more standard types but upgrading
devices may not support those types. This function will allow the
framework to identify which metadata types the device supports.

Bug: 141632767
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: I760cf054d2b6f08a52ad70f4ae60a39a63500939
2019-11-20 15:38:42 -08:00
Ady Abraham
a1df7c3d1f composer: few changes for refresh rate switching
- getDisplayConfigs is required to remain backward compatible with
   composer@2.3 and older versions. To keep it that way a new config
   attribute was added to group similar configs.
 - getSupportedDisplayVsyncPeriods was removed as the vsync period
   can be obtained by getDisplayAttribute for each individual config.
 - renamed setActiveConfigAndVsyncPeriod -> setActiveConfigWithConstraints
   to better describe what this function does.
 - added VsyncPeriodChangeTimeline and onVsyncPeriodTimingChanged

With these changes composer is expected to return all possible
configurations when getDisplayConfigs (similar to older composer versions).
The client knows whether a seamless vsync period is possible or not by
the config groups.

Test: rev up composer to 2.4 and test refresh rate switching
Bug: 141329414
Change-Id: I1b4525f7e00b62cdaf260274abe4a6a5962ed1ab
2019-11-20 18:30:34 +00:00
Marissa Wall
88d87faec9 gralloc: add get and set BufferMetadata support
Add get and set functions that allow buffer metadata to be set
on the buffer.

This patch has been reviewed by vendors on AOSP. It is a combination of the
following patches. They have been squashed (and updated) to make them easier to
review. Two of the patches are proposals by ARM that have been incorporated into
this patch.

https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1107574
https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1109946
https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1124857
https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1126861

Bug: 141632767, 141631993
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: I0e79d73a7687f2f5b51828a7454888e6d8ff9460
2019-11-19 14:49:02 -08:00
Long Ling
0d3fe0857a graphics: fix failed VTS cases
Return BAD_DISPLAY or BAD_PARAMETER as expected.

Bug: 140158240
Test: run vts -m VtsHalGraphicsComposerV2_2Target
Change-Id: I0f5a7103bc134ed87984bd13248aee7597a95d68
2019-11-14 11:27:00 -08:00
Marissa Wall
03b66e1ded graphics/common: add stable AIDL types
Gralloc 4 (IAllocator 4.0 and IMapper 4.0) is a HIDL interface that
will support getting and setting buffer metadata. To allow vendors to
easily add arbitrary metadata, the interface accepts metadata as a
bytestream.

Some of the metadata gralloc 4 will use is already defined in HIDL.
Unfortunately, some of the metadata was defined in composer which
is a binderized HIDL interface. IMapper is a HIDL-SP interface
so it cannot reuse composer's definitions.

Since the display HIDL interfaces will likely move to stable AIDL
soon, redefine the metadata in stable AIDL. IMapper uses a byte
stream so the types can be defined anywhere. By redefining the types
in stable AIDL, we won't have three definitons of the exact same
type in the future.

Bug: 141632767
Test: N/A - This patch just adds types. There are tests in the patches
      that use the types.

Change-Id: Icaf6200c327d71a41d66a3e66dd6890ab5c2041a
2019-11-13 10:45:16 -08:00
o.v.yevtushenko
8f76b5cfe6 Fix bad command length calculation
SET_LAYER_PER_FRAME_METADATA_BLOBS command length
was calculated wrong. With wrong length
it's impossible to read current and any next commands right.

Test: manual
Bug: 144367999

Change-Id: I09a23bbf507996972ce7de0634f8866bbb13152a
Signed-off-by: o.v.yevtushenko <o.v.yevtushenko@globallogic.com>
2019-11-13 12:18:55 +00:00
Colin Cross
3df543380c Merge "Replace -Weverything with -Wextra" am: 8c63655c3d am: 1ec7613f7f
am: fbdb441d7b

Change-Id: I7f54191688adfe167f48deb18aba0f34bd8ad292
2019-11-08 15:26:09 -08:00
Colin Cross
d180b2b83b Replace -Weverything with -Wextra
-Weverything is not recommended, use -Wextra.

Bug: 143713277
Test: mma
Change-Id: Ic5957015ebc0030b8339b263730c8d0540cf088a
2019-11-08 13:09:00 -08:00
TreeHugger Robot
0b93288c77 Merge "gralloc: name buffer at allocation time" 2019-11-07 23:13:21 +00:00
TreeHugger Robot
d9ea718964 Merge "gralloc: clarify lock access region" 2019-11-07 21:42:18 +00:00
Marissa Wall
bf9f6d39ed gralloc: name buffer at allocation time
Allow the client to name their buffer at allocation time.

b/141632767 will let the client(s) query the name of the
buffer later.

Bug: 144026910
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: Ib08c1909c10a1778c50b59e0a42ddf19140d8f03
2019-11-07 11:46:58 -08:00
Dan Shi
776ca95863 Merge "Convert VtsHalGraphicsComposerV2_4TargetTest to be parameterized test" 2019-11-07 18:33:45 +00:00
Marissa Wall
a6a2af85d7 gralloc: clarify lock access region
Update lock to clarify that if the access region is outside the
bounds of the buffer, the lock call should fail.

Bug: 141631415
Test: VtsHalGraphicsMapperV4_0TargetTest

Change-Id: Ic9ccac9361c8cafc59660b107686d2cbb54faf2d
2019-11-07 10:24:34 -08:00
Nick Desaulniers
daedbd7e47 [hardware][interfaces][graphics] fix -Wimplicit-int-float-conversion
IEEE 754 single precision cannot precisely represent the value of large
32b integrals. Accept the imprecision from implicit casts by making the
casts explicit.

One case is comparing the value before and after converting a float to
an int32_t and back, the other is used when printing a value.

Bug: 139945549
Test: mm
Change-Id: I23375d73cd16be0741defc6395046bd3b22d1335
Merged-in: Id30edce2cd29c0f9c24cd52ba5fb33f7c56a3100
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2019-11-05 14:54:06 -08:00
Nick Desaulniers
de2a5dcd48 [hardware][interfaces][graphics] fix -Wimplicit-int-float-conversion
IEEE 754 single precision cannot precisely represent the value of large
32b integrals. Accept the imprecision from implicit casts by making the
casts explicit.

One case is comparing the value before and after converting a float to
an int32_t and back, the other is used when printing a value.

Bug: 139945549
Test: mm
Change-Id: Id30edce2cd29c0f9c24cd52ba5fb33f7c56a3100
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2019-11-05 13:18:26 -08:00
Dan Shi
93a389c708 Convert VtsHalGraphicsComposerV2_4TargetTest to be parameterized test
Bug: 142397658
Test: TODO
Change-Id: I8aaada238d70fbcb7619f894d6aa174a2d8471c7
2019-11-01 20:08:24 -07:00
Dan Shi
1fc6aec652 Merge "Convert VtsHalGraphicsComposerV2_*TargetTest to be parameterized test" 2019-11-01 05:33:20 +00:00
Dan Shi
ff7462064d Convert VtsHalGraphicsComposerV2_*TargetTest to be parameterized test
Bug: 142397658
Test: atest VtsHalGraphicsComposerV2_1TargetTest
Change-Id: Idd6b0a0314be706e06f7812fbf8eb787edd078b1
2019-10-30 11:27:11 -07:00
TreeHugger Robot
0291840f76 Merge "composer 2.4: add api to control vsync period" 2019-10-29 19:07:42 +00:00
Ady Abraham
7882ae6805 composer 2.4: add api to control vsync period
Add new functions to improve vsync period switching by the platform:
 - Adding a list of supported vsync periods to Config to avoid the need to expose
   separate Configs for each vsync period.
 - Adding an API to set the vsync period with timeline constraints to allow better
   synchronization with vsync period change.
 - Extending onVsync() callback to provide the current vsync period.

Test: rev up composer to 2.4 and test refresh rate switching
Bug: 141329414
Change-Id: I1a6f395d9634edadc68649d02f624f00173ec519
2019-10-29 10:14:33 -07:00
Andrew F. Davis
272ff4a626 graphics: hwc2on1adapter: Buffer hotplug event after display creation
If the HWC2 hotplug callback has not registered we buffer this event then
return, but do so too early leading to no display being created. Buffer
the event and return only after creating the display so when the callback
is registered we have a display for this hotplug event.

Test: Hotplug a display before the HWC2 hotplug callback is registered
Change-Id: I999e3fd7cbe87d12969fb2d2d82dbd956ee8d97b
Signed-off-by: Andrew F. Davis <afd@ti.com>
2019-10-28 15:34:42 +00:00
Chong Zhang
86e1aebad1 [RenderEngine] Fix test build for RenderEngine refactor
Fix build after refactor of creation flags.

BUG: 142331374
Test: build, flash and boot
Change-Id: I59c2858f8e35426e2eb08c91e8797efd738a3922
2019-10-23 12:28:08 -07:00
TreeHugger Robot
7dbc6e184e Merge "gralloc: require locked buffers follow format" 2019-10-16 22:33:24 +00:00
Marissa Wall
aa181aec49 gralloc: require locked buffers follow format
Clarify that buffers that are locked (mapped) to the CPU must
be in the format requested in their BufferDescriptorInfo.
The buffers should not be compressed/swizzled/tiled/etc.

Bug: 141631415
Test: This is already assumed by the tests.

Change-Id: Ie674117418aaefc3f99ac2bc89c3da4072e236ec
2019-10-16 11:10:43 -07:00
Steven Moreland
ab017f20cf Merge "Remove libhwbinder/libhidltransport deps" 2019-10-11 20:19:21 +00:00
Eric Chung
7e279f1a63 Merge "Refine freeBuffer in Mapper 2.0" am: 9b2431d02a am: f6e09b2ff5 am: 3057612183
am: 13a6edaab2

Change-Id: I6a410127b4604aa8e0ef0ac5c1b04df45283eb69
2019-10-10 13:10:29 -07:00
Steven Moreland
36c9ae7c5e Remove libhwbinder/libhidltransport deps
Since these were combined into libhidlbase.

Bug: 135686713
Test: build only (libhwbinder/libhidltransport are empty)
Change-Id: Ifabf28bbcfa60f8c1786256ef44dff442af99989
Merged-In: I878a4d04e65ef13f3a0ebaf64177f673958d213c
2019-10-09 16:19:44 -07:00
Treehugger Robot
9b2431d02a Merge "Refine freeBuffer in Mapper 2.0" 2019-10-08 23:17:06 +00:00
TreeHugger Robot
dd7ddab13e Merge "composer: Add getDisplayConnectionType" 2019-10-03 19:47:13 +00:00
Alistair Delva
fc8d43692c Merge "Make gralloc0 pass-through mapper handle layers" am: b756e23e5c am: 6982d1aec5 am: 6c3213c940
am: afc577e108

Change-Id: I54f2e01bf8ffe43dbe786a73cfd7818661230090
2019-10-03 06:48:29 -07:00
Alistair Delva
b756e23e5c Merge "Make gralloc0 pass-through mapper handle layers" 2019-10-03 13:02:13 +00:00
Dominik Laskowski
ce44a4b363 composer: Add getDisplayConnectionType
Distinguish between internal and external displays, to obviate assuming
that the first display is internal and subsequent displays are external.

Note that connector types (e.g. DSI, HDMI, DisplayPort) are not enumerated,
since that information is irrelevant for internal connections, and can be
extracted from the EDID for external connections in the few cases where it
matters, e.g. gating features like daisy chaining and content protection.

Bug: 134771872
Test: Build
Change-Id: I8a27e4ef569626620711910fcbaed5a7e12e6870
2019-10-02 15:10:41 -07:00
Steven Moreland
82b84148c7 Remove libhwbinder/libhidltransport deps
Since these were combined into libhidlbase.

Bug: 135686713
Test: build only (libhwbinder/libhidltransport are empty)
Change-Id: I878a4d04e65ef13f3a0ebaf64177f673958d213c
2019-10-02 12:50:29 -07:00
Jason Macnak
8b5b9fb52c Make gralloc0 pass-through mapper handle layers
Gralloc0 does not support layers. This change is needed for Cuttlefish
to pass the GraphicsMapperHidlTest.ValidateBufferSizeBadValue VTS test

Bug: b/132087346
Test: vts-tradefed run commandAndExit vts -m VtsHalGraphicsMapperV2_1Target
Change-Id: I2ed7dae209629d401ccaf2fc0fd992d766b0fa9b
2019-09-27 09:58:45 -07:00
Max Zhang
aed6aa8c2e yukawa: adapt different YCC orders am: 59b31c9b90 am: b21fd17efe am: 4a2baa9256
am: b21fd61f56

Change-Id: I2e4344503fd62cd0346c61bf745c7638f3651b3b
2019-09-25 12:00:03 -07:00
Max Zhang
59b31c9b90 yukawa: adapt different YCC orders
The order of the planes doesn't matter, therefore enable mapper
adapter to support YCbCr and YCrCb both.

test: manual
bug: 141006723
Change-Id: Iad0d5159c1b38b12bc90a07f937db002471aad1e
2019-09-24 11:38:07 -07:00