274e03c90ee6054e81a16b1bd0a54258e08ddee9 |
|
14-Nov-2011 |
Mathias Agopian <mathias@google.com> |
fix crash when validating an invalid EGL objects the code that validated EGL objects dereferenced the object to access its EGLDisplay -- needed for validation (!). This was wrong for two reasons, first we dereferenced the object before validating it (potentially leading to a crash), secondly we didn't validate that the object existed in the right EGLDisplay. We now use the EGLDisplay passed by the user API. Change-Id: I66f9e851d4f8507892a6b1fee3065f124c4e7138
/frameworks/base/opengl/libs/EGL/egl.cpp
|
8ec2ff65da037da14fa1fe372a24a053d198fc51 |
|
07-Sep-2011 |
Mathias Agopian <mathias@google.com> |
add an option to EGL to dump stack traces on errors enable by setting debug.egl.callstack to 1 Change-Id: I7fad9ce71b4c4c5ece97d4f9d139348eab742a3c
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3b583229d0aa3629fe9400dd633bebbc54a5c0c2 |
|
01-Sep-2011 |
Mathias Agopian <mathias@google.com> |
this should fix the GL debugger we were checking against to the wrong variable Change-Id: Iff3f5ab2d6ba5ac0d3d8161011b38e673ee7e67b
/frameworks/base/opengl/libs/EGL/egl.cpp
|
039857520b1a03a52051b966d87d587225bdfcc3 |
|
12-Jul-2011 |
Romain Guy <romainguy@google.com> |
Always make GL calls with a valid EGL context. Bug #5010760 Change-Id: If7500ef69683948e727df1406f458f18b11259d1
/frameworks/base/opengl/libs/EGL/egl.cpp
|
f56a960105916a7fd12284109784e5f667661439 |
|
24-May-2011 |
Mathias Agopian <mathias@google.com> |
fix x86 build Change-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10
/frameworks/base/opengl/libs/EGL/egl.cpp
|
f1e4e06319ef461997eefe45be716ad954defcb1 |
|
17-May-2011 |
Mathias Agopian <mathias@google.com> |
eglTerminate() now actually frees up all active egl objects as specified by the EGL specification, terminated objects's handles become invalid, the objects themselves are destroyed when they're not current to some thread. Change-Id: Id3a4a5736a5bbc3926a9ae8385d43772edb88eeb
/frameworks/base/opengl/libs/EGL/egl.cpp
|
7adf4ef0fad9973d9a07f2a73b2c4238c8e6bf7c |
|
14-May-2011 |
Mathias Agopian <mathias@google.com> |
refactor EGL source code no changes is functionality. split various objects into their own files. make egl_display objec's lock internal.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
7868c64fffd164dccf06411372b922dfea26c0e6 |
|
26-Apr-2011 |
Jamie Gennis <jgennis@google.com> |
EGL: Allow creating a SurfaceTexture EGLSurface. This change removes the check that disallowed the creation of an EGLSurface that would send frames to a SurfaceTexture. Change-Id: I44c6d5df503cc676a88144d72d39b414692ce4c9
/frameworks/base/opengl/libs/EGL/egl.cpp
|
27f130a292683278b721399341d7c4e36009ec8b |
|
09-Apr-2011 |
David Li <davidxli@google.com> |
GLES2Dbg: use dump.gles2dbg file when fails to create socket setprop debug.egl.debug_forceUseFile 1: always use file setprop debug.egl.debug_maxFileSize <int MB>: exit when reached setprop debug.egl.debug_filePath <path>: may need to make the file writable first. setprop debug.egl.debug_port <unsigned short> setprop debug.egl.debug_proc <proc cmdline>: to match debuggee process Change-Id: I34ca1f3092f3abf17e2ded9d1689d0cdef6e07e8 Signed-off-by: David Li <davidxli@google.com>
/frameworks/base/opengl/libs/EGL/egl.cpp
|
ce30eb8a90a1ac458e15e773057a8a73b0918ae6 |
|
28-Mar-2011 |
David Li <davidxli@google.com> |
GLES2Dbg: change GLES2_dbg to shared library Change-Id: I493e9bff431bd939f4e80e1e9c614dd557307fa2 Signed-off-by: David Li <davidxli@google.com>
/frameworks/base/opengl/libs/EGL/egl.cpp
|
8bdf09b0d73451a0caabee7c842d2d542678c35c |
|
01-Apr-2011 |
Eric Hassold <hassold@google.com> |
Initialize reference counter for egl_display_t Add missing member initialization for reference counter, used to determine if a context is ready. Change-Id: I45f81177ac2851129681f827afe015b60b3cd73c
/frameworks/base/opengl/libs/EGL/egl.cpp
|
8caf4c6dbb72cee3e3c809de61928d32853c48d9 |
|
25-Mar-2011 |
Eric Hassold <hassold@google.com> |
Make objects collection a member of egl_display object Move EGL objects (contexts, surfaces, ...) collection from global static into EGL display object. Since EGL implementation currently supports only one display, this doesn't change current logic. This aims at preparing for next coming changes in eglTerminate() to support per-display cleanup. Bug: 4152714 Change-Id: I5e424781b89c3c275f9922f943463d5f6b1f6bc6
/frameworks/base/opengl/libs/EGL/egl.cpp
|
2a790ac34d47e52eda7a3e9a0b187bdba9248a39 |
|
23-Mar-2011 |
Eric Hassold <hassold@google.com> |
Check for initialized EGLDisplay when required by specification Check for initialized display, and set EGL error to EGL_NOT_INITIALIZED whenever it isn't, for all EGL functions taking an EGLDisplay as argument and requiring it to have been initialized. Bug: 3366011 Change-Id: Ib1d8a3a207257995518f4430fe97f8c406c7fc13
/frameworks/base/opengl/libs/EGL/egl.cpp
|
51c0c27005406dd0635318e196e27c99d19ebd67 |
|
17-Mar-2011 |
David Li <davidxli@google.com> |
Merge "GLES2Debugger: Make command exchange async to improve performance."
|
5e4059f646a6c648b000d1422180bd85d93c09a9 |
|
17-Mar-2011 |
Mathias Agopian <mathias@google.com> |
am 9405d987: am a05a8ac5: am af831a7b: Merge "fix [4107131] nvidia driver call takes a very long time" into honeycomb-mr1 * commit '9405d98705db1c8102b77ef960f344ac416d165c': fix [4107131] nvidia driver call takes a very long time
|
3d69bea1f6e009a9ad096c5be9098d1064853f43 |
|
16-Mar-2011 |
Mathias Agopian <mathias@google.com> |
fix [4107131] nvidia driver call takes a very long time We were leaking all EGLSyncKHR objects, over time the list would grow and become very slow to operate on. Bug: 4107131 Change-Id: I6c82daf49fe3189d04550781d64d57c30c95f552
/frameworks/base/opengl/libs/EGL/egl.cpp
|
e218208f6aa1f05c691f76a53a8a4d395414978a |
|
15-Mar-2011 |
Jamie Gennis <jgennis@google.com> |
am 0ea44ac0: am 00f47af8: Merge "SurfaceTexture: disallow unsupported uses." into honeycomb-mr1 * commit '0ea44ac0deb5cc95d60dd512c3a8f6a1bb69f5d1': SurfaceTexture: disallow unsupported uses.
|
bae716bc153962c3ac79660bf32e5c50f0de343d |
|
14-Mar-2011 |
Jamie Gennis <jgennis@google.com> |
SurfaceTexture: disallow unsupported uses. This change makes the ANativeWindow_lock NDK function error out if it is passed an ANativeWindow with a concrete type that is not Surface. It also makes eglCreateWindowSurface fail if it is passed a SurfaceTextureClient as its 'window' argument. Bug: 4087277 Change-Id: Ie68c50c52d88f72d8a387f6c094908044c83a88c
/frameworks/base/opengl/libs/EGL/egl.cpp
|
940c3f8b3605a2ea8c4bdd4607eff67db2e00cfc |
|
11-Mar-2011 |
David Li <davidxli@google.com> |
GLES2Debugger: Make command exchange async to improve performance. In message loop, use select to check for available commands from client, rather than always expecting commands in eglSwapBuffers. Change-Id: Ifc34dd77c2528c8b9c71f594e3eda4f93400cd2b Signed-off-by: David Li <davidxli@google.com>
/frameworks/base/opengl/libs/EGL/egl.cpp
|
5c425f2eafc3d63e475153586edcf12eb6348aad |
|
11-Mar-2011 |
David Li <davidxli@google.com> |
GLES2Debugger: Added DbgContext and vertex data capturing. Send VBO related commands to client, which tracks the state. Maintain index buffer content and vertex attrib pointer/buffer state on server. During glDrawArrays/Elements, send user memory data to client. Change-Id: Ia920e90479329b301ae4b5735e833eeb20293c94 Signed-off-by: David Li <davidxli@google.com>
/frameworks/base/opengl/libs/EGL/egl.cpp
|
55c94ccd495aa19784cb4ca9a1fe51fad9631542 |
|
05-Mar-2011 |
David Li <davidxli@google.com> |
Added screenshot after glDraw* option to GLES2 Debugger Also added timing mode option using utils/Timers.h. Factored out common code to reduce size. Improved Protobuf message. Uploads data from glBufferData and glBufferSubData. Change-Id: Iaae5e706235d942df81c7eada7223fb0b0583911 Signed-off-by: David Li <davidxli@google.com>
/frameworks/base/opengl/libs/EGL/egl.cpp
|
28ca2abb1ab92b2cc3a5c9119ec2f697ec3401b2 |
|
02-Mar-2011 |
David Li <davidxli@google.com> |
Initial commit of GLESv2 debugger server Use debug.egl.debug_proc property to match process cmdline. Binds to TCP:5039 and waits for client connection. Sends function call parameters, textures and shaders using Protobuf. Java Eclipse client plug-in is next. Change-Id: I183b755263663f87e86dde1ad12f527d0445fd57 Signed-off-by: David Li <davidxli@google.com>
/frameworks/base/opengl/libs/EGL/egl.cpp
|
bb9d394b21bdfeb1ceb4cf6e4ed0306e39757b15 |
|
16-Feb-2011 |
Kenny Root <kroot@google.com> |
Clean up use of HAVE_ANDROID_OS HAVE_ANDROID_OS was defined as "1" for targets, but never defined as "0" for non-targets. Changing them to #ifdef should be safe and matches all the other uses of HAVE_ANDROID_OS throughout the system. Change-Id: I82257325a8ae5e4e4371ddfc4dbf51cea8ea0abb
/frameworks/base/opengl/libs/EGL/egl.cpp
|
e3b179c732fde81da0bffecd9579cafd727b3417 |
|
31-Jan-2011 |
Jamie Gennis <jgennis@google.com> |
Clear all EGL errors when entering EGL funcs. This changes the clearError function in the EGL wrapper layer to simply call eglGetError(). That should clear any pending errors from all the underlying EGL implementations, which is needed to correctly report the error for the most recently called EGL function. Change-Id: Iad19c69f0c5305e873f3c2f96d353280d31f7b61
/frameworks/base/opengl/libs/EGL/egl.cpp
|
e7ff5ddb47c8d30865f37cfdffa3b7ebb597c4d7 |
|
22-Jan-2011 |
Michael I. Gold <gold@nvidia.com> |
egl: clear error on function entry Clear the current thread error state on entry to API functions as mandated by the EGL 1.4 specification, section 3.1. glGetError returns additional information about the "most recent EGL function". Change-Id: Ic24c64b39294ffc1a4e43fa72663e076b9d7decf
/frameworks/base/opengl/libs/EGL/egl.cpp
|
f4a43837f9577a24983c17a6c1dc128166af5961 |
|
04-Jan-2011 |
Michael I. Gold <gold@nvidia.com> |
egl: fix GetProcAddress for EGLimage extensions Return wrappers from GetProcAddress for glEGLImageTargetTexture2DOES and glEGLImageTargetRenderbufferStorageOES which unwrap the EGLimage handle before calling through to the implementation. Change-Id: I2f5b180ab3ccdb28a4f510a2bd8c2eee941a84df
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3ece010a4b09c82b5d59ae62dbed4957f665902c |
|
13-Jan-2011 |
Michael I. Gold <gold@nvidia.com> |
egl: expose EGLimage extensions Add EGL_KHR_gl_texture_cubemap_image and EGL_KHR_gl_renderbuffer_image to the static EGL extension string since these require no new APIs beyond what is already required. Change-Id: I2d1fde86b19bb9eee46b3b977f51784a17cfcc3c
/frameworks/base/opengl/libs/EGL/egl.cpp
|
f0ca1d388e92d43a1403443bdcd282ff331f0e34 |
|
23-Dec-2010 |
Michael I. Gold <gold@nvidia.com> |
egl: fixes for object refcounts eglMakeCurrent() would only deref the previous surfaces if the old and new contexts were the same. eglTerminate() should not touch TLS. eglReleaseThread() needs to unbind the current context. Change-Id: I213b8be77b1a23b5a8a6afaac60643662c8aa010
/frameworks/base/opengl/libs/EGL/egl.cpp
|
cd505aef7201ccd7f028ac99a2ecfed96bf474de |
|
09-Dec-2010 |
Mathias Agopian <mathias@google.com> |
am 054ae782: am e1752f41: Merge "fix [3258603] \'Quadrant\' benchmark crashes inside eglQueryContext on GB/Crespo" into gingerbread * commit '054ae78245fe9b4c14bbc372ae77cd0a977ded73': fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo
|
791982bad921ee8244264c36af81d46ae6f4e79e |
|
09-Dec-2010 |
Mathias Agopian <mathias@google.com> |
fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo eglQueryContext(..., EGL_CONFIG_ID, ...) is dereferencing an uninitialized pointer due to a typo. Change-Id: I100addf3150f19cb6dfbce9987fb5239dd240878
/frameworks/base/opengl/libs/EGL/egl.cpp
|
9889e2b1923e94fdbe046e1599008d4696e56e64 |
|
07-Dec-2010 |
Mathias Agopian <mathias@google.com> |
am 0484a673: am daef0a04: Merge "[3229973, 3247470, ...] set EGLNativeWindowSurface\'s format in EGL" into gingerbread * commit '0484a673c5839d2be9e615e52c6a45febdf1127b': [3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL
|
698a8aaca2b9e2b4707e39b8f6fc62a91db1a3b5 |
|
25-Nov-2010 |
Mathias Agopian <mathias@google.com> |
[3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL (there are multiple bugs this should fix) we now use the EGL_NATIVE_VISUAL_ID of a config to set the ANativeWindow's format from eglCreateWindowSurface(), this guarantees that the surface's format will match whatever EGLConfig the user chose. this should fix all current and future config/surface format mismatch and allow users to easily select 32-bits surfaces. Change-Id: I3835d0eb70c75eeecded3c3509a0a8207554c98b
/frameworks/base/opengl/libs/EGL/egl.cpp
|
4c2bfc18b9161449c5df7abf3e5112e16c004a75 |
|
09-Nov-2010 |
Mathias Agopian <mathias@google.com> |
DO NOT MERGE. workaround [3177481] eglGetProcAddress() returns the wrong pointer for some GL extensions We just make sure eglGetProcAddress() will return NULL for glEGLImageTargetTexture2DOES glEGLImageTargetRenderbufferStorageOES which is better than returning the address of the wrong implementation. the correct fix is more involved. Change-Id: I585a1f40e564f862e5dd382224609ccd069cd3b5
/frameworks/base/opengl/libs/EGL/egl.cpp
|
d4d0fb966060f7eaeb7b93e113482724c51c15e6 |
|
27-Oct-2010 |
Jack Palevich <jackpal@google.com> |
OpenGL tracing. Enable with: adb shell setprop debug.egl.trace 1 Change-Id: Icfbc795f5260141510975228e72234e9aab56a85
/frameworks/base/opengl/libs/EGL/egl.cpp
|
2184624db15088bcd230d1e8da1ad7d9bca91c90 |
|
24-Sep-2010 |
Mathias Agopian <mathias@google.com> |
am 4eb1ad5e: am 524a6d8e: Merge "better fix for [3028370] GL get error should return a valid error if no context is bound." into gingerbread Merge commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e' * commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e': better fix for [3028370] GL get error should return a valid error if no context is bound.
|
25b388c43bd0444985776c4d129e0ccaef9b6229 |
|
24-Sep-2010 |
Mathias Agopian <mathias@google.com> |
better fix for [3028370] GL get error should return a valid error if no context is bound. it turns out that we cannot return INVALID_OPERATION from glGetError() because the GL spec says that it must be called in a loop until it returns GL_NO_ERROR. now, we always return 0 from GL functions called from a thread with no context bound. This means that glGetError() will return NO_ERROR in this case, which is better than returning a random value (which could trap the app in a loop). if this happens in the main thread of a process, we LOG an error message once. Change-Id: Id59620e675a890286ef62a257c02b06e0fdcaf69
/frameworks/base/opengl/libs/EGL/egl.cpp
|
ecc875e22c10676d4612ab5f79debf3bc778fc1c |
|
23-Sep-2010 |
Mathias Agopian <mathias@google.com> |
am 9c4d7d67: am 5c6c5c7a: fix [3028370] GL get error should return a valid error if no context is bound. Merge commit '9c4d7d677097981a349c718902e29050dad3d59f' * commit '9c4d7d677097981a349c718902e29050dad3d59f': fix [3028370] GL get error should return a valid error if no context is bound.
|
5c6c5c7a43d44316395f5c35ab713372124b8b4c |
|
23-Sep-2010 |
Mathias Agopian <mathias@google.com> |
fix [3028370] GL get error should return a valid error if no context is bound. glGetError() will now always return GL_INVALID_OPERATION if called from a thread with no GL context bound. Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
/frameworks/base/opengl/libs/EGL/egl.cpp
|
50804e0cb27e66c3fa906e127f7f39c148219d7c |
|
22-Sep-2010 |
Mathias Agopian <mathias@google.com> |
am d01ce192: am 9d5fac51: Merge "fix small bug in EGL error management" into gingerbread Merge commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124' * commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124': fix small bug in EGL error management
|
4644ea7f46951452a091d172a425559cd07411d7 |
|
22-Sep-2010 |
Mathias Agopian <mathias@google.com> |
fix typo EGL_NO_IMAGE_KHR -> EGL_NO_SYNC_KHR Change-Id: I38c87803e32030918f2deb06381eabce0faa870c
/frameworks/base/opengl/libs/EGL/egl.cpp
|
f65630a4b84fdc8cad670dcc61225e55d4ca4ca1 |
|
22-Sep-2010 |
Mathias Agopian <mathias@google.com> |
fix small bug in EGL error management make sure to clear our EGL implementation's error when returning an error from an underlying implementation Change-Id: Ibce4726cef1f900e4c7f16002345d7a07f8cdf41
/frameworks/base/opengl/libs/EGL/egl.cpp
|
9ca8a84c67ff1aa23c4b963a274acac557df44d4 |
|
28-Aug-2010 |
Mathias Agopian <mathias@google.com> |
Add support for KHR_fence_sync Change-Id: Ie2771b5869c9c8dcf5ecf9318e2ee6d4d1cd5cc9
/frameworks/base/opengl/libs/EGL/egl.cpp
|
12e85311f4d8de8011f1c4b10320a399ba97597f |
|
09-Sep-2010 |
Mathias Agopian <mathias@google.com> |
am a9ff29b5: am 6808e6a8: Merge "Fix a few typos in EGL wrapper" into gingerbread Merge commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0' * commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0': Fix a few typos in EGL wrapper
|
97961db7d38d75dcae3d16e41b37378c54e3a404 |
|
09-Sep-2010 |
Mathias Agopian <mathias@google.com> |
Fix a few typos in EGL wrapper Change-Id: I3b815ca6ec334ca12088f9721eece33df42b2e46
/frameworks/base/opengl/libs/EGL/egl.cpp
|
b20a4b960e6515d89330701575c4adc6a6a85221 |
|
28-Aug-2010 |
Mathias Agopian <mathias@google.com> |
Add KHR_gl_texture_2D_image extension string.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
9d75f1341524910b00d35dd4eeb426d7e7791f6e |
|
27-Aug-2010 |
Mathias Agopian <mathias@google.com> |
cleanup EGL a bit. remove unused extension. Change-Id: I7758bc7d6dc2e70fc3590fe939ebf71fbcde7059
/frameworks/base/opengl/libs/EGL/egl.cpp
|
ebc3d5a5490c208ac1706b49263bd780999df724 |
|
27-Aug-2010 |
Mathias Agopian <mathias@google.com> |
cleanup EGL a bit. remove unused extension. Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
/frameworks/base/opengl/libs/EGL/egl.cpp
|
ab5750115df3143de46cee934422ffea65765480 |
|
13-Aug-2010 |
Mathias Agopian <mathias@google.com> |
fix [2912927] Can't get NV_draw_path extension to work there was a problem with eglGetProcAddress() which would only work with GLES 1.x contexts. Change-Id: I4747671cbf7ed469bb471a377f1d6f36550d24df
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3944eab21c4e9511850d8743da498c2cf886d8a6 |
|
03-Aug-2010 |
Mathias Agopian <mathias@google.com> |
fix [2421247] implement eglGetProcAddress(), needed in the ndk Change-Id: I5027a27b43c0dd449a404024087853ca05bb8e4e
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3ad6c442441615802121ff87641534fb438226c9 |
|
27-Jul-2010 |
Mathias Agopian <mathias@google.com> |
fix [2870926] Issue 9802: EGL wrapper has not been implemented correctly for eglQuerySurface(). rework how our EGL wrapper manages EGLConfig: - we now store the EGLConfig with the EGLSurface and EGLContext so that we can have easy access to it from eglQueryContext and eglQuerySurface. - EGLConfig now are an index into a sorted table of egl_config_t, we use a binary search to retrieve our EGLConfig (the index) from the implementation's EGLConfig. - egl_config_t keeps track of the implementation's index, EGLConfig and CONFIG_ID as well as our CONFIG_ID. In many ways, this implementation is simpler and more robust, as it doesn't assume anything about the number of implementations nor what EGLConfig is made of (the previous code assumed EGLConfig didn't usem more than 24-bits). Change-Id: Id5abe923aacb6e1fd2b63bd8c15d7b04ae824922
/frameworks/base/opengl/libs/EGL/egl.cpp
|
5149f91c8c56d2f5aa1f407b2818e25a563561c1 |
|
02-Jul-2010 |
Jamie Gennis <jgennis@google.com> |
Fix a bug that prevented the creation of EGL shared contexts. Change-Id: I6b0ec5ef86abdd4e9083067ba297107cfb094df3
/frameworks/base/opengl/libs/EGL/egl.cpp
|
7e71fcf31ecd23b0b4c3cd2b25cd3b11e53c7428 |
|
17-May-2010 |
Mathias Agopian <mathias@google.com> |
fix a crasher in our EGL wrapper when attrib_list is NULL in eglChooseConfig the EGL specification states that this should be treated as though it was an empty list terminated with EGL_NONE. Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
/frameworks/base/opengl/libs/EGL/egl.cpp
|
e547835c5210c2ae022c7429e7a75ac17290bf40 |
|
09-Apr-2010 |
Mathias Agopian <mathias@google.com> |
small cleanup. gEGLImpl should have been static also added a ctor to initialized it in case we use it ont he stack one day. Change-Id: I2736b9bce3d8ba3b74fd029de4c18cca2cdbbf60
/frameworks/base/opengl/libs/EGL/egl.cpp
|
0a41c3c706c7238f8de0382d1bb4f019194e9bc1 |
|
16-Mar-2010 |
Jack Palevich <jackpal@google.com> |
Implement eglInitialize / eglTerminate reference counting Previously we imlpemented the standard semantics for eglInitialize / eglTerminate, which are that eglInitialize may be called any number of times, but the first call to eglTerminate will terminate the display. Now we follow reference-countins semantics, which means that eglTerminate will only terminate the display when the reference count returns to zero. This change allows EGL to be used by multiple independently written modules in the same process. (Otherwise there is no way for the independent modules to coordinate their use of the display.)
/frameworks/base/opengl/libs/EGL/egl.cpp
|
6099ab701e8a1e5b18c997cd913d17dc478bfed7 |
|
06-Feb-2010 |
Mathias Agopian <mathias@google.com> |
fix [2189862] Race condition in eglIntialize and eglDestroy there is now a lock protext a perticular display. it's held during initialization and destruction.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
7552dcf9360ab5b89e7ac5efe55c6ba277ab17f2 |
|
25-Jan-2010 |
Mathias Agopian <mathias@google.com> |
fix [2303866] eglMakeCurrent doesn't return all error messages described in the spec
/frameworks/base/opengl/libs/EGL/egl.cpp
|
0b0722f980f40e1ac0929a7f1a6e2df7af983478 |
|
30-Oct-2009 |
Mathias Agopian <mathias@google.com> |
fix[2222341] Soft reset while going back from camcorder settings add a way to convert a mapped "pushbuffer" buffer to a gralloc handle which then can be safely used by surfaceflinger, without including gralloc_priv.h
/frameworks/base/opengl/libs/EGL/egl.cpp
|
f007a2faa1d765e9b53553a8214179b253e3cbbd |
|
29-Oct-2009 |
Mathias Agopian <mathias@google.com> |
return proper error code from eglCreateImageKHR
/frameworks/base/opengl/libs/EGL/egl.cpp
|
6fc569971faa342b2e2da46c55fbfbba3a2a7814 |
|
14-Oct-2009 |
Mathias Agopian <mathias@google.com> |
fix [2187212] add support for GLESv2 dispatch based on TLS Instead of using a different function pointer table for ES 1.x and ES 2.x, we use a single one that is the union (sort|uniq) of both tables. Two instances of this table are initialized with pointers to GL ES 1.x and GL ES 2.x entry-points. When a context is created, we store its version number and when it is bound to a thread we set the approruiate table based on the stored version. This introduce no penalty while dispatching gl calls to the right API version. [Pending Dr No approval for MR1]
/frameworks/base/opengl/libs/EGL/egl.cpp
|
94263d79234778277959c5ec0cc3f2182cc9df0b |
|
25-Aug-2009 |
Mathias Agopian <mathias@google.com> |
fix a bug recently introduced where EGL couldn't be initialized again after it had been terminated once
/frameworks/base/opengl/libs/EGL/egl.cpp
|
4a34e888ae328256febbcd6caf603a9c5834b913 |
|
21-Aug-2009 |
Mathias Agopian <mathias@google.com> |
first step for fixing [2066786] EGL object lifetime management doesn't respect the EGL spec this change fixes the lifetime mgt of EGLSurface, EGLContext and EGLImageKHR in the EGL wrapper. EGLDisplay is still somewhat bogus and libagl's EGL is still incorrect. The idea of the change is that EGL objects are put in a list when created and removed when destroyed. Before each use, we first verify if the object is in the list and if so a reference is taken and kept for the scope of the whole EGL API being called, if not, an error is returned. Upon object destruction, the object is simply marked as "terminated" (this is not protected by a lock because it doesn't really matter). This flag is only used to deny access to the object by other APIs while it's still valid (for instance current or being used by another function in another thread). A reference is also removed and the object can then actually be destroyed when going out of scope.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
dcebf6f65a890083545a8c191fcdc2522bfd035d |
|
18-Aug-2009 |
Mathias Agopian <mathias@google.com> |
fix bug [2021677] egl driver unloaded after eglTerminate() is called refactored the code so that: - EGL APIs that can be called before or after eglInitialize() will work by loading the drivers first - make eglGetDisplay() a lot more efficient - make sure that EGL drivers are loaded in a thread-safe way - don't unload the drivers upon calling eglTerminate(), they're now never unloaded, since there is no safe way to do it (some thread could be running) - updated our EGL version to 1.4 - return better error codes if errors happen during initialization
/frameworks/base/opengl/libs/EGL/egl.cpp
|
88e3e6bd04dcf166ddd92ce3a84e1f9f54ac2f66 |
|
13-Aug-2009 |
Mathias Agopian <mathias@google.com> |
Better error handling in EGL extensions
/frameworks/base/opengl/libs/EGL/egl.cpp
|
997d1070788e312edb4c5e5212dc90ddde7ac963 |
|
01-Aug-2009 |
Mathias Agopian <mathias@google.com> |
log opengl-call-with-no-context only once per thread, instead of for each function call
/frameworks/base/opengl/libs/EGL/egl.cpp
|
2eedb2515b733aaba0a92944def8156ef379e0da |
|
10-Jul-2009 |
Android (Google) Code Review <android-gerrit@google.com> |
am 46e28db8: Merge change 6713 into donut Merge commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6' * commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6': fix for [1969185] valgrind errors in new gl stuff
|
ab1cf3efd3b884a90170a82744f7ae508d51cf6e |
|
10-Jul-2009 |
Mathias Agopian <mathias@google.com> |
fix for [1969185] valgrind errors in new gl stuff
/frameworks/base/opengl/libs/EGL/egl.cpp
|
c1e3ec555b79b1e45fccbdf0bbc8ac2d51902860 |
|
25-Jun-2009 |
Mathias Agopian <mathias@google.com> |
Add eglGetRenderBufferANDROID() extension, which returns the current render buffer as an android_native_buffer_t*
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e |
|
25-Jun-2009 |
Mathias Agopian <mathias@google.com> |
fix [1942438] eglGetCurrentSurface() returns bogus value
/frameworks/base/opengl/libs/EGL/egl.cpp
|
a1254616d62d470b129a501193f15d50045cd3ae |
|
25-Jun-2009 |
Mathias Agopian <mathias@google.com> |
fix [1942438] eglGetCurrentSurface() returns bogus value
/frameworks/base/opengl/libs/EGL/egl.cpp
|
9d17c057bdb9da5fa991a2c3efebe453106ca0a7 |
|
29-May-2009 |
Mathias Agopian <mathias@google.com> |
implement a real loader for EGL drivers we now look for a config file in /system/lib/egl/egl.cfg that describes the association of a display to a driver. these drivers are named: /system/lib/egl/lib{[EGL|GLESv1_CM|GLESv2] | GLES}_$TAG.so
/frameworks/base/opengl/libs/EGL/egl.cpp
|
2820bd4eda4c75457007f11eb9d98da9bff24a27 |
|
28-May-2009 |
Mathias Agopian <mathias@google.com> |
Added most of the support needed for GLES 2.x
/frameworks/base/opengl/libs/EGL/egl.cpp
|
11be99de5f3901c32130ea4c5fd52e62e1845e73 |
|
18-May-2009 |
Mathias Agopian <mathias@google.com> |
remove libEGL and libGLESv1_CM dependencies on libutils and libui
/frameworks/base/opengl/libs/EGL/egl.cpp
|
11abc8a36d639775b05a0471c9ea45d83fa19e56 |
|
15-May-2009 |
Mathias Agopian <mathias@google.com> |
Merge commit 'goog/master' into merge_master Conflicts: opengl/libagl/Android.mk opengl/libs/Android.mk opengl/libs/egl_impl.h
|
3cc68d28c7636fc8d0524155fc062991e7f85f63 |
|
13-May-2009 |
Mathias Agopian <mathias@google.com> |
should help fix the Simulator build.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
927d37cb788670b91af0f1a7a93c68046a838d23 |
|
07-May-2009 |
Mathias Agopian <mathias@google.com> |
fix EGL extension string names
/frameworks/base/opengl/libs/EGL/egl.cpp
|
2e20bffbab8084fedce39d14d7dd17b08f6e9ba2 |
|
05-May-2009 |
Mathias Agopian <mathias@google.com> |
created an new EGL extension called ANDROID_swap_rectangle ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing. However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
fa6eda01a9f3df0102ce6a65302c8674cc9c7e50 |
|
30-Apr-2009 |
Mathias Agopian <mathias@google.com> |
Merge commit 'goog/master' into merge_master Conflicts: libs/surfaceflinger/Layer.cpp libs/surfaceflinger/SurfaceFlinger.cpp opengl/libagl/egl.cpp opengl/libs/EGL/egl.cpp opengl/libs/GLES_CM/gl.cpp opengl/libs/GLES_CM/gl_api.in opengl/libs/gl_entries.in opengl/libs/tools/glapigen
|
799af8dd1dd7e01c9ded23bed30749e20f68c8e5 |
|
25-Apr-2009 |
Mathias Agopian <mathias@google.com> |
oops forgot to remove a LOGD when loading an opengl driver
/frameworks/base/opengl/libs/EGL/egl.cpp
|
04ae634a5ab8398c5d10dcac94da25101a141300 |
|
24-Apr-2009 |
Mathias Agopian <mathias@google.com> |
Make sure to map undefined OES functions to their non-OES counterpart if it exists.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
1feecd831003e693df95521a2baae4b9aec28843 |
|
24-Apr-2009 |
Mathias Agopian <mathias@google.com> |
use gl.h to generate the *.in files. we are now supporting the full gl.h and glext.h apis.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
e29254e708bb94d0f785a00926164a0dbb0dad93 |
|
23-Apr-2009 |
Mathias Agopian <mathias@google.com> |
integrate some OpenGL ES changes back from master_gl in preparation of opening GLES to the NDK.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
1473f46cbc82aa6f0ba744cc896a36923823d55b |
|
10-Apr-2009 |
Mathias Agopian <mathias@google.com> |
Integrate from //sandbox/mathias/donut/...@145728 SurfaceFlinger rework for new EGL driver model support.
/frameworks/base/opengl/libs/EGL/egl.cpp
|
1badb712b94f5d4a14ca8c3bdb55c215a4915000 |
|
25-Mar-2009 |
Jack Palevich <> |
Automated import from //branches/master/...@142578,142578
/frameworks/base/opengl/libs/EGL/egl.cpp
|
4c7533cfc81a0dda4c25355e86558199accab3ea |
|
25-Mar-2009 |
Jack Palevich <> |
Automated import from //branches/donutburger/...@142484,142484
/frameworks/base/opengl/libs/EGL/egl.cpp
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/opengl/libs/EGL/egl.cpp
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/opengl/libs/EGL/egl.cpp
|
076357b8567458d4b6dfdcf839ef751634cd2bfb |
|
03-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@132589
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3dec7d563a2f3e1eb967ce2054a00b6620e3558c |
|
03-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@137055
/frameworks/base/opengl/libs/EGL/egl.cpp
|
3001a035439d8134a7d70d796376d1dfbff3cdcd |
|
19-Feb-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@132276
/frameworks/base/opengl/libs/EGL/egl.cpp
|
d24b8183b93e781080b2c16c487e60d51c12da31 |
|
11-Feb-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@130745
/frameworks/base/opengl/libs/EGL/egl.cpp
|