summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast_priv.h
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-12-11 14:52:42 -0700
committerBrian Paul <brianp@vmware.com>2009-12-11 14:52:46 -0700
commit2bce5c195f94e2cce8f67c6a8066b0ae408487ce (patch)
tree9fb9aff0eddf7e8f249b0daaa0ad139ebd41f6c4 /src/gallium/drivers/llvmpipe/lp_rast_priv.h
parent24d894e5579bd11fdf294d86834093e353abf4db (diff)
llvmpipe: checkpoint: more thread/queuing changes
Now mapping/unmapping the framebuffer is done by a rasteizer thread rather than the main calling thread.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_rast_priv.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast_priv.h24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast_priv.h b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
index 4ae54ac8c1..ba14fc3675 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast_priv.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
@@ -93,18 +93,6 @@ struct lp_rasterizer
boolean clipped_tile;
boolean check_for_clipped_tiles;
- /** The incoming queue of filled bins to rasterize */
- struct lp_bins_queue *full_bins;
- /** The outgoing queue of emptied bins to return to setup modulee */
- struct lp_bins_queue *empty_bins;
-
- pipe_mutex get_bin_mutex;
-
- /** The bins currently being rasterized by the threads */
- struct lp_bins *curr_bins;
- /** Counter to determine when all threads are done with current bin */
- unsigned release_count;
-
/* Framebuffer stuff
*/
struct pipe_screen *screen;
@@ -122,14 +110,22 @@ struct lp_rasterizer
char clear_stencil;
} state;
+ /** The incoming queue of filled bins to rasterize */
+ struct lp_bins_queue *full_bins;
+ /** The outgoing queue of emptied bins to return to setup modulee */
+ struct lp_bins_queue *empty_bins;
+
+ /** The bins currently being rasterized by the threads */
+ struct lp_bins *curr_bins;
+
/** A task object for each rasterization thread */
struct lp_rasterizer_task tasks[MAX_THREADS];
unsigned num_threads;
pipe_thread threads[MAX_THREADS];
- struct lp_bins *bins;
- boolean write_depth;
+ /** For synchronizing the rasterization threads */
+ pipe_barrier barrier;
};