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

Commit 4a51d555 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Setting queue metadata size via dvrSurface API"

parents 2d655994 532e529e
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -106,13 +106,15 @@ Status<void> Surface::SetAttributes(const SurfaceAttributes& attributes) {

Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue(uint32_t width,
                                                            uint32_t height,
                                                            uint32_t format) {
                                                            uint32_t format,
                                                            size_t metadata_size) {
  ALOGD_IF(TRACE, "Surface::CreateQueue: Creating empty queue.");
  auto status = InvokeRemoteMethod<DisplayProtocol::CreateQueue>(
      ProducerQueueConfigBuilder()
          .SetDefaultWidth(width)
          .SetDefaultHeight(height)
          .SetDefaultFormat(format)
          .SetMetadataSize(metadata_size)
          .Build());
  if (!status) {
    ALOGE("Surface::CreateQueue: Failed to create queue: %s",
@@ -131,12 +133,12 @@ Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue(uint32_t width,

Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue(
    uint32_t width, uint32_t height, uint32_t layer_count, uint32_t format,
    uint64_t usage, size_t capacity) {
    uint64_t usage, size_t capacity, size_t metadata_size) {
  ALOGD_IF(TRACE,
           "Surface::CreateQueue: width=%u height=%u layer_count=%u format=%u "
           "usage=%" PRIx64 " capacity=%zu",
           width, height, layer_count, format, usage, capacity);
  auto status = CreateQueue(width, height, format);
  auto status = CreateQueue(width, height, format, metadata_size);
  if (!status)
    return status.error_status();

+4 −2
Original line number Diff line number Diff line
@@ -39,7 +39,8 @@ class Surface : public pdx::ClientBase<Surface> {
  // Creates an empty queue.
  pdx::Status<std::unique_ptr<ProducerQueue>> CreateQueue(uint32_t width,
                                                          uint32_t height,
                                                          uint32_t format);
                                                          uint32_t format,
                                                          size_t metadata_size);

  // Creates a queue and populates it with |capacity| buffers of the specified
  // parameters.
@@ -48,7 +49,8 @@ class Surface : public pdx::ClientBase<Surface> {
                                                          uint32_t layer_count,
                                                          uint32_t format,
                                                          uint64_t usage,
                                                          size_t capacity);
                                                          size_t capacity,
                                                          size_t metadata_size);

 private:
  friend BASE;
+2 −2
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ int dvrSurfaceSetAttributes(DvrSurface* surface,
int dvrSurfaceCreateWriteBufferQueue(DvrSurface* surface, uint32_t width,
                                     uint32_t height, uint32_t format,
                                     uint32_t layer_count, uint64_t usage,
                                     size_t capacity,
                                     size_t capacity, size_t metadata_size,
                                     DvrWriteBufferQueue** out_writer) {
  if (surface == nullptr || out_writer == nullptr) {
    ALOGE(
@@ -145,7 +145,7 @@ int dvrSurfaceCreateWriteBufferQueue(DvrSurface* surface, uint32_t width,
  }

  auto status = surface->surface->CreateQueue(width, height, layer_count,
                                              format, usage, capacity);
                                              format, usage, capacity, metadata_size);
  if (!status) {
    ALOGE("dvrSurfaceCreateWriteBufferQueue: Failed to create queue: %s",
          status.GetErrorMessage().c_str());
+1 −1
Original line number Diff line number Diff line
@@ -200,7 +200,7 @@ typedef int (*DvrSurfaceSetAttributesPtr)(DvrSurface* surface,
                                          size_t attribute_count);
typedef int (*DvrSurfaceCreateWriteBufferQueuePtr)(
    DvrSurface* surface, uint32_t width, uint32_t height, uint32_t format,
    uint32_t layer_count, uint64_t usage, size_t capacity,
    uint32_t layer_count, uint64_t usage, size_t capacity, size_t metadata_size,
    DvrWriteBufferQueue** queue_out);

// dvr_vsync.h
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ int dvrSurfaceSetAttributes(DvrSurface* surface,
int dvrSurfaceCreateWriteBufferQueue(DvrSurface* surface, uint32_t width,
                                     uint32_t height, uint32_t format,
                                     uint32_t layer_count, uint64_t usage,
                                     size_t capacity,
                                     size_t capacity, size_t metadata_size,
                                     DvrWriteBufferQueue** queue_out);

// Get a global buffer from the display service.
Loading