diff options
| -rw-r--r-- | core/jni/android_view_DisplayListCanvas.cpp | 6 | ||||
| -rw-r--r-- | libs/hwui/renderthread/RenderProxy.cpp | 6 | ||||
| -rw-r--r-- | libs/hwui/renderthread/RenderProxy.h | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/core/jni/android_view_DisplayListCanvas.cpp b/core/jni/android_view_DisplayListCanvas.cpp index bb8ef83c3f8c..ef1e4abdf14b 100644 --- a/core/jni/android_view_DisplayListCanvas.cpp +++ b/core/jni/android_view_DisplayListCanvas.cpp @@ -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; } diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index 30f0073fd1f0..e65cb11ec12f 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -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; diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h index db03b29f134b..8a1f5bf4fa49 100644 --- a/libs/hwui/renderthread/RenderProxy.h +++ b/libs/hwui/renderthread/RenderProxy.h @@ -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(); |