summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2016-06-26 21:55:22 +1200
committerGitHub <noreply@github.com>2016-06-26 21:55:22 +1200
commitee9e3432cb980ff75b40b40b9f5729fa25a68fc2 (patch)
treeae43d36c26ba467b96847c8f0ed16af2a069a0f2 /Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
parent2776bcbf55ccc256fd7b43008ee4349d59739cff (diff)
parent2f134c5c36c3a9c3c7a618635d98d0bf2191b9f2 (diff)
Merge pull request #3513 from phire/make_hdkr_happy
Get shadergen ready for Multithreadded generation of shaders.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp19
1 files changed, 2 insertions, 17 deletions
diff --git a/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp b/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
index f899f7f078..1452e617e3 100644
--- a/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
@@ -26,7 +26,6 @@ namespace DX11
GeometryShaderCache::GSCache GeometryShaderCache::GeometryShaders;
const GeometryShaderCache::GSCacheEntry* GeometryShaderCache::last_entry;
GeometryShaderUid GeometryShaderCache::last_uid;
-UidChecker<GeometryShaderUid, ShaderCode> GeometryShaderCache::geometry_uid_checker;
const GeometryShaderCache::GSCacheEntry GeometryShaderCache::pass_entry;
ID3D11GeometryShader* ClearGeometryShader = nullptr;
@@ -165,9 +164,6 @@ void GeometryShaderCache::Init()
GeometryShaderCacheInserter inserter;
g_gs_disk_cache.OpenAndRead(cache_filename, inserter);
- if (g_Config.bEnableShaderDebugging)
- Clear();
-
last_entry = nullptr;
}
@@ -177,7 +173,6 @@ void GeometryShaderCache::Clear()
for (auto& iter : GeometryShaders)
iter.second.Destroy();
GeometryShaders.clear();
- geometry_uid_checker.Invalidate();
last_entry = nullptr;
}
@@ -196,12 +191,7 @@ void GeometryShaderCache::Shutdown()
bool GeometryShaderCache::SetShader(u32 primitive_type)
{
- GeometryShaderUid uid = GetGeometryShaderUid(primitive_type, API_D3D);
- if (g_ActiveConfig.bEnableShaderDebugging)
- {
- ShaderCode code = GenerateGeometryShaderCode(primitive_type, API_D3D);
- geometry_uid_checker.AddToIndexAndCheck(code, uid, "Geometry", "g");
- }
+ GeometryShaderUid uid = GetGeometryShaderUid(primitive_type);
// Check if the shader is already set
if (last_entry)
@@ -235,7 +225,7 @@ bool GeometryShaderCache::SetShader(u32 primitive_type)
}
// Need to compile a new shader
- ShaderCode code = GenerateGeometryShaderCode(primitive_type, API_D3D);
+ ShaderCode code = GenerateGeometryShaderCode(API_D3D, uid.GetUidData());
D3DBlob* pbytecode;
if (!D3D::CompileGeometryShader(code.GetBuffer(), &pbytecode))
@@ -250,11 +240,6 @@ bool GeometryShaderCache::SetShader(u32 primitive_type)
bool success = InsertByteCode(uid, pbytecode->Data(), pbytecode->Size());
pbytecode->Release();
- if (g_ActiveConfig.bEnableShaderDebugging && success)
- {
- GeometryShaders[uid].code = code.GetBuffer();
- }
-
return success;
}