• Home
  • History
  • Annotate
  • only in /device/generic/goldfish-opengl/shared/OpenglCodecCommon/
History log of /device/generic/goldfish-opengl/shared/OpenglCodecCommon/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dcacca1449afecd0604a16c8dc97e2a67c47ce56 25-Apr-2017 bohu <bohu@google.com> Emulator: update opengl to bb8d138b

Bug: 37302997

Test: Build and run sdk_google_aw_x86-userdebug emulator

To commit
bb8d138b3e83567d68810d059d69654fa5e8a303
Merge: 7c53152 bb1f88a
Author: Josh Gao <jmgao@google.com>
Date: Fri Apr 14 23:08:26 2017 +0000
Rename socket_loopback_server to _socket_loopback_server.

Change-Id: Id602f0c1df3be423e37af5f6c91d037d713c3b7a
(cherry picked from commit 588c0a94e384e07c8d38185710a1a968823594ba)
(cherry picked from commit 1b5d5a70fe49f2826a225878ddcd8d6ad561c886)
cpStream.cpp
d3ae106098bc2338151971247dd182e7b88a5b0e 18-Jan-2017 Lingfeng Yang <lfy@google.com> [WIP] ES 3.1 guestside changes

Change-Id: Ie4619ee6e161274383b9f6b0d2922344da20f62f
ixedBuffer.h
LClientState.cpp
LClientState.h
LSharedGroup.cpp
lUtils.cpp
26a8b4be35290878c2f5f4adc2e0cfef6d4085d9 12-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] Fix build

Change-Id: I1255b2505eec7ce032992b99c20df4a1dca4394f
LClientState.cpp
LSharedGroup.cpp
4a66b3129550b10aa4da55af08272f3dbeba87c4 09-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] Transform feedback state tracking

Needed to pass some negative_api tests involving transform feedback.

Change-Id: I7be230bb6432c32641de6bb9249fd00ba3dfe926
LClientState.cpp
LClientState.h
b3dc29ff8fd9541cdf567a8a6ef3229b2852f128 09-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] Shader state updates

- Track program pipelines
- Track separate shader programs
- Track original shader source in guest

Change-Id: I8f54089ddf12d03677275cde58ea7f267e410482
LClientState.cpp
LClientState.h
LSharedGroup.cpp
LSharedGroup.h
6b437bfe760a046d1aed3c03eaae7116218a816c 09-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] glUtils update for ES 3.x

Change-Id: Iaf9b5832af0822d9f663a5365e7ae9a7cee426cc
lUtils.cpp
lUtils.h
35d5f3bda31d60f2b9b18ba64eb43a76e72ee125 09-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] FBO state

- Draw/read framebuffers
- Multisampled render buffers
- Multiple color attachments
- GL_DEPTH_STENCIL attachment

Change-Id: Ic0f51633a42a14d333b6dc3fb52c6fa9de0bfe17
LClientState.cpp
LClientState.h
f654f3ff3229303e684b7e0def4fe41781700f5e 09-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] ES 3.x buffer state

- VAOs
- indexed buffers

Change-Id: I743c3e22bdbb67ca0b6cecac6b231cd674a5061f
LClientState.cpp
LClientState.h
LSharedGroup.cpp
LSharedGroup.h
74e29295ec43efde4365f08f20d7e1515c182b99 10-Jan-2017 Lingfeng Yang <lfy@google.com> [GLESv3] Texture state tracking upgrades

- TextureUtils to get the low down on all offset/size related calculations
(ripped from SwiftShader)
- This involves track of all PBO fields
- Move TextureRec and friends to GLSharedGroup
- Implement new encoder utils to use in encoder

Change-Id: Ic6585f49d2928fe965181ec706d5fefa8713e0eb
ndroid.mk
LClientState.cpp
LClientState.h
LESTextureUtils.cpp
LESTextureUtils.h
LSharedGroup.cpp
LSharedGroup.h
extureSharedData.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
LClientState.h
odec_defs.h
l_base_types.h
b99406c86fcf4bf9e0eec5fc08d2f59515cf9e3f 22-Nov-2016 Yahan Zhou <yahan@google.com> Fix glLinkProgram with invalid program name

