summaryrefslogtreecommitdiffstats
path: root/opengl/libs/EGL
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | am f58475b5: am 60393d45: Merge "Add runtime debugging capabilities to ↵Romain Guy2012-10-182-5/+137
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | OpenGL" into jb-mr1-dev * commit 'f58475b5ae4ccb3a31c05c79da8b2914c62a3510': Add runtime debugging capabilities to OpenGL
| * | | am 60393d45: Merge "Add runtime debugging capabilities to OpenGL" into ↵Romain Guy2012-10-182-5/+137
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | jb-mr1-dev * commit '60393d45207b6548e1f61ca104fa59aecee87d30': Add runtime debugging capabilities to OpenGL
| | * | Add runtime debugging capabilities to OpenGLRomain Guy2012-10-182-5/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The shell property debug.egl.trace can now be set to: 0 disables tracing 1 logs all GL calls error checks glGetError after every GL call, logs a stack trace on error systrace logs each GL call to systrace Change-Id: I34a2a2d4e19c373fd9eaa1b0cd93e67c87378996
* | | | am 23bcd8d2: am 825a9a2d: Merge "Update comments to reflect what the code ↵Romain Guy2012-10-161-2/+2
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | actually does" into jb-mr1-dev * commit '23bcd8d298597659622919027c9ea921d5eed513': Update comments to reflect what the code actually does
| * | | am 825a9a2d: Merge "Update comments to reflect what the code actually does" ↵Romain Guy2012-10-161-2/+2
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | into jb-mr1-dev * commit '825a9a2dcd1b3e139dd0677ff46f966fb23f963c': Update comments to reflect what the code actually does
| | * | Update comments to reflect what the code actually doesRomain Guy2012-10-151-2/+2
| | | | | | | | | | | | | | | | Change-Id: I2613aa32c29eddc52a00090656c1bd11f9f5732b
* | | | am 49fe8add: am b96fe085: Merge "Add new debug option to force 4x MSAA in ↵Romain Guy2012-10-151-0/+53
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | OpenGL ES 2.0 apps" into jb-mr1-dev * commit '49fe8addbfe52bf9a3e69e6250e462a70332235c': Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps
| * | | am b96fe085: Merge "Add new debug option to force 4x MSAA in OpenGL ES 2.0 ↵Romain Guy2012-10-151-0/+53
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | apps" into jb-mr1-dev * commit 'b96fe08540dcf7e90be56919ea9863f687da779c': Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps
| | * | Add new debug option to force 4x MSAA in OpenGL ES 2.0 appsRomain Guy2012-10-151-0/+53
| | | | | | | | | | | | | | | | Change-Id: I53ac91a9ce07b5dd5f2ee0e3cc5b65b6402f9229
* | | | gltrace: Do not start gltrace from early_egl_init.Siva Velusamy2012-10-101-1/+0
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | The debugging and tracing levels are initialized both during early_egl_init and egl_display_t::initialize(). For apps this has no effect since early_egl_init is called in the context of zygote. This CL removes the unnecessary call from early_egl_init. Change-Id: Ibc55c26228cd197f2e2623fbfb2d1a63d0722401
* | | am 1e83690c: Merge "assert -eng builds when calling a GL function without a ↵Mathias Agopian2012-09-261-2/+7
|\ \ \ | |/ / | | | | | | | | | | | | | | | context" into jb-mr1-dev * commit '1e83690c6030b33c7776fa65cb57132d5e2d0b40': assert -eng builds when calling a GL function without a context
| * | assert -eng builds when calling a GL function without a contextMathias Agopian2012-09-261-2/+7
| | | | | | | | | | | | | | | | | | Bug: 7241626 Change-Id: I0f1f9361e75e9186af8cff8d98a7d2224b266765
* | | am 2f45d746: Merge "EGL: add the EGL_ANDROID_framebuffer_target enum" into ↵Jamie Gennis2012-09-241-0/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | jb-mr1-dev * commit '2f45d7464a55d7a91da6fcd6f8cf1b11e395d029': EGL: add the EGL_ANDROID_framebuffer_target enum
| * | Merge "EGL: add the EGL_ANDROID_framebuffer_target enum" into jb-mr1-devJamie Gennis2012-09-241-0/+1
| |\ \
| | * | EGL: add the EGL_ANDROID_framebuffer_target enumJamie Gennis2012-09-241-0/+1
| | | | | | | | | | | | | | | | Change-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c
* | | | am 363847d4: Merge "EGL: expose the EXT_create_context_robustness ext" into ↵Jamie Gennis2012-09-241-0/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | jb-mr1-dev * commit '363847d498bffe0e2d8e7b8aba693bb402513413': EGL: expose the EXT_create_context_robustness ext
| * | | Merge "EGL: expose the EXT_create_context_robustness ext" into jb-mr1-devJamie Gennis2012-09-241-0/+1
| |\ \ \ | | |/ /
| | * | EGL: expose the EXT_create_context_robustness extJamie Gennis2012-09-241-0/+1
| | | | | | | | | | | | | | | | Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
* | | | am 500407a2: log an error when eglCreateContext() fails in an inconsistant wayMathias Agopian2012-09-241-0/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | * commit '500407a2c07ced40c36e7356574a47bcec9c2fd9': log an error when eglCreateContext() fails in an inconsistant way
| * | | log an error when eglCreateContext() fails in an inconsistant wayMathias Agopian2012-09-241-0/+6
| |/ / | | | | | | | | | | | | | | | this will help debugging bug: 7216919 Change-Id: I54ac65f20c5ed55cc93a5cbc5350fadfb0fcb804
* | | am 98838aa0: am 77af25b6: Merge "Return back-end result from eglDestroyImageKHR"Mathias Agopian2012-09-241-2/+3
|\ \ \ | |/ / |/| | | | | | | | * commit '98838aa0836518b7397cbfe763f34305e3387a5f': Return back-end result from eglDestroyImageKHR
| * | Return back-end result from eglDestroyImageKHRSteven Holte2012-09-121-2/+3
| |/ | | | | | | Change-Id: I0e972b778f9802c28f52092bb9af087285833e0b
* | EGL: fix an extension string bugJamie Gennis2012-09-171-0/+4
| | | | | | | | | | | | | | | | This change fixes a bug where initializing EGL multiple times (eglTerminate followed by eglInitialize) would cause extensions to show up in the extension string multiple times. Change-Id: I707a3da62ed30ef13835087167f84a08bc6addd7
* | EGL: make max cache key size BoardConfig-ableJamie Gennis2012-09-121-1/+5
| | | | | | | | | | | | | | This change makes the maximum EGL blob cache key size configurable via a BoardConfig. Change-Id: Ic669cd25fc743662bd4f13aab62354fc3d54560c
* | EGL: Add the EGL_ANDROID_wait_sync extensionJamie Gennis2012-09-092-0/+17
| | | | | | | | Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb
* | EGL: add the native_fence_sync extensionJamie Gennis2012-09-063-1/+17
| | | | | | | | | | | | | | This change adds support for the EGL_ANDROID_native_fence_sync extension to the Android EGL layer. It also fixes a couple minor issues with the extension spec. Change-Id: Ic8829d21f37b701f33aa9c72c3d25e88e03fa3cd
* | am 6e820eec: am 6f89ebde: Merge "EGL: do not use sparse files for shader"Jean-Baptiste Queru2012-08-201-14/+15
|\ \ | |/ | | | | | | * commit '6e820eec21917f8e25c40dbc8b972468535af0e8': EGL: do not use sparse files for shader
| * EGL: do not use sparse files for shadervijay gupta2012-07-231-14/+15
| | | | | | | | | | | | | | | | | | | | | | | | - Process is killed by system with SIGBUS signal if it writes data to mapped sparse file on full filesystem. - Allocate space using write() function instead of ftruncate() to avoid creation of sparse files on full filesystem. Catch write() errors to handle out-of-space case during allocation. Bug: http://code.google.com/p/android/issues/detail?id=35376 Change-Id: Ifc366454f34e71a43a0973eda4f591a920ea3a14 Signed-off-by: Kirill Artamonov <kartamonov@nvidia.com>
* | Merge "don't error out when eglTerminate()ing an already terminated display"Mathias Agopian2012-06-131-1/+7
|\ \ | |/ |/|
| * don't error out when eglTerminate()ing an already terminated displayMathias Agopian2012-06-131-1/+7
| | | | | | | | | | | | so says the EGL specification, section 3.2 Change-Id: Ice60530f8f6e47b4e14e06d2ab8eba799a7688a6
* | reduce PB size from 2MB to 512KBMathias Agopian2012-06-051-0/+47
|/ | | | | | | | this allows us to enable h/w acceleration on low-end devices while keeping memory usage down. Bug: 6557760 Change-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9
* fix EGL_CLIENT_STRINGMathias Agopian2012-05-211-1/+1
| | | | | | | | it should read OpenGL_ES (with an underscore) Bug: 6529643 Change-Id: I7caf07793bffe5a8dcceaff496a222077486fc87
* Disable EGL hibernation due to jankJesse Hall2012-05-042-7/+13
| | | | | | | | | | Hibernating EGL takes a long time (>100 ms) and blocks all other rendering. During window animations, the outgoing activity begins hibernation before the animation stops, causing visible stutter. Hibernation is still available by setting 'BOARD_ALLOW_EGL_HIBERNATION := true' in the devices BoardConfig.mk Change-Id: Iab4e00723a1adcd97481e81b2efdc821b3e9712f
* Fix deadlock when cleaning objects in eglTerminateJesse Hall2012-04-172-29/+79
| | | | | | | | | | | | | | | | | | When eglTerminate() is called with a window surface still exists, a deadlock would occur since egl_display_t::terminate() holds a lock while destroying the window surface, which calls onWindowSurfaceDestroyed() which attempts to take the same lock. This change refactors the hibernation code and data into a separate object with its own lock, separate from the egl_display_t lock. This avoids the deadlock and better encapsulates the hibernation logic. The change also fixes a bug discovered incidentally while debugging: hibernating after calling eglTerminate() succeeds, but will cause awakens from subsequent eglInitialize() to fail. We will no longer hibernate a terminated display. Change-Id: If55e5bb603d4f8953babc439ffc8d8a60af103d9
* Hibernate the EGL implementation when idleJesse Hall2012-04-096-17/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | If the EGL implementation supports the EGL_IMG_hibernate_process extension, use it to hibernate (and hopefully release memory or other resources) when the process isn't actively using EGL or OpenGL ES. The idleness heuristic used in this change is: (a) Wake up when entering any EGL API call, and remain awake for the duration of the call. (b) Do not hibernate when any window surface exists; this means the application is very likely in the foreground. (c) Do not hibernate while any context is made current to a thread. The app may be using a client API without the EGL layer knowing, so it is not safe to hibernate. (d) Only check these conditions and attempt to hibernate after a window surface is destroyed or a thread's context is detached. By not attempting to hibernate at the end of every EGL call, we avoid some transient wakeups/hibernate cycles when the app is mostly idle, or is starting to become active but hasn't created its window surface yet. On a Galaxy Nexus, hibernating frees 1567 VM pages from the process. Both hibernating and waking can take anywhere from 30ms to over 100ms -- measurements have been very inconsistent. Change-Id: Ib555f5d9d069aefccca06e8173a89625b5f32d7e
* Increment/decrement a counter around EGL callsJesse Hall2012-04-096-91/+169
| | | | | | | | | | | | This is in preparation for a change that will hibernate the underlying EGL when idle. Instead of a bare egl_display_t*, get_display() now returns a egl_display_ptr, which acts like a smart pointer. The "wakecount" counter managed by the smart pointer isn't used for anything in this change. It will be used to make sure we don't hibernate when any thread is in an EGL call, without having to hold a mutex for the duration of the call. Change-Id: Iee52f3549a51162efc3800e1195d3f76bba2f2ce
* EGL: add GPU frame completion tracingJamie Gennis2012-04-063-3/+84
| | | | | | | This change adds a debug option to EGL to use an EGLSyncKHR each frame to determine when the GPU finishes rendering the frame. Change-Id: I09ce071db904b44f07ca814c586c291c8b59385a
* debug.egl.finish can be used to force a glFinish() when eglSwapBuffers() is ↵Mathias Agopian2012-03-253-1/+21
| | | | | | | | called this debug property is evaludated at eglInitialize() time. Change-Id: Ie439e4aac87f7fdc6ab2add86183d6d042f3ee8b
* gltrace: Expose a function to set OpenGL trace level.Siva Velusamy2012-03-092-17/+45
| | | | | | | | This patch adds a function setGlDebugLevel() to libEGL to enable GL tracing. This will be used by the Java layer to add an option to "am start" that can enable tracing for a particular application. Change-Id: Ie1dbdd550f502df8633553595cb33ee9d9ae44e1
* Add tracing to various graphics components.Jamie Gennis2012-02-271-0/+5
| | | | | | | This change adds ATRACE call tracing to BufferQueue, SurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL. Change-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7
* Don't wrap EGLImageKHR and EGLSyncKHR anymoreMathias Agopian2012-02-143-230/+35
| | | | | | | | this simplify our EGL wrapper implementation a lot. This wrapping is no longer needed now that we can only support a single underlaying EGL implementation. Change-Id: I8213df7ac69daac447f1fe6e37044b78aac4e9a9
* EGLConfig is now not remaped to an internal EGLConfigMathias Agopian2012-02-136-261/+54
| | | | | | | this is possible now that we support only a single EGL implementation. this allows a large code simplification. Change-Id: I7a6b9db4c5d60f4407c6061e7a68729af63d5242
* remove multiplexing of multiple EGL implementationMathias Agopian2012-02-1310-427/+258
| | | | | | | | | | from now on, the system can only have one EGL implementation. this means the software and h/w renderer cannot be used at the same time on a device. Of course, the h/w renderer is always prefered; in its absence we default to the software renderer. Change-Id: Ib579f58055dd0ce4c4a99144131efa11c16ca3d3
* fix a dead-lock in eglMakeCurrentMathias Agopian2012-02-032-22/+54
| | | | | | | | | | this was introduced in a recent change. eglMakeCurrent can end up calling eglDestroyImageKHR via ANativewWindow::disconnect when the consumer is in the same process. we make sure we don't hold the lock while this is happening. Change-Id: Id17fe4fd76eecf5f962cefb9aa32be41fc1b042d
* fix a race condition in eglMakeCurrent()Mathias Agopian2012-01-303-35/+52
| | | | | | | | | | | | | | it would happen when a context was made non-current, in this case we would call the implementation's eglMakeCurrent() which would succeed, if we're rescheduled at that point, another eglMakeCurrent() could make that context current to another thread, however, when we came back to the original call we would overwrite egl_context_t internal state. this is fixed by moving the critical section under egl_display_t's lock. Change-Id: I743c85696e13263d3a9570824940263df0caacdc
* Merge "add all needed GL extension wrappers"Mathias Agopian2012-01-301-16/+34
|\
| * add all needed GL extension wrappersMathias Agopian2012-01-301-16/+34
| | | | | | | | | | | | | | when increasing MAX_NUMBER_OF_GL_EXTENSIONS to 256 we also needed to create all the corresponding wrappers. Change-Id: I90edaaf0885ccdfab48e7a1396bcf88e039cfb25
* | add support for GL_EXT_debug_markerMathias Agopian2012-01-296-10/+84
|/ | | | | | | | | | | | | | This extension is always added to the GL_EXTENSIONS extension string for the current GL context, regardless of if it's supported by the h/w driver. The extension itself will be handled by GLES_trace (eventually), when GLES_trace is not enabled, it'll result to a no-op. If the h/w implementation has this extension, we'll call that version instead of our dummy version. Change-Id: Ie5dd3387c4d45cd5ed5f03b73bda6045620a96bc
* hack up frame latency measurementJamie Gennis2012-01-241-0/+20
| | | | Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-087-25/+25
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c