turnip: add tu_cs_discard_entries
authorChia-I Wu <olvaffe@gmail.com>
Mon, 25 Feb 2019 22:49:34 +0000 (14:49 -0800)
committerChia-I Wu <olvaffe@gmail.com>
Mon, 11 Mar 2019 17:02:13 +0000 (10:02 -0700)
We will start a draw IB at the beginning of a subpass and consume it
at the end of the subpass.  With tu_cs_discard_entries, we can reuse
the same tu_cs for all subpasses.

src/freedreno/vulkan/tu_cs.h

index 24053c0af8830d42d3170ac4087626293b9cbd61..4df7fb806e3046329af0645a79165844716cc828 100644 (file)
@@ -59,6 +59,17 @@ tu_cs_reserve_space(struct tu_device *dev,
 void
 tu_cs_reset(struct tu_device *dev, struct tu_cs *cs);
 
+/**
+ * Discard all entries.  This allows \a cs to be reused while keeping the
+ * existing BOs and command packets intact.
+ */
+static inline void
+tu_cs_discard_entries(struct tu_cs *cs)
+{
+   assert(cs->mode == TU_CS_MODE_GROW);
+   cs->entry_count = 0;
+}
+
 /**
  * Get the size needed for tu_cs_emit_call.
  */