summaryrefslogtreecommitdiff
path: root/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2011-09-19 18:47:26 +0200
committerDavid 'Digit' Turner <digit@google.com>2011-09-20 15:58:54 +0200
commit5d7f0875e9cda2d6ab37b49f0b6ceed8f0d16f45 (patch)
tree20aa7f60766145820ac821bbc0ec142f66cf37d2 /tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp
parente72ed049a890da6883b0de09a2263b88b648391a (diff)
emulator: opengl: 'large' buffer optimization
This patch modifies the guest encoding libraries to avoid un-necessary copies when sending large buffers (e.g. pixels) to the host. Instead, the data is sent directly through a new IOStream method (writeFully()). On my machine, this improves the NenaMark2 benchmark (from 50.8 to 57.1 fps). More importantly, this speeds up the display of non-GL surfaces too, which are sent through the special rcUpdateColorBuffer() function in gralloc_goldfish. This is noticeable in many parts of the UI (e.g. when scrolling through lists). To tag a given parameter, use the new 'isLarge' variable flag in the protocol .attrib file. Implemented for the following encoding functions: rcUpdateColorBuffer glTexSubImage2D glTexImage2Di glBufferData glBufferSubData glCompressedTexImage2D glCompressedTexSubImage2D glTexImage3DOES glTexSubImage3DOES glCompressedTexImage3DOES glCompressedTexSubImage3DOES + Optimize the auto-generated encoder functions to avoid repeated function calls (for size computations). Change-Id: I13a02607b606c40cd05984cd2051b1f3424bc2d0
Diffstat (limited to 'tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp')
0 files changed, 0 insertions, 0 deletions