summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Sams <rjsams@android.com> 2011-05-03 15:01:58 -0700
committer Jason Sams <rjsams@android.com> 2011-05-03 17:27:26 -0700
commit2698536b3ff60bfee85e47e4a8d4b25fdfdf4db5 (patch)
tree9deee58d4f07e697fbef0cb78384c3e509cd3d07
parente98c27e5e4f450b294cc525e1de65a194e9904d2 (diff)
Fix error checks on compute context creation.
Remove GL init for compute scripts. Change-Id: I1bce8e4112babf4345fa56a30a9bed753734d8d6
-rw-r--r--graphics/java/android/renderscript/RenderScript.java3
-rw-r--r--libs/rs/rsContext.cpp11
2 files changed, 9 insertions, 5 deletions
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 4c505ec95e1d..eea0986c694e 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -839,6 +839,9 @@ public class RenderScript {
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 6d63f673f5b1..e2e14f20ac58 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -270,17 +270,18 @@ void * Context::threadProc(void *vrsc) {
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);