History log of /frameworks/native/opengl/libs/EGL/Loader.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
69e5b1ab80018817b1d4ffbbdb5695ff70168c95 20-Feb-2016 bohu <bohu@google.com> emulator: load vendor specific egl libraries first

Unless emulator specifically asks for gpu emulation on the host
(with ro.kernel.qemu.gles set to 1), always try to load vendor
supplied egl libraries on the guest and fall back to software

qemu.gles will be setup correctly to reflect what gles is actually

Change-Id: Ibaf2209dd1e40fa9f18ff4df27bb137d7ad53007
776951f9db5744c94167d463584e9ee42c849712 06-Nov-2015 Nicolas Capens <capn@google.com> Load the emulation libraries only when qemu.gles=1

Bug 25467020

Change-Id: I4a47f369078af03e4146b3b96a7e7a8e8390da61
(cherry picked from commit 8404ebc7487ebcf317e88c78cbb81e238fb55c3f)
9f8d4e01a02401beeaa3185acd87b140cf881d12 21-Oct-2015 Pablo Ceballos <pceballos@google.com> Revert "Revert "Remove GLTrace support""

This reverts commit e6288e2660e9c310986bff7148fcfb745c13af9a.

Change-Id: Id50a7d471536150bb9e0393e159d66475aa4f473
e6288e2660e9c310986bff7148fcfb745c13af9a 19-Oct-2015 Pablo Ceballos <pceballos@google.com> Revert "Remove GLTrace support"

This reverts commit 5bf6f3b5bf06e04a742bde8d40409d3c9e434c05.

Change-Id: I25a2d9b4a4b219cb76b405db1f68997519361cd6
5bf6f3b5bf06e04a742bde8d40409d3c9e434c05 05-Oct-2015 Pablo Ceballos <pceballos@google.com> Remove GLTrace support

GLTrace is defunct, it does not support newer GL features, breaks
security requirements, and has no supported tooling now that Eclipse
is at end of life.

Bug 22329852

Change-Id: I69e26da04cd78b5a196487c41bce456fd3c725c9
c2466e6f005e9cbeea7764e9d8864fa6bca17633 09-Jul-2015 Evgenii Stepanov <eugenis@google.com> With SANITIZE_TARGET, load EGL libs from the instrumented path.

Bug: 21785137
Change-Id: Iac56419a9ca776c5704bed44d3f0a1a1edd9d172
c0ec5e2333b6350480851b8b48f000c78ea3f88a 27-Jan-2014 Michael Chock <mchock@nvidia.com> Expose core EGL entry points to eglGetProcAddress

Required behavior for EGL_KHR_get_all_proc_addresses.

Change-Id: I1e6209ef3cb9f2fa6f22808b077c35139d4cb814
8edb8f5f2d016e4e31530ad7a0c44a4a7a853f64 16-Feb-2014 Dan Willemsen <dwillemsen@nvidia.com> Use /(vendor|system)/lib64/egl for 64-bit EGL libraries

Change-Id: Ie64806bfe4ba60a3167b84685cf983d4ada1042d
f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2e 29-Aug-2013 Mathias Agopian <mathias@google.com> try to keep omap4 alive

Bug: 10527646
Change-Id: Iec572a910e932115cf4f2e1215142b10cd91bd6f
94cdba97ce1de140623d84c14fb15f12f7da89dd 11-Jul-2013 Jesse Hall <jessehall@google.com> resolved conflicts for merge of 5477d0e4 to master

Change-Id: I7ca75a44018a68bf3a7ac1de17a3ef568a48d2ac
c07b52060acd627c8510c1a9151e0753fce76330 04-Jul-2013 Jesse Hall <jessehall@google.com> 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
993814255fc248454368ed9fe34b4703a05eaf99 23-Apr-2013 Mathias Agopian <mathias@google.com> change how the userspace GLES drivers are named

for single library:

for multiple libraries:

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
b4ba50dd833d8b94043635663f2ee1ad0cb54b35 23-Apr-2013 Mathias Agopian <mathias@google.com> 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


Change-Id: I739dd1c838fbc24c5643a631fae19713a8ef1717
39c24a20bbc697630d2b92c251b70c04d6f9d00c 05-Apr-2013 Mathias Agopian <mathias@google.com> fix local include paths

Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
d75f84d6410da934d1b1760fdc0d05d4ba1e8f35 06-Jun-2012 Mathias Agopian <mathias@google.com> reduce PB size from 2MB to 512KB

this allows us to enable h/w acceleration on low-end
devices while keeping memory usage down.

Bug: 6557760
Change-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9
7773c435bc5da8217433e1b242d3a6712a17b5f7 14-Feb-2012 Mathias Agopian <mathias@google.com> EGLConfig is now not remaped to an internal EGLConfig

this is possible now that we support only a single
EGL implementation. this allows a large code simplification.

Change-Id: I7a6b9db4c5d60f4407c6061e7a68729af63d5242
ada798b7ca7cabc255aa159964b64975e7fdb2df 14-Feb-2012 Mathias Agopian <mathias@google.com> remove multiplexing of multiple EGL implementation

from now on, the system can only have one EGL
implementation. this means the software and h/w renderer
cannot be used at the same time on a device. Of course, the
h/w renderer is always prefered; in its absence we
default to the software renderer.

