[Mesa-dev] [PATCH] glx: make the interval of LIBGL_SHOW_FPS adjustable

Marek Olšák maraeo at gmail.com
Wed Aug 28 03:20:18 PDT 2013


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Aug 28, 2013 at 6:14 AM, Chia-I Wu <olvaffe at gmail.com> wrote:
> LIBGL_SHOW_FPS=1 makes GLX print FPS every second while other values do
> nothing.  Extend it so that LIBGL_SHOW_FPS=N will print the FPS every N
> seconds.
> ---
>  src/glx/dri2_glx.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
> index c54edac..54fc21c 100644
> --- a/src/glx/dri2_glx.c
> +++ b/src/glx/dri2_glx.c
> @@ -95,7 +95,7 @@ struct dri2_screen {
>     void *driver;
>     int fd;
>
> -   Bool show_fps;
> +   int show_fps_interval;
>  };
>
>  struct dri2_context
> @@ -764,6 +764,8 @@ unsigned dri2GetSwapEventType(Display* dpy, XID drawable)
>
>  static void show_fps(struct dri2_drawable *draw)
>  {
> +   const int interval =
> +      ((struct dri2_screen *) draw->base.psc)->show_fps_interval;
>     struct timeval tv;
>     uint64_t current_time;
>
> @@ -772,7 +774,7 @@ static void show_fps(struct dri2_drawable *draw)
>
>     draw->frames++;
>
> -   if (draw->previous_time + 1000000 <= current_time) {
> +   if (draw->previous_time + interval * 1000000 <= current_time) {
>        if (draw->previous_time) {
>           fprintf(stderr, "libGL: FPS = %.1f\n",
>                   ((uint64_t)draw->frames * 1000000) /
> @@ -859,7 +861,7 @@ dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
>                                  target_msc, divisor, remainder);
>      }
>
> -    if (psc->show_fps) {
> +    if (psc->show_fps_interval) {
>         show_fps(priv);
>      }
>
> @@ -1283,7 +1285,9 @@ dri2CreateScreen(int screen, struct glx_display * priv)
>     free(deviceName);
>
>     tmp = getenv("LIBGL_SHOW_FPS");
> -   psc->show_fps = tmp && strcmp(tmp, "1") == 0;
> +   psc->show_fps_interval = (tmp) ? atoi(tmp) : 0;
> +   if (psc->show_fps_interval < 0)
> +      psc->show_fps_interval = 0;
>
>     return &psc->base;
>
> --
> 1.8.4.rc3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list