History log of /device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d3ae106098bc2338151971247dd182e7b88a5b0e 18-Jan-2017 Lingfeng Yang <lfy@google.com> [WIP] ES 3.1 guestside changes

Change-Id: Ie4619ee6e161274383b9f6b0d2922344da20f62f
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
f000ab401bde5f83fb475c0cc51cac1828539bac 12-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] Fix protocol error + build on older imgs

Change-Id: I6a28dfeed1242a89f1bf8a872f9f6ebd39585d8c
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
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/GLESv2_enc/gl2_enc.cpp
1d1fc8db52fe3e4e40ad7a260998d9947f75c3d0 04-Nov-2016 Yurii Zubrytskyi <zyy@google.com> Re-generated protocol encoder files

- Don't add output parameters' size to the whole packet size,
reducing the amount of data copied over from guest to host.
- Use a static array for checksums instead of heap-allocated
buffer

This change is totally backward compatible for the protocol,
as it (1) removes the part emulator has never touched and
(2) changes only the guest's memory allocation way, not the
task that memory is used for

Corresponing emugen CL:
https://android-review.googlesource.com/#/c/299539/

Change-Id: Ic7c6d2bb21d57f1f6fb1622499344328f790783e
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
a9aee9fd692df6f432b131f9468b48d7378b231c 18-Jun-2016 Yahan Zhou <yahan@google.com> Regenerate gl encoder from qemu

Regenerated from:
https://android-review.googlesource.com/#/c/237292/

Change-Id: I7972c4fddfb9765af39856ccd8aa29ac67558301
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
e57bd758652d4a1c1307d0b1d88ddf2828602434 06-Jun-2016 Yahan Zhou <yahan@google.com> Move stream->flush to non-generated code

Move flush command out of auto-generated code.

Change-Id: I3f3c8ca49344ea4c5357d7d6953364ce1015ea99
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
5bb75eb01075f56597cf79046cfdeca9f4114af2 02-May-2016 Lingfeng Yang <lfy@google.com> Flush draw calls

Increases Antutu Garden performance by 2-4 FPS,
depending on if host renderthread uses lock
(faster if no lock)

The idea is that if the draw calls are not flushed,
they may be called too late on the host,
resulting in lower performance:
the GPU is just sitting idly between pipe flushes
for more instructions.

Change-Id: I78e278fc9b30b4a135b48f56d912b6aba8aadea7
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
e222fd545669310b91ffb4603f1c6b16f847c077 16-Mar-2016 Yahan Zhou <yahan@google.com> Checksum for GLES messages from host to guest

Add checksum for GLES messages from host to guest. This patch contains
generated code (gl_enc.cpp, gl2_enc.cpp, renderControl_enc.cpp) and
shared code with the host (ChecksumCalculator.cpp,
ChecksumCalculator.h).

Change-Id: I577a34cae5208d3f11a165f861a69fa0971cf864
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
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/GLESv2_enc/gl2_enc.cpp
268e85cdbb1122531013598b2638c25b839191ee 19-Feb-2016 Yahan Zhou <yahan@google.com> GL encoder null pointer check before write

Previously when encoding some functions, if the user gives us a null
pointer, the encoder will write a header with some data length while not
actually writing any data. This patch fix it by writing 0 into the data
length field for all those functions.

The changed functions include:
glBufferSubData
glCompressedSubTexImage2D
glTexSubImage3DOES
glCompressedTexImage3DOES
glCompressedTexSubImage3DOES

Other functions do not directly write user's pointer, so they don't need
to be updated.

Since this is auto-generated code, there would be another patch in
emu-master-dev to update the code generator.

Change-Id: I05fca078dfcf01e20fa757f1050820b21ca080b7
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
a9ce3cad7e69022bb2ffc0603f604dbd9e518d45 14-Jan-2015 bohu <bohu@google.com> opengl: Regenerate GPU emulation encoder sources to fix NULL parameters in some gl functions.

This fix handles NULL values of 'size' and 'type' in
glGetActiveAttrib and glGetActiveUniform.

This patch updates the encoder sources to match the auto-generated
output of the latest 'emugen' tools from sdk/emulator/opengl/
Generated by using external/qemu/distrib/update-emugl-source.sh

related change: 82aa88b78e26b048e428a930a867166eff611984

