diff options
author | 2015-03-05 12:19:17 -0800 | |
---|---|---|
committer | 2015-03-05 12:19:17 -0800 | |
commit | bdad9c34d8f15362d17ba8d7a9fb202b1f3a2ef3 (patch) | |
tree | 196c3213292b2ec24ae4133a84708c394c0cf7f4 | |
parent | a0865b4620cc614586a5c02f258da2436ed3ab2b (diff) |
Add flag to force gpu trace markers to be used and printed out for debugging.
BUG=skia:
Review URL: https://codereview.chromium.org/976413002
-rw-r--r-- | include/gpu/GrConfig.h | 8 | ||||
-rw-r--r-- | src/gpu/GrDrawTargetCaps.h | 4 | ||||
-rw-r--r-- | src/gpu/GrTracing.h | 13 | ||||
-rw-r--r-- | src/gpu/gl/GrGLGpu.cpp | 8 |
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 } } |