Added initial base for iteration with command buffer and experimetation with baseoperator

This commit is contained in:
Alejandro Saucedo 2020-08-16 18:09:56 +01:00
parent 0a1bfe0de8
commit 441efcd8dd
9 changed files with 294 additions and 17 deletions

View file

@ -3,6 +3,10 @@
#include <vulkan/vulkan.h>
#include <vulkan/vulkan.hpp>
#include <spdlog/spdlog.h>
#include "Sequence.hpp"
namespace kp {
class Manager
@ -12,13 +16,24 @@ private:
public:
Manager();
virtual ~Manager();
~Manager();
// Evaluate actions
template <typename T, typename... TArgs>
void eval(TArgs&&... args) {
SPDLOG_DEBUG("Kompute Manager eval triggered");
Sequence sq(this->mDevice, this->mComputeQueue, this->mComputeQueueFamilyIndex);
sq.begin();
sq.record<T>(std::forward<TArgs>(args)...);
sq.end();
sq.eval();
}
// Templated Commands
private:
vk::Instance* mInstance = nullptr;
bool mFreeInstance = false;
uint32_t mPhysicalDeviceIndex = -1;
vk::Device* mDevice = nullptr;
bool mFreeDevice = false;
uint32_t mComputeQueueFamilyIndex = -1;
@ -32,7 +47,6 @@ private:
// Create functions
void createInstance();
void createDevice();
};
} // End namespace kp