From e926ceb9cc5f89e618c83a1ebd98f99bed37b1bf Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 21 Sep 2019 13:09:38 +0200 Subject: [PATCH] [dxvk] Only time pipeline compile times if requested Avoids some unnecessary calls to high_resolution_clock::now(). --- src/dxvk/dxvk_compute.cpp | 14 ++++++++++---- src/dxvk/dxvk_graphics.cpp | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/dxvk/dxvk_compute.cpp b/src/dxvk/dxvk_compute.cpp index 9ad2cf344..ad8c4507b 100644 --- a/src/dxvk/dxvk_compute.cpp +++ b/src/dxvk/dxvk_compute.cpp @@ -124,7 +124,10 @@ namespace dxvk { info.basePipelineIndex = -1; // Time pipeline compilation for debugging purposes - auto t0 = std::chrono::high_resolution_clock::now(); + std::chrono::high_resolution_clock::time_point t0, t1; + + if (Logger::logLevel() <= LogLevel::Debug) + t0 = std::chrono::high_resolution_clock::now(); VkPipeline pipeline = VK_NULL_HANDLE; if (m_vkd->vkCreateComputePipelines(m_vkd->device(), @@ -134,9 +137,12 @@ namespace dxvk { return VK_NULL_HANDLE; } - auto t1 = std::chrono::high_resolution_clock::now(); - auto td = std::chrono::duration_cast(t1 - t0); - Logger::debug(str::format("DxvkComputePipeline: Finished in ", td.count(), " ms")); + if (Logger::logLevel() <= LogLevel::Debug) { + t1 = std::chrono::high_resolution_clock::now(); + auto td = std::chrono::duration_cast(t1 - t0); + Logger::debug(str::format("DxvkComputePipeline: Finished in ", td.count(), " ms")); + } + return pipeline; } diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index b7ee63563..d91d3b796 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -439,7 +439,10 @@ namespace dxvk { info.pTessellationState = nullptr; // Time pipeline compilation for debugging purposes - auto t0 = std::chrono::high_resolution_clock::now(); + std::chrono::high_resolution_clock::time_point t0, t1; + + if (Logger::logLevel() <= LogLevel::Debug) + t0 = std::chrono::high_resolution_clock::now(); VkPipeline pipeline = VK_NULL_HANDLE; if (m_vkd->vkCreateGraphicsPipelines(m_vkd->device(), @@ -449,9 +452,12 @@ namespace dxvk { return VK_NULL_HANDLE; } - auto t1 = std::chrono::high_resolution_clock::now(); - auto td = std::chrono::duration_cast(t1 - t0); - Logger::debug(str::format("DxvkGraphicsPipeline: Finished in ", td.count(), " ms")); + if (Logger::logLevel() <= LogLevel::Debug) { + t1 = std::chrono::high_resolution_clock::now(); + auto td = std::chrono::duration_cast(t1 - t0); + Logger::debug(str::format("DxvkGraphicsPipeline: Finished in ", td.count(), " ms")); + } + return pipeline; }