Batch prepare and allow limited buffering for vulkan initial states

* We add a capture option that defines a soft limit we aim to keep under for
  memory overhead during capture, excess initial states after that will be
  stored temporarily on disk.
This commit is contained in:
baldurk
2023-04-11 14:21:24 +01:00
parent 1ec0606ce8
commit 0f851df6c2
31 changed files with 586 additions and 188 deletions
@@ -106,6 +106,7 @@ CaptureSettings::operator QVariant() const
opts[lit("refAllResources")] = options.refAllResources;
opts[lit("captureAllCmdLists")] = options.captureAllCmdLists;
opts[lit("debugOutputMute")] = options.debugOutputMute;
opts[lit("softMemoryLimit")] = options.softMemoryLimit;
ret[lit("options")] = opts;
ret[lit("queuedFrameCap")] = queuedFrameCap;
@@ -149,6 +150,7 @@ CaptureSettings::CaptureSettings(const QVariant &v)
options.refAllResources = opts[lit("refAllResources")].toBool();
options.captureAllCmdLists = opts[lit("captureAllCmdLists")].toBool();
options.debugOutputMute = opts[lit("debugOutputMute")].toBool();
options.softMemoryLimit = opts[lit("softMemoryLimit")].toUInt();
if(data.contains(lit("queuedFrameCap")))
queuedFrameCap = data[lit("queuedFrameCap")].toUInt();