Add forceDrawNextFrame function for HardwareRenderer
The forceDraw flag in HardwareRenderer will ensure a frame is drawn when requested even if it would end up drawing multiple frames in a single vsync. This is to help blast sync when we want to synchronize the buffer. We want to make sure we are guaranteed a callback since we don't want to wait for retries, especially in the case when trying to synchronize multiple buffers. There was already a global flag to handle this, but would use the flag for all draws. This new function is set per draw so once a frame is drawn it's unset. The global flag was only used for tests so updated the test to set the flag before every draw and deleted the global property. Test: Underlying code was in place. This is just piping a new setter. No usages yet. Test: TestSceneRunner Bug: 200284684 Change-Id: Ie1c9950cabb7331cfed1721564a51a1a15cd1624
This commit is contained in:
@@ -148,6 +148,8 @@ void DrawFrameTask::run() {
|
||||
bool canDrawThisFrame;
|
||||
{
|
||||
TreeInfo info(TreeInfo::MODE_FULL, *mContext);
|
||||
info.forceDrawFrame = mForceDrawFrame;
|
||||
mForceDrawFrame = false;
|
||||
canUnblockUiThread = syncFrameState(info);
|
||||
canDrawThisFrame = info.out.canDrawThisFrame;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user