commit | e3f818b4f02adfc712680f13ea29eb0cbbd836bb | [log] [tgz] |
---|---|---|
author | Lingfeng Yang <[email protected]> | Tue Nov 03 14:40:44 2020 -0800 |
committer | Lingfeng Yang <[email protected]> | Tue Nov 03 15:25:56 2020 -0800 |
tree | fc993452bd53a186f8bcd44a404422c5150e84ee | |
parent | 0e6868f978c0fe53f0c15d1bdc93adcdfadf36aa [diff] |
Bring up more tests, and enable zerocopy GL interop in EGL Bug: 171711491 TODO: BGRA/RGBA format mix is not supported in NVIDIA EGL (This only has implications for Fuchsia; the hope would be to move to a 100% Vulkan swapchain by then) Add more OpenglRender tests Add snapshot tests Add Vulkan test Also, it turns out that NVIDIA EGL does support GL_EXT_memory_objects now, except that we needed to use eglGetProcAddress to access it. Change-Id: I4fdc7bcfb1a8d260043e6d6072fb5990719102d7
Graphics Streaming Kit is a code generator that makes it easier to serialize and forward graphics API calls from one place to another:
Run ./build-host.sh
, or:
mkdir build cd build cmake . ../ -DCMAKE_TOOLCHAIN_FILE=../toolchain/toolchain-linux-x86_64.cmake # Or toolchain-darwin, or toolchain-windows_msvc depending on host platform make -j24
To regenerate any autogenerated sources, run ./codegen.sh
.
TODO: guest build makefiles (Android.bp)
For fast iteration, to start with, this project will reference code from the following projects:
device/generic/goldfish-opengl # master branch platform/external/qemu/ # emu-master-dev branch
Once the minimum set of code dependencies is determined, they will be extracted out to this project. We'll also use those to get the initial version of the code working on both Cuttlefish and Goldfish.
After this extraction and verification step, all the needed code for gfx streaming kit will be contained in this project, but the toolchain prebuilts for host side still need to be included as other projects. Therefore, we‘re looking at creating a new repo branch that encompasses this project and the toolchain prebuilts (or any other relevant projects). Thus it’s a good chance to rename this project to something more appropriate like device/generic/gfxstream
.
Then, we add a new go/ab target that builds + runs any relevant tests.
CMakeLists.txt
: specifies all host-side build targets. This includes all backends along with client/server setups that live only on the host. SomeAndroid.bp
: specifies all guest-side build targets for Android:BUILD.gn
: specifies all guest-side build targets for Fuchsiabase/
: common libraries that are built for both the guest and host. Contains utility code related to synchronization, threading, and suballocation.protocols/
: implementations of protocols for various graphics APIs. May contain code generators to make it easy to regen the protocol based on certain things.stream-clients/
: implementations of various frontends for various graphics APIs that generate protocol.stream-servers/
: implementations of various backends for various graphics APIs that consume protocol.toolchain/
: includes various CMake toolchain files for the host-side buildtransports/
: libraries that live on both guest and host that implement various transports. Does not care about what data is passed through, only how.testenvs/
: includes host-side mock implementations of guest graphics stacks, incl. Androidtests/
: includes functional tests use a mock transport and test environment