Commit graph

115 commits

Author SHA1 Message Date
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
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
Steven Moreland
99712c08cc Update hidl makefiles for bpfmt
hidl-generated makefiles are now generated such that bpfmt(file) == file.

Bug: 67417008
Test: enable bpfmt hook
Change-Id: I53e5bf67a0d314e1b10c0ba0c7172a7af358ddcc
2019-04-18 18:13:05 -07:00
Steven Moreland
6d494b2346 Merge "Update hidl makefiles for bpfmt" am: ff0bd741ca
am: 96f40f7b02

Change-Id: Idbf030e4993067bdb8181321bca2de00c9b6f7ef
2019-04-18 14:34:45 -07:00
Steven Moreland
1ae4615d9f Update hidl makefiles for bpfmt
hidl-generated makefiles are now generated such that bpfmt(file) == file.

Bug: 67417008
Test: enable bpfmt hook
Change-Id: I1f69d292bc23a7cc293a66110cb02d597e1019ad
2019-04-17 09:38:50 -07:00
Steven Moreland
87f43604b9 Merge "Update makefies: no 'types' internal" 2019-03-05 17:40:03 +00:00
Steven Moreland
7f4e21adda Merge "Update makefies: no 'types'" am: 4ee5ec1469 am: bab622f6a6
am: 7224bc9bcf

Change-Id: I434939e0770afa436c532a945542fce30a71ef7d
2019-03-04 16:05:59 -08:00
Steven Moreland
b91ac5c6a0 Update makefies: no 'types' internal
Bug: 123976090
Test: N/A
Change-Id: I84b659b163b63d39535b462a3df8a9c19f680976
2019-03-04 14:09:25 -08:00
Steven Moreland
a878aee9ab Update makefies: no 'types'
Bug: 123976090
Test: N/A
Change-Id: I30fb04c81889b62775e1b764b965fdb0f893de17
2019-03-04 11:27:17 -08:00
Steven Moreland
f8a47b7f01 Update makefiles.
Bug: 123976090
Test: N/A
Change-Id: I5fb6c126a090a3fe0fa4829ea9224564133dc1ae
2019-02-11 21:14:16 -08:00
Shuzhen Wang
55386823a3 Camera: Add HAL interface change for HEIC
- Add new usage flag to indicate the consumer of the buffer is HEIC
encoder.
- Add new data space to indicate that the BLOB buffer is HEIC encoded.
- Add new BlobId to specify JPEG APPs segments.

Test: testHeic CTS test
Bug: 79465976
Change-Id: Iaa6a1d017223e84fc1c5dd0a9d90d9f09240e827
2019-02-04 16:44:16 -08:00
Emilian Peev
5f103998ff Camera: Add dynamic depth tags and dataspace
Add necessary metadata tags for supporting dynamic depth
streams.
Includes minor gfx fix which should help eliminate build
errors after HIDL header autogen.

Bug: 109735087
Test: vts-tradefed run commandAndExit vts --skip-all-system-status-check
    --skip-preconditions --module VtsHalCameraProviderV2_4Target -l INFO
Change-Id: Ia476b195095ae7a29bc740174331dfbfdaa6d320
2019-01-27 20:06:11 -08:00
Kevin DuBois
1ec0b52d17 graphics.common: add HSV format definition to 1.2
Adds HSV format used in some color sampling engines to the list
of pixel formats. Rev the sampling engine in composer to reference
the new format revision.

Test: built image, with new format reported in vendor code.
Test: VtsHalGraphicsComposerV2_3TargetTest
Fixes: 122943743

Roll-forward of build-breaking topic commit. No changes were
needed in this patch. see bug 123404649 for breakage details.
This reverts commit e2f69f2228.

Change-Id: I38ac5cafeb6a07e683352c8d297892a681e24702
2019-01-25 20:54:03 +00:00
Kevin DuBois
e2f69f2228 Revert "graphics.common: add HSV format definition to 1.2"
This reverts commit 97e1a932ec.

Reason for revert: broke build 

Change-Id: Ib264957e9a1de83c37e4129471b3c75522e21d08
2019-01-25 17:06:01 +00:00
Kevin DuBois
97e1a932ec graphics.common: add HSV format definition to 1.2
Adds HSV format used in some color sampling engines to the list
of pixel formats. Rev the sampling engine in composer to reference
the new format revision.

