|
|
@@ -85,23 +85,23 @@ CachedShader::CachedShader(VAddr addr, Maxwell::ShaderProgram program_type)
|
|
|
SetShaderUniformBlockBindings(program.handle);
|
|
|
}
|
|
|
|
|
|
-GLuint CachedShader::GetProgramResourceIndex(const std::string& name) {
|
|
|
- auto search{resource_cache.find(name)};
|
|
|
+GLuint CachedShader::GetProgramResourceIndex(const GLShader::ConstBufferEntry& buffer) {
|
|
|
+ auto search{resource_cache.find(buffer.GetHash())};
|
|
|
if (search == resource_cache.end()) {
|
|
|
const GLuint index{
|
|
|
- glGetProgramResourceIndex(program.handle, GL_UNIFORM_BLOCK, name.c_str())};
|
|
|
- resource_cache[name] = index;
|
|
|
+ glGetProgramResourceIndex(program.handle, GL_UNIFORM_BLOCK, buffer.GetName().c_str())};
|
|
|
+ resource_cache[buffer.GetHash()] = index;
|
|
|
return index;
|
|
|
}
|
|
|
|
|
|
return search->second;
|
|
|
}
|
|
|
|
|
|
-GLint CachedShader::GetUniformLocation(const std::string& name) {
|
|
|
- auto search{uniform_cache.find(name)};
|
|
|
+GLint CachedShader::GetUniformLocation(const GLShader::SamplerEntry& sampler) {
|
|
|
+ auto search{uniform_cache.find(sampler.GetHash())};
|
|
|
if (search == uniform_cache.end()) {
|
|
|
- const GLint index{glGetUniformLocation(program.handle, name.c_str())};
|
|
|
- uniform_cache[name] = index;
|
|
|
+ const GLint index{glGetUniformLocation(program.handle, sampler.GetName().c_str())};
|
|
|
+ uniform_cache[sampler.GetHash()] = index;
|
|
|
return index;
|
|
|
}
|
|
|
|