drm/i915/gem: Only revoke the GGTT mmappings on aperture detiling changes
Only a GGTT mmapping will use the aperture detiling registers, so on a tiling change for an object, we only need to revoke those mmappings and not the CPU mmappings (which are always linear irrespective of the tiling). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200702163623.6402-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
7801f3b792
commit
cb2baf42dc
@ -448,7 +448,7 @@ void __i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj)
|
||||
* mapping will then trigger a page fault on the next user access, allowing
|
||||
* fixup by vm_fault_gtt().
|
||||
*/
|
||||
static void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj)
|
||||
void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(obj->base.dev);
|
||||
intel_wakeref_t wakeref;
|
||||
|
@ -24,8 +24,11 @@ int i915_gem_dumb_mmap_offset(struct drm_file *file_priv,
|
||||
struct drm_device *dev,
|
||||
u32 handle, u64 *offset);
|
||||
|
||||
void __i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj);
|
||||
void i915_gem_object_release_mmap(struct drm_i915_gem_object *obj);
|
||||
|
||||
void __i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj);
|
||||
void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj);
|
||||
|
||||
void i915_gem_object_release_mmap_offset(struct drm_i915_gem_object *obj);
|
||||
|
||||
#endif
|
||||
|
@ -299,7 +299,7 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj,
|
||||
i915_gem_object_unlock(obj);
|
||||
|
||||
/* Force the fence to be reacquired for GTT access */
|
||||
i915_gem_object_release_mmap(obj);
|
||||
i915_gem_object_release_mmap_gtt(obj);
|
||||
|
||||
/* Try to preallocate memory required to save swizzling on put-pages */
|
||||
if (i915_gem_object_needs_bit17_swizzle(obj)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user