Commit 1906d0a2 by Greg Hartman

Changes to enable compile on Android JellyBean.

Now incorporates "create common V1&v2 code for Android, consolidating image format handling." Change-Id: I6312084f1425354b619361929da533aa5ac357e3 Reviewed-on: https://swiftshader-review.googlesource.com/2850Tested-by: 's avatarGreg Hartman <ghartman@google.com> Reviewed-by: 's avatarGreg Hartman <ghartman@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 8b5f3ef5
......@@ -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 &&
......
#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
......@@ -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 += \
......
......@@ -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
......
......@@ -30,6 +30,10 @@
#include <EGL/eglext.h>
#ifdef __ANDROID__
#include "../common/AndroidCommon.hpp"
#endif // __ANDROID__
#undef near
#undef far
......@@ -2683,8 +2687,8 @@ egl::Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textu
ANativeWindowBuffer *nativeBuffer = reinterpret_cast<ANativeWindowBuffer*>(name);
nativeBuffer->common.incRef(&nativeBuffer->common);
GLenum format = Image::getColorFormatFromAndroid(nativeBuffer->format);
GLenum type = Image::getPixelFormatFromAndroid(nativeBuffer->format);
GLenum format = getColorFormatFromAndroid(nativeBuffer->format);
GLenum type = getPixelFormatFromAndroid(nativeBuffer->format);
es1::Image *image = new Image(0, nativeBuffer->width, nativeBuffer->height, format, type);
image->setNativeBuffer(nativeBuffer);
......
......@@ -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
}
......@@ -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();
......
......@@ -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
......
......@@ -37,6 +37,10 @@
#include <EGL/eglext.h>
#ifdef __ANDROID__
#include "../common/AndroidCommon.hpp"
#endif // __ANDROID__
#undef near
#undef far
......@@ -4024,8 +4028,8 @@ egl::Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textu
ANativeWindowBuffer *nativeBuffer = reinterpret_cast<ANativeWindowBuffer*>(name);
nativeBuffer->common.incRef(&nativeBuffer->common);
GLenum format = Image::getColorFormatFromAndroid(nativeBuffer->format);
GLenum type = Image::getPixelFormatFromAndroid(nativeBuffer->format);
GLenum format = getColorFormatFromAndroid(nativeBuffer->format);
GLenum type = getPixelFormatFromAndroid(nativeBuffer->format);
es2::Image *image = new Image(0, nativeBuffer->width, nativeBuffer->height, format, type);
image->setNativeBuffer(nativeBuffer);
......
......@@ -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
}
......@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment