Commit Graph

895 Commits

Author SHA1 Message Date
Jamie Gennis
dbe9245e2e GLConsumer: start using EGL_ANDROID_image_crop
This change makes GLConsumer use the EGL_ANDROID_image_crop extension when
available on a device.  The crop rectangle is passed to the EGL driver when
creating EGLImages, allowing the crop to be performed by the driver rather than
using the texture transform matrix.

Bug: 10897141
Change-Id: I63e9a5d5c85067376abc420e3639154468346311
2013-10-02 17:34:35 +00:00
Elliott Hughes
b7f3742feb am d9be16f9: Merge "Fix OpenGL stub exception handling."
* commit 'd9be16f920f7c2581fda3ca495c1e6fc88857a6c':
  Fix OpenGL stub exception handling.
2013-09-27 15:38:04 -07:00
Elliott Hughes
2adde7c837 Fix OpenGL stub exception handling.
Bug: https://code.google.com/p/android/issues/detail?id=60390
Change-Id: I2bdc22c5fe75f5e41ffb9dd9259ae92cf8a12917
2013-09-24 17:18:05 -07:00
Jesse Hall
a2ba428a22 Disable the egl_khr_gl_colorspace extension
Bug: 10777398
Change-Id: Ib50ea8b9d5d960537701b85929d6312304993a0f
2013-09-16 11:21:48 -07:00
Mathias Agopian
63108c34ec fix a possible null dereference when eglMakeCurrent() fails
Bug: 10648797
Change-Id: Iee0be47f2646feb25de4ea199bbb9b707452916e
2013-09-06 13:36:49 -07:00
Mathias Agopian
672ddf2b58 remove adreno 130 workaround support
Change-Id: I8ea5ee65d405114b30cfaa44e1a0c971d1ef2a61
2013-08-28 15:27:30 -07:00
Mathias Agopian
f4486c6ea4 try to keep omap4 alive
Bug: 10527646
Change-Id: Iec572a910e932115cf4f2e1215142b10cd91bd6f
2013-08-28 15:22:29 -07:00
Mathias Agopian
0f288fcc9c only use format compatible with CPU consumers
EGL now picks the buffer format out of a small set
of formats compatible with CPU consumers instead of
using the EGL_NATIVE_VISUAL_ID.

Bug: 10194508
Change-Id: If423cd29601b7a3ace8670f4c73004132cfc4b31
2013-08-21 16:36:34 -07:00
Jesse Hall
bc2a90b024 Replace sRGB_888 with sRGB_X_8888
Bug: 10357459
Change-Id: I3a1d92cce2c9d3e930408129fb20887276fffddc
2013-08-16 07:50:11 -07:00
Jesse Hall
c2e41222bf Add support for EGL_KHR_gl_colorspace
Change-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb
2013-08-13 12:10:51 -07:00
Jesse Hall
ea4fdd4beb Don't swallow eglCreateContext errors
If the implementation eglCreateContext failed, we called
eglGetError(), so we could check that it set the EGL error properly.
But since we'd already called this, when the app called eglGetError()
it would get EGL_SUCCESS!

Bug: 10181333
Change-Id: Ic45d3a8fcb8c4421e04844c6d2f52761790b5948
2013-08-12 16:43:34 -07:00
Mathias Agopian
a6bb107434 make sure we have a context when creating the 1st surface
also add an option to dump the stack trace when
calling a GL function without a context.

Change-Id: I57b72bb8c322ac4253c3077bf150621bd9863b69
2013-08-08 16:38:06 -07:00
Jesse Hall
43c2718b3f Merge "Add EGL_KHR_get_all_proc_addresses to extension string" 2013-08-07 15:23:05 +00:00
Jesse Hall
21558daf69 Add EGL_KHR_get_all_proc_addresses to extension string
We've had the extended behavior since Android 4.3, but the extension
hadn't been ratified by Khronos yet so we couldn't add it to the
extension string.

