From: Chia-I Wu Date: Sun, 28 Apr 2013 23:22:00 +0000 (+0800) Subject: ilo: allow one-off flags to be specified for CP X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=440557db4e51fcf15343fef759cc36f1207dc81f;p=mesa.git ilo: allow one-off flags to be specified for CP It will be used for SOL_RESET on GEN7. --- 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; @@ -178,6 +179,16 @@ ilo_cp_reserve_for_pre_flush(struct ilo_cp *cp, int reserve) cp->reserve_for_pre_flush += 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. */