summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D12/ShaderCache.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2016-01-17 00:34:06 +1300
committerScott Mansell <phiren@gmail.com>2016-06-26 16:13:21 +1200
commit1a831cfc7d4c43f418ae4d65b579bf430aeb278d (patch)
tree108d1f51697f594cb64c676fdaa9515368db054a /Source/Core/VideoBackends/D3D12/ShaderCache.cpp
parent28c7113e41a70e278e033094d3088e58eeb00c88 (diff)
Multithreadded Shadergen: Second Pass over vertex/lighting Shadergens
As much as possible, the asserts have been moved out of the GetUID function. But there are some places where asserts depend on variables that aren't stored in the shader UID.
Diffstat (limited to 'Source/Core/VideoBackends/D3D12/ShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D12/ShaderCache.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/Core/VideoBackends/D3D12/ShaderCache.cpp b/Source/Core/VideoBackends/D3D12/ShaderCache.cpp
index 677d50f426..5c4cf17962 100644
--- a/Source/Core/VideoBackends/D3D12/ShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D12/ShaderCache.cpp
@@ -164,7 +164,7 @@ void ShaderCache::LoadAndSetActiveShaders(DSTALPHA_MODE ps_dst_alpha_mode, u32 g
GeometryShaderUid gs_uid = GetGeometryShaderUid(gs_primitive_type);
PixelShaderUid ps_uid = GetPixelShaderUid(ps_dst_alpha_mode, API_D3D);
- VertexShaderUid vs_uid = GetVertexShaderUid(API_D3D);
+ VertexShaderUid vs_uid = GetVertexShaderUid();
bool gs_changed = gs_uid != s_last_geometry_shader_uid;
bool ps_changed = ps_uid != s_last_pixel_shader_uid;
@@ -304,7 +304,7 @@ void ShaderCache::HandleVSUIDChange(VertexShaderUid vs_uid)
if (g_ActiveConfig.bEnableShaderDebugging)
{
- ShaderCode code = GenerateVertexShaderCode(API_D3D);
+ ShaderCode code = GenerateVertexShaderCode(API_D3D, vs_uid.GetUidData());
s_vertex_uid_checker.AddToIndexAndCheck(code, vs_uid, "Vertex", "v");
}
@@ -316,7 +316,7 @@ void ShaderCache::HandleVSUIDChange(VertexShaderUid vs_uid)
}
else
{
- ShaderCode vs_code = GenerateVertexShaderCode(API_D3D);
+ ShaderCode vs_code = GenerateVertexShaderCode(API_D3D, vs_uid.GetUidData());
ID3DBlob* vs_bytecode = nullptr;
if (!D3D::CompileVertexShader(vs_code.GetBuffer(), &vs_bytecode))