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/time/time_delta.h"
11 #include "flutter/testing/testing.h"
14 
15 namespace impeller {
16 
18  : public Playground,
19  public ::testing::TestWithParam<PlaygroundBackend> {
20  public:
22 
24 
25  void SetUp() override;
26 
27  void TearDown() override;
28 
29  // |Playground|
30  std::unique_ptr<fml::Mapping> OpenAssetAsMapping(
31  std::string asset_name) const override;
32 
33  // |Playground|
34  std::string GetWindowTitle() const override;
35 
36  template <typename T>
37  std::shared_ptr<DeviceBuffer> CreateHostVisibleDeviceBuffer(
38  const std::shared_ptr<Context>& context,
39  const std::string& label) {
42  desc.size = sizeof(T);
43  auto buffer = context->GetResourceAllocator()->CreateBuffer(desc);
44  buffer->SetLabel(label);
45  return buffer;
46  }
47 
48  private:
49  fml::TimeDelta start_time_;
50 
52 
53  ComputePlaygroundTest& operator=(const ComputePlaygroundTest&) = delete;
54 };
55 
56 #define INSTANTIATE_COMPUTE_SUITE(playground) \
57  INSTANTIATE_TEST_SUITE_P( \
58  Compute, playground, \
59  ::testing::Values(PlaygroundBackend::kMetal, \
60  PlaygroundBackend::kVulkan), \
61  [](const ::testing::TestParamInfo<ComputePlaygroundTest::ParamType>& \
62  info) { return PlaygroundBackendToString(info.param); });
63 
64 } // namespace impeller
65 
66 #endif // FLUTTER_IMPELLER_PLAYGROUND_COMPUTE_PLAYGROUND_TEST_H_
std::shared_ptr< DeviceBuffer > CreateHostVisibleDeviceBuffer(const std::shared_ptr< Context > &context, const std::string &label)
std::string GetWindowTitle() const override
std::unique_ptr< fml::Mapping > OpenAssetAsMapping(std::string asset_name) const override