Change-Id: Ifbd9e8bf3473ed054e95e1ee3a7885652c2002ce
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
0f788d82239c1a9a1922bd8fc140464058cc52e7 27-Nov-2014 David 'Digit' Turner <digit@google.com> opengl: Fix pixelDataSize() ambiguity.

The GLESv1 encoder library was calling the pixelDataSize() function
definition from the GLESv2 encoder library, resulting in bugs, like
the inability to see the boot animation when -gpu on is used.

This fixes the issue by using namespaces to differentiate the
two implementations. Note that the auto-generated files have been
updated by re-running update-emugl-sources.sh as specified by
opengl/README after applying the following patches:

https://android-review.googlesource.com/#/c/116642/
https://android-review.googlesource.com/#/c/116643/
https://android-review.googlesource.com/#/c/116644/

Change-Id: Idbd84fb6ca5934cbb9af009b09f9a38cc4a1340a
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
4f91c8e9a9023d0cc07bc7db985a80a212294461 31-Oct-2014 David 'Digit' Turner <digit@google.com> opengl: Regenerate GPU emulation encoder sources.

This patch updates the encoder sources to match the auto-generated
output of the latest 'emugen' tools from sdk/emulator/opengl/

Generated by using external/qemu/distrib/update-emugl-source.sh

This shall only results in minor changes:

- Minor indentation fixes.
- Using 'const' to define constant tables.
- Using anonymous namespaces in the encoders.

Change-Id: Ib282b31c4c05da897157ef90e5a9deb914a08bda
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
3afd44bdb52af3b26b2691e5f0164c16f2936e90 30-Oct-2014 David 'Digit' Turner <digit@google.com> opengl: Remove accessor functions from encoders.

These functions are not necessary since all the fields are
public members of structures. Also gets us closer to the state
of the real emugen output, which isn't matched yet due to other
differences.

Change-Id: Iea092beca7e3a819c286fe3d84897e6a170747f8
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
3372af9afa4a2a7e9d050eb27f39132ef0fbd156 29-Oct-2014 David 'Digit' Turner <digit@google.com> Fix GPU emulation crash.

This patch fixes the crash that occurs during boot when the
boot animation starts. The main issue is that the wrong version of
glGenTextures_enc() was being called.

The root issue is that libGLESv1_CM_emulation.so, which implements the
GLESv1 API in the system, is linked to both libGLESv2_enc.so and
libGLESv1_enc.so which both provided a glGenTextures_enc() function, used to
encode a glGenTextures() command call into the wire protocol.

Until recently, and due to pure luck, the function call in
libGLESv1_CM_emulation.so was resolved to the function in libGLESv1.so, which is
the correct version to use from this library.

However, due to recent changes in the dynamic linker's symbol resolution
implementation, the version in libGLESv2.so was being used instead. The bug is
really in our library and this patch provides a fix by removing the duplicate
functions, with the help of C++ namespaces.

NOTE: This patch modifies auto-generated code. A better fix would be to
fix the generator, then refresh the sources with its new output.

However, several other manual patches have been performed on these
files in the past too to fix other issues, so doing so would lose
the fixes.

A future patch will update the generator, and refresh all sources
accordingly. This is a "quick-fix" to get us to a proper booting
state.

NOTE: Even after applying this patch, the system boots to the 'home screen'
but fails to display the boot animation.

BUG=18146046

Change-Id: I48cab73ad583e303723340e80d19a82fa301b61d
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
5401f639fb872266bf43aed82817fe555bfb1644 21-Oct-2014 bohu <bohu@google.com> Merge "Handle empty data parameter in glTexSubImage2D_enc"
2242ac9ef91a1e208849774ec9c2372d68b1efe0 18-Oct-2014 bohu <bohu@google.com> Handle empty data parameter in glTexSubImage2D_enc

Empty data parameter crashes emulator, this commit checks and handles
it properly.

Change-Id: Iee468bdc555acc1e0c87b38bd7f09ffd8f22b937
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
73523b3836268523cff91b03bd50c05fff740d8d 17-Oct-2014 bohu <bohu@google.com> Allow glGetProgramInfoLog_enc to have empty length

OpenGL standard allows empty length parameter and we should
handle it properly to avoid crashing emulator.

Change-Id: I07c1f726ee9d789fcba53986b724b8f4a1f07cf2
/device/generic/goldfish-opengl/system/GLESv2_enc/gl2_enc.cpp
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/GLESv2_enc/gl2_enc.cpp