Just a search-and-replace on the glGetActiveAttrib special-case, since
they have the same signature and parameter handling.
Bug: 8566953
Change-Id: I40834d6f32bf9ecb39718df29036aa2d1bbfa07a
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
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
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
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
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
- 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
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>
- added a ctor that updates and dumps the stack immediately
- added a "logtag" parameter to dump()
Change-Id: Ie51c256071d282591752243bdb4f68cf9ff8829d
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
Added EGL extension to set a timestamp on a surface.
Also, fix JNI encoding of "long" in glgen.
Bug 8191230
Change-Id: I38b7334bade3f8ff02bffe600bb74469ef22c164
- 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
* changes:
Symlink /system/lib/libGLESv3.so -> libGLESv2.so
Add ES3 support to libGLESv2 and tracing tools
Import OpenGL ES 3.0 headers from Khronos SVN
- it looks like UserId has been renamed to UserHandle in the
framework.
- also for some reason I don't understand glgen didn't seem
to be up to date with respect to the generated bindings in the tree.
It's like the bindings were generated with a more recent version of
glgen (maybe it was never checked in). So we fix that here.
Change-Id: Ie49522ebf67fcab9213246b4d93500e37a3cbc05
The platform has a unified GLES2/GLES3 wrapper in libGLESv2.so, which
is what bundled binaries should link against. The NDK will have
separate GLES2 and GLES3 libraries so that applications will get a
link error if they accidentally use GLES3 entry points in a GLES2
application. This symlink allows GLES3 NDK apps to load using the
unified wrapper.
Change-Id: Ic344ef63c334047fccebb55b7cb2fb23a4c2d61b
Since ES3 is backwards compatible with ES2, a new wrapper isn't
necessary, and the Khronos implementation guidelines recommend
supporting both versions with the same library.
Change-Id: If9bb02be60ce01cc5fe25d1f40c4e7f37244ebf6
Add MODULE_LICENSE_MIT: The GLES headers use an MIT license or a
slight variant of it (the "SGI Free Software License B version 2.0",
http://oss.sgi.com/projects/FreeB/).
Change-Id: Ic8f946341cdd0d579f51b6f7a3ee109cd31b1691
This change has been made in Khronos SVN for GLES2 already, however it
is mildly controversial and discussion is on-going.
This change is necessary for Android because otherwise applications
cannot include both GLES2/gl2.h and GLES3/gl3.h as the glShaderSource()
prototype mismatches. Native programs may include framework headers
(which now include GLES3 headers only) but already have included GLES2
headers, creating an incompatibility.
Change-Id: I70a4075e079ee063e76cef5a227abb0ae70aebb4
Avoids irrelevant output differences based on the user's locale. The
current output files were generated with a C or POSIX locale, and sort
differently under en_US.UTF-8.
Change-Id: I0dd85475e9ee2d58e7fa9fe2a4f86ad5c8142e00
# By luliuhui
# Via Android Git Automerger (1) and others
* commit '873ab60e94811488caea1906eb98133329a3e28f':
Gfx-3d: fix GetProcAddress in egl extention
This patch can fix issue when Proc address return NULL.
Glbench10, egl-ext and conformance test need this patch to run pass.
Change-Id: I275c7cb6f77cb334c3ee7fa23cd696bba1c5a458
Author: Liuhui Lu <liuhui.lu@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 52622
Currently, to activate OpenGL tracing, an application has to be
start with --opengl-trace option (or have a debug prop set).
This CL adds support for tracing an application which may already
be running. This is implemented as follows:
- DDMS initiates a JDWP message to the VM indicating that
opengl traces be enabled.
- When that message is received, a flag is set that indicates
that tracing should be enabled.
- The trace flag is checked during every eglSwap() operation,
and if it finds that tracing should be active and it isn't,
then it starts the tracing component.
Change-Id: I3347fe89fc06c7404d7aa9360f4b21e5bf36ebcb
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.
Bug 7736700
Change-Id: Ia03e468888025b5cae3c0ee1995434515dbea387
No significant changes. The extensions now have assigned extensions
numbers. And Jon Leech added missing suffixes in the declaration of
eglSetBlobCacheFuncsANDROID; our header and code already had the
suffix.
Change-Id: I2faad8ebe0ca81b13e29729a15515ee6b17b94b2
This change replaces all references to the "EGL_NO_NATIVE_FENCE_ANDROID" enum
with "EGL_NO_NATIVE_FENCE_FD_ANDROID".
Bug: http://code.google.com/p/android/issues/detail?id=40295
(cherry-pick from master)
Change-Id: Ie25d4ab9721d8b69b8d4afcf18e902ef8e3ad911
This change replaces all references to the "EGL_NO_NATIVE_FENCE_ANDROID" enum
with "EGL_NO_NATIVE_FENCE_FD_ANDROID".
Bug: http://code.google.com/p/android/issues/detail?id=40295
Change-Id: I049b2ba185c2dbdccb8fc069701dbe805d63f645
The shell property debug.egl.trace can now be set to:
0
disables tracing
1
logs all GL calls
error
checks glGetError after every GL call, logs a stack trace on error
systrace
logs each GL call to systrace
Change-Id: I34a2a2d4e19c373fd9eaa1b0cd93e67c87378996
The debugging and tracing levels are initialized both during
early_egl_init and egl_display_t::initialize(). For apps this has
no effect since early_egl_init is called in the context of zygote.
This CL removes the unnecessary call from early_egl_init.
Change-Id: Ibc55c26228cd197f2e2623fbfb2d1a63d0722401
This change adds a new extension for EGL implementations to indicate the
EGLConfigs that support use as a HWComposer framebuffer target layer.
Change-Id: Ia7c8fbe8da09d57b4ec8bf1d9ddb67ca21aa2885
This change fixes a bug where initializing EGL multiple times (eglTerminate
followed by eglInitialize) would cause extensions to show up in the extension
string multiple times.
Change-Id: I707a3da62ed30ef13835087167f84a08bc6addd7
This change adds support for the EGL_ANDROID_native_fence_sync extension to the
Android EGL layer. It also fixes a couple minor issues with the extension spec.
Change-Id: Ic8829d21f37b701f33aa9c72c3d25e88e03fa3cd
This change updates the extension spec to refer to generic "native fence sync
objects" rather than "Android fence sync objects."
Change-Id: I15a79f08571586431845b54c58c8420b652f40ef
eglGetRenderBufferANDROID was removed as it had no users. This commit
reintroduces this extensions as it's used by Qualcomm graphics HAL.
Change-Id: I493306830a0d4f8722a42bcc84fb49236afdabeb
Certain apps (e.g. chrome) seem to create contexts which are unused
for long periods of time. If tracing is stopped before those contexts
are used, then the debugger never gets to know that these contexts
were created. Flushing the trace after these calls ensures that
the debugger knows about all created/used contexts.
Change-Id: I01baa11aa56ac89eddce3c2851e4bf01076984d1
This fixes the glgen code generation for methods
which have a buffer arg that can be NULL.
Bug: 6845189
Change-Id: I5fb745b806601e5665f97bfd15fd865cd9c241ed