On Tuesday, November 28, 2017 4:13:20 PM PST Kenneth Graunke wrote: > Growing the batch/state buffer is a lot more dangerous than I thought. > > A number of places emit multiple state buffer sections, and then write > data to the returned pointer, or save a pointer to brw->batch.state.bo > and then use it in relocations. If each call can grow, this can result > in stale map references or stale BO pointers. Furthermore, fences refer > to the old batch BO, and that reference needs to continue working. > > To avoid these woes, we avoid ever swapping the brw->batch.*.bo pointer, > instead exchanging the brw_bo structures in place. That way, stale BO > references are fine - the GEM handle changes, but the brw_bo pointer > doesn't. We also defer the memcpy until a quiescent point, so callers > can write to the returned pointer - which may be in either BO - and > we'll sort it out and combine the two properly in the end. > > Fixes GPU hangs in DiRT Rally.
Jordan and I retested, and it apparently does not fix those hangs. I'm not sure what happened, but this series doesn't appear to help.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev