summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/VertexShaderCache.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/VertexShaderCache.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/VertexShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/VertexShaderCache.cpp19
1 files changed, 2 insertions, 17 deletions
diff --git a/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp b/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp
index 7b3f71da26..cdcff17d02 100644
--- a/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp
@@ -24,7 +24,6 @@ namespace DX11
VertexShaderCache::VSCache VertexShaderCache::vshaders;
const VertexShaderCache::VSCacheEntry* VertexShaderCache::last_entry;
VertexShaderUid VertexShaderCache::last_uid;
-UidChecker<VertexShaderUid, ShaderCode> VertexShaderCache::vertex_uid_checker;
static ID3D11VertexShader* SimpleVertexShader = nullptr;
static ID3D11VertexShader* ClearVertexShader = nullptr;
@@ -166,9 +165,6 @@ void VertexShaderCache::Init()
VertexShaderCacheInserter inserter;
g_vs_disk_cache.OpenAndRead(cache_filename, inserter);
- if (g_Config.bEnableShaderDebugging)
- Clear();
-
last_entry = nullptr;
}
@@ -177,7 +173,6 @@ void VertexShaderCache::Clear()
for (auto& iter : vshaders)
iter.second.Destroy();
vshaders.clear();
- vertex_uid_checker.Invalidate();
last_entry = nullptr;
}
@@ -199,12 +194,7 @@ void VertexShaderCache::Shutdown()
bool VertexShaderCache::SetShader()
{
- VertexShaderUid uid = GetVertexShaderUid(API_D3D);
- if (g_ActiveConfig.bEnableShaderDebugging)
- {
- ShaderCode code = GenerateVertexShaderCode(API_D3D);
- vertex_uid_checker.AddToIndexAndCheck(code, uid, "Vertex", "v");
- }
+ VertexShaderUid uid = GetVertexShaderUid();
if (last_entry)
{
@@ -227,7 +217,7 @@ bool VertexShaderCache::SetShader()
return (entry.shader != nullptr);
}
- ShaderCode code = GenerateVertexShaderCode(API_D3D);
+ ShaderCode code = GenerateVertexShaderCode(API_D3D, uid.GetUidData());
D3DBlob* pbytecode = nullptr;
D3D::CompileVertexShader(code.GetBuffer(), &pbytecode);
@@ -242,11 +232,6 @@ bool VertexShaderCache::SetShader()
bool success = InsertByteCode(uid, pbytecode);
pbytecode->Release();
- if (g_ActiveConfig.bEnableShaderDebugging && success)
- {
- vshaders[uid].code = code.GetBuffer();
- }
-
GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true);
return success;
}