diff mbox

[07/11] drm/i915: also do frontbuffer tracking on pwrites

Message ID 1418054960-1403-8-git-send-email-przanoni@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Paulo Zanoni Dec. 8, 2014, 4:09 p.m. UTC
From: Paulo Zanoni <paulo.r.zanoni@intel.com>

We need this for FBC, and possibly for PSR too.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Daniel Vetter Dec. 8, 2014, 4:55 p.m. UTC | #1
On Mon, Dec 08, 2014 at 02:09:16PM -0200, Paulo Zanoni wrote:
> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
> 
> We need this for FBC, and possibly for PSR too.
> 
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>

Hm, this might fix some cursor update failures if userspace only pwrites
and doesn't follow suite with a cursor ioctl update call. Not sure this
ever happens, but definitely makes sense.
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 7ef12e8..b8c906e 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1117,6 +1117,10 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
>  			ret = i915_gem_phys_pwrite(obj, args, file);
>  		else
>  			ret = i915_gem_shmem_pwrite(dev, obj, args, file);
> +
> +		intel_fb_obj_flush(obj, false, ORIGIN_CPU);
> +	} else {
> +		intel_fb_obj_flush(obj, false, ORIGIN_GTT);
>  	}
>  
>  out:
> -- 
> 2.1.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Rodrigo Vivi Dec. 13, 2014, 1:10 a.m. UTC | #2
wondering if this fixes: https://bugs.freedesktop.org/show_bug.cgi?id=87143

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

On Mon, Dec 8, 2014 at 8:55 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Mon, Dec 08, 2014 at 02:09:16PM -0200, Paulo Zanoni wrote:
>> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
>>
>> We need this for FBC, and possibly for PSR too.
>>
>> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>
> Hm, this might fix some cursor update failures if userspace only pwrites
> and doesn't follow suite with a cursor ioctl update call. Not sure this
> ever happens, but definitely makes sense.
> -Daniel
>
>> ---
>>  drivers/gpu/drm/i915/i915_gem.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>> index 7ef12e8..b8c906e 100644
>> --- a/drivers/gpu/drm/i915/i915_gem.c
>> +++ b/drivers/gpu/drm/i915/i915_gem.c
>> @@ -1117,6 +1117,10 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
>>                       ret = i915_gem_phys_pwrite(obj, args, file);
>>               else
>>                       ret = i915_gem_shmem_pwrite(dev, obj, args, file);
>> +
>> +             intel_fb_obj_flush(obj, false, ORIGIN_CPU);
>> +     } else {
>> +             intel_fb_obj_flush(obj, false, ORIGIN_GTT);
>>       }
>>
>>  out:
>> --
>> 2.1.3
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniel Vetter Dec. 15, 2014, 8:39 a.m. UTC | #3
On Fri, Dec 12, 2014 at 05:10:42PM -0800, Rodrigo Vivi wrote:
> wondering if this fixes: https://bugs.freedesktop.org/show_bug.cgi?id=87143

Next time you digg out a bugzilla please ping it for testing. I've done
thatt now.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 7ef12e8..b8c906e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1117,6 +1117,10 @@  i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
 			ret = i915_gem_phys_pwrite(obj, args, file);
 		else
 			ret = i915_gem_shmem_pwrite(dev, obj, args, file);
+
+		intel_fb_obj_flush(obj, false, ORIGIN_CPU);
+	} else {
+		intel_fb_obj_flush(obj, false, ORIGIN_GTT);
 	}
 
 out: