diff --git a/libs/vr/libdisplay/Android.bp b/libs/vr/libdisplay/Android.bp
index de2a56e..b79c8ba 100644
--- a/libs/vr/libdisplay/Android.bp
+++ b/libs/vr/libdisplay/Android.bp
@@ -15,15 +15,13 @@
 sourceFiles = [
     "native_buffer_queue.cpp",
     "display_client.cpp",
-    "display_manager_client_impl.cpp",
-    "display_rpc.cpp",
+    "display_manager_client.cpp",
+    "display_protocol.cpp",
     "dummy_native_window.cpp",
     "gl_fenced_flush.cpp",
     "graphics.cpp",
     "late_latch.cpp",
-    "video_mesh_surface_client.cpp",
     "vsync_client.cpp",
-    "screenshot_client.cpp",
     "frame_history.cpp",
 ]
 
diff --git a/libs/vr/libdisplay/display_client.cpp b/libs/vr/libdisplay/display_client.cpp
index ef50a0f..494514d 100644
--- a/libs/vr/libdisplay/display_client.cpp
+++ b/libs/vr/libdisplay/display_client.cpp
@@ -8,7 +8,7 @@
 
 #include <mutex>
 
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/late_latch.h>
 #include <private/dvr/native_buffer.h>
 
diff --git a/libs/vr/libdisplay/display_manager_client_impl.cpp b/libs/vr/libdisplay/display_manager_client.cpp
similarity index 93%
rename from libs/vr/libdisplay/display_manager_client_impl.cpp
rename to libs/vr/libdisplay/display_manager_client.cpp
index 941da23..ca51ab6 100644
--- a/libs/vr/libdisplay/display_manager_client_impl.cpp
+++ b/libs/vr/libdisplay/display_manager_client.cpp
@@ -1,8 +1,8 @@
-#include "include/private/dvr/display_manager_client_impl.h"
+#include "include/private/dvr/display_manager_client.h"
 
 #include <pdx/default_transport/client_channel_factory.h>
 #include <private/dvr/buffer_hub_client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <utils/Log.h>
 
 using android::pdx::LocalChannelHandle;
diff --git a/libs/vr/libdisplay/display_rpc.cpp b/libs/vr/libdisplay/display_protocol.cpp
similarity index 84%
rename from libs/vr/libdisplay/display_rpc.cpp
rename to libs/vr/libdisplay/display_protocol.cpp
index f5693bd..e96394c 100644
--- a/libs/vr/libdisplay/display_rpc.cpp
+++ b/libs/vr/libdisplay/display_protocol.cpp
@@ -1,4 +1,4 @@
-#include "include/private/dvr/display_rpc.h"
+#include "include/private/dvr/display_protocol.h"
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libdisplay/graphics.cpp b/libs/vr/libdisplay/graphics.cpp
index 2abdf8e..bd3ed7e 100644
--- a/libs/vr/libdisplay/graphics.cpp
+++ b/libs/vr/libdisplay/graphics.cpp
@@ -24,7 +24,6 @@
 #include <private/dvr/late_latch.h>
 #include <private/dvr/native_buffer_queue.h>
 #include <private/dvr/sensor_constants.h>
-#include <private/dvr/video_mesh_surface_client.h>
 #include <private/dvr/vsync_client.h>
 #include <private/dvr/platform_defines.h>
 
@@ -542,10 +541,6 @@
   // LateLatch support.
   std::unique_ptr<android::dvr::LateLatch> late_latch;
 
-  // Video mesh support.
-  std::vector<std::shared_ptr<android::dvr::VideoMeshSurfaceClient>>
-      video_mesh_surfaces;
-
  private:
   // ANativeWindow function implementations
   std::mutex lock_;
@@ -1533,44 +1528,3 @@
   return graphics_context->display_surface->z_order();
 }
 
-extern "C" DvrVideoMeshSurface* dvrGraphicsVideoMeshSurfaceCreate(
-    DvrGraphicsContext* graphics_context) {
-  auto display_surface = graphics_context->display_surface;
-  // A DisplaySurface must be created prior to the creation of a
-  // VideoMeshSurface.
-  LOG_ALWAYS_FATAL_IF(display_surface == nullptr);
-
-  LocalChannelHandle surface_handle = display_surface->CreateVideoMeshSurface();
-  if (!surface_handle.valid()) {
-    return nullptr;
-  }
-
-  std::unique_ptr<DvrVideoMeshSurface> surface(new DvrVideoMeshSurface);
-  surface->client =
-      android::dvr::VideoMeshSurfaceClient::Import(std::move(surface_handle));
-
-  // TODO(jwcai) The next line is not needed...
-  auto producer_queue = surface->client->GetProducerQueue();
-  return surface.release();
-}
-
-extern "C" void dvrGraphicsVideoMeshSurfaceDestroy(
-    DvrVideoMeshSurface* surface) {
-  delete surface;
-}
-
-extern "C" void dvrGraphicsVideoMeshSurfacePresent(
-    DvrGraphicsContext* graphics_context, DvrVideoMeshSurface* surface,
-    const int eye, const float* transform) {
-  volatile android::dvr::VideoMeshSurfaceMetadata* metadata =
-      surface->client->GetMetadataBufferPtr();
-
-  const uint32_t graphics_buffer_index =
-      graphics_context->current_buffer->surface_buffer_index();
-
-  for (int i = 0; i < 4; ++i) {
-    metadata->transform[graphics_buffer_index][eye].val[i] = {
-        transform[i + 0], transform[i + 4], transform[i + 8], transform[i + 12],
-    };
-  }
-}
diff --git a/libs/vr/libdisplay/include/private/dvr/display_client.h b/libs/vr/libdisplay/include/private/dvr/display_client.h
index fec2ea5..cec62af 100644
--- a/libs/vr/libdisplay/include/private/dvr/display_client.h
+++ b/libs/vr/libdisplay/include/private/dvr/display_client.h
@@ -6,7 +6,7 @@
 #include <pdx/file_handle.h>
 #include <private/dvr/buffer_hub_client.h>
 #include <private/dvr/buffer_hub_queue_client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libdisplay/include/private/dvr/display_manager_client_impl.h b/libs/vr/libdisplay/include/private/dvr/display_manager_client.h
similarity index 79%
rename from libs/vr/libdisplay/include/private/dvr/display_manager_client_impl.h
rename to libs/vr/libdisplay/include/private/dvr/display_manager_client.h
index e09a440..fb2abeb 100644
--- a/libs/vr/libdisplay/include/private/dvr/display_manager_client_impl.h
+++ b/libs/vr/libdisplay/include/private/dvr/display_manager_client.h
@@ -1,10 +1,10 @@
-#ifndef ANDROID_DVR_DISPLAY_MANAGER_CLIENT_IMPL_H_
-#define ANDROID_DVR_DISPLAY_MANAGER_CLIENT_IMPL_H_
+#ifndef ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
+#define ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
 
 #include <vector>
 
 #include <pdx/client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
@@ -36,4 +36,4 @@
 }  // namespace dvr
 }  // namespace android
 
-#endif  // ANDROID_DVR_DISPLAY_MANAGER_CLIENT_IMPL_H_
+#endif  // ANDROID_DVR_DISPLAY_MANAGER_CLIENT_H_
diff --git a/libs/vr/libdisplay/include/private/dvr/display_rpc.h b/libs/vr/libdisplay/include/private/dvr/display_protocol.h
similarity index 98%
rename from libs/vr/libdisplay/include/private/dvr/display_rpc.h
rename to libs/vr/libdisplay/include/private/dvr/display_protocol.h
index 1fcfe03..d0b57e4 100644
--- a/libs/vr/libdisplay/include/private/dvr/display_rpc.h
+++ b/libs/vr/libdisplay/include/private/dvr/display_protocol.h
@@ -1,5 +1,5 @@
-#ifndef ANDROID_DVR_DISPLAY_RPC_H_
-#define ANDROID_DVR_DISPLAY_RPC_H_
+#ifndef ANDROID_DVR_DISPLAY_PROTOCOL_H_
+#define ANDROID_DVR_DISPLAY_PROTOCOL_H_
 
 #include <sys/types.h>
 
