summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe/lp_rast.c
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2010-07-08 15:13:35 +0100
committerJosé Fonseca <[email protected]>2010-07-13 17:23:48 +0100
commit3bd9aedbac79eec16bfe6f5fc6f6a021eebe769a (patch)
treeed8c7d28d1d6c7b8cd33b1c68e3ac996c5b64ea8 /src/gallium/drivers/llvmpipe/lp_rast.c
parent6d17f00600ffca7cb39e6f66277cec018ff2c151 (diff)
llvmpipe: move fences from per-bin to per-thread
Rather than inserting an lp_rast_fence command at the end of each bin, have each rasterizer thread call this function directly once it has run out of work to do on a particular scene. This results in fewer calls to the mutex & related functions, but more importantly makes it easier to recognize empty bins.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_rast.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c
index 1a82dd5694e..1dde327836c 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -815,6 +815,10 @@ rasterize_scene(struct lp_rasterizer_task *task,
}
}
#endif
+
+ if (scene->fence) {
+ lp_rast_fence(task, lp_rast_arg_fence(scene->fence));
+ }
}