OSDN Git Service

Changes to enable compile on Android JellyBean.
authorGreg Hartman <ghartman@google.com>
Wed, 15 Apr 2015 03:25:44 +0000 (20:25 -0700)
committerGreg Hartman <ghartman@google.com>
Fri, 17 Apr 2015 15:42:02 +0000 (15:42 +0000)
Now incorporates "create common V1&v2 code for Android, consolidating image
format handling."

Change-Id: I6312084f1425354b619361929da533aa5ac357e3
Reviewed-on: https://swiftshader-review.googlesource.com/2850
Tested-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/LLVM/lib/Target/X86/X86JITInfo.cpp
src/OpenGL/common/AndroidCommon.hpp [new file with mode: 0644]
src/OpenGL/libEGL/Android.mk
src/OpenGL/libGLES_CM/Android.mk
src/OpenGL/libGLES_CM/Context.cpp
src/OpenGL/libGLES_CM/Image.cpp
src/OpenGL/libGLES_CM/Image.hpp
src/OpenGL/libGLESv2/Android.mk
src/OpenGL/libGLESv2/Context.cpp
src/OpenGL/libGLESv2/Image.cpp
src/OpenGL/libGLESv2/Image.hpp

index 3f88fa6..4602e20 100644 (file)
@@ -339,13 +339,7 @@ extern "C" {
 /// must locate the start of the stub or call site and pass it into the JIT
 /// compiler function.
 extern "C" {
-#if !(defined (X86_64_JIT) && defined(_MSC_VER))
- // the following function is called only from this translation unit,
- // unless we are under 64bit Windows with MSC, where there is
- // no support for inline assembly
-static
-#endif
-void LLVM_ATTRIBUTE_USED
+void
 X86CompilationCallback2(intptr_t *StackPtr, intptr_t RetAddr) {
   intptr_t *RetAddrLoc = &StackPtr[1];
   assert(*RetAddrLoc == RetAddr &&
diff --git a/src/OpenGL/common/AndroidCommon.hpp b/src/OpenGL/common/AndroidCommon.hpp
new file mode 100644 (file)
index 0000000..c0b831a
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef ANDROID_COMMON
+#define ANDROID_COMMON
+
+static inline GLenum getColorFormatFromAndroid(int format)
+{
+    switch(format)
+    {
+        case HAL_PIXEL_FORMAT_RGBA_8888:
+            return GL_RGBA;
+        case HAL_PIXEL_FORMAT_RGBX_8888:
+            return GL_RGB;
+        case HAL_PIXEL_FORMAT_RGB_888:
+            return GL_RGB;
+        case HAL_PIXEL_FORMAT_BGRA_8888:
+            return GL_BGRA_EXT;
+        case HAL_PIXEL_FORMAT_RGB_565:
+            return GL_RGB565_OES;
+        case HAL_PIXEL_FORMAT_YV12:
+        case HAL_PIXEL_FORMAT_Y8:
+        case HAL_PIXEL_FORMAT_Y16:
+        case HAL_PIXEL_FORMAT_RAW_SENSOR:
+        case HAL_PIXEL_FORMAT_BLOB:
+        case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
+        case HAL_PIXEL_FORMAT_YCbCr_420_888:
+        default:
+            UNIMPLEMENTED();
+    }
+    return GL_RGBA;
+}
+
+static inline GLenum getPixelFormatFromAndroid(int format)
+{
+    switch(format)
+    {
+        case HAL_PIXEL_FORMAT_RGBA_8888:
+        case HAL_PIXEL_FORMAT_RGBX_8888:
+        case HAL_PIXEL_FORMAT_RGB_888:
+        case HAL_PIXEL_FORMAT_BGRA_8888:
+            return GL_UNSIGNED_BYTE;
+        case HAL_PIXEL_FORMAT_RGB_565:
+            return GL_UNSIGNED_SHORT_5_6_5;
+        case HAL_PIXEL_FORMAT_YV12:
+        case HAL_PIXEL_FORMAT_Y8:
+        case HAL_PIXEL_FORMAT_Y16:
+        case HAL_PIXEL_FORMAT_RAW_SENSOR:
+        case HAL_PIXEL_FORMAT_BLOB:
+        case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
+        case HAL_PIXEL_FORMAT_YCbCr_420_888:
+        default:
+            UNIMPLEMENTED();
+    }
+    return GL_UNSIGNED_BYTE;
+}
+#endif  // ANDROID_COMMON
index c85c7bb..2afc636 100644 (file)
@@ -30,7 +30,7 @@ LOCAL_CFLAGS += -std=c++11
 LOCAL_STATIC_LIBRARIES += libgceframebufferconfig libgcemetadata
 LOCAL_C_INCLUDES += device/google/gce/include
 
-LOCAL_SHARED_LIBRARIES += libdl liblog libandroid libutils
+LOCAL_SHARED_LIBRARIES += libdl liblog libandroid libutils libcutils $(GCE_STLPORT_LIBS)
 LOCAL_LDFLAGS += -Wl,--version-script=$(LOCAL_PATH)/exports.map -Wl,--hash-style=sysv
 
 LOCAL_C_INCLUDES += \
index 413eb73..203d67c 100644 (file)
@@ -96,7 +96,9 @@ LOCAL_CFLAGS += -UNDEBUG -g
 # Uncomment for OFF:
 #LOCAL_CFLAGS += -fomit-frame-pointer -ffunction-sections -fdata-sections -DANGLE_DISABLE_TRACE
 
-LOCAL_SHARED_LIBRARIES += libdl liblog libcutils libhardware libui libutils
+LOCAL_SHARED_LIBRARIES += libdl liblog libcutils libhardware libui libutils \
+    $(GCE_STLPORT_LIBS)
+
 LOCAL_STATIC_LIBRARIES += libLLVM_swiftshader
 LOCAL_LDFLAGS += -Wl,--gc-sections -Wl,--version-script=$(LOCAL_PATH)/exports.map -Wl,--hash-style=sysv
 
index 337b406..d683338 100644 (file)
 \r
 #include <EGL/eglext.h>\r
 \r
+#ifdef __ANDROID__\r
+       #include "../common/AndroidCommon.hpp"\r
+#endif  // __ANDROID__\r
+\r
 #undef near\r
 #undef far\r
 \r
@@ -2683,8 +2687,8 @@ egl::Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textu
         ANativeWindowBuffer *nativeBuffer = reinterpret_cast<ANativeWindowBuffer*>(name);\r
         nativeBuffer->common.incRef(&nativeBuffer->common);\r
 \r
-        GLenum format = Image::getColorFormatFromAndroid(nativeBuffer->format);\r
-        GLenum type = Image::getPixelFormatFromAndroid(nativeBuffer->format);\r
+        GLenum format = getColorFormatFromAndroid(nativeBuffer->format);\r
+        GLenum type = getPixelFormatFromAndroid(nativeBuffer->format);\r
 \r
         es1::Image *image = new Image(0, nativeBuffer->width, nativeBuffer->height, format, type);\r
         image->setNativeBuffer(nativeBuffer);\r
index d4f9d5a..c68ec5c 100644 (file)
@@ -531,47 +531,4 @@ namespace es1
 
                unlock();
        }
-
-       #if defined(__ANDROID__)
-       GLenum Image::getColorFormatFromAndroid(int format)
-       {
-               switch(format)
-               {
-               case HAL_PIXEL_FORMAT_RGBA_8888:
-                       return GL_RGBA;
-               case HAL_PIXEL_FORMAT_RGBX_8888:
-                       return GL_RGB;
-               case HAL_PIXEL_FORMAT_RGB_888:
-                       return GL_RGB;
-               case HAL_PIXEL_FORMAT_RGB_565:
-                       return GL_RGB565_OES;
-               case HAL_PIXEL_FORMAT_BGRA_8888:
-                       return GL_BGRA_EXT;
-               #if GCE_PLATFORM_SDK_VERSION >= 19
-               case HAL_PIXEL_FORMAT_sRGB_A_8888:
-               case HAL_PIXEL_FORMAT_sRGB_X_8888:
-               #endif
-               case HAL_PIXEL_FORMAT_YV12:
-               case HAL_PIXEL_FORMAT_Y8:
-               case HAL_PIXEL_FORMAT_Y16:
-               case HAL_PIXEL_FORMAT_RAW_SENSOR:
-               case HAL_PIXEL_FORMAT_BLOB:
-               case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
-               case HAL_PIXEL_FORMAT_YCbCr_420_888:
-               default:
-                       UNIMPLEMENTED();
-               }
-               return GL_RGBA;
-       }
-
-       GLenum Image::getPixelFormatFromAndroid(int format)
-       {
-               if(format == HAL_PIXEL_FORMAT_Y16)
-               {
-                       return GL_UNSIGNED_SHORT;
-               }
-
-               return GL_UNSIGNED_BYTE;
-       }
-       #endif
 }
index defae50..1c491d8 100644 (file)
@@ -37,11 +37,6 @@ namespace es1
 
                static sw::Format selectInternalFormat(GLenum format, GLenum type);
 
-               #if defined(__ANDROID__)
-               static GLenum getColorFormatFromAndroid(int format);
-               static GLenum getPixelFormatFromAndroid(int format);
-               #endif
-
        private:
                virtual ~Image();
 
index f50668d..c400f51 100644 (file)
@@ -136,7 +136,9 @@ LOCAL_CFLAGS += -UNDEBUG -g
 LOCAL_CFLAGS += -fno-operator-names -msse2 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
 LOCAL_CFLAGS += -std=c++11
 
-LOCAL_SHARED_LIBRARIES += libdl liblog libcutils libhardware libui libutils
+LOCAL_SHARED_LIBRARIES += libdl liblog libcutils libhardware libui libutils \
+    $(GCE_STLPORT_LIBS)
+
 LOCAL_STATIC_LIBRARIES += libLLVM_swiftshader
 LOCAL_LDFLAGS += -Wl,--gc-sections -Wl,--version-script=$(LOCAL_PATH)/exports.map -Wl,--hash-style=sysv
 
index e5225ce..70beb74 100644 (file)
 \r
 #include <EGL/eglext.h>\r
 \r
+#ifdef __ANDROID__\r
+       #include "../common/AndroidCommon.hpp"\r
+#endif  // __ANDROID__\r
+\r
 #undef near\r
 #undef far\r
 \r
@@ -4024,8 +4028,8 @@ egl::Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textu
         ANativeWindowBuffer *nativeBuffer = reinterpret_cast<ANativeWindowBuffer*>(name);\r
         nativeBuffer->common.incRef(&nativeBuffer->common);\r
 \r
-        GLenum format = Image::getColorFormatFromAndroid(nativeBuffer->format);\r
-        GLenum type = Image::getPixelFormatFromAndroid(nativeBuffer->format);\r
+        GLenum format = getColorFormatFromAndroid(nativeBuffer->format);\r
+        GLenum type = getPixelFormatFromAndroid(nativeBuffer->format);\r
 \r
         es2::Image *image = new Image(0, nativeBuffer->width, nativeBuffer->height, format, type);\r
         image->setNativeBuffer(nativeBuffer);\r
index d7e38ce..f2e5c23 100644 (file)
@@ -662,61 +662,4 @@ namespace es2
 
                unlock();
        }
-
-       #if defined(__ANDROID__)
-       GLenum Image::getColorFormatFromAndroid(int format)
-       {
-               switch(format)
-               {
-               case HAL_PIXEL_FORMAT_RGBA_8888:
-                       return GL_RGBA;
-               case HAL_PIXEL_FORMAT_RGBX_8888:
-                       return GL_RGB;
-               case HAL_PIXEL_FORMAT_RGB_888:
-                       return GL_RGB;
-               case HAL_PIXEL_FORMAT_BGRA_8888:
-                       return GL_BGRA_EXT;
-               case HAL_PIXEL_FORMAT_RGB_565:
-                       return GL_RGB565_OES;
-               case HAL_PIXEL_FORMAT_sRGB_A_8888:
-               case HAL_PIXEL_FORMAT_sRGB_X_8888:
-               case HAL_PIXEL_FORMAT_YV12:
-               case HAL_PIXEL_FORMAT_Y8:
-               case HAL_PIXEL_FORMAT_Y16:
-               case HAL_PIXEL_FORMAT_RAW_SENSOR:
-               case HAL_PIXEL_FORMAT_BLOB:
-               case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
-               case HAL_PIXEL_FORMAT_YCbCr_420_888:
-               default:
-                       UNIMPLEMENTED();
-               }
-               return GL_RGBA;
-       }
-
-       GLenum Image::getPixelFormatFromAndroid(int format)
-       {
-               switch(format)
-               {
-               case HAL_PIXEL_FORMAT_RGBA_8888:
-               case HAL_PIXEL_FORMAT_RGBX_8888:
-               case HAL_PIXEL_FORMAT_RGB_888:
-               case HAL_PIXEL_FORMAT_BGRA_8888:
-                       return GL_UNSIGNED_BYTE;
-               case HAL_PIXEL_FORMAT_RGB_565:
-                       return GL_UNSIGNED_SHORT_5_6_5;
-               case HAL_PIXEL_FORMAT_sRGB_A_8888:
-               case HAL_PIXEL_FORMAT_sRGB_X_8888:
-               case HAL_PIXEL_FORMAT_YV12:
-               case HAL_PIXEL_FORMAT_Y8:
-               case HAL_PIXEL_FORMAT_Y16:
-               case HAL_PIXEL_FORMAT_RAW_SENSOR:
-               case HAL_PIXEL_FORMAT_BLOB:
-               case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
-               case HAL_PIXEL_FORMAT_YCbCr_420_888:
-               default:
-                       UNIMPLEMENTED();
-               }
-               return GL_UNSIGNED_BYTE;
-       }
-       #endif
 }
index 5cb9533..3824a8f 100644 (file)
@@ -38,11 +38,6 @@ namespace es2
 
                static sw::Format selectInternalFormat(GLenum format, GLenum type);
 
-               #if defined(__ANDROID__)
-               static GLenum getColorFormatFromAndroid(int format);
-               static GLenum getPixelFormatFromAndroid(int format);
-               #endif
-
        private:
                virtual ~Image();