Bug: 9681677
Change-Id: I78842316a3ab7a3f66a0ac1a4742d837de664c4c
2013-08-06 15:33:46 -07:00
Mathias Agopian
db89edc94b All consumers now take an IGraphicBufferConsumer instead of a BufferQueue
this means they only have access to the consumer end of
the interface. we had a lot of code that assumed consumers
where holding a BufferQueue (i.e.: both ends), so most of
this change is untangling in fix that

Bug: 9265647
Change-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c
2013-08-06 20:05:36 +00:00
Mathias Agopian
c1c39f8807 Merge "Binderize the consumer side of BufferQueue" 2013-08-02 20:35:26 +00:00
Mathias Agopian
a4e19521ac Binderize the consumer side of BufferQueue
While currently untested, this should allow to move the
BuffereQueue in the consumer process and have everything
work as usual.

Bug: 9265647

Change-Id: I9ca8f099f7c65b9a27b7e7a3643b46d1b58eacfc
2013-08-01 17:20:08 -07:00
Andy McFadden
14fab7dd79 Drop frames based on presentation timestamp
If there are two or more buffers pending that are ready for
immediate presentation, drop all but the last one.

Any code that didn't explicitly specify timestamps for buffers
was using the default value (auto-generated "now").  As a result,
surfaceflinger would drop frames whenever more than one buffer
was queued.  We now use zero as the auto-generated timestamp,
and we don't set the timestamp in eglBeginFrame().

Change-Id: I187f42d33de227cd3411ff0dcd3b9ce1961457eb
2013-08-01 15:58:08 -07:00
Mathias Agopian
e142428a9c Make Flattenable not virtual
Fallout from the Flattenable change, update all its uses.

Additionnaly, fix/tighten size checks when (un)flatten()ing
things.

Removed the assumption by some flattenables (e.g.: Fence)
that the size passed to them would be exact (it can
and will be larger in some cases)

The code in Parcel is a bit complicated so that we don't
have to expose the full implementation (and also to
keep the code smallish).

Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
2013-07-30 21:19:13 -07:00
Jamie Gennis
7925b6bdb8 Merge "EGL: fix eglTerminate blob cache behavior" 2013-07-30 22:37:58 +00:00
Jamie Gennis
5539e219de EGL: fix eglTerminate blob cache behavior
Bug: 9610573
Change-Id: I258e7e0d82ab76fbacf0b9c25d4f92fca6df04ac
2013-07-30 15:12:16 -07:00
Mathias Agopian
c2414bb098 get rid of HAL pixelformats 5551 and 4444
Change-Id: I39409103144c1ba09078c4ddc323a58987fb09ea
2013-07-26 15:43:33 -07:00
Mathias Agopian
595264f1af BufferQueue improvements and APIs changes
this is the first step of a series of improvements to
BufferQueue. A few things happen in this change:

- setSynchronousMode() goes away as well as the SynchronousModeAllowed flag
- BufferQueue now defaults to (what used to be) synchronous mode
- a new "controlled by app" flag is passed when creating consumers and producers
  those flags are used to put the BufferQueue in a mode where it
  will never block if both flags are set. This is achieved by:
  - returning an error from dequeueBuffer() if it would block
  - making sure a buffer is always available by replacing
    the previous buffer with the new one in queueBuffer()
    (note: this is similar to what asynchrnous mode used to be)

Note: in this change EGL's swap-interval 0 is broken; this will be
fixed in another change.

Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
2013-07-18 22:28:18 -07:00
Jesse Hall
ba3ed90b09 am 082fc1ca: am ae961022: Merge "EGL: Fix error for eglCreateWindowSurface"
* commit '082fc1cae6a0c283de3ad0d848e0757de3154d0b':
  EGL: Fix error for eglCreateWindowSurface
