aboutsummaryrefslogtreecommitdiffhomepage
path: root/fuzz
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz')
-rw-r--r--fuzz/FuzzCanvas.cpp5
-rw-r--r--fuzz/FuzzCommon.h25
-rw-r--r--fuzz/fuzz.cpp1
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"