summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-04-11 02:50:30 -0300
committerGravatar ameerj2021-07-22 21:51:27 -0400
commit479ca00071ccaab6ca9ac28daf375e1ed15dc447 (patch)
tree2054d994b73a6b1862099a95b069914a347e5e46 /src/video_core/renderer_vulkan
parentspirv: Move phi node patching to a separate function (diff)
downloadyuzu-479ca00071ccaab6ca9ac28daf375e1ed15dc447.tar.gz
yuzu-479ca00071ccaab6ca9ac28daf375e1ed15dc447.tar.xz
yuzu-479ca00071ccaab6ca9ac28daf375e1ed15dc447.zip
nsight_aftermath_tracker: Report used shaders to Nsight Aftermath
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_compute_pass.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp4
2 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.cpp b/src/video_core/renderer_vulkan/vk_compute_pass.cpp
index 2cfe9d4bd..ec9866605 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pass.cpp
+++ b/src/video_core/renderer_vulkan/vk_compute_pass.cpp
@@ -206,6 +206,7 @@ VKComputePass::VKComputePass(const Device& device, VKDescriptorPool& descriptor_
206 .codeSize = static_cast<u32>(code.size_bytes()), 206 .codeSize = static_cast<u32>(code.size_bytes()),
207 .pCode = code.data(), 207 .pCode = code.data(),
208 }); 208 });
209 device.SaveShader(code);
209 pipeline = device.GetLogical().CreateComputePipeline({ 210 pipeline = device.GetLogical().CreateComputePipeline({
210 .sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, 211 .sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
211 .pNext = nullptr, 212 .pNext = nullptr,
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 25dbefd5c..f699a9bdf 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -770,6 +770,7 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
770 770
771 const Shader::Profile profile{MakeProfile(key, program.stage)}; 771 const Shader::Profile profile{MakeProfile(key, program.stage)};
772 const std::vector<u32> code{EmitSPIRV(profile, program, binding)}; 772 const std::vector<u32> code{EmitSPIRV(profile, program, binding)};
773 device.SaveShader(code);
773 modules[stage_index] = BuildShader(device, code); 774 modules[stage_index] = BuildShader(device, code);
774 if (device.HasDebuggingToolAttached()) { 775 if (device.HasDebuggingToolAttached()) {
775 const std::string name{fmt::format("{:016x}{:016x}", key.unique_hashes[index][0], 776 const std::string name{fmt::format("{:016x}{:016x}", key.unique_hashes[index][0],
@@ -846,7 +847,8 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
846 Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()}; 847 Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()};
847 Shader::IR::Program program{TranslateProgram(pools.inst, pools.block, env, cfg)}; 848 Shader::IR::Program program{TranslateProgram(pools.inst, pools.block, env, cfg)};
848 u32 binding{0}; 849 u32 binding{0};
849 std::vector<u32> code{EmitSPIRV(base_profile, program, binding)}; 850 const std::vector<u32> code{EmitSPIRV(base_profile, program, binding)};
851 device.SaveShader(code);
850 vk::ShaderModule spv_module{BuildShader(device, code)}; 852 vk::ShaderModule spv_module{BuildShader(device, code)};
851 if (device.HasDebuggingToolAttached()) { 853 if (device.HasDebuggingToolAttached()) {
852 const auto name{fmt::format("{:016x}{:016x}", key.unique_hash[0], key.unique_hash[1])}; 854 const auto name{fmt::format("{:016x}{:016x}", key.unique_hash[0], key.unique_hash[1])};