| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Fix regression from 6701fbe5f0d799c5245b0cdf3a69ecdcbfd9fb08 .
The rdhwr instruction is unsupported by mips32r1 cpus, but is
supported via kernel emulation on those cpus.
Change-Id: Ieb3343fff0f0da54003044f451c90e1c761208eb
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| | |
* commit 'e2e17e5b238ccd214c72ec1a1864cf391425f09f':
GlES2: Add NULL check
|
| |
| |
| |
| |
| |
| |
| |
| | |
Check for NULL before calling thread specific glGetString.
CRs-fixed: 569609
Change-Id: Ifee8257152ba7ca7a05df5d7b113171b71d16c82
|
|\ \
| |/
| |
| |
| | |
* commit '17cbadf0f598b0d02179262ad5b6b270850ccb94':
Add aarch64 EGL/GLES trampolines
|
| |
| |
| |
| | |
Change-Id: Ia90e18d26ff3bdb7e643aff8d77cbaddd2ac2a03
|
|\ \
| |/
| |
| |
| |
| |
| | |
for EGL/GLES wrappers"
* commit '92374318b82945f3d03461f3d0c659adb8409fc5':
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| | |
This reverts commit 4a73962c694bfe57eb2bea40ed6fb626be7006aa.
Change-Id: I1fa5cbe4d0b86f6df69d616157b3fec68d706d7a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
Bug: 15028495
Change-Id: Ic0c974e868d05632a06748c90cedbdd409ce2aa8
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
|
|
|
|
| |
Change-Id: I8e93fb55018de53a596cb176d48dbfdf1fd396e4
|
|\
| |
| |
| |
| |
| |
| | |
opengl framework"
* commit '111d920bb588669006bdd8699e786d6305f14c36':
[MIPS] Add MIPS architecture support to opengl framework
|
| |
| |
| |
| | |
Change-Id: Id7704d35bed14d96a85dc1f29db0566cd03872b5
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
* 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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | /
| |/
|/|
| | |
* changes:
Regenerate API/trace files for constness change
Import constness fix from gl3.h into gl2.h.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
| |
bionic now assumes the TLS register is available, so OpenGL can too.
Change-Id: If2b56a4c08de9f887759b78f70022026a181dc47
|
|\
| |
| |
| |
| |
| |
| | |
glGetUniformLocation"
* commit 'a151a19db2fa07295837027fb5d84c02401cc78d':
Fix return type of glGetAttribLocation and glGetUniformLocation
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
This reverts commit 2da2c15068327a4fdad411f638905abcb2209d8a.
|
| |
| |
| |
| |
| |
| | |
Adding logs to tell which specific methods throw OpenGL errors.
Change-Id: I1d73c7566ed1ea6610392020411762c6255a0ede
|
| |
| |
| |
| |
| |
| |
| | |
Temporarily changed USE_FAST_TLS_KEY ifdef during debugging. Changing it
back now.
Change-Id: I7c2fcf7265b3d545e31ff7683bd7614100fad3e5
|
| |
| |
| |
| |
| |
| | |
Bug #7195815
Change-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43
|
|/
|
|
| |
Change-Id: Ibec103bbf159626ad9745d0e071192ad424bc0e9
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/156016
Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
|
|
|
|
| |
Change-Id: I83be94049ddfe3fd7f5bee71a21172ade1498dd5
|
|
|
|
|
|
|
| |
glEGLImageTargetRenderbufferOES() pass the wrapped EGLImage
to the implementation, rather than the unwrapped one.
Change-Id: I149f9ed73e6ab9089110600e1db4311ba7a8c83a
|
|
|
|
|
| |
this will be needed for SMP, but would improve dispatching GL calls a bit
on armv6 and above.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|