2013-07-17 14:13:56 -07:00
Jesse Hall
082fc1cae6 am ae961022: Merge "EGL: Fix error for eglCreateWindowSurface"
* commit 'ae9610220b5f509687b840532f95f3638ee0146b':
  EGL: Fix error for eglCreateWindowSurface
2013-07-17 14:10:00 -07:00
Jonathan Hamilton
77a9b4a6bd EGL: Fix error for eglCreateWindowSurface
The EGL 1.4 spec section 3.5.1 states that EGL_BAD_ALLOC should be set
if the supplied window already has an associated EGLSurface, not
EGL_BAD_NATIVE_WINDOW as is currently set.

Change-Id: If1598617f4e31904f2045560ae1cdf49d8a697dc
2013-07-17 09:52:41 -07:00
Jesse Hall
94cdba97ce resolved conflicts for merge of 5477d0e4 to master
Change-Id: I7ca75a44018a68bf3a7ac1de17a3ef568a48d2ac
2013-07-11 09:40:54 -07:00
Jesse Hall
5477d0e4e8 am c07b5206: Find non-extension GLES wrappers in eglGetProcAddress
* commit 'c07b52060acd627c8510c1a9151e0753fce76330':
  Find non-extension GLES wrappers in eglGetProcAddress
2013-07-09 10:54:20 -07:00
Jesse Hall
c07b52060a Find non-extension GLES wrappers in eglGetProcAddress
This allows apps to find OpenGL ES 3.0 functions using
eglGetProcAddress() instead of dlopen/dlsym.

Bug: 9681677
Change-Id: I7ce6e1636bc47d6b0bf20a4e46bd67235714d129
2013-07-04 12:08:16 -07:00
Mathias Agopian
e0ea89ceef improve GLES jumptables
in the common case this saves one instructions per jump
(which will help with the i-cache).

this change also gets rid of the "use slow tls" option,
which was useless. So at least now architectures that don't have
assembly bindings will perform much better.

Change-Id: I31be6c06ad2136b50ef3a1ac14682d7812ad40d2
2013-07-01 15:52:47 -07:00
Jesse Hall
b83290c7b7 Merge "Small clarifications to EGL_ANDROID_presentation_time" 2013-06-26 14:51:25 +00:00
Jesse Hall
5ac6c0a3dd Small clarifications to EGL_ANDROID_presentation_time
Change-Id: I4365a981776ab0a5719c268258b87ff1418f9aeb
2013-06-26 07:50:32 -07:00
Jean-Baptiste Queru
da22e6bf36 am db8c267e: am 3c0425cd: am 0ecf0b8d: Merge "Additional parameter validation for EGL functions"
* commit 'db8c267ec26997771eb718c29d3dacd4e738051b':
  Additional parameter validation for EGL functions
2013-06-25 17:02:09 -07:00
Jean-Baptiste Queru
3c0425cd95 am 0ecf0b8d: Merge "Additional parameter validation for EGL functions"
* commit '0ecf0b8db74682222bf095a235e28edefff871a5':
  Additional parameter validation for EGL functions
2013-06-25 15:35:05 -07:00
Jean-Baptiste Queru
0ecf0b8db7 Merge "Additional parameter validation for EGL functions" 2013-06-25 22:31:13 +00:00
Andy McFadden
9a90aa9003 Fix wrapper equals()
Make it faster and correcter.