Test: built image, with new format reported in vendor code.
Test: VtsHalGraphicsComposerV2_3TargetTest
Fixes: 122943743

Change-Id: I1b454a86f464f38e3c2cbeef5379a187ff38ab06
2019-01-24 10:05:28 -08:00
Valerie Hau
c25748d22f Adding HDR10+ Dynamic Metadata Support
Bug: 118343714
Test: build, flash, boot
Test: VtsGraphicsComposerV2_3TargetTest should pass
Change-Id: Iee78818bc2704f4045b62251ea2cc75af72a0609
2018-12-20 13:15:37 -08:00
Pawin Vongmasa
95674af0c2 HAL interface for IGraphicBufferProducer V2
Test: Builds

Bug: 112508112

Change-Id: Ic3afaa1e27116d4ff9e5035dfce5c20de3d876e5
2018-10-23 17:33:22 -07:00
Valerie Hau
ec98306549 Adding Dataspace BT2020_SRGB and ColorMode BT2020_SRGB
BT2020_SRGB is BT2020 with SRGB transfer function.  Adding to types V1.2
and upgrading methods that utilize Dataspace and ColorMode

Bug: 115335239
Test: ./libsurfaceflinger_unittest --gtest_filter=GetBestColorMode.*
Change-Id: Ic807183ae2bd0212cd8c5d7a24c93db0a1bc28fb
2018-10-22 11:19:52 -07:00
Steven Moreland
4ee4582230 Update comments for doc comments.
Doc comments look like "/** ... */" and they
can only be in certain places.

Bug: 79865343
Test: m
Change-Id: Ic15c08ff7dc6e4f9827c1dbe7f7236c11a572ec1
2018-05-18 10:10:32 -07:00
Chia-I Wu
6c8257feca graphics: add RenderIntent and better HDR support
This adds

  ColorMode::BT2020
  ColorMode::BT2100_PQ
  ColorMode::BT2100_HLG
  Dataspace::BT2020_HLG
  Dataspace::BT2020_ITU_HLG
  RenderIntent::COLORIMETRIC
  RenderIntent::ENHANCE
  RenderIntent::TONE_MAP_COLORIMETRIC
  RenderIntent::TONE_MAP_ENHANCE

and fixes per-frame metadata to be per-layer.  It also clarifies how
the composer should treat certain dataspaces and makes the
corresponding composer changes.

Bug: 73824924
Bug: 32148660
Test: manual
Change-Id: I5d12f50190522103c2ac97ee8dc2d5f6a2dabffe
2018-04-02 13:04:33 -07:00
Courtney Goeltzenleuchter
33f62da78c graphics: Add Dataspace and PixelFormats for HDR
Bug: 63710530
Test: make
Change-Id: Iea9b9cf7948567c3cb596de4f628459684aff569
2018-01-24 08:34:14 -08:00
Craig Donner
243da4d2b8 graphics: add graphics common 1.1 HAL with new pixel formats and usages.
Bug: 66900669
Test: Build
Change-Id: Ie8ba599230c7491aee337c8c333a96859c1ce83d
2018-01-19 10:16:22 -08:00
Steven Moreland
8db261bc99 Updating makefiles for hidl_interface.
Bug: 64487114
Test: manual
Merged-In: Ie13d9e014cf2b81c18c67f551b4644fb9f0ba812
Change-Id: Ie13d9e014cf2b81c18c67f551b4644fb9f0ba812
2017-11-13 10:00:18 -08:00
Steven Moreland
c3e80fa01e Update for Soong java makefiles.
Test: pass
Bug: 33420795
Change-Id: Id9b1919a19b8ff682738cfb0869a479b4dbb4293
2017-10-10 23:07:20 +00:00
Steven Moreland
dfd8287506 Updating all makefiles.
Bug: 64487114
Test: none
Merged-In: I8608c8f636c35f21e4246a805a9eff6d14124e0a
Merged-In: I2fa89b6661c39859ec4fb62c4bb0a05a35e645f0
Merged-In: Ifdc3c17cb2b85c18b37dac2d03bb5c8935c23180
Change-Id: I170fa1c4fe39f8109b1670db58ef99bb11afc0be
2017-08-14 20:25:09 +00:00
Steven Moreland
76cfb84140 Update makefiles. (2/2)
Adds default configuration for all hals.

