History log of /frameworks/native/opengl/libs/GLES2/gl2.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
edfe72ed6738d3798c5384b7aec8ab73af549d79 22-May-2015 Alistair Strachan <alistair.strachan@imgtec.com> Fix EGL shim extension injection for GL ES 3 drivers.

The Android EGL shim injects GL_EXT_debug_marker into the ES driver
EXTENSIONS string for the OpenGL ES 1.x and 2.0/3.0/3.1 drivers if
the extension is not already provided. This feature is used by
GLES_trace.

In Open GL ES 3.0 it became possible to query an indexed version of
the EXTENSIONS string via GetStringi(). NUM_EXTENSIONS Gets were
also added to the specification (taken from Open GL).

If the shim does not have to inject the extension, then there is no
problem, as glGetString() and glGetStringi() / NUM_EXTENSIONS will
be consistent. However, if the Android EGL shim injects the
extension, NUM_EXTENSIONS and GetStringi() will report one less
extension than is really available.

Consistency between these methods is tested by the dEQP framework
with the dEQP-GLES3.functional.state_query.string.extensions test.
If the driver does not provide GL_EXT_debug_marker, this test
fails.

This change wraps all of the affected entry points so that the
wrapped driver extensions are never visible directly to dEQP,
eliminating the inconsistency.
/frameworks/native/opengl/libs/GLES2/gl2.cpp
ecacc3f164f2bf2c8c4ff5a20496511249d2cd4b 03-Feb-2015 Duane Sand <duane.sand@imgtec.com> [MIPS] Fix mips32r1 build

Fix regression from 6701fbe5f0d799c5245b0cdf3a69ecdcbfd9fb08 .
The rdhwr instruction is unsupported by mips32r1 cpus, but is
supported via kernel emulation on those cpus.

Change-Id: Ieb3343fff0f0da54003044f451c90e1c761208eb
/frameworks/native/opengl/libs/GLES2/gl2.cpp
5f5f65183c9a77bd4b5dc63b5767af69ac938b39 26-Dec-2014 Nikola Veljkovic <Nikola.Veljkovic@imgtec.com> Use register numbers instead of register names

Avoid ambiguity by using register numbers. Register names are
interpreted depending on the ABI. Fixes the issue with mips64 gcc,
where registers t0-t4 are translated into $8-$11 (o32 ABI) instead
of $12-$15 (o64 ABI).

Also, use t9 ($25) for storing function address
(in getProcAddress.cpp).

Change-Id: I12ef5cd98bf14dab3c01f2756889cc02856c1cd8
/frameworks/native/opengl/libs/GLES2/gl2.cpp
6701fbe5f0d799c5245b0cdf3a69ecdcbfd9fb08 26-Nov-2014 Duane Sand <duane.sand@imgtec.com> [MIPS] Further opengl support for mips64 and mipsr6

Combines 4 patches by Dragoslav and Douglas:

Use t9 to hold the address of the called function.
Add support for gl binding.
Fix inline assembly code to be R6 compatible.
Fix some more inline assembly code to be R6 compatible.

Change-Id: I0b899813790b2ba4ca538bb21692014cc1933f66
/frameworks/native/opengl/libs/GLES2/gl2.cpp
701048cbe8d35fcd7e00c875e128fae022b27607 08-Aug-2014 Michal Wajdeczko <michal.wajdeczko@intel.com> EGL: make x86/64 wrappers resistant to -fno-omit-frame-pointer flag

Wrapper functions were broken on builds that forced -fno-omit-frame-pointer flag.

Change-Id: I5a80f9587fb3db821b4156af56acda59a0b4579b
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Yong Yao <yong.yao@intel.com>
/frameworks/native/opengl/libs/GLES2/gl2.cpp
83142a12fbc1249c53551765e3d99b4471b58f19 06-Aug-2014 Jesse Hall <jessehall@google.com> am e2e17e5b: Merge "GlES2: Add NULL check"

* commit 'e2e17e5b238ccd214c72ec1a1864cf391425f09f':
GlES2: Add NULL check
0627071cc983aadb8d7447fe222b05d15c7c25be 05-Nov-2013 Anshuman Dani <adani@codeaurora.org> GlES2: Add NULL check

Check for NULL before calling thread specific glGetString.

CRs-fixed: 569609