Also, fixed the "gen" script to update the static/egl/*.java files
as part of doing an update.  Altered the "git" lines to change
directories before invoking git -- necessary because we're now
split between frameworks/base and frameworks/native.

Bug 9204146

Change-Id: Ie60504b1932349e6f2c9d3868dee6a645ef2b36e
2013-06-21 16:22:02 -07:00
Mathias Agopian
4e620ddce3 free EGL resources associated to a thread when it terminates
destroyed but current-to-a-thread resources are only destroyed
when they're made not-current; however, we were not destroying
those when the thread itself terminated, causing these resources
to be leaked forever.

we now install a tls-key destructor that takes care of this
by calling eglReleaseThread upon thread termination.

Bug: 9209776
Change-Id: I88298a34e3a27488eb81eab76717715569c7d57c
2013-05-30 16:07:36 -07:00
Jesse Hall
f9872c8124 am 7a486528: am f0dcff89: Merge "gl_code.cpp: Remove a DOS style newline"
* commit '7a4865287460a5f0ff26e22be5f0271735d32ac7':
  gl_code.cpp: Remove a DOS style newline
2013-05-13 13:08:54 -07:00
Jesse Hall
7a48652874 am f0dcff89: Merge "gl_code.cpp: Remove a DOS style newline"
* commit 'f0dcff89acb998179757ca66b5c6a2c585a980e9':
  gl_code.cpp: Remove a DOS style newline
2013-05-13 13:05:36 -07:00
Jesse Hall
f0dcff89ac Merge "gl_code.cpp: Remove a DOS style newline" 2013-05-13 18:53:10 +00:00
Mathias Agopian
f03e51dd2f Merge "change how the userspace GLES drivers are named" 2013-05-02 23:25:52 +00:00
Jesse Hall
16b4f33d2b am 958ef3d7: am c8639351: Generate new EGLExt class
* commit '958ef3d79c48ddef3afa5327f7ed15a5ecfd2d1d':
  Generate new EGLExt class
2013-05-02 13:49:25 -07:00
Jesse Hall
c86393510c Generate new EGLExt class
Initially populated with EGL_ANDROID_presentation_time (moved from the
EGL14 class) and the ES-relevant parts of EGL_KHR_create_context.

Bug: 8678160
Change-Id: Ifed2ee3da264ca701ae1f4b309a0758f7fcc3acc
2013-05-02 13:44:29 -07:00
Jesse Hall
c59db7fdfe am 34c0fb18: am cc8f8ad3: Merge "Fix glGetUniformIndices JNI prototype" into jb-mr2-dev
* commit '34c0fb183767b80e93a7cd77233ead5fe50bd822':
  Fix glGetUniformIndices JNI prototype
2013-04-30 19:34:49 -07:00
Jesse Hall
cc8f8ad33d Merge "Fix glGetUniformIndices JNI prototype" into jb-mr2-dev 2013-05-01 02:30:48 +00:00
Andy McFadden
80f9f26d10 am ef4dbb6a: am 5d46b04b: Merge "Recommend different time source" into jb-mr2-dev
* commit 'ef4dbb6af3db147f4c25ae1d7013b1a30fd8fed2':
  Recommend different time source
2013-04-30 17:47:26 -07:00
Andy McFadden
5d46b04bd5 Merge "Recommend different time source" into jb-mr2-dev 2013-05-01 00:43:55 +00:00
Jesse Hall
46fc9cb60c Fix glGetUniformIndices JNI prototype
Bug: 8657863
Change-Id: I130d1b54d0cbd1f8613d3108482526d05d73d9e4
2013-04-29 16:01:56 -07:00
Andy McFadden
0e775697fb Recommend different time source
We were recommending SystemClock#uptimeMillis() from Java code, but
millisecond resolution is a little coarse.  We don't have an
appropriate call in SystemClock, so use System.nanoTime() instead.

Bug 8733179

Change-Id: Ifb85a03eabf7ff168966adcb5ed5914bbf3884b2
2013-04-29 15:41:40 -07:00
Jamie Gennis
565bce248b am 8369c473: am f6d1c393: EGL: expose the EGL_KHR_create_context extension
* commit '8369c4739a58367e9636c84facc272cf8ddcb070':
  EGL: expose the EGL_KHR_create_context extension
2013-04-29 12:14:26 -07:00
Andy McFadden
5075b21e1a Merge "Fix range check" 2013-04-29 18:22:25 +00:00
Mathias Agopian
993814255f change how the userspace GLES drivers are named
for single library:
  /vendor/lib/egl/GLES.so

for multiple libraries:
  /vendor/lib/egl/EGL.so
  /vendor/lib/egl/GLESv1_CM.so
  /vendor/lib/egl/GLESv2.so

EGL_BOARD_CONFIG as well as egl.cfg are not needed anymore.

To facilitate the transition, the loader will also look
for the older naming scheme.

Bug: 8631636
Change-Id: Id4b113468df29bae72b323f76598229914e1c7a1
2013-04-26 23:49:01 +02:00
Jamie Gennis
f6d1c3930e EGL: expose the EGL_KHR_create_context extension
Bug: 8616866
Change-Id: Ic60f9f21397a1760c552b6f141d5177d1cbaf1f8
2013-04-25 18:49:15 -07:00
Andy McFadden
42137d2e72 Fix range check
The getarray() function checks to see if there's enough room in
the buffer, but it's using a byte count for the available size
and a possibly non-byte count for the space required.  Dividing
down by the unit size corrects the problem.

Bug 8713753

Change-Id: Id42c0df65c3233dcc5f76d05e229f7d40d4c1f99
2013-04-25 15:58:25 -07:00
Mathias Agopian
b4ba50dd83 fix a typo in EGL loader
the code intended to filter out the software-renderer, but the
test as written was essentially a no-op.

the problem didn't happen most of the time because we had
updated egl.cfg to not even list the software renderer.

the test as written didn't generate a compile-time error
because String8 has a const char* cast operator; but the
end result was to compare pointers instead of the string
itself.

http://code.google.com/p/android/issues/detail?id=54606

Change-Id: I739dd1c838fbc24c5643a631fae19713a8ef1717
2013-04-23 14:20:16 +02:00
Mathias Agopian
ed6d08b70d fix "traceGpuCompletion" debug feature
eglCreateSyncKHR requires a call to glFlush which we were not doing.
fixed by moving the code above eglSwapBuffers(), which both
fixes the problem and gives us a slightly better idea of when
the GPU is done drawing.

Change-Id: Ic826ef1fe25a6247742c3d49d0cb69f4031e3593
2013-04-16 16:41:47 -07:00
Jesse Hall
c0d184b8c1 Subclass GLES30 from GLES20, @Deprecate GL_STENCIL_INDEX
Bug: 8566953
Change-Id: I66085c300a8658a4018796645257edb73be94719
2013-04-15 16:42:21 -07:00
Jesse Hall
4f6693080c Special-case glGetActiveUniformBlockName
Bug: 8566953
Change-Id: Ic9b3be9fa0136495633ee3b1c38583cfa315942a
2013-04-10 22:00:39 -07:00
Jesse Hall
fa4c1170ac Special-case glGetStringi
Modeled on the existing glGetString special-case.

Bug: 8566953
Change-Id: Icc6b23ab53b00510368900ad99c92028253dc797
2013-04-10 22:00:33 -07:00
Jesse Hall
1c8b8e8b8e Special-case glMapBufferRange
Updating the generator to handle GLvoid*/java.nio.Buffer return values
probably wouldn't be too hard, but this is the only function that
needs it currently.

Bug: 8566953
Change-Id: I359a951136ab479ab576ce2e5a2881b937b7e8c9
2013-04-10 22:00:26 -07:00
Jesse Hall
610bbf2b6f Special-case glGetBufferPointerv
Bug: 8566953
Change-Id: I11a7394eb46f229fd3ae716e77487a45bac6ed53
2013-04-10 22:00:18 -07:00
Jesse Hall
27c86b9623 Special-case glGetUniformIndices
Bug: 8566953
Change-Id: Ic8bcd03e8d41a81f48d603f67ce2046a4afa1561
2013-04-10 22:00:18 -07:00
Jesse Hall
31f6edc21b Special-case glGetTransformFeedbackVarying
Just a search-and-replace on the glGetActiveAttrib special-case, since
they have the same signature and parameter handling.

Bug: 8566953
Change-Id: I40834d6f32bf9ecb39718df29036aa2d1bbfa07a
2013-04-10 22:00:18 -07:00
Jesse Hall
552a620482 Special-case glTransformFeedbackVaryings
Bug: 8566953
Change-Id: I02a1548aebc12bd3599903029bfd2e4ccea53211
2013-04-10 22:00:18 -07:00
Jesse Hall
071fc66059 Add buffer object versions of several functions
Some of these are new ES3 functions, some are existing ES2 functions
that can now use the new pixel pack/unpack buffer bindings.

glDrawElementsInstanced needs a special case since the pointer/offset
arg isn't the last one like the generator assumes.

Bug: 8566953
Change-Id: I638a36b0a31aefcb5bfee6f4d049348223045103
2013-04-10 22:00:17 -07:00
Jesse Hall
68fc8bbced Add *int64 and GLsync types and related functions
Return values are declared with the C return type, but the JNI
function returns the JNI return type. In the case of GLsync/jlong as
in glFenceSync(), this causes a compile error. So the generator now
explicitly casts the return value to the JNI return type.

Bug: 8566953
Change-Id: I814befe2e4cce745434cbc4e1c8639fc3ce8aeae
2013-04-10 22:00:17 -07:00
Jesse Hall
2d9faafa23 Add ES3 functions and constants, difficult ones commented out
This change adds ES3 functions to GLES30.spec, disabling any that
require non-trivial changes for the generator to handle.

Steps taken to add these:
- Copy ES3 function declarations from gl3.h
- Remove GL_APICALL, GL_APIENTRY, and semicolon from each declaration
- Add whitespace around parens and *s as required by the parser
- Comment out functions that the generator doesn't understand or that
  it generates bad Java interfaces for (by inspection).

Bug: 8566953
Change-Id: Iaaef7d53e24f9a576759dbba72cd206bae1c1276
2013-04-10 22:00:17 -07:00
Jesse Hall
0eb6ad5638 Support "const GLChar*" and "const GLenum*" types
Bug: 8566953
Change-Id: I349575e592e8b0d93d14237230b69bec4e04cf3e
2013-04-10 08:34:54 -07:00
Jesse Hall
439bc1614d Minor changes to ES3 functions inherited from ES2
With the addition of float framebuffer support in ES3, some parameters
to ES2 functions are now GLfloat instead of GLclampf. Both are
typedefs for 'float', so this is a source and binary compatible change.

Bug: 8566953
Change-Id: I0b5acc78da7799a04053fdb568205f793792cad9
2013-04-10 08:34:54 -07:00
Jesse Hall
63ed38dc52 Generate GLES30 class, just a clone of GLES20 for now
Bug: 8566953
Change-Id: I6fad880344b9c247de4018711ea7cb6eb1a609d6
2013-04-10 08:34:54 -07:00
Jesse Hall
a3b641e89c Make gen more readable, use UNIX-style line endings
Change-Id: I6f4a1afa19f84d89278e9447f14a124476106fef
2013-04-10 08:34:54 -07:00
Ying Wang
8a0cb4ee0b Add liblog
Bug: 8580410
Change-Id: I2ca4fa00dde0b574df3619134836bcb9315bd506
2013-04-09 21:55:39 -07:00
Mathias Agopian
39c24a20bb fix local include paths
Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
2013-04-04 23:30:18 -07:00
Jamie Gennis
83a3ad4d57 Merge "EGL_ANDROID_presentation_time: initial spec draft" into jb-mr2-dev 2013-04-01 23:27:38 +00:00
Jamie Gennis
6730acb681 EGL_ANDROID_presentation_time: initial spec draft
Change-Id: I1cd174a08c499e5bde19e7ecd449da8266e7e66e
2013-04-01 15:29:06 -07:00
Jesse Hall
441f69463e Fix MIPS assembly variable names to not conflict with GL API parameter names
Change-Id: I8e93fb55018de53a596cb176d48dbfdf1fd396e4
2013-03-30 23:22:19 -07:00
Mathias Agopian
86e392e9b3 Merge "don't use compile-time configuration of libgui as much as possible" into jb-mr2-dev 2013-03-29 23:31:23 +00:00
Mathias Agopian
ca08833d5e don't use compile-time configuration of libgui as much as possible
We now detect at runtime which sync features to use, which
allows us to remove a lot of the compile-time configuration
options. There  is still one option though, to disable
KHR_fence_sync on some devices (which are more efficient
without it).

