blob: 3699cd1fb94ca7787f39bce7c83deb3319ec35c2 [file] [log] [blame]
Po-Hsien Wang5372c812020-10-02 09:41:01 +08001// Copyright 2020 The Chromium OS 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 VKBENCH_CLEARTEST_H
6#define VKBENCH_CLEARTEST_H
7
Po-Hsien Wang6765a852020-11-19 17:48:29 -08008#include "../testBase.h"
Po-Hsien Wang5372c812020-10-02 09:41:01 +08009
10namespace vkbench {
11class ClearTest : public testBase {
12 public:
13 ClearTest(vkBase* base) {
14 vk = base;
Po-Hsien Wang53230a22020-11-12 18:03:18 -080015 clear_color_.setColor({std::array<float, 4>{0.f, 0.f, 1.f, 1.f}}); // Blue
Po-Hsien Wang5372c812020-10-02 09:41:01 +080016 snprintf(name_, 100, "ClearTest");
17 snprintf(desp_, 1024, "Time to clear window to specific color.");
18 }
19 ~ClearTest() override = default;
20
Po-Hsien Wangc2ba7f52020-11-19 19:41:40 -080021 static std::vector<testBase*> GenTests() {
22 return std::vector<testBase*>{
23 new vkbench::ClearTest(vkBase::GetInstance())};
24 }
Po-Hsien Wang5372c812020-10-02 09:41:01 +080025 const char* Name() const override { return name_; }
26 const char* Desp() const override { return desp_; }
27 const char* Unit() const override { return "mpixels_sec"; }
28 virtual double FormatMeasurement(double time) override {
29 return img_size_.width * img_size_.height / time;
30 }
Po-Hsien Wang53230a22020-11-12 18:03:18 -080031 Image GetImage() const override;
Po-Hsien Wang5372c812020-10-02 09:41:01 +080032
33 protected:
34 void Initialize() override;
35 void Run() override;
36 void Destroy() override;
37
38 private:
39 void CreateRenderPass();
40 void CreateFrameBuffers();
41
42 char name_[100];
43 char desp_[1024];
44 vk::ClearValue clear_color_;
45 std::vector<vk::SubmitInfo> smt_infos_;
46 std::vector<vk::CommandBuffer> cmd_buffers_;
47 vk::Extent2D img_size_{256, 256};
48 vk::Format img_format_ = vk::Format::eR8G8B8A8Unorm;
49
50 vk::RenderPass render_pass_;
51 vk::Framebuffer frame_buffer_;
52 vkImage* img_;
53 vk::ImageView img_view_;
54
55 DISALLOW_COPY_AND_ASSIGN(ClearTest);
56};
57} // namespace vkbench
58#endif // VKBENCH_CLEARTEST_H