Loading Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ cc_library_headers { export_include_dirs: [ "include/", ], product_available: true, } ndk_headers { Loading cmds/dumpstate/dumpstate.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -4656,7 +4656,7 @@ void Dumpstate::UpdateProgress(int32_t delta_sec) { void Dumpstate::TakeScreenshot(const std::string& path) { const std::string& real_path = path.empty() ? screenshot_path_ : path; int status = RunCommand("", {"/system/bin/screencap", "-p", real_path}, RunCommand("", {"screencap", "-p", real_path}, CommandOptions::WithTimeout(10).Always().DropRoot().RedirectStderr().Build()); if (status == 0) { MYLOGD("Screenshot saved on %s\n", real_path.c_str()); Loading include/android/OWNERS +3 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,6 @@ per-file input.h,keycodes.h = file:platform/frameworks/base:/INPUT_OWNERS # Window manager per-file surface_control_input_receiver.h = file:platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS per-file input_transfer_token.h = file:platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS # CoGS per-file *luts* = file:platform/frameworks/base:/graphics/java/android/graphics/OWNERS No newline at end of file include/android/choreographer.h +1 −1 Original line number Diff line number Diff line Loading @@ -318,7 +318,7 @@ size_t AChoreographerFrameCallbackData_getPreferredFrameTimelineIndex( /** * Gets the token used by the platform to identify the frame timeline at the given \c index. * q * * Available since API level 33. * * \param index index of a frame timeline, in \f( [0, FrameTimelinesLength) \f). See Loading include/android/performance_hint.h +63 −1 Original line number Diff line number Diff line Loading @@ -19,9 +19,23 @@ * * APerformanceHint allows apps to create performance hint sessions for groups * of threads, and provide hints to the system about the workload of those threads, * to help the system more accurately allocate power for them. It is the NDK * to help the system more accurately allocate resources for them. It is the NDK * counterpart to the Java PerformanceHintManager SDK API. * * This API is intended for periodic workloads, such as frame production. Clients are * expected to create an instance of APerformanceHintManager, create a session with * that, and then set a target duration for the session. Then, they can report the actual * work duration at the end of each cycle to inform the framework about how long those * workloads are taking. The framework will then compare the actual durations to the target * duration and attempt to help the client reach a steady state under the target. * * Unlike reportActualWorkDuration, the "notify..." hints are intended to be sent in * advance of large changes in the workload, to prevent them from going over the target * when there is a sudden, unforseen change. Their effects are intended to last for only * one cycle, after which reportActualWorkDuration will have a chance to catch up. * These hints should be used judiciously, only in cases where the workload is changing * substantially. To enforce that, they are tracked using a per-app rate limiter to avoid * excessive hinting and encourage clients to be mindful about when to send them. * @{ */ Loading Loading @@ -249,6 +263,54 @@ int APerformanceHint_reportActualWorkDuration2( APerformanceHintSession* _Nonnull session, AWorkDuration* _Nonnull workDuration) __INTRODUCED_IN(__ANDROID_API_V__); /** * Informs the framework of an upcoming increase in the workload of a graphics pipeline * bound to this session. The user can specify whether the increase is expected to be * on the CPU, GPU, or both. * * Sending hints for both CPU and GPU counts as two separate hints for the purposes of the * rate limiter. * * @param cpu Indicates if the workload increase is expected to affect the CPU. * @param gpu Indicates if the workload increase is expected to affect the GPU. * @param debugName A required string used to identify this specific hint during * tracing. This debug string will only be held for the duration of the * method, and can be safely discarded after. * * @return 0 on success. * EINVAL if no hints were requested. * EBUSY if the hint was rate limited. * EPIPE if communication with the system service has failed. * ENOTSUP if the hint is not supported. */ int APerformanceHint_notifyWorkloadIncrease( APerformanceHintSession* _Nonnull session, bool cpu, bool gpu, const char* _Nonnull debugName) __INTRODUCED_IN(36); /** * Informs the framework of an upcoming reset in the workload of a graphics pipeline * bound to this session, or the imminent start of a new workload. The user can specify * whether the reset is expected to affect the CPU, GPU, or both. * * Sending hints for both CPU and GPU counts as two separate hints for the purposes of the * this load tracking. * * @param cpu Indicates if the workload reset is expected to affect the CPU. * @param gpu Indicates if the workload reset is expected to affect the GPU. * @param debugName A required string used to identify this specific hint during * tracing. This debug string will only be held for the duration of the * method, and can be safely discarded after. * * @return 0 on success. * EINVAL if no hints were requested. * EBUSY if the hint was rate limited. * EPIPE if communication with the system service has failed. * ENOTSUP if the hint is not supported. */ int APerformanceHint_notifyWorkloadReset( APerformanceHintSession* _Nonnull session, bool cpu, bool gpu, const char* _Nonnull debugName) __INTRODUCED_IN(36); /** * Creates a new AWorkDuration. When the client finishes using {@link AWorkDuration}, it should * call {@link AWorkDuration_release()} to destroy {@link AWorkDuration} and release all resources Loading Loading
Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ cc_library_headers { export_include_dirs: [ "include/", ], product_available: true, } ndk_headers { Loading
cmds/dumpstate/dumpstate.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -4656,7 +4656,7 @@ void Dumpstate::UpdateProgress(int32_t delta_sec) { void Dumpstate::TakeScreenshot(const std::string& path) { const std::string& real_path = path.empty() ? screenshot_path_ : path; int status = RunCommand("", {"/system/bin/screencap", "-p", real_path}, RunCommand("", {"screencap", "-p", real_path}, CommandOptions::WithTimeout(10).Always().DropRoot().RedirectStderr().Build()); if (status == 0) { MYLOGD("Screenshot saved on %s\n", real_path.c_str()); Loading
include/android/OWNERS +3 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,6 @@ per-file input.h,keycodes.h = file:platform/frameworks/base:/INPUT_OWNERS # Window manager per-file surface_control_input_receiver.h = file:platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS per-file input_transfer_token.h = file:platform/frameworks/base:/services/core/java/com/android/server/wm/OWNERS # CoGS per-file *luts* = file:platform/frameworks/base:/graphics/java/android/graphics/OWNERS No newline at end of file
include/android/choreographer.h +1 −1 Original line number Diff line number Diff line Loading @@ -318,7 +318,7 @@ size_t AChoreographerFrameCallbackData_getPreferredFrameTimelineIndex( /** * Gets the token used by the platform to identify the frame timeline at the given \c index. * q * * Available since API level 33. * * \param index index of a frame timeline, in \f( [0, FrameTimelinesLength) \f). See Loading
include/android/performance_hint.h +63 −1 Original line number Diff line number Diff line Loading @@ -19,9 +19,23 @@ * * APerformanceHint allows apps to create performance hint sessions for groups * of threads, and provide hints to the system about the workload of those threads, * to help the system more accurately allocate power for them. It is the NDK * to help the system more accurately allocate resources for them. It is the NDK * counterpart to the Java PerformanceHintManager SDK API. * * This API is intended for periodic workloads, such as frame production. Clients are * expected to create an instance of APerformanceHintManager, create a session with * that, and then set a target duration for the session. Then, they can report the actual * work duration at the end of each cycle to inform the framework about how long those * workloads are taking. The framework will then compare the actual durations to the target * duration and attempt to help the client reach a steady state under the target. * * Unlike reportActualWorkDuration, the "notify..." hints are intended to be sent in * advance of large changes in the workload, to prevent them from going over the target * when there is a sudden, unforseen change. Their effects are intended to last for only * one cycle, after which reportActualWorkDuration will have a chance to catch up. * These hints should be used judiciously, only in cases where the workload is changing * substantially. To enforce that, they are tracked using a per-app rate limiter to avoid * excessive hinting and encourage clients to be mindful about when to send them. * @{ */ Loading Loading @@ -249,6 +263,54 @@ int APerformanceHint_reportActualWorkDuration2( APerformanceHintSession* _Nonnull session, AWorkDuration* _Nonnull workDuration) __INTRODUCED_IN(__ANDROID_API_V__); /** * Informs the framework of an upcoming increase in the workload of a graphics pipeline * bound to this session. The user can specify whether the increase is expected to be * on the CPU, GPU, or both. * * Sending hints for both CPU and GPU counts as two separate hints for the purposes of the * rate limiter. * * @param cpu Indicates if the workload increase is expected to affect the CPU. * @param gpu Indicates if the workload increase is expected to affect the GPU. * @param debugName A required string used to identify this specific hint during * tracing. This debug string will only be held for the duration of the * method, and can be safely discarded after. * * @return 0 on success. * EINVAL if no hints were requested. * EBUSY if the hint was rate limited. * EPIPE if communication with the system service has failed. * ENOTSUP if the hint is not supported. */ int APerformanceHint_notifyWorkloadIncrease( APerformanceHintSession* _Nonnull session, bool cpu, bool gpu, const char* _Nonnull debugName) __INTRODUCED_IN(36); /** * Informs the framework of an upcoming reset in the workload of a graphics pipeline * bound to this session, or the imminent start of a new workload. The user can specify * whether the reset is expected to affect the CPU, GPU, or both. * * Sending hints for both CPU and GPU counts as two separate hints for the purposes of the * this load tracking. * * @param cpu Indicates if the workload reset is expected to affect the CPU. * @param gpu Indicates if the workload reset is expected to affect the GPU. * @param debugName A required string used to identify this specific hint during * tracing. This debug string will only be held for the duration of the * method, and can be safely discarded after. * * @return 0 on success. * EINVAL if no hints were requested. * EBUSY if the hint was rate limited. * EPIPE if communication with the system service has failed. * ENOTSUP if the hint is not supported. */ int APerformanceHint_notifyWorkloadReset( APerformanceHintSession* _Nonnull session, bool cpu, bool gpu, const char* _Nonnull debugName) __INTRODUCED_IN(36); /** * Creates a new AWorkDuration. When the client finishes using {@link AWorkDuration}, it should * call {@link AWorkDuration_release()} to destroy {@link AWorkDuration} and release all resources Loading