Commit Graph

5201 Commits

Author SHA1 Message Date
David 'Digit' Turner
cd181903b5 ndk: arm: also update other CRT runtime objects.
Turns out that updating crtbegin_so.o and crend_so.o is not
enough for the standalone toolchain. We also need to update
the object files used to generate static and dynamic
executables.

This fixes the standalone toolchain NDK tests.

Change-Id: Ibf113b09766f00b30895951a5639343728be3f3a
2011-07-15 05:21:36 +02:00
David 'Digit' Turner
c13e5c1cd4 Merge "ndk: Fix android-3/arch-arm crt{begin,end}_so.o" 2011-07-14 00:14:00 -07:00
David 'Digit' Turner
a062ad61b0 ndk: Fix android-3/arch-arm crt{begin,end}_so.o
Turns out that the previously commited versions of these files do not
allow for proper linking with a patched toolchain. With -shared, gcc complains
that:

    .preinit_array section is not allowed in DSO

So use the versions from android-9/arch-arm instead, which seems to work fine.

Change-Id: I9aeaab449ddad058451c7d6493c983ab2ed1c4eb
2011-07-14 08:15:16 +02:00
David 'Digit' Turner
0db3eb4adb Merge "ndk: Add crtbegin_so.o / crtend_so.o to android-3" 2011-07-13 22:27:24 -07:00
David 'Digit' Turner
75cedfadcd ndk: Add crtbegin_so.o / crtend_so.o to android-3
This change adds crtbegin_so.o and crtend_so.o under
platforms/android-3/arch-arm/lib.

This is in preparation of another toolchain patch that will require
these files for all platform versions (for now, they are only defined
starting from android-9).

Note that these files are just copies of the existing ones, named
crtbegin_dynamic.o and crtend_android.o respectively.

The NDK build script will automatically use the new files if it finds
them, so shouldn't need to be updated.

Change-Id: I6a446266b54b871cd957dfd737054b302678b2d3
2011-07-14 05:51:31 +02:00
David Turner
9e5560f7ee Merge "2.0 Translator:GL_INVALID_VALUE on bad program/shader" 2011-07-13 18:08:06 -07:00
David Turner
c97bc44364 Merge "Fix parameter parsing in renderer" 2011-07-13 18:07:53 -07:00
David Turner
b26d94c5a0 Merge "opengles Translator: DrawTex impl - don't draw if no textures enabled." 2011-07-13 18:07:41 -07:00
David Turner
98030a4f20 Merge "2.0 translator: support ARB_ES2_compatibility stuff" 2011-07-13 18:07:29 -07:00
David Turner
cea49c2ff2 Merge "translator EGL:fixing bug in eglGetDisplay caused in Windows Platform" 2011-07-13 18:07:18 -07:00
David Turner
a99be30d60 Merge "opengles Translator: get Compressed texture handling out from GLEScontext" 2011-07-13 18:07:08 -07:00
Yochai Shefi Simchon
31bf4fac95 2.0 Translator:GL_INVALID_VALUE on bad program/shader
The getGlobalName function returns 0 on error. There are many places
were no error checking is done after calling it to get a shader or
program name. Typically this shouldn't be an issue, since the follwing
OpenGL call using a value of 0 will generated the required GL_INVALID_VALUE,
but this does not always happen.

Change-Id: I8edf2b152978ffd8626f8b4d778cc624f2a3bec3
2011-07-14 03:05:38 +02:00
Stas Gurtovoy
76007c3b0e Fix parameter parsing in renderer
Change-Id: I14533cea4a29eff2b3dec3a68e80fc1ae7f44da3
2011-07-14 03:05:38 +02:00
Stas Gurtovoy
0dad64d939 opengles Translator: DrawTex impl - don't draw if no textures enabled.
This fixes a crash caused by covgl (on Nvidia linux driver) when our implementation
of glDrawTexOES calls glDrawArrays with GL_TEXTURE_COORD_ARRAY enabled - but none of texture
units are enabled and no data passed by glTexCoordPointer

Change-Id: Id28b0c35a5a17b139ab196db0e434d2f0a490132
2011-07-14 03:05:38 +02:00
Yochai Shefi Simchon
79b1bad09a 2.0 translator: support ARB_ES2_compatibility stuff
The ARB_ES2_compatibility extension supports several GLES 2.0 enums
and functions on OpenGL 2.0. Seems it exists on nVidia drivers, but
not on ATI's. So implement its functionality in case it doesn't
exist on the host.

