Quoting Daniele Ceraolo Spurio (2019-08-23 03:09:09) > TGL has an improved CS pre-parser that can now pre-fetch commands across > batch boundaries. This improves performances when lots of small batches > are used, but has an impact on self-modifying code. If we want to modify > the content of a batch from another ring/batch, we need to either > guarantee that the memory location is updated before the pre-parser gets > to it or we need to turn the pre-parser off around the modification. > In i915, we use self-modifying code only for GPU relocations. > > The pre-parser fetches across memory synchronization commands as well, > so the only way to guarantee that the writes land before the parser gets > to it is to have more instructions between the sync and the destination > than the parser FIFO depth, which is not an optimal solution. Well, our ABI is that memory is coherent before the breadcrumb of *each* batch. That is a fundamental requirement for our signaling to userspace. Please tell me that there is a context flag to turn this off, or we else we need to emit 32x flushes or whatever it takes. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx