Loading data/etc/go_handheld_core_hardware.xml +3 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ <!-- Feature to specify if the device supports adding device admins. --> <feature name="android.software.device_admin" /> <!-- Feature to specify if the device support managed users. --> <feature name="android.software.managed_users" /> <!-- Devices with all optimizations required to support VR Mode and pass all CDD requirements for this feature may include android.hardware.vr.high_performance --> Loading include/android/performance_hint.h +0 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES */ #include <android/api-level.h> #include <stdbool.h> #include <stdint.h> #include <unistd.h> Loading include/android/surface_control.h +63 −0 Original line number Diff line number Diff line Loading @@ -762,6 +762,69 @@ void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* _No int8_t changeFrameRateStrategy) __INTRODUCED_IN(31); /** * Sets the intended frame rate for the given \a surface_control. * * On devices that are capable of running the display at different frame rates, * the system may choose a display refresh rate to better match this surface's frame * rate. Usage of this API won't introduce frame rate throttling, or affect other * aspects of the application's frame production pipeline. However, because the system * may change the display refresh rate, calls to this function may result in changes * to Choreographer callback timings, and changes to the time interval at which the * system releases buffers back to the application. * * You can register for changes in the refresh rate using * \a AChoreographer_registerRefreshRateCallback. * * See ASurfaceTransaction_clearFrameRate(). * * Available since API level 36. * * \param desiredMinRate The desired minimum frame rate (inclusive) for the surface, specifying that * the surface prefers the device render rate to be at least `desiredMinRate`. * * <p>Set `desiredMinRate` = `desiredMaxRate` to indicate the surface prefers an exact frame rate. * * <p>Set `desiredMinRate` = 0 to indicate the surface has no preference * and any frame rate is acceptable. * * <p>The value should be greater than or equal to 0. * * \param desiredMaxRate The desired maximum frame rate (inclusive) for the surface, specifying that * the surface prefers the device render rate to be at most `desiredMaxRate`. * * <p>Set `desiredMaxRate` = `desiredMinRate` to indicate the surface prefers an exact frame rate. * * <p>Set `desiredMaxRate` = positive infinity to indicate the surface has no preference * and any frame rate is acceptable. * * <p>The value should be greater than or equal to `desiredMinRate`. * * \param fixedSourceRate The "fixed source" frame rate of the surface if the content has an * inherently fixed frame rate, e.g. a video that has a specific frame rate. * * <p>When the frame rate chosen for the surface is the `fixedSourceRate` or a * multiple, the surface can render without frame pulldown, for optimal smoothness. For * example, a 30 fps video (`fixedSourceRate`=30) renders just as smoothly on 30 fps, * 60 fps, 90 fps, 120 fps, and so on. * * <p>Setting the fixed source rate can also be used together with a desired * frame rate min and max via setting `desiredMinRate` and `desiredMaxRate`. This still * means the surface's content has a fixed frame rate of `fixedSourceRate`, but additionally * specifies the preference to be in the range [`desiredMinRate`, `desiredMaxRate`]. For example, an * app might want to specify there is 30 fps video (`fixedSourceRate`=30) as well as a smooth * animation on the same surface which looks good when drawing within a frame rate range such as * [`desiredMinRate`, `desiredMaxRate`] = [60,120]. * * \param changeFrameRateStrategy Whether display refresh rate transitions caused by this surface * should be seamless. A seamless transition is one that doesn't have any visual interruptions, such * as a black screen for a second or two. */ void ASurfaceTransaction_setFrameRateParams( ASurfaceTransaction* _Nonnull transaction, ASurfaceControl* _Nonnull surface_control, float desiredMinRate, float desiredMaxRate, float fixedSourceRate, ANativeWindow_ChangeFrameRateStrategy changeFrameRateStrategy) __INTRODUCED_IN(36); /** * Clears the frame rate which is set for \a surface_control. * Loading libs/binder/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -871,6 +871,10 @@ cc_library { symbol_file: "libbinder_rpc_unstable.map.txt", }, header_abi_checker: { enabled: false, }, // This library is intentionally limited to these targets, and it will be removed later. // Do not expand the visibility. visibility: [ Loading libs/binder/include_rpc_unstable/binder_rpc_unstable.hpp +5 −1 Original line number Diff line number Diff line Loading @@ -37,8 +37,12 @@ enum class ARpcSession_FileDescriptorTransportMode { // Set `cid` to VMADDR_CID_LOCAL to only bind to the local vsock interface. // Returns an opaque handle to the running server instance, or null if the server // could not be started. // Set |port| to VMADDR_PORT_ANY to pick an available ephemeral port. // |assignedPort| will be set to the assigned port number if it is not null. // This will be the provided |port|, or the chosen available ephemeral port when // |port| is VMADDR_PORT_ANY. [[nodiscard]] ARpcServer* ARpcServer_newVsock(AIBinder* service, unsigned int cid, unsigned int port); unsigned int port, unsigned int* assignedPort); // Starts a Unix domain RPC server with an open raw socket file descriptor // and a given root IBinder object. Loading Loading
data/etc/go_handheld_core_hardware.xml +3 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ <!-- Feature to specify if the device supports adding device admins. --> <feature name="android.software.device_admin" /> <!-- Feature to specify if the device support managed users. --> <feature name="android.software.managed_users" /> <!-- Devices with all optimizations required to support VR Mode and pass all CDD requirements for this feature may include android.hardware.vr.high_performance --> Loading
include/android/performance_hint.h +0 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES */ #include <android/api-level.h> #include <stdbool.h> #include <stdint.h> #include <unistd.h> Loading
include/android/surface_control.h +63 −0 Original line number Diff line number Diff line Loading @@ -762,6 +762,69 @@ void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* _No int8_t changeFrameRateStrategy) __INTRODUCED_IN(31); /** * Sets the intended frame rate for the given \a surface_control. * * On devices that are capable of running the display at different frame rates, * the system may choose a display refresh rate to better match this surface's frame * rate. Usage of this API won't introduce frame rate throttling, or affect other * aspects of the application's frame production pipeline. However, because the system * may change the display refresh rate, calls to this function may result in changes * to Choreographer callback timings, and changes to the time interval at which the * system releases buffers back to the application. * * You can register for changes in the refresh rate using * \a AChoreographer_registerRefreshRateCallback. * * See ASurfaceTransaction_clearFrameRate(). * * Available since API level 36. * * \param desiredMinRate The desired minimum frame rate (inclusive) for the surface, specifying that * the surface prefers the device render rate to be at least `desiredMinRate`. * * <p>Set `desiredMinRate` = `desiredMaxRate` to indicate the surface prefers an exact frame rate. * * <p>Set `desiredMinRate` = 0 to indicate the surface has no preference * and any frame rate is acceptable. * * <p>The value should be greater than or equal to 0. * * \param desiredMaxRate The desired maximum frame rate (inclusive) for the surface, specifying that * the surface prefers the device render rate to be at most `desiredMaxRate`. * * <p>Set `desiredMaxRate` = `desiredMinRate` to indicate the surface prefers an exact frame rate. * * <p>Set `desiredMaxRate` = positive infinity to indicate the surface has no preference * and any frame rate is acceptable. * * <p>The value should be greater than or equal to `desiredMinRate`. * * \param fixedSourceRate The "fixed source" frame rate of the surface if the content has an * inherently fixed frame rate, e.g. a video that has a specific frame rate. * * <p>When the frame rate chosen for the surface is the `fixedSourceRate` or a * multiple, the surface can render without frame pulldown, for optimal smoothness. For * example, a 30 fps video (`fixedSourceRate`=30) renders just as smoothly on 30 fps, * 60 fps, 90 fps, 120 fps, and so on. * * <p>Setting the fixed source rate can also be used together with a desired * frame rate min and max via setting `desiredMinRate` and `desiredMaxRate`. This still * means the surface's content has a fixed frame rate of `fixedSourceRate`, but additionally * specifies the preference to be in the range [`desiredMinRate`, `desiredMaxRate`]. For example, an * app might want to specify there is 30 fps video (`fixedSourceRate`=30) as well as a smooth * animation on the same surface which looks good when drawing within a frame rate range such as * [`desiredMinRate`, `desiredMaxRate`] = [60,120]. * * \param changeFrameRateStrategy Whether display refresh rate transitions caused by this surface * should be seamless. A seamless transition is one that doesn't have any visual interruptions, such * as a black screen for a second or two. */ void ASurfaceTransaction_setFrameRateParams( ASurfaceTransaction* _Nonnull transaction, ASurfaceControl* _Nonnull surface_control, float desiredMinRate, float desiredMaxRate, float fixedSourceRate, ANativeWindow_ChangeFrameRateStrategy changeFrameRateStrategy) __INTRODUCED_IN(36); /** * Clears the frame rate which is set for \a surface_control. * Loading
libs/binder/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -871,6 +871,10 @@ cc_library { symbol_file: "libbinder_rpc_unstable.map.txt", }, header_abi_checker: { enabled: false, }, // This library is intentionally limited to these targets, and it will be removed later. // Do not expand the visibility. visibility: [ Loading
libs/binder/include_rpc_unstable/binder_rpc_unstable.hpp +5 −1 Original line number Diff line number Diff line Loading @@ -37,8 +37,12 @@ enum class ARpcSession_FileDescriptorTransportMode { // Set `cid` to VMADDR_CID_LOCAL to only bind to the local vsock interface. // Returns an opaque handle to the running server instance, or null if the server // could not be started. // Set |port| to VMADDR_PORT_ANY to pick an available ephemeral port. // |assignedPort| will be set to the assigned port number if it is not null. // This will be the provided |port|, or the chosen available ephemeral port when // |port| is VMADDR_PORT_ANY. [[nodiscard]] ARpcServer* ARpcServer_newVsock(AIBinder* service, unsigned int cid, unsigned int port); unsigned int port, unsigned int* assignedPort); // Starts a Unix domain RPC server with an open raw socket file descriptor // and a given root IBinder object. Loading