Change-Id: Ib579f58055dd0ce4c4a99144131efa11c16ca3d3
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
e6f43ddce78d6846af12550ff9193c5c6fe5844b 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
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
0469dd6d55fa331bfd7de9431da98b6340d82271 01-Dec-2011 Siva Velusamy <vsiva@google.com> glestrace: Framework for GLES tracing library

This patch provides a framework for tracing GLES 1.0 and 2.0
functions. It is missing a lot of features, but here are the
things it accomplishes:

- Stop building the glesv2dbg library, and build the
glestrace library instead.
- Replace the hooks for glesv2dbg with the ones for glestrace.
- Add the basics for the trace library. Currently, this
traces all GL functions, but not all required data is
sent for all the functions. As a result, it will not
be possible to reconstruct the entire GL state on the
host side.

The files gltrace.pb.* and gltrace_api.* are both generated
using the tools/genapi.py script.

Change-Id: Id60a468f7278657f008bc6ea1df01f9bdfecfdd3
80b30c24ffc0f67b87d7a6b29f616d1c521d40ae 26-Aug-2011 David 'Digit' Turner <digit@android.com> opengl: EGL: special case for GLES emulation

This patch modifies the library loaded in libEGL.so to
handle the case of GLES emulation as follows:

- if we detect that we run inside the emulator, check the
GPU emulation status through ro.kernel.qemu.gles, which
will be set to 1 if supported, or 0 otherwise.

When trying to run on an older version of the emulator,
the kernel parameter will not be defined at all.

- if GPU emulation is supported, use egl.cfg as usual.
It will contain a line like "0 0 emulation" that will
load libEGL_android.so appropriately.

- nothing is changed if we don't run inside the emulator.

NOTE: Ideally, we would modify libEGL_emulation.so to
redirect all calls to libEGL_android.so in this case.

However, this turns out to be extremely tedious to implement
(too many functions with different signatures).

As such, it is much simpler to make the check before
loading the library.

Change-Id: I9930bc168d9013cc8700feedc57b979384467c37
1cadb25da1ed875bdd078270e642966724a0c39a 24-May-2011 Mathias Agopian <mathias@google.com> fix x86 build

Change-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10
0ad71a97c6061e3b12d2308bd43e02dfeeb63db4 12-May-2011 Mathias Agopian <mathias@google.com> fix (Again) adding OES postfix when looking for gl functions

Change-Id: Ib14723ed5355fdc423226ec20a32e26fe7dd68fe
e647f3c76c5d401d5b1cc0d8a08b314bf467113d 28-Jan-2011 Jeff Boody <jboody@quicinc.com> add OES postfix without truncating function

Change-Id: Id47304cf38914190cec58d703801f456ab916f63
65948aa0466e3e833c5a4e4feec78c787d8769a7 11-Mar-2011 David Li <davidxli@google.com> GLES2Debugger: Added DbgContext and vertex data capturing.

Send VBO related commands to client, which tracks the state.
Maintain index buffer content and vertex attrib pointer/buffer state on server.
During glDrawArrays/Elements, send user memory data to client.

Change-Id: Ia920e90479329b301ae4b5735e833eeb20293c94
Signed-off-by: David Li <davidxli@google.com>
2f5a6557ef6a7b9fd33077cfd8a037904d41e3bd 02-Mar-2011 David Li <davidxli@google.com> Initial commit of GLESv2 debugger server

Use debug.egl.debug_proc property to match process cmdline.
Binds to TCP:5039 and waits for client connection.
Sends function call parameters, textures and shaders using Protobuf.
Java Eclipse client plug-in is next.

Change-Id: I183b755263663f87e86dde1ad12f527d0445fd57
Signed-off-by: David Li <davidxli@google.com>
2b9e4f6a2490864ead44e88a68da78be5cb3da22 20-Sep-2010 Brian Swetland <swetland@google.com> support loading EGL libraries from /vendor/lib/egl as well as /system/lib/egl

Change-Id: Idd9ca85ce3ba6c92234375071b53e5365e689062
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
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]
8c17384a5edd027376926b857af1fb170dbe9b43 21-Sep-2009 Mathias Agopian <mathias@google.com> log an error when loading an existing GL driver fails
baca89c06a40c6c19ae2294fb4263d893126320c 21-Aug-2009 Mathias Agopian <mathias@google.com> fix a bug in ComponentSizeChooser where it could pick a software EGLConfig instead of a better h/w one.

We now just try to honor the stencil / depth buffer "at least", while doing a "shortest distance" on the colors.
574c16f9f89ab18c7b54e9b262ef3d5359a2a709 29-Jul-2009 Mathias Agopian <mathias@google.com> GLESv2 couldn't be loaded due to wrong path specification
fc865658b455de3bfbac609de391aaa44bea0748 08-Jul-2009 Marco Nelissen <marcone@google.com> Make opengl loader use an absolute path.
f909cb6c69aa3ac8ffb6a2b9cd565b4b1e8b99c0 04-Jun-2009 Mathias Agopian <mathias@google.com> remove some spurious debuging LOGD
acdebe352dc7dadc1122a87d45137fd2441b329a 04-Jun-2009 Mathias Agopian <mathias@google.com> fix/clean these Android.mk following dbort and joeo's comments
de58697644a52a614ad9498aa087e95d4a223673 29-May-2009 Mathias Agopian <mathias@google.com> implement a real loader for EGL drivers

we now look for a config file in /system/lib/egl/egl.cfg that describes the association of a display to a driver.
these drivers are named: /system/lib/egl/lib{[EGL|GLESv1_CM|GLESv2] | GLES}_$TAG.so