aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2015-03-05 12:19:17 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-05 12:19:17 -0800
commitbdad9c34d8f15362d17ba8d7a9fb202b1f3a2ef3 (patch)
tree196c3213292b2ec24ae4133a84708c394c0cf7f4
parenta0865b4620cc614586a5c02f258da2436ed3ab2b (diff)
Add flag to force gpu trace markers to be used and printed out for debugging.
-rw-r--r--include/gpu/GrConfig.h8
-rw-r--r--src/gpu/GrDrawTargetCaps.h4
-rw-r--r--src/gpu/GrTracing.h13
-rw-r--r--src/gpu/gl/GrGLGpu.cpp8
4 files changed, 32 insertions, 1 deletions
diff --git a/include/gpu/GrConfig.h b/include/gpu/GrConfig.h
index d48ccd5dc6..6a00eabe14 100644
--- a/include/gpu/GrConfig.h
+++ b/include/gpu/GrConfig.h
@@ -232,4 +232,12 @@ typedef unsigned __int64 uint64_t;
#define GR_ALWAYS_ALLOCATE_ON_HEAP 0
#endif
+/**
+ * GR_FORCE_GPU_TRACE_DEBUGGING will force gpu tracing/debug markers to be turned on. The trace
+ * markers will be printed out instead of making the backend calls to push and pop them.
+ */
+#if !defined(GR_FORCE_GPU_TRACE_DEBUGGING)
+ #define GR_FORCE_GPU_TRACE_DEBUGGING 0
+#endif
+
#endif
diff --git a/src/gpu/GrDrawTargetCaps.h b/src/gpu/GrDrawTargetCaps.h
index 61ec3b2196..9a08eff9df 100644
--- a/src/gpu/GrDrawTargetCaps.h
+++ b/src/gpu/GrDrawTargetCaps.h
@@ -80,7 +80,11 @@ public:
bool pathRenderingSupport() const { return fPathRenderingSupport; }
bool dstReadInShaderSupport() const { return fDstReadInShaderSupport; }
bool discardRenderTargetSupport() const { return fDiscardRenderTargetSupport; }
+#if GR_FORCE_GPU_TRACE_DEBUGGING
+ bool gpuTracingSupport() const { return true; }
+#else
bool gpuTracingSupport() const { return fGpuTracingSupport; }
+#endif
bool compressedTexSubImageSupport() const { return fCompressedTexSubImageSupport; }
bool oversizedStencilSupport() const { return fOversizedStencilSupport; }
diff --git a/src/gpu/GrTracing.h b/src/gpu/GrTracing.h
index 3327e2c95e..0f76f237c9 100644
--- a/src/gpu/GrTracing.h
+++ b/src/gpu/GrTracing.h
@@ -85,6 +85,11 @@ private:
INTERNAL_TRACE_EVENT_ADD_SCOPED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"),name, \
"id", name_counter, ##__VA_ARGS__);
+#if GR_FORCE_GPU_TRACE_DEBUGGING
+#define GR_CREATE_GPU_TRACE_MARKER(name, name_counter, target) \
+ GrGpuTraceMarkerGenerator SK_MACRO_APPEND_LINE(TMG)(target); \
+ SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter);
+#else
#define GR_CREATE_GPU_TRACE_MARKER(name, name_counter, target) \
GrGpuTraceMarkerGenerator SK_MACRO_APPEND_LINE(TMG)(target); \
bool SK_MACRO_APPEND_LINE(gpuTracingEnabled); \
@@ -93,7 +98,7 @@ private:
if (SK_MACRO_APPEND_LINE(gpuTracingEnabled)) { \
SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter); \
}
-
+#endif
#define GR_CREATE_TRACE_MARKER_CONTEXT(name, context) \
INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED_C(name, context)
@@ -114,6 +119,11 @@ private:
INTERNAL_TRACE_EVENT_ADD_SCOPED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"),name, \
"id", name_counter, ##__VA_ARGS__);
+#if GR_FORCE_GPU_TRACE_DEBUGGING
+#define GR_CREATE_GPU_TRACE_MARKER_C(name, name_counter, context) \
+ GrGpuTraceMarkerGeneratorContext SK_MACRO_APPEND_LINE(TMG)(context); \
+ SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter);
+#else
#define GR_CREATE_GPU_TRACE_MARKER_C(name, name_counter, context) \
GrGpuTraceMarkerGeneratorContext SK_MACRO_APPEND_LINE(TMG)(context); \
bool SK_MACRO_APPEND_LINE(gpuTracingEnabled); \
@@ -122,5 +132,6 @@ private:
if (SK_MACRO_APPEND_LINE(gpuTracingEnabled)) { \
SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter); \
}
+#endif
#endif
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index 8e892ee5a2..b7901400fb 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -2778,13 +2778,21 @@ void GrGLGpu::didAddGpuTraceMarker() {
if (this->caps()->gpuTracingSupport()) {
const GrTraceMarkerSet& markerArray = this->getActiveTraceMarkers();
SkString markerString = markerArray.toStringLast();
+#if GR_FORCE_GPU_TRACE_DEBUGGING
+ SkDebugf("%s\n", markerString.c_str());
+#else
GL_CALL(PushGroupMarker(0, markerString.c_str()));
+#endif
}
}
void GrGLGpu::didRemoveGpuTraceMarker() {
if (this->caps()->gpuTracingSupport()) {
+#if GR_FORCE_GPU_TRACE_DEBUGGING
+ SkDebugf("Pop trace marker.\n");
+#else
GL_CALL(PopGroupMarker());
+#endif
}
}