summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ilo/ilo_builder.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_builder.h')
-rw-r--r--src/gallium/drivers/ilo/ilo_builder.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/drivers/ilo/ilo_builder.h b/src/gallium/drivers/ilo/ilo_builder.h
index 38b1c836840..102f11a1853 100644
--- a/src/gallium/drivers/ilo/ilo_builder.h
+++ b/src/gallium/drivers/ilo/ilo_builder.h
@@ -312,6 +312,23 @@ ilo_builder_dynamic_write(struct ilo_builder *builder,
return offset;
}
+/**
+ * Reserve some space from the top (for prefetches).
+ */
+static inline void
+ilo_builder_dynamic_pad_top(struct ilo_builder *builder, unsigned len)
+{
+ const enum ilo_builder_writer_type which = ILO_BUILDER_WRITER_BATCH;
+ const unsigned size = len << 2;
+ struct ilo_builder_writer *writer = &builder->writers[which];
+
+ if (writer->stolen < size) {
+ ilo_builder_writer_reserve_top(builder, which,
+ 1, size - writer->stolen);
+ writer->stolen = size;
+ }
+}
+
static inline unsigned
ilo_builder_dynamic_used(const struct ilo_builder *builder)
{