summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/ilo/ilo_cp.c4
-rw-r--r--src/gallium/drivers/ilo/ilo_cp.h11
2 files changed, 15 insertions, 0 deletions
diff --git a/src/gallium/drivers/ilo/ilo_cp.c b/src/gallium/drivers/ilo/ilo_cp.c
index e0e53d91cd7..41473c0f770 100644
--- a/src/gallium/drivers/ilo/ilo_cp.c
+++ b/src/gallium/drivers/ilo/ilo_cp.c
@@ -191,11 +191,15 @@ ilo_cp_exec_bo(struct ilo_cp *cp)
break;
}
+ flags |= cp->one_off_flags;
+
if (likely(do_exec))
err = cp->bo->exec(cp->bo, cp->used * 4, cp->hw_ctx, flags);
else
err = 0;
+ cp->one_off_flags = 0;
+
return err;
}
diff --git a/src/gallium/drivers/ilo/ilo_cp.h b/src/gallium/drivers/ilo/ilo_cp.h
index 8f3bda48267..2ecd8320489 100644
--- a/src/gallium/drivers/ilo/ilo_cp.h
+++ b/src/gallium/drivers/ilo/ilo_cp.h
@@ -61,6 +61,7 @@ struct ilo_cp {
enum ilo_cp_ring ring;
bool no_implicit_flush;
int reserve_for_pre_flush;
+ unsigned one_off_flags;
struct {
ilo_cp_hook_func func;
@@ -179,6 +180,16 @@ ilo_cp_reserve_for_pre_flush(struct ilo_cp *cp, int reserve)
}
/**
+ * Set one-off flags. They will be cleared after flushing.
+ */
+static inline void
+ilo_cp_set_one_off_flags(struct ilo_cp *cp, unsigned flags)
+{
+ cp->one_off_flags |= flags;
+}
+
+
+/**
* Set a command parser hook.
*/
static inline void