| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
OpenGL" into jb-mr1-dev
* commit 'f58475b5ae4ccb3a31c05c79da8b2914c62a3510':
Add runtime debugging capabilities to OpenGL
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
jb-mr1-dev
* commit '60393d45207b6548e1f61ca104fa59aecee87d30':
Add runtime debugging capabilities to OpenGL
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
actually does" into jb-mr1-dev
* commit '23bcd8d298597659622919027c9ea921d5eed513':
Update comments to reflect what the code actually does
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
into jb-mr1-dev
* commit '825a9a2dcd1b3e139dd0677ff46f966fb23f963c':
Update comments to reflect what the code actually does
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I2613aa32c29eddc52a00090656c1bd11f9f5732b
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
apps" into jb-mr1-dev
* commit 'b96fe08540dcf7e90be56919ea9863f687da779c':
Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I53ac91a9ce07b5dd5f2ee0e3cc5b65b6402f9229
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
context" into jb-mr1-dev
* commit '1e83690c6030b33c7776fa65cb57132d5e2d0b40':
assert -eng builds when calling a GL function without a context
|
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 7241626
Change-Id: I0f1f9361e75e9186af8cff8d98a7d2224b266765
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
jb-mr1-dev
* commit '2f45d7464a55d7a91da6fcd6f8cf1b11e395d029':
EGL: add the EGL_ANDROID_framebuffer_target enum
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
jb-mr1-dev
* commit '363847d498bffe0e2d8e7b8aba693bb402513413':
EGL: expose the EXT_create_context_robustness ext
|
| |\ \ \
| | |/ / |
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* commit '500407a2c07ced40c36e7356574a47bcec9c2fd9':
log an error when eglCreateContext() fails in an inconsistant way
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
this will help debugging bug: 7216919
Change-Id: I54ac65f20c5ed55cc93a5cbc5350fadfb0fcb804
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
* commit '98838aa0836518b7397cbfe763f34305e3387a5f':
Return back-end result from eglDestroyImageKHR
|
| |/
| |
| |
| | |
Change-Id: I0e972b778f9802c28f52092bb9af087285833e0b
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
This change makes the maximum EGL blob cache key size configurable via a
BoardConfig.
Change-Id: Ic669cd25fc743662bd4f13aab62354fc3d54560c
|
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| | |
* commit '6e820eec21917f8e25c40dbc8b972468535af0e8':
EGL: do not use sparse files for shader
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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>
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| | |
so says the EGL specification, section 3.2
Change-Id: Ice60530f8f6e47b4e14e06d2ab8eba799a7688a6
|
|/
|
|
|
|
|
|
| |
this allows us to enable h/w acceleration on low-end
devices while keeping memory usage down.
Bug: 6557760
Change-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9
|
|
|
|
|
|
|
|
| |
it should read OpenGL_ES (with an underscore)
Bug: 6529643
Change-Id: I7caf07793bffe5a8dcceaff496a222077486fc87
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
called
this debug property is evaludated at eglInitialize() time.
Change-Id: Ie439e4aac87f7fdc6ab2add86183d6d042f3ee8b
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This change adds ATRACE call tracing to BufferQueue,
SurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL.
Change-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
this is possible now that we support only a single
EGL implementation. this allows a large code simplification.
Change-Id: I7a6b9db4c5d60f4407c6061e7a68729af63d5242
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
when increasing MAX_NUMBER_OF_GL_EXTENSIONS to 256
we also needed to create all the corresponding wrappers.
Change-Id: I90edaaf0885ccdfab48e7a1396bcf88e039cfb25
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/157220
Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
|