]> git.cworth.org Git - apitrace/commitdiff
trim: Never trim any glBindTexture calls.
authorCarl Worth <cworth@cworth.org>
Thu, 16 Aug 2012 18:33:45 +0000 (11:33 -0700)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Thu, 22 Nov 2012 08:03:31 +0000 (08:03 +0000)
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).

cli/cli_trim.cpp

index 3302dffc98325fcb64876db0192d16367b6e60e0..f7bc92bacaee63d9fb7fea32e3e8a4bb1e03f54b 100644 (file)
@@ -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;
         }