On Sat, Dec 28, 2013 at 01:31:49PM -0800, Ben Widawsky wrote: > The initialized flag is used to specify a context has been initialized > and it's context is safe to load, ie. the 3d state is setup properly. > With full PPGTT, we emit the address space loads during context switch > and this currently marks a context as initialized. With full PPGTT > patches, if a client first emits a batch to !RCS, then later, RCS, the > code will mistake the context as initialized and try to reload an > uninitialized context. > > 1. context 1 blit // context initialized +context marked as initialised > 2. context 2 <X operation> // saves context 1 random state > 3. context 1 render // loads random state from step 2 Note that step 2 is not required since the tracking is per-ring. > It is really easy to hit this with a planned upcoming patch which makes > default context reuse possible. > > NOTE: This should only effect full PPGTT branches, ie. current > drm-intel-nightly. Though we did postulate that mesa could hit this in a pathological scenario with a freshly created context. > Thanks to Chris for helping me track this down. > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx