From 3fc064f434961e2dfc929558924b3806cf0a8b65 Mon Sep 17 00:00:00 2001
From: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Date: Fri, 12 Jan 2018 00:06:54 +0100
Subject: [PATCH] [d3d11] Added shader module creation log

---
 src/d3d11/d3d11_shader.cpp | 36 +++++++++++++-----------------------
 src/d3d11/d3d11_shader.h   |  1 +
 2 files changed, 14 insertions(+), 23 deletions(-)

diff --git a/src/d3d11/d3d11_shader.cpp b/src/d3d11/d3d11_shader.cpp
index 1c7f2aee6..4e6a5901c 100644
--- a/src/d3d11/d3d11_shader.cpp
+++ b/src/d3d11/d3d11_shader.cpp
@@ -12,51 +12,42 @@ namespace dxvk {
           D3D11Device*  pDevice,
     const void*         pShaderBytecode,
           size_t        BytecodeLength) {
-    
     DxbcReader reader(
       reinterpret_cast<const char*>(pShaderBytecode),
       BytecodeLength);
     
     DxbcModule module(reader);
     
+    // Construct the shader name that we'll use for
+    // debug messages and as the dump/read file name
+    m_name = ConstructFileName(
+      ComputeShaderHash(pShaderBytecode, BytecodeLength),
+      module.version().type());
+    
+    Logger::debug(str::format("Compiling shader ", m_name));
+    
     // If requested by the user, dump both the raw DXBC
     // shader and the compiled SPIR-V module to a file.
-    const std::string dumpPath
-      = env::getEnvVar(L"DXVK_SHADER_DUMP_PATH");
+    const std::string dumpPath = env::getEnvVar(L"DXVK_SHADER_DUMP_PATH");
+    const std::string readPath = env::getEnvVar(L"DXVK_SHADER_READ_PATH");
     
     if (dumpPath.size() != 0) {
-      const std::string baseName = str::format(dumpPath, "/",
-        ConstructFileName(ComputeShaderHash(pShaderBytecode, BytecodeLength),
-        module.version().type()));
-      
-      reader.store(std::ofstream(str::format(baseName, ".dxbc"),
+      reader.store(std::ofstream(str::format(dumpPath, "/", m_name, ".dxbc"),
         std::ios_base::binary | std::ios_base::trunc));
     }
     
-    
     m_shader = module.compile(*pDxbcOptions);
       
     if (dumpPath.size() != 0) {
-      const std::string baseName = str::format(dumpPath, "/",
-        ConstructFileName(ComputeShaderHash(pShaderBytecode, BytecodeLength),
-        module.version().type()));
-      
-      m_shader->dump(std::ofstream(str::format(baseName, ".spv"),
+      m_shader->dump(std::ofstream(str::format(dumpPath, "/", m_name, ".spv"),
         std::ios_base::binary | std::ios_base::trunc));
     }
     
     // If requested by the user, replace
     // the shader with another file.
-    const std::string readPath
-      = env::getEnvVar(L"DXVK_SHADER_READ_PATH");
-    
     if (readPath.size() != 0) {
-      const std::string baseName = str::format(readPath, "/",
-        ConstructFileName(ComputeShaderHash(pShaderBytecode, BytecodeLength),
-        module.version().type()));
-      
       m_shader->read(std::ifstream(
-        str::format(baseName, ".spv"),
+        str::format(readPath, "/", m_name, ".spv"),
         std::ios_base::binary));
     }
   }
@@ -74,7 +65,6 @@ namespace dxvk {
   std::string D3D11ShaderModule::ConstructFileName(
     const Sha1Hash&         hash,
     const DxbcProgramType&  type) const {
-    
     std::string typeStr;
     
     switch (type) {
diff --git a/src/d3d11/d3d11_shader.h b/src/d3d11/d3d11_shader.h
index 65ca31079..777013468 100644
--- a/src/d3d11/d3d11_shader.h
+++ b/src/d3d11/d3d11_shader.h
@@ -37,6 +37,7 @@ namespace dxvk {
     
   private:
     
+    std::string    m_name;
     Rc<DxvkShader> m_shader;
     
     Sha1Hash ComputeShaderHash(