Commit Graph

60 Commits

Author SHA1 Message Date
Vishnu Nair
beb3b482db Introduce ASurfaceTransaction_setOnCommit api
Introduce a new callback for SurfaceControl transactions that
fire after we commit a transaction in SurfaceFlinger. This
will help some clients pace when they should apply the next
transaction so it get applied on the next vsync. If they wait for
the existing transaction complete callback, there may not be
enough time between when the client applies the transaction
and surface flinger waking up and apply it on the new vsync.
This would mean the update would arrive a frame late.

Bug: 185843251
Test: atest ASurfaceControlTest
Change-Id: If0d5d01a1d5c2029eb81667356e666d7297376d4
2021-04-21 15:06:19 -07:00
chaviw
ccf3e8b9f9 Updated native SurfaceControl APIs to reflect their behavior.
Updated setPosition, setCrop, setBufferTransform, and added setScale
to native SurfaceControl API. The new functions should be pass through
calls to SurfaceComposerClient that sends it to SurfaceFlinger.

Test: ASurfaceControlTest
Bug: 170765639
Change-Id: I214c5ae998d8f896200f3010cf2de6754d1e8510
2021-04-14 16:40:33 -05:00
Rob Carr
782102ccd5 Merge "ASurfaceTransaction: Add setEnableBackpressure" into sc-dev 2021-04-02 19:03:09 +00:00
Robert Carr
f57c0163f9 ASurfaceTransaction: Add setEnableBackpressure
Expose the backpressure flag to NDK. See comment in
header file for extensive discussion.

Bug: 177458703
Test: Need new CTS
Change-Id: I97cdaef5d499f57a270972f001517b8a520aa2fe
2021-04-01 19:41:40 +00:00
Marin Shalamanov
d15b4b5473 Merge "setFrameRate: Make shouldBeSeamless an enum" into sc-dev 2021-03-31 14:30:23 +00:00
Marin Shalamanov
511f9145ba setFrameRate: Make shouldBeSeamless an enum
Change the shouldBeSeamless parameter to an enum
in order to make the API easier to understand.

This changes
 - SurfaceControl.setFrameRate
 - Surface.setFrameRate
 - ANativeWindow_setFrameRateWithChangeStrategy
 - ASurfaceTransaction_setFrameRateWithChangeStrategy

Bug: 179116474
Test: atest SetFrameRateTest
Change-Id: I55265399238e2c95fbb90fd33a4c2513d1fc5cec
2021-03-24 21:34:04 +01:00
Vasiliy Telezhnikov
647da08b1d Merge "Split ASurfaceTransaction_setGeometry api" into sc-dev 2021-03-24 13:26:03 +00:00
Remi NGUYEN VAN
86ae725fb9 Add NDK API for getprocdns,setprocdns
The API allows callers to control the default network that is used for
DNS hostname resolution.

Test: atest CtsNetTestCases
      Tests in change I00143cafcd3eb1d71e8d5c7ea9c839a99dc6f4ce
Bug: 171540887
Change-Id: I42f0d9b17b3058f6e10fd2e651278b290f26667f
2021-03-23 11:21:21 +00:00
Remi NGUYEN VAN
3d50059bbc Add NDK API for getprocnetwork
The API is the getter couterpart for setprocnetwork.
Use it in NetworkUtils so that the NDK API can be the source of truth
for the process network.

Bug: 171540887
Test: atest CtsNetTestCases
      Tests in change I311b58585033c2ca50ce5477ea9cd94b6f127507
Change-Id: Ie8f68cf1fa57deddb63324c1abf3d6fd5b0ef500
2021-03-23 01:01:06 +00:00
Vasiliy Telezhnikov
5ead3aa5f2 Split ASurfaceTransaction_setGeometry api
This CL adds three new methods: setSourceRect, setPosition and
setTransform.

Test: ASurfaceControlTest
Bug: 173671170
Change-Id: I00f05a45bfa2b6e53735d95977d32bdecbce3df1
2021-03-17 18:14:55 +00:00
Jorim Jaggi
71db8892ac Add GPU completion to FrameMetrics (1/3)
- Add SurfaceStatsCallback to TransactionCompletedListener
- Register a callback in RenderProxy to be called when we have
surface stats from SF via the BLAST callback.
- Instead of finishing a frame for frame metrics reporting
immediately, wait until BLAST callback fires, note GPU completion
time and finish frame.
- Expose GPU_COMPLETION in FrameMetrics
- Modify TOTAL_DURATION to also include GPU_COMPLETION

Test: FrameMetricsListenerTest
Fixes: 171046219
Change-Id: I16fa1d80cfc4e7a5527c18fec7e885409f17ee4d
2021-02-17 14:55:22 +01:00
Huihong Luo
91697e13ff Add ASurfaceControl_acquire api
hwui needs this api to hold a reference to a surface control object passed from java layer.

Bug: 173671170
Test: manual
Change-Id: I2b8417c289718bb1b99af47d7828e91b16785123
2021-02-11 17:59:04 +00:00
Chris Forbes
6e73857c79 Merge "thermal: Add AThermal_getThermalHeadroom" 2021-01-07 00:05:41 +00:00
Chris Forbes
1900bef116 thermal: Add AThermal_getThermalHeadroom
Bug: b/168612028
Change-Id: I8f192b50f74b1666beeab3ad546c9e3b25842187
2020-12-16 16:04:43 -08:00
Chong Zhang
cb95b8375b Merge "Add ActivityManager UidImportanceListener to libandroid" 2020-12-04 17:15:45 +00:00
Yiwei Zhang
7d8bb8a465 Adding AHardwareBuffer_getId to libandroid
Bug: 163615119
Test: atest AHardwareBufferTest
Change-Id: I95339f326125183ab4b57c22011bbe034c11a33d
2020-11-19 00:06:46 +00:00
Chong Zhang
8af87925ea Add ActivityManager UidImportanceListener to libandroid
Add UidImportanceListener methods to libandroid for native apex use.

bug: 172942349
bug: 159172726
bug: 146507383

test: updated mediatranscoding's UidPolicy locally to use the new api,
and passed mediatranscodingservice unit tests.

Change-Id: I7ca76f057a83b5bcd634deb2408784d7b93e46fc
2020-11-18 08:57:03 -08:00
Marin Shalamanov
41ffa8dd06 Add shouldBeSeamless param to Surface.setFrameRate
This CL adds a new parameter shouldBeSeamless to the existing
setFrameRate APIs. This parameter indicates whether the desired
refresh rate should be achieved only seamlessly or also switches
with visual interruptions for the user are allowed. The default
value of the new parameter is "true".

Test: atest SetFrameRateTest
Test: atest RefreshRateConfigsTest
Test: atest libsurfaceflinger_unittest
Bug: 161776961
Change-Id: Ic2446d278e4f57fe507d30a0a18ef7b85909da4b
2020-11-17 11:53:14 +01:00
Chong Zhang
06dbe5bf2c Add APermissionManager_checkPermission to libandroid
And allow IActivityManager#checkPermission to be used by native code.

bug: 172283477
bug: 159172726
Change-Id: I582fb918ac3ddc2289ef0040a4391db407673692
2020-11-06 01:49:55 +00:00
Chris Ye
3da1d20bcf Add java-to-native converters for input events.
Add java-to-native converters for android.view.KeyEvent,
android.view.MotionEvent.

Bug: 116830907
Test: atest KeyEventTest, atest MotionEventTest
Change-Id: Ib993afb08ef900d95e21907660f776ad2bd3d50e
2020-04-09 14:18:25 -07:00
Chris Ye
48dbcaae41 Add native Thermal Throttling API to libandroid.
Add native thermal manager API of thermal mananger service into
libandroid. Export Thermal API as NDK library.

Bug: 137151587
Bug: 136285293
Test: build, atest thermalmanager-test atest CtsThermalTestCases

Change-Id: Ia49fb2133624ffcd6168af804ae612ef2bb190f2
2020-02-19 16:25:25 -08:00
Alec Mouri
a8f9a9e85f Merge "[AChoreographer] Lift refresh rate callbacks into NDK" 2020-01-31 19:14:20 +00:00
Steven Thomas
6cf051ef89 Add setFrameRate() api
setFrameRate() is a new api in Android 11 that will enable apps to
specify their intended frame rate.

Bug: 143912624
Bug: 137287430

Test: Added a new CTS test - android.graphics.cts.SetFrameRateTest.

