262 Commits

Author SHA1 Message Date
Jean-Baptiste Queru
bcd20496e0 merge from open-source master 2009-11-08 17:03:30 -08:00
Jack Palevich
2a0bacffc1 am 4e3fadd0: Merge change Ia4424950 into eclair
Merge commit '4e3fadd0c99d2774709a067e017d8fd622440f0e' into eclair-plus-aosp

* commit '4e3fadd0c99d2774709a067e017d8fd622440f0e':
  Fix stupid bug in GLThreadManager implementation.
2009-11-06 16:11:50 -08:00
Jack Palevich
a44249500f Fix stupid bug in GLThreadManager implementation.
The code intended to copy the old value of a field, before the
field was updated. However, what the code was actually doing was
copying the new value of the field, after the field was updated.

The fix was to move the copy to before the update.

This is work towards fixing bug 2228262
2009-11-07 07:49:15 +08:00
Jack Palevich
0f820d9bf4 am 84872738: Merge change I971f6fd3 into eclair
Merge commit '84872738f291faf25ae07235cde382d38c796567' into eclair-plus-aosp

* commit '84872738f291faf25ae07235cde382d38c796567':
  Improve GLSurfaceView to avoid deadlocks and race conditions.
2009-11-05 22:32:14 -08:00
Jack Palevich
8b2c9c9ecb Improve GLSurfaceView to avoid deadlocks and race conditions.
This is work towards fixing bug 2228262

Specific issues fixed by this change:

+ GLThread names now include the thread id, making it easier to tell one
GLThread from another.

+ A private final static boolean LOG_THREADS can be set to true at compile
time to print out thread-related trace information, helpful for debugging
GLSurfaceView behavior. This static defaults to "false".

+ Changed calls to "notify" to "notifyAll" to make the code more
robust in case more than two threads are blocked on the same monitor.

+ Add a GLThreadManager to help manage the transition to
a new GLThread. Currently only one GLThread can be active in an address
space. When the second thread starts up, the GLThreadManager helps the old
GLThread to shut down,

+ Make sure we stop waiting for dead GLThreads. This is done by adding
checks for a variable mDone being true to our monitor wait loops. And
we use a "finally" clause at the end of GLThread.run() method to set mDone
and notifyAll any wait loops.
2009-11-06 10:21:46 +08:00
Mathias Agopian
dc24cea38c am 36fe3eea: part of fix [2186418] switch passion to 24-bits framebuffer
Merge commit '36fe3eeaa056ff13455c0df73b495b2bae8c1469' into eclair-plus-aosp

* commit '36fe3eeaa056ff13455c0df73b495b2bae8c1469':
  part of fix [2186418] switch passion to 24-bits framebuffer
2009-11-04 14:59:14 -08:00
Mathias Agopian
36fe3eeaa0 part of fix [2186418] switch passion to 24-bits framebuffer
add support for RGBX_8888 EGLConfigs in the software renderer
(since that's what we're using in the MDP case)
2009-11-04 14:51:18 -08:00
Mathias Agopian
e4fb484187 am 9a54d7dd: Merge change Ibbf945f3 into eclair
Merge commit '9a54d7dddcbc982d644c627693dc39fb2cb5c0fb' into eclair-plus-aosp

* commit '9a54d7dddcbc982d644c627693dc39fb2cb5c0fb':
  fix [2236832] software OpenGL ES driver doesn't work on sholes
2009-11-04 13:13:34 -08:00
Mathias Agopian
bbf945f3c0 fix [2236832] software OpenGL ES driver doesn't work on sholes
make sure to not pass our fake handles to the real gralloc
2009-11-03 21:08:06 -08:00
Mathias Agopian
71eba665af am 21977eb0: Merge change I56981989 into eclair
Merge commit '21977eb0f1d22497d0beed0492e579f953a56552' into eclair-plus-aosp

* commit '21977eb0f1d22497d0beed0492e579f953a56552':
  fix [2231527] Compatibility with SpaceJunk game (OpenGL)
2009-11-03 15:11:41 -08:00
Android (Google) Code Review
21977eb0f1 Merge change I56981989 into eclair
* changes:
  fix [2231527] Compatibility with SpaceJunk game (OpenGL)
2009-11-03 18:04:49 -05:00
Mathias Agopian
b87e3eb933 am 8637759a: Merge change I36d0184e into eclair
Merge commit '8637759a1d34a4adda292579d5f8790587659235' into eclair-plus-aosp

* commit '8637759a1d34a4adda292579d5f8790587659235':
  fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
