]> git.cworth.org Git - apitrace/blobdiff - retrace/glretrace.py
CPU Profiling now includes all OpenGL calls (was only draw calls).
[apitrace] / retrace / glretrace.py
index 8864296868ef9c924a2caef09af94b751263cad8..6c73e697d9128f3947b50d5be712f30916dbd7bb 100644 (file)
@@ -299,7 +299,9 @@ class GlRetracer(Retracer):
         )
 
         if function.name in ('glUseProgram', 'glUseProgramObjectARB'):
-            print r'    glretrace::setActiveProgram((call.arg(0)).toUInt());'
+            print r'    if (glretrace::currentContext) {'
+            print r'        glretrace::currentContext->activeProgram = call.arg(0).toUInt();'
+            print r'    }'
 
         # Only profile if not inside a list as the queries get inserted into list
         if function.name == 'glNewList':
@@ -308,9 +310,12 @@ class GlRetracer(Retracer):
         if function.name == 'glEndList':
             print r'    glretrace::insideList = false;'
 
-        if profileDraw and function.name != 'glEnd':
+        if function.name != 'glEnd':
             print r'    if (!glretrace::insideList && !glretrace::insideGlBeginEnd && retrace::profiling) {'
-            print r'        glretrace::beginProfile(call);'
+            if profileDraw:
+                print r'        glretrace::beginProfile(call, true);'
+            else:
+                print r'        glretrace::beginProfile(call, false);'
             print r'    }'
 
         if function.name == 'glCreateShaderProgramv':
@@ -347,10 +352,12 @@ class GlRetracer(Retracer):
         if function.name == "glBegin":
             print '    glretrace::insideGlBeginEnd = true;'
 
-        if profileDraw or function.name == 'glEnd':
-            print r'    if (!glretrace::insideList && !glretrace::insideGlBeginEnd && retrace::profiling) {'
-            print r'        glretrace::endProfile(call);'
-            print r'    }'
+        print r'    if (!glretrace::insideList && !glretrace::insideGlBeginEnd && retrace::profiling) {'
+        if profileDraw:
+            print r'        glretrace::endProfile(call, true);'
+        else:
+            print r'        glretrace::endProfile(call, false);'
+        print r'    }'
 
         # Error checking
         if function.name.startswith('gl'):