mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-14 14:01:06 +00:00
Enable SPIR-V External Disassembler Tool
- Added the ability to select an external SPIR-V disassembler and to use it for editing any of the shaders in the pipeline. Tested with SPIRV-Cross (https://github.com/KhronosGroup/SPIRV-Cross) Fragment, Vertex, Geometry, Compute shaders
This commit is contained in:
committed by
Baldur Karlsson
parent
2c9de11a89
commit
eaa85bf1fa
@@ -120,6 +120,52 @@ namespace renderdocui.Code
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class ExternalDisassembler
|
||||
{
|
||||
//indicates to the system that this placeholder points to the SPIR-V binary
|
||||
[NonSerialized]
|
||||
public static readonly string SPV_BIN_TAG = "{spv_bin}";
|
||||
//indicates to the system that this placeholder points to the disassembled SPIR-V
|
||||
[NonSerialized]
|
||||
public static readonly string SPV_DISAS_TAG = "{spv_disas}";
|
||||
//The TAGs below are for future usage to help identify in the argument list,
|
||||
//the shader entry point and the shader stage (for flexibility)
|
||||
[NonSerialized]
|
||||
public static readonly string SPV_ENTRY_POINT_TAG = "{spv_entry_point}";
|
||||
[NonSerialized]
|
||||
public static readonly string SPV_SHADER_STAGE_TAG = "{spv_shader_stage}";
|
||||
|
||||
public ExternalDisassembler(uint id, string name,
|
||||
string executable, string args)
|
||||
{
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.executable = executable;
|
||||
this.args = args;
|
||||
}
|
||||
|
||||
protected ExternalDisassembler()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public uint id { get; set; }
|
||||
public string name { get; set; }
|
||||
public string executable { get; set; }
|
||||
public string args { get; set; }
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj.GetType() == typeof(ExternalDisassembler) && id == ((ExternalDisassembler)obj).id;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return GetType().GetHashCode() ^ id.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class PersistantConfig
|
||||
{
|
||||
@@ -135,6 +181,36 @@ namespace renderdocui.Code
|
||||
public string TemporaryCaptureDirectory = "";
|
||||
public string DefaultCaptureSaveDirectory = "";
|
||||
|
||||
//The list should contain all the pre-configured, external, SPIR-V disassemblers
|
||||
[XmlIgnore] // not directly serializable
|
||||
private Dictionary<int, ExternalDisassembler> ExternalDisassemblers = new Dictionary<int, ExternalDisassembler>();
|
||||
public List<SerializableKeyValuePair<int, ExternalDisassembler>> ExternalDisassemblersValues = new List<SerializableKeyValuePair<int, ExternalDisassembler>>();
|
||||
public bool ExternalDisassemblerEnabled = false;
|
||||
|
||||
public void SetExternalDisassemblers(int id, ExternalDisassembler value)
|
||||
{
|
||||
ExternalDisassemblers[id] = value;
|
||||
}
|
||||
|
||||
public ExternalDisassembler GetExternalDisassembler(int id)
|
||||
{
|
||||
if (ExternalDisassemblers.ContainsKey(id))
|
||||
return ExternalDisassemblers[id];
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//the default disassembler is at 0
|
||||
public ExternalDisassembler GetDefaultExternalDisassembler()
|
||||
{
|
||||
if(!ExternalDisassemblers.ContainsKey(0))
|
||||
{
|
||||
//Add default external disassembler at key 0
|
||||
ExternalDisassemblers.Add(0, new ExternalDisassembler(0, "SPIRV-Cross", "", ""));
|
||||
}
|
||||
return ExternalDisassemblers[0];
|
||||
}
|
||||
|
||||
public bool TextureViewer_ResetRange = false;
|
||||
public bool TextureViewer_PerTexSettings = true;
|
||||
public bool ShaderViewer_FriendlyNaming = true;
|
||||
@@ -261,6 +337,11 @@ namespace renderdocui.Code
|
||||
foreach (var kv in ConfigSettings)
|
||||
ConfigSettingsValues.Add(new SerializableKeyValuePair<string, string>(kv.Key, kv.Value));
|
||||
|
||||
//external disassemblers
|
||||
ExternalDisassemblersValues.Clear();
|
||||
foreach (var kv in ExternalDisassemblers)
|
||||
ExternalDisassemblersValues.Add(new SerializableKeyValuePair<int, ExternalDisassembler>(kv.Key, kv.Value));
|
||||
|
||||
XmlSerializer xs = new XmlSerializer(this.GetType());
|
||||
StreamWriter writer = File.CreateText(file);
|
||||
xs.Serialize(writer, this);
|
||||
@@ -290,6 +371,15 @@ namespace renderdocui.Code
|
||||
}
|
||||
}
|
||||
|
||||
//external disassemblers
|
||||
foreach (var kv in c.ExternalDisassemblersValues)
|
||||
{
|
||||
if (kv.Key >= 0 && kv.Value != null)
|
||||
{
|
||||
c.SetExternalDisassemblers(kv.Key, kv.Value);
|
||||
}
|
||||
}
|
||||
|
||||
// localhost should always be available
|
||||
bool foundLocalhost = false;
|
||||
|
||||
|
||||
+196
-50
@@ -42,9 +42,9 @@
|
||||
System.Windows.Forms.Label label5;
|
||||
System.Windows.Forms.Label label7;
|
||||
System.Windows.Forms.Label label3;
|
||||
System.Windows.Forms.Label label11;
|
||||
System.Windows.Forms.Label label15;
|
||||
System.Windows.Forms.Label label18;
|
||||
System.Windows.Forms.Label label11;
|
||||
System.Windows.Forms.TableLayoutPanel tableLayoutPanel6;
|
||||
System.Windows.Forms.Label label19;
|
||||
System.Windows.Forms.GroupBox groupBox2;
|
||||
@@ -57,9 +57,6 @@
|
||||
System.Windows.Forms.Label label16;
|
||||
System.Windows.Forms.Label label17;
|
||||
TreelistView.TreeListColumn treeListColumn3 = ((TreelistView.TreeListColumn)(new TreelistView.TreeListColumn("Section", "Section")));
|
||||
this.ok = new System.Windows.Forms.Button();
|
||||
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.browserCaptureDialog = new System.Windows.Forms.FolderBrowserDialog();
|
||||
this.settingsTabs = new renderdocui.Controls.TablessControl();
|
||||
this.generalTab = new System.Windows.Forms.TabPage();
|
||||
this.AllowGlobalHook = new System.Windows.Forms.CheckBox();
|
||||
@@ -75,6 +72,7 @@
|
||||
this.AlwaysReplayLocally = new System.Windows.Forms.CheckBox();
|
||||
this.browseSaveCaptureDirectory = new System.Windows.Forms.Button();
|
||||
this.saveDirectory = new System.Windows.Forms.TextBox();
|
||||
this.tempDirectory = new System.Windows.Forms.TextBox();
|
||||
this.corePage = new System.Windows.Forms.TabPage();
|
||||
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
||||
this.chooseSearchPaths = new System.Windows.Forms.Button();
|
||||
@@ -84,6 +82,16 @@
|
||||
this.TextureViewer_PerTexSettings = new System.Windows.Forms.CheckBox();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.shadViewTab = new System.Windows.Forms.TabPage();
|
||||
this.groupBox6 = new System.Windows.Forms.GroupBox();
|
||||
this.tableLayoutPanel7 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label23 = new System.Windows.Forms.Label();
|
||||
this.externalDisassemblerEnabledCheckbox = new System.Windows.Forms.CheckBox();
|
||||
this.label21 = new System.Windows.Forms.Label();
|
||||
this.label22 = new System.Windows.Forms.Label();
|
||||
this.externalDisassemblePath = new System.Windows.Forms.TextBox();
|
||||
this.browseExtDisasemble = new System.Windows.Forms.Button();
|
||||
this.externalDisassemblerArgs = new System.Windows.Forms.TextBox();
|
||||
this.label24 = new System.Windows.Forms.Label();
|
||||
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.ShaderViewer_FriendlyNaming = new System.Windows.Forms.CheckBox();
|
||||
this.eventTab = new System.Windows.Forms.TabPage();
|
||||
@@ -93,7 +101,10 @@
|
||||
this.EventBrowser_ApplyColours = new System.Windows.Forms.CheckBox();
|
||||
this.EventBrowser_ColourEventRow = new System.Windows.Forms.CheckBox();
|
||||
this.pagesTree = new TreelistView.TreeListView();
|
||||
this.tempDirectory = new System.Windows.Forms.TextBox();
|
||||
this.ok = new System.Windows.Forms.Button();
|
||||
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.browserCaptureDialog = new System.Windows.Forms.FolderBrowserDialog();
|
||||
this.browseExtDisassembleDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
@@ -106,9 +117,9 @@
|
||||
label5 = new System.Windows.Forms.Label();
|
||||
label7 = new System.Windows.Forms.Label();
|
||||
label3 = new System.Windows.Forms.Label();
|
||||
label11 = new System.Windows.Forms.Label();
|
||||
label15 = new System.Windows.Forms.Label();
|
||||
label18 = new System.Windows.Forms.Label();
|
||||
label11 = new System.Windows.Forms.Label();
|
||||
tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel();
|
||||
label19 = new System.Windows.Forms.Label();
|
||||
groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
@@ -137,6 +148,8 @@
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.shadViewTab.SuspendLayout();
|
||||
groupBox3.SuspendLayout();
|
||||
this.groupBox6.SuspendLayout();
|
||||
this.tableLayoutPanel7.SuspendLayout();
|
||||
this.tableLayoutPanel4.SuspendLayout();
|
||||
this.eventTab.SuspendLayout();
|
||||
groupBox4.SuspendLayout();
|
||||
@@ -161,21 +174,6 @@
|
||||
tableLayoutPanel1.Size = new System.Drawing.Size(537, 451);
|
||||
tableLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// ok
|
||||
//
|
||||
this.ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ok.Location = new System.Drawing.Point(459, 425);
|
||||
this.ok.Name = "ok";
|
||||
this.ok.Size = new System.Drawing.Size(75, 23);
|
||||
this.ok.TabIndex = 100;
|
||||
this.ok.Text = "OK";
|
||||
this.ok.UseVisualStyleBackColor = true;
|
||||
this.ok.Click += new System.EventHandler(this.ok_Click);
|
||||
//
|
||||
// browserCaptureDialog
|
||||
//
|
||||
this.browserCaptureDialog.RootFolder = System.Environment.SpecialFolder.MyComputer;
|
||||
//
|
||||
// settingsTabs
|
||||
//
|
||||
this.settingsTabs.Alignment = System.Windows.Forms.TabAlignment.Left;
|
||||
@@ -538,22 +536,6 @@
|
||||
"ew versions.");
|
||||
this.CheckUpdate_AllowChecks.UseVisualStyleBackColor = true;
|
||||
this.CheckUpdate_AllowChecks.CheckedChanged += new System.EventHandler(this.CheckUpdate_AllowChecks_CheckedChanged);
|
||||
//
|
||||
// label11
|
||||
//
|
||||
label11.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
label11.AutoSize = true;
|
||||
label11.Location = new System.Drawing.Point(3, 162);
|
||||
label11.MinimumSize = new System.Drawing.Size(0, 20);
|
||||
label11.Name = "label11";
|
||||
label11.Size = new System.Drawing.Size(229, 20);
|
||||
label11.TabIndex = 14;
|
||||
label11.Text = "Directory for temporary capture files";
|
||||
label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.toolTip.SetToolTip(label11, "Changes the directory where capture files are saved after being created, until sa" +
|
||||
"ved manually or deleted.\r\n\r\nDefaults to %TEMP%.");
|
||||
//
|
||||
// browseTempCaptureDirectory
|
||||
//
|
||||
@@ -647,6 +629,34 @@
|
||||
"efaults to blank, which follows system default behaviour.");
|
||||
this.saveDirectory.TextChanged += new System.EventHandler(this.saveDirectory_TextChanged);
|
||||
//
|
||||
// label11
|
||||
//
|
||||
label11.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
label11.AutoSize = true;
|
||||
label11.Location = new System.Drawing.Point(3, 162);
|
||||
label11.MinimumSize = new System.Drawing.Size(0, 20);
|
||||
label11.Name = "label11";
|
||||
label11.Size = new System.Drawing.Size(229, 20);
|
||||
label11.TabIndex = 14;
|
||||
label11.Text = "Directory for temporary capture files";
|
||||
label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.toolTip.SetToolTip(label11, "Changes the directory where capture files are saved after being created, until sa" +
|
||||
"ved manually or deleted.\r\n\r\nDefaults to %TEMP%.");
|
||||
//
|
||||
// tempDirectory
|
||||
//
|
||||
this.tempDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tempDirectory.Location = new System.Drawing.Point(3, 185);
|
||||
this.tempDirectory.Name = "tempDirectory";
|
||||
this.tempDirectory.Size = new System.Drawing.Size(229, 20);
|
||||
this.tempDirectory.TabIndex = 24;
|
||||
this.toolTip.SetToolTip(this.tempDirectory, "Changes the directory where capture files are saved after being created, until sa" +
|
||||
"ved manually or deleted.\r\n\r\nDefaults to %TEMP%.");
|
||||
this.tempDirectory.TextChanged += new System.EventHandler(this.tempDirectory_TextChanged);
|
||||
//
|
||||
// corePage
|
||||
//
|
||||
this.corePage.Controls.Add(this.groupBox5);
|
||||
@@ -826,6 +836,7 @@
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
groupBox3.Controls.Add(this.groupBox6);
|
||||
groupBox3.Controls.Add(this.tableLayoutPanel4);
|
||||
groupBox3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
groupBox3.Location = new System.Drawing.Point(3, 3);
|
||||
@@ -834,6 +845,123 @@
|
||||
groupBox3.TabIndex = 0;
|
||||
groupBox3.TabStop = false;
|
||||
groupBox3.Text = "Shader Viewer";
|
||||
//
|
||||
// groupBox6
|
||||
//
|
||||
this.groupBox6.Controls.Add(this.tableLayoutPanel7);
|
||||
this.groupBox6.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.groupBox6.Location = new System.Drawing.Point(3, 60);
|
||||
this.groupBox6.Name = "groupBox6";
|
||||
this.groupBox6.Size = new System.Drawing.Size(331, 166);
|
||||
this.groupBox6.TabIndex = 46;
|
||||
this.groupBox6.TabStop = false;
|
||||
this.groupBox6.Text = "Vulkan";
|
||||
//
|
||||
// tableLayoutPanel7
|
||||
//
|
||||
this.tableLayoutPanel7.ColumnCount = 2;
|
||||
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 80F));
|
||||
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel7.Controls.Add(this.label23, 0, 3);
|
||||
this.tableLayoutPanel7.Controls.Add(this.externalDisassemblerEnabledCheckbox, 1, 0);
|
||||
this.tableLayoutPanel7.Controls.Add(this.label21, 0, 0);
|
||||
this.tableLayoutPanel7.Controls.Add(this.label22, 0, 1);
|
||||
this.tableLayoutPanel7.Controls.Add(this.externalDisassemblePath, 0, 2);
|
||||
this.tableLayoutPanel7.Controls.Add(this.browseExtDisasemble, 1, 2);
|
||||
this.tableLayoutPanel7.Controls.Add(this.externalDisassemblerArgs, 0, 4);
|
||||
this.tableLayoutPanel7.Controls.Add(this.label24, 0, 5);
|
||||
this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel7.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel7.Name = "tableLayoutPanel7";
|
||||
this.tableLayoutPanel7.RowCount = 6;
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel7.Size = new System.Drawing.Size(325, 147);
|
||||
this.tableLayoutPanel7.TabIndex = 0;
|
||||
//
|
||||
// label23
|
||||
//
|
||||
this.label23.AutoSize = true;
|
||||
this.label23.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label23.Location = new System.Drawing.Point(3, 62);
|
||||
this.label23.Name = "label23";
|
||||
this.label23.Size = new System.Drawing.Size(254, 13);
|
||||
this.label23.TabIndex = 50;
|
||||
this.label23.Text = "Specify the command line arguments";
|
||||
//
|
||||
// externalDisassemblerEnabledCheckbox
|
||||
//
|
||||
this.externalDisassemblerEnabledCheckbox.AutoSize = true;
|
||||
this.externalDisassemblerEnabledCheckbox.Location = new System.Drawing.Point(263, 3);
|
||||
this.externalDisassemblerEnabledCheckbox.Name = "externalDisassemblerEnabledCheckbox";
|
||||
this.externalDisassemblerEnabledCheckbox.Size = new System.Drawing.Size(15, 14);
|
||||
this.externalDisassemblerEnabledCheckbox.TabIndex = 44;
|
||||
this.externalDisassemblerEnabledCheckbox.UseVisualStyleBackColor = true;
|
||||
this.externalDisassemblerEnabledCheckbox.CheckedChanged += new System.EventHandler(this.externalDisassemblerEnabledCheckbox_CheckedChanged);
|
||||
//
|
||||
// label21
|
||||
//
|
||||
this.label21.AutoSize = true;
|
||||
this.label21.Location = new System.Drawing.Point(3, 0);
|
||||
this.label21.Name = "label21";
|
||||
this.label21.Size = new System.Drawing.Size(146, 13);
|
||||
this.label21.TabIndex = 45;
|
||||
this.label21.Text = "Vulkan External Disassembler";
|
||||
//
|
||||
// label22
|
||||
//
|
||||
this.label22.AutoSize = true;
|
||||
this.label22.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label22.Location = new System.Drawing.Point(3, 20);
|
||||
this.label22.Name = "label22";
|
||||
this.label22.Size = new System.Drawing.Size(254, 13);
|
||||
this.label22.TabIndex = 49;
|
||||
this.label22.Text = "Select external SPIR-V disassembler executable";
|
||||
//
|
||||
// externalDisassemblePath
|
||||
//
|
||||
this.externalDisassemblePath.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.externalDisassemblePath.Location = new System.Drawing.Point(3, 36);
|
||||
this.externalDisassemblePath.Name = "externalDisassemblePath";
|
||||
this.externalDisassemblePath.ReadOnly = false;
|
||||
this.externalDisassemblePath.Size = new System.Drawing.Size(254, 20);
|
||||
this.externalDisassemblePath.TabIndex = 47;
|
||||
this.externalDisassemblePath.TextChanged += new System.EventHandler(this.externalDisassemblePath_TextChanged);
|
||||
//
|
||||
// browseExtDisasemble
|
||||
//
|
||||
this.browseExtDisasemble.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.browseExtDisasemble.Location = new System.Drawing.Point(263, 36);
|
||||
this.browseExtDisasemble.Name = "browseExtDisasemble";
|
||||
this.browseExtDisasemble.Size = new System.Drawing.Size(57, 23);
|
||||
this.browseExtDisasemble.TabIndex = 48;
|
||||
this.browseExtDisasemble.Text = "Browse";
|
||||
this.browseExtDisasemble.UseVisualStyleBackColor = true;
|
||||
this.browseExtDisasemble.Click += new System.EventHandler(this.browseExtDisasemble_Click);
|
||||
//
|
||||
// externalDisassemblerArgs
|
||||
//
|
||||
this.externalDisassemblerArgs.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.externalDisassemblerArgs.Location = new System.Drawing.Point(3, 78);
|
||||
this.externalDisassemblerArgs.Name = "externalDisassemblerArgs";
|
||||
this.externalDisassemblerArgs.Size = new System.Drawing.Size(254, 20);
|
||||
this.externalDisassemblerArgs.TabIndex = 46;
|
||||
this.externalDisassemblerArgs.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
|
||||
//
|
||||
// label24
|
||||
//
|
||||
this.label24.AutoSize = true;
|
||||
this.label24.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label24.Location = new System.Drawing.Point(3, 101);
|
||||
this.label24.Name = "label24";
|
||||
this.label24.Size = new System.Drawing.Size(254, 46);
|
||||
this.label24.TabIndex = 51;
|
||||
this.label24.Text = "NOTE: Use the {spv_bin} and {spv_disas} tags to indicate to the external disassembler the input SP" +
|
||||
"IR-V binary and the output SPIR-V disassembly respectively.";
|
||||
//
|
||||
// tableLayoutPanel4
|
||||
//
|
||||
@@ -842,13 +970,14 @@
|
||||
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel4.Controls.Add(this.ShaderViewer_FriendlyNaming, 1, 0);
|
||||
this.tableLayoutPanel4.Controls.Add(label12, 0, 0);
|
||||
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
|
||||
this.tableLayoutPanel4.RowCount = 2;
|
||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel4.Size = new System.Drawing.Size(331, 383);
|
||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel4.Size = new System.Drawing.Size(331, 44);
|
||||
this.tableLayoutPanel4.TabIndex = 1;
|
||||
//
|
||||
// ShaderViewer_FriendlyNaming
|
||||
@@ -1049,17 +1178,20 @@
|
||||
this.pagesTree.ViewOptions.ShowPlusMinus = false;
|
||||
this.pagesTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.pagesTree_AfterSelect);
|
||||
//
|
||||
// tempDirectory
|
||||
// ok
|
||||
//
|
||||
this.tempDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tempDirectory.Location = new System.Drawing.Point(3, 185);
|
||||
this.tempDirectory.Name = "tempDirectory";
|
||||
this.tempDirectory.Size = new System.Drawing.Size(229, 20);
|
||||
this.tempDirectory.TabIndex = 24;
|
||||
this.toolTip.SetToolTip(this.tempDirectory, "Changes the directory where capture files are saved after being created, until sa" +
|
||||
"ved manually or deleted.\r\n\r\nDefaults to %TEMP%.");
|
||||
this.tempDirectory.TextChanged += new System.EventHandler(this.tempDirectory_TextChanged);
|
||||
this.ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ok.Location = new System.Drawing.Point(459, 425);
|
||||
this.ok.Name = "ok";
|
||||
this.ok.Size = new System.Drawing.Size(75, 23);
|
||||
this.ok.TabIndex = 100;
|
||||
this.ok.Text = "OK";
|
||||
this.ok.UseVisualStyleBackColor = true;
|
||||
this.ok.Click += new System.EventHandler(this.ok_Click);
|
||||
//
|
||||
// browserCaptureDialog
|
||||
//
|
||||
this.browserCaptureDialog.RootFolder = System.Environment.SpecialFolder.MyComputer;
|
||||
//
|
||||
// SettingsDialog
|
||||
//
|
||||
@@ -1091,6 +1223,9 @@
|
||||
this.tableLayoutPanel3.PerformLayout();
|
||||
this.shadViewTab.ResumeLayout(false);
|
||||
groupBox3.ResumeLayout(false);
|
||||
this.groupBox6.ResumeLayout(false);
|
||||
this.tableLayoutPanel7.ResumeLayout(false);
|
||||
this.tableLayoutPanel7.PerformLayout();
|
||||
this.tableLayoutPanel4.ResumeLayout(false);
|
||||
this.tableLayoutPanel4.PerformLayout();
|
||||
this.eventTab.ResumeLayout(false);
|
||||
@@ -1141,5 +1276,16 @@
|
||||
private System.Windows.Forms.Button browseSaveCaptureDirectory;
|
||||
private System.Windows.Forms.TextBox saveDirectory;
|
||||
private System.Windows.Forms.TextBox tempDirectory;
|
||||
private System.Windows.Forms.CheckBox externalDisassemblerEnabledCheckbox;
|
||||
private System.Windows.Forms.Label label21;
|
||||
private System.Windows.Forms.GroupBox groupBox6;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel7;
|
||||
private System.Windows.Forms.TextBox externalDisassemblerArgs;
|
||||
private System.Windows.Forms.TextBox externalDisassemblePath;
|
||||
private System.Windows.Forms.Button browseExtDisasemble;
|
||||
private System.Windows.Forms.OpenFileDialog browseExtDisassembleDialog;
|
||||
private System.Windows.Forms.Label label23;
|
||||
private System.Windows.Forms.Label label22;
|
||||
private System.Windows.Forms.Label label24;
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,10 @@ namespace renderdocui.Windows.Dialogs
|
||||
saveDirectory.Text = m_Core.Config.DefaultCaptureSaveDirectory;
|
||||
tempDirectory.Text = m_Core.Config.TemporaryCaptureDirectory;
|
||||
|
||||
externalDisassemblerEnabledCheckbox.Checked = m_Core.Config.ExternalDisassemblerEnabled;
|
||||
externalDisassemblerArgs.Text = m_Core.Config.GetDefaultExternalDisassembler().args;
|
||||
externalDisassemblePath.Text = m_Core.Config.GetDefaultExternalDisassembler().executable;
|
||||
|
||||
TextureViewer_ResetRange.Checked = m_Core.Config.TextureViewer_ResetRange;
|
||||
TextureViewer_PerTexSettings.Checked = m_Core.Config.TextureViewer_PerTexSettings;
|
||||
ShaderViewer_FriendlyNaming.Checked = m_Core.Config.ShaderViewer_FriendlyNaming;
|
||||
@@ -337,5 +341,49 @@ namespace renderdocui.Windows.Dialogs
|
||||
if (res == DialogResult.OK)
|
||||
m_Core.Config.SetConfigSetting("shader.debug.searchPaths", String.Join(";", editor.GetItems()));
|
||||
}
|
||||
|
||||
private void browseExtDisasemble_Click(object sender, EventArgs e)
|
||||
{
|
||||
var res = browseExtDisassembleDialog.ShowDialog();
|
||||
|
||||
if (res == DialogResult.Yes || res == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_Core.Config.GetDefaultExternalDisassembler().executable = browseExtDisassembleDialog.FileName;
|
||||
externalDisassemblePath.Text = browseExtDisassembleDialog.FileName;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void externalDisassemblePath_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_Core.Config.GetDefaultExternalDisassembler().executable = externalDisassemblePath.Text;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private void textBox1_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_Core.Config.GetDefaultExternalDisassembler().args = externalDisassemblerArgs.Text;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private void externalDisassemblerEnabledCheckbox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
m_Core.Config.ExternalDisassemblerEnabled = externalDisassemblerEnabledCheckbox.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,12 +123,69 @@
|
||||
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label12.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="tableLayoutPanel2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="tableLayoutPanel2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label20.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label13.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label15.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label18.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label11.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label20.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
@@ -194,73 +251,61 @@ This option overrides that and will always replay locally if the local context i
|
||||
<metadata name="label11.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="tableLayoutPanel6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="tableLayoutPanel6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label19.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label19.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label12.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="browserCaptureDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>102, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tableLayoutPanel6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="tableLayoutPanel6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label19.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label19.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label12.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label12.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
<metadata name="browseExtDisassembleDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>276, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -209,6 +209,7 @@
|
||||
this.showDisabledToolitem = new System.Windows.Forms.ToolStripButton();
|
||||
this.showEmptyToolitem = new System.Windows.Forms.ToolStripButton();
|
||||
this.export = new System.Windows.Forms.ToolStripButton();
|
||||
this.extDisassemblerProgBar = new System.Windows.Forms.ProgressBar();
|
||||
this.stageTabControl = new renderdocui.Controls.TablessControl();
|
||||
this.tabIA = new System.Windows.Forms.TabPage();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
@@ -529,6 +530,7 @@
|
||||
toolstripTable.Controls.Add(this.pipeFlow, 0, 1);
|
||||
toolstripTable.Controls.Add(this.flowLayoutPanel6, 0, 0);
|
||||
toolstripTable.Controls.Add(this.stageTabControl, 0, 2);
|
||||
toolstripTable.Controls.Add(this.extDisassemblerProgBar, 0, 2);
|
||||
toolstripTable.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
toolstripTable.Location = new System.Drawing.Point(0, 0);
|
||||
toolstripTable.Name = "toolstripTable";
|
||||
@@ -608,7 +610,17 @@
|
||||
this.export.Name = "export";
|
||||
this.export.Size = new System.Drawing.Size(59, 22);
|
||||
this.export.Text = "Export";
|
||||
this.export.Click += new System.EventHandler(this.export_Click);
|
||||
this.export.Click += new System.EventHandler(this.export_Click);
|
||||
//
|
||||
// extDisassemblerProgBar
|
||||
//
|
||||
this.extDisassemblerProgBar.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.extDisassemblerProgBar.Location = new System.Drawing.Point(3, 574);
|
||||
this.extDisassemblerProgBar.Name = "extDisassemblerProgBar";
|
||||
this.extDisassemblerProgBar.Size = new System.Drawing.Size(1106, 23);
|
||||
this.extDisassemblerProgBar.TabIndex = 2;
|
||||
this.extDisassemblerProgBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
|
||||
this.extDisassemblerProgBar.Visible = false;
|
||||
//
|
||||
// stageTabControl
|
||||
//
|
||||
@@ -3985,5 +3997,6 @@
|
||||
private System.Windows.Forms.PictureBox gsShaderSave;
|
||||
private System.Windows.Forms.PictureBox psShaderSave;
|
||||
private System.Windows.Forms.PictureBox csShaderSave;
|
||||
private System.Windows.Forms.ProgressBar extDisassemblerProgBar;
|
||||
}
|
||||
}
|
||||
@@ -2231,10 +2231,158 @@ namespace renderdocui.Windows.PipelineState
|
||||
|
||||
var files = new Dictionary<string, string>();
|
||||
|
||||
// use disassembly for now. It's not compilable GLSL but it's better than
|
||||
// starting with a blank canvas
|
||||
files.Add("Disassembly", shaderDetails.Disassembly);
|
||||
if (m_Core.Config.ExternalDisassemblerEnabled)
|
||||
{
|
||||
BackgroundWorker bgWorker = new BackgroundWorker();
|
||||
extDisassemblerProgBar.Visible = true;
|
||||
bgWorker.RunWorkerCompleted += (obj, eventArgs) =>
|
||||
{
|
||||
if((bool)eventArgs.Result == true)
|
||||
{
|
||||
ShowShaderViewer(stage, files);
|
||||
}
|
||||
extDisassemblerProgBar.Visible = false;
|
||||
};
|
||||
bgWorker.DoWork += (obj, eventArgs) =>
|
||||
{
|
||||
eventArgs.Result = true;
|
||||
|
||||
//try to use the external disassembler to get back the shader source
|
||||
string spv_bin_file = "spv_bin.spv";
|
||||
string spv_disas_file = "spv_disas.txt";
|
||||
|
||||
spv_bin_file = Path.Combine(Path.GetTempPath(), spv_bin_file);
|
||||
spv_disas_file = Path.Combine(Path.GetTempPath(), spv_disas_file);
|
||||
|
||||
//replace the {spv_bin} tag with the correct SPIR-V binary source
|
||||
string args = m_Core.Config.GetDefaultExternalDisassembler().args;
|
||||
if (args.Contains(ExternalDisassembler.SPV_BIN_TAG))
|
||||
{
|
||||
args = args.Replace(ExternalDisassembler.SPV_BIN_TAG, spv_bin_file);
|
||||
|
||||
//write to temp file
|
||||
try
|
||||
{
|
||||
// Open file for reading
|
||||
using (FileStream fileStream =
|
||||
new FileStream(spv_bin_file, FileMode.Create,
|
||||
FileAccess.Write))
|
||||
{
|
||||
// Writes a block of bytes to this stream using data from
|
||||
// a byte array.
|
||||
fileStream.Write(shaderDetails.RawBytes, 0, shaderDetails.RawBytes.Length);
|
||||
|
||||
// close file stream
|
||||
fileStream.Close();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Error
|
||||
MessageBox.Show("Couldn't save SPIR-V binary to file: " + spv_bin_file +
|
||||
Environment.NewLine + ex.ToString(), "Cannot save",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
eventArgs.Result = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Please indicate the " + ExternalDisassembler.SPV_BIN_TAG +
|
||||
" in the arguments list!", "Error disassembling",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
eventArgs.Result = false;
|
||||
}
|
||||
bool useStdout = true;
|
||||
if (args.Contains(ExternalDisassembler.SPV_DISAS_TAG))
|
||||
{
|
||||
args = args.Replace(ExternalDisassembler.SPV_DISAS_TAG, spv_disas_file);
|
||||
useStdout = false;
|
||||
}
|
||||
// else we assume the disassembler will return the result to stdout
|
||||
|
||||
//check if any errors
|
||||
if ((bool)eventArgs.Result == false)
|
||||
return;
|
||||
|
||||
//run the disassembler
|
||||
try
|
||||
{
|
||||
using (System.Diagnostics.Process disassemblerProcess = new System.Diagnostics.Process())
|
||||
{
|
||||
disassemblerProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
||||
//settings up parameters for the install process
|
||||
disassemblerProcess.StartInfo.FileName = m_Core.Config.GetDefaultExternalDisassembler().executable;
|
||||
|
||||
disassemblerProcess.StartInfo.Arguments = args;
|
||||
disassemblerProcess.StartInfo.RedirectStandardOutput = true;
|
||||
disassemblerProcess.StartInfo.UseShellExecute = false;
|
||||
disassemblerProcess.StartInfo.CreateNoWindow = true;
|
||||
|
||||
disassemblerProcess.Start();
|
||||
|
||||
string shaderDisassembly = "";
|
||||
if(useStdout)
|
||||
{
|
||||
StringBuilder q = new StringBuilder();
|
||||
while (!disassemblerProcess.HasExited)
|
||||
{
|
||||
q.Append(disassemblerProcess.StandardOutput.ReadToEnd());
|
||||
}
|
||||
shaderDisassembly = q.ToString();
|
||||
} else
|
||||
{
|
||||
//read from the output file after the process has finished
|
||||
bool ok = disassemblerProcess.WaitForExit(5*1000); //wait for 5 sec max
|
||||
if(ok)
|
||||
{
|
||||
shaderDisassembly = File.ReadAllText(spv_disas_file);
|
||||
}
|
||||
else
|
||||
{
|
||||
eventArgs.Result = false;
|
||||
}
|
||||
}
|
||||
|
||||
files.Add("Disassembly", shaderDisassembly);
|
||||
|
||||
// Check for sucessful completion
|
||||
if (disassemblerProcess.ExitCode != 0)
|
||||
{
|
||||
MessageBox.Show("Error wile running external disassembler: " + m_Core.Config.GetDefaultExternalDisassembler().name +
|
||||
Environment.NewLine + "Return code: " + disassemblerProcess.ExitCode, "Error disassembling",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
eventArgs.Result = false;
|
||||
}
|
||||
}
|
||||
|
||||
//delete the temp files
|
||||
if(File.Exists(spv_bin_file))
|
||||
File.Delete(spv_bin_file);
|
||||
if(File.Exists(spv_disas_file))
|
||||
File.Delete(spv_disas_file);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Error
|
||||
MessageBox.Show("Error using external disassembler: " + m_Core.Config.GetDefaultExternalDisassembler().name +
|
||||
Environment.NewLine + ex.ToString(), "Error disassembling",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
eventArgs.Result = false;
|
||||
}
|
||||
};
|
||||
bgWorker.RunWorkerAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
// use disassembly for now. It's not compilable GLSL but it's better than
|
||||
// starting with a blank canvas
|
||||
files.Add("Disassembly", shaderDetails.Disassembly);
|
||||
ShowShaderViewer(stage, files);
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowShaderViewer(VulkanPipelineState.ShaderStage stage, Dictionary<String, String> files)
|
||||
{
|
||||
VulkanPipelineStateViewer pipeviewer = this;
|
||||
|
||||
ShaderViewer sv = new ShaderViewer(m_Core, false, "main", files,
|
||||
@@ -2253,7 +2401,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
string errs = "";
|
||||
|
||||
ResourceId from = stage.Shader;
|
||||
ResourceId to = r.BuildTargetShader("main", compileSource, shaderDetails.DebugInfo.compileFlags, stage.stage, out errs);
|
||||
ResourceId to = r.BuildTargetShader("main", compileSource, stage.ShaderDetails.DebugInfo.compileFlags, stage.stage, out errs);
|
||||
|
||||
viewer.BeginInvoke((MethodInvoker)delegate { viewer.ShowErrors(errs); });
|
||||
if (to == ResourceId.Null)
|
||||
|
||||
@@ -153,6 +153,30 @@
|
||||
<metadata name="label24.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox42.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label25.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label26.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label15.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label27.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
@@ -171,87 +195,6 @@
|
||||
<metadata name="label32.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox42.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label25.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label26.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="sampleShading.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="frontCCW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label15.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="depthClamp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="rasterizerDiscard.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="label33.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
@@ -261,48 +204,6 @@
|
||||
<metadata name="label36.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="alphaToOne.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthWrite.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="label38.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
@@ -312,6 +213,105 @@
|
||||
<metadata name="label40.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="sampleShading.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="frontCCW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthClamp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="rasterizerDiscard.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="alphaToOne.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthWrite.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVDhPpZNZLwNhGIXdYf6LrVpVKraE1JpqKTU6
|
||||
pdbSuKHtdNVhCI1lXIql9khssQaRuFRLhd8g/oTq8XUSTVChcfFdnvOe93nPlwQg6T/vX+Lo4IQNdCs1
|
||||
Qt1ChfcjdUIGDcvVguXQhJ49BiqhmE0oQX2gSug7aMP0Iwf+2gHjhg6FI7nOPyXQLlUK5n0jJh988D94
|
||||
0brZiCJegTyPNCVmYL5gSrtO6Y6vF9EsVgrRyBMhL8ZDHnFyAScPK9zZKbEVzOeMsvOEfmGvLGC26/s/
|
||||
TAgsoXvXgPF7N8buXWDWG6D05YRzXRJRLBr0nBnKOo+bn0eDLCZDQ9BvqMMEVr96XuXv2qExeucCf8ui
|
||||
ZU2L/CFZWO7MiolFg44jfappvwnWy17MPI2ADzpgPjDCcmTCcNAO7tYOelWDPK/0LcfxWRxbgd7SUGQy
|
||||
LMcmcc+xOyd8N1b4glboV+qisCIyNvPT5G89ILAo9ZwK7dvN4G5s8FwPoCmgBoEVkdkz4oq/9UA1W0KV
|
||||
TxWRyFrolmpBYEWktvQfxXGLRO5LFQzLQWC9ZlvTk3/7aHGLRGBRksG0X8UJVfmnJO++oqk8e7s/KAAA
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="rightclickMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
|
||||
Reference in New Issue
Block a user