Commit graph

195 commits

Author SHA1 Message Date
Chia-I Wu
48ffe289b0 graphics: discard stale data from message queue
Our use of message queues is synchronous.  If there are already data
in the queue when writeQueue is called, we know they are stale and
can be discarded.

Bug: 65449888
Test: manual
Change-Id: Ie29b8a7386c9733c183a6c3569e3572efa62cbc2
2017-09-08 11:51:57 -07:00
Zhuoyao Zhang
425e9672d5 Fix VtsHalGraphicsComposerV2_1TargetTest
Bug: 65252969
Test: make vts
Change-Id: Id4543b385ca9dce532bbf08ef206897924d66acb
2017-08-31 19:57:17 +00:00
Zhuoyao Zhang
6afb992759 Update vts test to use the updated test template.
* For registerTestService/getServiceName, no need to pass
  any hard coded string of HAL service FQName.
* Affect test: VtsHalCameraProviderV2_4TargetTest,
               VtsHalGraphicsComposerV2_1TargetTest,
               VtsHalNeuralnetworksV1_0TargetTest

Bug: 62946472
Bug: 64203181

Test: make vts
      vts-tradefed run vts -m VtsHalCameraProviderV2_4Target

Merged-In: If365ab2ed9a91eb4013d71769804b9d4bf089d66
Change-Id: Id0bddbc2949337147557f45cc60dbfaa114ce25e
(cherry picked from commit d71b654d6d)
2017-08-29 17:44:10 +00:00
TreeHugger Robot
43b3865a3d Merge "Graphics tests statically link to HAL definition libs." into oc-mr1-dev 2017-08-10 03:42:37 +00:00
Tri Vo
1b7c33562f Graphics tests statically link to HAL definition libs.
These tests now statically links to HAL def libs which are
not guaranteed to be on the device.

Bug: 64040096
Test: vts-tradefed run commandAndExit vts --skip-all-system-status-check
--skip-preconditions --module VtsHalGraphicsMapperV2_0Target
Test: vts-tradefed run commandAndExit vts --skip-all-system-status-check
--skip-preconditions --module VtsHalGraphicsComposerV2_1Target
Change-Id: I83b68dafbd161f88394f67dbda14f9957ddf7232
2017-08-07 14:07:52 -07:00
Steven Thomas
85e93f0a3b Merge "Guard against racy ComposerClient reconnection" into oc-mr1-dev 2017-08-07 17:53:13 +00:00
Justin Yun
f2bd6c12a2 Manually update makefile for vndk-sp hidl libs.
vndk-sp is not automatically tagged by hidl-gen.
For vndk-sp libs, "support_system_process: true" is manually added
in "vndk" property.

Bug: 63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: I2b18d691411e58dc55bcdfa39ecb3659242c8437
2017-08-04 14:40:55 +09:00
Justin Yun
608d773ef8 Update make file for vndk enabled.
Update the Android.bp generated with hidl-gen.

Test: build with and without BOARD_VNDK_VERSION=current
Bug: 63866913
Change-Id: I1a9db1df49e0f13c5790da2b118ae9ec63ba34a7
2017-08-04 14:12:23 +09:00
Chia-I Wu
58fbba63b7 Merge "graphics: ignore/reduce spurious vsync in VTS" into oc-dr1-dev
am: d1231716d3

Change-Id: I6dae4a4f7e287abd7438ece780cefca2bf19ac39
2017-08-03 17:46:34 +00:00
Tri Vo
f5d136c231 Update Android.bp HIDL makefiles
Allow HAL definition libs to be static.

Bug: 32920003
Bug: 64040096
Test: update-all-google-makefiles.sh
Change-Id: I1483d572bea6799717d1614fb7d52fe225e31104
2017-08-03 00:30:01 +00:00
Steven Thomas
4492a30e14 Guard against racy ComposerClient reconnection
The hardware composer service has a rule that only one client can be
connected at a time. The surface flinger process, when transitioning
composer ownership from surface flinger to vr flinger, will destroy the
current client on one thread and create a new client on another
thread. Although surface flinger ensures that these events happen in the
expected sequence (delete then create), the requests sometimes land in
the hardware composer service in inverted order, causing the creation
request to fail with an error.

Instead of failing with an error, block for a brief period (1 second)
until the existing client is removed, then proceed to initialize the new
client. This gives us enough time to ensure an inverted
creation/destruction order doesn't cause client creation to fail, while
avoiding a deadlock if the existing client is never destroyed.

Bug: 62925812

Test: - Transitioned to/from vr flinger hundreds of times, and confirmed
I no longer see sporadic composer client creation failure due to an
already existing client.

- Ran the vts graphics composer tests and confirmed they all pass.

Change-Id: I40be1fb0cb3d42ddb5a9fc159188886e9f5b6267
2017-07-31 18:38:01 -07:00
Chia-I Wu
e0ff3e4a26 graphics: ignore/reduce spurious vsync in VTS
Bug: 62802718
Test: VTS
Change-Id: I1ed73e0b2f14414f540865a96e6bd5ac1599fbf3
2017-07-24 11:21:33 -07:00
Chia-I Wu
ae00f5c39c graphics: sideband streams are not buffers
We should call native_handle_clone instead of IMapper::importBuffer
on sideband stream handles.

