| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When pausing we want to do three separate things, in order:
+ release the EGL surface
+ optionally release the EGL context
+ optionally terminate Egl
Previously we would only do these things if we had an EGL surface. But
it is possible that we don't have an EGL Surface, but still have an EGL
context. And in that situation we still want to release the EGL context.
Now we check the preconditions for the three cases separately.
Bug: 6338235
Change-Id: I804683b3d5c136cc98ea3f5051067eea18152ddf
|
|
|
|
|
|
|
| |
Otherwise the waiters might not wake up, leading to ANRs.
Bug: 6307843
Change-Id: I0646b4e8368f80dbff46342f75709992796973fd
|
|
|
|
|
|
|
|
|
|
| |
Assume a failure in eglMakeCurrent occurs because the SurfaceView
surface has been destroyed.
See b/6257956 for an example of this failure happening during rotation
stress testing.
Change-Id: I4618703b5291aba3a3f0c6bd83c3435a67b97d33
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A careful reading of the EGL spec, as well as experience with many
different EGL drivers, has shown that it is error prone to attempt to
discriminate between different error conditions.
We now treat any error besides EGL_CONTEXT_LOST as an indication that the
EGL context is in a bad state, most likely due to the window manager
having removed the underlying surface flinger surface.
In addition, we changed the way we deal with this kind of error:
Previously we would ignore the error and keep rendering. But if the
EGL context and surface has become invalid, it would be better to
stop drawing. We now stop drawing until the surface view surface is
recreated.
See b/6032663 for an example of this problem affecting the GMM app,
but note that GMM is using their own version of GLSurfaceView, so this
change won't help them directly. They'll have to make a similar change
to their version of GLSurfaceView.
Change-Id: Iffe3e1e3a3c7a91d03140fd34391eadeaecf777e
Signed-off-by: Jack Palevich <jackpal@google.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Packages can be enabled/disabled per user.
This requires maintaining stopped/launched states and
enabled / disabled components and packages per user.
Refactored pm.Settings and PackageSettingsBase to keep
track of states per user.
Migrated the stopped-packages.xml to users/<u>/package-restrictions.xml
Changed intent resolution to handle individual user restrictions.
Bunch of IPackageManager calls now have a userId argument.
Make AppWidgetService handle removals of packages.
Added some tests for pm.Settings and PackageManager.
Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change allows Adreno GPUs to have multiple EGL contexts. We had
to limit this in earlier versions of Android due to limitations in
the Adreno GPU driver (only 8 EGL contexts allowed system wide.)
That brand of GPU has improved its EGL drivers to support multiple
EGL contexts in more recent versions of their drivers used on more
recent versions of Android.
Bug: 6142005
Change-Id: Id3030466be9a3d9fbe728f1785378c1f05da98fe
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Certain EGL device drivers are generating this error, so we need to
survive it. (It's not clear from the EGL spec whether this is a
legitimate error code, but since it's being generated we need to
handle it.)
Remove logging of expected errors from elSwapBuffers. We expect these
errors to happen, and are handeling them by ignoring them.
No need to clutter the logs.
Bug: 6083241
Change-Id: If17dcfbb68d3009b92cf95a448728ccb47023b51
|
|
|
|
|
|
|
| |
This patch adds a function setGlDebugLevel() to libEGL, and
exposes it to the Java layer at android.opengl.GLUtils.enableTracing().
Change-Id: Ia5abb130bc32fcfe3ab25b0a0a5283a54c54f357
|
|
|
|
| |
Change-Id: I140d291e520097b1148930f736823650e08488f7
|
|
|
|
| |
Change-Id: Id443ec5c99bb4d7653905f1be1f72a029e0cf087
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch enables tracing of vertex attribute data that
is specified using glVertexAttribPointer().
At the time the glVertexAttribPointer() call is made, we
only receive a pointer in client space, without any indication
of the size (# of attributes). This size is known only at
the time of the glDraw() call.
This patch generates a new message glVertexAttribPointerData()
when a draw call is issued that contains the vertex attribute
data.
A glDrawArrays() call directly gives the size of data to copy.
A glDrawElements() call gives the indices to copy. In such a
case, all data between the min & max indices drawn are copied
and sent to the host. To support glDrawElements() with an
element array buffer, this patch also adds state that maintains
a copy of all element array buffers.
Change-Id: I434da794a0aa9ada8e7474e219ffb1d79b183ecf
|
|/
|
|
|
|
|
| |
- remove unneeded include deps
- remove some hardcoded include paths
Change-Id: Ifae0e2b2d738e0f94f8525c45be78f4227ce1673
|
|
|
|
|
|
|
| |
This change adds ATRACE call tracing to BufferQueue,
SurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL.
Change-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7
|
|
|
|
| |
Change-Id: Ia823dbc56aab2a0b8a6063df4348fe6baac124c6
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, the trace API passes the pointers that need to be
patched up via 32 bit integers. Such code will not be 64 bit safe.
This patch sends all pointers in a separate array of pointers
for the fixup calls to read from.
Change-Id: If975333f11a6f6f9a74fba57de328affaed452a5
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
Attach the buffer that is passed with glBufferData
and glBufferSubData to the proto buf.
Change-Id: I1b4c1172d405736b06cb0a356a6e241e1d60c4d5
|
| |
| |
| |
| | |
Change-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89
|
|/
|
|
| |
Change-Id: I1194f04085637d5c384e134967249430cc43b6ee
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
For each gl function, trace both the thread and wall clock
times.
Change-Id: I32b6caa67fa50bf915dab89b3c5021ee82e28d55
|
|\ \
| |/
|/| |
|
| |
| |
| |
| | |
Change-Id: Ib22005c7ed9923120089a1f1c806bca55bb90967
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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 patch updates the trace information for all glUniform*() calls
to have the right data (the actual uniforms that are passed).
In addition, as soon as a program is linked, information regarding
all the active attributes and uniforms is passed on to the debugger.
Change-Id: Icfbc6722789b42c413a845cf546577fa6de7da2b
|
| |
| |
| |
| |
| |
| |
| | |
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
|
|
|
|
| |
Change-Id: I58ced7225fac79ec636a65da4883614a5dce6dff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Export trace information via abstract Unix Domain Socket (UDS).
This allows tracing of applications without INTERNET permission,
and should be faster as well.
Change-Id: Iabb67fcc2bc2484afd8128af07dca723b81c52c6
|
|\ \ |
|
| |/
| |
| |
| | |
Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
|
|/
|
|
| |
Change-Id: If900fcc50f9ffc424e270cb6063b16a2d7bc04d3
|
|
|
|
| |
Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
|
|
|
|
| |
Change-Id: I1c1deb8c6026ecf1fa0ed5287ccf601416eba6dc
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/157220
Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/157065
Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
|
|\ |
|