Change-Id: Ifee8257152ba7ca7a05df5d7b113171b71d16c82
/frameworks/native/opengl/libs/GLES2/gl2.cpp
0d7271527fa48c26b657d689faffbc94c93e5b3c 07-Jun-2014 Jesse Hall <jessehall@google.com> am 17cbadf0: am 6fa169fa: Merge "Add aarch64 EGL/GLES trampolines"

* commit '17cbadf0f598b0d02179262ad5b6b270850ccb94':
Add aarch64 EGL/GLES trampolines
30a41aa1ccc47de41642308a243fa5df2bfeec06 31-May-2014 Jesse Hall <jessehall@google.com> Add aarch64 EGL/GLES trampolines

Change-Id: Ia90e18d26ff3bdb7e643aff8d77cbaddd2ac2a03
/frameworks/native/opengl/libs/GLES2/gl2.cpp
c2774f9b7341980c626c52a70e4fdf64d1b426e8 28-May-2014 Jesse Hall <jessehall@google.com> am 92374318: am 618c78c0: am dc273621: Merge "EGL: add x86/64 assembly code for EGL/GLES wrappers"

* commit '92374318b82945f3d03461f3d0c659adb8409fc5':
EGL: add x86/64 assembly code for EGL/GLES wrappers
c80aafa61d619087a879dc1095ddf1ca2a5e69fb 26-May-2014 mwajdecz <michal.wajdeczko@intel.com> EGL: add x86/64 assembly code for EGL/GLES wrappers

There was no explicit support for x86/64 architecture in EGL/GLES wrappers.
This resulted either in failures or sub-optimal implementation of the wrapper functions.

Change-Id: I20d99d7372fbf642ee4b94a05c8cb971cba29988
Signed-off-by: Wajdeczko, Michal <michal.wajdeczko@intel.com>
/frameworks/native/opengl/libs/GLES2/gl2.cpp
fca1b54031a1ba2a3c82bbbbe71716cd7e6a61d7 18-May-2014 Jesse Hall <jessehall@google.com> opengl: Regenerate code with ES 3.1 and new extensions

Enable ES 3.1 generation in glgen.py, and regenerate everything to add
support for that as well as these new extensions in the registry:
- EXT_copy_image
- EXT_draw_buffers_indexed
- EXT_geometry_shader
- EXT_gpu_shader5
- EXT_primitive_bounding_box
- EXT_shader_implicit_conversions
- EXT_shader_io_blocks
- EXT_tessellation_shader
- EXT_texture_border_clamp
- EXT_texture_buffer
- EXT_texture_cube_map_array
- EXT_texture_view

Bug: 15028495
Change-Id: I3f45a7ef5367c70e54ce6b36a8c030ae11033434
/frameworks/native/opengl/libs/GLES2/gl2.cpp
fe3b15a5b0e580a5775b0e0dbf222132fdcfa856 20-May-2014 Jesse Hall <jessehall@google.com> Revert "opengl: Regenerate code with ES 3.1 and new extensions"

This reverts commit 6cb7d3dc9f1ce37547646979e0625992264ea4d0.

Change-Id: I2eb7fd721dda9c14a0bfcef1b1c9d9843bbec94b
/frameworks/native/opengl/libs/GLES2/gl2.cpp
6cb7d3dc9f1ce37547646979e0625992264ea4d0 18-May-2014 Jesse Hall <jessehall@google.com> opengl: Regenerate code with ES 3.1 and new extensions

Enable ES 3.1 generation in glgen.py, and regenerate everything to add
support for that as well as these new extensions in the registry:
- EXT_copy_image
- EXT_draw_buffers_indexed
- EXT_geometry_shader
- EXT_gpu_shader5
- EXT_primitive_bounding_box
- EXT_shader_implicit_conversions
- EXT_shader_io_blocks
- EXT_tessellation_shader
- EXT_texture_border_clamp
- EXT_texture_buffer
- EXT_texture_cube_map_array
- EXT_texture_view

Bug: 15028495
Change-Id: I35acb473cba2433b9aeb95d1b8bfbdcfadf22532
/frameworks/native/opengl/libs/GLES2/gl2.cpp
bbbddb83bbd3ca2032294b55c91b1023acc927ac 14-May-2014 Jesse Hall <jessehall@google.com> Disable warnings when generating GL wrappers

