summaryrefslogtreecommitdiffstats
path: root/opengl/libs/GLES2
Commit message (Collapse)AuthorAgeFilesLines
* Fix EGL shim extension injection for GL ES 3 drivers.Alistair Strachan2015-05-282-9/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* [MIPS] Fix mips32r1 buildDuane Sand2015-02-021-0/+1
| | | | | | | | Fix regression from 6701fbe5f0d799c5245b0cdf3a69ecdcbfd9fb08 . The rdhwr instruction is unsupported by mips32r1 cpus, but is supported via kernel emulation on those cpus. Change-Id: Ieb3343fff0f0da54003044f451c90e1c761208eb
* Use register numbers instead of register namesNikola Veljkovic2015-01-191-8/+8
| | | | | | | | | | | | 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
* [MIPS] Further opengl support for mips64 and mipsr6Duane Sand2015-01-191-5/+39
| | | | | | | | | | | 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
* EGL: make x86/64 wrappers resistant to -fno-omit-frame-pointer flagMichal Wajdeczko2014-11-121-2/+2
| | | | | | | | 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>
* am e2e17e5b: Merge "GlES2: Add NULL check"Jesse Hall2014-08-061-1/+1
|\ | | | | | | | | * commit 'e2e17e5b238ccd214c72ec1a1864cf391425f09f': GlES2: Add NULL check
| * GlES2: Add NULL checkAnshuman Dani2014-08-061-1/+1
| | | | | | | | | | | | | | | | Check for NULL before calling thread specific glGetString. CRs-fixed: 569609 Change-Id: Ifee8257152ba7ca7a05df5d7b113171b71d16c82
* | am 17cbadf0: am 6fa169fa: Merge "Add aarch64 EGL/GLES trampolines"Jesse Hall2014-06-071-13/+31
|\ \ | |/ | | | | | | * commit '17cbadf0f598b0d02179262ad5b6b270850ccb94': Add aarch64 EGL/GLES trampolines
| * Add aarch64 EGL/GLES trampolinesJesse Hall2014-06-061-13/+31
| | | | | | | | Change-Id: Ia90e18d26ff3bdb7e643aff8d77cbaddd2ac2a03
* | am 92374318: am 618c78c0: am dc273621: Merge "EGL: add x86/64 assembly code ↵Jesse Hall2014-05-271-0/+38
|\ \ | |/ | | | | | | | | | | for EGL/GLES wrappers" * commit '92374318b82945f3d03461f3d0c659adb8409fc5': EGL: add x86/64 assembly code for EGL/GLES wrappers
| * EGL: add x86/64 assembly code for EGL/GLES wrappersmwajdecz2014-05-271-0/+38
| | | | | | | | | | | | | | | | 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>
* | opengl: Regenerate code with ES 3.1 and new extensionsJesse Hall2014-05-213-4/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | opengl: Update GLES headers and generate *.in from registry XMLJesse Hall2014-05-212-287/+518
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import GLES headers from Khronos SVN r26322: https://cvs.khronos.org/svn/repos/registry/trunk/public/gles/api There are many non-functional whitespace and parameter name changes included here. These were introduced upstream when converting from the old .spec registry to the new XML registry. There are also some new extensions added. Unfortunately there isn't a version of the XML that matches the headers the previous versions of the *.in files were generated from, so I can't separate out the non-functional changes from the new extensions (other than temporarily hacking them out of the XML). See below for a list. Finally, I had to hack the official glext.h. Khronos hasn't updated the official GLES1 headers since switching to the XML registry, and there is one critical difference: a "const void**" parameter in the official header is "const void* const*" in the registry. I changed the header to avoid build errors with code generated from the registry. Dependencies on the *.in files required manually updating some GLES_trace/ files as well: - gltrace_api.{h,cpp} must be manually re-generated using tools/genapi.py. - New GL prototypes must be manually added to gltrace.proto. - gltrace.pb.{h,cpp} must be regenerated using aprotoc (see dev.make) New GLES extensions in libs/GLES_CM/glext_api.in: - GL_OES_byte_coordinates - GL_EXT_map_buffer_range - GL_APPLE_copy_texture_levels - GL_APPLE_sync New GLES2 extensions in libs/GLES2/gl2ext_api.in: - GL_KHR_blend_equation_advanced - GL_KHR_debug - GL_OES_sample_shading - GL_OES_texture_storage_multisample_2d_array - GL_EXT_disjoint_timer_query - GL_EXT_draw_buffers - GL_EXT_draw_instanced - GL_EXT_instanced_arrays - GL_EXT_map_buffer_range - GL_EXT_map_buffer_range - GL_EXT_multiview_draw_buffers - GL_EXT_separate_shader_objects - GL_ANGLE_instanced_arrays - GL_ANGLE_translated_shader_source - GL_APPLE_copy_texture_levels - GL_APPLE_sync - GL_INTEL_performance_query - GL_NV_blend_equation_advanced - GL_NV_copy_buffer - GL_NV_draw_instanced - GL_NV_framebuffer_blit - GL_NV_framebuffer_multisample - GL_NV_instanced_arrays - GL_NV_non_square_matrices Bug: 15028495 Change-Id: I902517c23354e14f9c63b1584db286d682315bb5
* | Revert "opengl: Generate *.in from registry XML"Jesse Hall2014-05-202-518/+287
| | | | | | | | | | | | This reverts commit 4a73962c694bfe57eb2bea40ed6fb626be7006aa. Change-Id: I1fa5cbe4d0b86f6df69d616157b3fec68d706d7a
* | opengl: Generate *.in from registry XMLJesse Hall2014-05-192-287/+518
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are many non-functional whitespace and parameter name changes included here. These were introduced upstream when converting from the old .spec registry to the new XML registry. There are also some new extensions added. Unfortunately there isn't a version of the XML that matches the headers the previous versions of the *.in files were generated from, so I can't separate out the non-functional changes from the new extensions (other than temporarily hacking them out of the XML). See below. Finally, I had to hack the official glext.h. Khronos hasn't updated the official GLES1 headers since switching to the XML registry, and there is one critical difference: a "const void**" parameter in the official header is "const void* const*" in the registry. I changed the header to avoid build errors with code generated from the registry. Dependencies on the *.in files required manually updating some GLES_trace/ files as well: - gltrace_api.{h,cpp} must be manually re-generated using tools/genapi.py. - New GL prototypes must be manually added to gltrace.proto. - gltrace.pb.{h,cpp} must be regenerated using aprotoc (see dev.make) New GLES extensions in libs/GLES_CM/glext_api.in: - GL_OES_byte_coordinates - GL_EXT_map_buffer_range - GL_APPLE_copy_texture_levels - GL_APPLE_sync New GLES2 extensions in libs/GLES2/gl2ext_api.in: - GL_KHR_blend_equation_advanced - GL_KHR_debug - GL_OES_sample_shading - GL_OES_texture_storage_multisample_2d_array - GL_EXT_disjoint_timer_query - GL_EXT_draw_buffers - GL_EXT_draw_instanced - GL_EXT_instanced_arrays - GL_EXT_map_buffer_range - GL_EXT_map_buffer_range - GL_EXT_multiview_draw_buffers - GL_EXT_separate_shader_objects - GL_ANGLE_instanced_arrays - GL_ANGLE_translated_shader_source - GL_APPLE_copy_texture_levels - GL_APPLE_sync - GL_INTEL_performance_query - GL_NV_blend_equation_advanced - GL_NV_copy_buffer - GL_NV_draw_instanced - GL_NV_framebuffer_blit - GL_NV_framebuffer_multisample - GL_NV_instanced_arrays - GL_NV_non_square_matrices Bug: 15028495 Change-Id: Ib3fa700a146adf7f1487a93e459b1e6df0dcdc42
* | Disable warnings when generating GL wrappersJesse Hall2014-05-171-0/+2
| | | | | | | | | | Bug: 15028495 Change-Id: Ic0c974e868d05632a06748c90cedbdd409ce2aa8
* | Rationalize GLES2/3 .in files.Jesse Hall2014-05-174-747/+320
|/ | | | | | | | | | | | | | 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
* improve GLES jumptablesMathias Agopian2013-07-011-23/+11
| | | | | | | | | | | 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
* fix local include pathsMathias Agopian2013-04-041-2/+2
| | | | Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
* Fix MIPS assembly variable names to not conflict with GL API parameter namesJesse Hall2013-03-301-8/+8
| | | | Change-Id: I8e93fb55018de53a596cb176d48dbfdf1fd396e4
* am 111d920b: am d3b2c029: Merge "[MIPS] Add MIPS architecture support to ↵Keun-young Park2013-03-281-0/+40
|\ | | | | | | | | | | | | opengl framework" * commit '111d920bb588669006bdd8699e786d6305f14c36': [MIPS] Add MIPS architecture support to opengl framework
| * [MIPS] Add MIPS architecture support to opengl frameworkDuane Sand2013-03-281-0/+40
| | | | | | | | Change-Id: Id7704d35bed14d96a85dc1f29db0566cd03872b5
* | Merge changes Ic344ef63,If9bb02be,Ic8f94634Jesse Hall2013-02-243-11/+751
|\ \ | | | | | | | | | | | | | | | | | | * 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
| * | Add ES3 support to libGLESv2 and tracing toolsJesse Hall2013-02-123-11/+751
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge changes I45836219,I70a4075eJesse Hall2013-02-231-1/+1
|\ \ \ | |/ / | | / | |/ |/| | | * changes: Regenerate API/trace files for constness change Import constness fix from gl3.h into gl2.h.
| * Import constness fix from gl3.h into gl2.h.Alistair Strachan2013-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Simplify OpenGL TLS access on ARM.Elliott Hughes2013-02-131-8/+1
|/ | | | | | bionic now assumes the TLS register is available, so OpenGL can too. Change-Id: If2b56a4c08de9f887759b78f70022026a181dc47
* am a151a19d: Merge "Fix return type of glGetAttribLocation and ↵Andrew Hsieh2012-11-061-2/+2
|\ | | | | | | | | | | | | glGetUniformLocation" * commit 'a151a19db2fa07295837027fb5d84c02401cc78d': Fix return type of glGetAttribLocation and glGetUniformLocation
| * Fix return type of glGetAttribLocation and glGetUniformLocationAndrew Hsieh2012-11-061-2/+2
| | | | | | | | | | | | | | | | | | | | from int to GLint. See: http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetAttribLocation.xml http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetUniformLocation.xml Change-Id: I4a9f8e9e34b8c3cca239ae84bfe8f3cdfd94802a
* | Add runtime debugging capabilities to OpenGLRomain Guy2012-10-181-37/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Revert "Add GL Error logs (temporary)"Chet Haase2012-10-101-9/+1
| | | | | | | | This reverts commit 2da2c15068327a4fdad411f638905abcb2209d8a.
* | Add GL Error logs (temporary)Chet Haase2012-10-041-1/+9
| | | | | | | | | | | | Adding logs to tell which specific methods throw OpenGL errors. Change-Id: I1d73c7566ed1ea6610392020411762c6255a0ede
* | Re-enable FAST_TLS in gl2 codeChet Haase2012-09-281-1/+1
| | | | | | | | | | | | | | Temporarily changed USE_FAST_TLS_KEY ifdef during debugging. Changing it back now. Change-Id: I7c2fcf7265b3d545e31ff7683bd7614100fad3e5
* | New compile-time flags to make debugging easier for us poor soulsRomain Guy2012-09-271-1/+11
| | | | | | | | | | | | Bug #7195815 Change-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43
* | Add compile-time option to systrace GL-ES callsJesse Hall2012-08-131-0/+11
|/ | | | Change-Id: Ibec103bbf159626ad9745d0e071192ad424bc0e9
* Don't wrap EGLImageKHR and EGLSyncKHR anymoreMathias Agopian2012-02-142-26/+2
| | | | | | | | 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-292-1/+15
| | | | | | | | | | | | | | 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
* update GLES headers and add support for corresponding new extensions.Mathias Agopian2012-01-281-4/+187
| | | | Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
* Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-031-1/+1
| | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
* am 4eb1ad5e: am 524a6d8e: Merge "better fix for [3028370] GL get error ↵Mathias Agopian2010-09-231-0/+1
|\ | | | | | | | | | | | | | | | | 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.
| * better fix for [3028370] GL get error should return a valid error if no ↵Mathias Agopian2010-09-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix tons of bugs and add new text rendering support.Romain Guy2010-08-101-2/+18
|/ | | | Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
* update GL ES stub libraries with the new GL ES headersMathias Agopian2010-06-092-31/+106
| | | | Change-Id: I83be94049ddfe3fd7f5bee71a21172ade1498dd5
* Fix Android's glEGLImageTargetRenderbufferOES() wrapperMathias Agopian2010-03-291-1/+1
| | | | | | | glEGLImageTargetRenderbufferOES() pass the wrapped EGLImage to the implementation, rather than the unwrapped one. Change-Id: I149f9ed73e6ab9089110600e1db4311ba7a8c83a
* Use the TLS register if HAVE_ARM_TLS_REGISTER is definedMathias Agopian2009-10-191-3/+11
| | | | | this will be needed for SMP, but would improve dispatching GL calls a bit on armv6 and above.
* fix [2187212] add support for GLESv2 dispatch based on TLSMathias Agopian2009-10-143-180/+3
| | | | | | | | | | | | | 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]
* Added most of the support needed for GLES 2.xMathias Agopian2009-05-275-0/+819