Change-Id: I922573c0d704e2e0ce4cfc2a462f14dce8cb7a79
2020-01-22 13:20:42 -08:00
Alec Mouri
26c5fbb065 [AChoreographer] Lift refresh rate callbacks into NDK
Bug: 136262896
Test: ChoreographerNativeTest
Change-Id: Ica2fe31e511045e2007e7d1b3a129e1b8f26f3a7
2020-01-14 08:12:29 -08:00
Elliott Hughes
241393a30b Add AConfiguration_getScreenRound.
This was actually added in M, but because it wasn't in the version map
(and there's no CTS test) it's not actually reliably available until
next year...

Bug: https://issuetracker.google.com/146458518
Change-Id: I5eed970118b627c7e74800f04751a07ce64d86da
2019-12-18 14:30:46 -08:00
Seigo Nonaka
b3a7bcea2a Update the system font implementation for new API change
Bug: 129559385
Test: TEMPORARY_DISABLE_PATH_RESTRICTIONS=true m ndk-docs
Test: atest CtsGraphicsTestCases:android.graphics.fonts
Change-Id: I73fd366762e4923886529a49a682cdc1cdceb1aa
2019-04-02 14:28:45 -07:00
Valerie Hau
5a9151e492 Adding AHardwareBuffer lockAndGetInfo to libandroid
Bug: 123423521
Test: build, boot,
android.hardware.nativehardware.cts.AHardwareBufferNativeTests

Change-Id: I81d7fa7352b7720103975ab0910d57953e0a7ec4
2019-03-21 12:39:04 -07:00
Santos Cordon
458d3df21f Add explicit 64-bit postFrameCallback APIs
Bug: 123660572
Test: atest -a android.view.cts.ChoreographerNativeTest
Change-Id: Idff869a435ddb9b858a95993c1e4c6a5c668322f
2019-03-06 16:24:55 +00:00
Marius Renn
0e636a8b5f Merge "Adds new HardwareBuffer plane-locking functions to NDK" 2019-02-13 01:16:12 +00:00
Marissa Wall
7f24f79bc8 ASurfaceControl: dataspace (1/2)
Allow dataspace to be set on the SurfaceControl.

Test: atest CtsViewTestCases:android.view.cts.ASurfaceControlTest
Bug: 80477568
Change-Id: Idc12d0a4024fc21d570c5190af33559b818b4b08
2019-02-08 10:53:56 -08:00
Valerie Hau
5bbfd51757 Add setColor, setColorAlpha, and setColorDataspace to ASurfaceControl
Bug:122326454
Test: atest CtsViewTestCases:android.view.cts.ASurfaceControlTests

Change-Id: If41f0a6b736315dbdb829cf3f8fefc654ede9bcf
2019-01-23 12:12:27 -08:00
TreeHugger Robot
9ce77e9b7f Merge "ASurfaceControl: add more support to NDK (1/2)" 2019-01-22 22:38:20 +00:00
TreeHugger Robot
d3ea060251 Merge changes from topic "sensors_ndk_filter"
* changes:
  Export ASensorEventQueue_requestAdditionalInfoEvents
  Add ASensorEventQueue_requestAdditionalInfoEvents
2019-01-22 20:47:43 +00:00
TreeHugger Robot
0bec8721ab Merge "Export ASensor_getHandle" 2019-01-22 20:44:07 +00:00
Brian Stack
ea2cb0c72f Export ASensorEventQueue_requestAdditionalInfoEvents
Bug: 77276247
Test: Builds
Change-Id: Ifa65a67aa136dcec884b16241c99a3349d1de2dc
2019-01-18 17:31:05 -08:00
Marissa Wall
1be5a10c39 ASurfaceControl: add more support to NDK (1/2)
Adds several new functions and updates existing functions.
 - release fences
 - desired present time
 - alpha
 - hdr metadata

Test: atest CtsViewTestCases:android.view.cts.ASurfaceControlTest
Bug: 80477568
Change-Id: Iabda5936a51030bebabc4328dbd83108401603c2
2019-01-18 16:35:49 -08:00
Brian Stack
93c25986de Export ASensor_getHandle
Bug: 122366555
Test: Verified ASensor_getHandle is available to NDK clients in
      libandroid and the function returns the correct handle.

Change-Id: Ib08fbcc6862d3d3d4906a457d7708cb600dd161c
2019-01-17 17:01:47 +00:00
Marissa Wall
f6a73faf81 ASurfaceControl: add SurfaceControl to NDK (1/2)
Add the NDK API for apps to use SurfaceControl for low level compositing
using SurfaceFlinger.

Test: atest CtsViewTestCases:android.view.cts.ASurfaceControlTest
Bug: 80477568, 111656650

Change-Id: If2c85a4427f422e41feeadbee0b64de7eb5c925e
2019-01-14 12:13:36 -08:00
renn
e9345521e3 Adds new HardwareBuffer plane-locking functions to NDK
Test: Run cts-tradefed run commandAndExit cts -m CtsNativeHardwareTestCases
Change-Id: I253abd9f862dc0fcdc55c228164fc37edf35cb7b
2019-01-11 13:40:55 -08:00
Lorenzo Colitti
f30016dd8b Merge "Add asynchronous DNS query API" am: d4ed663b80 am: 62f369e96d
am: 4bbddfe9dd

Change-Id: Id692d8f9ee870c71da33dec825958199db79cf49
2018-12-12 21:14:41 -08:00
Luke Huang
c17821cc11 Add asynchronous DNS query API
Adds support for asynchronous "raw" DNS API for clients.
API allows apps to use multinetworking capability correctly
and also allows other query types than A/AAAA.

Test: built, flashed, booted
      cts test: NativeDnsAsyncTest

Change-Id: I4701b76bd8f0094ef1bdd7c5371b54387914a91b
2018-12-12 04:17:41 +08:00
John Reck
77b31a5eb1 Add NDK async begin/end & counter
Bug: 111503982
Test: atest CtsAtraceHostTestCases
Change-Id: I038b76b505d3103f7b1e85a9469932d23cde2ab8
2018-12-05 18:16:39 -08:00
Krzysztof Kosiński
e463bb6a83 Export AHardwareBuffer_isSupported from libandroid.
Bug: 115660272
Test: Builds and passes CTS on Pixel 2.
Change-Id: Ic67a7db98359b476c6cb146363040844efee475d
2018-11-21 21:41:35 -08:00
Seigo Nonaka
75b841bd31 Implement matchFamilyStyleCharacter API
Bug: 114479228
Test: atest CtsGraphicsTestCases:android.graphics.fonts
Change-Id: Ieaa4251e0ba7c0479f048147141a81766016e9b6
2018-10-30 12:27:25 -07:00
Seigo Nonaka
50692caa28 Add native font enumeration API implementation
ASystemFont API provides an ability of enumerating the system available
font files with some additional information.

ASystemFont reads /system/etc/fonts.xml and give the information to
developers.

Lots of developers reads fonts.xml by themselves but that is not a part
of public API and the structure is subject to change. This API is a
replacement of the reading fonts.xml by developers.

Bug: 111861508
Test: atest NativeSystemFontTest

Change-Id: I992902228650303eb10f486f1ec7838f218c15e7
2018-09-13 15:53:07 -07:00
Dan Albert
536a560df2 Merge "Remove an API that doesn't exist." am: 454b1e37eb
am: a9725d2d6d

Change-Id: Ie7fea7d068053b4e502e2ac8448d392db9c9d54f
2018-04-05 19:40:32 -07:00
Dan Albert
d377f90dc7 Remove an API that doesn't exist.
Apparently this was removed in Jelly Bean:
https://stackoverflow.com/q/24312632/632035. Keeping the decl in the
NDK just confuses people: https://stackoverflow.com/q/49646596/632035.

Test: make checkbuild
Bug: None
Change-Id: If549fcd8f4052e633646c4ce8a054a0bbcd8b2bf
2018-04-05 15:00:00 -07:00
Mathias Agopian
c3c8d423de New NDK APIs for SurfaceTexture
These native APIs give access to most SurfaceTexture
java APIs from native code.

In addition to java APIs it also gives access to
the current buffer using AHardwareBuffer.

The main goal of this is to allow game engines
(mostly) to access things like camera or video
without having to call back into java from
their GL thread.

Test: Manual with filament. Created a SurfaceTexture from java
pointed to a camera stream. Visualized the
camera stream on a 3D mesh.

Change-Id: I0aa104c38553b00f9dadbbaecca06be5dd2868ea
2018-02-02 03:06:05 +00:00
Dan Albert
107366ad42 Merge "Remove TTS symbols from NDK stub library." am: b056324630 am: 8d8c374307 am: 9424fad097
am: 10663e4f76

Change-Id: Ib9675e2e271bec1f2f0dfae65c915620682a9722
2017-08-22 19:27:42 +00:00
Treehugger Robot
b056324630 Merge "Remove TTS symbols from NDK stub library." 2017-08-22 18:03:10 +00:00