History log of /device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e980c7a4de6cc56e63fd013ce7811bcdeeabb57c 12-Jan-2018 Lingfeng Yang <lfy@google.com> Feature: IgnoreHostOpenGLErrors

bug: 71853717

If you use the emulator and the UI works fine, do this to make the UI
faster.

Change-Id: I044a46956eadb17021d6cf2c7b87c6423a328051
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
93128771111f69a6fb43eb71e28ec0dfaf93fd0d 23-Jan-2017 Lingfeng Yang <lfy@google.com> [VR] EGL_KHR_wait_sync

Requires native sync v3 from the host.

Change-Id: Ia58351e1a4984afcb0fd2bf8d928cec567bb70e2
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
6e99bcfb949ef018726baf14585d88a30132a981 07-Apr-2017 Lingfeng Yang <lfy@google.com> [deqp] Fix dEQP-EGL.functional.thread_cleanup.single_context*

bug: 37100138

1. Add a way to get a host connection for a specific thread info

2. Do all the EGL TLS cleanup as part of our TLS destructor, because
the framework insists on calling eglReleaseThread as part of its
TLS destructor, which can happen after our TLS destructor
(in which case the TLS is reinitialized and loses all context information)

Change-Id: I3a26fa1b1794a0f422e6913a5e9fc4f0fecb0ee8
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
e6556dcf96ef0b859fe04d8caf7c40fdd6d8d254 09-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] versions, es > 2, encoder

- Encoder with ES 3.x entry points
- Allow ES versions > 2 depending on host capability

Change-Id: I71e374f1685610bb0e4f9e04f4bba87b0cbaa02b
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
88c170cdf4d4a3c83ea61540d25bdcf4153fb5b8 30-Nov-2016 Lingfeng Yang <lfy@google.com> Revert "Revert "DO NOT MERGE ANYWHERE: Goldfish DMA-based gralloc""

This reverts commit 9b166b966d6f03f13f65d3134f9c5e1133ec10e2.

Change-Id: I9b10b45d1ebd3b51ede2f75cc8ab403914b0d777
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
9b166b966d6f03f13f65d3134f9c5e1133ec10e2 30-Nov-2016 Miao Wang <miaowang@google.com> Revert "DO NOT MERGE ANYWHERE: Goldfish DMA-based gralloc"

This reverts commit df3a043b96b90d949643ddd0219fc0bf4ff68040.

Change-Id: Ic87fa2f922bd61123e64fc32fc8ebb13dec4c219
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
df3a043b96b90d949643ddd0219fc0bf4ff68040 24-Sep-2016 Lingfeng Yang <lfy@google.com> DO NOT MERGE ANYWHERE: Goldfish DMA-based gralloc

Also includes YV12/YUV420888 conversion on the host.

Change-Id: Ie0c23f6e18ae96b2bdeadf6dbd4828ca1e7de8a0
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
b232764080666980e089d48afa23e514278980fb 04-Nov-2016 Yurii Zubrytskyi <zyy@google.com> Faster HostConnection creation

- Implement queryGlString in a single guest->host call for most
cases: preallocate large enough buffer instead of querying for
its size.
- Don't copy std::string-s around when we only needs a cref

Change-Id: Iffc4e9e37a1f9010ab5dfd5a4c5528f783c41137
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
e8cf63de76ea0b518b3593205ad191f51cd43292 22-Sep-2016 Yahan Zhou <yahan@google.com> Refactor pre-process GL resource management (guest)

Previously we bind a process unique id (puid) to the GL encoder / decoder
commands when managing process owned GL resources.

This patch simplify it by telling each rendering thread its puid at the
beginning, and using that puid for resource management. It will make our
life easier when we need to change other resources from owned-by-thread
to owned-by-process (e.g. EglContext).

This CL must work with host CL:
https://android-review.googlesource.com/#/c/277778

Change-Id: I94a8cb55e8619c2f0da1a5669827e89fe42660d2
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
2ce4c312eadae49c5f92fffab31dea8845a67f7e 31-Aug-2016 Lingfeng Yang <lfy@google.com> +rcDestroySyncKHR, don't leak on swapBuffers

This CL is part of this host CL to clean up EGL sync objects:

https://android-review.googlesource.com/#/c/267892/

