X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=cli%2Ftrace_analyzer.cpp;h=f98eaa75abb16d0b7acd732563e1c7b699e4e8b2;hb=ec8f5a61f393e75e4c3e3e22f84c773af66810e9;hp=48153f02a50cdd831861dd7c064b0c2899368cd8;hpb=25fe524415ade86b96e5d260134fab7de587b227;p=apitrace diff --git a/cli/trace_analyzer.cpp b/cli/trace_analyzer.cpp index 48153f0..f98eaa7 100644 --- a/cli/trace_analyzer.cpp +++ b/cli/trace_analyzer.cpp @@ -162,7 +162,7 @@ TraceAnalyzer::consume(std::string resource) resources.erase(resource); for (call = calls.begin(); call != calls.end(); call++) { - required.insert(*call); + required.add(*call); } } @@ -271,12 +271,6 @@ TraceAnalyzer::callHasNoSideEffects(trace::Call *call, const char *name) return true; } - /* Similarly, swap-buffers calls don't have interesting side effects. */ - if (call->flags & trace::CALL_FLAG_SWAP_RENDERTARGET && - call->flags & trace::CALL_FLAG_END_FRAME) { - return true; - } - /* Not known as a no-side-effect call. Return false for more analysis. */ return false; } @@ -635,6 +629,13 @@ TraceAnalyzer::recordDrawingSideEffects(trace::Call *call, const char *name) return true; } + /* Though it's not flagged as a "RENDER" operation, we also want + * to trim swapbuffers calls when trimming drawing operations. */ + if (call->flags & trace::CALL_FLAG_SWAP_RENDERTARGET && + call->flags & trace::CALL_FLAG_END_FRAME) { + return true; + } + /* No known drawing-related side effects. Return false for more analysis. */ return false; } @@ -753,13 +754,13 @@ TraceAnalyzer::require(trace::Call *call) requireDependencies(call); /* Then insert this call itself. */ - required.insert(call->no); + required.add(call->no); } /* Return a set of all the required calls, (both those calls added * explicitly with require() and those implicitly depended * upon. */ -std::set * +trace::FastCallSet * TraceAnalyzer::get_required(void) { return &required;