blob: 2dd2a81435b2b16925d0bcbbdd4af65ca4a5612c [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef VKBENCH_SUBMITTEST_H
#define VKBENCH_SUBMITTEST_H
#include "../testBase.h"
namespace vkbench {
class SubmitTest : public testBase {
public:
SubmitTest(uint64_t submitCnt, vkBase* base) {
vk = base;
sprintf(name_, "SubmitTest_%lu", submitCnt);
sprintf(desp_, "Times the time used when submitting %lu empty calls.",
submitCnt);
smt_infos_.resize(submitCnt);
}
~SubmitTest() override = default;
static std::vector<testBase*> GenTests() {
return std::vector<testBase*>{
new vkbench::SubmitTest(16, vkBase::GetInstance()),
new vkbench::SubmitTest(64, vkBase::GetInstance()),
new vkbench::SubmitTest(256, vkBase::GetInstance()),
new vkbench::SubmitTest(1024, vkBase::GetInstance()),
new vkbench::SubmitTest(4096, vkBase::GetInstance()),
new vkbench::SubmitTest(16384, vkBase::GetInstance()),
};
}
const char* Name() const override { return name_; }
const char* Desp() const override { return desp_; }
const char* Unit() const override { return "us"; }
protected:
void Initialize() override;
void Run() override;
void Cleanup() override;
void Destroy() override;
private:
char name_[100];
char desp_[1024];
std::vector<vk::Fence> fences_;
std::vector<vk::SubmitInfo> smt_infos_;
std::vector<vk::CommandBuffer> cmd_buffers_;
DISALLOW_COPY_AND_ASSIGN(SubmitTest);
};
} // namespace vkbench
#endif // VKBENCH_SUBMITTEST_H