2009-11-03 09:33:22 -08:00
Mathias Agopian
5698198967 fix [2231527] Compatibility with SpaceJunk game (OpenGL)
we treated all lights as local lights when transforming their
position back to object space.
2009-11-02 18:33:08 -08:00
Mathias Agopian
36d0184e08 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.
2009-11-02 17:48:33 -08:00
Iliyan Malchev
78ac0f1b22 am 05cb5610: Merge change I8c0eb9a6 into eclair
Merge commit '05cb5610fdfb7b69cf90a9230853e59b4ae5e219' into eclair-plus-aosp

* commit '05cb5610fdfb7b69cf90a9230853e59b4ae5e219':
  libagl: silence a LOGD
2009-10-30 18:36:09 -07:00
Iliyan Malchev
8c0eb9a6eb libagl: silence a LOGD
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-10-30 18:29:08 -07:00
Mathias Agopian
0fc2131aa2 am 77bd91f8: Merge change Ie3e80456 into eclair
Merge commit '77bd91f8af44867935ea2df22f69fb244b009b94' into eclair-plus-aosp

* commit '77bd91f8af44867935ea2df22f69fb244b009b94':
  Turns out the SGX driver is correct and the bug was in this test.
2009-10-30 17:07:14 -07:00
Android (Google) Code Review
77bd91f8af Merge change Ie3e80456 into eclair
* changes:
  Turns out the SGX driver is correct and the bug was in this test.
2009-10-30 19:40:09 -04:00
Mathias Agopian
e3e80456fb Turns out the SGX driver is correct and the bug was in this test.
make sure the 565 1-texel wide texture is specified with an alignment of 4
which is the OpenGL ES default.
2009-10-30 16:32:52 -07:00
Mathias Agopian
bfb54c8684 am d01767f8: Merge change I56779290 into eclair
Merge commit 'd01767f8b7038108f9125cd2122b117db9919824' into eclair-plus-aosp

* commit 'd01767f8b7038108f9125cd2122b117db9919824':
  fix[2222341] Soft reset while going back from camcorder settings
2009-10-30 15:01:46 -07:00
Mathias Agopian
3f2ac097d2 am f989c114: Merge change If007a2fa into eclair
Merge commit 'f989c1140bbc84480498df38abec0fafff04e6ee' into eclair-plus-aosp

* commit 'f989c1140bbc84480498df38abec0fafff04e6ee':
  return proper error code from eglCreateImageKHR
2009-10-30 15:01:39 -07:00
Android (Google) Code Review
d01767f8b7 Merge change I56779290 into eclair
* changes:
  fix[2222341] Soft reset while going back from camcorder settings
2009-10-30 17:54:10 -04:00
Android (Google) Code Review
f989c1140b Merge change If007a2fa into eclair
* changes:
  return proper error code from eglCreateImageKHR
2009-10-30 17:54:03 -04:00
Mathias Agopian
0b0722f980 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
2009-10-30 14:48:50 -07:00
Mathias Agopian
f007a2faa1 return proper error code from eglCreateImageKHR 2009-10-29 16:45:41 -07:00
Mathias Agopian
6f0ebae907 am 5dc7a21c: Merge change I4e036287 into eclair
Merge commit '5dc7a21cbbd4af908e39e55e5ca7ab14cda25d4a' into eclair-plus-aosp

* commit '5dc7a21cbbd4af908e39e55e5ca7ab14cda25d4a':
  update line test to expose some bug on SGX530 ed4
2009-10-29 15:54:42 -07:00
Mathias Agopian
4e036287fd update line test to expose some bug on SGX530 ed4 2009-10-29 15:47:12 -07:00
Mathias Agopian
134db3b2d6 am 85ade33e: fix [2071412] work around mdp 32-bits fade limitation
Merge commit '85ade33edcc7d9be462ad7b8455d27f6654aca5e' into eclair-plus-aosp

* commit '85ade33edcc7d9be462ad7b8455d27f6654aca5e':
  fix [2071412] work around mdp 32-bits fade limitation
2009-10-28 15:04:10 -07:00
Mathias Agopian
85ade33edc fix [2071412] work around mdp 32-bits fade limitation
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.
2009-10-28 14:49:44 -07:00
Mathias Agopian
e36f5af3ad am 7bde36e6: added GL test for textured lines
Merge commit '7bde36e64e66c81f0150d0372e1357a31f4ec704' into eclair-plus-aosp

* commit '7bde36e64e66c81f0150d0372e1357a31f4ec704':
  added GL test for textured lines
2009-10-28 02:16:14 -07:00
Mathias Agopian
7bde36e64e added GL test for textured lines 2009-10-28 02:09:21 -07:00
Mathias Agopian
59b2ee0dfd am 73e17015: Merge change I8d2de438 into eclair
Merge commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694' into eclair-plus-aosp

* commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694':
  fix [2143798] Need to figure out how to do video
