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}