Age | Commit message (Collapse) | Author |
|
Add validateBufferSize and getTransportSize
Bug: 131089111
Test: build, boot
Change-Id: I052f9537fa1b37a4a7b2f5d82309aff3d2e1f2f3
|
|
am: 6f55538523
Change-Id: I029c73dceadda59a3e96e5bf80f94da35104445d
|
|
It will be a global error by default.
Test: make checkbuild
Bug: 112564944
Exempt-From-Owner-Approval: do not block on new warnings
|
|
|
|
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
|
|
It will be a global error by default.
Test: make checkbuild
Bug: 112564944
Exempt-From-Owner-Approval: do not block on new warnings
|
|
BUG: 118466250
Test: TH
Change-Id: I2858aa77749eb8637afb1e5c9e26f184ba3d525e
|
|
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)
|
|
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)
|
|
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
|
|
BUG: 117561734
Test: Local build gets further
Change-Id: I96a0d285b98f97bed38a8f18657b9f12f21e6b47
(cherry picked from commit b647927ff80c6f4f44d07c978d16936f33ff2e61)
|
|
BUG: 117561734
Test: Local build gets further
Change-Id: I96a0d285b98f97bed38a8f18657b9f12f21e6b47
(cherry picked from commit b647927ff80c6f4f44d07c978d16936f33ff2e61)
|
|
* changes:
Hack to allow compilation on oreo and oreo-mr1
Add additional Android.bp files to make libs visible
|
|
Change-Id: I2ddf71162da32b99e4c5f23bc0e505bcc43fb75e
Test: Compiles
|
|
BUG: 117561734
Test: Local build gets further
Change-Id: I96a0d285b98f97bed38a8f18657b9f12f21e6b47
|
|
BUG: 117561734
Test: Builds on oreo and oreo-mr1
Change-Id: Ie295ccd3ca252f35763f9ec5097075e722ed37f3
|
|
BUG: 117561734
Change-Id: I2a5fb555be55e728fcb24a43244c781179a6b2f4
|
|
BUG: 77276633
Change-Id: Ie6b4ddc5010e35bd7940a5c82e84480460ef542a
Test: builds
|
|
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
|
|
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
|
|
- 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
|
|
It seems somehow we forget to export it even we've already implemented it.
BUG: 70179880
Change-Id: Ib06ab832ed957a1c176cc37ee5f32ced37b6db6c
|
|
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
|
|
- 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
|
|
- 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
|
|
- 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
|
|
Separate gl vs egl sync namespaces.
bug: 71354060
Change-Id: I50f3c66b6945ffb76da5531cf99496ec63e531a5
|
|
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
|
|
- 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
|
|
We would need to pass buffer size when calling glVertexPointer with a
client data buffer.
Change-Id: I719521b8186fc33467cb55efae963ef686c4c24a
|
|
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
|
|
Change-Id: I4125d83a2753d227ed71b3975202faff8185fff2
|
|
glRenderbufferStorageMultisample is used by both GLES1 and GLES2. Move
it from gles3_only.entries to gles_common.entries.
BUG: 64951203
Change-Id: Ifa422eb4336ba1733a697351710ac147e196d254
|
|
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
|
|
Instead of duplicating the functionality of it.
+fix build break on Mac due to non-void function with blank return
Change-Id: If3159c23a4957f7cd3418ad1f435d06b7d019bdb
|
|
bug: 63908229
Change-Id: I69b832198ae6dd5d58cee842bafa6e3dc5a74fa1
|
|
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
|
|
- 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
|
|
- Fix a set of warnings from the mac build
- Deleted unused variables
- Marked methods as override
Change-Id: I614f0a444b83de6ec978afc017cfb53d9ceafd62
|
|
Encoder has custom pack, why not custom unpack as well?
Change-Id: I955e0967dad6ee6e1c46bda51774463b67774744
|
|
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
|
|
Change-Id: Ia1cc789acd1ec4d00b83950e0125de4e7957d097
|
|
Change-Id: Id145c7fda144dcca34d9d61c1d6e465edc862535
|
|
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
|
|
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
|
|
Change-Id: Id135b7e226c0664c3bc2261f0f6b5ab28cb580c6
|
|
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
|
|
- IOStream serializes its internal state first, then calls
derived class' implementation.
- ChannelStream just saves/loads internal buffers
Change-Id: Iccb7302c9cfe1f0f5d2c592376d5498d1b586266
|
|
- 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
|
|
Change-Id: I2710d1685e19071cdadf0d5eeb1f29fae6f68e9a
|