Re: [igt-dev] [PATCH i-g-t] tests/gem_set_tiling_vs_pwrite: Skip on unknown swizzling

Chris Wilson
2018-10-11T12:49:08Z

Quoting Tvrtko Ursulin (2018-10-11 13:42:31)
>
> On 11/10/2018 13:34, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2018-10-11 13:30:27)
> >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >>
> >> Same as in commit 78071c2fa53d ("igt/gem_tiled_partial_pwrite_pread: Check
> >> for known swizzling"), to be able to compare the bo against the test
> >> pattern we need to skip the test if the swizzling is not compatible.
> >>
> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102575
> >> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> >> ---
> >> Eeek confidence level low - is this correct?
> >
> > Actually this is a slightly more subtle problem,
> > https://patchwork.freedesktop.org/patch/240327/
>
> So assuming your patch is in, this IGT cannot actually work if any
> swizzling is in effect?

With the kernel patch, pwrite is a pure linear write to physical
address, not guaranteeing layout on the gpu (the gpu sees it through the
tile + swizzle combo). So set-tiling no longer affects pwrite and the
test should see identical in/out.

> Or without your patch, it should skip based on
> known_swizzling? Or is even that not enough?

Without the patch, we would need to take swizzling into account and so
skip as we cannot know the swizzling in this case. The test illustrates
that currently we do the swizzling asymmetrically, our API is bust. The
test further illustrates that at times we cannot even know when swizzling
is required (due to L-shape eccentricities and the swizzling changing
within an object) and so the concept of handling swizzling on the API
boundary on behalf of the user is unworkable.
-Chris