From 2db76167b17262aa3e341cbc85c949d119a14aa6 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 11 Oct 2010 17:56:14 -0700 Subject: [PATCH] propagate RS context priority to EGLContext when possible. DO NOT MERGE. Change-Id: Ic9fa5c71324c629ba4cbb41ee4a9e4549810d05e --- libs/rs/Android.mk | 3 +++ libs/rs/rsContext.cpp | 14 +++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) 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));