| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
setprop debug.egl.debug_forceUseFile 1: always use file
setprop debug.egl.debug_maxFileSize <int MB>: exit when reached
setprop debug.egl.debug_filePath <path>: may need to make the file
writable first.
setprop debug.egl.debug_port <unsigned short>
setprop debug.egl.debug_proc <proc cmdline>: to match debuggee process
Change-Id: I34ca1f3092f3abf17e2ded9d1689d0cdef6e07e8
Signed-off-by: David Li <davidxli@google.com>
|
|
|
|
|
| |
Change-Id: I493e9bff431bd939f4e80e1e9c614dd557307fa2
Signed-off-by: David Li <davidxli@google.com>
|
|
|
|
|
|
|
| |
Add missing member initialization for reference counter, used to determine
if a context is ready.
Change-Id: I45f81177ac2851129681f827afe015b60b3cd73c
|
|
|
|
|
|
|
|
|
|
|
| |
Move EGL objects (contexts, surfaces, ...) collection from global
static into EGL display object. Since EGL implementation currently
supports only one display, this doesn't change current logic. This
aims at preparing for next coming changes in eglTerminate() to
support per-display cleanup.
Bug: 4152714
Change-Id: I5e424781b89c3c275f9922f943463d5f6b1f6bc6
|
|
|
|
|
|
|
|
|
| |
Check for initialized display, and set EGL error to EGL_NOT_INITIALIZED
whenever it isn't, for all EGL functions taking an EGLDisplay as argument
and requiring it to have been initialized.
Bug: 3366011
Change-Id: Ib1d8a3a207257995518f4430fe97f8c406c7fc13
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
In message loop, use select to check for available commands from client,
rather than always expecting commands in eglSwapBuffers.
Change-Id: Ifc34dd77c2528c8b9c71f594e3eda4f93400cd2b
Signed-off-by: David Li <davidxli@google.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
call takes a very long time" into honeycomb-mr1
* commit '9405d98705db1c8102b77ef960f344ac416d165c':
fix [4107131] nvidia driver call takes a very long time
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We were leaking all EGLSyncKHR objects, over time the list
would grow and become very slow to operate on.
Bug: 4107131
Change-Id: I6c82daf49fe3189d04550781d64d57c30c95f552
|
|\ \ \
| |/ /
| | /
| |/
|/|
| |
| | |
into honeycomb-mr1
* commit '0ea44ac0deb5cc95d60dd512c3a8f6a1bb69f5d1':
SurfaceTexture: disallow unsupported uses.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change makes the ANativeWindow_lock NDK function error out if it is
passed an ANativeWindow with a concrete type that is not Surface. It
also makes eglCreateWindowSurface fail if it is passed a
SurfaceTextureClient as its 'window' argument.
Bug: 4087277
Change-Id: Ie68c50c52d88f72d8a387f6c094908044c83a88c
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Send VBO related commands to client, which tracks the state.
Maintain index buffer content and vertex attrib pointer/buffer state on server.
During glDrawArrays/Elements, send user memory data to client.
Change-Id: Ia920e90479329b301ae4b5735e833eeb20293c94
Signed-off-by: David Li <davidxli@google.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also added timing mode option using utils/Timers.h.
Factored out common code to reduce size.
Improved Protobuf message.
Uploads data from glBufferData and glBufferSubData.
Change-Id: Iaae5e706235d942df81c7eada7223fb0b0583911
Signed-off-by: David Li <davidxli@google.com>
|
|/
|
|
|
|
|
|
|
|
| |
Use debug.egl.debug_proc property to match process cmdline.
Binds to TCP:5039 and waits for client connection.
Sends function call parameters, textures and shaders using Protobuf.
Java Eclipse client plug-in is next.
Change-Id: I183b755263663f87e86dde1ad12f527d0445fd57
Signed-off-by: David Li <davidxli@google.com>
|
|
|
|
|
|
|
|
| |
HAVE_ANDROID_OS was defined as "1" for targets, but never defined as "0"
for non-targets. Changing them to #ifdef should be safe and matches
all the other uses of HAVE_ANDROID_OS throughout the system.
Change-Id: I82257325a8ae5e4e4371ddfc4dbf51cea8ea0abb
|
|
|
|
|
|
|
|
|
| |
This changes the clearError function in the EGL wrapper layer to simply
call eglGetError(). That should clear any pending errors from all the
underlying EGL implementations, which is needed to correctly report the
error for the most recently called EGL function.
Change-Id: Iad19c69f0c5305e873f3c2f96d353280d31f7b61
|
|
|
|
|
|
|
|
| |
Clear the current thread error state on entry to API functions as
mandated by the EGL 1.4 specification, section 3.1. glGetError
returns additional information about the "most recent EGL function".
Change-Id: Ic24c64b39294ffc1a4e43fa72663e076b9d7decf
|
|
|
|
|
|
|
|
| |
Return wrappers from GetProcAddress for glEGLImageTargetTexture2DOES
and glEGLImageTargetRenderbufferStorageOES which unwrap the EGLimage
handle before calling through to the implementation.
Change-Id: I2f5b180ab3ccdb28a4f510a2bd8c2eee941a84df
|
|
|
|
|
|
|
|
| |
Add EGL_KHR_gl_texture_cubemap_image and EGL_KHR_gl_renderbuffer_image
to the static EGL extension string since these require no new APIs
beyond what is already required.
Change-Id: I2d1fde86b19bb9eee46b3b977f51784a17cfcc3c
|
|
|
|
|
|
|
|
| |
eglMakeCurrent() would only deref the previous surfaces if the old and
new contexts were the same. eglTerminate() should not touch TLS.
eglReleaseThread() needs to unbind the current context.
Change-Id: I213b8be77b1a23b5a8a6afaac60643662c8aa010
|
|\
| |
| |
| |
| |
| |
| | |
crashes inside eglQueryContext on GB/Crespo" into gingerbread
* commit '054ae78245fe9b4c14bbc372ae77cd0a977ded73':
fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo
|
| |
| |
| |
| |
| |
| |
| | |
eglQueryContext(..., EGL_CONFIG_ID, ...) is dereferencing an uninitialized pointer
due to a typo.
Change-Id: I100addf3150f19cb6dfbce9987fb5239dd240878
|
|\ \
| |/
| |
| |
| |
| |
| | |
EGLNativeWindowSurface\'s format in EGL" into gingerbread
* commit '0484a673c5839d2be9e615e52c6a45febdf1127b':
[3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(there are multiple bugs this should fix)
we now use the EGL_NATIVE_VISUAL_ID of a config to set
the ANativeWindow's format from eglCreateWindowSurface(),
this guarantees that the surface's format will match
whatever EGLConfig the user chose.
this should fix all current and future config/surface format
mismatch and allow users to easily select 32-bits surfaces.
Change-Id: I3835d0eb70c75eeecded3c3509a0a8207554c98b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
pointer for some GL extensions
We just make sure eglGetProcAddress() will return NULL for
glEGLImageTargetTexture2DOES
glEGLImageTargetRenderbufferStorageOES
which is better than returning the address of the wrong implementation.
the correct fix is more involved.
Change-Id: I585a1f40e564f862e5dd382224609ccd069cd3b5
|
| |
| |
| |
| |
| |
| |
| |
| | |
Enable with:
adb shell setprop debug.egl.trace 1
Change-Id: Icfbc795f5260141510975228e72234e9aab56a85
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
should return a valid error if no context is bound." into gingerbread
Merge commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e'
* commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e':
better fix for [3028370] GL get error should return a valid error if no context is bound.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
context is bound.
it turns out that we cannot return INVALID_OPERATION from glGetError() because the
GL spec says that it must be called in a loop until it returns GL_NO_ERROR.
now, we always return 0 from GL functions called from a thread with no
context bound. This means that glGetError() will return NO_ERROR in this case,
which is better than returning a random value (which could trap the app in a loop).
if this happens in the main thread of a process, we LOG an error message once.
Change-Id: Id59620e675a890286ef62a257c02b06e0fdcaf69
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
error if no context is bound.
Merge commit '9c4d7d677097981a349c718902e29050dad3d59f'
* commit '9c4d7d677097981a349c718902e29050dad3d59f':
fix [3028370] GL get error should return a valid error if no context is bound.
|
| |
| |
| |
| |
| |
| |
| | |
glGetError() will now always return GL_INVALID_OPERATION if called from a thread
with no GL context bound.
Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
gingerbread
Merge commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124'
* commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124':
fix small bug in EGL error management
|
| |
| |
| |
| |
| |
| |
| | |
make sure to clear our EGL implementation's error when returning
an error from an underlying implementation
Change-Id: Ibce4726cef1f900e4c7f16002345d7a07f8cdf41
|
| |
| |
| |
| | |
Change-Id: I38c87803e32030918f2deb06381eabce0faa870c
|
| |
| |
| |
| | |
Change-Id: Ie2771b5869c9c8dcf5ecf9318e2ee6d4d1cd5cc9
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
gingerbread
Merge commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0'
* commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0':
Fix a few typos in EGL wrapper
|
| |
| |
| |
| | |
Change-Id: I3b815ca6ec334ca12088f9721eece33df42b2e46
|
| |
| |
| |
| | |
Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
|
| | |
|
|/
|
|
| |
Change-Id: I7758bc7d6dc2e70fc3590fe939ebf71fbcde7059
|
|
|
|
|
|
|
| |
there was a problem with eglGetProcAddress() which would only work with
GLES 1.x contexts.
Change-Id: I4747671cbf7ed469bb471a377f1d6f36550d24df
|
|
|
|
| |
Change-Id: I5027a27b43c0dd449a404024087853ca05bb8e4e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eglQuerySurface().
rework how our EGL wrapper manages EGLConfig:
- we now store the EGLConfig with the EGLSurface and EGLContext
so that we can have easy access to it from eglQueryContext
and eglQuerySurface.
- EGLConfig now are an index into a sorted table of egl_config_t,
we use a binary search to retrieve our EGLConfig (the index) from
the implementation's EGLConfig.
- egl_config_t keeps track of the implementation's index,
EGLConfig and CONFIG_ID as well as our CONFIG_ID.
In many ways, this implementation is simpler and more robust, as it doesn't
assume anything about the number of implementations nor what EGLConfig is
made of (the previous code assumed EGLConfig didn't usem more than 24-bits).
Change-Id: Id5abe923aacb6e1fd2b63bd8c15d7b04ae824922
|
|
|
|
| |
Change-Id: I6b0ec5ef86abdd4e9083067ba297107cfb094df3
|
|
|
|
|
|
|
| |
the EGL specification states that this should be treated as though it was
an empty list terminated with EGL_NONE.
Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
|
|
|
|
|
|
|
| |
also added a ctor to initialized it in case we use it ont he stack
one day.
Change-Id: I2736b9bce3d8ba3b74fd029de4c18cca2cdbbf60
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we imlpemented the standard semantics for
eglInitialize / eglTerminate, which are that
eglInitialize may be called any number of times,
but the first call to eglTerminate will terminate
the display.
Now we follow reference-countins semantics, which
means that eglTerminate will only terminate the
display when the reference count returns to zero.
This change allows EGL to be used by multiple
independently written modules in the same process.
(Otherwise there is no way for the independent
modules to coordinate their use of the display.)
|
|
|
|
|
| |
there is now a lock protext a perticular display. it's held during
initialization and destruction.
|
|
|
|
| |
the spec
|
|
|
|
|
|
| |
add a way to convert a mapped "pushbuffer" buffer to a gralloc handle
which then can be safely used by surfaceflinger, without including
gralloc_priv.h
|
| |
|