diff options
Diffstat (limited to 'fuzz')
-rw-r--r-- | fuzz/FuzzCanvas.cpp | 5 | ||||
-rw-r--r-- | fuzz/FuzzCommon.h | 25 | ||||
-rw-r--r-- | fuzz/fuzz.cpp | 1 |
3 files changed, 31 insertions, 0 deletions
diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp index 5c92fd1eb5..b66e5187dd 100644 --- a/fuzz/FuzzCanvas.cpp +++ b/fuzz/FuzzCanvas.cpp @@ -1811,12 +1811,17 @@ static void fuzz_ganesh(Fuzz* fuzz, GrContext* context) { fuzz_canvas(fuzz, surface->getCanvas()); } +extern bool FLAGS_gpuInfo; + DEF_FUZZ(NativeGLCanvas, fuzz) { sk_gpu_test::GrContextFactory f; GrContext* context = f.get(sk_gpu_test::GrContextFactory::kGL_ContextType); if (!context) { context = f.get(sk_gpu_test::GrContextFactory::kGLES_ContextType); } + if (FLAGS_gpuInfo) { + dumpGPUInfo(context); + } fuzz_ganesh(fuzz, context); } diff --git a/fuzz/FuzzCommon.h b/fuzz/FuzzCommon.h index 7615fe723e..9435b43552 100644 --- a/fuzz/FuzzCommon.h +++ b/fuzz/FuzzCommon.h @@ -12,6 +12,30 @@ #include "SkPath.h" #include "SkRegion.h" + +#if SK_SUPPORT_GPU +#include "GrContextFactory.h" +#include "gl/GrGLFunctions.h" +#include "gl/GrGLGpu.h" +#include "gl/GrGLUtil.h" +#include "GrContextPriv.h" + +inline void dumpGPUInfo(GrContext* context) { + const GrGLInterface* gl = static_cast<GrGLGpu*>(context->contextPriv().getGpu()) + ->glInterface(); + const GrGLubyte* output; + GR_GL_CALL_RET(gl, output, GetString(GR_GL_RENDERER)); + SkDebugf("GL_RENDERER %s\n", (const char*) output); + + GR_GL_CALL_RET(gl, output, GetString(GR_GL_VENDOR)); + SkDebugf("GL_VENDOR %s\n", (const char*) output); + + GR_GL_CALL_RET(gl, output, GetString(GR_GL_VERSION)); + SkDebugf("GL_VERSION %s\n", (const char*) output); +} + +#endif + // We don't always want to test NaNs and infinities. static inline void fuzz_nice_float(Fuzz* fuzz, float* f) { float v; @@ -60,3 +84,4 @@ void FuzzPath(Fuzz* fuzz, SkPath* path, int maxOps); void BuildPath(Fuzz* fuzz, SkPath* path, int last_verb); #endif + diff --git a/fuzz/fuzz.cpp b/fuzz/fuzz.cpp index 0917747790..7bf03f1adf 100644 --- a/fuzz/fuzz.cpp +++ b/fuzz/fuzz.cpp @@ -46,6 +46,7 @@ DEFINE_string2(bytes, b, "", "A path to a file or a directory. If a file, the " DEFINE_string2(name, n, "", "If --type is 'api', fuzz the API with this name."); DEFINE_string2(dump, d, "", "If not empty, dump 'image*' or 'skp' types as a " "PNG with this name."); +DEFINE_bool2(gpuInfo, g, false, "Display GPU information on relevant targets."); DEFINE_bool2(verbose, v, false, "Print more information while fuzzing."); DEFINE_string2(type, t, "", "How to interpret --bytes, one of:\n" "animated_image_decode\n" |