@@ -338,4 +338,4 @@
 }  // namespace dvr
 }  // namespace android
 
-#endif  // ANDROID_DVR_DISPLAY_RPC_H_
+#endif  // ANDROID_DVR_DISPLAY_PROTOCOL_H_
diff --git a/libs/vr/libdisplay/include/private/dvr/screenshot_client.h b/libs/vr/libdisplay/include/private/dvr/screenshot_client.h
deleted file mode 100644
index b6fc859..0000000
--- a/libs/vr/libdisplay/include/private/dvr/screenshot_client.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef ANDROID_DVR_SCREENSHOT_CLIENT_H_
-#define ANDROID_DVR_SCREENSHOT_CLIENT_H_
-
-#include <memory>
-#include <vector>
-
-#include <pdx/client.h>
-#include <private/dvr/display_rpc.h>
-#include <system/graphics.h>
-
-namespace android {
-namespace dvr {
-
-// Represents a connection to the screenshot service, which allows capturing an
-// upcoming frame as it is being rendered to the display.
-class ScreenshotClient : public pdx::ClientBase<ScreenshotClient> {
- public:
-  int format() const { return format_; }
-
-  // Attempts to take a screenshot. If successful, sets *data to the contents
-  // of the screenshot and returns zero. Otherwise, returns a negative error
-  // code.
-  // |index| is used to match the requested buffer with various buffer layers.
-  int Take(std::vector<uint8_t>* data, int index, int* return_width,
-           int* return_height);
-
- private:
-  friend BASE;
-
-  ScreenshotClient();
-
-  // Layout information for screenshots.
-  int format_;
-
-  ScreenshotClient(const ScreenshotClient&) = delete;
-  void operator=(const ScreenshotClient&) = delete;
-};
-
-}  // namespace dvr
-}  // namespace android
-
-#endif  // ANDROID_DVR_SCREENSHOT_CLIENT_H_
diff --git a/libs/vr/libdisplay/include/private/dvr/video_mesh_surface_client.h b/libs/vr/libdisplay/include/private/dvr/video_mesh_surface_client.h
deleted file mode 100644
index 3a7f125..0000000
--- a/libs/vr/libdisplay/include/private/dvr/video_mesh_surface_client.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef ANDROID_DVR_VIDEO_MESH_SURFACE_CLIENT_H_
-#define ANDROID_DVR_VIDEO_MESH_SURFACE_CLIENT_H_
-
-#include <private/dvr/buffer_hub_queue_client.h>
-#include <private/dvr/display_client.h>
-
-namespace android {
-namespace dvr {
-
-class VideoMeshSurfaceClient
-    : pdx::ClientBase<VideoMeshSurfaceClient, SurfaceClient> {
- public:
-  using LocalChannelHandle = pdx::LocalChannelHandle;
-
-  // This call assumes ownership of |handle|.
-  static std::unique_ptr<VideoMeshSurfaceClient> Import(
-      LocalChannelHandle handle);
-
-  std::shared_ptr<ProducerQueue> GetProducerQueue();
-
-  // Get the shared memory metadata buffer for this video mesh surface. If it is
-  // not yet allocated, this will allocate it.
-  volatile VideoMeshSurfaceMetadata* GetMetadataBufferPtr();
-
- private:
-  friend BASE;
-
-  std::shared_ptr<ProducerQueue> producer_queue_;
-  VideoMeshSurfaceMetadata* mapped_metadata_buffer_;
-
-  explicit VideoMeshSurfaceClient(LocalChannelHandle handle);
-};
-
-}  // namespace dvr
-}  // namespace android
-
-struct DvrVideoMeshSurface {
-  std::shared_ptr<android::dvr::VideoMeshSurfaceClient> client;
-};
-
-#endif  // ANDROID_DVR_VIDEO_MESH_SURFACE_CLIENT_H_
diff --git a/libs/vr/libdisplay/screenshot_client.cpp b/libs/vr/libdisplay/screenshot_client.cpp
deleted file mode 100644
index 3ad0c68..0000000
--- a/libs/vr/libdisplay/screenshot_client.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "include/private/dvr/screenshot_client.h"
-
-#include <log/log.h>
-
-#include <mutex>
-
-#include <pdx/default_transport/client_channel_factory.h>
-#include <private/dvr/display_rpc.h>
-
-using android::pdx::Transaction;
-using android::pdx::rpc::ClientPayload;
-using android::pdx::rpc::MessageBuffer;
-using android::pdx::rpc::ReplyBuffer;
-
-namespace android {
-namespace dvr {
-
-namespace {
-// Maximum supported pixels for screenshot capture. If the actual target buffer
-// is more than this, an error will be reported.
-constexpr int kMaxScreenshotPixels = 6000 * 4000;
-}  // namespace
-
-int ScreenshotClient::Take(std::vector<uint8_t>* out_image, int index,
-                           int* return_width, int* return_height) {
-  if (format_ != HAL_PIXEL_FORMAT_RGB_888) {
-    ALOGE("ScreenshotClient::Take: Unsupported layout format: format=%d",
-          format_);
-    return -ENOSYS;
-  }
-
-  // TODO(eieio): Make a cleaner way to ensure enough capacity for send or
-  // receive buffers. This method assumes TLS buffers that will maintain
-  // capacity across calls within the same thread.
-  MessageBuffer<ReplyBuffer>::Reserve(kMaxScreenshotPixels * 3);
-  auto status = InvokeRemoteMethod<DisplayScreenshotRPC::TakeScreenshot>(index);
-  if (!status) {
-    ALOGE("ScreenshotClient::Take: Failed to take screenshot: %s",
-          status.GetErrorMessage().c_str());
-    return -status.error();
-  }
-
-  *return_width = status.get().width;
-  *return_height = status.get().height;
-  *out_image = std::move(status.take().buffer);
-  return 0;
-}
-
-ScreenshotClient::ScreenshotClient()
-    : BASE(pdx::default_transport::ClientChannelFactory::Create(
-          DisplayScreenshotRPC::kClientPath)) {
-  auto status = InvokeRemoteMethod<DisplayScreenshotRPC::GetFormat>();
-  if (!status) {
-    ALOGE(
-        "ScreenshotClient::ScreenshotClient: Failed to retrieve screenshot "
-        "layout: %s",
-        status.GetErrorMessage().c_str());
-
-    Close(status.error());
-  } else {
-    format_ = status.get();
-  }
-}
-
-}  // namespace dvr
-}  // namespace android
diff --git a/libs/vr/libdisplay/video_mesh_surface_client.cpp b/libs/vr/libdisplay/video_mesh_surface_client.cpp
deleted file mode 100644
index a2307e5..0000000
--- a/libs/vr/libdisplay/video_mesh_surface_client.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "include/private/dvr/video_mesh_surface_client.h"
-
-using android::pdx::LocalChannelHandle;
-
-namespace android {
-namespace dvr {
-
-/* static */
-std::unique_ptr<VideoMeshSurfaceClient> VideoMeshSurfaceClient::Import(
-    LocalChannelHandle handle) {
-  return VideoMeshSurfaceClient::Create(std::move(handle));
-}
-
-VideoMeshSurfaceClient::VideoMeshSurfaceClient(LocalChannelHandle handle)
-    : BASE(std::move(handle), SurfaceTypeEnum::VideoMesh),
-      mapped_metadata_buffer_(nullptr) {
-  // TODO(jwcai) import more data if needed.
-}
-
-std::shared_ptr<ProducerQueue> VideoMeshSurfaceClient::GetProducerQueue() {
-  if (producer_queue_ == nullptr) {
-    // Create producer queue through DisplayRPC
-    auto status =
-        InvokeRemoteMethod<DisplayRPC::VideoMeshSurfaceCreateProducerQueue>();
-    if (!status) {
-      ALOGE(
-          "VideoMeshSurfaceClient::GetProducerQueue: failed to create producer "
-          "queue: %s",
-          status.GetErrorMessage().c_str());
-      return nullptr;
-    }
-
-    producer_queue_ = ProducerQueue::Import(status.take());
-  }
-  return producer_queue_;
-}
-
-volatile VideoMeshSurfaceMetadata*
-VideoMeshSurfaceClient::GetMetadataBufferPtr() {
-  if (!mapped_metadata_buffer_) {
-    if (auto buffer_producer = GetMetadataBuffer()) {
-      void* addr = nullptr;
-      const int ret = buffer_producer->GetBlobReadWritePointer(
-          sizeof(VideoMeshSurfaceMetadata), &addr);
-      if (ret < 0) {
-        ALOGE(
-            "VideoMeshSurfaceClient::GetMetadataBufferPtr: Failed to map "
-            "surface metadata: %s",
-            strerror(-ret));
-        return nullptr;
-      }
-      mapped_metadata_buffer_ = static_cast<VideoMeshSurfaceMetadata*>(addr);
-    }
-  }
-
-  return mapped_metadata_buffer_;
-}
-
-}  // namespace dvr
-}  // namespace android
diff --git a/libs/vr/libdisplay/vsync_client.cpp b/libs/vr/libdisplay/vsync_client.cpp
index c928a08..2f6320c 100644
--- a/libs/vr/libdisplay/vsync_client.cpp
+++ b/libs/vr/libdisplay/vsync_client.cpp
@@ -3,7 +3,7 @@
 #include <log/log.h>
 
 #include <pdx/default_transport/client_channel_factory.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 using android::pdx::Transaction;
 
