OSDN Git Service

ilo: allow one-off flags to be specified for CP
authorChia-I Wu <olvaffe@gmail.com>
Sun, 28 Apr 2013 23:22:00 +0000 (07:22 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Wed, 1 May 2013 08:03:44 +0000 (16:03 +0800)
It will be used for SOL_RESET on GEN7.

src/gallium/drivers/ilo/ilo_cp.c
src/gallium/drivers/ilo/ilo_cp.h

index e0e53d9..41473c0 100644 (file)
@@ -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;
 }
 
index 8f3bda4..2ecd832 100644 (file)
@@ -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