projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
llvmpipe, gallivm: implement lod queries (LODQ opcode)
[mesa.git]
/
src
/
gallium
/
drivers
/
llvmpipe
/
lp_fence.c
diff --git
a/src/gallium/drivers/llvmpipe/lp_fence.c
b/src/gallium/drivers/llvmpipe/lp_fence.c
index 3a55e76bc3558e6df028bf368e036f14404edd10..20cd91cd63dadb438d540a2bd608657431de04f8 100644
(file)
--- a/
src/gallium/drivers/llvmpipe/lp_fence.c
+++ b/
src/gallium/drivers/llvmpipe/lp_fence.c
@@
-47,10
+47,13
@@
lp_fence_create(unsigned rank)
static int fence_id;
struct lp_fence *fence = CALLOC_STRUCT(lp_fence);
static int fence_id;
struct lp_fence *fence = CALLOC_STRUCT(lp_fence);
+ if (!fence)
+ return NULL;
+
pipe_reference_init(&fence->reference, 1);
pipe_reference_init(&fence->reference, 1);
-
pipe_mutex_init(fence->mutex
);
-
pipe_condvar_init(
fence->signalled);
+
(void) mtx_init(&fence->mutex, mtx_plain
);
+
cnd_init(&
fence->signalled);
fence->id = fence_id++;
fence->rank = rank;
fence->id = fence_id++;
fence->rank = rank;
@@
-69,8
+72,8
@@
lp_fence_destroy(struct lp_fence *fence)
if (LP_DEBUG & DEBUG_FENCE)
debug_printf("%s %d\n", __FUNCTION__, fence->id);
if (LP_DEBUG & DEBUG_FENCE)
debug_printf("%s %d\n", __FUNCTION__, fence->id);
-
pipe_mutex_destroy(
fence->mutex);
-
pipe_condvar_destroy(
fence->signalled);
+
mtx_destroy(&
fence->mutex);
+
cnd_destroy(&
fence->signalled);
FREE(fence);
}
FREE(fence);
}
@@
-85,7
+88,7
@@
lp_fence_signal(struct lp_fence *fence)
if (LP_DEBUG & DEBUG_FENCE)
debug_printf("%s %d\n", __FUNCTION__, fence->id);
if (LP_DEBUG & DEBUG_FENCE)
debug_printf("%s %d\n", __FUNCTION__, fence->id);
-
pipe_mutex_lock(
fence->mutex);
+
mtx_lock(&
fence->mutex);
fence->count++;
assert(fence->count <= fence->rank);
fence->count++;
assert(fence->count <= fence->rank);
@@
-96,9
+99,9
@@
lp_fence_signal(struct lp_fence *fence)
/* Wakeup all threads waiting on the mutex:
*/
/* Wakeup all threads waiting on the mutex:
*/
-
pipe_condvar_broadcast(
fence->signalled);
+
cnd_broadcast(&
fence->signalled);
-
pipe_mutex_unlock(
fence->mutex);
+
mtx_unlock(&
fence->mutex);
}
boolean
}
boolean
@@
-113,12
+116,12
@@
lp_fence_wait(struct lp_fence *f)
if (LP_DEBUG & DEBUG_FENCE)
debug_printf("%s %d\n", __FUNCTION__, f->id);
if (LP_DEBUG & DEBUG_FENCE)
debug_printf("%s %d\n", __FUNCTION__, f->id);
-
pipe_mutex_lock(
f->mutex);
+
mtx_lock(&
f->mutex);
assert(f->issued);
while (f->count < f->rank) {
assert(f->issued);
while (f->count < f->rank) {
-
pipe_condvar_wait(f->signalled,
f->mutex);
+
cnd_wait(&f->signalled, &
f->mutex);
}
}
-
pipe_mutex_unlock(
f->mutex);
+
mtx_unlock(&
f->mutex);
}
}