| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Allow EGL implementations to expose the
EGL_KHR_create_context_no_error extension if they wish.
https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_create_context_no_error.txt
Change-Id: I3290ccc2a69a1fa0b00ec3f1aa4f876906c64bfb
|
|
|
|
|
|
|
|
|
| |
This adds EGL wrapper functions for the following EGL extensions:
EGL_EXT_buffer_age
EGL_KHR_partial_update
EGL_KHR_swap_buffers_with_damage
Change-Id: I407acda1e0310f7f01a5efe9c915721a941138a4
|
|
|
|
|
|
|
|
|
|
| |
This change makes GLConsumer use the EGL_ANDROID_image_crop extension when
available on a device. The crop rectangle is passed to the EGL driver when
creating EGLImages, allowing the crop to be performed by the driver rather than
using the texture transform matrix.
Bug: 10897141
Change-Id: I63e9a5d5c85067376abc420e3639154468346311
|
|
|
|
| |
Change-Id: I22f1b3588011c88389e249f738f1e6915cc97e72
|
|
|
|
|
|
|
|
| |
- add ANDROID extensions missing from official headers:
EGL_ANDROID_wait_sync
EGL_ANDROID_presentation_time
Change-Id: I5496d0de123a6279234098c19f9a12220adec876
|
|
|
|
|
|
|
|
|
|
| |
Added EGL extension to set a timestamp on a surface.
Also, fix JNI encoding of "long" in glgen.
Bug 8191230
Change-Id: I38b7334bade3f8ff02bffe600bb74469ef22c164
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
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
|
|
|
|
|
|
| |
note that this doesn't update the EGL stubs.
Change-Id: I00274431a490249d93eb6b5ba13f274b7f2682ae
|
| |
|
|
|
|
| |
buffer as an android_native_buffer_t*
|
|
|
|
| |
EGL_NATIVE_BUFFER_ANDROID now maps to 0x3140 instead of using the staging range
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|