Bug: 63707399
Test: manual
Change-Id: Ie07e50f6bb771f3c7a69d29e36f60b149dc6af95
2017-07-17 10:33:16 -07:00
Fabien Sanglard
47bd6b4a71 Skip Validate
am: 11ec393689

Change-Id: I47c68719ce214ee40ed0e58ec1a0ddc9c14a2b2a
2017-06-22 05:58:08 +00:00
Fabien Sanglard
11ec393689 Skip Validate
b/37474580
b/62806392

Test: marlin, ryu

Change-Id: I9d4ece40a8a093d768bcb4edd332cf0188735e66
2017-06-22 04:48:33 +00:00
Jesse Hall
5efa773cc1 Revert "Load the gralloc module at library load"
This reverts commit 33c08a53ac. Some
gralloc implementations apparently have library initializers (executed
on dlopen) which create anonymous sockets, open device nodes, etc.
which Zygote and some other non-Zygote-child processes that use libui
don't have permissions to do. When the library initializer fails, it
crashes the process.

Reverting this until this initialization code can be made lazy (on
first use of gralloc).

Bug: 62732270
Test: boot fugu to launcher
2017-06-19 11:48:09 -07:00
Jesse Hall
33c08a53ac Load the gralloc module at library load
In the a.h.graphics.mapper default implementation, load the gralloc
module in a static constructor that runs when the library is loaded.
This causes Zygote to load the gralloc module and its dependencies
when it loads a.h.graphics.mapper, so that it doesn't have to be
loaded during each activity launch.

Bug: 62353585
Test: boot to launcher, run calculator, confirm gralloc library is in
      /proc/`pid zygote64`/maps

Change-Id: I56defd76b0ba0fba71dea48e2b0d338511563d1f
2017-06-16 00:48:36 +00:00
Chia-I Wu
2d02d91f7f graphics: fix gralloc1 usage flags in default impl
BufferUsage::SENSOR_DIRECT_DATA should be filtered out for consumer
usage.  BufferUsage::GPU_DATA_BUFFER should be filtered out for
producer usage and be translated to
GRALLOC1_CONSUMER_USAGE_GPU_DATA_BUFFER for consumer usage.

Bug: 62491483
Test: boots
Change-Id: I171712adf45ae80dadeed7997fb9872ff176fa1a
2017-06-12 15:19:42 -07:00
Daniel Nicoara
d47f4a9d65 Move utility classes in a separate static target
Split up utility classes that can be re-used in other IComposer related
tests (such as the IVrComposerClient tests).

Changes:
 * Move GraphicsComposerCallback into separate module
 * Extract TestCommandReader in separate module
 * Extract Composer::execute() from test class

Bug: 38203529
Test: Compiled
Change-Id: I0d1193469e9dd94c477a63058f98111c162dfa99
2017-05-30 15:53:19 -04:00
TreeHugger Robot
98ed02dec2 Merge "graphics: set maxThreads to 4 for the allocator" 2017-05-23 19:52:04 +00:00
Steven Moreland
7708449766 Update makefiles. (2/2) am: 76cfb84140
am: f203167814

Change-Id: I1f13401266f3c2f78c627088b09c79cd7c8d0276
2017-05-22 17:29:04 +00:00
Steven Moreland
f203167814 Update makefiles. (2/2)
am: 76cfb84140

Change-Id: I24d21438a5b2f447d2160929c6ff6e17b2b66820
2017-05-22 17:15:20 +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
Chia-I Wu
2c3a6cd3cd Merge "graphics: set maxThreads to 4 for the composer" into oc-dev am: 15e33c6d17
am: b8b218b88b

Change-Id: Icb85078986c8453498c1ef2ee5dbb5c58f7fc6a0
2017-05-12 20:02:37 +00:00
Chia-I Wu
b8b218b88b Merge "graphics: set maxThreads to 4 for the composer" into oc-dev
am: 15e33c6d17

Change-Id: I4e5c759f467d6085e9dc1d57ca65db0273343eef
2017-05-12 19:59:18 +00:00
Chia-I Wu
ec71f00148 graphics: set maxThreads to 4 for the composer
There are implmentations that can dead lock when calling certain
functions in certain states.  It works fine before HIDL because
SurfaceFlinger calls those functions in another thread.  We allow
for 4 hwbinder threads in this commit to simulate how SurfaceFlinger
calls hwcomposer.

Bug: 38183197
Test: camera, videos, multi windows, screencap, screenrecord
Change-Id: Ie05b2ca349b8c1ed9a3ac962981434f2efee92d9
2017-05-12 08:40:48 -07:00
Chia-I Wu
17ba27bc61 graphics: set maxThreads to 4 for the allocator
This should help buffer allocation performance.  We choose 4 because
that is the number of binder threads in SurfaceFlinger.

