Fix error checks on compute context creation.
Remove GL init for compute scripts.

Change-Id: I1bce8e4112babf4345fa56a30a9bed753734d8d6
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 4c505ec..eea0986c 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -839,6 +839,9 @@
 
         rs.mDev = rs.nDeviceCreate();
         rs.mContext = rs.nContextCreate(rs.mDev, 0);
+        if (rs.mContext == 0) {
+            throw new RSDriverException("Failed to create RS context.");
+        }
         rs.mMessageThread = new MessageThread(rs);
         rs.mMessageThread.start();
         return rs;
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 6d63f67..e2e14f2 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -270,17 +270,18 @@
     rsc->props.mLogVisual = getProp("debug.rs.visual");
 
     if (!rsdHalInit(rsc, 0, 0)) {
+        rsc->setError(RS_ERROR_FATAL_DRIVER, "Failed initializing GL");
         LOGE("Hal init failed");
         return NULL;
     }
     rsc->mHal.funcs.setPriority(rsc, rsc->mThreadPriority);
 
-    if (!rsc->initGLThread()) {
-        rsc->setError(RS_ERROR_OUT_OF_MEMORY, "Failed initializing GL");
-        return NULL;
-    }
-
     if (rsc->mIsGraphicsContext) {
+        if (!rsc->initGLThread()) {
+            rsc->setError(RS_ERROR_OUT_OF_MEMORY, "Failed initializing GL");
+            return NULL;
+        }
+
         rsc->mStateRaster.init(rsc);
         rsc->setProgramRaster(NULL);
         rsc->mStateVertex.init(rsc);