summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_batch.h
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-04-20 23:28:03 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:06 -0800
commit60d708bb80f0b587b99f87aac4c9faa9ee9c760b (patch)
treeea81b46b831d9a1c3c6cfcfbf6e443e12a8d4ca7 /src/gallium/drivers/iris/iris_batch.h
parentdbd4770397c6c7bd3f1d9c887504f0972d144be6 (diff)
iris: copy over i965's cache tracking
needed to split out vtbl so I can pipe control without ice
Diffstat (limited to 'src/gallium/drivers/iris/iris_batch.h')
-rw-r--r--src/gallium/drivers/iris/iris_batch.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_batch.h b/src/gallium/drivers/iris/iris_batch.h
index 8af1415b649..b58f0836156 100644
--- a/src/gallium/drivers/iris/iris_batch.h
+++ b/src/gallium/drivers/iris/iris_batch.h
@@ -48,6 +48,7 @@ struct iris_batch_buffer {
struct iris_batch {
struct iris_screen *screen;
+ struct iris_vtable *vtbl;
struct pipe_debug_callback *dbg;
/** Current batchbuffer being queued up. */
@@ -72,6 +73,22 @@ struct iris_batch {
/** The amount of aperture space (in bytes) used by all exec_bos */
int aperture_space;
+ struct {
+ /**
+ * Set of struct brw_bo * that have been rendered to within this
+ * batchbuffer and would need flushing before being used from another
+ * cache domain that isn't coherent with it (i.e. the sampler).
+ */
+ struct hash_table *render;
+
+ /**
+ * Set of struct brw_bo * that have been used as a depth buffer within
+ * this batchbuffer and would need flushing before being used from
+ * another cache domain that isn't coherent with it (i.e. the sampler).
+ */
+ struct set *depth;
+ } cache;
+
#if DEBUG
/** Map from batch offset to iris_alloc_state data (with DEBUG_BATCH) */
// XXX: unused
@@ -82,6 +99,7 @@ struct iris_batch {
void iris_init_batch(struct iris_batch *batch,
struct iris_screen *screen,
+ struct iris_vtable *vtbl,
struct pipe_debug_callback *dbg,
uint8_t ring);
void iris_batch_free(struct iris_batch *batch);