add option to supress prints on context
BUG=skia: Review URL: https://codereview.chromium.org/1128903008
This commit is contained in:
parent
0d5fd110e0
commit
5566133766
@ -47,12 +47,13 @@ public:
|
||||
SK_DECLARE_INST_COUNT(GrContext)
|
||||
|
||||
struct Options {
|
||||
Options() : fDrawPathToCompressedTexture(false) { }
|
||||
Options() : fDrawPathToCompressedTexture(false), fSuppressPrints(false) { }
|
||||
|
||||
// EXPERIMENTAL
|
||||
// May be removed in the future, or may become standard depending
|
||||
// on the outcomes of a variety of internal tests.
|
||||
bool fDrawPathToCompressedTexture;
|
||||
bool fSuppressPrints;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -529,6 +530,7 @@ public:
|
||||
GrResourceProvider* resourceProvider() { return fResourceProvider; }
|
||||
const GrResourceProvider* resourceProvider() const { return fResourceProvider; }
|
||||
GrResourceCache* getResourceCache() { return fResourceCache; }
|
||||
bool suppressPrints() const { return fOptions.fSuppressPrints; }
|
||||
|
||||
// Called by tests that draw directly to the context via GrDrawTarget
|
||||
void getTestTarget(GrTestTarget*);
|
||||
|
@ -264,4 +264,14 @@ private:
|
||||
SkIRect fRect;
|
||||
};
|
||||
|
||||
#ifdef SK_DEBUG
|
||||
// Takes a pointer to a GrContext, and will suppress prints if required
|
||||
#define GrContextDebugf(context, format, ...) \
|
||||
if (!context->suppressPrints()) { \
|
||||
SkDebugf(format, ##__VA_ARGS__); \
|
||||
}
|
||||
#else
|
||||
#define GrContextDebugf(context, format, ...)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -68,7 +68,8 @@ bool GrDrawTarget::setupDstReadIfNecessary(const GrPipelineBuilder& pipelineBuil
|
||||
drawBounds->roundOut(&drawIBounds);
|
||||
if (!copyRect.intersect(drawIBounds)) {
|
||||
#ifdef SK_DEBUG
|
||||
SkDebugf("Missed an early reject. Bailing on draw from setupDstReadIfNecessary.\n");
|
||||
GrContextDebugf(fContext, "Missed an early reject. "
|
||||
"Bailing on draw from setupDstReadIfNecessary.\n");
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ void GrGLProgramDataManager::set1f(UniformHandle u, GrGLfloat v0) const {
|
||||
const Uniform& uni = fUniforms[u.toProgramDataIndex()];
|
||||
SkASSERT(uni.fType == kFloat_GrSLType);
|
||||
SkASSERT(GrGLShaderVar::kNonArray == uni.fArrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform1f(uni.fFSLocation, v0));
|
||||
}
|
||||
@ -94,7 +94,7 @@ void GrGLProgramDataManager::set2f(UniformHandle u, GrGLfloat v0, GrGLfloat v1)
|
||||
const Uniform& uni = fUniforms[u.toProgramDataIndex()];
|
||||
SkASSERT(uni.fType == kVec2f_GrSLType);
|
||||
SkASSERT(GrGLShaderVar::kNonArray == uni.fArrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform2f(uni.fFSLocation, v0, v1));
|
||||
}
|
||||
@ -110,7 +110,7 @@ void GrGLProgramDataManager::set2fv(UniformHandle u,
|
||||
SkASSERT(uni.fType == kVec2f_GrSLType);
|
||||
SkASSERT(arrayCount > 0);
|
||||
ASSERT_ARRAY_UPLOAD_IN_BOUNDS(uni, arrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform2fv(uni.fFSLocation, arrayCount, v));
|
||||
}
|
||||
@ -123,7 +123,7 @@ void GrGLProgramDataManager::set3f(UniformHandle u, GrGLfloat v0, GrGLfloat v1,
|
||||
const Uniform& uni = fUniforms[u.toProgramDataIndex()];
|
||||
SkASSERT(uni.fType == kVec3f_GrSLType);
|
||||
SkASSERT(GrGLShaderVar::kNonArray == uni.fArrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform3f(uni.fFSLocation, v0, v1, v2));
|
||||
}
|
||||
@ -139,7 +139,7 @@ void GrGLProgramDataManager::set3fv(UniformHandle u,
|
||||
SkASSERT(uni.fType == kVec3f_GrSLType);
|
||||
SkASSERT(arrayCount > 0);
|
||||
ASSERT_ARRAY_UPLOAD_IN_BOUNDS(uni, arrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform3fv(uni.fFSLocation, arrayCount, v));
|
||||
}
|
||||
@ -156,7 +156,7 @@ void GrGLProgramDataManager::set4f(UniformHandle u,
|
||||
const Uniform& uni = fUniforms[u.toProgramDataIndex()];
|
||||
SkASSERT(uni.fType == kVec4f_GrSLType);
|
||||
SkASSERT(GrGLShaderVar::kNonArray == uni.fArrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform4f(uni.fFSLocation, v0, v1, v2, v3));
|
||||
}
|
||||
@ -172,7 +172,7 @@ void GrGLProgramDataManager::set4fv(UniformHandle u,
|
||||
SkASSERT(uni.fType == kVec4f_GrSLType);
|
||||
SkASSERT(arrayCount > 0);
|
||||
ASSERT_ARRAY_UPLOAD_IN_BOUNDS(uni, arrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), Uniform4fv(uni.fFSLocation, arrayCount, v));
|
||||
}
|
||||
@ -185,7 +185,7 @@ void GrGLProgramDataManager::setMatrix3f(UniformHandle u, const GrGLfloat matrix
|
||||
const Uniform& uni = fUniforms[u.toProgramDataIndex()];
|
||||
SkASSERT(uni.fType == kMat33f_GrSLType);
|
||||
SkASSERT(GrGLShaderVar::kNonArray == uni.fArrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), UniformMatrix3fv(uni.fFSLocation, 1, false, matrix));
|
||||
}
|
||||
@ -198,7 +198,7 @@ void GrGLProgramDataManager::setMatrix4f(UniformHandle u, const GrGLfloat matrix
|
||||
const Uniform& uni = fUniforms[u.toProgramDataIndex()];
|
||||
SkASSERT(uni.fType == kMat44f_GrSLType);
|
||||
SkASSERT(GrGLShaderVar::kNonArray == uni.fArrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(), UniformMatrix4fv(uni.fFSLocation, 1, false, matrix));
|
||||
}
|
||||
@ -214,7 +214,7 @@ void GrGLProgramDataManager::setMatrix3fv(UniformHandle u,
|
||||
SkASSERT(uni.fType == kMat33f_GrSLType);
|
||||
SkASSERT(arrayCount > 0);
|
||||
ASSERT_ARRAY_UPLOAD_IN_BOUNDS(uni, arrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(),
|
||||
UniformMatrix3fv(uni.fFSLocation, arrayCount, false, matrices));
|
||||
@ -232,7 +232,7 @@ void GrGLProgramDataManager::setMatrix4fv(UniformHandle u,
|
||||
SkASSERT(uni.fType == kMat44f_GrSLType);
|
||||
SkASSERT(arrayCount > 0);
|
||||
ASSERT_ARRAY_UPLOAD_IN_BOUNDS(uni, arrayCount);
|
||||
this->printUnused(uni);
|
||||
SkDEBUGCODE(this->printUnused(uni);)
|
||||
if (kUnusedUniform != uni.fFSLocation) {
|
||||
GR_GL_CALL(fGpu->glInterface(),
|
||||
UniformMatrix4fv(uni.fFSLocation, arrayCount, false, matrices));
|
||||
@ -261,7 +261,7 @@ void GrGLProgramDataManager::setSkMatrix(UniformHandle u, const SkMatrix& matrix
|
||||
#ifdef SK_DEBUG
|
||||
void GrGLProgramDataManager::printUnused(const Uniform& uni) const {
|
||||
if (kUnusedUniform == uni.fFSLocation && kUnusedUniform == uni.fVSLocation) {
|
||||
SkDebugf("Unused uniform in shader\n");
|
||||
GrContextDebugf(fGpu->getContext(), "Unused uniform in shader\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -106,11 +106,7 @@ private:
|
||||
);
|
||||
};
|
||||
|
||||
#ifdef SK_DEBUG
|
||||
void printUnused(const Uniform&) const;
|
||||
#else
|
||||
void printUnused(const Uniform&) const {}
|
||||
#endif
|
||||
SkDEBUGCODE(void printUnused(const Uniform&) const;)
|
||||
|
||||
SkTArray<Uniform, true> fUniforms;
|
||||
GrGLGpu* fGpu;
|
||||
|
Loading…
Reference in New Issue
Block a user