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

Commit 58a05a21 authored by Tianyu's avatar Tianyu Committed by Tianyu Jiang
Browse files

Remove Post(const LocalHandle& ready_fence, const Meta& meta)

This function is useless for now and in foreseeable future because user
metadata will be in ashmen, and there won't be custom metadata on the
Post() interface.

Tested on master branch with Marlin
and oc-dr1-daydream-dev branch with Vega
Test: buffer_hub-test buffer_hub_queue-test
buffer_hub_queue_producer-test dvr_api-test dvr_buffer_queue-test
Bug: 70048475

Change-Id: I58590e4a1358afdf784968bac65a48b98fd0f4fc
parent 696d3d46
Loading
Loading
Loading
Loading
+14 −22
Original line number Original line Diff line number Diff line
@@ -41,7 +41,6 @@ const int kLayerCount = 1;
const int kFormat = HAL_PIXEL_FORMAT_RGBA_8888;
const int kFormat = HAL_PIXEL_FORMAT_RGBA_8888;
const int kUsage = 0;
const int kUsage = 0;
const size_t kUserMetadataSize = 0;
const size_t kUserMetadataSize = 0;
const uint64_t kContext = 42;
const size_t kMaxConsumerCount = 63;
const size_t kMaxConsumerCount = 63;
const int kPollTimeoutMs = 100;
const int kPollTimeoutMs = 100;


@@ -79,22 +78,19 @@ TEST_F(LibBufferHubTest, TestBasicUsage) {
  EXPECT_EQ(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));


  EXPECT_EQ(0, p->Post(LocalHandle(), kContext));
  EXPECT_EQ(0, p->Post(LocalHandle()));


  // New state: producer not available, consumers available.
  // New state: producer not available, consumers available.
  EXPECT_EQ(0, RETRY_EINTR(p->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(p->Poll(kPollTimeoutMs)));
  EXPECT_EQ(1, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(1, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(1, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));
  EXPECT_EQ(1, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));


  uint64_t context;
  LocalHandle fence;
  LocalHandle fence;
  EXPECT_EQ(0, c->Acquire(&fence, &context));
  EXPECT_EQ(0, c->Acquire(&fence));
  EXPECT_EQ(kContext, context);
  EXPECT_EQ(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(1, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));
  EXPECT_EQ(1, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));


  EXPECT_EQ(0, c2->Acquire(&fence, &context));
  EXPECT_EQ(0, c2->Acquire(&fence));
  EXPECT_EQ(kContext, context);
  EXPECT_EQ(0, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c2->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_EQ(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));


