Add debugging helper to GrDrawTarget

This CL relies on https://codereview.chromium.org/1414773002/ (Add the machinery to GrDrawTarget to enable topological sorting)

BUG=skia:4094

Review URL: https://codereview.chromium.org/1416753002
This commit is contained in:
robertphillips 2015-10-20 07:50:00 -07:00 committed by Commit bot
parent 4dfdbb19ba
commit 4beb5c117b
3 changed files with 35 additions and 0 deletions

View File

@ -100,6 +100,7 @@ void GrDrawingManager::flush() {
SkASSERT(result);
for (int i = 0; i < fDrawTargets.count(); ++i) {
//SkDEBUGCODE(fDrawTargets[i]->dump();)
fDrawTargets[i]->flush();
}

View File

@ -42,6 +42,11 @@ GrDrawTarget::GrDrawTarget(GrGpu* gpu, GrResourceProvider* resourceProvider)
// TODO: Stop extracting the context (currently needed by GrClipMaskManager)
fContext = fGpu->getContext();
fClipMaskManager.reset(new GrClipMaskManager(this));
#ifdef SK_DEBUG
static int debugID = 0;
fDebugID = debugID++;
#endif
}
GrDrawTarget::~GrDrawTarget() {
@ -79,6 +84,29 @@ void GrDrawTarget::addDependency(GrSurface* dependedOn) {
}
}
#ifdef SK_DEBUG
void GrDrawTarget::dump() const {
SkDebugf("--------------------------------------------------------------\n");
SkDebugf("node: %d\n");
SkDebugf("relies On (%d): ", fDependencies.count());
for (int i = 0; i < fDependencies.count(); ++i) {
SkDebugf("%d, ", fDependencies[i]->fDebugID);
}
SkDebugf("\n");
SkDebugf("batches (%d):\n", fBatches.count());
for (int i = 0; i < fBatches.count(); ++i) {
#if 0
SkDebugf("*******************************\n");
#endif
SkDebugf("%d: %s\n", i, fBatches[i]->name());
#if 0
SkString str = fBatches[i]->dumpInfo();
SkDebugf("%s\n", str.c_str());
#endif
}
}
#endif
bool GrDrawTarget::setupDstReadIfNecessary(const GrPipelineBuilder& pipelineBuilder,
const GrProcOptInfo& colorPOI,
const GrProcOptInfo& coveragePOI,

View File

@ -70,6 +70,11 @@ public:
return fDependencies.find(dependedOn) >= 0;
}
/*
* Dump out the drawTarget dependency DAG
*/
SkDEBUGCODE(void dump() const;)
/**
* Empties the draw buffer of any queued up draws.
*/
@ -304,6 +309,7 @@ private:
bool fFlushing;
int fFirstUnpreparedBatch;
SkDEBUGCODE(int fDebugID;)
uint32_t fFlags;
// 'this' drawTarget relies on the output of the drawTargets in 'fDependencies'