From 640d8aac491964e2c2fc2f1e8cc197ca4dacae5d Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 6 Sep 2014 12:59:29 +0100 Subject: [PATCH] Don't include Present() with others in auto-marker groups --- renderdocui/Code/Core.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/renderdocui/Code/Core.cs b/renderdocui/Code/Core.cs index f35ab6b82..291ba5a4f 100644 --- a/renderdocui/Code/Core.cs +++ b/renderdocui/Code/Core.cs @@ -186,6 +186,10 @@ namespace renderdocui.Code if ((a.flags & DrawcallFlags.Dispatch) != (b.flags & DrawcallFlags.Dispatch)) return false; + // don't group present with anything + if ((a.flags & DrawcallFlags.Present) != (b.flags & DrawcallFlags.Present)) + return false; + // don't group things run on different multithreaded contexts if(a.context != b.context) return false; @@ -281,13 +285,10 @@ namespace renderdocui.Code for (int i = 1; i < draws.Length; i++) { - if (PassEquivalent(draws[i], draws[start]) && i+1 < draws.Length) + if (PassEquivalent(draws[i], draws[start])) continue; - int end = i - 1; - - if (i == draws.Length - 1) - end = i; + int end = i-1; if (end - start < 2 || draws[i].children.Length > 0 || draws[start].children.Length > 0 || @@ -329,6 +330,7 @@ namespace renderdocui.Code mark.name = "Guessed Pass"; + if((draws[end].flags & DrawcallFlags.Dispatch) != 0) mark.name = String.Format("Compute Pass #{0}", computepassID++); else if (maxOutCount == 0) @@ -352,6 +354,9 @@ namespace renderdocui.Code counter++; } + if (start < draws.Length) + ret.Add(draws[start]); + return ret.ToArray(); }