glLinkProgram might try setting up program attributes even when an
invalid program name is passed to it. This patch fixes it.

BUG: 33069416
Change-Id: I93ed140095b67df47b158ba837c4aac8eb9e8e50
LSharedGroup.cpp
LSharedGroup.h
ac0e8ca014917c8b87e50ad9873c7152cec86067 04-Nov-2016 Yurii Zubrytskyi <zyy@google.com> Improve ChecksumCalculator

- Expose the checksum sizes through public constants to allow
users to preallocate static arrays for those
- Get rid of a slower memcpy() operations in checksum calculation

Change-Id: Ieaa92fce7b32b75a5db0f94d505c917ecfa16f74
hecksumCalculator.cpp
hecksumCalculator.h
fa68c932b2bb05583a2d9905b27f035f0ba4e966 18-Oct-2016 Lingfeng Yang <lfy@google.com> Fix build

Change-Id: Ib64555ca689cd514139d5a8b712f1266ee38ab49
ndexRangeCache.h
8e2b6e0293796100b62e451a7b6989e25682c8f3 14-Oct-2016 Lingfeng Yang <lfy@google.com> Speed up draw-call-bound apps with index range cache

Previously, we were looping through the entire
index buffer (can be 10^3-10^4+ items) on every
draw call, in order to find min/max vertex index.
This operation often consumes half or more
of the time taken per draw call (from systrace).

The min/max vertex index are required if:
- we are in some "immediate array" mode where
we got an array passed as "offset" argument of
glDrawElements (i.e., index buffer 0 bound)
- validation (dEQP tests, debugging draw calls
where vertex buffer out-of-bounds is in question)

ANGLE uses the concept of an "index range cache"
in order to avoid recalculating index ranges
that are known already.

This CL incorporates the IndexRangeCache class
from ANGLE, greatly improving glDrawElements run time
by making it not depend on the size of the index buffer.

It also makes a slight further tweak: if
we do not flush every draw call, but instead
every two draw calls, we have lower pipe overhead
and can get about 1 FPS more.

The performance improvement: ~10-20% FPS on
non-draw-call-limited GPUs.

Linux, Quadro K2200: Antutu v6: ~35->~40 FPS

No dEQP GLES2 or EGL regressions were found.

Change-Id: I29be0f405c6d3e3257e212912c6af6c6f3e12fa7
ndroid.mk
LSharedGroup.cpp
LSharedGroup.h
ndexRangeCache.cpp
ndexRangeCache.h
lUtils.h
e00ec9ddda30f6be5c027ccffd39e98a84e9acc9 16-Sep-2016 Lingfeng Yang <lfy@google.com> [AMD] Fix segfault in glCopyTexImage + cube map luminance

bug: 31523568

In particular, the test

dEQP.functional.texture.specification.basic_copyteximage2d.cube_luminance

segfaults the emulator on some AMD GPUs.

When we define cube maps using glCopyTexImage2D
and are using the GL_LUMINANCE internal format, if the negative
components of the cube map are defined first, the host AMD driver may
segfault (tested in Mobility Radeon and RX 480).

The workaround is to detect this particular API call, cube map target,
and internal format, and define the positive component first
using the same arguments, if the positive component has not been defined
already.

Change-Id: I26ed25bf3b7358ed7121a52f89d541c325beb6e4
LClientState.cpp
LClientState.h
727585ab633c10985c676e0e4805fcfa504c5e61 07-Sep-2015 Tina Zhang <tina.zhang@intel.com> [cherry-pick] Delete some useless files

Currently, some files are not used by the guest part of
GL emulation any more.

cherry-pick from https://android-review.googlesource.com/#/c/169695/

