diff options
author | Chia-I Wu <[email protected]> | 2013-04-29 07:22:00 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2013-05-01 16:03:44 +0800 |
commit | 440557db4e51fcf15343fef759cc36f1207dc81f (patch) | |
tree | 5a596555ad2d2b939fabcd074833f21a282ad4e6 | |
parent | dd62e7bc02f705c367af37a38f572758a8d1bc37 (diff) |
ilo: allow one-off flags to be specified for CP
It will be used for SOL_RESET on GEN7.
-rw-r--r-- | src/gallium/drivers/ilo/ilo_cp.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/ilo/ilo_cp.h | 11 |
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 |