Bug: 38415912
Test: pass
Change-Id: Idd1f3a2b7b16ad956d31784a513e93a066cdd02e
2017-05-19 15:54:03 -07:00
Steven Moreland
bc71124120 Update makefiles for c++-sources and c++-headers. (2/2)
Test: pass
Bug: 38174080
Change-Id: Icad451f9f9ad5f46412356a4171a8a1222f8e545
2017-05-09 19:58:43 -07:00
Chia-I Wu
4376069e9d graphics: polish Transform docs and indent ColorMode
Note, current.txt change (as opposed to addition) is only allowed
because this is an unreleased interface.

Bug: 32593292
Test: builds
Change-Id: I95381d1a3a456aeadbc472e2dbbffde19cb43e6c
2017-04-28 13:04:08 -07:00
Chia-I Wu
8de7a17b82 graphics: remove non-HAL pixel formats
HALs are not expected to see YCBCR_422_888, YCBCR_444_888,
FLEX_RGB_888, and FLEX_RGBA_8888.  JPEG is purely wrong.

Note, current.txt change (as opposed to addition) is only allowed
because this is an unreleased interface.

Bug: 32593292
Test: builds
Change-Id: I432e6cb75cfc347a41e8e1632ae1898eed3350c8
2017-04-27 16:55:47 +00:00
Chia-I Wu
00d459d039 graphics: clean up PixelFormat docs
Make the docs more self-contained, not referring to stuff not
defined by the HIDL interfaces.

Mark JPEG, YCBCR_422_888, YCBCR_444_888, FLEX_RGB_888,
FLEX_RGBA_8888 as "MUST NOT USE".  These format are never supposed
to be seen by gralloc and do not belong to the HIDL interfaces.

Note, current.txt change (as opposed to addition) is only allowed
because this is an unreleased interface.

Bug: 32593292
Test: builds
Change-Id: Ia7607cc73dd2f58dfa27e71b0004b21c7ca6904d
2017-04-27 16:54:32 +00:00
Chia-I Wu
841468ad6a graphics: reorder PixelFormat
Sort the enum values in their numerical order. There is no other
change.

Note, current.txt change (as opposed to addition) is only allowed
because this is an unreleased interface.

Bug: 32593292
Test: builds
Change-Id: I47914a7971f922f5602f982b41dd7602842e853b
2017-04-27 16:41:08 +00:00
Andreas Huber
6fa374ad30 Changed the naming scheme for Treble java libraries (both static and dynamic)
android.hardware.foo@1.0-java => android.hardware.foo-V1.0-java

Bug: 37207894
Test: make
Change-Id: I177f4cfd42f635aaf096107af8309d1a82ed41c0
Merged-In: I8b91881dfaf507c0d852d56ebbb53ff0987e5a34
2017-04-13 15:23:46 -07:00
Steven Moreland
3b36a83a2e Update makefiles (2/2).
Test: pass
Change-Id: Ic7e6289c7b69785491708ce0acbb657f4c704229
2017-04-11 09:58:03 -07:00
Chia-I Wu
586fd648d5 Merge "graphics: revise gralloc interfaces" into oc-dev 2017-04-11 01:08:39 +00:00
Chia-I Wu
79d13ff0f5 graphics: revise gralloc interfaces
Revise IAllocator and IMapper to reduce IPC and to support gralloc0
devices.

Specifically, IAllocator is trimmed down to have essentially only

    allocate(BufferDescriptor descriptor, uint32_t count)
        generates (Error error,
                   uint32_t stride,
                   vec<handle> buffers);

The ability to allocate buffers with shared backing store is
removed.  ProducerUsage and ConsumerUsage are moved to the
graphics.common package and are merged and renamed to BufferUsage.
BufferUsage's bits follow gralloc0.

IMapper gains

    typedef vec<uint32_t> BufferDescriptor;
    createDescriptor(BufferDescriptorInfo descriptorInfo)
          generates (Error error,
                     BufferDescriptor descriptor);

where BufferDescriptor is an implementation-defined blob.  lockFlex
is replaced by lockYCbCr.  All getters are removed.

Reference counting with retain/release is replaced by
importBuffer/freeBuffer.

Most if not all gralloc1 features are not used by the runtime yet.
There is also not too much test written for them.  As such, they
tend to behave differently between implementations and cannot be
used reliably.

Bug: 36481301
Test: builds and boots on Pixel
Change-Id: I1d31105120517ea2c128c7a19297acf3bfd312bb
2017-04-10 11:15:54 -07:00
Emilian Peev
cb0b46654d graphics: Update RAW16 format comments
RAW16 format could be used together with depth dataspace.
The buffer contents in this case will be phase detection
statistics data.

Bug: 36015382
Test: testPDStats
Change-Id: Ied1c179193abef62a87fcec6f0906528ed58ea2b
(cherry picked from commit 23699d6314)
2017-04-09 17:48:56 +00:00
Andreas Huber
40d3a9bd8c Convert all comments into "doxygen-ready" comments.
Bug: 36453077
Test: mma
Change-Id: I0b1f77dfae5d2258969e33d85ecf45401ffbdfaa
2017-03-29 08:53:58 -07:00
Steven Moreland
561b602a99 Update makefiles for hwtypes.h
Test: pass
Change-Id: I8e17eb8fec5d2f04c526476a866c8dd54ccb556c
2017-03-28 15:18:20 +00:00
Courtney Goeltzenleuchter
a3023d9b44 Update Display-P3 transfer function
Decided to use same transfer function that Apple is
using for their Display-P3 devices. Difference between
sRGB transfer function and Display-P3 is very small.
We will treat them an synonymous.

Test: make

Change-Id: Id4e52058f2b810b70c46821c5fe6830e623c5491
2017-03-15 08:11:25 -06:00
Courtney Goeltzenleuchter
37606f9fe9 Add dataspace to match upstream EGL extension
EGL's EGL_EXT_gl_colorspace_bt2020_pq extension
supports a bt2020 color space with a ST2084
transfer function (Dolby Perceptual Quantizer)
Test: make

Change-Id: I3de03b91ee24880a4b2dab14c0f07185a53bf067
2017-03-02 13:50:43 -07:00
Tri Vo
85120c9490 Update makefiles to use filgroup syntax.
Test: mmma hardware/interfaces
Change-Id: I9f4457c78b7820c242d46359f0debe05d1b3e482
2017-02-10 12:45:19 -08:00
Andreas Huber
d38f147c35 Updated makefiles
Java intermediates are now created in the common rather than the device-
specific generated sources subdirectory.

Bug: 33842609
Test: make
Change-Id: I16af4cd19bf0b24baa0ad9ebfdb86b4d959c8672
2017-02-09 17:20:45 -08:00
Tri Vo
ce608bec74 Migrate driver/profiler to test/vts-testcase/hal.
Bug: 34893894
Test: mmma hardware/interfaces

Change-Id: Ic72716577a5f93700c5056986aff55a76b170b5d
2017-02-07 19:13:28 -08:00
Zhuoyao Zhang
e9b43bbe2d Update Andriod.bp for hals.
* Add driver/profiler build rule for all hals.

Test: mma
Change-Id: I98325f7af14fec7dd1bb64b1668de8c7c20ace92
2017-02-03 10:03:01 -08:00
Courtney Goeltzenleuchter
1b2a09e5c9 Merge "Add enums for 10bit color formats" 2017-01-30 15:49:52 +00:00
Courtney Goeltzenleuchter
0d955c185b Add enums for 10bit color formats
To improve wide-color behavior it's useful to have more bits
per color component. This defines 10:10:10:2 and 10:10:10:X
for that use.
This can be used for any color space / dataspace that is
compatible with unsigned integer components, e.g. Display-P3,
BT2020, etc.
Test: TBD

Change-Id: I69647f6bb2d5b0666a0819b10ee42705361e267d
2017-01-25 10:38:08 -07:00
Peng Xu
b9c5f8fa72 Add dataspace definition for sensor direct report
Bug: 32022776
Test: compiles
Change-Id: I9e2855a454117a17e252dcb580104afea29ddc02
2017-01-24 02:54:03 -08:00
Romain Guy
fa48a77c1f Add Display-P3 color mode
Test: compile
Bug: 32984164
Change-Id: Ie3f361664320482974811b229a82e1703eb19c43
2017-01-20 16:10:07 -08:00
Steven Moreland
f37a0a439d Ran update-makefiles.sh.
GNSS/Fingerprint/Graphics have all gotten out of sync.

Bug: 34397031
Test: compiles
Change-Id: Ie0a081a4574fd617d5d97ca30ba879f5284efd64
2017-01-19 02:10:44 +00:00
Zhuoyao Zhang
e7544edd81 Add build rule of driver/profier for graphics allocator hal.
* Updated the corresponding .vts file to match the latest .hal file.

