| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c
|
|
|
|
| |
Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
|
|
|
|
| |
Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: Ia6e489b5b4f028864bdf54923e81f604710dd8ad
|
|
|
|
| |
Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- don't advertise extensions that are not supported
by any implementation
- remove EGL_ANDROID_swap_rectangle which is not
implemented by anybody and confuses people
- add some comments about mandatory extensions
Bug: 5428001
Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
|
|
|
|
|
|
|
| |
This change adds the ANDROID suffix to the all the types and functions
defined by the EGL_ANDROID_blob_cache extension.
Change-Id: I087875b96d9a7053efb9c8d5614f9f765eed799d
|
|
|
|
|
|
|
|
| |
This change makes the makes the stub EGL_ANDROID_blob_cache callbacks
actually use a BlobCache object.
Bug: 5474671
Change-Id: I5cbaae2dea3aad2fe306c9f57029c3f215a0863a
|
|
|
|
|
| |
Change-Id: I62bf0fcb5ccdc77c042b425a42054fb3122575b6
Signed-off-by: Mathias Agopian <mathias@google.com>
|
|
|
|
|
|
|
|
| |
This change adds an enum value and a description of the expected
implementations to the EGL_ANDROID_recordable extension specification.
It also adds the new enum value to the 'eglext.h' header.
Change-Id: Ia0de2d5613708445ff83b85a7e550f9417531ee4
|
|
|
|
|
| |
Change-Id: Idc2eabaa805bb6d308ebb315872623f28d428417
Signed-off-by: Iliyan Malchev <malchev@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change allows to use this header with the NDK's standalone toolchain.
For the record, the NDK toolchain defines __ANDROID__ as a compiler built-in
macro, this is however not the case currently for the prebuilt binaries that
are being used by the full Android build system, which otherwise defines ANDROID.
This change allows the header to be used by all toolchains properly. Note however
that we should properly should change our toolchain and sources to provide and
rely on __ANDROID__ instead of ANDROID though.
Change-Id: Iaa1aa1146985b5f24dcf3a83d9ddb9b4b59dc328
|
|
|
|
|
|
|
| |
Add correct enumerants for OES_EGL_image_external to glext.h.
SurfaceFlinger now checks for the correct extension name.
Change-Id: I2ba2728a01fa2260bd086d2df4316c68f694a9b1
|
|
|
|
| |
Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
|
|
|
|
|
|
|
| |
Not yet hooked up to anything in the NDK, but requires renaming
the existing android_native_window_t type everywhere.
Change-Id: Iffee6ea39c93b8b34e20fb69e4d2c7c837e5ea2e
|
|
|
|
|
|
| |
This will allow us to support YUV surfaces.
Change-Id: I2d4da75f1006a5285bdc552695d4caeecccf2183
|
|
|
|
|
|
| |
note that this doesn't update the EGL stubs.
Change-Id: I00274431a490249d93eb6b5ba13f274b7f2682ae
|
|
|
|
|
|
|
| |
the official headers have a couple typos, which
this CL fixes.
Change-Id: I0359531a05a4a62ddbdce70c5841ec1c355feb3b
|
|
|
|
| |
Change-Id: Iceef1e95504897a5e3759b0401cf7031c9e74547
|
|
|
|
|
| |
The ETC1 compressed texture format is commonly
supported by OpenGL ES 2.0-capable devices.
|
| |
|
|
|
|
| |
buffer as an android_native_buffer_t*
|
|
|
|
| |
EGL_NATIVE_BUFFER_ANDROID now maps to 0x3140 instead of using the staging range
|
| |
|
|
|
|
|
| |
- changed glTexImage2D() declaration so it matches that of GLES 1.x; otherwise we can't include both headers (!!!)
- added parameter names to the declaration of some extensions (this is needed by glapigen and glentrygen)
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
opengl/libagl/Android.mk
opengl/libs/Android.mk
opengl/libs/egl_impl.h
|
| |
| |
| |
| | |
eglext.h
|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
opengl/libagl/Android.mk
opengl/libs/Android.mk
opengl/libs/egl_impl.h
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
include/ui/egl/android_natives.h and don't include it from egl.h
the android_native_ types are just forward declared in egl.h
|
| |
| |
| |
| |
| |
| | |
handle field
this abstraction was not necessary. things are easier now.
|
| |
| |
| |
| | |
"bits" can never be trusted now that we need to call lock() on the handle to get the virtual address of the buffer.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.
- factor all the lock/unlock code in SurfaceBuffer.
- fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers().
- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.
- make use of LightRefBase() where needed, instead of duplicating its implementation
- add LightRefBase::getStrongCount()
- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp
- disabled copybits test, since it clashes with the new gralloc api
- Camera/Video will be fixed later when we rework the overlay apis
|
|/
|
|
| |
SurfaceFlinger rework for new EGL driver model support.
|
| |
|
| |
|
|
|