diff options
| author | 2021-04-11 02:50:30 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:27 -0400 | |
| commit | 479ca00071ccaab6ca9ac28daf375e1ed15dc447 (patch) | |
| tree | 2054d994b73a6b1862099a95b069914a347e5e46 /src/video_core/renderer_vulkan | |
| parent | spirv: Move phi node patching to a separate function (diff) | |
| download | yuzu-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.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | 4 |
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])}; |