Commit 4cadfe33 by Nicolas Capens Committed by Nicolas Capens

Create 64-bit translator libraries for the Android Emulator.

This patch also clips 64-bit parameters for glBufferData and glBufferSubData to 32-bit to work around an Android emulator issue. Bug 18510357 Change-Id: If6870d75849e372747072ec157580d9f5ec76a9a Reviewed-on: https://swiftshader-review.googlesource.com/1610Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent f41412b0
......@@ -85,6 +85,8 @@ CONSTRUCTOR static bool eglAttachProcess()
#if defined(_WIN32)
const char *libGLES_CM_lib[] = {"libGLES_CM.dll", "libGLES_CM_translator.dll"};
#elif defined(__LP64__)
const char *libGLES_CM_lib[] = {"lib64GLES_CM_translator.so", "libGLES_CM.so.1", "libGLES_CM.so"};
#else
const char *libGLES_CM_lib[] = {"libGLES_CM_translator.so", "libGLES_CM.so.1", "libGLES_CM.so"};
#endif
......@@ -95,6 +97,8 @@ CONSTRUCTOR static bool eglAttachProcess()
#if defined(_WIN32)
const char *libGLESv2_lib[] = {"libGLESv2.dll", "libGLES_V2_translator.dll"};
#elif defined(__LP64__)
const char *libGLESv2_lib[] = {"lib64GLES_V2_translator.so", "libGLESv2.so.2", "libGLESv2.so"};
#else
const char *libGLESv2_lib[] = {"libGLES_V2_translator.so", "libGLESv2.so.2", "libGLESv2.so"};
#endif
......
......@@ -613,6 +613,8 @@ void GL_APIENTRY glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum src
void GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
{
size = static_cast<GLint>(size); // Work around issues with some 64-bit applications
TRACE("(GLenum target = 0x%X, GLsizeiptr size = %d, const GLvoid* data = 0x%0.8p, GLenum usage = %d)",
target, size, data, usage);
......@@ -659,6 +661,9 @@ void GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data
void GL_APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
{
size = static_cast<GLint>(size); // Work around issues with some 64-bit applications
offset = static_cast<GLint>(offset);
TRACE("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr size = %d, const GLvoid* data = 0x%0.8p)",
target, offset, size, data);
......@@ -2847,7 +2852,6 @@ void GL_APIENTRY glPixelStorei(GLenum pname, GLint param)
context->setUnpackAlignment(param);
break;
case GL_PACK_ALIGNMENT:
if(param != 1 && param != 2 && param != 4 && param != 8)
{
......@@ -2856,7 +2860,6 @@ void GL_APIENTRY glPixelStorei(GLenum pname, GLint param)
context->setPackAlignment(param);
break;
default:
return error(GL_INVALID_ENUM);
}
......
......@@ -45,6 +45,8 @@ CONSTRUCTOR static bool glAttachProcess()
#if defined(_WIN32)
const char *libEGL_lib[] = {"libEGL.dll", "libEGL_translator.dll"};
#elif defined(__LP64__)
const char *libEGL_lib[] = {"lib64EGL_translator.so", "libEGL.so.1", "libEGL.so"};
#else
const char *libEGL_lib[] = {"libEGL_translator.so", "libEGL.so.1", "libEGL.so"};
#endif
......
......@@ -508,6 +508,8 @@ void GL_APIENTRY glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlp
void GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
{
size = static_cast<GLint>(size); // Work around issues with some 64-bit applications
TRACE("(GLenum target = 0x%X, GLsizeiptr size = %d, const GLvoid* data = 0x%0.8p, GLenum usage = %d)",
target, size, data, usage);
......@@ -555,6 +557,9 @@ void GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data
void GL_APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
{
size = static_cast<GLint>(size); // Work around issues with some 64-bit applications
offset = static_cast<GLint>(offset);
TRACE("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr size = %d, const GLvoid* data = 0x%0.8p)",
target, offset, size, data);
......
......@@ -45,6 +45,8 @@ CONSTRUCTOR static bool glAttachProcess()
#if defined(_WIN32)
const char *libEGL_lib[] = {"libEGL.dll", "libEGL_translator.dll"};
#elif defined(__LP64__)
const char *libEGL_lib[] = {"lib64EGL_translator.so", "libEGL.so.1", "libEGL.so"};
#else
const char *libEGL_lib[] = {"libEGL_translator.so", "libEGL.so.1", "libEGL.so"};
#endif
......@@ -55,6 +57,8 @@ CONSTRUCTOR static bool glAttachProcess()
#if defined(_WIN32)
const char *libGLES_CM_lib[] = {"libGLES_CM.dll", "libGLES_CM_translator.dll"};
#elif defined(__LP64__)
const char *libGLES_CM_lib[] = {"lib64GLES_CM_translator.so", "libGLES_CM.so.1", "libGLES_CM.so"};
#else
const char *libGLES_CM_lib[] = {"libGLES_CM_translator.so", "libGLES_CM.so.1", "libGLES_CM.so"};
#endif
......
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