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

Commit f0108174 authored by Jiwen 'Steve' Cai's avatar Jiwen 'Steve' Cai
Browse files

Deprecate producer/consumer usage in BufferHub

producer_usage and consuemr_usage were introduced in Android O
temporarily then removed not long after. BufferHub added those then we
also removed them, but there appeared to be some leftovers.

Bug: 37881101
Test: buffer_hub-test, buffer_hub_queue-test, libdvr-test, libgui-test
Change-Id: I8551627bc820ddd04f6d6d7250d631fa54a78b72
parent 3a7e825d
Loading
Loading
Loading
Loading
+8 −25
Original line number Diff line number Diff line
@@ -395,25 +395,16 @@ int BufferConsumer::SetIgnore(bool ignore) {
}

BufferProducer::BufferProducer(uint32_t width, uint32_t height, uint32_t format,
                               uint32_t usage, size_t user_metadata_size)
    : BufferProducer(width, height, format, usage, usage, user_metadata_size) {}

BufferProducer::BufferProducer(uint32_t width, uint32_t height, uint32_t format,
                               uint64_t producer_usage, uint64_t consumer_usage,
                               size_t user_metadata_size)
                               uint64_t usage, size_t user_metadata_size)
    : BASE(BufferHubRPC::kClientPath) {
  ATRACE_NAME("BufferProducer::BufferProducer");
  ALOGD_IF(TRACE,
           "BufferProducer::BufferProducer: fd=%d width=%u height=%u format=%u "
           "producer_usage=%" PRIx64 " consumer_usage=%" PRIx64
           " user_metadata_size=%zu",
           event_fd(), width, height, format, producer_usage, consumer_usage,
           user_metadata_size);
           "usage=%" PRIx64 " user_metadata_size=%zu",
           event_fd(), width, height, format, usage, user_metadata_size);

  // (b/37881101) Deprecate producer/consumer usage
  auto status = InvokeRemoteMethod<BufferHubRPC::CreateBuffer>(
      width, height, format, (producer_usage | consumer_usage),
      user_metadata_size);
      width, height, format, usage, user_metadata_size);
  if (!status) {
    ALOGE(
        "BufferProducer::BufferProducer: Failed to create producer buffer: %s",
@@ -431,26 +422,18 @@ BufferProducer::BufferProducer(uint32_t width, uint32_t height, uint32_t format,
  }
}

BufferProducer::BufferProducer(uint32_t usage, size_t size)
    : BufferProducer(usage, usage, size) {}

BufferProducer::BufferProducer(uint64_t producer_usage, uint64_t consumer_usage,
                               size_t size)
BufferProducer::BufferProducer(uint64_t usage, size_t size)
    : BASE(BufferHubRPC::kClientPath) {
  ATRACE_NAME("BufferProducer::BufferProducer");
  ALOGD_IF(TRACE,
           "BufferProducer::BufferProducer: producer_usage=%" PRIx64
           " consumer_usage=%" PRIx64 " size=%zu",
           producer_usage, consumer_usage, size);
  ALOGD_IF(TRACE, "BufferProducer::BufferProducer: usage=%" PRIx64 " size=%zu",
           usage, size);
  const int width = static_cast<int>(size);
  const int height = 1;
  const int format = HAL_PIXEL_FORMAT_BLOB;
  const size_t user_metadata_size = 0;

  // (b/37881101) Deprecate producer/consumer usage
  auto status = InvokeRemoteMethod<BufferHubRPC::CreateBuffer>(
      width, height, format, (producer_usage | consumer_usage),
      user_metadata_size);
      width, height, format, usage, user_metadata_size);
  if (!status) {
    ALOGE("BufferProducer::BufferProducer: Failed to create blob: %s",
          status.GetErrorMessage().c_str());
+2 −10
Original line number Diff line number Diff line
@@ -111,10 +111,6 @@ class BufferHubBuffer : public pdx::Client {
  uint32_t usage() const { return buffer_.usage(); }
  uint32_t layer_count() const { return buffer_.layer_count(); }

  // TODO(b/37881101) Clean up producer/consumer usage.
  uint64_t producer_usage() const { return buffer_.usage(); }
  uint64_t consumer_usage() const { return buffer_.usage(); }

  uint64_t GetQueueIndex() const { return metadata_header_->queue_index; }
  void SetQueueIndex(uint64_t index) { metadata_header_->queue_index = index; }

@@ -230,14 +226,10 @@ class BufferProducer : public pdx::ClientBase<BufferProducer, BufferHubBuffer> {

  // Constructs a buffer with the given geometry and parameters.
  BufferProducer(uint32_t width, uint32_t height, uint32_t format,
                 uint32_t usage, size_t metadata_size = 0);
  BufferProducer(uint32_t width, uint32_t height, uint32_t format,
                 uint64_t producer_usage, uint64_t consumer_usage,
                 size_t metadata_size);
                 uint64_t usage, size_t metadata_size = 0);

  // Constructs a blob (flat) buffer with the given usage flags.
  BufferProducer(uint32_t usage, size_t size);
  BufferProducer(uint64_t producer_usage, uint64_t consumer_usage, size_t size);
  BufferProducer(uint64_t usage, size_t size);

  // Imports the given file handle to a producer channel, taking ownership.
  explicit BufferProducer(LocalChannelHandle channel);