diff --git a/libs/vr/libdvr/display_manager_client.cpp b/libs/vr/libdvr/display_manager_client.cpp
index 6830085..5bed815 100644
--- a/libs/vr/libdvr/display_manager_client.cpp
+++ b/libs/vr/libdvr/display_manager_client.cpp
@@ -4,7 +4,7 @@
 #include <grallocusage/GrallocUsageConversion.h>
 #include <private/android/AHardwareBufferHelpers.h>
 #include <private/dvr/buffer_hub_client.h>
-#include <private/dvr/display_manager_client_impl.h>
+#include <private/dvr/display_manager_client.h>
 
 using android::dvr::DisplaySurfaceAttributeEnum;
 
diff --git a/libs/vr/libvrflinger/display_manager_service.cpp b/libs/vr/libvrflinger/display_manager_service.cpp
index 42ffaec..61bb71c 100644
--- a/libs/vr/libvrflinger/display_manager_service.cpp
+++ b/libs/vr/libvrflinger/display_manager_service.cpp
@@ -3,7 +3,7 @@
 #include <pdx/channel_handle.h>
 #include <pdx/default_transport/service_endpoint.h>
 #include <private/android_filesystem_config.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/trusted_uids.h>
 #include <sys/poll.h>
 
diff --git a/libs/vr/libvrflinger/display_manager_service.h b/libs/vr/libvrflinger/display_manager_service.h
index b2417e5..f59520c 100644
--- a/libs/vr/libvrflinger/display_manager_service.h
+++ b/libs/vr/libvrflinger/display_manager_service.h
@@ -2,7 +2,7 @@
 #define ANDROID_DVR_SERVICES_DISPLAYD_DISPLAY_MANAGER_SERVICE_H_
 
 #include <pdx/service.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 #include "display_service.h"
 
diff --git a/libs/vr/libvrflinger/display_service.cpp b/libs/vr/libvrflinger/display_service.cpp
index 2dc840e..f56bc02 100644
--- a/libs/vr/libvrflinger/display_service.cpp
+++ b/libs/vr/libvrflinger/display_service.cpp
@@ -7,7 +7,7 @@
 #include <pdx/rpc/remote_method.h>
 #include <private/dvr/composite_hmd.h>
 #include <private/dvr/device_metrics.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/display_types.h>
 #include <private/dvr/numeric.h>
 #include <private/dvr/polynomial_radial_distortion.h>
diff --git a/libs/vr/libvrflinger/display_service.h b/libs/vr/libvrflinger/display_service.h
index dd5cac9..3b0d07e 100644
--- a/libs/vr/libvrflinger/display_service.h
+++ b/libs/vr/libvrflinger/display_service.h
@@ -4,7 +4,7 @@
 #include <pdx/service.h>
 #include <private/dvr/buffer_hub_client.h>
 #include <private/dvr/bufferhub_rpc.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/late_latch.h>
 
 #include <functional>
diff --git a/libs/vr/libvrflinger/display_surface.h b/libs/vr/libvrflinger/display_surface.h
index 2e4cf75..1fec344 100644
--- a/libs/vr/libvrflinger/display_surface.h
+++ b/libs/vr/libvrflinger/display_surface.h
@@ -3,7 +3,7 @@
 
 #include <pdx/file_handle.h>
 #include <pdx/service.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/ring_buffer.h>
 
 #include <functional>
