Mesa (master): llvmpipe: Don't use fences when not using threads.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Sat Apr 24 15:14:10 UTC 2010
Module: Mesa
Branch: master
Commit: bd6e9e33501ad4351029d0eb0efa6b83f9f05445
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd6e9e33501ad4351029d0eb0efa6b83f9f05445
Author: José Fonseca <jfonseca at vmware.com>
Date: Sat Apr 24 16:13:04 2010 +0100
llvmpipe: Don't use fences when not using threads.
lp_setup_flush has effect immediately.
---
src/gallium/drivers/llvmpipe/lp_setup.c | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c
index 0dad4c2..194f628 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup.c
@@ -343,20 +343,25 @@ lp_setup_clear( struct lp_setup_context *setup,
struct pipe_fence_handle *
lp_setup_fence( struct lp_setup_context *setup )
{
- struct lp_scene *scene = lp_setup_get_current_scene(setup);
- const unsigned rank = lp_scene_get_num_bins( scene ); /* xxx */
- struct lp_fence *fence = lp_fence_create(rank);
+ if (setup->num_threads == 0) {
+ return NULL;
+ }
+ else {
+ struct lp_scene *scene = lp_setup_get_current_scene(setup);
+ const unsigned rank = lp_scene_get_num_bins( scene ); /* xxx */
+ struct lp_fence *fence = lp_fence_create(rank);
- LP_DBG(DEBUG_SETUP, "%s rank %u\n", __FUNCTION__, rank);
+ LP_DBG(DEBUG_SETUP, "%s rank %u\n", __FUNCTION__, rank);
- set_scene_state( setup, SETUP_ACTIVE );
+ set_scene_state( setup, SETUP_ACTIVE );
- /* insert the fence into all command bins */
- lp_scene_bin_everywhere( scene,
- lp_rast_fence,
- lp_rast_arg_fence(fence) );
+ /* insert the fence into all command bins */
+ lp_scene_bin_everywhere( scene,
+ lp_rast_fence,
+ lp_rast_arg_fence(fence) );
- return (struct pipe_fence_handle *) fence;
+ return (struct pipe_fence_handle *) fence;
+ }
}
More information about the mesa-commit
mailing list