init commit

This commit is contained in:
2025-12-21 15:41:59 +01:00
commit c86af91a92
36 changed files with 2399 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
#include <iostream>
#include <cstdlib>
#define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
#include <vulkan/vulkan.hpp>
#include <fstream>
#include <vector>
#include "initialization.h"
#include "utils.h"
#include "task_common.h"
#include "A2Task2.h"
struct A2Task2SolutioNaive : A2Task2Solution {
public:
A2Task2SolutioNaive(AppResources &app, uint workGroupSize);
void prepare(const std::vector<uint> &input) override;
void compute() override;
std::vector<uint> result() const override;
void cleanup() override;
private:
struct PushStruct
{
uint size;
uint offset;
};
AppResources &app;
uint workGroupSize;
uint workSize;
Buffer buffers[2];
// Descriptor & Pipeline Layout
std::vector<vk::DescriptorSetLayoutBinding> bindings;
vk::DescriptorSetLayout descriptorSetLayout;
vk::PipelineLayout pipelineLayout;
vk::ShaderModule cShader;
vk::Pipeline pipeline;
// Descriptor Pool
vk::DescriptorPool descriptorPool;
// Descriptors
vk::DescriptorSet descriptorSets[2];
uint activeBuffer = 0;
};