Add abilitly to query audit trail for batches by draw op
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1745513002
Committed: https://skia.googlesource.com/skia/+/9b48a6e3f862076018cc7d63b180b6340f4873cd
Review URL: https://codereview.chromium.org/1745513002
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp
index c5a36cb..98b3b03 100644
--- a/tools/skiaserve/Request.cpp
+++ b/tools/skiaserve/Request.cpp
@@ -152,6 +152,28 @@
return true;
}
+GrAuditTrail* Request::getAuditTrail(SkCanvas* canvas) {
+ GrAuditTrail* at = nullptr;
+#if SK_SUPPORT_GPU
+ GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
+ if (rt) {
+ GrContext* ctx = rt->getContext();
+ if (ctx) {
+ at = ctx->getAuditTrail();
+ }
+ }
+#endif
+ return at;
+}
+
+void Request::cleanupAuditTrail(SkCanvas* canvas) {
+ GrAuditTrail* at = this->getAuditTrail(canvas);
+ if (at) {
+ GrAuditTrail::AutoEnable ae(at);
+ at->fullReset();
+ }
+}
+
SkData* Request::getJsonOps(int n) {
SkCanvas* canvas = this->getCanvas();
Json::Value root = fDebugCanvas->toJSON(fUrlDataManager, n, canvas);
@@ -159,6 +181,8 @@
SkDynamicMemoryWStream stream;
stream.writeText(Json::FastWriter().write(root).c_str());
+ this->cleanupAuditTrail(canvas);
+
return stream.copyToData();
}
@@ -170,11 +194,7 @@
// a Json::Value and is only compiled in this file
Json::Value parsedFromString;
#if SK_SUPPORT_GPU
- GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
- SkASSERT(rt);
- GrContext* ctx = rt->getContext();
- SkASSERT(ctx);
- GrAuditTrail* at = ctx->getAuditTrail();
+ GrAuditTrail* at = this->getAuditTrail(canvas);
GrAuditTrail::AutoManageBatchList enable(at);
fDebugCanvas->drawTo(canvas, n);