History log of /development/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
Revision Date Author Comments
56513f5ff4f3e851c5f0cb38dc8851d18616b3c0 30-May-2012 Jesse Hall <jessehall@google.com> Move emugl system code to development.git

Because of the way the SDK and Android system images are branched,
host code that goes into the SDK tools can't live in the same
repository as code that goes into the system image. This change keeps
the emugl host code in sdk.git/emulator/opengl while moving the emugl
system code to development.git/tools/emulator/opengl.

A few changes were made beyond simply cloning the directories:

(a) Makefiles were modified to only build the relevant components. Not
doing so would break the build due to having multiple rule
definitions.

(b) Protocol spec files were moved from the guest encoder directories
to the host decoder directories. The decoder must support older
versions of the protocol, but not newer versions, so it makes
sense to keep the latest version of the protocol spec with the
decoder.

(c) Along with that, the encoder is now built from checked in
generated encoder source rather than directly from the protocol
spec. The generated code must be updated manually. This makes it
possible to freeze the system encoder version without freezing the
host decoder version, and also makes it very obvious when a
protocol changes is happening that will require special
backwards-compatibility support in the decoder/renderer.

(d) Host-only and system-only code were removed from the repository
where they aren't used.

(e) README and DESIGN documents were updated to reflect this split.

No actual source code was changed due to the above.

Change-Id: I2c936101ea0405b372750d36ba0f01e84d719c43
80d4ba77162126cfb60f9ca75f8a1d3a458ed31f 18-Apr-2012 Jesse Hall <jessehall@google.com> Move emulator GLES from development.git to sdk.git

The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.

Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.

Change-Id: Ie73fce12815c9740e27d0f56caa53c6ceb3d30cc
b62e28ddde79314f9d556f8755b1c08dff9cdabd 16-Apr-2012 Jesse Hall <jessehall@google.com> Move emulator GLES from development.git to sdk.git

The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.

Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.

Change-Id: Ibe2cf8de13520aa3fcbaf72328a15ece261d7b86
d6bd1843ce6ffd18b8dd7105052572b2c3af876a 23-Nov-2011 Jesse Hall <jessehall@google.com> EmuGL: GLESv2 support for OES_EGL_image_external

Change-Id: I8911328d5dcccdf4731bd2d8fd953c12fdec5f1b
4e6af749d5996edd6558821a7e400427f0457306 16-Sep-2011 David 'Digit' Turner <digit@google.com> emulator: opengl: Back-port GLES emulation from the master tree.

The modules here are only built when BUILD_EMULATOR_OPENGL is defined to true
in your environment or your BoardConfig.mk (see tools/emulator/opengl/Android.mk)

Change-Id: I5f32c35b4452fb5a7b4d5f9fc5870ec1da6032e6
7944edcdb28d6924f782fb04464526165447c1e6 10-Aug-2011 Guy Zadickario <guy@graphtech.co.il> opengles emulator: fix the uniform location WAR for intel platforms

Fixed the location shift WAR to work for arrays that starts at
location 0. Fixed conformance regressions made by this workaround.
The conversion should be smarter than just shifting 16-bits back
and forth, it should take into account if array element is being
accessed.

Change-Id: Icb746c67e16edfacb8264a1e687fd24ac6e868e7
2ec2fa1a687390c22492fa6344e45d4c6b3c0ea7 08-Aug-2011 Liran <liran@graphtech.co.il> opengles emulator: fix uniform name translation to apps

add special handling of locations smaller or equal to 0
do not translate location -1 (this location means the
uniform is not found)

location 0 does not need translation, it has no effect

Change-Id: Idbde51f08433ed70a5a1a2cf1ede51043f3cca76
52829d82ab415afd15053f2953fad81b0fdbe4d0 05-Aug-2011 Guy Zadickario <guy@graphtech.co.il> opengles emulator: Workaround Cordy (Unity) bug with intel driver.

Uniform locations are 32-bit values which the application queries
from the driver after a shader program is linked. It seems that Cordy
game (possibly all Unity based apps) store the returned location as
16-bit value. Intel driver returns location values in the upper 16-bit
range :(
This is a workaround for this issue, when a program is linked we check
the locations of all uniforms, if all locations are within the upper
16-bit range (as with Intel driver) we shift the location value before
returning to the application. Also override all functions which take
a location parameter and do the reverse shift before sending a location
value to the host.

Change-Id: I234aaafe3313774b5da79eb1dac713b89b10ad60
8ee217f9cc21e26f3dd5b52be038475a3818298f 01-Aug-2011 Liran <liran@graphtech.co.il> opengles emulator: fix glGetUnifrom

added state tracking for uniforms in program objects
for each active uniform in index i we will save its starting location
,size and type, so when calling glGetUniform on its location,
we can tell how many bytes we should read from the stream according to
the uniform's type

add some type and size definitions to functions
that calculate size from enum

some other fixes to the codec

Change-Id: I4ecdf41e752454a908d131e76bab113a616f2bc8
e99305dd9f4bfa0bc16cea025dd829b2aa5b8030 26-Jul-2011 Stas Gurtovoy <stas@graphtech.co.il> opengles emulator: cache all buffer on the guest

This is needed to support the rare, but still legal scenario,
when glDrawElemets is used with some index array data is stored in VBO's
while the actual attributes (vertices) data is in immediate mode.
When in immediate mode, we need to process the incodes, in order to know
which vertex data to send, which was impossible without the caching.
This commit introduces a new class GLSharedGroup, which will hold all data
that can be shared by shared contexts (buffers are such data).
This also makes the "Jet Cars Stunts" app work properly.

Change-Id: Ic937080dae461bc8cdf4d10cf37066a6e847f464