Change-Id: Id96f0c8036a7a7d36fca0c85ab5f57bf4b1583aa
2011-07-14 03:05:38 +02:00
Amit Feller
1d8465c245 translator EGL:fixing bug in eglGetDisplay caused in Windows Platform
in Windows platform we previously defined EGLNativeDisplaytype to be WinDisplay*
( this was defined in include/EGL/eglplatform.h) this was OK as long as we used the
the EGL_DEFAULT_DISPLAY as parameter for eglGetDisplay meaning we were generating
a native display by oureselv and wrapping it, but there was aproblem when we got the
EGLNativeDisplayType from the user (as HDC in Windows) but interpret it as WinDisplay*
this caused a big memory corupption.
so to overcome this problem we now define two types EGLNativeDisplayType to be
HDC and EGLNativeInternalDisplayTypeto be WinDisplay*, and when we get in eglGetDisplay
a parameter different from EGL_DEFAULT_DISPLAY we wrap it with the struct of WinDisplay
and return it to the user.

this change caused a change in all the declerations of EglOsApi.h changing
EGLNativeDisplayType -> EGLNativeInternalDisplayType

Change-Id: I3522c3d507b084c5c211e10ddb6f512d1b90c65e
2011-07-14 03:05:38 +02:00
Stas Gurtovoy
1d9dc99abb opengles Translator: get Compressed texture handling out from GLEScontext
This commit does few things:
1. Gets doCompressedTexImage2D out of the context and TextureUtils
2. Gets palette textures out of TextureUtils and into PaletteTexture
3. Makes TextureUtils generic for all compressed textures
4. Moves the glGet's dealing with compressed textures from GLEScontext to the impl.

Change-Id: Ibbde6968810a66a4f3488f3887ee3f015fc32c11
2011-07-14 03:05:38 +02:00
David Turner
7fdf635d3a Merge "opengles emulator: support for null in data parameter of glCompressedTexImage2D" 2011-07-13 18:00:08 -07:00
David Turner
c86fa4b8f3 Merge "opengles emulator: support NULL as parameter to glTexImage2D (gles1)" 2011-07-13 17:59:42 -07:00
Stas Gurtovoy
d9d1006222 opengles emulator: support for null in data parameter of glCompressedTexImage2D
Thought the spec doesn't speak about null in data parameter,
it is checked in covgl - so we'll base it on glTexImage2D and allow
null in data.

Change-Id: I9bf5131852bf795acc7ab89bd17b9df90ac99460
2011-07-13 11:26:37 +03:00
Stas Gurtovoy
c99d4a0594 opengles emulator: support NULL as parameter to glTexImage2D (gles1)
This is implemented using the nullAllowed attrib (same as gles2 in gl2.attrib)

Change-Id: I6d359a112daa8acf36dfa05403df42e921f3502c
2011-07-13 11:26:37 +03:00
David Turner
7be5b706c6 Merge "emulator:opengl: input event redirection" 2011-07-11 21:41:14 -07:00
David Turner
6a9aa82fe7 Merge "emulator:opengl: custom framebuffer sizes" 2011-07-11 21:41:03 -07:00
David Turner
16f2e31f24 emulator:opengl: input event redirection
This patch allows the emulator_test_renderer program to redirect
input events (mouse, keyboard) to the emulator's console program.

This in order to make testing easier, while we wait for integration
of the display into the emulator program.

For now, this is hard-coded to use localhost port 5554, and only
a few keys are properly translated (Dpad, HOME, BACK, MENU).

Change-Id: Ie6e37c85c291f53de49220a181cb8724f66519ea
2011-07-12 06:35:25 +02:00
David Turner
70d98e6466 emulator:opengl: custom framebuffer sizes
This allows the "emulator_test_renderer" program to use
custom framebuffer sizes. You need to define ANDROID_WINDOW_SIZE
in your environment before launching the test program, e.g.:

  export ANDROID_WINDOW_SIZE=640x480

Change-Id: I2559c6e75022762697ed4c4559d6c2ba3f400e8f
2011-07-12 06:35:25 +02:00
David Turner
2319e18312 Merge "egl emulator: fixes for covegl conformance test" 2011-07-11 15:59:11 -07:00
David Turner
f4b1fa4c49 Merge "GLESv2 Translator: fix glGet*" 2011-07-11 15:59:00 -07:00
Stas Gurtovoy
201584b1d4 egl emulator: fixes for covegl conformance test
Support for eglChooseConfig with configs==NULL.
Also added small change to query EGL_LARGEST_PBUFFER attrib of surfaces.
Fixed error print in QemuPipeStream::readFully.

Those changes make sure that covegl completes & passes on the emulator with Translator
on linux in the backend.

Change-Id: I892917ec102ae85d56a16a7cb321e8c12e7083f1
2011-07-12 00:46:06 +02:00
Liran
5dd421c56b GLESv2 Translator: fix glGet*
Override glGet* for parameters that request information that have local namespace
convert global names to local names before returning the value

