resources.erase(resource);
for (call = calls.begin(); call != calls.end(); call++) {
- required.insert(*call);
+ required.add(*call);
}
}
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;
}
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;
}
consume("state");
}
-TraceAnalyzer::TraceAnalyzer(TrimFlags trimFlagsOpt = -1):
+TraceAnalyzer::TraceAnalyzer(TrimFlags trimFlagsOpt):
transformFeedbackActive(false),
framebufferObjectActive(false),
insideBeginEnd(false),
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<unsigned> *
+trace::FastCallSet *
TraceAnalyzer::get_required(void)
{
return &required;