summaryrefslogtreecommitdiff
path: root/tools/emulator/opengl/system
Commit message (Collapse)AuthorAgeFilesLines
* move emulator HALs to device/generic/goldfishkeunyoung2013-03-1167-23886/+0
| | | | Change-Id: I1ff304d540c75c4d27c5fddeb7315e177d366fb3
* am f39c1088: am 7b9e308b: Merge ""debug" in those modules is discouraged"Ying Wang2013-03-071-1/+0
|\ | | | | | | | | * commit 'f39c1088f08e194a212f55a246bac85036f62a42': "debug" in those modules is discouraged
| * "debug" in those modules is discouragedYing Wang2013-03-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | Because we need those modules for only emulator builds. If you mark them as "debug", you'll get them even if you are doing a real device userdebug/eng build. Instead, we should add their module names to the emulator product config in build/target/product/emulator.mk. Bug: 8276818 Change-Id: I58988ce49804583b06e7d93380c44ba800448216
* | Fix glShaderSource parameter constnessJesse Hall2013-02-155-221/+221
|/ | | | Change-Id: I1008d779a9d333dc8968812d22e387b804e3c570
* Revert "Revert "Gralloc: Support HW_CAMERA_READ/HW_CAMERA_ZSL usage.""Eino-Ville Talvala2012-09-041-4/+10
| | | | | | | | Missing project ready to go. This reverts commit 9642da51023d5dadaa3b544f100e84dfdbcabea3 Change-Id: I08a43e9cdcb06bd6b74fd08809bbaf801c2eb44f
* Revert "Gralloc: Support HW_CAMERA_READ/HW_CAMERA_ZSL usage."Eino-Ville Talvala2012-09-041-10/+4
| | | | | | | | More dependent projects than I realized This reverts commit a84522d2f373aeb859490ec4015f548956a4818d Change-Id: Ifb50c94a2a5dfa91573f07695d8f3bfcadc79742
* Gralloc: Support HW_CAMERA_READ/HW_CAMERA_ZSL usage.Eino-Ville Talvala2012-09-041-4/+10
| | | | | | | | This is needed for passing buffers to the camera HAL for reprocessing. Bug: 6243944 Change-Id: Ibf8d15aead571ddb3b62674cf7afe0d508ca24e7
* EmulatedFakeCamera2: Use HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINEDEino-Ville Talvala2012-08-282-14/+5
| | | | | | | Stop using CAMERA2_HAL_PIXEL_FORMAT_OPAQUE. Bug: 6243944 Change-Id: I96ea30228b126b4eed560a760269cb50bbbb62f7
* Emulator gralloc: Fix RAW_SENSOR conditions.Eino-Ville Talvala2012-08-201-2/+2
| | | | | | | Allow RAW_SENSOR to be used for any combination of CPU read/write and Camera read/write, instead of only camera->cpu or cpu->camera. Change-Id: I032b9531e9069a202c1a3767b77975c808703285
* Emulator gralloc: Support YV12Eino-Ville Talvala2012-08-201-4/+13
| | | | | Bug: 6243944 Change-Id: I5f416ab0ae15143df422c0f79d91841984b4fabe
* gralloc: Add automatic format selection. DO NOT MERGEEino-Ville Talvala2012-07-263-19/+76
| | | | | | | | | | | Have gralloc_alloc be able to select the appropriate pixel format given the endpoints, triggered by new GRALLOC_EMULATOR_PIXEL_FORMAT_AUTO format. Currently supports camera->screen, and camera->video encoder. Bug: 6243944 Change-Id: Ib1bf8da8d9184ac99e7f50aad09212c146c32809
* gralloc: Support HAL_PIXEL_FORMAT_YCrCb_420_SP (NV21)Eino-Ville Talvala2012-07-111-3/+15
| | | | | | | This is needed for Camera HAL2 video recording. Bug: 6243944 Change-Id: I47a3e65117881612fb95068a80f811cc8378fbc6
* Update to renamed ANativeWindow methodsJesse Hall2012-06-211-6/+4
| | | | | | | | | | A few ANativeWindow methods were updatd to take a Sync HAL file descriptor, and the existing methods were renamed with a _DEPRECATED suffix. Since the emulator graphics acceleration doesn't yet support the sync HAL, this change continues calling the deprecated functions via their new names. Change-Id: I5b1760811fafb6723ede887e32e63f94cbaeffe5
* Emulator gralloc: Support HAL_PIXEL_FORMAT_BLOBEino-Ville Talvala2012-06-131-0/+11
| | | | | Bug: 6243944 Change-Id: I2864bc59be9df8741639a291c71e2f65dde5bc0b
* Move emugl system code to development.gitJesse Hall2012-06-0667-0/+23803
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Move emulator GLES from development.git to sdk.gitJesse Hall2012-04-1850-9001/+0
| | | | | | | | | | | | | | | 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
* EmuGL: don't [de]queue buffers in eglMakeCurrentJesse Hall2012-02-241-161/+104
| | | | | | | | | | | Whenever a surface was attached to a context, it was dequeing a new buffer, and enqueing it when detached. This has the effect of doing a SwapBuffers on detach/attach cycle, which is just wrong and occasionally caused visible glitches (e.g. animations going backwards for one frame). It also broke some SurfaceTexture tests which (validly) depend on specific buffer production/consumption counts. Change-Id: Ibd4761e8842871b79fd9edf52272900193cb672d
* EmuGL: enable SurfaceTexture async modeJesse Hall2012-02-241-1/+20
| | | | | | | | Pass the swap interval from eglSwapInterval to the native window so it can enable/disable SurfaceTexture's async mode. Fixes the deadlock in SurfaceTextureGLToGLTest.EglDestroySurfaceUnrefsBuffers. Change-Id: I19bf69247341f5617223722df63d6c7f8cf389c6
* EmuGL: GLESv2 support for OES_EGL_image_externalJesse Hall2012-02-223-33/+557
| | | | Change-Id: I8911328d5dcccdf4731bd2d8fd953c12fdec5f1b
* EmuGL: refinements to GLESv1 image_externalJesse Hall2012-02-212-10/+58
| | | | | | | | | | | | | | * EGLImageTargetRenderbufferStorageOES was incorrectly accepting TEXTURE_EXTERNAL_OES as a target. Revert that; the host GL will correctly reject it with INVALID_ENUM. * Handle the REQUIRED_TEXTURE_IMAGE_UNITS_OES texparameter query. * Validate texture parameters set on TEXTURE_EXTERNAL textures; otherwise invalid parameters would work on the emulator but not on a real device. Change-Id: I49a088608d58a9822f33e5916bd354eee3709127
* EmuGL: refcount ColorBuffers on the hostJesse Hall2012-02-214-8/+27
| | | | | | | | | | | | | | | | | | The gralloc API assumes system-wide reference counting of gralloc buffers. The host-GL accelerated gralloc maps buffers to host-side ColorBuffer objects, but was destroying them unconditionally in gralloc_free(), ignoring any additional references from gralloc_register_buffer(). This affected the SurfaceTexture gralloc buffers used by the Browser/WebView. For some reason these buffers are actually allocated by SurfaceFlinger and passed back to the WebView through Binder. But since SurfaceFlinger doesn't actually need the buffer for anything, sometime after the WebView has called gralloc_register_buffer() SurfaceFlinger calls gralloc_free() on it. This caused the host ColorBuffer to be destroyed long before the WebView is done using it. Change-Id: I33dbee887a48a6907041cf19e9f38a1f6c983eff
* am b0a30e43: EmuGL: remove broken EGL buffer refcountingJesse Hall2011-12-121-10/+0
|\ | | | | | | | | * commit 'b0a30e43889415a9a40b9519392ad3be295b9465': EmuGL: remove broken EGL buffer refcounting
| * EmuGL: remove broken EGL buffer refcountingJesse Hall2011-12-121-10/+0
| | | | | | | | | | | | | | | | | | | | | | The emulator EGL implementation tried to hold its own reference to buffers acquired/released with dequeueBuffer/queueBuffer, but was missing an incRef after dequeueBuffer during swapBuffers. Since the native window holds a reference to the buffer between dequeueBuffer and queueBuffer, the EGL reference isn't needed anyway. Change-Id: I95e4f9f4faf59198f99939cdca6603fe176c56bc
* | am 96cd9c31: Merge "EmuGL: capture VBO contents in GL2Encoder" into ics-mr0Jesse Hall2011-12-011-0/+3
|\| | | | | | | | | * commit '96cd9c3130b6215534e863b94637b384da8102c9': EmuGL: capture VBO contents in GL2Encoder
| * EmuGL: capture VBO contents in GL2EncoderJesse Hall2011-12-011-0/+3
| | | | | | | | | | | | | | | | | | The glBufferData, glBufferSubData, and glDeleteBuffers entry points had interception routines in GL2Encoder which cache the data, but they weren't hooked up. So when glDrawElements tried to retrieve the cached data it wasn't there. Change-Id: Iaed11fccaefab3186485be53a0f15c8ca0a255f9
* | am af4f66be: EmuGL: implement OES_EGL_image_external for GLESv1Jesse Hall2011-11-224-36/+440
|\| | | | | | | | | * commit 'af4f66be50b17c8b8fce1dda53389bb0a10968ba': EmuGL: implement OES_EGL_image_external for GLESv1
| * EmuGL: implement OES_EGL_image_external for GLESv1Jesse Hall2011-11-214-36/+440
| | | | | | | | | | | | | | GLESv2 support will come in a followup change but will take advantage of the GLClientState changes. Change-Id: Ib6cbb4dafbd071e3b59b1e5d808b3e23656ada92
* | should fix sdk buildMathias Agopian2011-11-152-8/+1
| | | | | | | | Change-Id: I5b403056f5245eae9a6476d9d573a3b1c25ea0c6
* | emulator: opengl: minor fix and reformattingDavid 'Digit' Turner2011-10-192-2/+6
|/ | | | | | | This patches fixes a minor invalid usage of delete (instead of delete[]) and reformats the source code a little to make it more obvious. Change-Id: If853d12e74549abcc6682430c837b0f14da81fdc
* emulator: opengl: 'large' buffer optimizationDavid 'Digit' Turner2011-09-204-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* emulator: opengl: improve gralloc debug tracesDavid 'Digit' Turner2011-09-201-17/+38
| | | | | | + shut up the gralloc module for now. Change-Id: I7d22c63f298c4e50d96655adf4025a65b7405c28
* emulator: opengl: fix inccorect delete usage.David 'Digit' Turner2011-09-201-2/+2
| | | | Change-Id: I3afc5197d2d13c4698a535ed769a56920e81c94f
* emulator: opengl: add missing EGLDisplay destructorDavid 'Digit' Turner2011-09-202-0/+6
| | | | Change-Id: I788904a597b7929a7fc7a5db3cf5baa79b9f1936
* emulator: opengl: make internal tables const.David 'Digit' Turner2011-09-204-7/+7
| | | | | | + fix a typo. Change-Id: I4c290d673de5eff24998b97cfb996d9da17dd006
* emulator: opengl: Back-port GLES emulation from the master tree.David 'Digit' Turner2011-09-2050-0/+8020
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