Mesa (master): st/egl: Properly convert vrefresh to refresh rate.

Chia-I Wu olv at kemper.freedesktop.org
Sun Feb 21 02:22:29 UTC 2010


Module: Mesa
Branch: master
Commit: dbaa84515318c3cf1d4be67fc10ca3bd6bc00e0f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dbaa84515318c3cf1d4be67fc10ca3bd6bc00e0f

Author: Chia-I Wu <olv at lunarg.com>
Date:   Sun Feb 21 10:11:54 2010 +0800

st/egl: Properly convert vrefresh to refresh rate.

Some kernels have vrefresh = (refresh rate * 1000) while others don't.
Use some heuristics here.

---

 src/gallium/state_trackers/egl/kms/native_kms.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/gallium/state_trackers/egl/kms/native_kms.c b/src/gallium/state_trackers/egl/kms/native_kms.c
index 91cefc5..ee6ab2e 100644
--- a/src/gallium/state_trackers/egl/kms/native_kms.c
+++ b/src/gallium/state_trackers/egl/kms/native_kms.c
@@ -499,7 +499,10 @@ kms_display_get_modes(struct native_display *ndpy,
       kmode->base.desc = kmode->mode.name;
       kmode->base.width = kmode->mode.hdisplay;
       kmode->base.height = kmode->mode.vdisplay;
-      kmode->base.refresh_rate = kmode->mode.vrefresh / 1000;
+      kmode->base.refresh_rate = kmode->mode.vrefresh;
+      /* not all kernels have vrefresh = refresh_rate * 1000 */
+      if (kmode->base.refresh_rate > 1000)
+         kmode->base.refresh_rate = (kmode->base.refresh_rate + 500) / 1000;
    }
 
    nmodes_return = malloc(count * sizeof(*nmodes_return));




More information about the mesa-commit mailing list