- added a backdoor to get the vendor's EGL strings

the new logic is:
- use always ANDROID_native_fence_sync if available
- fallback to KHR_fence_sync if available and not disabled
  by the compile-time option
- use KHR_wait_sync if available and either of the above is
  enabled

Change-Id: I9c4b49d9ff1151faf902cc93bd53ea5f205aaabf
2013-03-29 15:33:47 -07:00
Keun-young Park
7fd5ef3eca am e3a396b2: am 906bd042: Merge "[MIPS] Add MIPS architecture support to libagl"
* commit 'e3a396b25d53cc9ae61e3a2f0daeaa68ac1ba5a1':
  [MIPS] Add MIPS architecture support to libagl
2013-03-29 00:14:16 -07:00
Keun-young Park
906bd0422a Merge "[MIPS] Add MIPS architecture support to libagl" 2013-03-29 06:15:58 +00:00
Keun-young Park
ea116f1acb am 111d920b: am d3b2c029: Merge "[MIPS] Add MIPS architecture support to opengl framework"
* commit '111d920bb588669006bdd8699e786d6305f14c36':
  [MIPS] Add MIPS architecture support to opengl framework
2013-03-28 23:09:44 -07:00
Keun-young Park
d3b2c029eb Merge "[MIPS] Add MIPS architecture support to opengl framework" 2013-03-29 05:26:28 +00:00
Mathias Agopian
bf667e3155 Merge changes I22f1b358,I5496d0de,Ifd98966b into jb-mr2-dev
* changes:
  replace eglWaitSyncANDROID by eglWaitSyncKHR
  update EGL headers to most recent
  cleanup EGL extensions strings and entry-points
2013-03-28 22:51:06 +00:00
Mathias Agopian
2bb716871c replace eglWaitSyncANDROID by eglWaitSyncKHR
Change-Id: I22f1b3588011c88389e249f738f1e6915cc97e72
2013-03-28 14:31:09 -07:00
Mathias Agopian
12af3f6665 update EGL headers to most recent
- add ANDROID extensions missing from official headers:
    EGL_ANDROID_wait_sync
    EGL_ANDROID_presentation_time

Change-Id: I5496d0de123a6279234098c19f9a12220adec876
2013-03-28 14:17:54 -07:00
Mathias Agopian
e9b3dfb7d5 cleanup EGL extensions strings and entry-points
- move all the code related to EGL extensions in one place

- add missing extension strings:
   EGL_KHR_lock_surface
   EGL_KHR_reusable_sync

- add public extensions strings and entry-points
   EGL_ANDROID_wait_sync
   EGL_ANDROID_presentation_time

- add missing entry-points for EGL_KHR_reusable_sync

Change-Id: Ifd98966b549e8efd8ef5385eba0efde8c4cbc77b
2013-03-28 14:17:54 -07:00
Jesse Hall
c9a4e2f7dc am 4194b389: am 0b6c4157: Merge "frameworks/native/opengl: Fix build with gcc 4.8"
* commit '4194b3898df867a5c4377de49ddc72ad3e51122b':
  frameworks/native/opengl: Fix build with gcc 4.8
