summaryrefslogtreecommitdiff
path: root/freedreno/freedreno_ringbuffer.h
diff options
context:
space:
mode:
authorRob Clark <robclark@freedesktop.org>2018-10-08 15:33:02 -0400
committerRob Clark <robclark@freedesktop.org>2018-10-13 17:21:53 -0400
commit33faf339c3de8e70dcef5240f9e88e1e2bde3713 (patch)
tree72d2761f8eca405a7b90ee4a0b9f47472914a401 /freedreno/freedreno_ringbuffer.h
parentbf001648a92c8f5e10d95322f486a346febd2c09 (diff)
downloaddrm-33faf339c3de8e70dcef5240f9e88e1e2bde3713.tar.gz
freedreno/msm: support suballocation for stateobj rb's
Signed-off-by: Rob Clark <robclark@freedesktop.org>
Diffstat (limited to 'freedreno/freedreno_ringbuffer.h')
-rw-r--r--freedreno/freedreno_ringbuffer.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/freedreno/freedreno_ringbuffer.h b/freedreno/freedreno_ringbuffer.h
index c5aebaf2..ad615e8f 100644
--- a/freedreno/freedreno_ringbuffer.h
+++ b/freedreno/freedreno_ringbuffer.h
@@ -46,6 +46,20 @@ enum fd_ringbuffer_flags {
* to a parent ringbuffer.
*/
FD_RINGBUFFER_OBJECT = 0x1,
+
+ /* Hint that the stateobj will be used for streaming state
+ * that is used once or a few times and then discarded.
+ *
+ * For sub-allocation, non streaming stateobj's should be
+ * sub-allocated from a page size buffer, so one long lived
+ * state obj doesn't prevent other pages from being freed.
+ * (Ie. it would be no worse than allocating a page sized
+ * bo for each small non-streaming stateobj).
+ *
+ * But streaming stateobj's could be sub-allocated from a
+ * larger buffer to reduce the alloc/del overhead.
+ */
+ FD_RINGBUFFER_STREAMING = 0x2,
};
struct fd_ringbuffer {