From 2ec06c9b1c861d456b85ffe48b27e4dcae4800cb Mon Sep 17 00:00:00 2001 From: ethannicholas Date: Mon, 13 Jun 2016 10:20:52 -0700 Subject: [PATCH] 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 --- tools/skiaserve/Request.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index 97719e2bd2..c3eaaff387 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -71,8 +71,14 @@ SkCanvas* Request::getCanvas() { #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 @@ SkData* Request::writeOutSkp() { 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 }