2013-03-28 13:22:34 -07:00
Duane Sand
46b4253b76 [MIPS] Add MIPS architecture support to opengl framework
Change-Id: Id7704d35bed14d96a85dc1f29db0566cd03872b5
2013-03-28 12:09:36 -07:00
Duane Sand
b43722c3dd [MIPS] Add MIPS architecture support to libagl
Change-Id: I30eb92857a2a6ea867fe0ee45109f17609043aae
2013-03-27 10:53:14 -07:00
Bernhard Rosenkränzer
0f036d43b0 gl_code.cpp: Remove a DOS style newline
Change-Id: Id3edd6e511371fa8b0afef2e90baed4662ed76c4
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2013-03-27 14:06:47 +01:00
Bernhard Rosenkränzer
c80fae6e85 frameworks/native/opengl: Fix build with gcc 4.8
In gcc 4.8, the warning for unused parameters (such as JNIEnv* pointers
in JNI functions that don't need it) is enabled by default - causing
-Werror to break the build.

Change-Id: Ib91721f2cb9912b79c2ac19b4210b1309b08304f
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2013-03-27 14:06:39 +01:00
Mathias Agopian
cab25d680e improved CallStack a bit
- added a ctor that updates and dumps the stack immediately
- added a "logtag" parameter to dump()

Change-Id: Ie51c256071d282591752243bdb4f68cf9ff8829d
2013-03-21 17:12:40 -07:00
Jesse Hall
49385ec7c3 Merge "When disconnecting a surface, cancel don't queue the buffer" into jb-mr2-dev 2013-03-07 23:43:56 +00:00
Jesse Hall
86306b5876 Merge "Defer destroying surfaces until not current" into jb-mr2-dev 2013-03-07 23:41:45 +00:00
Jesse Hall
5f555569e7 When disconnecting a surface, cancel don't queue the buffer
This isn't really right either, but avoids having an extra buffer that
the consumer has to drain which it might not be expecting.

To be correct, disconnecting a surface from a context should retain
the current buffer and continue using it when reconnected. The buffer
should only be canceled when the surface is destroyed. That will wait
for a later change.

Bug: 8320762
Change-Id: I5efa39c741193ca4f5612ea9de001ccbb683b345
2013-03-07 15:21:26 -08:00
Jesse Hall
78141e3acc Defer destroying surfaces until not current
Bug: 8320762
Change-Id: I1320cf87923bcc5b795a86a13193363a49e29653
2013-03-07 15:10:59 -08:00
Mathias Agopian
3cd153a033 another attempt to fix the build
Change-Id: Ie0245db97170cca9a2cd8783b0fd512daf0d30a6
2013-03-06 22:37:33 -08:00
Mathias Agopian
84b470d78f attempt to fix build
Change-Id: Ifb186d2f157ad02f593bf9b681aab53575f183ce
2013-03-06 21:34:39 -08:00
Andy McFadden
7284145d56 Add eglPresentationTimeANDROID
Added EGL extension to set a timestamp on a surface.

Also, fix JNI encoding of "long" in glgen.

Bug 8191230

Change-Id: I38b7334bade3f8ff02bffe600bb74469ef22c164
2013-03-05 10:10:59 -08:00
Mathias Agopian
bf13ba5e77 add some missing parameter validation in GLES java bindings
- added support for comments in checks.spec
- added most missing checks
- added and commented with // special-cased functions
- added and commented with # functions that are still missing validation checks
- moved glGet* to a special case and updated all the "pnames" from the khronos spec
- changed ifcheck to default to 1 value. this allows us to simplify the checks.spec file
  and handle unknown pnames automatically (they'll be validated against 1 value, if
  it happens to need more, the call will go through but the validation will not
  happen).
- refactored the cpp headers in to a common header + GLES version specific
  header

Bug: 7402895
Change-Id: Ib5c68ca0ca416407b4cfa36e3a21901b2d6263ab
2013-02-25 16:50:51 -08:00