• Bo Liu's avatar
    aw: Switch instrumentation shell to SurfaceView · 012b87aa
    Bo Liu authored
    Also refactor the fake draw_fn implementation. This is to prepare for
    adding a vulkan draw_fn implementation.
    
    Split draw_fn implementation into:
    allocator.cc/h: Controls functor data lifetime
    context_manager: Effectively global. Responsible for owning the surface
                     and EGL context. Calls sync/draw/context_destroyed on
                     functor and responsible for owning the "impl reference"
                     to functor data.
    
    context_manager uses EGL bindings from ui/gl, but nothing else
    to avoid conflicting with chromium side implementations, and to avoid
    initializing a TaskRunner on render thread. Only GLES call is
    glReadPixels after draw, which relies on chromium implementation not
    releasing its bindings after draw.
    
    Refactor and simplify the java side by explicitly adding a thread to
    post tasks and a WaitableEvent; this avoids saving state and using
    a Lock object.
    
    Cq-Include-Trybots: luci.chromium.try:gpu-fyi-try-android-m-nexus-5x-64
    Bug: 1141687
    Change-Id: I71752b31f401fdb277062fe1347dfa826a20bb81
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2587238
    Auto-Submit: Bo <boliu@chromium.org>
    Commit-Queue: Jonathan Backer <backer@chromium.org>
    Reviewed-by: default avatarJonathan Backer <backer@chromium.org>
    Reviewed-by: default avatarVasiliy Telezhnikov <vasilyt@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#837094}
    012b87aa
BUILD.gn 27.2 KB