[Feat] (MG_Backend/DirectVulkan): ProgramManager - hash program object

This commit is contained in:
2026-02-09 16:18:50 +08:00
parent 18941f9e83
commit 22bc4fbbc9
6 changed files with 91 additions and 3 deletions
@@ -110,6 +110,11 @@ namespace MobileGL {
AddDefaultFragmentShaderIfMissing();
}
std::sort(m_shaders.begin(), m_shaders.end(),
[](SharedPtr<ShaderObject>& a, SharedPtr<ShaderObject>& b) {
return a->GetShaderStage() < b->GetShaderStage();
});
for (SizeT i = 0; i < m_shaders.size(); i++) {
shaderTypes[i] = MG_Util::ConvertShaderStageToGLEnum(m_shaders[i]->GetShaderStage());
MGLOG_D("ProgramObject %u: Preparing shader[%zu] stage %s at %p", m_externalIndex, i,
@@ -17,6 +17,7 @@ namespace MobileGL {
Geometry,
Fragment,
Compute,
ShaderStageCount,
Unknown = -1
};