OSDN Git Service

Remove the VR compositor from the framework.
authorCorey Tabaka <eieio@google.com>
Thu, 20 Apr 2017 23:04:07 +0000 (16:04 -0700)
committerCorey Tabaka <eieio@google.com>
Fri, 5 May 2017 01:47:15 +0000 (18:47 -0700)
commit2251d822dac2a96aad4184a6fdc2690f0a58af7c
treeaff68ef4b1a377129af6edc1cc762fa5d3e884b0
parent3f82d31341f66d0c58e1ec3360ea5f528ffe0ea4
Remove the VR compositor from the framework.

Remove the VR compositor framework and enable out-of-process VR composition
in VrCore.

This CL seems large due to the ripple effect of changing the VrFlinger
API and protocol types. There are three major modules that require
concurrent changes:
  1. Protocol definitions and low-level VrFlinger API in libdisplay.
     * Additional changes needed to keep old interfaces working for
       a short time while replacing the dependent code (dvrGraphics*).
  2. VrFlinger service implementation changes to support VrCore compositor
     and the removal of the internal compositor.
  3. Changes to libdvr platform library API due to changes in #1 and #2.

Because of the nature of the interdependence of types and other defs it is
difficult to break this CL into smaller chunks. However, review of the three
major modules (libdisplay, libdvr, and libvrflinger) may be done separately
to ease the mental burden on reviewers.

Change Summary:
- Remove obsolete screenshot service. VR screenshots will be implemented
  by VrCore.
- Update display protocol definitions for changes in VrFlinger service
  requirements. The majority of the changes in libdisplay are a
  consequence of these protocol and service changes.
- Update VrFlinger to support two kinds of surfaces:
    1. Application - use by VR apps.
    2. Direct - used by VrCore (protected by permission check).
- Remove VrFlinger internal compositor and GL context.
- Remove obsolete debug console.
- Update VrFlinger hardware composer interface to handle direct
  surfaces only, removing the concept of GPU (compositor) layers.
- Update display manager to expose access to application surface info
  to VrCore (protected by permission check).
- Update libdvr platform library interfaces for changes to VrFlinger
  API / protocol.
- Clean up libdvr API struct setup using a common include.
- Add C++ header-only helpers for DVR platform library opaque types.

