Support render-ahead in vulkan
Bug: 127822449
Test: verified render_ahead working with skiavk
Change-Id: Iae1b227a763f6def035057f38cca4b0ab65c7e82
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 4a3119a..0bd080d 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -17,15 +17,15 @@
#pragma once
#include "DamageAccumulator.h"
-#include "Lighting.h"
#include "FrameInfo.h"
#include "FrameInfoVisualizer.h"
#include "FrameMetricsReporter.h"
#include "IContextFactory.h"
#include "IRenderPipeline.h"
#include "LayerUpdateQueue.h"
-#include "RenderNode.h"
+#include "Lighting.h"
#include "ReliableSurface.h"
+#include "RenderNode.h"
#include "renderthread/RenderTask.h"
#include "renderthread/RenderThread.h"
@@ -37,10 +37,10 @@
#include <utils/Functor.h>
#include <functional>
+#include <future>
#include <set>
#include <string>
#include <vector>
-#include <future>
namespace android {
namespace uirenderer {
@@ -187,9 +187,7 @@
mRenderPipeline->setPictureCapturedCallback(callback);
}
- void setForceDark(bool enable) {
- mUseForceDark = enable;
- }
+ void setForceDark(bool enable) { mUseForceDark = enable; }
bool useForceDark() {
// The force-dark override has the highest priority, followed by the disable setting
@@ -204,7 +202,8 @@
return mUseForceDark;
}
- void setRenderAheadDepth(int renderAhead);
+ // Must be called before setSurface
+ void setRenderAheadDepth(uint32_t renderAhead);
private:
CanvasContext(RenderThread& thread, bool translucent, RenderNode* rootRenderNode,
@@ -238,7 +237,7 @@
// painted onto its surface.
bool mIsDirty = false;
SwapBehavior mSwapBehavior = SwapBehavior::kSwap_default;
- int mRenderAheadDepth = 0;
+ uint32_t mRenderAheadDepth = 0;
struct SwapHistory {
SkRect damage;
nsecs_t vsyncTime;