aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Refactor the converters to make them more manageableVladimir Chtchetkine2011-09-171-1151/+690
| | | | | | | | | | | | | | | The current conversion implementation was laking flexibility as far as adding support for new formats was concerned. In particular, adding support for each new format meant adding four converter routines: new format <--> RGB, new format <--> YUV. This was not scalable, so had to be rewritten. The new conversion implementation consists of four generic converters between different flavors og RGB/YUV formats, and array of descriptors for each supported format. Each descriptor contains information that is sufficient for the converter routines to perform its job. So, adding new format is just creating a new descriptor for that format, and adding it to the array of supported descriptors. Change-Id: Ica107d14fa03fa8f41eb9192f2c023a97f54b62c
* Add support for NV21, and NV12 formatsVladimir Chtchetkine2011-09-162-0/+584
| | | | Change-Id: I4bea0f3678b2ac21f3c6cf80581e997145e2a58d
* Merge "gles: use fast GLES pipe by default (Unix only)"David Turner2011-09-153-4/+60
|\
| * gles: use fast GLES pipe by default (Unix only)David Turner2011-09-133-4/+60
| | | | | | | | | | | | This improves performance of various benchmarks by 5% Change-Id: If2d2be0e9849429ecffe52b7d482cfbee4008473
* | Fixes "stop device" issue on LinuxVladimir Chtchetkine2011-09-141-0/+19
| | | | | | | | | | | | | | | | Apparently, video driver doesn't allow frame size change, once it has been explicitly set. In order to get around this we need to reset the handle to the camera device by closing, and then reopening it. Change-Id: Icfd37b3c196d2643507218b965c5015884ed455b
* | Add cmdline param to control fake camera emulationVladimir Chtchetkine2011-09-135-6/+49
|/ | | | | | | - Enable / Disable fake camera - Set fake camera facing direction: back, or front Change-Id: Iab741a694daf2bf752e91e23df566a83ac7a97e7
* Merge "Add -gpu <mode> option to force GPU emulation"David Turner2011-09-133-0/+44
|\
| * Add -gpu <mode> option to force GPU emulationDavid Turner2011-09-133-0/+44
| | | | | | | | | | | | | | | | | | By default, GPU emulation is still disabled. You can still try to force it with '-gpu on' for experimentation purpose (alternatively, you can define hw.gpu.enabled to 'true' in your AVD config.ini) Change-Id: I87efdf45337a80aeadd94b3922312b3f564c1608
* | Merge "Fix x86 qemu pipe initialization"David Turner2011-09-131-0/+2
|\ \
| * | Fix x86 qemu pipe initializationDavid 'Digit' Turner2011-09-131-0/+2
| |/ | | | | | | | | | | | | | | This is necessary ot initialize qemu pipes when running an emulated x86 system. Required to try OpenGLES emulation for x86. Change-Id: I4fa38648dcdd4e85d1794b131238b27b4dd4b91e
* | Restricting processor features in KVM modeMaciek Molerus2011-09-131-1/+8
|/ | | | | | | | | Some processors don't have full features set as in 'qemu32', eg. AMD doesn't have SSSE3 extensions yet. Added code which restricts CPU features set in KVM mode to those it actually has. Change-Id: I37c2d44a03e4445a607b723b0f63c91989c251dc
* Fix -ramdisk option handling.David 'Digit' Turner2011-09-131-2/+9
| | | | | | | For some reason, there was a bug, where the option was being ignored if set from the command-line. Change-Id: I61c6e3127b469f4ec661b834b15c4da0841551af
* Merge "Accelerate nand device in virtualization environment"David Turner2011-09-132-2/+50
|\
| * Accelerate nand device in virtualization environmentJiang Yunhong2011-09-132-2/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently NAND device driver need 8 MMIO access for goldfish nand device access. MMIO access is expensive in virtualization environment because each MMIO access will cause a context switch from in-kernel module to qemu user space process. Through introducing a new batch command, these multiple MMIO access can be combined into one, thus improve virtualization perofrmance. The booting time in KVM environment is reduced from 25~26 seconds to 20~21 seconds. A kernel patch is required to utilize this new batch command. The patched kernel will detect the batch support through a new flags in goldfish nand device, while current kernel is not impacted. Change-Id: Ia460b1ba3c6fde5b1fc6101bb66f8f58e46e6a78 Signed-off-by: Xin Xiaohui <xiaohui.xin@intel.com> Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com> Signed-off-by: Jiang Yunhong <yunhong.jiang@intel.com> Signed-off-by: Nakajima Jun <jun.nakajima@intel.com>
* | emulator: fix Win32 runtime crashDavid 'Digit' Turner2011-09-131-2/+2
|/ | | | Change-Id: I5ca4b1393211c1d8a5caba332c3f6164afb4661b
* Fix Mac buildVladimir Chtchetkine2011-09-121-1/+0
| | | | | | Remove Windows artifact Change-Id: I2ffd5979674619786742f14995edbf10edfff23a
* Fix Mac buildVladimir Chtchetkine2011-09-122-0/+91
| | | | | | Add dummy rutines implementing public camera API on Mac Change-Id: Id3c9d99d863785b0e00d1bdf6deb0a1af49ce91c
* Implements camera service in emulatorVladimir Chtchetkine2011-09-128-461/+2867
| | | | | | | | | | | | This is fully functional camera service implementation, that works (tested) on both, Linux and Windows. Fixed little/big endian bugs in the coverter code. Moved preview frames to use RGB32 instead of RGB565: RGB32 conversions are simpler and faster in the guest. Made "payload size send" a separate routine Change-Id: I96954f4c2cb4e4ef4dd6a20e41897d79c5037bae
* Camera service skeletonVladimir Chtchetkine2011-09-074-1/+353
| | | | | | | | | | Skeleton that implements camera emulation service over QEMU pipe. More meat will be added as the guest camera emulation develops. This is a patch taken from approved AOSP commit that didn't go through because of a merge conflict. Change-Id: I6f0a2e42be4f5f0bd86d3dbf0c2a609e74b200c2
* Fix for a _qemudPipe_recvBuffers bugVladimir Chtchetkine2011-09-071-3/+7
| | | | | | | | | | | | | When filling in qemud buffers in the loop, current offset in the current qemud buffer (off_in_buff variable) has not been accounted for when calculating number of bytes to copy from the message to qemud buffer. This caused data corruption, because number of bytes copied has exceeded the capacity of qemud buffer. Also, off_in_buff has not been reset when switching to the next qemud buffer. Also fixed _qemud_char_service_connect routine to accept a client parameter string Change-Id: I2f5a7ca5924c0b79d8755f4777145044567f3e8d
* Merge changes I1fa3512b,I47df0caeDavid 'Digit' Turner2011-08-2911-13/+358
|\ | | | | | | | | | | * changes: Add hw.gpu.enabled hardware property Fix a crash when GPU emulation doesn't work.
| * Add hw.gpu.enabled hardware propertyDavid 'Digit' Turner2011-08-2911-3/+346
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new hardware property to enable GPU emulation (named hw.gpu.enabled). It is currently disabled by default. It also modifies the UI code to display the GL output properly inside the UI window. And sets the kernel parameter qemu.gles to either 0 or 1 to indicate to the guest system's GLES libraries whether to use GPU emulation or fallback to the software renderer. A future patch will also add auto-detection of desktop GL capabilities. For example, if the emulator is started on a headless server without an X11/GL display, hw.gpu.enabled will be forced to 'no', forcing the guest to use the software renderer. Another patch will allow to change the property from the command-line for debugging purpose. NOTE: If you want to test GPU emulation, change the default value of the property in android/avd/hardware-properties.ini from 'no' to 'yes'. You will need to run a ToT master AOSP tree with the following pending patches applied: https://review.source.android.com/25797 https://review.source.android.com/25154 https://review.source.android.com/25759 Change-Id: I1fa3512be24395244fd5068f2bf59ad54db5c7d5
| * Fix a crash when GPU emulation doesn't work.David 'Digit' Turner2011-08-291-10/+12
|/ | | | | | | This patch fixes a simple segmentation fault in the case where we can't connect to the GPU emulation rendering library. Change-Id: I47df0cae9029aee4738fd89083750e3baca5f032
* Merge "Fix premature boot-properties service disconnect."Vladimir Chtchetkine2011-08-281-1/+0
|\
| * Fix premature boot-properties service disconnect.Vladimir Chtchetkine2011-08-271-1/+0
|/ | | | Change-Id: I746147ab0c441a05055f7fc878eda3e035c0da14
* Merge "Enable qemud clients to pass connection parameters to emulator."Vladimir Chtchetkine2011-08-255-20/+83
|\
| * Enable qemud clients to pass connection parameters to emulator.Vladimir Chtchetkine2011-08-255-20/+83
|/ | | | | | | | | | | | This is useful for qemud pipe clients to be able to pass parameters to the emulator service when connecting. In particular, this would be extremely useful for camera emulation clients, which can pass name of the camera device, and other parameters that may be required to connect to the camera. Parameters are passed when opening the qemud pipe in form: /dev/qemu_pipe/camera:/dev/video0 I.e. parameters follow the service name, separated from it by ':' Change-Id: I67f0ef0ff27008e2b52652e58d72d5216b244646
* Merge "Fix qemu pipe's 'poll' callbacks"Vladimir Chtchetkine2011-08-254-11/+11
|\
| * Fix qemu pipe's 'poll' callbacksVladimir Chtchetkine2011-08-254-11/+11
|/ | | | | | | | | Throughout emulator's code pipe's 'poll' callback was returning PIPE_WAKE_XXX, instead of PIPE_POLL_XXX flags. This created whole sort of issues with the qemu pipe service <-> client communications. This is also a fix for http://b/issue?id=5196348 Change-Id: I92202cf4ef4554559eb022c4410ee93923edec1b
* Merge "Fix the darwin build"Vladimir Chtchetkine2011-08-242-2/+5
|\
| * Fix the darwin buildVladimir Chtchetkine2011-08-242-2/+5
| | | | | | | | Change-Id: I87bd356f7673bdbcc8e5f196f4a89182b3a36cbe
* | Merge "Fix build break: make sure darwin build picks up on required ↵Vladimir Chtchetkine2011-08-242-3/+3
|\ \ | |/ | | | | declarations"
| * Fix build break: make sure darwin build picks up on required declarationsVladimir Chtchetkine2011-08-242-3/+3
| | | | | | | | Change-Id: I801d56668d8591e599994c65fb47b9c3ea77ff73
* | Merge "Fix the build by #ifdefing linux-only includes"Vladimir Chtchetkine2011-08-241-2/+4
|\ \ | |/
| * Fix the build by #ifdefing linux-only includesVladimir Chtchetkine2011-08-241-2/+4
| | | | | | | | Change-Id: Ia4b6b45ad305307f28858f834f284b07be7d134d
* | Merge "emulator: probe shared library search path"David 'Digit' Turner2011-08-241-0/+128
|\ \
| * | emulator: probe shared library search pathDavid 'Digit' Turner2011-08-241-0/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch modifies the 'emulator' launcher program to probe for a adequate directory containing shared libraries that will be required by the emulator core to implement GLES emulation properly. It does that by looking for a library named libOpenglRender.so (or .dll, or .dylib depending on the platform) in various directories around the one containing the executable program. When such a directory is found, it modifies the value of the PATH or LD_LIBRARY_PATH environment variable before calling exec() This is necessary because there is no way to change the list of search directories at runtime, i.e. between the program's start and the moment it calls dlopen() to load such a library. Change-Id: I7346d26597382f44931cdf08936b051e74d3641a
* | | Merge "android-configure.sh: Add OpenGLES support"David 'Digit' Turner2011-08-241-1/+111
|\ \ \ | |/ / | | / | |/ |/|
| * android-configure.sh: Add OpenGLES supportDavid 'Digit' Turner2011-08-241-1/+111
|/ | | | | | | | | | | | | | | | | | | | | | | This patch modifies android-configure.sh in several ways: - It adds --gles-include and --gles-libs options to point to the location where one can find the headers and host shared libraries required for OpenGLES emulation support. - It also adds --no-gles to disable adding such support. - In the case of a platform build, it auto-configs --gles-include and --gles-libs for you. - adds '#define CONFIG_ANDROID_OPENGLES 1" to the auto-generated config-host.h file. This is in preparation of more GLES-related patches. Note that this does *not* add GLES emulation support to the emulator itself, this will come later. Change-Id: I42d93475d323334db1b585f61c963688c80a3f06
* Merge "Avoid conflicts with SDL_CONFIG variable."David 'Digit' Turner2011-08-242-2/+3
|\
| * Avoid conflicts with SDL_CONFIG variable.David 'Digit' Turner2011-08-242-2/+3
| | | | | | | | | | | | | | | | | | | | Other Android.mk parsed before this one may define SDL_CONFIG in an unexpected way. We only use this variable as input when want to implement the --sdl-config option in ./android-configure.sh Use QEMU_SDL_CONFIG instead to avoid issues. Change-Id: I89d56284017c696227d7c66ea7d7b0acaa73a9ca
* | Merge "Add DLL-loading head <android/utils/dll.h>"David 'Digit' Turner2011-08-245-0/+300
|\ \ | |/
| * Add DLL-loading head <android/utils/dll.h>David 'Digit' Turner2011-08-245-0/+300
|/ | | | | | | | This patch adds several functions to make loading shared libraries dynamically easier. This will be used to load the GLES emulation libraries. Change-Id: Ib401af339530bc647bfa86fb23a2840fe0a201dd
* Merge "Video capturing code for Linux, and Windows"Vladimir Chtchetkine2011-08-249-2/+1474
|\
| * Video capturing code for Linux, and WindowsVladimir Chtchetkine2011-08-189-2/+1474
| | | | | | | | | | | | | | Contains API that connects to a camera device, and pulls video frames from it on request from the client. Change-Id: If1d80c57611afff637a7734ce5c3a2c874cfc85a
* | Merge "Revert "Revert "Merge c80340 from master to r13: Move charmap to ↵Xavier Ducrohet2011-08-229-62/+73
|\ \ | | | | | | | | | hardware properties"...""
| * | Revert "Revert "Merge c80340 from master to r13: Move charmap to hardware ↵Xavier Ducrohet2011-08-229-62/+73
|/ / | | | | | | | | | | | | | | | | | | | | | | | | properties"..." This reverts commit cccd28ca5064a7bd14282cd774ee5bb7126d5845. c80340 add a CL to tools_r13 that broken the build. It was therefore reverted with cccd28. This revert was merged into tools_r13 but shouldn't have been. This reverts the revert to put back the CL in master. Change-Id: I95fcefedb77596cfdf76269f248b2ae80c85c830
* | Merge "Fix an emulator crash due to closed qemud pipe"Vladimir Chtchetkine2011-08-191-25/+51
|\ \
| * | Fix an emulator crash due to closed qemud pipeVladimir Chtchetkine2011-08-181-25/+51
|/ / | | | | | | | | | | | | | | | | It looks like goldfish_pipe may make a call to the pipe after client has been disconnected and QemudClient instance freed. This results in a sudden death of the emulator, because _qemudPipe_recvBuffers doesn't know that the client for that call is gone. Change-Id: Ie1dd5481a01fd5bbb58d8c2d4e1bbe1ecfeca38a
* | merge from tools_r13The Android Open-Source Project2011-08-180-0/+0
|\ \ | |/ |/| | | Change-Id: I4994dd2e99378bfeeb1a88ba07742e205bf07a18