mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Vulkan: Implement a pipeline UID cache
This stores enough information to recreate the pipeline, including the shader UIDs, blend/depth/rasterization state, primitive and vertex format.
This commit is contained in:
@ -53,6 +53,19 @@ VertexFormat::VertexFormat(const PortableVertexDeclaration& in_vtx_decl)
|
||||
SetupInputState();
|
||||
}
|
||||
|
||||
VertexFormat* VertexFormat::GetOrCreateMatchingFormat(const PortableVertexDeclaration& decl)
|
||||
{
|
||||
auto vertex_format_map = VertexLoaderManager::GetNativeVertexFormatMap();
|
||||
auto iter = vertex_format_map->find(decl);
|
||||
if (iter == vertex_format_map->end())
|
||||
{
|
||||
auto ipair = vertex_format_map->emplace(decl, std::make_unique<VertexFormat>(decl));
|
||||
iter = ipair.first;
|
||||
}
|
||||
|
||||
return static_cast<VertexFormat*>(iter->second.get());
|
||||
}
|
||||
|
||||
void VertexFormat::MapAttributes()
|
||||
{
|
||||
m_num_attributes = 0;
|
||||
|
Reference in New Issue
Block a user