diff --git a/docs/Windows/CaptureDialog.aml b/docs/Windows/CaptureDialog.aml
index 146c494f3..f7d23f763 100644
--- a/docs/Windows/CaptureDialog.aml
+++ b/docs/Windows/CaptureDialog.aml
@@ -132,16 +132,6 @@
debug device without RenderDoc involved.
Disabled
-
- Cache State Objects
- In D3D11 creating a state object with the same descriptor as one that already exists
- will simply return a pointer to the existing state object, with a reference count added. Given that
- creation and destruction in RenderDoc has a certain overhead, when this option is enabled RenderDoc will
- hold onto a reference to freed state objects in case they are likely to be re-allocated soon after.
- This will reduce churn and overhead with minimal impact to the application, and it's recommended to
- leave this enabled unless you have specific problems or want to remove this optimisation.
- Enabled
-
Hook into Children
This option causes RenderDoc to hook into CreateProcess and intercept any calls to it from
diff --git a/renderdoc/api/app/renderdoc_app.h b/renderdoc/api/app/renderdoc_app.h
index 9cc68779b..3a852dbcf 100644
--- a/renderdoc/api/app/renderdoc_app.h
+++ b/renderdoc/api/app/renderdoc_app.h
@@ -67,23 +67,67 @@ struct CaptureOptions
CaptureCallstacks(false),
CaptureCallstacksOnlyDraws(false),
DelayForDebugger(0),
- CacheStateObjects(true),
+ CacheStateObjects(false),
HookIntoChildren(false),
RefAllResources(false),
SaveAllInitials(false),
CaptureAllCmdLists(false)
{}
+ // Whether or not to allow the application to enable vsync
+ //
+ // Enabled - allows the application to enable or disable vsync at will
+ // Disabled - vsync is force disabled
bool32 AllowVSync;
+
+ // Whether or not to allow the application to enable fullscreen
+ //
+ // Enabled - allows the application to enable or disable fullscreen at will
+ // Disabled - fullscreen is force disabled
bool32 AllowFullscreen;
+
+ // Enables in-built API debugging features and records the results into the
+ // capture logfile, which is matched up with events on replay
bool32 DebugDeviceMode;
+
+ // Captures callstacks for every API event during capture
bool32 CaptureCallstacks;
+
+ // Only captures callstacks for drawcall type API events.
+ // Ignored if CaptureCallstacks is disabled
bool32 CaptureCallstacksOnlyDraws;
+
+ // Specify a delay in seconds to wait for a debugger to attach after
+ // creating or injecting into a process, before continuing to allow it to run.
uint32_t DelayForDebugger;
+
+ // Deprecated, ignored.
bool32 CacheStateObjects;
+
+ // Hooks any system API events that create child processes, and injects
+ // renderdoc into them recursively with the same options.
bool32 HookIntoChildren;
+
+ // By default renderdoc only includes resources in the final logfile necessary
+ // for that frame, this allows you to override that behaviour
+ //
+ // Enabled - all live resources at the time of capture are included in the log
+ // and available for inspection
+ // Disabled - only the resources referenced by the captured frame are included
bool32 RefAllResources;
+
+ // By default renderdoc skips saving initial states for
bool32 SaveAllInitials;
+
+ // In APIs that allow for the recording of command lists to be replayed later,
+ // renderdoc may choose to not capture command lists before a frame capture is
+ // triggered, to reduce overheads. This means any command lists recorded once
+ // and replayed many times will not be available and may cause a failure to
+ // capture.
+ //
+ // Enabled - All command lists are captured from the start of the application
+ // Disabled - Command lists are only captured if their recording begins during
+ // the period when a frame capture is in progress.
bool32 CaptureAllCmdLists;
#ifdef __cplusplus
@@ -97,7 +141,6 @@ struct CaptureOptions
>> CaptureCallstacks
>> CaptureCallstacksOnlyDraws
>> DelayForDebugger
- >> CacheStateObjects
>> HookIntoChildren
>> RefAllResources
>> SaveAllInitials
@@ -114,7 +157,6 @@ struct CaptureOptions
<< CaptureCallstacks << " "
<< CaptureCallstacksOnlyDraws << " "
<< DelayForDebugger << " "
- << CacheStateObjects << " "
<< HookIntoChildren << " "
<< RefAllResources << " "
<< SaveAllInitials << " "
diff --git a/renderdoc/driver/d3d11/d3d11_device1_wrap.cpp b/renderdoc/driver/d3d11/d3d11_device1_wrap.cpp
index 8f6ab5b6a..2934a8273 100644
--- a/renderdoc/driver/d3d11/d3d11_device1_wrap.cpp
+++ b/renderdoc/driver/d3d11/d3d11_device1_wrap.cpp
@@ -113,7 +113,6 @@ HRESULT WrappedID3D11Device::CreateBlendState1(const D3D11_BLEND_DESC1 *pBlendSt
ID3D11BlendState1 *wrapped = new WrappedID3D11BlendState1(real, this);
- if(RenderDoc::Inst().GetCaptureOptions().CacheStateObjects)
{
RDCASSERT(m_CachedStateObjects.find(wrapped) == m_CachedStateObjects.end());
wrapped->AddRef();
@@ -188,7 +187,6 @@ HRESULT WrappedID3D11Device::CreateRasterizerState1(const D3D11_RASTERIZER_DESC1
ID3D11RasterizerState1 *wrapped = new WrappedID3D11RasterizerState1(real, this);
- if(RenderDoc::Inst().GetCaptureOptions().CacheStateObjects)
{
RDCASSERT(m_CachedStateObjects.find(wrapped) == m_CachedStateObjects.end());
wrapped->AddRef();
diff --git a/renderdoc/driver/d3d11/d3d11_device_wrap.cpp b/renderdoc/driver/d3d11/d3d11_device_wrap.cpp
index c7b97a8c6..3c088d86c 100644
--- a/renderdoc/driver/d3d11/d3d11_device_wrap.cpp
+++ b/renderdoc/driver/d3d11/d3d11_device_wrap.cpp
@@ -2113,7 +2113,6 @@ HRESULT WrappedID3D11Device::CreateBlendState(
ID3D11BlendState *wrapped = new WrappedID3D11BlendState(real, this);
- if(RenderDoc::Inst().GetCaptureOptions().CacheStateObjects)
{
RDCASSERT(m_CachedStateObjects.find(wrapped) == m_CachedStateObjects.end());
wrapped->AddRef();
@@ -2191,7 +2190,6 @@ HRESULT WrappedID3D11Device::CreateDepthStencilState(
ID3D11DepthStencilState *wrapped = new WrappedID3D11DepthStencilState(real, this);
- if(RenderDoc::Inst().GetCaptureOptions().CacheStateObjects)
{
RDCASSERT(m_CachedStateObjects.find(wrapped) == m_CachedStateObjects.end());
wrapped->AddRef();
@@ -2269,7 +2267,6 @@ HRESULT WrappedID3D11Device::CreateRasterizerState(
ID3D11RasterizerState *wrapped = new WrappedID3D11RasterizerState(real, this);
- if(RenderDoc::Inst().GetCaptureOptions().CacheStateObjects)
{
RDCASSERT(m_CachedStateObjects.find(wrapped) == m_CachedStateObjects.end());
wrapped->AddRef();
@@ -2347,7 +2344,6 @@ HRESULT WrappedID3D11Device::CreateSamplerState(
ID3D11SamplerState *wrapped = new WrappedID3D11SamplerState(real, this);
- if(RenderDoc::Inst().GetCaptureOptions().CacheStateObjects)
{
RDCASSERT(m_CachedStateObjects.find(wrapped) == m_CachedStateObjects.end());
wrapped->AddRef();
diff --git a/renderdocui/Interop/CaptureOptions.cs b/renderdocui/Interop/CaptureOptions.cs
index 0434e07fc..5efc886cb 100644
--- a/renderdocui/Interop/CaptureOptions.cs
+++ b/renderdocui/Interop/CaptureOptions.cs
@@ -90,7 +90,7 @@ namespace renderdoc
defs.CaptureCallstacks = false;
defs.CaptureCallstacksOnlyDraws = false;
defs.DelayForDebugger = 0;
- defs.CacheStateObjects = true;
+ defs.CacheStateObjects = false;
defs.HookIntoChildren = false;
defs.RefAllResources = false;
defs.SaveAllInitials = false;
diff --git a/renderdocui/Windows/Dialogs/CaptureDialog.Designer.cs b/renderdocui/Windows/Dialogs/CaptureDialog.Designer.cs
index 83635e050..b08369125 100644
--- a/renderdocui/Windows/Dialogs/CaptureDialog.Designer.cs
+++ b/renderdocui/Windows/Dialogs/CaptureDialog.Designer.cs
@@ -48,7 +48,6 @@
this.CaptureCallstacks = new System.Windows.Forms.CheckBox();
this.CaptureCallstacksOnlyDraws = new System.Windows.Forms.CheckBox();
this.DebugDeviceMode = new System.Windows.Forms.CheckBox();
- this.CacheStateObjects = new System.Windows.Forms.CheckBox();
this.HookIntoChildren = new System.Windows.Forms.CheckBox();
this.SaveAllInitials = new System.Windows.Forms.CheckBox();
this.RefAllResources = new System.Windows.Forms.CheckBox();
@@ -215,7 +214,6 @@
this.capOptsFlow.Controls.Add(this.CaptureCallstacks);
this.capOptsFlow.Controls.Add(this.CaptureCallstacksOnlyDraws);
this.capOptsFlow.Controls.Add(this.DebugDeviceMode);
- this.capOptsFlow.Controls.Add(this.CacheStateObjects);
this.capOptsFlow.Controls.Add(this.HookIntoChildren);
this.capOptsFlow.Controls.Add(this.SaveAllInitials);
this.capOptsFlow.Controls.Add(this.RefAllResources);
@@ -312,17 +310,6 @@
"nings");
this.DebugDeviceMode.UseVisualStyleBackColor = true;
//
- // CacheStateObjects
- //
- this.CacheStateObjects.Location = new System.Drawing.Point(275, 29);
- this.CacheStateObjects.Name = "CacheStateObjects";
- this.CacheStateObjects.Size = new System.Drawing.Size(130, 20);
- this.CacheStateObjects.TabIndex = 13;
- this.CacheStateObjects.Text = "Cache State Objects";
- this.toolTip.SetToolTip(this.CacheStateObjects, "D3D11: Caches state objects so that rapid creation & destruction\r\ndoesn\'t inflate" +
- " memory used and log file size");
- this.CacheStateObjects.UseVisualStyleBackColor = true;
- //
// HookIntoChildren
//
this.HookIntoChildren.Location = new System.Drawing.Point(411, 29);
@@ -656,7 +643,6 @@
private System.Windows.Forms.Button capture;
private System.Windows.Forms.Button close;
- private System.Windows.Forms.CheckBox CacheStateObjects;
private System.Windows.Forms.CheckBox AllowVSync;
private System.Windows.Forms.CheckBox DebugDeviceMode;
private System.Windows.Forms.CheckBox AllowFullscreen;
diff --git a/renderdocui/Windows/Dialogs/CaptureDialog.cs b/renderdocui/Windows/Dialogs/CaptureDialog.cs
index 2aa1960ca..97e76b33b 100644
--- a/renderdocui/Windows/Dialogs/CaptureDialog.cs
+++ b/renderdocui/Windows/Dialogs/CaptureDialog.cs
@@ -68,7 +68,6 @@ namespace renderdocui.Windows.Dialogs
AllowFullscreen.Checked = settings.Options.AllowFullscreen;
AllowVSync.Checked = settings.Options.AllowVSync;
- CacheStateObjects.Checked = settings.Options.CacheStateObjects;
HookIntoChildren.Checked = settings.Options.HookIntoChildren;
CaptureCallstacks.Checked = settings.Options.CaptureCallstacks;
CaptureCallstacksOnlyDraws.Checked = settings.Options.CaptureCallstacksOnlyDraws;
@@ -107,7 +106,6 @@ namespace renderdocui.Windows.Dialogs
ret.Options.AllowFullscreen = AllowFullscreen.Checked;
ret.Options.AllowVSync = AllowVSync.Checked;
ret.Options.HookIntoChildren = HookIntoChildren.Checked;
- ret.Options.CacheStateObjects = CacheStateObjects.Checked;
ret.Options.CaptureCallstacks = CaptureCallstacks.Checked;
ret.Options.CaptureCallstacksOnlyDraws = CaptureCallstacksOnlyDraws.Checked;
ret.Options.DebugDeviceMode = DebugDeviceMode.Checked;