[3/3] drm/i915: Return correct size for rotated views
diff mbox

Message ID 1435060663-13621-3-git-send-email-tvrtko.ursulin@linux.intel.com
State New
Headers show

Commit Message

Tvrtko Ursulin June 23, 2015, 11:57 a.m. UTC
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Currently object size is returned for the rotated VMA size which can be
bigger than the rotated view itself. Since the binding code pads all
excess size with scratch pages the only minor issue with this is wasting
some GGTT space, but still feels nicer to fix and report the real size.

v2: Rebase for tracking size in bytes instead of pages.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Joonas Lahtinen June 24, 2015, 9:04 a.m. UTC | #1
On ti, 2015-06-23 at 12:57 +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Currently object size is returned for the rotated VMA size which can be
> bigger than the rotated view itself. Since the binding code pads all
> excess size with scratch pages the only minor issue with this is wasting
> some GGTT space, but still feels nicer to fix and report the real size.
> 
> v2: Rebase for tracking size in bytes instead of pages.
> 

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 9777ef4..1a54565 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2899,9 +2899,10 @@ size_t
>  i915_ggtt_view_size(struct drm_i915_gem_object *obj,
>  		    const struct i915_ggtt_view *view)
>  {
> -	if (view->type == I915_GGTT_VIEW_NORMAL ||
> -	    view->type == I915_GGTT_VIEW_ROTATED) {
> +	if (view->type == I915_GGTT_VIEW_NORMAL) {
>  		return obj->base.size;
> +	} else if (view->type == I915_GGTT_VIEW_ROTATED) {
> +		return view->rotation_info.size;
>  	} else if (view->type == I915_GGTT_VIEW_PARTIAL) {
>  		return view->params.partial.size << PAGE_SHIFT;
>  	} else {
Daniel Vetter June 24, 2015, 10:36 a.m. UTC | #2
On Wed, Jun 24, 2015 at 12:04:58PM +0300, Joonas Lahtinen wrote:
> On ti, 2015-06-23 at 12:57 +0100, Tvrtko Ursulin wrote:
> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > 
> > Currently object size is returned for the rotated VMA size which can be
> > bigger than the rotated view itself. Since the binding code pads all
> > excess size with scratch pages the only minor issue with this is wasting
> > some GGTT space, but still feels nicer to fix and report the real size.
> > 
> > v2: Rebase for tracking size in bytes instead of pages.
> > 
> 
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

All three merged to dinq, thanks.
-Daniel

> 
> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_gem_gtt.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > index 9777ef4..1a54565 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > @@ -2899,9 +2899,10 @@ size_t
> >  i915_ggtt_view_size(struct drm_i915_gem_object *obj,
> >  		    const struct i915_ggtt_view *view)
> >  {
> > -	if (view->type == I915_GGTT_VIEW_NORMAL ||
> > -	    view->type == I915_GGTT_VIEW_ROTATED) {
> > +	if (view->type == I915_GGTT_VIEW_NORMAL) {
> >  		return obj->base.size;
> > +	} else if (view->type == I915_GGTT_VIEW_ROTATED) {
> > +		return view->rotation_info.size;
> >  	} else if (view->type == I915_GGTT_VIEW_PARTIAL) {
> >  		return view->params.partial.size << PAGE_SHIFT;
> >  	} else {
> 
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Patch
diff mbox

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 9777ef4..1a54565 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2899,9 +2899,10 @@  size_t
 i915_ggtt_view_size(struct drm_i915_gem_object *obj,
 		    const struct i915_ggtt_view *view)
 {
-	if (view->type == I915_GGTT_VIEW_NORMAL ||
-	    view->type == I915_GGTT_VIEW_ROTATED) {
+	if (view->type == I915_GGTT_VIEW_NORMAL) {
 		return obj->base.size;
+	} else if (view->type == I915_GGTT_VIEW_ROTATED) {
+		return view->rotation_info.size;
 	} else if (view->type == I915_GGTT_VIEW_PARTIAL) {
 		return view->params.partial.size << PAGE_SHIFT;
 	} else {