summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-09-02 20:42:42 +0200
committerGitHub <noreply@github.com>2023-09-02 20:42:42 +0200
commit76bddd3673fd960bfb7fd108b0120ae707dde306 (patch)
treedd38a2ab05cce71665e15ee7c063b69c90e59650 /src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
parentMerge pull request #11384 from liamwhite/am-shutdown (diff)
parentVideoCore: Implement DispatchIndirect (diff)
downloadyuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.tar
yuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.tar.gz
yuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.tar.bz2
yuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.tar.lz
yuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.tar.xz
yuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.tar.zst
yuzu-76bddd3673fd960bfb7fd108b0120ae707dde306.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_pipeline_cache.cpp')
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index fe432dfe1..4f83a88e1 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -665,6 +665,19 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
std::move(modules), infos);
} catch (const Shader::Exception& exception) {
+ auto hash = key.Hash();
+ size_t env_index{0};
+ for (size_t index = 0; index < Maxwell::MaxShaderProgram; ++index) {
+ if (key.unique_hashes[index] == 0) {
+ continue;
+ }
+ Shader::Environment& env{*envs[env_index]};
+ ++env_index;
+
+ const u32 cfg_offset{static_cast<u32>(env.StartAddress() + sizeof(Shader::ProgramHeader))};
+ Shader::Maxwell::Flow::CFG cfg(env, pools.flow_block, cfg_offset, index == 0);
+ env.Dump(hash, key.unique_hashes[index]);
+ }
LOG_ERROR(Render_Vulkan, "{}", exception.what());
return nullptr;
}