]> git.cworth.org Git - fips/blobdiff - eglwrap.c
Cleanup outstanding counters at context change.
[fips] / eglwrap.c
index 43b07babcf049a113a6729a1e41086e41b33a431..73b7a8d39699001dab539a2c54a0875d6120fad0 100644 (file)
--- a/eglwrap.c
+++ b/eglwrap.c
 } while (0);
 
 
+/* Note: We only need to perform a lookup in libEGL.so.1, (not
+ * libGLESv2.so.2). This is because the functions we wrap, (currently
+ * eglSwapBufers, eglGetProcAddress, and eglMakeCurrent), exist only
+ * in libEGL.so.1.
+ */
 static void *
 eglwrap_lookup (char *name)
 {
@@ -72,8 +77,13 @@ eglSwapBuffers (EGLDisplay dpy, EGLSurface surface)
        EGLBoolean ret;
 
        EGLWRAP_DEFER_WITH_RETURN (ret, eglSwapBuffers, dpy, surface);
+
+       metrics_counter_stop ();
+
        metrics_end_frame ();
 
+       metrics_counter_start ();
+
        return ret;
 }
 
@@ -98,9 +108,16 @@ eglMakeCurrent (EGLDisplay display, EGLSurface draw, EGLSurface read,
 {
        EGLBoolean ret;
 
+       metrics_info_fini ();
+
        fips_dispatch_init (FIPS_API_EGL);
 
        EGLWRAP_DEFER_WITH_RETURN (ret, eglMakeCurrent, display, draw, read, context);
 
+       metrics_info_init ();
+
+       metrics_set_current_op (METRICS_OP_SHADER + 0);
+       metrics_counter_start ();
+
        return ret;
 }