diff --git a/renderdoc/driver/vulkan/CMakeLists.txt b/renderdoc/driver/vulkan/CMakeLists.txt
index 6fa7a2875..9ddd2ba7d 100644
--- a/renderdoc/driver/vulkan/CMakeLists.txt
+++ b/renderdoc/driver/vulkan/CMakeLists.txt
@@ -65,7 +65,7 @@ elseif(UNIX)
set(json_in ${CMAKE_CURRENT_SOURCE_DIR}/renderdoc.json)
set(json_out ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/renderdoc_capture.json)
add_custom_command(OUTPUT ${json_out}
- COMMAND sed '{s%...renderdoc.dll%${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/librenderdoc.so%}' < ${json_in} > ${json_out}
+ COMMAND sed '{s%\\[MAJOR\\]%${RENDERDOC_VERSION_MAJOR}%\; s%\\[MINOR\\]%${RENDERDOC_VERSION_MINOR}%\; s%...renderdoc.dll%${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/librenderdoc.so%}' < ${json_in} > ${json_out}
DEPENDS ${json_in})
add_custom_target(generate-json ALL DEPENDS ${json_out})
diff --git a/renderdoc/driver/vulkan/renderdoc.json b/renderdoc/driver/vulkan/renderdoc.json
index 2cf2668ea..fd1acfdf9 100644
--- a/renderdoc/driver/vulkan/renderdoc.json
+++ b/renderdoc/driver/vulkan/renderdoc.json
@@ -5,7 +5,7 @@
"type": "GLOBAL",
"library_path": ".\\renderdoc.dll",
"api_version": "1.0.0",
- "implementation_version": "34",
+ "implementation_version": "[MINOR]",
"description": "Debugging capture layer for RenderDoc",
"functions": {
"vkGetInstanceProcAddr": "VK_LAYER_RENDERDOC_CaptureGetInstanceProcAddr",
@@ -28,7 +28,7 @@
"ENABLE_VULKAN_RENDERDOC_CAPTURE": "1"
},
"disable_environment": {
- "DISABLE_VULKAN_RENDERDOC_CAPTURE_0_34": "1"
+ "DISABLE_VULKAN_RENDERDOC_CAPTURE_[MAJOR]_[MINOR]": "1"
}
}
}
diff --git a/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj b/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj
index 9ac8c0346..b37e5a172 100644
--- a/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj
+++ b/renderdoc/driver/vulkan/renderdoc_vulkan.vcxproj
@@ -162,12 +162,40 @@
-
-
- renderdoc.json
- PreserveNewest
-
-
+
+
+
+ $([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('[MAJOR]', '$(MajorVersion)').Replace('[MINOR]', '$(MinorVersion)'))
+
+
+
+
+
{0aae0ad1-371b-4a36-9ed1-80e10e960605}
diff --git a/renderdoc/driver/vulkan/vk_linux.cpp b/renderdoc/driver/vulkan/vk_linux.cpp
index fc986d508..edaefe3f7 100644
--- a/renderdoc/driver/vulkan/vk_linux.cpp
+++ b/renderdoc/driver/vulkan/vk_linux.cpp
@@ -23,6 +23,7 @@
******************************************************************************/
#include "api/replay/renderdoc_replay.h"
+#include "api/replay/version.h"
#include "serialise/string_utils.h"
#include
@@ -157,7 +158,31 @@ static std::string GenerateJSON(const std::string &sopath)
size_t idx = json.find(dllPathString);
- return json.substr(0, idx) + sopath + json.substr(idx + sizeof(dllPathString) - 1);
+ json = json.substr(0, idx) + sopath + json.substr(idx + sizeof(dllPathString) - 1);
+
+ const char majorString[] = "[MAJOR]";
+
+ idx = json.find(majorString);
+ while(idx != string::npos)
+ {
+ json = json.substr(0, idx) + STRINGIZE(RENDERDOC_VERSION_MAJOR) +
+ json.substr(idx + sizeof(majorString) - 1);
+
+ idx = json.find(majorString);
+ }
+
+ const char minorString[] = "[MINOR]";
+
+ idx = json.find(minorString);
+ while(idx != string::npos)
+ {
+ json = json.substr(0, idx) + STRINGIZE(RENDERDOC_VERSION_MINOR) +
+ json.substr(idx + sizeof(minorString) - 1);
+
+ idx = json.find(minorString);
+ }
+
+ return json;
}
static bool FileExists(const std::string &path)