Bug: 15028495
Change-Id: Ic0c974e868d05632a06748c90cedbdd409ce2aa8
/frameworks/native/opengl/libs/GLES2/gl2.cpp
4c0596f4cc7d3a0bbbe5862cb38585a58ef4d0a3 14-May-2014 Jesse Hall <jessehall@google.com> Rationalize GLES2/3 .in files.

We weren't using gl2_api.in, since gl3_api.in was a superset. And
gl3ext_api.in was empty, and Khronos has decided to keep it that way
(any GLES2/3/... extensions will be in gl2ext.h).

Since libGLES2.so will have all future backwards-compatible GLES APIs,
it makes sense to just use gl2_api.in and gl2ext_api.in to build its
contents. This changes renames gl3_api.in to gl2_api.in and updates
uses of it, and removes gl3ext_api.in and references.

Bug: 15028495
Change-Id: I0745eda27ec91ee625f03e957e4fdb22035dd781
/frameworks/native/opengl/libs/GLES2/gl2.cpp
e0ea89ceef3b0fc5f3efc5d709a8156f0628c6c8 15-Jun-2013 Mathias Agopian <mathias@google.com> 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
/frameworks/native/opengl/libs/GLES2/gl2.cpp
39c24a20bbc697630d2b92c251b70c04d6f9d00c 05-Apr-2013 Mathias Agopian <mathias@google.com> fix local include paths

Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
/frameworks/native/opengl/libs/GLES2/gl2.cpp
441f69463ec595ad42fdaad1bbfbb0f7a932437c 31-Mar-2013 Jesse Hall <jessehall@google.com> Fix MIPS assembly variable names to not conflict with GL API parameter names

Change-Id: I8e93fb55018de53a596cb176d48dbfdf1fd396e4
/frameworks/native/opengl/libs/GLES2/gl2.cpp
ea116f1acb911963751d72515714803aeae95d59 29-Mar-2013 Keun-young Park <keunyoung@google.com> am 111d920b: am d3b2c029: Merge "[MIPS] Add MIPS architecture support to opengl framework"

* commit '111d920bb588669006bdd8699e786d6305f14c36':
[MIPS] Add MIPS architecture support to opengl framework
46b4253b760916ea8f64c8c32a51ae85ec3b050e 27-Mar-2013 Duane Sand <duane.sand@imgtec.com> [MIPS] Add MIPS architecture support to opengl framework

Change-Id: Id7704d35bed14d96a85dc1f29db0566cd03872b5
/frameworks/native/opengl/libs/GLES2/gl2.cpp
f5c7cb316cc8c8e2d6ae93a659ac771420cbfa2b 24-Feb-2013 Jesse Hall <jessehall@google.com> Merge changes Ic344ef63,If9bb02be,Ic8f94634

* 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
288870ebc3da8121b7a237a53280bd8b931b7a2f 14-Feb-2013 Elliott Hughes <enh@google.com> Simplify OpenGL TLS access on ARM.

bionic now assumes the TLS register is available, so OpenGL can too.

Change-Id: If2b56a4c08de9f887759b78f70022026a181dc47
/frameworks/native/opengl/libs/GLES2/gl2.cpp
4774338bd0ad1ebe42c311fd0c72f13786b5c800 08-Feb-2013 Jesse Hall <jessehall@google.com> Add ES3 support to libGLESv2 and tracing tools

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
/frameworks/native/opengl/libs/GLES2/gl2.cpp
16928bfeca8858a0acae6942fc68c14a040b92ff 19-Oct-2012 Romain Guy <romainguy@google.com> Add runtime debugging capabilities to OpenGL

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
/frameworks/native/opengl/libs/GLES2/gl2.cpp
8d5d2019805df1f27cbec07eeca47dd5ab453dad 08-Oct-2012 Chet Haase <chet@google.com> Revert "Add GL Error logs (temporary)"

This reverts commit 2da2c15068327a4fdad411f638905abcb2209d8a.
/frameworks/native/opengl/libs/GLES2/gl2.cpp
2da2c15068327a4fdad411f638905abcb2209d8a 05-Oct-2012 Chet Haase <chet@google.com> Add GL Error logs (temporary)

Adding logs to tell which specific methods throw OpenGL errors.

