diff --git a/renderdoc/driver/vulkan/CMakeLists.txt b/renderdoc/driver/vulkan/CMakeLists.txt
index a52095592..279c4e3b9 100644
--- a/renderdoc/driver/vulkan/CMakeLists.txt
+++ b/renderdoc/driver/vulkan/CMakeLists.txt
@@ -93,6 +93,7 @@ elseif(ENABLE_GGP)
add_definitions(-DVK_USE_PLATFORM_GGP)
set(VULKAN_LAYER_MODULE_PATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/${LIB_SUBFOLDER_TRAIL_SLASH}librenderdoc.so")
+ set(VULKAN_ENABLE_VAR "ENABLE_RENDERDOC_VULKAN_CAPTURE")
set(json_in ${CMAKE_CURRENT_SOURCE_DIR}/renderdoc.json)
set(json_out ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/renderdoc_capture.json)
@@ -116,6 +117,7 @@ elseif(UNIX)
endif()
set(VULKAN_LAYER_MODULE_PATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/${LIB_SUBFOLDER_TRAIL_SLASH}librenderdoc.so")
+ set(VULKAN_ENABLE_VAR "ENABLE_RENDERDOC_VULKAN_CAPTURE")
set(json_in ${CMAKE_CURRENT_SOURCE_DIR}/renderdoc.json)
set(json_out ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/renderdoc_capture.json)
diff --git a/renderdoc/driver/vulkan/renderdoc.json b/renderdoc/driver/vulkan/renderdoc.json
index f13e1fea9..c97608f8c 100644
--- a/renderdoc/driver/vulkan/renderdoc.json
+++ b/renderdoc/driver/vulkan/renderdoc.json
@@ -34,7 +34,7 @@
}
],
"enable_environment": {
- "ENABLE_VULKAN_RENDERDOC_CAPTURE": "1"
+ "@VULKAN_ENABLE_VAR@": "1"
},
"disable_environment": {
"DISABLE_VULKAN_RENDERDOC_CAPTURE_@RENDERDOC_VERSION_MAJOR@_@RENDERDOC_VERSION_MINOR@": "1"
diff --git a/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj b/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj
index 8cf2838f6..0174e1623 100644
--- a/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj
+++ b/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj
@@ -198,34 +198,6 @@
-
-
-
- $([System.IO.File]::ReadAllText('$(SolutionDir)renderdoc/api/replay/version.h').Trim())
-
-
-
-
- $(VersionFile.IndexOf('#define RENDERDOC_VERSION_MAJOR'))
-
- $(VersionFile.Substring($(MajorVersionStart)).Split('
-')[0].Split(' ')[2])
- $(VersionFile.IndexOf('#define RENDERDOC_VERSION_MINOR'))
- $(VersionFile.Substring($(MinorVersionStart)).Split('
-')[0].Split(' ')[2])
-
-
-
-
- $([System.IO.File]::ReadAllText('$(ProjectDir)renderdoc.json').Replace('@RENDERDOC_VERSION_MAJOR@', '$(MajorVersion)').Replace('@RENDERDOC_VERSION_MINOR@', '$(MinorVersion)').Replace('@VULKAN_LAYER_MODULE_PATH@', '.\\renderdoc.dll'))
-
-
-
-
{0aae0ad1-371b-4a36-9ed1-80e10e960605}
diff --git a/renderdoc/driver/vulkan/vk_layer.cpp b/renderdoc/driver/vulkan/vk_layer.cpp
index 393fd345d..bfc0ac158 100644
--- a/renderdoc/driver/vulkan/vk_layer.cpp
+++ b/renderdoc/driver/vulkan/vk_layer.cpp
@@ -58,6 +58,19 @@ class VulkanHook : LibraryHook
Process::RegisterEnvironmentModification(EnvironmentModification(
EnvMod::Set, EnvSep::NoSep, "ENABLE_VULKAN_RENDERDOC_CAPTURE", "1"));
+#if ENABLED(RDOC_WIN32)
+ // on windows support self-hosted capture by checking our filename and tweaking the env var we
+ // set
+ std::string module_name;
+ FileIO::GetLibraryFilename(module_name);
+ module_name = strupper(get_basename(module_name.substr(0, module_name.rfind('.'))));
+ if(module_name != "RENDERDOC")
+ {
+ Process::RegisterEnvironmentModification(EnvironmentModification(
+ EnvMod::Set, EnvSep::NoSep, ("ENABLE_VULKAN_" + module_name + "_CAPTURE").c_str(), "1"));
+ }
+#endif
+
// check options to set further variables, and apply
OptionsUpdated();
}
diff --git a/renderdoc/renderdoc.vcxproj b/renderdoc/renderdoc.vcxproj
index 6fee2e19d..9a871b154 100644
--- a/renderdoc/renderdoc.vcxproj
+++ b/renderdoc/renderdoc.vcxproj
@@ -594,6 +594,35 @@
+
+
+
+ $([System.IO.File]::ReadAllText('$(SolutionDir)renderdoc/api/replay/version.h').Trim())
+
+
+
+
+ $(VersionFile.IndexOf('#define RENDERDOC_VERSION_MAJOR'))
+
+ $(VersionFile.Substring($(MajorVersionStart)).Split('
+')[0].Split(' ')[2])
+ $(VersionFile.IndexOf('#define RENDERDOC_VERSION_MINOR'))
+ $(VersionFile.Substring($(MinorVersionStart)).Split('
+')[0].Split(' ')[2])
+
+
+
+
+ ENABLE_VULKAN_$(ProjectName)_CAPTURE
+ $([System.IO.File]::ReadAllText('$(SolutionDir)renderdoc/driver/vulkan/renderdoc.json').Replace('@RENDERDOC_VERSION_MAJOR@', '$(MajorVersion)').Replace('@RENDERDOC_VERSION_MINOR@', '$(MinorVersion)').Replace('@VULKAN_LAYER_MODULE_PATH@', '.\\$(ProjectName).dll').Replace('@VULKAN_ENABLE_VAR@', $(VulkanEnableVar.ToUpper())))
+
+
+
+
{f1e59a05-60d4-4927-9e57-dd191eae90ef}