Rename 'create debug device' capture option to 'API validation'

* More appropriate for non-D3D11 APIs and will cause less confusion.
This commit is contained in:
baldurk
2016-05-17 21:16:17 +02:00
parent 3539b06899
commit 4b7e068703
16 changed files with 57 additions and 52 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ This page is a random hodge-podge of different tips and tricks that might not be
You can also use the ``RENDERDOC_StartFrameCapture()`` and ``RENDERDOC_EndFrameCapture()`` functions to precisely define the period to be captured. For more information look at the :doc:`../in_application_api` documentation or the ``renderdoc_app.h`` header.
#. When you have right clicked to select a pixel in the texture viewer, you can perform precise refinements with the arrow keys to nudge the selection in each direction.
#. To get API debug or error messages, enable "Create Debug Device" when capturing then check out the :doc:`../window/debug_messages` window.
#. To get API debug or error messages, enable "Enable API validation" when capturing then check out the :doc:`../window/debug_messages` window.
#. Detecting RenderDoc from your code can either be done by trying to load and use the renderdoc :doc:`../in_application_api`, or through API specific ways:
.. highlight:: c++
+2 -2
View File
@@ -80,9 +80,9 @@ This option modifies the above capturing of callstacks to only be saved for draw
----------
| ``Create Debug Device`` Default: ``Disabled``
| ``Enable API validation`` Default: ``Disabled``
Create Debug Device causes RenderDoc to enable the API's built-in debugging, and where possible serialise this out and include it in the logfile for later inspection in the :doc:`debug_messages` window.
Enable API validation causes RenderDoc to enable the API's built-in debugging, and where possible serialise this out and include it in the logfile for later inspection in the :doc:`debug_messages` window.
* On D3D11 this will activate the D3D debug layer and save out any messages.
* For OpenGL this means ``ARB_debug_output`` is automatically enabled.
+1 -1
View File
@@ -8,7 +8,7 @@ RenderDoc will alert you if there are any debug messages to show from the log, b
Capturing with debug messages included
--------------------------------------
To include these debug messages in a log, check on the "Create Debug Device" option in the capture options. For more information see :doc:`capture_log_attach`
To include these debug messages in a log, check on the "Enable API validation" option in the capture options. For more information see :doc:`capture_log_attach`
Debug Messages
--------------
+9 -5
View File
@@ -83,7 +83,8 @@ typedef enum
// 1 - Enable built-in API debugging features and records the results into
// the capture logfile, which is matched up with events on replay
// 0 - no API debugging is forcibly enabled
eRENDERDOC_Option_DebugDeviceMode = 2,
eRENDERDOC_Option_APIValidation = 2,
eRENDERDOC_Option_DebugDeviceMode = 2, // deprecated name of this enum
// Capture CPU callstacks for API events
//
@@ -169,7 +170,7 @@ typedef enum
// the period when a frame capture is in progress.
eRENDERDOC_Option_CaptureAllCmdLists = 10,
// Mute API debugging output when the debug device mode option is enabled
// Mute API debugging output when the API validation mode option is enabled
//
// Default - enabled
//
@@ -461,6 +462,7 @@ typedef enum
{
eRENDERDOC_API_Version_1_0_0 = 10000, // RENDERDOC_API_1_0_0 = 1 00 00
eRENDERDOC_API_Version_1_0_1 = 10001, // RENDERDOC_API_1_0_1 = 1 00 01
eRENDERDOC_API_Version_1_0_2 = 10002, // RENDERDOC_API_1_0_2 = 1 00 02
} RENDERDOC_Version;
// API version changelog:
@@ -468,8 +470,9 @@ typedef enum
// 1.0.0 - initial release
// 1.0.1 - Bugfix: IsFrameCapturing() was returning false for captures that were triggered
// by keypress or TriggerCapture, instead of Start/EndFrameCapture.
// 1.0.2 - Refactor: Renamed eRENDERDOC_Option_DebugDeviceMode to eRENDERDOC_Option_APIValidation
// eRENDERDOC_API_Version_1_0_1
// eRENDERDOC_API_Version_1_0_2
typedef struct
{
pRENDERDOC_GetAPIVersion GetAPIVersion;
@@ -505,9 +508,10 @@ typedef struct
pRENDERDOC_StartFrameCapture StartFrameCapture;
pRENDERDOC_IsFrameCapturing IsFrameCapturing;
pRENDERDOC_EndFrameCapture EndFrameCapture;
} RENDERDOC_API_1_0_1;
} RENDERDOC_API_1_0_2;
typedef RENDERDOC_API_1_0_1 RENDERDOC_API_1_0_0;
typedef RENDERDOC_API_1_0_2 RENDERDOC_API_1_0_0;
typedef RENDERDOC_API_1_0_2 RENDERDOC_API_1_0_1;
//////////////////////////////////////////////////////////////////////////////////////////////////
// RenderDoc API entry point
+1 -1
View File
@@ -37,7 +37,7 @@ struct CaptureOptions
bool32 AllowVSync;
bool32 AllowFullscreen;
bool32 DebugDeviceMode;
bool32 APIValidation;
bool32 CaptureCallstacks;
bool32 CaptureCallstacksOnlyDraws;
uint32_t DelayForDebugger;
+1 -1
View File
@@ -159,7 +159,7 @@ private:
if(m_EnabledHooks)
{
if(!reading && RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(!reading && RenderDoc::Inst().GetCaptureOptions().APIValidation)
{
Flags |= D3D11_CREATE_DEVICE_DEBUG;
}
+1 -1
View File
@@ -1268,7 +1268,7 @@ void WrappedOpenGL::ActivateContext(GLWindowingData winData)
const GLHookSet &gl = m_Real;
if(gl.glDebugMessageCallback && RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(gl.glDebugMessageCallback && RenderDoc::Inst().GetCaptureOptions().APIValidation)
{
gl.glDebugMessageCallback(&DebugSnoopStatic, this);
gl.glEnable(eGL_DEBUG_OUTPUT_SYNCHRONOUS);
+2 -2
View File
@@ -647,7 +647,7 @@ GLXContext glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, GLXConte
if(name == GLX_CONTEXT_FLAGS_ARB)
{
if(RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(RenderDoc::Inst().GetCaptureOptions().APIValidation)
val |= GLX_CONTEXT_DEBUG_BIT_ARB;
else
val &= ~GLX_CONTEXT_DEBUG_BIT_ARB;
@@ -662,7 +662,7 @@ GLXContext glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, GLXConte
attribVec.push_back(val);
}
if(!flagsFound && RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(!flagsFound && RenderDoc::Inst().GetCaptureOptions().APIValidation)
{
attribVec.push_back(GLX_CONTEXT_FLAGS_ARB);
attribVec.push_back(GLX_CONTEXT_DEBUG_BIT_ARB);
+2 -2
View File
@@ -474,7 +474,7 @@ class OpenGLHook : LibraryHook
if(name == WGL_CONTEXT_FLAGS_ARB)
{
if(RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(RenderDoc::Inst().GetCaptureOptions().APIValidation)
val |= WGL_CONTEXT_DEBUG_BIT_ARB;
else
val &= ~WGL_CONTEXT_DEBUG_BIT_ARB;
@@ -489,7 +489,7 @@ class OpenGLHook : LibraryHook
attribVec.push_back(val);
}
if(!flagsFound && RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(!flagsFound && RenderDoc::Inst().GetCaptureOptions().APIValidation)
{
attribVec.push_back(WGL_CONTEXT_FLAGS_ARB);
attribVec.push_back(WGL_CONTEXT_DEBUG_BIT_ARB);
+2 -2
View File
@@ -79,14 +79,14 @@ class VulkanHook : LibraryHook
void OptionsUpdated(const char *libName)
{
if(RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(RenderDoc::Inst().GetCaptureOptions().APIValidation)
{
Process::RegisterEnvironmentModification(Process::EnvironmentModification(Process::eEnvModification_AppendPlatform, "VK_INSTANCE_LAYERS", "VK_LAYER_LUNARG_standard_validation"));
Process::RegisterEnvironmentModification(Process::EnvironmentModification(Process::eEnvModification_AppendPlatform, "VK_DEVICE_LAYERS", "VK_LAYER_LUNARG_standard_validation"));
}
else
{
// can't disable if DebugDeviceMode is not set
// can't disable if APIValidation is not set
}
Process::ApplyEnvironmentModification();
@@ -212,7 +212,7 @@ VkResult WrappedVulkan::vkCreateInstance(
for(uint32_t i=0; i < modifiedCreateInfo.enabledExtensionCount; i++)
addedExts[i] = modifiedCreateInfo.ppEnabledExtensionNames[i];
if(RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode)
if(RenderDoc::Inst().GetCaptureOptions().APIValidation)
addedExts[modifiedCreateInfo.enabledExtensionCount++] = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
modifiedCreateInfo.ppEnabledExtensionNames = addedExts;
@@ -256,7 +256,7 @@ VkResult WrappedVulkan::vkCreateInstance(
m_Queue = VK_NULL_HANDLE;
m_InternalCmds.Reset();
if(RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode && ObjDisp(m_Instance)->CreateDebugReportCallbackEXT)
if(RenderDoc::Inst().GetCaptureOptions().APIValidation && ObjDisp(m_Instance)->CreateDebugReportCallbackEXT)
{
VkDebugReportCallbackCreateInfoEXT debugInfo = {};
debugInfo.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT;
+9 -8
View File
@@ -157,19 +157,19 @@ int RENDERDOC_CC SetCaptureOptionF32(RENDERDOC_CaptureOption opt, float val);
uint32_t RENDERDOC_CC GetCaptureOptionU32(RENDERDOC_CaptureOption opt);
float RENDERDOC_CC GetCaptureOptionF32(RENDERDOC_CaptureOption opt);
void RENDERDOC_CC GetAPIVersion_1_0_1(int *major, int *minor, int *patch)
void RENDERDOC_CC GetAPIVersion_1_0_2(int *major, int *minor, int *patch)
{
if(major) *major = 1;
if(minor) *minor = 0;
if(patch) *patch = 1;
if(patch) *patch = 2;
}
RENDERDOC_API_1_0_1 api_1_0_1;
void Init_1_0_1()
RENDERDOC_API_1_0_2 api_1_0_2;
void Init_1_0_2()
{
RENDERDOC_API_1_0_1 &api = api_1_0_1;
RENDERDOC_API_1_0_2 &api = api_1_0_2;
api.GetAPIVersion = &GetAPIVersion_1_0_1;
api.GetAPIVersion = &GetAPIVersion_1_0_2;
api.SetCaptureOptionU32 = &SetCaptureOptionU32;
api.SetCaptureOptionF32 = &SetCaptureOptionF32;
@@ -224,8 +224,9 @@ extern "C" RENDERDOC_API int RENDERDOC_CC RENDERDOC_GetAPI(RENDERDOC_Version ver
ret = 1; \
}
API_VERSION_HANDLE(1_0_0, 1_0_1);
API_VERSION_HANDLE(1_0_1, 1_0_1);
API_VERSION_HANDLE(1_0_0, 1_0_2);
API_VERSION_HANDLE(1_0_1, 1_0_2);
API_VERSION_HANDLE(1_0_2, 1_0_2);
#undef API_VERSION_HANDLE
+9 -9
View File
@@ -41,8 +41,8 @@ int RENDERDOC_CC SetCaptureOptionU32(RENDERDOC_CaptureOption opt, uint32_t val)
case eRENDERDOC_Option_AllowFullscreen:
opts.AllowFullscreen = (val != 0);
break;
case eRENDERDOC_Option_DebugDeviceMode:
opts.DebugDeviceMode = (val != 0);
case eRENDERDOC_Option_APIValidation:
opts.APIValidation = (val != 0);
break;
case eRENDERDOC_Option_CaptureCallstacks:
opts.CaptureCallstacks = (val != 0);
@@ -92,8 +92,8 @@ int RENDERDOC_CC SetCaptureOptionF32(RENDERDOC_CaptureOption opt, float val)
case eRENDERDOC_Option_AllowFullscreen:
opts.AllowFullscreen = (val != 0.0f);
break;
case eRENDERDOC_Option_DebugDeviceMode:
opts.DebugDeviceMode = (val != 0.0f);
case eRENDERDOC_Option_APIValidation:
opts.APIValidation = (val != 0.0f);
break;
case eRENDERDOC_Option_CaptureCallstacks:
opts.CaptureCallstacks = (val != 0.0f);
@@ -139,8 +139,8 @@ uint32_t RENDERDOC_CC GetCaptureOptionU32(RENDERDOC_CaptureOption opt)
return (RenderDoc::Inst().GetCaptureOptions().AllowVSync ? 1 : 0);
case eRENDERDOC_Option_AllowFullscreen:
return (RenderDoc::Inst().GetCaptureOptions().AllowFullscreen ? 1 : 0);
case eRENDERDOC_Option_DebugDeviceMode:
return (RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode ? 1 : 0);
case eRENDERDOC_Option_APIValidation:
return (RenderDoc::Inst().GetCaptureOptions().APIValidation ? 1 : 0);
case eRENDERDOC_Option_CaptureCallstacks:
return (RenderDoc::Inst().GetCaptureOptions().CaptureCallstacks ? 1 : 0);
case eRENDERDOC_Option_CaptureCallstacksOnlyDraws:
@@ -174,8 +174,8 @@ float RENDERDOC_CC GetCaptureOptionF32(RENDERDOC_CaptureOption opt)
return (RenderDoc::Inst().GetCaptureOptions().AllowVSync ? 1.0f : 0.0f);
case eRENDERDOC_Option_AllowFullscreen:
return (RenderDoc::Inst().GetCaptureOptions().AllowFullscreen ? 1.0f : 0.0f);
case eRENDERDOC_Option_DebugDeviceMode:
return (RenderDoc::Inst().GetCaptureOptions().DebugDeviceMode ? 1.0f : 0.0f);
case eRENDERDOC_Option_APIValidation:
return (RenderDoc::Inst().GetCaptureOptions().APIValidation ? 1.0f : 0.0f);
case eRENDERDOC_Option_CaptureCallstacks:
return (RenderDoc::Inst().GetCaptureOptions().CaptureCallstacks ? 1.0f : 0.0f);
case eRENDERDOC_Option_CaptureCallstacksOnlyDraws:
@@ -205,7 +205,7 @@ CaptureOptions::CaptureOptions()
{
AllowVSync = true;
AllowFullscreen = true;
DebugDeviceMode = false;
APIValidation = false;
CaptureCallstacks = false;
CaptureCallstacksOnlyDraws = false;
DelayForDebugger = 0;
+1 -1
View File
@@ -70,7 +70,7 @@ namespace renderdoc
{
public bool AllowVSync;
public bool AllowFullscreen;
public bool DebugDeviceMode;
public bool APIValidation;
public bool CaptureCallstacks;
public bool CaptureCallstacksOnlyDraws;
public UInt32 DelayForDebugger;
+12 -12
View File
@@ -51,7 +51,7 @@
this.label4 = new System.Windows.Forms.Label();
this.CaptureCallstacks = new System.Windows.Forms.CheckBox();
this.CaptureCallstacksOnlyDraws = new System.Windows.Forms.CheckBox();
this.DebugDeviceMode = new System.Windows.Forms.CheckBox();
this.APIValidation = 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();
@@ -275,7 +275,7 @@
this.capOptsFlow.Controls.Add(this.panel3);
this.capOptsFlow.Controls.Add(this.CaptureCallstacks);
this.capOptsFlow.Controls.Add(this.CaptureCallstacksOnlyDraws);
this.capOptsFlow.Controls.Add(this.DebugDeviceMode);
this.capOptsFlow.Controls.Add(this.APIValidation);
this.capOptsFlow.Controls.Add(this.HookIntoChildren);
this.capOptsFlow.Controls.Add(this.SaveAllInitials);
this.capOptsFlow.Controls.Add(this.RefAllResources);
@@ -362,16 +362,16 @@
this.toolTip.SetToolTip(this.CaptureCallstacksOnlyDraws, "Only collect callstacks on \'drawcall\' level api calls");
this.CaptureCallstacksOnlyDraws.UseVisualStyleBackColor = true;
//
// DebugDeviceMode
// APIValidation
//
this.DebugDeviceMode.Location = new System.Drawing.Point(139, 29);
this.DebugDeviceMode.Name = "DebugDeviceMode";
this.DebugDeviceMode.Size = new System.Drawing.Size(130, 20);
this.DebugDeviceMode.TabIndex = 12;
this.DebugDeviceMode.Text = "Create Debug Device";
this.toolTip.SetToolTip(this.DebugDeviceMode, "D3D11: Create a debug device - allows capturing and reading of D3D errors and war" +
"nings");
this.DebugDeviceMode.UseVisualStyleBackColor = true;
this.APIValidation.Location = new System.Drawing.Point(139, 29);
this.APIValidation.Name = "APIValidation";
this.APIValidation.Size = new System.Drawing.Size(130, 20);
this.APIValidation.TabIndex = 12;
this.APIValidation.Text = "Enable API validation";
this.toolTip.SetToolTip(this.APIValidation, "Initialise the graphics API with built-in validation enabled - allows capturing and reading of errors and war" +
"nings generated by the API's own debugging system");
this.APIValidation.UseVisualStyleBackColor = true;
//
// HookIntoChildren
//
@@ -751,7 +751,7 @@
private System.Windows.Forms.Button capture;
private System.Windows.Forms.Button close;
private System.Windows.Forms.CheckBox AllowVSync;
private System.Windows.Forms.CheckBox DebugDeviceMode;
private System.Windows.Forms.CheckBox APIValidation;
private System.Windows.Forms.CheckBox AllowFullscreen;
private System.Windows.Forms.CheckBox CaptureCallstacks;
private System.Windows.Forms.Panel panel3;
+2 -2
View File
@@ -76,7 +76,7 @@ namespace renderdocui.Windows.Dialogs
HookIntoChildren.Checked = settings.Options.HookIntoChildren;
CaptureCallstacks.Checked = settings.Options.CaptureCallstacks;
CaptureCallstacksOnlyDraws.Checked = settings.Options.CaptureCallstacksOnlyDraws;
DebugDeviceMode.Checked = settings.Options.DebugDeviceMode;
APIValidation.Checked = settings.Options.APIValidation;
RefAllResources.Checked = settings.Options.RefAllResources;
SaveAllInitials.Checked = settings.Options.SaveAllInitials;
DelayForDebugger.Value = settings.Options.DelayForDebugger;
@@ -114,7 +114,7 @@ namespace renderdocui.Windows.Dialogs
ret.Options.HookIntoChildren = HookIntoChildren.Checked;
ret.Options.CaptureCallstacks = CaptureCallstacks.Checked;
ret.Options.CaptureCallstacksOnlyDraws = CaptureCallstacksOnlyDraws.Checked;
ret.Options.DebugDeviceMode = DebugDeviceMode.Checked;
ret.Options.APIValidation = APIValidation.Checked;
ret.Options.RefAllResources = RefAllResources.Checked;
ret.Options.SaveAllInitials = SaveAllInitials.Checked;
ret.Options.CaptureAllCmdLists = CaptureAllCmdLists.Checked;