Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b68e0596 authored by Rose Liu's avatar Rose Liu Committed by Android (Google) Code Review
Browse files

Merge "Merge ag/3722536 from master to pi-dev." into pi-dev

parents 6e01adc9 784ad685
Loading
Loading
Loading
Loading
+46 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
#include "impl/vr_hwc.h"

#include "android-base/stringprintf.h"
#include <cutils/properties.h>
#include <private/dvr/display_client.h>
#include <ui/Fence.h>
@@ -26,6 +27,7 @@
using namespace android::hardware::graphics::common::V1_0;
using namespace android::hardware::graphics::composer::V2_1;

using android::base::StringPrintf;
using android::hardware::hidl_handle;
using android::hardware::hidl_string;
using android::hardware::hidl_vec;
@@ -225,6 +227,20 @@ void HwcDisplay::SetColorTransform(const float* matrix, int32_t hint) {
    memcpy(color_transform_, matrix, sizeof(color_transform_));
}

void HwcDisplay::dumpDebugInfo(std::string* result) const {
  if (!result) {
    return;
  }
  *result += StringPrintf("HwcDisplay: width: %d, height: %d, layers size: %zu, colormode: %d\
      , config: %d\n", width_, height_, layers_.size(), color_mode_, active_config_);
  *result += StringPrintf("HwcDisplay buffer metadata: width: %d, height: %d, stride: %d,\
      layerCount: %d, pixelFormat: %d\n", buffer_metadata_.width, buffer_metadata_.height,
      buffer_metadata_.stride, buffer_metadata_.layerCount, buffer_metadata_.format);
  for (const auto& layer : layers_) {
    layer.dumpDebugInfo(result);
  }
}

////////////////////////////////////////////////////////////////////////////////
// VrHwcClient

@@ -831,7 +847,19 @@ Return<void> VrHwc::getCapabilities(getCapabilities_cb hidl_cb) {
}

Return<void> VrHwc::dumpDebugInfo(dumpDebugInfo_cb hidl_cb) {
  hidl_cb(hidl_string());
  std::string result;

  {
    std::lock_guard<std::mutex> guard(mutex_);
    result = "\nVrHwc states:\n";
    for (const auto& pair : displays_) {
      result += StringPrintf("Display id: %lu\n", (unsigned long)pair.first);
      pair.second->dumpDebugInfo(&result);
    }
    result += "\n";
  }

  hidl_cb(hidl_string(result));
  return Void();
}

@@ -881,5 +909,22 @@ HwcDisplay* VrHwc::FindDisplay(Display display) {
  return iter == displays_.end() ? nullptr : iter->second.get();
}

void HwcLayer::dumpDebugInfo(std::string* result) const {
  if (!result) {
    return;
  }
  *result += StringPrintf("Layer: composition_type: %d, type: %d, app_id: %d, z_order: %d,\
      cursor_x: %d, cursor_y: %d, color(rgba): (%d,%d,%d,%d), dataspace: %d, transform: %d,\
      display_frame(LTRB): (%d,%d,%d,%d), crop(LTRB): (%.1f,%.1f,%.1f,%.1f), blend_mode: %d\n",
      composition_type, info.type, info.app_id, info.z_order, info.cursor_x, info.cursor_y,
      info.color.r, info.color.g, info.color.b, info.color.a, info.dataspace, info.transform,
      info.display_frame.left, info.display_frame.top, info.display_frame.right,
      info.display_frame.bottom, info.crop.left, info.crop.top, info.crop.right,
      info.crop.bottom, info.blend_mode);
  *result += StringPrintf("Layer buffer metadata: width: %d, height: %d, stride: %d, layerCount: %d\
      , pixelFormat: %d\n", buffer_metadata.width, buffer_metadata.height, buffer_metadata.stride,
      buffer_metadata.layerCount, buffer_metadata.format);
}

}  // namespace dvr
}  // namespace android
+4 −0
Original line number Diff line number Diff line
@@ -116,6 +116,8 @@ struct HwcLayer {
    info.id = new_id;
  }

  void dumpDebugInfo(std::string* result) const;

  Composition composition_type;
  ComposerView::ComposerLayer info;
  IVrComposerClient::BufferMetadata buffer_metadata;
@@ -163,6 +165,8 @@ class HwcDisplay {
  int32_t color_transform_hint() const { return color_transform_hint_; }
  void SetColorTransform(const float* matrix, int32_t hint);

  void dumpDebugInfo(std::string* result) const;

 private:
  // The client target buffer and the associated fence.
  sp<GraphicBuffer> buffer_;