diff --git a/libs/rs/Android.mk b/libs/rs/Android.mk index 98464a08bf411..6f2cd075f72ee 100644 --- a/libs/rs/Android.mk +++ b/libs/rs/Android.mk @@ -102,6 +102,9 @@ LOCAL_SRC_FILES:= \ rsType.cpp \ rsVertexArray.cpp +ifeq ($(TARGET_BOARD_PLATFORM), s5pc110) + LOCAL_CFLAGS += -DHAS_CONTEXT_PRIORITY +endif LOCAL_SHARED_LIBRARIES += libcutils libutils libEGL libGLESv1_CM libGLESv2 libui libacc LOCAL_LDLIBS := -lpthread -ldl diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index 596f533f988c0..92c66193530f4 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -26,6 +26,7 @@ #include +#include #include #include #include @@ -58,7 +59,18 @@ void Context::initEGL(bool useGL2) mEGL.mNumConfigs = -1; EGLint configAttribs[128]; EGLint *configAttribsPtr = configAttribs; - EGLint context_attribs2[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; + EGLint context_attribs2[] = { EGL_CONTEXT_CLIENT_VERSION, 2, + EGL_NONE, GL_NONE, EGL_NONE }; + +#ifdef HAS_CONTEXT_PRIORITY +#ifdef EGL_IMG_context_priority +#warning "using EGL_IMG_context_priority" + if (mThreadPriority > 0) { + context_attribs2[2] = EGL_CONTEXT_PRIORITY_LEVEL_IMG; + context_attribs2[3] = EGL_CONTEXT_PRIORITY_LOW_IMG; + } +#endif +#endif memset(configAttribs, 0, sizeof(configAttribs));