xf86-video-intel: 2 commits - src/sna/kgem.c src/sna/kgem.h src/sna/sna_accel.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Dec 9 16:00:10 PST 2011
src/sna/kgem.c | 2 +-
src/sna/kgem.h | 1 +
src/sna/sna_accel.c | 15 ++++++++-------
3 files changed, 10 insertions(+), 8 deletions(-)
New commits:
commit 22d9bc0bc1ccd869ebcc93f9a57efc8a85840cb8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Dec 9 23:48:11 2011 +0000
sna: Use a single definition for the inactive cache timeout
And share it between the timer and the expiration function, just to
simplify the code.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index efe1c35..1c9da8e 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1159,7 +1159,7 @@ bool kgem_expire_cache(struct kgem *kgem)
list_for_each_entry(bo, &kgem->inactive[i], list) {
assert(bo->purged);
if (bo->delta) {
- expire = now - 5;
+ expire = now - MAX_INACTIVE_TIME;
break;
}
diff --git a/src/sna/kgem.h b/src/sna/kgem.h
index 59e64cf..14faa70 100644
--- a/src/sna/kgem.h
+++ b/src/sna/kgem.h
@@ -347,6 +347,7 @@ struct kgem_bo *kgem_create_buffer(struct kgem *kgem,
void kgem_buffer_read_sync(struct kgem *kgem, struct kgem_bo *bo);
void kgem_throttle(struct kgem *kgem);
+#define MAX_INACTIVE_TIME 10
bool kgem_expire_cache(struct kgem *kgem);
void kgem_cleanup_cache(struct kgem *kgem);
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index e4d6ffb..db22507 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -8474,13 +8474,9 @@ static Bool sna_accel_do_expire(struct sna *sna)
if (sna->timer[EXPIRE_TIMER] == -1)
return TRUE;
- /* Initial expiration after 5s. */
- to.it_value.tv_sec = 5;
- to.it_value.tv_nsec = 0;
-
- /* Then periodic update every 10s.*/
- to.it_interval.tv_sec = 10;
+ to.it_interval.tv_sec = MAX_INACTIVE_TIME;
to.it_interval.tv_nsec = 0;
+ to.it_value = to.it_interval;
timerfd_settime(sna->timer[EXPIRE_TIMER], 0, &to, NULL);
sna->timer_active |= 1 << EXPIRE_TIMER;
commit eb3e04d960cd749adf696ba15c501a17cd1a184e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Dec 9 23:36:56 2011 +0000
sna: Fallback to ordinary monotonic clock if coarse is not supported
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index b6a5626..e4d6ffb 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -8513,11 +8513,16 @@ static void sna_accel_create_timers(struct sna *sna)
{
int id;
+ /* XXX Can we replace this with OSTimer provided by dix? */
+
#ifdef CLOCK_MONOTONIC_COARSE
for (id = 0; id < NUM_FINE_TIMERS; id++)
sna->timer[id] = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
- for (; id < NUM_TIMERS; id++)
+ for (; id < NUM_TIMERS; id++) {
sna->timer[id] = timerfd_create(CLOCK_MONOTONIC_COARSE, TFD_NONBLOCK);
+ if (sna->timer[id] == -1)
+ sna->timer[id] = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
+ }
#else
for (id = 0; id < NUM_TIMERS; id++)
sna->timer[id] = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
More information about the xorg-commit
mailing list