summaryrefslogtreecommitdiffstats
path: root/opengl/libs/EGL/egl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* GLES2Dbg: use dump.gles2dbg file when fails to create socketDavid Li2011-04-121-4/+10
| | | | | | | | | | | | 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>
* GLES2Dbg: change GLES2_dbg to shared libraryDavid Li2011-04-121-26/+11
| | | | | Change-Id: I493e9bff431bd939f4e80e1e9c614dd557307fa2 Signed-off-by: David Li <davidxli@google.com>
* Initialize reference counter for egl_display_tEric Hassold2011-03-311-1/+1
| | | | | | | Add missing member initialization for reference counter, used to determine if a context is ready. Change-Id: I45f81177ac2851129681f827afe015b60b3cd73c
* Make objects collection a member of egl_display objectEric Hassold2011-03-251-68/+68
| | | | | | | | | | | 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
* Check for initialized EGLDisplay when required by specificationEric Hassold2011-03-231-77/+115
| | | | | | | | | 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
* Merge "GLES2Debugger: Make command exchange async to improve performance."David Li2011-03-171-2/+4
|\
| * GLES2Debugger: Make command exchange async to improve performance.David Li2011-03-111-2/+4
| | | | | | | | | | | | | | | | 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>
* | am 9405d987: am a05a8ac5: am af831a7b: Merge "fix [4107131] nvidia driver ↵Mathias Agopian2011-03-161-4/+5
|\ \ | | | | | | | | | | | | | | | | | | call takes a very long time" into honeycomb-mr1 * commit '9405d98705db1c8102b77ef960f344ac416d165c': fix [4107131] nvidia driver call takes a very long time
| * | fix [4107131] nvidia driver call takes a very long timeMathias Agopian2011-03-161-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | We were leaking all EGLSyncKHR objects, over time the list would grow and become very slow to operate on. Bug: 4107131 Change-Id: I6c82daf49fe3189d04550781d64d57c30c95f552
* | | am 0ea44ac0: am 00f47af8: Merge "SurfaceTexture: disallow unsupported uses." ↵Jamie Gennis2011-03-151-0/+10
|\ \ \ | |/ / | | / | |/ |/| | | | | into honeycomb-mr1 * commit '0ea44ac0deb5cc95d60dd512c3a8f6a1bb69f5d1': SurfaceTexture: disallow unsupported uses.
| * SurfaceTexture: disallow unsupported uses.Jamie Gennis2011-03-151-0/+10
| | | | | | | | | | | | | | | | | | | | 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
* | GLES2Debugger: Added DbgContext and vertex data capturing.David Li2011-03-101-4/+17
| | | | | | | | | | | | | | | | | | 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>
* | Added screenshot after glDraw* option to GLES2 DebuggerDavid Li2011-03-041-0/+4
| | | | | | | | | | | | | | | | | | | | 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>
* | Initial commit of GLESv2 debugger serverDavid Li2011-03-031-3/+28
|/ | | | | | | | | | 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>
* Clean up use of HAVE_ANDROID_OSKenny Root2011-02-161-1/+1
| | | | | | | | 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
* Clear all EGL errors when entering EGL funcs.Jamie Gennis2011-01-311-4/+3
| | | | | | | | | 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
* egl: clear error on function entryMichael I. Gold2011-01-251-1/+92
| | | | | | | | 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
* egl: fix GetProcAddress for EGLimage extensionsMichael I. Gold2011-01-161-0/+33
| | | | | | | | Return wrappers from GetProcAddress for glEGLImageTargetTexture2DOES and glEGLImageTargetRenderbufferStorageOES which unwrap the EGLimage handle before calling through to the implementation. Change-Id: I2f5b180ab3ccdb28a4f510a2bd8c2eee941a84df
* egl: expose EGLimage extensionsMichael I. Gold2011-01-161-0/+2
| | | | | | | | 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
* egl: fixes for object refcountsMichael I. Gold2010-12-231-20/+31
| | | | | | | | 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
* am 054ae782: am e1752f41: Merge "fix [3258603] \'Quadrant\' benchmark ↵Mathias Agopian2010-12-081-2/+2
|\ | | | | | | | | | | | | crashes inside eglQueryContext on GB/Crespo" into gingerbread * commit '054ae78245fe9b4c14bbc372ae77cd0a977ded73': fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo
| * fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/CrespoMathias Agopian2010-12-081-2/+2
| | | | | | | | | | | | | | eglQueryContext(..., EGL_CONFIG_ID, ...) is dereferencing an uninitialized pointer due to a typo. Change-Id: I100addf3150f19cb6dfbce9987fb5239dd240878
* | am 0484a673: am daef0a04: Merge "[3229973, 3247470, ...] set ↵Mathias Agopian2010-12-061-8/+25
|\ \ | |/ | | | | | | | | | | EGLNativeWindowSurface\'s format in EGL" into gingerbread * commit '0484a673c5839d2be9e615e52c6a45febdf1127b': [3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL
| * [3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGLMathias Agopian2010-12-031-8/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (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
| * DO NOT MERGE. workaround [3177481] eglGetProcAddress() returns the wrong ↵Mathias Agopian2010-11-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | OpenGL tracing.Jack Palevich2010-10-261-6/+73
| | | | | | | | | | | | | | | | Enable with: adb shell setprop debug.egl.trace 1 Change-Id: Icfbc795f5260141510975228e72234e9aab56a85
* | am 4eb1ad5e: am 524a6d8e: Merge "better fix for [3028370] GL get error ↵Mathias Agopian2010-09-231-9/+2
|\ \ | |/ | | | | | | | | | | | | | | 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.
| * better fix for [3028370] GL get error should return a valid error if no ↵Mathias Agopian2010-09-231-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | am 9c4d7d67: am 5c6c5c7a: fix [3028370] GL get error should return a valid ↵Mathias Agopian2010-09-231-0/+9
|\ \ | |/ | | | | | | | | | | | | | | 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.
| * fix [3028370] GL get error should return a valid error if no context is bound.Mathias Agopian2010-09-231-0/+9
| | | | | | | | | | | | | | glGetError() will now always return GL_INVALID_OPERATION if called from a thread with no GL context bound. Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
* | am d01ce192: am 9d5fac51: Merge "fix small bug in EGL error management" into ↵Mathias Agopian2010-09-221-2/+4
|\ \ | |/ | | | | | | | | | | | | | | gingerbread Merge commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124' * commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124': fix small bug in EGL error management
| * fix small bug in EGL error managementMathias Agopian2010-09-211-2/+4
| | | | | | | | | | | | | | make sure to clear our EGL implementation's error when returning an error from an underlying implementation Change-Id: Ibce4726cef1f900e4c7f16002345d7a07f8cdf41
* | fix typo EGL_NO_IMAGE_KHR -> EGL_NO_SYNC_KHRMathias Agopian2010-09-211-4/+4
| | | | | | | | Change-Id: I38c87803e32030918f2deb06381eabce0faa870c
* | Add support for KHR_fence_syncMathias Agopian2010-09-101-0/+125
| | | | | | | | Change-Id: Ie2771b5869c9c8dcf5ecf9318e2ee6d4d1cd5cc9
* | am a9ff29b5: am 6808e6a8: Merge "Fix a few typos in EGL wrapper" into ↵Mathias Agopian2010-09-091-2/+2
|\ \ | |/ | | | | | | | | | | | | | | gingerbread Merge commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0' * commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0': Fix a few typos in EGL wrapper
| * Fix a few typos in EGL wrapperMathias Agopian2010-09-091-2/+2
| | | | | | | | Change-Id: I3b815ca6ec334ca12088f9721eece33df42b2e46
| * cleanup EGL a bit. remove unused extension.Mathias Agopian2010-08-271-19/+0
| | | | | | | | Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
* | Add KHR_gl_texture_2D_image extension string.Mathias Agopian2010-08-271-0/+1
| |
* | cleanup EGL a bit. remove unused extension.Mathias Agopian2010-08-271-19/+0
|/ | | | Change-Id: I7758bc7d6dc2e70fc3590fe939ebf71fbcde7059
* fix [2912927] Can't get NV_draw_path extension to workMathias Agopian2010-08-131-2/+3
| | | | | | | there was a problem with eglGetProcAddress() which would only work with GLES 1.x contexts. Change-Id: I4747671cbf7ed469bb471a377f1d6f36550d24df
* fix [2421247] implement eglGetProcAddress(), needed in the ndkMathias Agopian2010-08-021-45/+50
| | | | Change-Id: I5027a27b43c0dd449a404024087853ca05bb8e4e
* fix [2870926] Issue 9802: EGL wrapper has not been implemented correctly for ↵Mathias Agopian2010-07-261-98/+138
| | | | | | | | | | | | | | | | | | | | | | | 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
* Fix a bug that prevented the creation of EGL shared contexts.Jamie Gennis2010-07-021-0/+4
| | | | Change-Id: I6b0ec5ef86abdd4e9083067ba297107cfb094df3
* fix a crasher in our EGL wrapper when attrib_list is NULL in eglChooseConfigMathias Agopian2010-05-171-4/+6
| | | | | | | the EGL specification states that this should be treated as though it was an empty list terminated with EGL_NONE. Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
* small cleanup. gEGLImpl should have been staticMathias Agopian2010-04-091-1/+1
| | | | | | | also added a ctor to initialized it in case we use it ont he stack one day. Change-Id: I2736b9bce3d8ba3b74fd029de4c18cca2cdbbf60
* Implement eglInitialize / eglTerminate reference countingJack Palevich2010-03-151-1/+4
| | | | | | | | | | | | | | | | | 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.)
* fix [2189862] Race condition in eglIntialize and eglDestroyMathias Agopian2010-02-051-3/+16
| | | | | there is now a lock protext a perticular display. it's held during initialization and destruction.
* fix [2303866] eglMakeCurrent doesn't return all error messages described in ↵Mathias Agopian2010-01-251-3/+3
| | | | the spec
* fix[2222341] Soft reset while going back from camcorder settingsMathias Agopian2009-10-301-1/+1
| | | | | | 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
* return proper error code from eglCreateImageKHRMathias Agopian2009-10-291-4/+24
|