Merge commit '6808e6a867ba0b32f8bd97163e134c2866423f01' into gingerbread-plus-aosp
* commit '6808e6a867ba0b32f8bd97163e134c2866423f01':
Fix a few typos in EGL wrapper
Merge commit 'edbb8083a815e9d911f8e659fc5c293543fdf502' into gingerbread-plus-aosp
* commit 'edbb8083a815e9d911f8e659fc5c293543fdf502':
add a fps counter to sanangeles demo
Merge commit 'b3aaf3baa7fd811af19835bbc8837a88984c160a'
* commit 'b3aaf3baa7fd811af19835bbc8837a88984c160a':
fix [2931718] glDrawArrays skips a triangle when more than 70 vertices are used.
Merge commit '43647129d676e8c802850ca493f2ebc6064a4a1a'
* commit '43647129d676e8c802850ca493f2ebc6064a4a1a':
fix [2931161] crash in labyritnth when completing a level
Merge commit 'bccfcd95d3cc4029c1ed8514d31436a857283873' into gingerbread-plus-aosp
* commit 'bccfcd95d3cc4029c1ed8514d31436a857283873':
fix [2931718] glDrawArrays skips a triangle when more than 70 vertices are used.
a typo prevented the last 2 vertices of a batch to be copied to the front of
the next batch. Instead, the 2 very first vertices were used.
Change-Id: I3c344784dac1cef64df2fb6f6efb2f901cc788db
Merge commit '17da06631041f9f2237738fb673a74a85b1d9cf4' into gingerbread-plus-aosp
* commit '17da06631041f9f2237738fb673a74a85b1d9cf4':
fix [2931161] crash in labyritnth when completing a level
Merge commit 'a4ed1c6788ead0324106d76f497233ee42a1f1ac'
* commit 'a4ed1c6788ead0324106d76f497233ee42a1f1ac':
fix [2912927] Can't get NV_draw_path extension to work
Merge commit '1e4aa48cfd2b2c13c4f7ace8c9fcb33adfa18661' into gingerbread-plus-aosp
* commit '1e4aa48cfd2b2c13c4f7ace8c9fcb33adfa18661':
fix [2912927] Can't get NV_draw_path extension to work
Merge commit '553a333d4446bb34330da92f02daa515dc597939'
* commit '553a333d4446bb34330da92f02daa515dc597939':
improve a bit the implementation of eglGetProcAddress
Merge commit '603a34ee30e7d14ddc02c1beb7bca915622ae4bf' into gingerbread-plus-aosp
* commit '603a34ee30e7d14ddc02c1beb7bca915622ae4bf':
improve a bit the implementation of eglGetProcAddress
h/w acceleration is not supported through software gl + copybit anylonger,
instead, h/w opengl must be used. in the system compositor, a new h/w
composition api will be introduced to allow h/w accelerated composition with
overlays and/or 2D blocks.
Change-Id: I04949cb074ba8c4d637319ace23497c16a58d5bf
Merge commit 'eb248a58fabac31873982e4f389ba81981f4041f'
* commit 'eb248a58fabac31873982e4f389ba81981f4041f':
fix [2870926] Issue 9802: EGL wrapper has not been implemented correctly for eglQuerySurface().
Merge commit '55a76dd8d9996c1e93762d7611789aea696d536c' into gingerbread-plus-aosp
* commit '55a76dd8d9996c1e93762d7611789aea696d536c':
fix [2870926] Issue 9802: EGL wrapper has not been implemented correctly for 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
Handle rotation from portrait to landscape by restarting test if not
finished.
Don't write blank line to csv file.
Change-Id: I154443138817bcec9530123c8388fcf659632336
Merge commit '5219a82f9d64a7d13401dcf9a0703a0ca2cd842d'
* commit '5219a82f9d64a7d13401dcf9a0703a0ca2cd842d':
Fix a bug that prevented the creation of EGL shared contexts.
Merge commit '8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d' into gingerbread-plus-aosp
* commit '8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d':
Fix a bug that prevented the creation of EGL shared contexts.
Merge commit 'c6e1d88022db800773401c16803e1ab27fd01a7e' into gingerbread-plus-aosp
* commit 'c6e1d88022db800773401c16803e1ab27fd01a7e':
Introduce official public NativeWindow type.
Not yet hooked up to anything in the NDK, but requires renaming
the existing android_native_window_t type everywhere.
Change-Id: Iffee6ea39c93b8b34e20fb69e4d2c7c837e5ea2e
Merge commit 'cefb88587443323d147e687ff78eae9195eb584c'
* commit 'cefb88587443323d147e687ff78eae9195eb584c':
Added support for the GL_TEXTURE_EXTERNAL target
Merge commit '28333315c6f62b303de2ec0ac9e48158ed419f06' into gingerbread-plus-aosp
* commit '28333315c6f62b303de2ec0ac9e48158ed419f06':
Added support for the GL_TEXTURE_EXTERNAL target
the EGL specification states that this should be treated as though it was
an empty list terminated with EGL_NONE.
Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
Merge commit 'fb234bbe5e7cbae42b4fc8f4ab353ba561599db2' into kraken
* commit 'fb234bbe5e7cbae42b4fc8f4ab353ba561599db2':
Notify user regarding invalid number during MO call.
Build software AGL library with correct get_tls() macro for ARMv7 based platforms
Fix glReadPixels() to verify that both x and y are non-negative.
glEGLImageTargetRenderbufferOES() pass the wrapped EGLImage
to the implementation, rather than the unwrapped one.
Change-Id: I149f9ed73e6ab9089110600e1db4311ba7a8c83a
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.)
A typo caused GL_AMBIENT_AND_DIFFUSE to only set the the ambient color.
Fix another typo which caused the viewer position to be wrong for
specular highlights.
Switch back to eye-space lighting, since there are still some issues
with some demos (San Angeles in particular).
Duplicate ARCH_ARM_HAVE_TLS_REGISTER BoardConfig to proprocessor
HAVE_ARM_TLS_REGISTER define from Bionic's libc Android.mk to ensure that
OpenGL libraries (libEGL, libGLESv1_CM, libGLESv2, libGLES_android) use the
correct codepath in bionic_tls.h for accessing the TLS address
Merge commit '6d0f6c78037225ef5648d10e45a513a2e7c612b5' into eclair-plus-aosp
* commit '6d0f6c78037225ef5648d10e45a513a2e7c612b5':
DO NOT MERGE A library for encoding and decoding ETC1 textures.
The ETC1 compressed texture format is commonly
supported by OpenGL ES 2.0-capable devices.
This change adds a host-only version of the library. It is used by
the etc1tool.
The build system does not honor user tags on apps,
and setting it is misleading.
This removes the confusion by making the makefiles
behave like they read.
Change-Id: I7c5feba1c7d07f915b97dd098584f29938a4c885
Something happened to the line endings, adding
a blank line after most lines of text. I
repaired the damage, but in the process some
blank lines have been added / removed.
Adds support for formerly-unimplemented methods:
glCurrentPaletteMatrixOES
glLoadPaletteFromModelViewMatrixOES
glMatrixIndexPointerOES
glWeightPointerOES
The bulk of the changes are related to implementing the two PointerOES
methods, which are implemented pretty much the same way as the existing
Pointer methods were implemented.
This change also changes the way glPointSizePointerOES is implemented,
making it act like all the other Pointer methods. (Previously it was
not handling non-direct-buffer arguments correctly.)
Fixes bug 2308625 "Support matrix palette skinning
in JSR239 and related APIs"
Also updated GLLogWraper to fix two bugs in GLLogWrapper that were
discovered while testing matrix palette skinning support:
a) Handle trying to print the contents of null-but-enabled buffers.
(It's not legal to draw with null-but-enabled buffers, and
in fact some OpenGL drivers will crash if you try to render in this
state, but there's no reason the GLLogWrapper should crash while trying
to debug this situation.
b) Don't read off the end of a vertex buffer with non-zero position when
printing the entire contents of the vertex buffer. Now we only print from
the current position to the end of the buffer.
Provide a new method, GLSurfaceView.setEGLContextClientVersion. Clients
call this method to define which level of OpenGL ES support they want.
This method only affects the default behavior of GLSurfaceView. If clients
have supplied their own EGLContextFactory or EGLConfigChooser then they
are on their own if they want to create an OpenGL ES 2.0 context.
This API is currently hidden.
Update the gl2_java test to use this new API.
Update the gl2_java test's AndroidManifest.xml file to indicate that
it requires OpenGL ES 2.0.
Merge commit 'da5e90bee443129511e231e9078a134626b87541'
* commit 'da5e90bee443129511e231e9078a134626b87541':
fix [2236865] STOPSHIP: bump soft gl and egl minor version number
Merge commit '66b5d902a29e08237f16be53a84f9c2472df8493' into eclair-mr2-plus-aosp
* commit '66b5d902a29e08237f16be53a84f9c2472df8493':
fix [2236865] STOPSHIP: bump soft gl and egl minor version number
Merge commit '274072089ceff6eacb9ccfb59290a18f43739c87' into eclair-mr2
* commit '274072089ceff6eacb9ccfb59290a18f43739c87':
fix [2236865] STOPSHIP: bump soft gl and egl minor version number
Merge commit '274072089ceff6eacb9ccfb59290a18f43739c87' into eclair-plus-aosp
* commit '274072089ceff6eacb9ccfb59290a18f43739c87':
fix [2236865] STOPSHIP: bump soft gl and egl minor version number
Merge commit 'ac94fbd081450ae7f208e4525b23b36d90d382e0'
* commit 'ac94fbd081450ae7f208e4525b23b36d90d382e0':
Capture failure of copybit->stretch()
Fix obvious typo bug in egl.cpp
LocationManagerService: Fix race when removing LocationListener
Don't return when blocking is true.
Fix of compatibility with multifunction extUSB adapters.
Fix documentation example, per issue 895 on android.googlecode.com
Merge commit 'ba37ea550d97b753fc74049d22f5e752d4b0185f'
* commit 'ba37ea550d97b753fc74049d22f5e752d4b0185f':
part of fix [2186418] switch passion to 24-bits framebuffer
Merge commit '36fe3eeaa056ff13455c0df73b495b2bae8c1469' into eclair-mr2
* commit '36fe3eeaa056ff13455c0df73b495b2bae8c1469':
part of fix [2186418] switch passion to 24-bits framebuffer
Merge commit '9a54d7dddcbc982d644c627693dc39fb2cb5c0fb' into eclair-mr2
* commit '9a54d7dddcbc982d644c627693dc39fb2cb5c0fb':
fix [2236832] software OpenGL ES driver doesn't work on sholes
Merge commit '21977eb0f1d22497d0beed0492e579f953a56552' into eclair-mr2
* commit '21977eb0f1d22497d0beed0492e579f953a56552':
fix [2231527] Compatibility with SpaceJunk game (OpenGL)
Merge commit 'd1d744cdf4b08c8ef969790bae305c82ae783f4e'
* commit 'd1d744cdf4b08c8ef969790bae305c82ae783f4e':
fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
Merge commit '8637759a1d34a4adda292579d5f8790587659235' into eclair-mr2
* commit '8637759a1d34a4adda292579d5f8790587659235':
fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
we lost the concept of vertical stride when moving video playback to EGLImage.
Here we bring it back in a somewhat hacky-way that will work only for the
softgl/mdp backend.
Merge commit '78383abf76e7daf8c1968d2e9a29a1ba354edb2e'
* commit '78383abf76e7daf8c1968d2e9a29a1ba354edb2e':
Turns out the SGX driver is correct and the bug was in this test.
Merge commit 'c64e9346785a1a4fc95ec6cf27da8a5193a2dfbc'
* commit 'c64e9346785a1a4fc95ec6cf27da8a5193a2dfbc':
fix[2222341] Soft reset while going back from camcorder settings
Merge commit '77bd91f8af44867935ea2df22f69fb244b009b94' into eclair-mr2
* commit '77bd91f8af44867935ea2df22f69fb244b009b94':
Turns out the SGX driver is correct and the bug was in this test.
Merge commit 'd01767f8b7038108f9125cd2122b117db9919824' into eclair-mr2
* commit 'd01767f8b7038108f9125cd2122b117db9919824':
fix[2222341] Soft reset while going back from camcorder settings
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
Merge commit '894449ac461e69cd40f10e9d3644555357a5ed82'
* commit '894449ac461e69cd40f10e9d3644555357a5ed82':
update line test to expose some bug on SGX530 ed4
Merge commit '5dc7a21cbbd4af908e39e55e5ca7ab14cda25d4a' into eclair-mr2
* commit '5dc7a21cbbd4af908e39e55e5ca7ab14cda25d4a':
update line test to expose some bug on SGX530 ed4
Merge commit '64d3f44c7bf5a6e80be419df5850ef60fec216b5'
* commit '64d3f44c7bf5a6e80be419df5850ef60fec216b5':
fix [2143798] Need to figure out how to do video
Merge commit '7bde36e64e66c81f0150d0372e1357a31f4ec704' into eclair-mr2
* commit '7bde36e64e66c81f0150d0372e1357a31f4ec704':
added GL test for textured lines
Merge commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694' into eclair-mr2
* commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694':
fix [2143798] Need to figure out how to do video
in the case where we fade a 32-bits surface (ie: GL_MODULATE w/ a,a,a,a + blending),
we first make a copy of the background into a RGB buffer, then we blend the 32-bits
surface as usual (without the alpha component), and finally blend the copy of
the background on top with 1-a. This uses a lot of bandwidth, but no CPU time.
Use EGLImageKHR instead of copybit directly.
We now have the basis to use streaming YUV textures (well, in fact
we already are). When/if we use the GPU instead of the MDP we'll
need to make sure it supports the appropriate YUV format.
Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported
Merge commit '8f89a1a360465e08e81ceca3cb3042606a98668b' into eclair-mr2
* commit '8f89a1a360465e08e81ceca3cb3042606a98668b':
Add size checks for glBufferData and glBufferSubData
Without the size checks it's possible for calls to glBufferData
and glBufferSubData to read off the end of the Buffer object's
data, which can cause page faults.
Fix end-of-line characters for the "spec" files. (That's why
every line of these files is changed.)
Enhance our code emitter to properly handle bounds checks for
possibly-null pointers.
Merge commit '18dc8826a2c7244a7a61c9c53113516416db4714'
* commit '18dc8826a2c7244a7a61c9c53113516416db4714':
Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
Merge commit 'b34d5d527596102ae7a040d787e4d8c336bf192b' into eclair-mr2
* commit 'b34d5d527596102ae7a040d787e4d8c336bf192b':
Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
Merge commit '220f052f6103655e08cba6cfb1dc542b81ffab11'
* commit '220f052f6103655e08cba6cfb1dc542b81ffab11':
one step towards fixing [2071412] work around mdp 32-bits fade limitation
Merge commit '639d69fe8799ac2fa0bbf7560229531377ccc0f4' into eclair-mr2
* commit '639d69fe8799ac2fa0bbf7560229531377ccc0f4':
one step towards fixing [2071412] work around mdp 32-bits fade limitation
Merge commit '1ed0e43dac155db048ccc9152dc9425506099957'
* commit '1ed0e43dac155db048ccc9152dc9425506099957':
fix [2187212] add support for GLESv2 dispatch based on TLS
Merge commit '69fba87ac16d1c10da81fc3213ae169c755797f4' into eclair-mr2
* commit '69fba87ac16d1c10da81fc3213ae169c755797f4':
fix [2187212] add support for GLESv2 dispatch based on TLS
Instead of using a different function pointer table for ES 1.x and ES 2.x,
we use a single one that is the union (sort|uniq) of both tables. Two
instances of this table are initialized with pointers to GL ES 1.x and GL ES 2.x
entry-points.
When a context is created, we store its version number and when it is bound to a
thread we set the approruiate table based on the stored version.
This introduce no penalty while dispatching gl calls to the right API version.
[Pending Dr No approval for MR1]
Merge commit '0b2dd95d2ead61241688a121ae1c6a5092149ef6'
* commit '0b2dd95d2ead61241688a121ae1c6a5092149ef6':
Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
Merge commit '94f3a36326ddecaa09787d795451b0a229fe111c'
* commit '94f3a36326ddecaa09787d795451b0a229fe111c':
Remove STOPSHIP BT logging.
BT API security audit: fix a couple of permission mistakes.
Fix issue #2175693: Add vmallocinfo to dumpstate
add a way to easily catch and log GL errors (compile time flag)
GPS: Fix problem with SUPL when SUPL APN is already active.
Import revised translations. DO NOT MERGE
Fix issue 2174002: After rejecting Call when device ringtone is mute and playing music, audio is not transfered to BT device.
Import revised translations. DO NOT MERGE
Merge commit '98b3def2983e78409002cf406574bbc8eeef8bfd' into eclair-mr2
* commit '98b3def2983e78409002cf406574bbc8eeef8bfd':
Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
Merge commit '7d638292969687ed4557d36e741e1275d2052fb0'
* commit '7d638292969687ed4557d36e741e1275d2052fb0':
Change way we choose EGL surfaces to be compatible with the native
Merge commit '846322a9ae5ef8155cca0059d3f64d718516ca13' into eclair-mr2
* commit '846322a9ae5ef8155cca0059d3f64d718516ca13':
add a way to easily catch and log GL errors (compile time flag)
Merge commit '9d6a685ba939f413a8d3e1e97627593aa1cdf6cb' into eclair-mr2
* commit '9d6a685ba939f413a8d3e1e97627593aa1cdf6cb':
fix [2168528] enable glTexImage2D code path in SF for software-only buffers
fix [2168531] have software-only gralloc buffer side-step the HAL
fix [2167050] glTexImage2D code path buggy in SurfaceFlinger
When EGLImage extension is not available, SurfaceFlinger will fallback to using
glTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an
extra copy. However this code path has never been exercised and had some bugs
which this patch fix.
Mainly the scale factor wasn't computed right when falling back on glDrawElements.
We also fallback to this mode of operation if a buffer doesn't have the adequate
usage bits for EGLImage usage.
This changes only code that is currently not executed. Some refactoring was needed to
keep the change clean. This doesn't change anything functionaly.
executables have calls to some shared libraries without explicitly linking
them. Currently it works as linker links these libraries via dependencies of
other libraries. This is fragile and not the right thing to do.
Merge commit '4ac45597fb70ca4f268cb1920fcb2de61aff4a3d' into eclair-mr2
* commit '4ac45597fb70ca4f268cb1920fcb2de61aff4a3d':
a simple test app for gralloc
Use EGLUtils::selectConfigForNativeWindow to select a legitimate
configuration. (Before now we had been selecting an incorrect
configuration, but the older drivers let us get away with it.)
Converted the source to C++ so we can call selectConfigForNativeWindow.
this change fixes the lifetime mgt of EGLSurface, EGLContext and EGLImageKHR in the EGL wrapper.
EGLDisplay is still somewhat bogus and libagl's EGL is still incorrect.
The idea of the change is that EGL objects are put in a list when created and removed when destroyed.
Before each use, we first verify if the object is in the list and if so a reference is taken and kept
for the scope of the whole EGL API being called, if not, an error is returned.
Upon object destruction, the object is simply marked as "terminated" (this is not protected by a lock
because it doesn't really matter). This flag is only used to deny access to the object by other APIs
while it's still valid (for instance current or being used by another function in another thread).
A reference is also removed and the object can then actually be destroyed when going out of scope.
refactored the code so that:
- EGL APIs that can be called before or after eglInitialize() will work by loading the drivers first
- make eglGetDisplay() a lot more efficient
- make sure that EGL drivers are loaded in a thread-safe way
- don't unload the drivers upon calling eglTerminate(), they're now never unloaded, since there is no safe way to do it (some thread could be running)
- updated our EGL version to 1.4
- return better error codes if errors happen during initialization