Flutter Impeller
compute_playground_test.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_IMPELLER_PLAYGROUND_COMPUTE_PLAYGROUND_TEST_H_
6 #define FLUTTER_IMPELLER_PLAYGROUND_COMPUTE_PLAYGROUND_TEST_H_
7 
8 #include <memory>
9 
10 #include "flutter/fml/macros.h"
11 #include "flutter/fml/time/time_delta.h"
12 #include "flutter/testing/testing.h"
16 
17 namespace impeller {
18 
20  : public Playground,
21  public ::testing::TestWithParam<PlaygroundBackend> {
22  public:
24 
25  virtual ~ComputePlaygroundTest();
26 
27  void SetUp() override;
28 
29  void TearDown() override;
30 
31  // |Playground|
32  std::unique_ptr<fml::Mapping> OpenAssetAsMapping(
33  std::string asset_name) const override;
34 
35  // |Playground|
36  std::string GetWindowTitle() const override;
37 
38  template <typename T>
39  std::shared_ptr<DeviceBuffer> CreateHostVisibleDeviceBuffer(
40  const std::shared_ptr<Context>& context,
41  const std::string& label) {
44  desc.size = sizeof(T);
45  auto buffer = context->GetResourceAllocator()->CreateBuffer(desc);
46  buffer->SetLabel(label);
47  return buffer;
48  }
49 
50  private:
51  fml::TimeDelta start_time_;
52 
54 
55  ComputePlaygroundTest& operator=(const ComputePlaygroundTest&) = delete;
56 };
57 
58 #define INSTANTIATE_COMPUTE_SUITE(playground) \
59  INSTANTIATE_TEST_SUITE_P( \
60  Compute, playground, \
61  ::testing::Values(PlaygroundBackend::kMetal, \
62  PlaygroundBackend::kVulkan), \
63  [](const ::testing::TestParamInfo<ComputePlaygroundTest::ParamType>& \
64  info) { return PlaygroundBackendToString(info.param); });
65 
66 } // namespace impeller
67 
68 #endif // FLUTTER_IMPELLER_PLAYGROUND_COMPUTE_PLAYGROUND_TEST_H_
impeller::ComputePlaygroundTest::SetUp
void SetUp() override
Definition: compute_playground_test.cc:17
impeller::DeviceBufferDescriptor
Definition: device_buffer_descriptor.h:14
device_buffer.h
playground.h
impeller::DeviceBufferDescriptor::size
size_t size
Definition: device_buffer_descriptor.h:16
impeller::ComputePlaygroundTest
Definition: compute_playground_test.h:19
impeller::StorageMode::kHostVisible
@ kHostVisible
impeller::ComputePlaygroundTest::GetWindowTitle
std::string GetWindowTitle() const override
Definition: compute_playground_test.cc:51
impeller::Playground
Definition: playground.h:50
impeller::ComputePlaygroundTest::TearDown
void TearDown() override
Definition: compute_playground_test.cc:34
impeller::ComputePlaygroundTest::OpenAssetAsMapping
std::unique_ptr< fml::Mapping > OpenAssetAsMapping(std::string asset_name) const override
Definition: compute_playground_test.cc:39
impeller::ComputePlaygroundTest::~ComputePlaygroundTest
virtual ~ComputePlaygroundTest()
impeller::DeviceBufferDescriptor::storage_mode
StorageMode storage_mode
Definition: device_buffer_descriptor.h:15
scalar.h
impeller::ComputePlaygroundTest::CreateHostVisibleDeviceBuffer
std::shared_ptr< DeviceBuffer > CreateHostVisibleDeviceBuffer(const std::shared_ptr< Context > &context, const std::string &label)
Definition: compute_playground_test.h:39
impeller::ComputePlaygroundTest::ComputePlaygroundTest
ComputePlaygroundTest()
Definition: compute_playground_test.cc:12
impeller
Definition: aiks_blur_unittests.cc:20