Bug: 38243574
Test: manual
Change-Id: I704aacb271fb7fd6a91c9231ab8a5256531eebc9
2017-05-11 23:00:47 +00:00
Steven Moreland
d09cf863da Update makefiles for c++-sources and c++-headers. (2/2) am: bc71124120
am: a32ebce372

Change-Id: Ic1dd8f98e72656bc12a6e5224e541f75afb79daa
2017-05-11 01:38:14 +00:00
Martijn Coenen
ab97cef29e Merge "Start processes that need real-time with CAP_SYS_NICE." into oc-dev am: 6c062f77c1
am: b05e4c9414

Change-Id: I9fa6d2b4283ca50506ffcc6a665e6a2e46c4c2f9
2017-05-11 01:36:26 +00:00
Steven Moreland
a32ebce372 Update makefiles for c++-sources and c++-headers. (2/2)
am: bc71124120

Change-Id: Icf36068a4d863a8520854c7a83e51f960c188e12
2017-05-11 00:48:55 +00:00
Martijn Coenen
b05e4c9414 Merge "Start processes that need real-time with CAP_SYS_NICE." into oc-dev
am: 6c062f77c1

Change-Id: I921160390dc9f90e7872729194ed1d1240ce68b7
2017-05-11 00:47:30 +00:00
Steven Moreland
4be51a8512 Merge changes from topic 'fix-hidl-generate' into oc-dev
* changes:
  Update makefiles for c++-sources and c++-headers.
  Update makefiles for c++-sources and c++-headers. (2/2)
2017-05-10 20:02:40 +00: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
Mathias Agopian
d8931ac871 fix circular dependency libnativewindow <-> libui
Bug: 37647680, 37648355
Test: compile, manual
Change-Id: I2fdec8e86f6729aadd572a250b9d55d77f0d4eef
2017-05-09 16:40:51 -07:00
Martijn Coenen
f9b3fb49df Start processes that need real-time with CAP_SYS_NICE.
Bug: 37293077
Test: verified CAP_SYS_NICE granted in /proc/pid/status
Change-Id: If404450cbeb077d331b231bda1af2d6eae774b75
2017-05-09 09:57:00 -07:00
Steven Moreland
5c63b11f76 Remove redundant dependencies
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.

Test: links
Bug: 33276472
Merged-In: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
Change-Id: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
2017-05-02 15:29:30 -07:00
TreeHugger Robot
31944dc58e Merge "Remove redundant dependencies" 2017-05-02 21:51:28 +00:00
Steven Thomas
6dbaf573a2 Merge "Avoid crash when setting buffer on deleted layer" into oc-dev 2017-05-02 17:47:24 +00:00
Steven Thomas
58da77ea4b Avoid crash when setting buffer on deleted layer
When setLayerBuffer() was called on a layer previously destroyed by
destroyLayer() the code would crash. Instead, return an error.

Bug: 37159844

Test: Ran vr flinger in a way that would trigger the crash, and
confirmed that I now get error logs instead of crashing. Unfortunately
the error code is consumed by the Composer wrapper class and not
propagated back to the caller, but that's a separate issue (b/37901601).

Change-Id: I75a5b954d47a1deac44d03851f60f347085eca89
2017-05-02 17:39:39 +00:00
Steven Moreland
2cd0d42d72 Remove redundant dependencies
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.

Test: links
Bug: 33276472
Change-Id: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
2017-05-02 10:17:28 -07:00
TreeHugger Robot
76061d7881 Merge "graphics: polish Transform docs and indent ColorMode" into oc-dev 2017-05-01 21:09:37 +00:00
Chia-I Wu
b57dd2a005 graphics: remvoe -Wno-unused-parameter
Bug: 34611192
Test: builds
Change-Id: I8d6802ee6c618ea506fcca8e7d74e3b7026f29be
2017-04-28 13:04:49 -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
Chia-I Wu
2ae85702f7 graphics: use mapper from the composer
We must use the mapper HAL instead of gralloc0/gralloc1 from the
composer.

Bug: 37540361
Test: boots on marlin, angler, and ryu
Change-Id: I5a3ff6a025bf51a3507a4f33fa77e9506a6f1ec9
2017-04-25 12:52:50 -07:00
Chia-I Wu
ec74596af8 graphics: clarify importBuffer and passthrough HALs
A buffer handle recieved from a HAL is by definition raw and needs
to be imported.  But because of passthrough HALs, such a raw handle
may have been imported already.  Explicitly specify that an
implementation must accept such a raw handle.

Bug: 37540361
Test: boots on angler, ryu and marlin
Change-Id: I5ecf526e59b27cc4a8f7f5d5ec27477da0946ece
2017-04-25 12:52:50 -07:00
Chia-I Wu
78b63dc6a1 graphics: keep mapper valid during process termination
GraphicBufferMapper is valid during process termination.  IMapper
must stay valid as well.  It should not rely on global/static
objects that may have been destructed.

Bug: 37480313
Test: libgui_test
Change-Id: Icb8079153306f2465c26c0f1ce812895ad83f21b
2017-04-19 11:47:25 -07: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