diff --git a/libs/vr/libvrflinger/surface_channel.h b/libs/vr/libvrflinger/surface_channel.h
index bb6b1c5..9dcac3f 100644
--- a/libs/vr/libvrflinger/surface_channel.h
+++ b/libs/vr/libvrflinger/surface_channel.h
@@ -3,7 +3,7 @@
 
 #include <pdx/service.h>
 #include <private/dvr/buffer_hub_client.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libvrflinger/video_compositor.cpp b/libs/vr/libvrflinger/video_compositor.cpp
index c5a5b64..e42caaa 100644
--- a/libs/vr/libvrflinger/video_compositor.cpp
+++ b/libs/vr/libvrflinger/video_compositor.cpp
@@ -4,7 +4,7 @@
 #include <GLES2/gl2ext.h>
 
 #include <private/dvr/debug.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 namespace android {
 namespace dvr {
diff --git a/libs/vr/libvrflinger/video_mesh_surface.cpp b/libs/vr/libvrflinger/video_mesh_surface.cpp
index ce0dfca..76dd94f 100644
--- a/libs/vr/libvrflinger/video_mesh_surface.cpp
+++ b/libs/vr/libvrflinger/video_mesh_surface.cpp
@@ -1,7 +1,7 @@
 #include "video_mesh_surface.h"
 
 #include <private/dvr/buffer_hub_queue_core.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 
 using android::pdx::LocalChannelHandle;
 using android::pdx::rpc::DispatchRemoteMethod;
diff --git a/libs/vr/libvrflinger/vsync_service.cpp b/libs/vr/libvrflinger/vsync_service.cpp
index 612b9b2..cda815c 100644
--- a/libs/vr/libvrflinger/vsync_service.cpp
+++ b/libs/vr/libvrflinger/vsync_service.cpp
@@ -9,7 +9,7 @@
 
 #include <pdx/default_transport/service_endpoint.h>
 #include <private/dvr/clock_ns.h>
-#include <private/dvr/display_rpc.h>
+#include <private/dvr/display_protocol.h>
 #include <private/dvr/display_types.h>
 
 using android::pdx::Channel;