Test: make android.hardware.graphics.allocator.vts.driver@2.0
      make android.hardware.graphics.allocator@2.0-IAllocator-vts.profiler
      make android.hardware.graphics.allocator@2.0-IAllocatorClient-vts.profiler

Change-Id: Ibf0fdf976a01015cca9cea71a6f25fc513d22d94
2017-01-12 16:47:10 -08:00
Courtney Goeltzenleuchter
5f3da62cd8 Add Display P3 DATASPACE enums
Need to define Display-P3 dataspace.
Test: grep HAL_DATASPACE_DISPLAY_P3 system/core/include/system/graphics-base.h

Change-Id: I0a2015eb714f9e6f8c2e8cff40b008e58570ba55
2017-01-06 09:31:01 -07:00
Courtney Goeltzenleuchter
2a84d48e5a Remove TODO
Test: Visually inspect file.
Bug: 34109639
Change-Id: If443b4beb1ff06429a8e3ee564a0892d6acd0e9d
2017-01-06 09:31:01 -07:00
Romain Guy
c7e0a38121 Remove RGBX_FP16 format
Bug: 32984164
Test: compile
Change-Id: I8ab55ee7aca685987daec7d499f95e9346476c31
2016-12-16 09:58:25 -08:00
Romain Guy
ab2e00be4b Merge "Prevent conflict with deprecated pixel format constants" 2016-12-15 01:27:28 +00:00
Romain Guy
175766c8e4 Prevent conflict with deprecated pixel format constants
Bug: 32984164
Test: Compile
Change-Id: I9c3a1cdf0dbd498379453a982ac2a92aabb532b6
2016-12-13 17:02:05 -08:00
Yifan Hong
f35ee3b192 Revert "Revert "Update makefiles for Java package path.""
This reverts commit a8789f27cb.

Change-Id: I69980b580a556188ba868bb096ae1590b01759f5
2016-12-13 22:20:16 +00:00
Yifan Hong
a8789f27cb Revert "Update makefiles for Java package path."
This reverts commit ab0792ccdc.

Change-Id: I47fc272d9fa8875e3d7ccb10cb748c738fbf8135
2016-12-13 22:18:34 +00:00
Yifan Hong
ab0792ccdc Update makefiles for Java package path.
use V1_0 instead of 1.0.

Bug: 33554192

Test: hidl_test_java
Change-Id: Ic2d95265df10914a60a5bb743d75e839948838c3
2016-12-13 11:32:56 -08:00
Yifan Hong
501839495f Update makefiles for hidlizing IBase.
A new dependency android.hidl.base@1.0 is added for
all projects.

Test: mma

Change-Id: Ia70d0eb0d74de06475a339698386d383d491a43a
2016-12-03 01:01:14 -08:00
Steven Moreland
f8d68ec855 Update makefiles for logging.
Bug: 32943424
Test: pass
Change-Id: Ic88ce6adf04e0e36db53e4cc06ac2ec5a90c011c
2016-11-21 16:28:54 -08:00
Yifan Hong
6b920e43d3 Split libhidl into base and transport.
Bug: 32756130

Test: mma
Change-Id: Id21cf23abe2910f26bb7895511862443b93dc112
2016-11-18 00:00:54 -08:00
Courtney Goeltzenleuchter
5f97c269f2 Add defines for wide gamut color support
Test: make
Change-Id: Iac9e91d20138f2aa452985ec170de441de64e865
2016-11-17 08:26:37 -07:00
Steven Moreland
2c68cc4457 Ran update-makefiles.sh
Test: pass
Change-Id: Ia9d14d29ce9f5dc4688cc177bf747c7f11223b2b
2016-11-11 17:21:31 -08:00
Colin Cross
b785f5b82e Support genrules with multiple tools
To allow genrules with more than one tool, rename the tool property to
tools and make it an array, replace $tool with $(location <label>),
and use $() for other variables for consistency.

Bug: 31948427
Test: compare build.ninja
Change-Id: I3d714f70a2af0dc60faeee10e09b6ed166601f1d
2016-11-04 22:49:15 -07:00
Chia-I Wu
4ee34311b3 graphics: add a type-only common package
Copied from system/graphics.h with two changes

 - YCbCr -> YCBCR
 - HAL_TRANSFORM_RESERVED is removed

Test: make
Change-Id: I1d343ff176ac61f911fee949861ce4b12255cd47
2016-11-03 12:01:58 +08:00