summaryrefslogtreecommitdiff
path: root/host
AgeCommit message (Collapse)Author
2019-05-02Modify gralloc0 implementationandroid-mainline-10.0.0_r9android-mainline-10.0.0_r7android-mainline-10.0.0_r5android-mainline-10.0.0_r4android-mainline-10.0.0_r10android-10.0.0_r9android-10.0.0_r8android-10.0.0_r7android-10.0.0_r45android-10.0.0_r44android-10.0.0_r43android-10.0.0_r42android-10.0.0_r41android-10.0.0_r40android-10.0.0_r39android-10.0.0_r38android-10.0.0_r37android-10.0.0_r36android-10.0.0_r35android-10.0.0_r34android-10.0.0_r33android-10.0.0_r32android-10.0.0_r31android-10.0.0_r30android-10.0.0_r14android-10.0.0_r13android-10.0.0_r12android10-qpr3-s1-releaseandroid10-qpr3-releaseandroid10-qpr2-s4-releaseandroid10-qpr2-s3-releaseandroid10-qpr2-s2-releaseandroid10-qpr2-s1-releaseandroid10-qpr2-releaseandroid10-qpr1-mainline-releaseandroid10-mainline-media-releaseandroid10-devandroid10-d4-s1-releaseandroid10-d4-releaseandroid10-c2f2-s2-releaseandroid10-c2f2-s1-releaseandroid10-c2f2-releaseValerie Hau
Add validateBufferSize and getTransportSize Bug: 131089111 Test: build, boot Change-Id: I052f9537fa1b37a4a7b2f5d82309aff3d2e1f2f3
2018-11-26Merge ab/5111269 into master am: 816a8bb037 am: 6437e802bbCody Schuffelen
am: 6f55538523 Change-Id: I029c73dceadda59a3e96e5bf80f94da35104445d
2018-11-02Fix implicit-fallthrough warnings in AVDVirglRenderer.cpp etc.Chih-Hung Hsieh
It will be a global error by default. Test: make checkbuild Bug: 112564944 Exempt-From-Owner-Approval: do not block on new warnings
2018-11-01Merge "Silence a static analyzer warning"TreeHugger Robot
2018-10-31Silence a static analyzer warningGeorge Burgess IV
Our static analyzer is unhappy with this code, and thinks it has a memory leak: device/generic/opengl-transport/host/libs/virglrenderer/AVDVirglRenderer.cpp:343:38: warning: Potential leak of memory pointed to by 'config' [clang-analyzer-cplusplus.NewDeleteLeaks] While this immediately seems true, the constructor for `config` will stash a pointer to `config` in a static vector, which presumably is meant to manage the lifetime of our newly-allocated `config`. As noted in the comments, the analyzer can generally reason about that, but it gives up trying to figure out what the constructor is doing before we reach the vector's push_back. Just put a NOLINT here to make it be quiet. Bug: None Test: Ran the analyzer. It's no longer angry. Change-Id: Ida0118ef8b9ca0cd40cdd5e76489ab14cb86ea23
2018-10-29Fix implicit-fallthrough warnings in AVDVirglRenderer.cpp etc.Chih-Hung Hsieh
It will be a global error by default. Test: make checkbuild Bug: 112564944 Exempt-From-Owner-Approval: do not block on new warnings
2018-10-26Document why we can't build this for MacGreg Hartman
BUG: 118466250 Test: TH Change-Id: I2858aa77749eb8637afb1e5c9e26f184ba3d525e
2018-10-26Fix build break on macGreg Hartman
Test: Visual inspection There's no reason that emugen wouldn't compile on the mac, and turning it off here breaks things. Change-Id: Icaa6e06a8e69d89a7739b4702a62906767c03d58 (cherry picked from commit a688f6d6369222c9bdf5bd30a7b87aafa22ed7cd)
2018-10-26Fix build break on macGreg Hartman
Test: Visual inspection There's no reason that emugen wouldn't compile on the mac, and turning it off here breaks things. Change-Id: Icaa6e06a8e69d89a7739b4702a62906767c03d58 (cherry picked from commit a688f6d6369222c9bdf5bd30a7b87aafa22ed7cd)
2018-10-26Fix build break on macGreg Hartman
Test: Visual inspection There's no reason that emugen wouldn't compile on the mac, and turning it off here breaks things. Change-Id: Icaa6e06a8e69d89a7739b4702a62906767c03d58
2018-10-24Remove spurious Android.mkGreg Hartman
BUG: 117561734 Test: Local build gets further Change-Id: I96a0d285b98f97bed38a8f18657b9f12f21e6b47 (cherry picked from commit b647927ff80c6f4f44d07c978d16936f33ff2e61)
2018-10-24Remove spurious Android.mkGreg Hartman
BUG: 117561734 Test: Local build gets further Change-Id: I96a0d285b98f97bed38a8f18657b9f12f21e6b47 (cherry picked from commit b647927ff80c6f4f44d07c978d16936f33ff2e61)
2018-10-17Merge changes from topic "enablehostside" into cuttlefish-testingGreg Hartman
* changes: Hack to allow compilation on oreo and oreo-mr1 Add additional Android.bp files to make libs visible
2018-10-15Hack to allow compilation on oreo and oreo-mr1Greg Hartman
Change-Id: I2ddf71162da32b99e4c5f23bc0e505bcc43fb75e Test: Compiles
2018-10-15Remove spurious Android.mkGreg Hartman
BUG: 117561734 Test: Local build gets further Change-Id: I96a0d285b98f97bed38a8f18657b9f12f21e6b47
2018-10-12Add additional Android.bp files to make libs visibleGreg Hartman
BUG: 117561734 Test: Builds on oreo and oreo-mr1 Change-Id: Ie295ccd3ca252f35763f9ec5097075e722ed37f3
2018-10-12Remove supurious references to librariesGreg Hartman
BUG: 117561734 Change-Id: I2a5fb555be55e728fcb24a43244c781179a6b2f4
2018-08-28Changes to build a host-side libvirglrender.sotemp_116172357_cuttlefish-testingmaster-cuttlefish-testing-releaseGreg Hartman
BUG: 77276633 Change-Id: Ie6b4ddc5010e35bd7940a5c82e84480460ef542a Test: builds
2018-08-23AVDVirglRenderer: Host-side 3D for cuttlefishAlistair Strachan
Initial implementation of libvirglrenderer for the cuttlefish AVD. This replaces the host renderer part of the Virgil3D project. Control messages are replaced with the goldfish-opengl protocol. QEMU needs to be built with support for libvirglrenderer, then this library can either replace the system copy of libvirglrenderer, or be LD_PRELOADed. Code from the goldfish emulator has been extensively reused. The protocol decoders are identical to those used by the external/qemu emu-master-dev project. Additionally, the OpenGLESDispatch library was taken and repurposed to allow an alternative EGL/GLES implementation to be loaded and utilized by AVDVirglRenderer. - OpenGL ES 1.1 and OpenGL ES 3.1 are supported. - OpenGL ES 3.2 support is not planned. - Vulkan support is not planned. Bug: 77276633 Change-Id: I981102308113577bccb514d1d7c515a999e6b059
2018-08-23Add a fork of the emugen host toolAlistair Strachan
This change also adds a fork of the emugen host tool from external/qemu 799a545 to enable the generation of wrapper code using the emulator library templates. To regenerate the wrappers, use the following commands: $ emugen_cuttlefish -W eglwrapper -i eglwrapper egl $ emugen_cuttlefish -W eglwrapper -i eglwrapper gles1 $ emugen_cuttlefish -W eglwrapper -i eglwrapper gles3 Bug: 76027192 Bug: 74573450 Bug: 74572414 Bug: 74571771 Bug: 73780279 Test: this change is completely untested Change-Id: Ib5e26ff824fd073a670971174014ea4c1b86c9f6
2018-08-23Enable ASAN on mac os.Erwin Jansen
- We passed in the wrong type of parameters to enable asan. Note: Asan cannot work on gcc4.8-mingw. Bug: b/80526239 Test: Launch emulator on mac: ==95822==ERROR: AddressSanitizer: global-buffer-overflow on address 0x00010a24ea60 at pc 0x00010c7a7844 bp 0x70000eb11c70 sp 0x70000eb11420 Change-Id: I9ce056733ca93d88440c3c51ed1becc0c34d3dd4
2018-08-23EGL: export eglQuerySurface function.Tao Wu
It seems somehow we forget to export it even we've already implemented it. BUG: 70179880 Change-Id: Ib06ab832ed957a1c176cc37ee5f32ced37b6db6c
2018-08-23Enable Windows x86 buildErwin Jansen
We disabled the Windows 32 bit build during the introduction of clang, we now turn it back on again Bug: b/73238968 Change-Id: I3ba976b9b7c40bfdd67cbc7a75161aad3a434b88
2018-08-23Enable static ASAN from clangErwin Jansen
- We now use the sanitizer shipped with clang. - Note: Running with the sanitizer enabled might not always work or behave as expected. This change merely enables the sanitizer, it doesn't fix any failures. Change-Id: Ib58171129ab96c3073402ae22e6af1074ab7bb98 Test: ASAN_SYMBOLIZER_PATH=$PWD/../../prebuilts/clang/host/linux-x86/clang-4053586/bin/llvm-symbolizer ./objs/android_emu64_unittests
2018-08-23Fix missing dlls on windowsErwin Jansen
- We no longer include libc++.so on windows - Fix missing dlls due to toolchain changes. Bug: b/73547546 Test: Launched emulator on windows Change-Id: I19dd13b40b1655eac71fb8c9a903d0e836d45ecd
2018-08-23Use libc++ instead of libstdc++ on linux.Erwin Jansen
- We now use libc++ with clang vs. libstdc++ with gcc4.8 - Fixes compiler issues - Fixes build scripts to use libc.so, set rpath in executables - Removes libstdc++.so copying - Deprecrates -use-system-libs - Fix reporting bug in rebuild.sh - Run tests on newer versions of wine. - Remove 32 bit support on windows, cross compilers currently expect same bitness on host as as target. Clang only produces 64 bit, breaking the 32 bit build. Test: Unit tests green, can launch Test: Runs on Xenial Bug: b/37075150 Change-Id: Id37a98c36d7e9c0d26d737286e3a2f9e46269cf6
2018-08-23[deqp] fix delete_sync failureLingfeng Yang
Separate gl vs egl sync namespaces. bug: 71354060 Change-Id: I50f3c66b6945ffb76da5531cf99496ec63e531a5
2018-08-23[gl] remove some glClientWaitSyncLingfeng Yang
Test: No out of order frames on Antutu Thought I could get rid of all the glClientWaitSyncs, but we still need the SyncThread one. Change-Id: I639b98ddba15618139574895282e70c49c1e280f
2018-08-23[gl] Rewrite blitFromCurrentReadBufferLingfeng Yang
- Most eglMakeCurrent calls per frame removed (rest are from the guest OS) - Client wait sync still necessary (actually even extra ones needed) Change-Id: I717c924a6efa127c4cff88c3552f1463e2622f7c
2018-08-23[GPU Snapshot] GLES1 save vertex pointer data correctlyYahan Zhou
We would need to pass buffer size when calling glVertexPointer with a client data buffer. Change-Id: I719521b8186fc33467cb55efae963ef686c4c24a
2018-08-23[core-profile] Consistent FBO api usageLingfeng Yang
bug: 68335353 Even if the underlying GPU supports core profile, the EXT function pointers for FBOs may be missing / incompatible, or the suffix-less ARB function pointers are missing. + Add a fallback to the ARB suffixed functions (for older GPUs), and log failures to find GL functions. Change-Id: Iba76262b7da14a84766ed89eb739a90e022f4a45
2018-08-23[VR] EGL_KHR_wait_syncLingfeng Yang
Change-Id: I4125d83a2753d227ed71b3975202faff8185fff2
2018-08-23Move glRenderbufferStorageMultisample to gles_common.entriesYahan Zhou
glRenderbufferStorageMultisample is used by both GLES1 and GLES2. Move it from gles3_only.entries to gles_common.entries. BUG: 64951203 Change-Id: Ifa422eb4336ba1733a697351710ac147e196d254
2018-08-23[gl] ES version from underlying GLES or core profile GL versionLingfeng Yang
bug: 64131077 - Use context creation trials to determine max GLES version - Use feature control for compatibility and to prevent making guests that don't support ES3 run ES3. - Edit the version string to match, too. - remove dlsym based dispatch - filter extensions based on known working set of ES2 extensions if in ES2 mode Change-Id: I02c36cb9bcddb0ebba82c98a5ab631bbfe15162e
2018-08-23[gl][snapshot] Use LazyLoadedEGLDispatchLingfeng Yang
Instead of duplicating the functionality of it. +fix build break on Mac due to non-void function with blank return Change-Id: If3159c23a4957f7cd3418ad1f435d06b7d019bdb
2018-08-23[egl] Use eglGetProcAddress as fallback for missing functionsLingfeng Yang
bug: 63908229 Change-Id: I69b832198ae6dd5d58cee842bafa6e3dc5a74fa1
2018-08-23[ANGLE Snapshot] GLES2 translator on top of ANGLEYahan Zhou
This patch modifies our GLES2 translator to allow it to mount on top of ANGLE. Because ANGLE is a GLES2 backend while previously our translator assumes desktop GL backend, some modifications are required. The main changes in this patch include: (1) Pass a flag to GLES translator to tell if it is running on top of another GLES backend (2) Desktop GL sometimes assume EXT postfix for some functions while GLES does not. Modify dispatcher so that it loads func as well funcEXT and funcOES as alias. (3) ANGLE does not like GL_RGB8 and GL_RGBA8 texture internal formats. Change them to GL_RGB and GL_RGBA. (4) Bypass some texture parameter validations when using ANGLE backend. (5) Ignore the parsed shader and use orignal shader source when using ANGLE backend. Change-Id: I6c5a770a0157c020920a432f3c949e2f8d67e0eb
2018-08-23[gl] Fix 'inout' variable qualification + complex readbackLingfeng Yang
- Can use variables with both input and output qualities - Allow readback of complex structures. 3 phases: - host_pack_tmp_alloc: custom expression to allocate aligned temporaries for the output structs - host_pack: custom expression to pack into stream (losing alignment) - guest_unpack: custom expression to unpack into object on guest (regaining alignment) Change-Id: I9073325efe6847762e8b2d42fd9803d81ff67374
2018-08-23Fix a series of compiler warningsErwin Jansen
- Fix a set of warnings from the mac build - Deleted unused variables - Marked methods as override Change-Id: I614f0a444b83de6ec978afc017cfb53d9ceafd62
2018-08-23[gl] Allow custom unpack in decoderLingfeng Yang
Encoder has custom pack, why not custom unpack as well? Change-Id: I955e0967dad6ee6e1c46bda51774463b67774744
2018-08-23[snapshot] Save if IOStream has |m_buf| setYurii Zubrytskyi
IOStream uses |m_buf| as a buffer pointer and as a flag at the same time: if it's not set then there's no need to flush. Previous snapshotting code didn't save this bit of information, so next time one tried to allocate a buffer from a just loaded empty IOStream, it thought it's not empty (as |m_buf| was not nullptr) and tried to flush garbage. This CL saves this separately, so now |m_buf| after snapshot loading is exactly in the same state as it was before. Bug=b/36700704 Change-Id: I7af309bb1d3c16ba20969f7bb3f9bfc067d0051d
2018-08-23unconditionally extern "C", update guest encoderLingfeng Yang
Change-Id: Ia1cc789acd1ec4d00b83950e0125de4e7957d097
2018-08-23Fix running with anything other than lib64GLES_V2_translatorLingfeng Yang
Change-Id: Id145c7fda144dcca34d9d61c1d6e465edc862535
2018-08-23[GPU snapshot] Snapshot translator GLES2 contextYahan Zhou
This patch snapshot the translator GLES2 context as it is. Namespaces and GL objects will be in another patch. Hardware GPU restore will be in another patch. Change-Id: I12cd6d0b7174414bce0bd9143fcdf21786f12ba4
2018-08-23Remove a bad assert() in IOStream dtorYurii Zubrytskyi
The assert was ok for the regular case, but it would fail if the guest closed the pipe in the middle of processing because of some logic error Change-Id: I9d69f8ea6d9cb0e0cca3b1607fa49b7876be6b14
2018-08-23ChecksumCalculator serializationYurii Zubrytskyi
Change-Id: Id135b7e226c0664c3bc2261f0f6b5ab28cb580c6
2018-08-23[GPU snapshot] Framebuffer and contexts snapshotYahan Zhou
This patch snapshot FrameBuffer and RenderContexts. With this patch, after from a GPU snapshot, the emulator should not crash but it will complain about invalid window surface handle. Next step: snapshot window surfaces TODO: call eglMakeCurrent after loading refactor objectNameManager so that shared groups are indexed by ID better interface for EglContext::onLoad clean up the code Change-Id: I7aa740f215f96c054634f08d5862bbc9534728c1
2018-08-23IOStream and ChannelStream serialization functionsYurii Zubrytskyi
- IOStream serializes its internal state first, then calls derived class' implementation. - ChannelStream just saves/loads internal buffers Change-Id: Iccb7302c9cfe1f0f5d2c592376d5498d1b586266
2018-08-23GL state snapshot - initial structureLingfeng Yang
- sit between udnerlying es driver and guest - work with any es backend (angle, swiftshader, etc) - snapshot clear color as a smoke test TODO - plug into rest of snapshot - snapshot minimum set of GL state necessary to get to home screen Change-Id: Idf2eb9822d62f9308275ff2df8d12f4402e085c3
2018-08-23[WIP] glesv31 hostside changesLingfeng Yang
Change-Id: I2710d1685e19071cdadf0d5eeb1f29fae6f68e9a