Merge "fix race condition between HWUI cache and renderThread"

This commit is contained in:
John Reck
2016-01-19 18:29:30 +00:00
committed by Gerrit Code Review
3 changed files with 13 additions and 0 deletions

View File

@ -102,10 +102,16 @@ static void android_view_DisplayListCanvas_callDrawGLFunction(JNIEnv* env, jobje
// ----------------------------------------------------------------------------
static jint android_view_DisplayListCanvas_getMaxTextureWidth(JNIEnv* env, jobject clazz) {
if (!Caches::hasInstance()) {
android::uirenderer::renderthread::RenderProxy::staticFence();
}
return Caches::getInstance().maxTextureSize;
}
static jint android_view_DisplayListCanvas_getMaxTextureHeight(JNIEnv* env, jobject clazz) {
if (!Caches::hasInstance()) {
android::uirenderer::renderthread::RenderProxy::staticFence();
}
return Caches::getInstance().maxTextureSize;
}

View File

@ -385,6 +385,12 @@ void RenderProxy::fence() {
postAndWait(task);
}
void RenderProxy::staticFence() {
SETUP_TASK(fence);
UNUSED(args);
staticPostAndWait(task);
}
CREATE_BRIDGE1(stopDrawing, CanvasContext* context) {
args->context->stopDrawing();
return nullptr;

View File

@ -94,6 +94,7 @@ public:
ANDROID_API static void overrideProperty(const char* name, const char* value);
ANDROID_API void fence();
ANDROID_API static void staticFence();
ANDROID_API void stopDrawing();
ANDROID_API void notifyFramePending();