Change-Id: I1d73c7566ed1ea6610392020411762c6255a0ede
/frameworks/native/opengl/libs/GLES2/gl2.cpp
e8b0fac720b249639fa1cf2f3a06f7d88d207b76 28-Sep-2012 Chet Haase <chet@google.com> Re-enable FAST_TLS in gl2 code

Temporarily changed USE_FAST_TLS_KEY ifdef during debugging. Changing it
back now.

Change-Id: I7c2fcf7265b3d545e31ff7683bd7614100fad3e5
/frameworks/native/opengl/libs/GLES2/gl2.cpp
f12fe43e8c280923fde743f22cea238e48c929f1 28-Sep-2012 Romain Guy <romainguy@google.com> New compile-time flags to make debugging easier for us poor souls
Bug #7195815

Change-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43
/frameworks/native/opengl/libs/GLES2/gl2.cpp
7e5099a9ece6a3ed7edb1b5bf60a43422428326c 02-Aug-2012 Jesse Hall <jessehall@google.com> Add compile-time option to systrace GL-ES calls

Change-Id: Ibec103bbf159626ad9745d0e071192ad424bc0e9
/frameworks/native/opengl/libs/GLES2/gl2.cpp
7c0441ac271f4e00a2d63eb3048c037ebffa90b9 15-Feb-2012 Mathias Agopian <mathias@google.com> Don't wrap EGLImageKHR and EGLSyncKHR anymore

this simplify our EGL wrapper implementation a lot.
This wrapping is no longer needed now that we can only
support a single underlaying EGL implementation.

Change-Id: I8213df7ac69daac447f1fe6e37044b78aac4e9a9
/frameworks/native/opengl/libs/GLES2/gl2.cpp
48d438d05f14c2f4bd83ae89f520368cd49122df 29-Jan-2012 Mathias Agopian <mathias@google.com> add support for GL_EXT_debug_marker

This extension is always added to the GL_EXTENSIONS
extension string for the current GL context, regardless
of if it's supported by the h/w driver.

The extension itself will be handled by GLES_trace (eventually),
when GLES_trace is not enabled, it'll result to a no-op.

If the h/w implementation has this extension, we'll call that version
instead of our dummy version.

Change-Id: Ie5dd3387c4d45cd5ed5f03b73bda6045620a96bc
/frameworks/native/opengl/libs/GLES2/gl2.cpp
9d4536835248525f32f1504a3d28d5bbfa0a2910 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/native/opengl/libs/GLES2/gl2.cpp
30faafb7d3544ab013958fbc920c1bc4d3f05472 24-Sep-2010 Mathias Agopian <mathias@google.com> am 4eb1ad5e: am 524a6d8e: Merge "better fix for [3028370] GL get error 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.
6f0871222f04dfeb479d37fe9753d491e3150e42 24-Sep-2010 Mathias Agopian <mathias@google.com> better fix for [3028370] GL get error should return a valid error if no 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
/frameworks/native/opengl/libs/GLES2/gl2.cpp
761eaed2ffc5022606de252997630dbcd9e805d9 10-Aug-2010 Romain Guy <romainguy@google.com> Fix tons of bugs and add new text rendering support.

Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
/frameworks/native/opengl/libs/GLES2/gl2.cpp
8fb47ec10e7f4dad630fcac4ed47d243d4f33375 30-Mar-2010 Mathias Agopian <mathias@google.com> Fix Android's glEGLImageTargetRenderbufferOES() wrapper

glEGLImageTargetRenderbufferOES() pass the wrapped EGLImage
to the implementation, rather than the unwrapped one.

Change-Id: I149f9ed73e6ab9089110600e1db4311ba7a8c83a
/frameworks/native/opengl/libs/GLES2/gl2.cpp
673d2dbaae647abc58b08de873fd364f0b2fa3f5 14-Oct-2009 Mathias Agopian <mathias@google.com> 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.
/frameworks/native/opengl/libs/GLES2/gl2.cpp
618fa10949c42eb83fa5fe105fe542bcff833dda 14-Oct-2009 Mathias Agopian <mathias@google.com> 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]
/frameworks/native/opengl/libs/GLES2/gl2.cpp
b1a39d67be99fe6c4545b25e10ac82a5dd1df634 28-May-2009 Mathias Agopian <mathias@google.com> Added most of the support needed for GLES 2.x
/frameworks/native/opengl/libs/GLES2/gl2.cpp