Change-Id: I1fb87614aaba19be6863d6fb85e80937d0778384
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
ndroid.mk
LDecoderContextData.h
LErrorLog.h
imeUtils.cpp
imeUtils.h
nixStream.cpp
nixStream.h
in32PipeStream.cpp
in32PipeStream.h
d90692889a26513d87f9f652221aeb727ad67a94 18-Jun-2016 Yahan Zhou <yahan@google.com> Make build script compatible with klp and up

It gets rid of c++11 and makes build script compatible with klp and up.

It also includes GL headers here, because headers in framework/native
might be different across API levels.

Change-Id: Ida425416a392cef878256965d69b54afe42b7263
hecksumCalculator.cpp
hecksumCalculator.h
2eeac5fe9e2b6e77db918523009c5b7125b4a075 12-Aug-2015 Elliott Hughes <enh@google.com> [cherry-pick] Lose HAVE_ANDROID_OS in goldfish.

cherry pick from:

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

Change-Id: Id626aee8d65e0ded543ac12416c37f938d196676
rrorLog.h
02aecd4f053cd2dd5fc5ed1c4b474ef4a2fe660c 28-Apr-2016 Yahan Zhou <yahan@google.com> Merge "glActiveTexture should set GL_INVALID_ENUM when taking wrong input" into mnc-emu-dev
690666019cab0065e459fa137d980690a9236299 12-Apr-2016 Lingfeng Yang <lfy@google.com> Stricter FBO completeness checks

dEQP-GLES2.functional.fbo.completeness.*:
39 Fail -> 0 Fail

Based on similar logic in Swiftshader's libGLESv2/libGLESv2.cpp

Also cache the result of glCheckFramebufferStatus,
if already called from somewhere else.

Change-Id: I3fb42dd6902cfce4043d08fd459a7069ef491f7e
LClientState.cpp
LClientState.h
57cb41b7ed8c951b1d28fe591c2d2fad97823060 08-Apr-2016 Lingfeng Yang <lfy@google.com> Validate presence of framebuffer attachment's object

dEQP-GLES2.functional.negative_api.state.get_framebuffer_attachment_parameteriv
Fail -> Pass
dEQP-GLES2.functional.fbo.api.attachment_query_empty_fbo
Fail -> Pass

Track texture and renderbuffer object associations to
framebuffer attachment points.

Change-Id: Iff646bc57ef0202105768123cfa99384f37b01a3
LClientState.cpp
LClientState.h
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
hecksumCalculator.cpp
hecksumCalculator.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
ndroid.mk
hecksumCalculator.cpp
hecksumCalculator.h
b01769885b1fb7ec3f4d4743f650660be7e92cad 02-Mar-2016 Lingfeng Yang <lfy@google.com> Cache glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, int*).

BUG: https://buganizer.corp.google.com/issues/27418143

If we don't, the chatter over the pipe will
kill framerate.

I believe this is OK for the emulator,
as the parameter is dependent on only the
GPU hardware.

Change-Id: I9bd74de6317316902bddf54b915ef509625cee52
LClientState.cpp
LClientState.h
db8565739a0c41c0685928caace975a766ffc9ca 01-Mar-2016 Yahan Zhou <yahan@google.com> glActiveTexture should set GL_INVALID_ENUM when taking wrong input

The GL spec says it generates GL_INVALID_ENUM if taking a wrong input.
Currently it generates GL_INVALID_OPERATION which is not the expected
error code.

Change-Id: I3313ad49130651d0358dbd3bdeb67b7e2d4fd5d9
LClientState.cpp
5950852258d5d98d7861890ecdcf6b0d4bc234ab 10-Feb-2016 Yahan Zhou <yahan@google.com> Support glDrawElements with GL_UNSIGNED_INT in the encoder

Currently glDrawElements with type GL_UNSIGNED_INT is not supported by
our encoder and decoder. The emulator will crash if someone uses it.
This patch add the support in the encoder side.

The related issue is here: b.android.com/200338
The patch on the decoder:
https://android-review.googlesource.com/#/c/202101