Bug: 36401174
Test: Build; run VrFlinger display test tool.
Change-Id: I15abfde5f72dbb3725a3f58621486afba6b64902
80 files changed:
cmds/vr/vrscreencap/Android.mk [deleted file]
cmds/vr/vrscreencap/vrscreencap.cpp [deleted file]
libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
libs/vr/libdisplay/Android.bp
libs/vr/libdisplay/display_client.cpp
libs/vr/libdisplay/display_manager_client.cpp
libs/vr/libdisplay/display_protocol.cpp
libs/vr/libdisplay/graphics.cpp
libs/vr/libdisplay/include/dvr/dvr_display_types.h [new file with mode: 0644]
libs/vr/libdisplay/include/dvr/graphics.h
libs/vr/libdisplay/include/private/dvr/display_client.h
libs/vr/libdisplay/include/private/dvr/display_manager_client.h
libs/vr/libdisplay/include/private/dvr/display_protocol.h
libs/vr/libdisplay/include/private/dvr/display_types.h [deleted file]
libs/vr/libdisplay/include/private/dvr/graphics_private.h
libs/vr/libdisplay/include/private/dvr/late_latch.h
libs/vr/libdisplay/include/private/dvr/native_buffer_queue.h
libs/vr/libdisplay/native_buffer_queue.cpp
libs/vr/libdisplay/tests/graphics_app_tests.cpp
libs/vr/libdisplay/vsync_client.cpp
libs/vr/libdvr/Android.mk
libs/vr/libdvr/display_manager_client.cpp [deleted file]
libs/vr/libdvr/dvr_api.cpp
libs/vr/libdvr/dvr_buffer.cpp
libs/vr/libdvr/dvr_buffer_queue.cpp
libs/vr/libdvr/dvr_display_manager.cpp [new file with mode: 0644]
libs/vr/libdvr/dvr_internal.h [new file with mode: 0644]
libs/vr/libdvr/dvr_surface.cpp
libs/vr/libdvr/dvr_vsync.cpp [new file with mode: 0644]
libs/vr/libdvr/include/dvr/display_manager_client.h [deleted file]
libs/vr/libdvr/include/dvr/dvr_api.h
libs/vr/libdvr/include/dvr/dvr_api_entries.h [new file with mode: 0644]
libs/vr/libdvr/include/dvr/dvr_buffer.h
libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
libs/vr/libdvr/include/dvr/dvr_deleter.h [new file with mode: 0644]
libs/vr/libdvr/include/dvr/dvr_display_manager.h [new file with mode: 0644]
libs/vr/libdvr/include/dvr/dvr_surface.h
libs/vr/libdvr/include/dvr/dvr_vsync.h [new file with mode: 0644]
libs/vr/libdvr/include/dvr/vsync_client_api.h [deleted file]
libs/vr/libdvr/tests/Android.mk
libs/vr/libdvr/tests/dvr_buffer_queue-test.cpp
libs/vr/libdvr/tests/dvr_display_manager-test.cpp [new file with mode: 0644]
libs/vr/libdvr/tests/dvr_named_buffer-test.cpp
libs/vr/libdvr/vsync_client_api.cpp [deleted file]
libs/vr/libvrflinger/Android.bp
libs/vr/libvrflinger/acquired_buffer.cpp
libs/vr/libvrflinger/acquired_buffer.h
libs/vr/libvrflinger/compositor.cpp [deleted file]
libs/vr/libvrflinger/compositor.h [deleted file]
libs/vr/libvrflinger/debug_hud_data.cpp [deleted file]
libs/vr/libvrflinger/debug_hud_data.h [deleted file]
libs/vr/libvrflinger/debug_hud_view.cpp [deleted file]
libs/vr/libvrflinger/debug_hud_view.h [deleted file]
libs/vr/libvrflinger/display_manager_service.cpp
libs/vr/libvrflinger/display_manager_service.h
libs/vr/libvrflinger/display_service.cpp
libs/vr/libvrflinger/display_service.h
libs/vr/libvrflinger/display_surface.cpp
libs/vr/libvrflinger/display_surface.h
libs/vr/libvrflinger/epoll_event_dispatcher.cpp [new file with mode: 0644]
libs/vr/libvrflinger/epoll_event_dispatcher.h [new file with mode: 0644]
libs/vr/libvrflinger/hardware_composer.cpp
libs/vr/libvrflinger/hardware_composer.h
libs/vr/libvrflinger/hwc_types.h [new file with mode: 0644]
libs/vr/libvrflinger/screenshot_service.cpp [deleted file]
libs/vr/libvrflinger/screenshot_service.h [deleted file]
libs/vr/libvrflinger/surface_channel.cpp [deleted file]
libs/vr/libvrflinger/surface_channel.h [deleted file]
libs/vr/libvrflinger/video_compositor.cpp [deleted file]
libs/vr/libvrflinger/video_compositor.h [deleted file]
libs/vr/libvrflinger/video_mesh_surface.cpp [deleted file]
libs/vr/libvrflinger/video_mesh_surface.h [deleted file]
libs/vr/libvrflinger/vr_flinger.cpp
libs/vr/libvrflinger/vsync_service.cpp
libs/vr/libvrflinger/vsync_service.h
services/surfaceflinger/SurfaceFlinger.cpp
services/surfaceflinger/surfaceflinger.rc
services/vr/hardware_composer/impl/vr_hwc.cpp
services/vr/vr_window_manager/shell_view.cpp
services/vr/vr_window_manager/shell_view.h