summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_scene.c22
-rw-r--r--src/gallium/drivers/llvmpipe/lp_scene.h2
2 files changed, 24 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_scene.c b/src/gallium/drivers/llvmpipe/lp_scene.c
index 774a1fecd7..70d5847d8e 100644
--- a/src/gallium/drivers/llvmpipe/lp_scene.c
+++ b/src/gallium/drivers/llvmpipe/lp_scene.c
@@ -67,6 +67,28 @@ lp_scene_init(struct lp_scene *scene)
/**
+ * Check if the scene's bins are all empty.
+ * For debugging purposes.
+ */
+boolean
+lp_scene_is_empty(struct lp_scene *scene )
+{
+ unsigned x, y;
+
+ for (y = 0; y < TILES_Y; y++) {
+ for (x = 0; x < TILES_X; x++) {
+ const struct cmd_bin *bin = lp_scene_get_bin(scene, x, y);
+ const struct cmd_block_list *list = &bin->commands;
+ if (list->head != list->tail || list->head->count > 0) {
+ return FALSE;
+ }
+ }
+ }
+ return TRUE;
+}
+
+
+/**
* Set scene to empty state.
*/
void
diff --git a/src/gallium/drivers/llvmpipe/lp_scene.h b/src/gallium/drivers/llvmpipe/lp_scene.h
index 796fc516cc..7255727785 100644
--- a/src/gallium/drivers/llvmpipe/lp_scene.h
+++ b/src/gallium/drivers/llvmpipe/lp_scene.h
@@ -133,6 +133,8 @@ void lp_scene_destroy(struct lp_scene *scene);
void lp_scene_init(struct lp_scene *scene);
+boolean lp_scene_is_empty(struct lp_scene *scene );
+
void lp_scene_reset(struct lp_scene *scene );
void lp_scene_free_bin_data(struct lp_scene *scene);