It does the following:
- adds rcDestroySyncKHR
- avoids creating an actual EGL sync object when in swapBuffers(),
because it will be cumbersome to delete it from the guest.
Instead, it specifically calls rcCreateSyncKHR and tells the host
to clean up the object when it has become signaled.
- refactors rcCreateSyncKHR / goldfish_sync_queue_work to
a common function.
- bumps the GLAsyncSwap version string to "ANDROID_EMU_native_sync_v2",
so that the emulator can work with all combinations of
old/new emulator/system-image.

Change-Id: Iff9a5e226b4026b955893c6f4d6ff3266009da6b
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
4f12b8d6f5a86a51873cb65a7fcabf9f472198ec 14-Jul-2016 Lingfeng Yang <lfy@google.com> ANDROID_EMU_ASYNC_SWAP extension searching + setting

In order for the async frame swapping feature to work
with all combinations of new/old emulators and system images,
one way to do it is to introduce an emulator-specific GL
extension. This is the same way the checksum calculation
support works.

This is a port to device/generic/goldfish-opengl, based on

https://googleplex-android-review.git.corp.google.com/#/c/1065345/

This is part of a sequential, multi-CL change. There is also
a corresponding multi-CL change on the host side:

https://android-review.googlesource.com/#/q/topic:emu-glsync-host

The changes in the system image are as follows:

platform/build:

https://googleplex-android-review.git.corp.google.com/1024926

device/generic/goldfish:

https://googleplex-android-review.git.corp.google.com/1230942

device/generic/goldfish-opengl:

https://googleplex-android-review.git.corp.google.com/1219535 <- this CL
https://googleplex-android-review.git.corp.google.com/1219536
https://googleplex-android-review.git.corp.google.com/1219537
https://googleplex-android-review.git.corp.google.com/1219538
https://googleplex-android-review.git.corp.google.com/1219539
https://googleplex-android-review.git.corp.google.com/1219570
https://googleplex-android-review.git.corp.google.com/1219571

Change-Id: Id07a72e5cb3397ff9d0b55788b8ad763c15050f3
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
200c716904a03dce573add4440dd6d26c027ea14 13-Jun-2016 Lingfeng Yang <lfy@google.com> Don't leave gralloc-only host connections hanging.

bug: 29318455

Memory leaks are becoming more of a problem, especially
with host machines that don't have much RAM and when
we use the emulator for long periods of time.

This CL fixes the problem detailed in the bug link,
which is that the number of render threads
(and thus thread-specific storage) skyrockets when
repeatedly pressing the Recents button while an app is active.

The thing is that there are lots of threads
that never use the EGL display, just gralloc, in order
to do gralloc things like update the screenshot display
of apps in recents.

These threads are not cleaned up because a thread pool
is often used to manage these sorts of tasks.
If a new or different thread suddenly wants to update
the recents screenshots through gralloc, a new connection
will be established.

This CL uses gralloc_unregister_buffer as a signal
for when a thread might be done with gralloc in general,
exiting the host connection immediately.

Of course, there may be other things that the thread wants
to do, but then it can just go ahead and create a new connection.

We also use the heuristic that we do not exit on gralloc_unregister_buffer
when the thread seems to be a bona fide rendering thread
(eglInitialize has been called).

There are still more leaks going on, this fixes just
one source of them.

After this CL, the render thread count should be held constant
when repeatedly starting apps and going to recents.

Change-Id: I5f57539429f149e3a938467e3b82fa911ab118c3
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
1883535b98b5979d8470ce1639fe264acf7b9969 23-May-2016 Lingfeng Yang <lfy@google.com> Refactor GL extension getting part in checksum setup.

Change-Id: Ieb26ce5682a87821935a5b639e5242942d13ac21
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
b7f09089a7f736a070825d7130601d74b150d147 10-Mar-2016 Yahan Zhou <yahan@google.com> Checksum for GL pipe communication

This is the guest side implementation for cl go/oag/c/207292.

It initializes checksum whenever a renderControl is created. Each
HostConnection owns a checksum structure.

The list contains mostly auto-generated code by emugen.

Change-Id: I5f7bb9ec8a0cea82f3687f8a15839081651fd841
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h
b85b2756d1e247f8314bb591700fb175d7346631 08-Mar-2013 keunyoung <keunyoung@google.com> migrate opengl and system from development/tools

- components under system are moved one directory up like all other HALs

Change-Id: I03b870b870d83b247ac398cadfb155f03c9adfa0
/device/generic/goldfish-opengl/system/OpenglSystemCommon/HostConnection.h