[snip]

On Thu, Sep 18, 2014 at 07:58:30AM -0700, Mika Kuoppala wrote:
> @@ -577,7 +596,7 @@ static int do_switch(struct intel_engine_cs *ring,
>               vma->bind_vma(vma, to->legacy_hw_ctx.rcs_state->cache_level, 
> GLOBAL_BIND);
>       }
>  
> -     if (!to->legacy_hw_ctx.initialized || i915_gem_context_is_default(to))
> +     if (!to->initialized || i915_gem_context_is_default(to))
>               hw_flags |= MI_RESTORE_INHIBIT;
>  
>       ret = mi_set_context(ring, to, hw_flags);
> @@ -618,26 +637,19 @@ static int do_switch(struct intel_engine_cs *ring,
>               /* obj is kept alive until the next request by its active ref */
>               i915_gem_object_ggtt_unpin(from->legacy_hw_ctx.rcs_state);
>               i915_gem_context_unreference(from);
> -     }
>  
> -     uninitialized = !to->legacy_hw_ctx.initialized && from == NULL;
> -     to->legacy_hw_ctx.initialized = true;
> +             /* We inherit the state from the previous context */
> +             to->initialized = true;
> +     }

Regarding these two hunks, I may have asked this question before but if
so I've forgotten the answer. Why do we want to set MI_RESTORE_INHIBIT
when switching to the default context? Why do we want to inherit state
from the previous context?

I assumed that when switching to an initialized context we would always
want to restore its last state.

Thanks,
Brad
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to