From e68e9ed8dde9a0de2733d05435346c73acf5ff13 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 5 Feb 2026 14:32:58 +1300 Subject: [PATCH] Don't return true from GetTrackedFileData() if no data has been loaded The file might be being tracked but wasn't loaded from the embedded files in the capture i.e. it hasn't been physically embedded yet. --- renderdoc/core/core.cpp | 6 ++++-- renderdoc/core/core.h | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/renderdoc/core/core.cpp b/renderdoc/core/core.cpp index 5d0129283..ee555b1c9 100644 --- a/renderdoc/core/core.cpp +++ b/renderdoc/core/core.cpp @@ -2455,8 +2455,9 @@ bool RenderDoc::GetTrackedFileData(const rdcstr &nickname, bytebuf &data) const { if(f.nickname == nickname) { - data = f.data; - return true; + if(f.hasData) + data = f.data; + return f.hasData; } } return false; @@ -2595,6 +2596,7 @@ RDResult RenderDoc::ReadExternalFiles(RDCFile *rdc) { file.data = f.data; file.filepath.clear(); + file.hasData = true; break; } } diff --git a/renderdoc/core/core.h b/renderdoc/core/core.h index f9b69f6d6..e51ba7996 100644 --- a/renderdoc/core/core.h +++ b/renderdoc/core/core.h @@ -656,11 +656,18 @@ private: struct TrackedFile { TrackedFile() = default; - TrackedFile(const rdcstr &name, const rdcstr &path) : nickname(name), filepath(path) {} - TrackedFile(const rdcstr &name, const bytebuf &contents) : nickname(name), data(contents) {} + TrackedFile(const rdcstr &name, const rdcstr &path) + : nickname(name), filepath(path), hasData(false) + { + } + TrackedFile(const rdcstr &name, const bytebuf &contents) + : nickname(name), data(contents), hasData(true) + { + } rdcstr nickname; rdcstr filepath; bytebuf data; + bool hasData; }; void SyncAvailableGPUThread();