Quoting Chris Wilson (2018-07-23 10:02:08) > Our attempt to account for bit17 swizzling of pread/pwrite onto tiled > objects was flawed due to the simple fact that we do not always know the > swizzling for a particular page (due to the swizzling varying based on > location in certain unbalanced configurations). Furthermore, the > pread/pwrite paths are now unbalanced in that we are required to use the > GTT as in some cases we do not have direct CPU access to the backing > physical pages (thus some paths trying to account for the swizzle, but > others neglecting, chaos ensues). > > There are no known users who do use pread/pwrite into a tiled object > (you need to manually detile anyway, so why now just use mmap and avoid > the copy?) and no user bug reports to indicate that it is being used in > the wild. As no one is hitting the buggy path, we can just remove the > buggy code. > > References: fe115628d567 ("drm/i915: Implement pwrite without struct-mutex") > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> gem_tiled_*pread* shows the problem on gdg, where we do have bit17 swizzling but take different paths through pread/pwrite leaving the result incorrectly swizzled ~50% of the time. The easiest way I see to force balance on the universal is to say if the user wants to be stupid (mix pwrite/pread and tiling & swizzling), they must pick up _all_ the pieces (rather than just take responsibility for half the job). No one uses this interface, so punting the entire task to userspace breaks nobody -- with the exception of teaching the igt tests that what they ask cannot be given if !known_swizzling. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx