skiaserve no longer crashes when no X server is present
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2059263002
Review-Url: https://codereview.chromium.org/2059263002
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp
index 97719e2..c3eaaff 100644
--- a/tools/skiaserve/Request.cpp
+++ b/tools/skiaserve/Request.cpp
@@ -71,8 +71,14 @@
#if SK_SUPPORT_GPU
GrContextFactory* factory = fContextFactory;
GLTestContext* gl = factory->getContextInfo(GrContextFactory::kNativeGL_ContextType,
- GrContextFactory::kNone_ContextOptions).glContext();
- gl->makeCurrent();
+ GrContextFactory::kNone_ContextOptions).glContext();
+ if (!gl) {
+ gl = factory->getContextInfo(GrContextFactory::kMESA_ContextType,
+ GrContextFactory::kNone_ContextOptions).glContext();
+ }
+ if (gl) {
+ gl->makeCurrent();
+ }
#endif
SkASSERT(fDebugCanvas);
@@ -115,10 +121,15 @@
GrContext* Request::getContext() {
#if SK_SUPPORT_GPU
- return fContextFactory->get(GrContextFactory::kNativeGL_ContextType,
- GrContextFactory::kNone_ContextOptions);
+ GrContext* result = fContextFactory->get(GrContextFactory::kNativeGL_ContextType,
+ GrContextFactory::kNone_ContextOptions);
+ if (!result) {
+ result = fContextFactory->get(GrContextFactory::kMESA_ContextType,
+ GrContextFactory::kNone_ContextOptions);
+ }
+ return result;
#else
- return nullptr;
+ return nullptr;
#endif
}