2009-10-27 23:48:38 -07:00
Mathias Agopian
9042b4564d fix [2143798] Need to figure out how to do video
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
2009-10-27 13:13:29 -07:00
Jack Palevich
4cf5d9bf13 am 8f89a1a3: Merge change Ic620a52b into eclair
Merge commit '8f89a1a360465e08e81ceca3cb3042606a98668b' into eclair-plus-aosp

* commit '8f89a1a360465e08e81ceca3cb3042606a98668b':
  Add size checks for glBufferData and glBufferSubData
2009-10-23 17:39:12 -07:00
Jack Palevich
c620a52b69 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.
2009-10-21 11:02:44 -07:00
Mathias Agopian
f2d5fb6487 am b34d5d52: Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
Merge commit 'b34d5d527596102ae7a040d787e4d8c336bf192b' into eclair-plus-aosp

* commit 'b34d5d527596102ae7a040d787e4d8c336bf192b':
  Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
2009-10-19 16:26:56 -07:00
Mathias Agopian
b34d5d5275 Use the TLS register if HAVE_ARM_TLS_REGISTER is defined
this will be needed for SMP, but would improve dispatching GL calls a bit
on armv6 and above.
2009-10-19 16:13:46 -07:00
Mathias Agopian
10e49891bc am 62df88bc: Merge change I0953c1d5 into eclair
Merge commit '62df88bcc95a714c1d5035471dfe7fe0ddd9d50b' into eclair-plus-aosp

* commit '62df88bcc95a714c1d5035471dfe7fe0ddd9d50b':
  fix [2153873] EGL-1.4 software implementation misses surface attributes
2009-10-19 15:34:04 -07:00
Android (Google) Code Review
62df88bcc9 Merge change I0953c1d5 into eclair
* changes:
  fix [2153873] EGL-1.4 software implementation misses surface attributes
2009-10-19 18:27:47 -04:00
Mathias Agopian
0953c1d5e1 fix [2153873] EGL-1.4 software implementation misses surface attributes 2009-10-19 14:46:27 -07:00
Mathias Agopian
e9c394a597 am 3662f9ee: Merge change Ide4c8cbc into eclair
Merge commit '3662f9ee5be3113b57693e1495fd83a2f5c7200c' into eclair-plus-aosp

* commit '3662f9ee5be3113b57693e1495fd83a2f5c7200c':
  fix [2151588] glTexSubImage2D() allows pixel format conversion
2009-10-19 14:41:53 -07:00
Mathias Agopian
283cf1ce56 am 639d69fe: Merge change I88d11cfb into eclair
Merge commit '639d69fe8799ac2fa0bbf7560229531377ccc0f4' into eclair-plus-aosp

* commit '639d69fe8799ac2fa0bbf7560229531377ccc0f4':
  one step towards fixing [2071412] work around mdp 32-bits fade limitation
2009-10-19 14:41:42 -07:00
Android (Google) Code Review
3662f9ee5b Merge change Ide4c8cbc into eclair
* changes:
  fix [2151588] glTexSubImage2D() allows pixel format conversion
2009-10-19 17:31:52 -04:00
Mathias Agopian
78811906c3 fix [2151588] glTexSubImage2D() allows pixel format conversion 2009-10-19 14:23:02 -07:00
Mathias Agopian
88d11cfbfc one step towards fixing [2071412] work around mdp 32-bits fade limitation
simplify the GL_MODULATE case and allow blending disabled with RGBA texture
2009-10-16 18:24:12 -07:00
Mathias Agopian
b0f33aa280 am 69fba87a: Merge change I6fc56997 into eclair
Merge commit '69fba87ac16d1c10da81fc3213ae169c755797f4' into eclair-plus-aosp

* commit '69fba87ac16d1c10da81fc3213ae169c755797f4':
  fix [2187212] add support for GLESv2 dispatch based on TLS
2009-10-16 14:32:37 -07:00
Mathias Agopian
6fc569971f 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]
2009-10-14 02:06:37 -07:00
Dima Zavin
aa8f0e5256 am 98b3def2: Merge change I6261ab54 into eclair
Merge commit '98b3def2983e78409002cf406574bbc8eeef8bfd' into eclair-plus-aosp

* commit '98b3def2983e78409002cf406574bbc8eeef8bfd':
  Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
2009-10-12 12:08:10 -07:00
Christoffer Gurell
4a783af6ec Fix obvious typo bug in egl.cpp
can (and does sometimes) lead to accessing array with -1 as index
2009-10-12 11:57:27 +02:00
Dima Zavin
6261ab5422 Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"
This reverts commit ed5ecdba36648973be3033a045e2ece8bf039e4a.
2009-10-09 18:23:08 -07:00