Change-Id: Ie334419b6a5ffe4904d8efe0827a30beaf8b2f6c
2011-07-12 00:46:06 +02:00
David Turner
c559f7612f Merge "GLES2 translator: fix glUseProgram error" 2011-07-11 15:43:40 -07:00
David Turner
ad31d5ca44 Merge "GLES2 Translator: GetVertexAttrib* fix" 2011-07-11 15:43:18 -07:00
David Turner
fbd9283c22 Merge "GLES2 translator: fix point rendering" 2011-07-11 15:42:49 -07:00
David Turner
e7db3af6de Merge "GLES2 translator: DeleteShader/Program fix" 2011-07-11 15:42:13 -07:00
David Turner
05832ade78 Merge "opengles Translator: fix uncompress palleted A1 textures" 2011-07-11 15:41:13 -07:00
Liran
5f080f3914 GLES2 translator: fix glUseProgram error
glUseProgram with invalid program handle should return INVALID_VALUE error

Change-Id: I757d5d7011641d6c0aa053416c3e2bc48cf2df62
2011-07-11 16:32:54 +03:00
Liran
5593338ca3 GLES2 Translator: GetVertexAttrib* fix
fix error generated when glGetVertexAttrib* functions get
index larger or equal to MAX_VERTEX_ATTRIB
INVALID_VALUE should be generated instead of INVALID_ENUM

Change-Id: I0fbacc8fa5b5f14cd302cbe818536cffe5ed3a3c
2011-07-11 16:32:54 +03:00
Liran
addc68e9f5 GLES2 translator: fix point rendering
if points are rendered the built in shader variable gl_PointSize should be active.
added a call to enable VERTEX_PROGRAM_POINT_SIZE to signal opengl to activate this variable
GL_POINT_SPRITE should also be enabled when rendering points

Change-Id: Iba7f62844ee2208ae22700b985aef0229d75fc46
2011-07-11 16:32:54 +03:00
Liran
a24932259f GLES2 translator: DeleteShader/Program fix
fix behavior of glDeleteShader and glDeleteProgram
when deleting an object which does not exist,
INVALID_VALUE error should be generated

Change-Id: I52de29f7f980d63f0d35c9dfbfd3da17f89436e6
2011-07-11 16:32:54 +03:00
Stas Gurtovoy
cea52a871d opengles Translator: fix uncompress palleted A1 textures
There was a bug in uncompress of GL_PALETTE4_RGB5_A1_OES and
GL_PALETTE8_RGB5_A1_OES texture formats.
They were considered RGB (not RGBA) for some reason.
This also fixed the pink sky in Wave Blazer Lite

Change-Id: I8c047d624d9bf09e2a0de7f7340d676cfe5e76c9
2011-07-11 00:01:35 +03:00
David Turner
3e51ea6b5b Merge "opengl emulator: Added gl error tracking on the guest (encoder)" 2011-07-08 09:54:21 -07:00
David Turner
b6d01e328d Merge "emulator opengl: fixing clean windows build" 2011-07-08 09:52:48 -07:00
David Turner
b798156bcb Merge "opengl renderer: added option to dump GL stream to file." 2011-07-08 09:50:57 -07:00
David Turner
829a2e5b9a Merge "opengl translator: fixed EGL regression" 2011-07-08 09:49:40 -07:00
Yochai Shefi Simchon
14f351baf7 opengl translator: fixed EGL regression
prevent rederence NULL surface objects in
EglOS layer.

Change-Id: If5e8dc1a0cdf25fe9b268cce6456cc7da88b9f7f
2011-07-08 18:47:13 +02:00
David Turner
f8611d3fe6 Merge "opengl translator: Added support to ETC1 compressed textures." 2011-07-08 09:45:33 -07:00
David Turner
4b8fefdc00 Merge "Opengl translator: fix EGL Windows specific issues" 2011-07-08 09:40:57 -07:00
David Turner
dcbb51924f Merge "opengl translator: add native config id to EglConfig" 2011-07-08 09:40:21 -07:00
David Turner
2d233e8633 Merge "opengl translator: fixed normalized vertex attribs" 2011-07-08 09:39:35 -07:00
Stas Gurtovoy
8bebd3b48b opengl translator: Added support to ETC1 compressed textures.
Copied the etc1 implementation from frameworks/base/opengl/libs/ETC1
to the translator common library, this is for keeping the translator
be independant.
Added support for ETC1 compressed textures in both GLESv1 and GLESv2
which is needed for some applications. (Cordy).

Change-Id: Ie615ed82896cb36c42fa640b83d9e93b723b3b80
2011-07-07 16:36:04 +03:00
Amit Feller
44fd37338e Opengl translator: fix EGL Windows specific issues
Fixed management of DC's, use one DC for each egl config as before
but use the correct one every time and not the last one used during
createContext call.

Filter out GENERIC pixel formats which might not be supported by
accelerated hardware.

Prevent calling to ChoosePixelFormat at every create{window/pbuffer}
call, instead use the exact config specified by the caller. We
need to call at least once to wglChoosePixelFormat in order to let
the driver initialize, we do it during eglInitialize time just before
querying the native pixel formats.

Change-Id: Id00addaed9cb0369c41311d2bcd3ce8c7ea6408c
2011-07-07 16:36:04 +03:00