mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
drm/i915: Report the actual swizzling back to userspace
Userspace cares about whether or not swizzling depends on the page address for its direct access into bound objects. Extend the get_tiling ioctl to report the physical swizzling value in addition to the logical swizzling value so that userspace can accurately determine when it is possible for manual detiling. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Akash Goel <akash.goel@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Testcase: igt/gem_tiled_wc Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
c826c44938
commit
70f2f5c704
2 changed files with 7 additions and 0 deletions
|
@ -458,6 +458,7 @@ i915_gem_get_tiling(struct drm_device *dev, void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hide bit 17 from the user -- see comment in i915_gem_set_tiling */
|
/* Hide bit 17 from the user -- see comment in i915_gem_set_tiling */
|
||||||
|
args->phys_swizzle_mode = args->swizzle_mode;
|
||||||
if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_17)
|
if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_17)
|
||||||
args->swizzle_mode = I915_BIT_6_SWIZZLE_9;
|
args->swizzle_mode = I915_BIT_6_SWIZZLE_9;
|
||||||
if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_10_17)
|
if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_10_17)
|
||||||
|
|
|
@ -876,6 +876,12 @@ struct drm_i915_gem_get_tiling {
|
||||||
* mmap mapping.
|
* mmap mapping.
|
||||||
*/
|
*/
|
||||||
__u32 swizzle_mode;
|
__u32 swizzle_mode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returned address bit 6 swizzling required for CPU access through
|
||||||
|
* mmap mapping whilst bound.
|
||||||
|
*/
|
||||||
|
__u32 phys_swizzle_mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct drm_i915_gem_get_aperture {
|
struct drm_i915_gem_get_aperture {
|
||||||
|
|
Loading…
Reference in a new issue