@@ -147,7 +143,7 @@ TEST_F(LibBufferHubTest, TestEpoll) {
  ASSERT_EQ(0, epoll_wait(epoll_fd.Get(), events.data(), events.size(), 0));
  ASSERT_EQ(0, epoll_wait(epoll_fd.Get(), events.data(), events.size(), 0));


  // Post the producer and check for consumer signal.
  // Post the producer and check for consumer signal.
  EXPECT_EQ(0, p->Post({}, kContext));
  EXPECT_EQ(0, p->Post({}));
  ASSERT_EQ(1, epoll_wait(epoll_fd.Get(), events.data(), events.size(),
  ASSERT_EQ(1, epoll_wait(epoll_fd.Get(), events.data(), events.size(),
                          kPollTimeoutMs));
                          kPollTimeoutMs));
  ASSERT_TRUE(events[0].events & EPOLLIN);
  ASSERT_TRUE(events[0].events & EPOLLIN);
@@ -229,10 +225,10 @@ TEST_F(LibBufferHubTest, TestStateTransitions) {
  EXPECT_EQ(-EALREADY, p->Gain(&fence));
  EXPECT_EQ(-EALREADY, p->Gain(&fence));


  // Post in gained state should succeed.
  // Post in gained state should succeed.
  EXPECT_EQ(0, p->Post(LocalHandle(), kContext));
  EXPECT_EQ(0, p->Post(LocalHandle()));


  // Post, release, and gain in posted state should fail.
  // Post, release, and gain in posted state should fail.
  EXPECT_EQ(-EBUSY, p->Post(LocalHandle(), kContext));
  EXPECT_EQ(-EBUSY, p->Post(LocalHandle()));
  EXPECT_EQ(-EBUSY, c->Release(LocalHandle()));
  EXPECT_EQ(-EBUSY, c->Release(LocalHandle()));
  EXPECT_EQ(-EBUSY, p->Gain(&fence));
  EXPECT_EQ(-EBUSY, p->Gain(&fence));


@@ -241,7 +237,7 @@ TEST_F(LibBufferHubTest, TestStateTransitions) {


  // Acquire, post, and gain in acquired state should fail.
  // Acquire, post, and gain in acquired state should fail.
  EXPECT_EQ(-EBUSY, c->Acquire(&fence, &context));
  EXPECT_EQ(-EBUSY, c->Acquire(&fence, &context));
  EXPECT_EQ(-EBUSY, p->Post(LocalHandle(), kContext));
  EXPECT_EQ(-EBUSY, p->Post(LocalHandle()));
  EXPECT_EQ(-EBUSY, p->Gain(&fence));
  EXPECT_EQ(-EBUSY, p->Gain(&fence));


  // Release in acquired state should succeed.
  // Release in acquired state should succeed.
@@ -251,7 +247,7 @@ TEST_F(LibBufferHubTest, TestStateTransitions) {
  // Release, acquire, and post in released state should fail.
  // Release, acquire, and post in released state should fail.
  EXPECT_EQ(-EBUSY, c->Release(LocalHandle()));
  EXPECT_EQ(-EBUSY, c->Release(LocalHandle()));
  EXPECT_EQ(-EBUSY, c->Acquire(&fence, &context));
  EXPECT_EQ(-EBUSY, c->Acquire(&fence, &context));
  EXPECT_EQ(-EBUSY, p->Post(LocalHandle(), kContext));
  EXPECT_EQ(-EBUSY, p->Post(LocalHandle()));


  // Gain in released state should succeed.
  // Gain in released state should succeed.
  EXPECT_EQ(0, p->Gain(&fence));
  EXPECT_EQ(0, p->Gain(&fence));
@@ -490,17 +486,14 @@ TEST_F(LibBufferHubTest, TestWithCustomMetadata) {
  std::unique_ptr<ConsumerBuffer> c =
  std::unique_ptr<ConsumerBuffer> c =
      ConsumerBuffer::Import(p->CreateConsumer());
      ConsumerBuffer::Import(p->CreateConsumer());
  ASSERT_TRUE(c.get() != nullptr);
  ASSERT_TRUE(c.get() != nullptr);

  Metadata m = {1, 3};
  Metadata m = {1, 3};
  EXPECT_EQ(0, p->Post(LocalHandle(), m));
  EXPECT_EQ(0, p->Post(LocalHandle(), &m, sizeof(Metadata)));
  EXPECT_LE(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_LE(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));

  LocalHandle fence;
  LocalHandle fence;
  Metadata m2 = {};
  Metadata m2 = {};
  EXPECT_EQ(0, c->Acquire(&fence, &m2));
  EXPECT_EQ(0, c->Acquire(&fence, &m2));
  EXPECT_EQ(m.field1, m2.field1);
  EXPECT_EQ(m.field1, m2.field1);
  EXPECT_EQ(m.field2, m2.field2);
  EXPECT_EQ(m.field2, m2.field2);

  EXPECT_EQ(0, c->Release(LocalHandle()));
  EXPECT_EQ(0, c->Release(LocalHandle()));
  EXPECT_LT(0, RETRY_EINTR(p->Poll(0)));
  EXPECT_LT(0, RETRY_EINTR(p->Poll(0)));
}
}
@@ -525,13 +518,12 @@ TEST_F(LibBufferHubTest, TestPostWithWrongMetaSize) {
  // It is illegal to post metadata larger than originally requested during
  // It is illegal to post metadata larger than originally requested during
  // buffer allocation.
  // buffer allocation.
  OverSizedMetadata evil_meta = {};
  OverSizedMetadata evil_meta = {};
  EXPECT_NE(0, p->Post(LocalHandle(), evil_meta));
  EXPECT_NE(0, p->Post(LocalHandle(), &evil_meta, sizeof(OverSizedMetadata)));
  EXPECT_GE(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));
  EXPECT_GE(0, RETRY_EINTR(c->Poll(kPollTimeoutMs)));


  // It is ok to post metadata smaller than originally requested during
  // It is ok to post metadata smaller than originally requested during
  // buffer allocation.
  // buffer allocation.
  int64_t sequence = 42;
  EXPECT_EQ(0, p->Post(LocalHandle()));
  EXPECT_EQ(0, p->Post(LocalHandle(), sequence));
}
}


TEST_F(LibBufferHubTest, TestAcquireWithWrongMetaSize) {
TEST_F(LibBufferHubTest, TestAcquireWithWrongMetaSize) {
@@ -552,7 +544,7 @@ TEST_F(LibBufferHubTest, TestAcquireWithWrongMetaSize) {
  ASSERT_TRUE(c.get() != nullptr);
  ASSERT_TRUE(c.get() != nullptr);


  Metadata m = {1, 3};
  Metadata m = {1, 3};
  EXPECT_EQ(0, p->Post(LocalHandle(), m));
  EXPECT_EQ(0, p->Post(LocalHandle(), &m, sizeof(m)));


  LocalHandle fence;
  LocalHandle fence;
  int64_t sequence;
  int64_t sequence;
@@ -577,7 +569,7 @@ TEST_F(LibBufferHubTest, TestAcquireWithNoMeta) {
  ASSERT_TRUE(c.get() != nullptr);
  ASSERT_TRUE(c.get() != nullptr);


  int64_t sequence = 3;
  int64_t sequence = 3;
  EXPECT_EQ(0, p->Post(LocalHandle(), sequence));
  EXPECT_EQ(0, p->Post(LocalHandle(), &sequence, sizeof(sequence)));


  LocalHandle fence;
  LocalHandle fence;
  EXPECT_EQ(0, c->Acquire(&fence));
  EXPECT_EQ(0, c->Acquire(&fence));
@@ -606,7 +598,7 @@ TEST_F(LibBufferHubTest, TestFailureToPostMetaFromABufferWithoutMeta) {
  ASSERT_TRUE(c.get() != nullptr);
  ASSERT_TRUE(c.get() != nullptr);


  int64_t sequence = 3;
  int64_t sequence = 3;
  EXPECT_NE(0, p->Post(LocalHandle(), sequence));
  EXPECT_NE(0, p->Post(LocalHandle(), &sequence, sizeof(sequence)));
}
}


namespace {
namespace {
+0 −6
Original line number Original line Diff line number Diff line
@@ -50,12 +50,6 @@ class ProducerBuffer : public pdx::ClientBase<ProducerBuffer, BufferHubBase> {
    return Post(ready_fence, nullptr, 0);
    return Post(ready_fence, nullptr, 0);
  }
  }


  template <typename Meta, typename = typename std::enable_if<
                               !std::is_void<Meta>::value>::type>
  int Post(const LocalHandle& ready_fence, const Meta& meta) {
    return Post(ready_fence, &meta, sizeof(meta));
  }

  // Attempt to re-gain the buffer for writing. If |release_fence| is valid, it
  // Attempt to re-gain the buffer for writing. If |release_fence| is valid, it
  // must be waited on before using the buffer. If it is not valid then the
  // must be waited on before using the buffer. If it is not valid then the
  // buffer is free for immediate use. This call will only succeed if the buffer
  // buffer is free for immediate use. This call will only succeed if the buffer
+1 −4
Original line number Original line Diff line number Diff line
@@ -218,10 +218,7 @@ TEST(VrFlingerTest, ActivateDeactivate) {


    ASSERT_GE(buffer.get()->Unlock(), 0);
    ASSERT_GE(buffer.get()->Unlock(), 0);


    ASSERT_GE(buffer.get()->Post(/*ready_fence=*/pdx::LocalHandle(),
    ASSERT_GE(buffer.get()->Post(/*ready_fence=*/pdx::LocalHandle()), 0);
                                 /*meta=*/nullptr,
                                 /*user_metadata_size=*/0),
              0);


    ASSERT_EQ(
    ASSERT_EQ(
        surface_flinger_connection->WaitForVrFlinger(/*wait_active=*/true),
        surface_flinger_connection->WaitForVrFlinger(/*wait_active=*/true),