Change-Id: I9a6cde9983d34f39cfcc8c66a7ccf021dd5963eb
lUtils.cpp
0d75675ad262120982918f806102ddfceec23a10 30-Jan-2016 Lingfeng Yang <lfy@google.com> Clean up minor opengl errors/warnings.

There are always disconcerting messages printed to logcat
whenever developing apps on the emulator.

glUtilsParamSize and other functions
often fail with "unknow param 0x00..."

These are missing GLenums and types that for
some reason are not in glUtils.cpp
in OpenglCodecCommon.

There also has been a long-standing warning
that eglSurfaceAttrib is not implemented.

It seems we don't need to implement that to get things done,
so we will give a no-op implementation that suppresses
the warning.

Change-Id: I1b672cedf1672fc09cfe6a832f908e1496cc7a46
LClientState.cpp
lUtils.cpp
7a84f65de017435e0b6a496d297227df47ba2cf8 03-Dec-2014 Tina Zhang <tina.zhang@intel.com> Add parameters validation to glShaderSource() API

According to GLES2.0 Spec., add parameters validataion to
glShaderSource() API.

Change-Id: I5b0e939fd9657ccbb40a13896c8fc74ef02fd085
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
LSharedGroup.cpp
LSharedGroup.h
1a401b4da523e68e67c1848eea92f62960bde38a 18-Nov-2014 bohu <bohu@google.com> Properly initialize GLClientState's m_states

The data pointer of m_states[i] should be initialized to 0; otherwise
it contains garbage.

Change-Id: Ibfa9bb6fec395de6ac98a3e6b91d4c6ff4143f2c
LClientState.cpp
b0f0cdfcc54246817dac01408fee796dc17d892d 07-Nov-2014 bohu <bohu@google.com> Unbind buffer when buffer is deleted

When buffer is deleted, it should be un-bind also.
Also fix error code related to buffer

Change-Id: I3e7ec88399822469a36119c2de03157a2bbea812
LClientState.h
e01d5f47354d9e5cd63ae584daadc5076850851b 30-Oct-2014 David 'Digit' Turner <digit@google.com> opengl: Remove compiler warnings.

Simply remove multiple compiler warnings about unused parameter.
Note that this modifies three auto-generated files, which will
require fixing the 'emugen' program in the future.

Change-Id: I19edce7c6480770b893d033ed6b1c65744091d62
ixedBuffer.h
bd119bf2e3faa06751b1e5e65b59f0321bb7a998 17-Oct-2014 bohu <bohu@google.com> Guard against negative width and height

When negative width or height passes into pixelDataSize, some bogus
values are returned. This commit checks both width and height to make
sure they are valid.

Change-Id: Ia49a9f464e6bb4894207ca4e07bbfdf34fbe741d
LClientState.cpp
4169f3f84dabb7c95f3c381a60b16275062eb86c 10-Nov-2013 Jesse Hall <jessehall@google.com> Delete buffer data when removing it from the SharedGroup namespace

Updating or deleting data associated with a buffer object was clearing
the name->data association, but not actually deallocating the data.

Thanks to manjian2006 for finding the bug and proposing the fix.

Bug: 60468
Change-Id: I477f1e67d33a486419127ac790f32ddbbf566089
LSharedGroup.cpp
b2757f63f7319c6787cb8c379ceb454caf8f93f9 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: I2c07b8ce85aff341575ee8c3f509f64e252b8ed4
ndroid.mk
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
ndroid.mk
rrorLog.h
ixedBuffer.h
LClientState.cpp
LClientState.h
LDecoderContextData.h
LErrorLog.h
LSharedGroup.cpp
LSharedGroup.h
akefile
martPtr.h
ocketStream.cpp
ocketStream.h
cpStream.cpp
cpStream.h
imeUtils.cpp
imeUtils.h
nixStream.cpp
nixStream.h
in32PipeStream.cpp
in32PipeStream.h
odec_defs.h
lUtils.cpp
lUtils.h
l_base_types.h