diff options
| author | Connor McLaughlin <stenzek@gmail.com> | 2019-04-21 13:27:05 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-21 13:27:05 +1000 |
| commit | 5b4ebccf6bf45a614cd2a5031607743b482ff776 (patch) | |
| tree | 49de06f81815973680811a3ee9f853dde1b15bbd /Source/Core/VideoCommon/ShaderCache.cpp | |
| parent | 18589e50ab44957f4955596ac238d900f28959c3 (diff) | |
| parent | c6b45c5ca9ea80a4190db98858e186996d4827af (diff) | |
Merge pull request #8012 from stenzek/bounding-box-shaders
PixelShaderGen: Don't emit bounding box shader code for old UIDs when disabled
Diffstat (limited to 'Source/Core/VideoCommon/ShaderCache.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/ShaderCache.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index e1712ec8f3..3e4ed24662 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -641,17 +641,19 @@ const AbstractPipeline* ShaderCache::InsertGXPipeline(const GXPipelineUid& confi auto& entry = m_gx_pipeline_cache[config]; entry.second = false; if (!entry.first && pipeline) + { entry.first = std::move(pipeline); - if (g_ActiveConfig.bShaderCache) - { - auto cache_data = entry.first->GetCacheData(); - if (!cache_data.empty()) + if (g_ActiveConfig.bShaderCache) { - SerializedGXPipelineUid disk_uid; - SerializePipelineUid(config, disk_uid); - m_gx_pipeline_disk_cache.Append(disk_uid, cache_data.data(), - static_cast<u32>(cache_data.size())); + auto cache_data = entry.first->GetCacheData(); + if (!cache_data.empty()) + { + SerializedGXPipelineUid disk_uid; + SerializePipelineUid(config, disk_uid); + m_gx_pipeline_disk_cache.Append(disk_uid, cache_data.data(), + static_cast<u32>(cache_data.size())); + } } } @@ -665,17 +667,19 @@ ShaderCache::InsertGXUberPipeline(const GXUberPipelineUid& config, auto& entry = m_gx_uber_pipeline_cache[config]; entry.second = false; if (!entry.first && pipeline) + { entry.first = std::move(pipeline); - if (g_ActiveConfig.bShaderCache) - { - auto cache_data = entry.first->GetCacheData(); - if (!cache_data.empty()) + if (g_ActiveConfig.bShaderCache) { - SerializedGXUberPipelineUid disk_uid; - SerializePipelineUid(config, disk_uid); - m_gx_uber_pipeline_disk_cache.Append(disk_uid, cache_data.data(), - static_cast<u32>(cache_data.size())); + auto cache_data = entry.first->GetCacheData(); + if (!cache_data.empty()) + { + SerializedGXUberPipelineUid disk_uid; + SerializePipelineUid(config, disk_uid); + m_gx_uber_pipeline_disk_cache.Append(disk_uid, cache_data.data(), + static_cast<u32>(cache_data.size())); + } } } |
