[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