summaryrefslogtreecommitdiffstats
path: root/opengl/libs/egl_impl.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix EGL shim extension injection for GL ES 3 drivers.Alistair Strachan2015-05-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Don't wrap EGLImageKHR and EGLSyncKHR anymoreMathias Agopian2012-02-141-1/+0
| | | | | | | | 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
* add support for GL_EXT_debug_markerMathias Agopian2012-01-291-0/+1
| | | | | | | | | | | | | | 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
* fix x86 buildMathias Agopian2011-05-231-15/+0
| | | | Change-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10
* refactor EGL source codeMathias Agopian2011-05-161-0/+5
| | | | | no changes is functionality. split various objects into their own files. make egl_display objec's lock internal.
* small cleanup. gEGLImpl should have been staticMathias Agopian2010-04-091-0/+1
| | | | | | | also added a ctor to initialized it in case we use it ont he stack one day. Change-Id: I2736b9bce3d8ba3b74fd029de4c18cca2cdbbf60
* fix [2187212] add support for GLESv2 dispatch based on TLSMathias Agopian2009-10-141-3/+4
| | | | | | | | | | | | | 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]
* fix bug [2021677] egl driver unloaded after eglTerminate() is calledMathias Agopian2009-08-171-1/+0
| | | | | | | | | | refactored the code so that: - EGL APIs that can be called before or after eglInitialize() will work by loading the drivers first - make eglGetDisplay() a lot more efficient - make sure that EGL drivers are loaded in a thread-safe way - don't unload the drivers upon calling eglTerminate(), they're now never unloaded, since there is no safe way to do it (some thread could be running) - updated our EGL version to 1.4 - return better error codes if errors happen during initialization
* implement a real loader for EGL driversMathias Agopian2009-05-281-1/+1
| | | | | 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
* Merge commit 'goog/master' into merge_masterMathias Agopian2009-05-141-1/+2
|\ | | | | | | | | | | | | Conflicts: opengl/libagl/Android.mk opengl/libs/Android.mk opengl/libs/egl_impl.h
| * only export the GL entry-points, hide everything else.Mathias Agopian2009-05-081-0/+2
| | | | | | | | | | | | | | | | Conflicts: opengl/libagl/Android.mk opengl/libs/Android.mk opengl/libs/egl_impl.h
* | Integrate from //sandbox/mathias/donut/...@145728Mathias Agopian2009-04-101-0/+3
|/ | | | SurfaceFlinger rework for new EGL driver model support.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+43
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-43/+0
|
* auto import from //branches/cupcake/...@130745The Android Open Source Project2009-02-101-0/+43