From: Carl Worth Date: Thu, 16 Aug 2012 18:33:45 +0000 (-0700) Subject: trim: Never trim any glBindTexture calls. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=38839b7ee68a63cae3d782368988daabb808bfd1;p=apitrace trim: Never trim any glBindTexture calls. This shouldn't be necessary. I've got a case where trimming out the glBindTexture of an unused texture changes the behavoir, which shouldn't be the case. While I'll still try to track down that bug, this patch provides conservative behavior that hopefully won't break anything. (The only real downside is the potential of an implementation getting confused by a glBindTexture with a value that was not returned by glGenTextures). --- diff --git a/cli/cli_trim.cpp b/cli/cli_trim.cpp index 3302dff..f7bc92b 100644 --- a/cli/cli_trim.cpp +++ b/cli/cli_trim.cpp @@ -456,6 +456,20 @@ class TraceAnalyzer { unlinkAll(ss_target.str()); link(ss_target.str(), ss_texture.str()); + /* FIXME: This really shouldn't be necessary. The effect + * this provide() has is that all glBindTexture calls will + * be preserved in the output trace (never trimmed). Carl + * has a trace ("btr") where a glBindTexture call should + * not be necessary at all, (it's immediately followed + * with a glBindTexture to a different texture and no + * intervening texture-related calls), yet this 'provide' + * makes the difference between a trim_stress test failing + * and passing. + * + * More investigation is necessary, but for now, be + * conservative and don't trim. */ + provide("state", call->no); + return; }