Files
Seele/src/Engine/Graphics/Vulkan/PipelineCache.h
T

26 lines
731 B
C++
Raw Normal View History

2020-05-05 01:51:13 +02:00
#pragma once
2023-10-26 18:37:29 +02:00
#include "Pipeline.h"
2020-05-05 01:51:13 +02:00
namespace Seele
{
namespace Vulkan
{
class PipelineCache
{
public:
PipelineCache(PGraphics graphics, const std::string& cacheFilePath);
~PipelineCache();
2023-11-09 22:15:51 +01:00
PGraphicsPipeline createPipeline(Gfx::LegacyPipelineCreateInfo createInfo);
PGraphicsPipeline createPipeline(Gfx::MeshPipelineCreateInfo createInfo);
PComputePipeline createPipeline(Gfx::ComputePipelineCreateInfo createInfo);
2020-05-05 01:51:13 +02:00
private:
2024-02-23 12:50:40 +01:00
std::map<uint32, OGraphicsPipeline> graphicsPipelines;
2023-11-09 22:15:51 +01:00
Map<uint32, OComputePipeline> computePipelines;
2024-01-26 23:19:18 +01:00
std::mutex cacheLock;
2020-05-05 01:51:13 +02:00
VkPipelineCache cache;
PGraphics graphics;
std::string cacheFile;
};
2021-04-01 16:40:14 +02:00
DEFINE_REF(PipelineCache)
2020-05-05 01:51:13 +02:00
} // namespace Vulkan
} // namespace Seele