b7f9a2400aaa2e0d29ffefd91576e90036d4cf83 |
|
09-Mar-2017 |
Mathias Agopian <mathias@google.com> |
convert BlobCache to STL This finally gets rid of the utils/BlobCache.h dependency Test: compiled & run Bug: vndk-stable Change-Id: Idfc6ace472479fae99694f56edb973800b2bef20
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
65421435a67b881dad79e7008e9dee7fb425f180 |
|
08-Mar-2017 |
Mathias Agopian <mathias@google.com> |
Remove dependency to most of libutils Most of libutils is replaced by using the STL, this is fine in this case because none of it leaks out of EGL’s internals. Test: compiled & run Bug: vndk-stable Change-Id: I42ded4043ddc98ed7eaa975fbbb2e754cd3219af
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
311b479d7f50bc9e487cf9b4859843d0f4778382 |
|
01-Mar-2017 |
Mathias Agopian <mathias@google.com> |
clean-up EGL includes Test: compile and run Bug: cleanup Change-Id: Icb6c70c80d455446d7163a20d51c41d9b6e0b578
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
1508ae60cc02d0ed84f216f3ddd43a932c2ede42 |
|
20-Jan-2017 |
Jesse Hall <jessehall@google.com> |
libEGL: Add initialization tracing The first call to eglGetDisplay() loads drivers and initializes dispatch tables. This currently takes significant time (85-100 ms), and can must be done before the first frame of an app can be shown. This change adds systrace markers for the major parts of this process, as a precursor to optimizing them. Bug: 34404021 Test: manual systrace of calculator app startup on bullhead Change-Id: If1ecb5a81f9d33daf72c6f3e5b403972f8529b2d
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
e9cbb659a7c45481444e3d3cbb171fa3251d0cb8 |
|
11-Oct-2016 |
Dan Willemsen <dwillemsen@google.com> |
Remove EGL Hibernation Test: Booted aosp_flounder-eng Change-Id: I0068bbd0a274bd0db237c30d958ea75b6d8aaf11
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
d6e9946cdd57a92c9bc86ba97a4ca42078153008 |
|
28-Sep-2016 |
Jesse Hall <jessehall@google.com> |
EGL: check that display is still valid Bug: 31522731 Change-Id: I84d82e55aba5b58dfdbcac9e208c36767fbedfd1
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
5882a267d0bee5e9505fe4e714f50378f5ef70d0 |
|
26-Apr-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "Revert "EGL: Ensure surfaces are disconnected when destroyed"" into nyc-dev
|
1a5c4deed3e33efd7f286a570cf88fbd2d861010 |
|
25-Apr-2016 |
Pablo Ceballos <pceballos@google.com> |
Revert "EGL: Ensure surfaces are disconnected when destroyed" This reverts commit 541de498ec7356c5e4af92500cf2fb8fc707fd50. Bug 28295465 Change-Id: If81ed4a5a73a9612579b58291c37c7830ea1f7db
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
7804aa25c1288002269d4bd29f535cad8b55f365 |
|
19-Apr-2016 |
Kalle Raita <kraita@google.com> |
Look EGL extension matches beyond partial match Bug: 28198559 Change-Id: I8d483d04e855b62432e1da786629890d09ae9d00
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
541de498ec7356c5e4af92500cf2fb8fc707fd50 |
|
10-Apr-2016 |
Pablo Ceballos <pceballos@google.com> |
EGL: Ensure surfaces are disconnected when destroyed When eglDestroySurface is called, remove all references to the surface in all contexts. This ensures that the surface is disconnected immediately. Bug 27455025 Change-Id: I0edaf039d320dc40122657db32abdc418665841a
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
1b5a9cbafc466f17ec8bb46710c1093a4b7adb21 |
|
03-Feb-2016 |
Dan Albert <danalbert@google.com> |
Merge "Clean up warnings in EGL." am: c312141adc am: d380a770fd am: f4acff7c49 * commit 'f4acff7c490c6bf8a88661a15ca4bf2536ca4854': Clean up warnings in EGL.
|
eacd31f41ef1851bb420c65552b1aed6b74abe29 |
|
03-Feb-2016 |
Dan Albert <danalbert@google.com> |
Clean up warnings in EGL. Bug: http://b/26936282 Change-Id: I059628332d638f080a5236eed62cf0afa1d4d6ba
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
ecc0c9aa412aaf463d91bedcf53f881536a6d560 |
|
30-Oct-2015 |
Nicolas Capens <capn@google.com> |
Fix parsing the EGL extension string. The EGL extension string does not necessarily have a space before the terminating null. The previous code would skip the last extension name when there's no extra space. The new code also works for empty strings. Change-Id: Ib272cf05a7ebcc0de417f91966489ed4db33c283
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
9f8d4e01a02401beeaa3185acd87b140cf881d12 |
|
21-Oct-2015 |
Pablo Ceballos <pceballos@google.com> |
Revert "Revert "Remove GLTrace support"" This reverts commit e6288e2660e9c310986bff7148fcfb745c13af9a. Change-Id: Id50a7d471536150bb9e0393e159d66475aa4f473
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
e6288e2660e9c310986bff7148fcfb745c13af9a |
|
19-Oct-2015 |
Pablo Ceballos <pceballos@google.com> |
Revert "Remove GLTrace support" This reverts commit 5bf6f3b5bf06e04a742bde8d40409d3c9e434c05. Change-Id: I25a2d9b4a4b219cb76b405db1f68997519361cd6
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
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
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
54466bc4412acf33a59af59d9eadde54c22b2ebe |
|
27-Jan-2015 |
Michael Lentine <mlentine@google.com> |
Remove lock around ref count check in terminate. Replace the global lock in terminate for the ref count check with atomics and a local lock. Bug: 19072064 Change-Id: I0cfd6564e227a75b8387a8788b16381d5bc2cc88
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
92dc3fc52cf097bd105460cf377779bdcf146d62 |
|
12-Mar-2014 |
Mark Salyzyn <salyzyn@google.com> |
native frameworks: 64-bit compile issues - Fix format (print/scanf) - Suppress unused argument warning messages (bonus) Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
672ddf2b58b6c6ddef4fc4f296e5fa53910d8e3b |
|
29-Aug-2013 |
Mathias Agopian <mathias@google.com> |
remove adreno 130 workaround support Change-Id: I8ea5ee65d405114b30cfaa44e1a0c971d1ef2a61
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
c2e41222bf02a6579763974f82d65875cfa43481 |
|
08-Aug-2013 |
Jesse Hall <jessehall@google.com> |
Add support for EGL_KHR_gl_colorspace Change-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
21558daf691dbcdff4a41e659fd013273db4d0b7 |
|
07-Aug-2013 |
Jesse Hall <jessehall@google.com> |
Add EGL_KHR_get_all_proc_addresses to extension string We've had the extended behavior since Android 4.3, but the extension hadn't been ratified by Khronos yet so we couldn't add it to the extension string. Bug: 9681677 Change-Id: I78842316a3ab7a3f66a0ac1a4742d837de664c4c
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
39c24a20bbc697630d2b92c251b70c04d6f9d00c |
|
05-Apr-2013 |
Mathias Agopian <mathias@google.com> |
fix local include paths Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
e9b3dfb7d5cc233747407381a51a081c335dc076 |
|
27-Mar-2013 |
Mathias Agopian <mathias@google.com> |
cleanup EGL extensions strings and entry-points - move all the code related to EGL extensions in one place - add missing extension strings: EGL_KHR_lock_surface EGL_KHR_reusable_sync - add public extensions strings and entry-points EGL_ANDROID_wait_sync EGL_ANDROID_presentation_time - add missing entry-points for EGL_KHR_reusable_sync Change-Id: Ifd98966b549e8efd8ef5385eba0efde8c4cbc77b
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
3ff48e5e69955b37292446c0f2ac98e8238bdaca |
|
24-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
EGL: add the EGL_ANDROID_framebuffer_target enum Change-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
09b11432b64d368dee7be69480ab54256058376a |
|
21-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
EGL: expose the EXT_create_context_robustness ext Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
a08cf6e3a4ee045608bc8991a779dedb4f281a3f |
|
16-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
EGL: fix an extension string bug This change fixes a bug where initializing EGL multiple times (eglTerminate followed by eglInitialize) would cause extensions to show up in the extension string multiple times. Change-Id: I707a3da62ed30ef13835087167f84a08bc6addd7
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
331841b96b92646c93c87627c03f77b892f711cd |
|
06-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
EGL: add the native_fence_sync extension This change adds support for the EGL_ANDROID_native_fence_sync extension to the Android EGL layer. It also fixes a couple minor issues with the extension spec. Change-Id: Ic8829d21f37b701f33aa9c72c3d25e88e03fa3cd
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
fe98127eaaf82686ba750001e2b771abece44e97 |
|
14-Jun-2012 |
Mathias Agopian <mathias@google.com> |
don't error out when eglTerminate()ing an already terminated display so says the EGL specification, section 3.2 Change-Id: Ice60530f8f6e47b4e14e06d2ab8eba799a7688a6
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
cc2b1560e87369676a2d13f17bd1ff4021a91819 |
|
21-May-2012 |
Mathias Agopian <mathias@google.com> |
fix EGL_CLIENT_STRING it should read OpenGL_ES (with an underscore) Bug: 6529643 Change-Id: I7caf07793bffe5a8dcceaff496a222077486fc87
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
201f3b2da572eb27b9d4b3131e6d8c3c92a13de8 |
|
04-May-2012 |
Jesse Hall <jessehall@google.com> |
Disable EGL hibernation due to jank Hibernating EGL takes a long time (>100 ms) and blocks all other rendering. During window animations, the outgoing activity begins hibernation before the animation stops, causing visible stutter. Hibernation is still available by setting 'BOARD_ALLOW_EGL_HIBERNATION := true' in the devices BoardConfig.mk Change-Id: Iab4e00723a1adcd97481e81b2efdc821b3e9712f
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
a0fef1c8bb22443402fb3aeda7ce70f7d5775b0a |
|
17-Apr-2012 |
Jesse Hall <jessehall@google.com> |
Fix deadlock when cleaning objects in eglTerminate When eglTerminate() is called with a window surface still exists, a deadlock would occur since egl_display_t::terminate() holds a lock while destroying the window surface, which calls onWindowSurfaceDestroyed() which attempts to take the same lock. This change refactors the hibernation code and data into a separate object with its own lock, separate from the egl_display_t lock. This avoids the deadlock and better encapsulates the hibernation logic. The change also fixes a bug discovered incidentally while debugging: hibernating after calling eglTerminate() succeeds, but will cause awakens from subsequent eglInitialize() to fail. We will no longer hibernate a terminated display. Change-Id: If55e5bb603d4f8953babc439ffc8d8a60af103d9
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
258385978c517a47626161b1e644c48bcee28de1 |
|
06-Apr-2012 |
Jesse Hall <jessehall@google.com> |
Hibernate the EGL implementation when idle If the EGL implementation supports the EGL_IMG_hibernate_process extension, use it to hibernate (and hopefully release memory or other resources) when the process isn't actively using EGL or OpenGL ES. The idleness heuristic used in this change is: (a) Wake up when entering any EGL API call, and remain awake for the duration of the call. (b) Do not hibernate when any window surface exists; this means the application is very likely in the foreground. (c) Do not hibernate while any context is made current to a thread. The app may be using a client API without the EGL layer knowing, so it is not safe to hibernate. (d) Only check these conditions and attempt to hibernate after a window surface is destroyed or a thread's context is detached. By not attempting to hibernate at the end of every EGL call, we avoid some transient wakeups/hibernate cycles when the app is mostly idle, or is starting to become active but hasn't created its window surface yet. On a Galaxy Nexus, hibernating frees 1567 VM pages from the process. Both hibernating and waking can take anywhere from 30ms to over 100ms -- measurements have been very inconsistent. Change-Id: Ib555f5d9d069aefccca06e8173a89625b5f32d7e
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
b29e5e8c2682ae145e8c56d9afb061f8da7f854c |
|
05-Apr-2012 |
Jesse Hall <jessehall@google.com> |
Increment/decrement a counter around EGL calls This is in preparation for a change that will hibernate the underlying EGL when idle. Instead of a bare egl_display_t*, get_display() now returns a egl_display_ptr, which acts like a smart pointer. The "wakecount" counter managed by the smart pointer isn't used for anything in this change. It will be used to make sure we don't hibernate when any thread is in an EGL call, without having to hold a mutex for the duration of the call. Change-Id: Iee52f3549a51162efc3800e1195d3f76bba2f2ce
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
28ef8d7911dbfd1bf8256fb43acba894d87fc07a |
|
06-Apr-2012 |
Jamie Gennis <jgennis@google.com> |
EGL: add GPU frame completion tracing This change adds a debug option to EGL to use an EGLSyncKHR each frame to determine when the GPU finishes rendering the frame. Change-Id: I09ce071db904b44f07ca814c586c291c8b59385a
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
7db993a98b9239bd4e384cc4aa128262fe3cf52c |
|
25-Mar-2012 |
Mathias Agopian <mathias@google.com> |
debug.egl.finish can be used to force a glFinish() when eglSwapBuffers() is called this debug property is evaludated at eglInitialize() time. Change-Id: Ie439e4aac87f7fdc6ab2add86183d6d042f3ee8b
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
b13c78f8520ef5a96effdee977bbacb881236c66 |
|
09-Mar-2012 |
Siva Velusamy <vsiva@google.com> |
gltrace: Expose a function to set OpenGL trace level. This patch adds a function setGlDebugLevel() to libEGL to enable GL tracing. This will be used by the Java layer to add an option to "am start" that can enable tracing for a particular application. Change-Id: Ie1dbdd550f502df8633553595cb33ee9d9ae44e1
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
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
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
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
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
a4b2c041828d1074dca3b999407e7dd85568c5aa |
|
04-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix a dead-lock in eglMakeCurrent this was introduced in a recent change. eglMakeCurrent can end up calling eglDestroyImageKHR via ANativewWindow::disconnect when the consumer is in the same process. we make sure we don't hold the lock while this is happening. Change-Id: Id17fe4fd76eecf5f962cefb9aa32be41fc1b042d
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
fb87e54a9af8bc5063ca4deebe81d90126992480 |
|
31-Jan-2012 |
Mathias Agopian <mathias@google.com> |
fix a race condition in eglMakeCurrent() it would happen when a context was made non-current, in this case we would call the implementation's eglMakeCurrent() which would succeed, if we're rescheduled at that point, another eglMakeCurrent() could make that context current to another thread, however, when we came back to the original call we would overwrite egl_context_t internal state. this is fixed by moving the critical section under egl_display_t's lock. Change-Id: I743c85696e13263d3a9570824940263df0caacdc
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
32397c1cd3327905173b36baa6fd1c579bc328ff |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
/frameworks/native/opengl/libs/EGL/egl_display.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/EGL/egl_display.cpp
|
f3ae82d8134e7f5a2f0432ef809569bfa418883b |
|
17-Nov-2011 |
Mathias Agopian <mathias@google.com> |
be a bit more defensive when parsing extension strings hopefully this will fix a crash in the emulator. Bug: 5624674 Change-Id: I96586e29ea20efd73c4ad50870df5b7368bf3c3b
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
4b9511c16195a646242eff833b0af212933b6eca |
|
14-Nov-2011 |
Mathias Agopian <mathias@google.com> |
rework a bit how we manage EGL extensions - don't advertise extensions that are not supported by any implementation - remove EGL_ANDROID_swap_rectangle which is not implemented by anybody and confuses people - add some comments about mandatory extensions Bug: 5428001 Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
f0480de37492597a5c5cf1e6f8346f1467e3a552 |
|
14-Nov-2011 |
Mathias Agopian <mathias@google.com> |
fix crash when validating an invalid EGL objects the code that validated EGL objects dereferenced the object to access its EGLDisplay -- needed for validation (!). This was wrong for two reasons, first we dereferenced the object before validating it (potentially leading to a crash), secondly we didn't validate that the object existed in the right EGLDisplay. We now use the EGLDisplay passed by the user API. Change-Id: I66f9e851d4f8507892a6b1fee3065f124c4e7138
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
766010858ea7696d64f1b559413670bdd8627595 |
|
06-Nov-2011 |
Jamie Gennis <jgennis@google.com> |
EGL: use an in-memory the blob cache This change makes the makes the stub EGL_ANDROID_blob_cache callbacks actually use a BlobCache object. Bug: 5474671 Change-Id: I5cbaae2dea3aad2fe306c9f57029c3f215a0863a
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
aca51c06f38155f1435fbc6944d7fc0a9bf1e4e9 |
|
04-Nov-2011 |
Jamie Gennis <jgennis@google.com> |
EGL: Add stubs for EGL_ANDROID_blob_cache This change adds a stub cache implementation that gets passed to the underlying EGL implementation at initialization time. Change-Id: I14437c5b6f91b7a34a19bb02ad802e6e54f88d2a
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
5b287a6ea8dfac7ab3e03ae1e98f9e2214cbae09 |
|
17-May-2011 |
Mathias Agopian <mathias@google.com> |
eglTerminate() now actually frees up all active egl objects as specified by the EGL specification, terminated objects's handles become invalid, the objects themselves are destroyed when they're not current to some thread. Change-Id: Id3a4a5736a5bbc3926a9ae8385d43772edb88eeb
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|
518ec112f468eb67bf681b3eec896d7bfb4ff98d |
|
14-May-2011 |
Mathias Agopian <mathias@google.com> |
refactor EGL source code no changes is functionality. split various objects into their own files. make egl_display objec's lock internal.
/frameworks/native/opengl/libs/EGL/egl_display.cpp
|