| 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"
12 #include "impeller/core/device_buffer.h"
13 #include "impeller/playground/playground.h"
14
15 namespace impeller {
16
17 class ComputePlaygroundTest
18 : public Playground,
19 public ::testing::TestWithParam<PlaygroundBackend> {
20 public:
21 ComputePlaygroundTest();
22
23 virtual ~ComputePlaygroundTest();
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) {
40 DeviceBufferDescriptor desc;
41 desc.storage_mode = StorageMode::kHostVisible;
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
51 ComputePlaygroundTest(const ComputePlaygroundTest&) = delete;
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_
impeller::ComputePlaygroundTest
Definition: compute_playground_test.h:19
impeller::ComputePlaygroundTest::TearDown
void TearDown() override
Definition: compute_playground_test.cc:34
impeller::ComputePlaygroundTest::ComputePlaygroundTest
ComputePlaygroundTest()
Definition: compute_playground_test.cc:12
impeller::ComputePlaygroundTest::CreateHostVisibleDeviceBuffer
std::shared_ptr< DeviceBuffer > CreateHostVisibleDeviceBuffer(const std::shared_ptr< Context > &context, const std::string &label)
Definition: compute_playground_test.h:37
impeller::ComputePlaygroundTest::~ComputePlaygroundTest
virtual ~ComputePlaygroundTest()
impeller::ComputePlaygroundTest::GetWindowTitle
std::string GetWindowTitle() const override
Definition: compute_playground_test.cc:51
impeller::ComputePlaygroundTest::OpenAssetAsMapping
std::unique_ptr< fml::Mapping > OpenAssetAsMapping(std::string asset_name) const override
Definition: compute_playground_test.cc:39
impeller::ComputePlaygroundTest::SetUp
void SetUp() override
Definition: compute_playground_test.cc:17
impeller::Playground
Definition: playground.h:48
device_buffer.h
impeller
Definition: allocation.cc:12
impeller::StorageMode::kHostVisible
@ kHostVisible
playground.h
impeller::DeviceBufferDescriptor
Definition: device_buffer_descriptor.h:14
impeller::DeviceBufferDescriptor::storage_mode
StorageMode storage_mode
Definition: device_buffer_descriptor.h:15
impeller::DeviceBufferDescriptor::size
size_t size
Definition: device_buffer_descriptor.h:16