* [PATCH 1/2] drm/rect: Keep the scaled clip bounded
@ 2019-11-20 16:25 Ville Syrjala
2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Ville Syrjala @ 2019-11-20 16:25 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, Benjamin Gaignard
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Limit the scaled clip to only clip at most dst_w/h pixels.
This avoids the problem with clip_scaled() not being able
to return negative values. Since new_src_w/h is now properly
bounded we can remove the clamp()s.
Cc: Benjamin Gaignard <benjamin.gaignard@st.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_rect.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c
index b8363aaa9032..7762b6e9278d 100644
--- a/drivers/gpu/drm/drm_rect.c
+++ b/drivers/gpu/drm/drm_rect.c
@@ -54,7 +54,12 @@ EXPORT_SYMBOL(drm_rect_intersect);
static u32 clip_scaled(u32 src, u32 dst, u32 clip)
{
- u64 tmp = mul_u32_u32(src, dst - clip);
+ u64 tmp;
+
+ /* Only clip what we have. Keeps the result bounded as well. */
+ clip = min(clip, dst);
+
+ tmp = mul_u32_u32(src, dst - clip);
/*
* Round toward 1.0 when clipping so that we don't accidentally
@@ -89,7 +94,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst,
u32 new_src_w = clip_scaled(drm_rect_width(src),
drm_rect_width(dst), diff);
- src->x1 = clamp_t(int64_t, src->x2 - new_src_w, INT_MIN, INT_MAX);
+ src->x1 = src->x2 - new_src_w;
dst->x1 = clip->x1;
}
diff = clip->y1 - dst->y1;
@@ -97,7 +102,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst,
u32 new_src_h = clip_scaled(drm_rect_height(src),
drm_rect_height(dst), diff);
- src->y1 = clamp_t(int64_t, src->y2 - new_src_h, INT_MIN, INT_MAX);
+ src->y1 = src->y2 - new_src_h;
dst->y1 = clip->y1;
}
diff = dst->x2 - clip->x2;
@@ -105,7 +110,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst,
u32 new_src_w = clip_scaled(drm_rect_width(src),
drm_rect_width(dst), diff);
- src->x2 = clamp_t(int64_t, src->x1 + new_src_w, INT_MIN, INT_MAX);
+ src->x2 = src->x1 + new_src_w;
dst->x2 = clip->x2;
}
diff = dst->y2 - clip->y2;
@@ -113,7 +118,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst,
u32 new_src_h = clip_scaled(drm_rect_height(src),
drm_rect_height(dst), diff);
- src->y2 = clamp_t(int64_t, src->y1 + new_src_h, INT_MIN, INT_MAX);
+ src->y2 = src->y1 + new_src_h;
dst->y2 = clip->y2;
}
--
2.23.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Intel-gfx] [PATCH 1/2] drm/rect: Keep the scaled clip bounded 2019-11-20 16:25 [PATCH 1/2] drm/rect: Keep the scaled clip bounded Ville Syrjala @ 2019-11-20 16:25 ` Ville Syrjala 2019-11-20 16:25 ` [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place Ville Syrjala 2019-11-20 22:01 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/rect: Keep the scaled clip bounded Patchwork 2 siblings, 0 replies; 14+ messages in thread From: Ville Syrjala @ 2019-11-20 16:25 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Benjamin Gaignard From: Ville Syrjälä <ville.syrjala@linux.intel.com> Limit the scaled clip to only clip at most dst_w/h pixels. This avoids the problem with clip_scaled() not being able to return negative values. Since new_src_w/h is now properly bounded we can remove the clamp()s. Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_rect.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c index b8363aaa9032..7762b6e9278d 100644 --- a/drivers/gpu/drm/drm_rect.c +++ b/drivers/gpu/drm/drm_rect.c @@ -54,7 +54,12 @@ EXPORT_SYMBOL(drm_rect_intersect); static u32 clip_scaled(u32 src, u32 dst, u32 clip) { - u64 tmp = mul_u32_u32(src, dst - clip); + u64 tmp; + + /* Only clip what we have. Keeps the result bounded as well. */ + clip = min(clip, dst); + + tmp = mul_u32_u32(src, dst - clip); /* * Round toward 1.0 when clipping so that we don't accidentally @@ -89,7 +94,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, u32 new_src_w = clip_scaled(drm_rect_width(src), drm_rect_width(dst), diff); - src->x1 = clamp_t(int64_t, src->x2 - new_src_w, INT_MIN, INT_MAX); + src->x1 = src->x2 - new_src_w; dst->x1 = clip->x1; } diff = clip->y1 - dst->y1; @@ -97,7 +102,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, u32 new_src_h = clip_scaled(drm_rect_height(src), drm_rect_height(dst), diff); - src->y1 = clamp_t(int64_t, src->y2 - new_src_h, INT_MIN, INT_MAX); + src->y1 = src->y2 - new_src_h; dst->y1 = clip->y1; } diff = dst->x2 - clip->x2; @@ -105,7 +110,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, u32 new_src_w = clip_scaled(drm_rect_width(src), drm_rect_width(dst), diff); - src->x2 = clamp_t(int64_t, src->x1 + new_src_w, INT_MIN, INT_MAX); + src->x2 = src->x1 + new_src_w; dst->x2 = clip->x2; } diff = dst->y2 - clip->y2; @@ -113,7 +118,7 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, u32 new_src_h = clip_scaled(drm_rect_height(src), drm_rect_height(dst), diff); - src->y2 = clamp_t(int64_t, src->y1 + new_src_h, INT_MIN, INT_MAX); + src->y2 = src->y1 + new_src_h; dst->y2 = clip->y2; } -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 16:25 [PATCH 1/2] drm/rect: Keep the scaled clip bounded Ville Syrjala 2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala @ 2019-11-20 16:25 ` Ville Syrjala 2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala 2019-11-20 16:43 ` Daniel Vetter 2019-11-20 22:01 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/rect: Keep the scaled clip bounded Patchwork 2 siblings, 2 replies; 14+ messages in thread From: Ville Syrjala @ 2019-11-20 16:25 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Benjamin Gaignard From: Ville Syrjälä <ville.syrjala@linux.intel.com> Now that we've constrained the clipped source rectangle such that it can't have negative dimensions doing the same for the dst rectangle seems appropriate. Should at least result in the clipped src and dst rectangles being a bit more consistent with each other. Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c index 7762b6e9278d..229325fcf333 100644 --- a/drivers/gpu/drm/drm_rect.c +++ b/drivers/gpu/drm/drm_rect.c @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) } EXPORT_SYMBOL(drm_rect_intersect); -static u32 clip_scaled(u32 src, u32 dst, u32 clip) +static u32 clip_scaled(int src, int dst, int *clip) { u64 tmp; /* Only clip what we have. Keeps the result bounded as well. */ - clip = min(clip, dst); + *clip = min(*clip, dst); - tmp = mul_u32_u32(src, dst - clip); + tmp = mul_u32_u32(src, dst - *clip); /* * Round toward 1.0 when clipping so that we don't accidentally @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, diff = clip->x1 - dst->x1; if (diff > 0) { u32 new_src_w = clip_scaled(drm_rect_width(src), - drm_rect_width(dst), diff); + drm_rect_width(dst), &diff); src->x1 = src->x2 - new_src_w; - dst->x1 = clip->x1; + dst->x1 += diff; } diff = clip->y1 - dst->y1; if (diff > 0) { u32 new_src_h = clip_scaled(drm_rect_height(src), - drm_rect_height(dst), diff); + drm_rect_height(dst), &diff); src->y1 = src->y2 - new_src_h; - dst->y1 = clip->y1; + dst->y1 += diff; } diff = dst->x2 - clip->x2; if (diff > 0) { u32 new_src_w = clip_scaled(drm_rect_width(src), - drm_rect_width(dst), diff); + drm_rect_width(dst), &diff); src->x2 = src->x1 + new_src_w; - dst->x2 = clip->x2; + dst->x2 -= diff; } diff = dst->y2 - clip->y2; if (diff > 0) { u32 new_src_h = clip_scaled(drm_rect_height(src), - drm_rect_height(dst), diff); + drm_rect_height(dst), &diff); src->y2 = src->y1 + new_src_h; - dst->y2 = clip->y2; + dst->y2 -= diff; } return drm_rect_visible(dst); -- 2.23.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 16:25 ` [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place Ville Syrjala @ 2019-11-20 16:25 ` Ville Syrjala 2019-11-20 16:43 ` Daniel Vetter 1 sibling, 0 replies; 14+ messages in thread From: Ville Syrjala @ 2019-11-20 16:25 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Benjamin Gaignard From: Ville Syrjälä <ville.syrjala@linux.intel.com> Now that we've constrained the clipped source rectangle such that it can't have negative dimensions doing the same for the dst rectangle seems appropriate. Should at least result in the clipped src and dst rectangles being a bit more consistent with each other. Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c index 7762b6e9278d..229325fcf333 100644 --- a/drivers/gpu/drm/drm_rect.c +++ b/drivers/gpu/drm/drm_rect.c @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) } EXPORT_SYMBOL(drm_rect_intersect); -static u32 clip_scaled(u32 src, u32 dst, u32 clip) +static u32 clip_scaled(int src, int dst, int *clip) { u64 tmp; /* Only clip what we have. Keeps the result bounded as well. */ - clip = min(clip, dst); + *clip = min(*clip, dst); - tmp = mul_u32_u32(src, dst - clip); + tmp = mul_u32_u32(src, dst - *clip); /* * Round toward 1.0 when clipping so that we don't accidentally @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, diff = clip->x1 - dst->x1; if (diff > 0) { u32 new_src_w = clip_scaled(drm_rect_width(src), - drm_rect_width(dst), diff); + drm_rect_width(dst), &diff); src->x1 = src->x2 - new_src_w; - dst->x1 = clip->x1; + dst->x1 += diff; } diff = clip->y1 - dst->y1; if (diff > 0) { u32 new_src_h = clip_scaled(drm_rect_height(src), - drm_rect_height(dst), diff); + drm_rect_height(dst), &diff); src->y1 = src->y2 - new_src_h; - dst->y1 = clip->y1; + dst->y1 += diff; } diff = dst->x2 - clip->x2; if (diff > 0) { u32 new_src_w = clip_scaled(drm_rect_width(src), - drm_rect_width(dst), diff); + drm_rect_width(dst), &diff); src->x2 = src->x1 + new_src_w; - dst->x2 = clip->x2; + dst->x2 -= diff; } diff = dst->y2 - clip->y2; if (diff > 0) { u32 new_src_h = clip_scaled(drm_rect_height(src), - drm_rect_height(dst), diff); + drm_rect_height(dst), &diff); src->y2 = src->y1 + new_src_h; - dst->y2 = clip->y2; + dst->y2 -= diff; } return drm_rect_visible(dst); -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 16:25 ` [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place Ville Syrjala 2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala @ 2019-11-20 16:43 ` Daniel Vetter 2019-11-20 16:43 ` [Intel-gfx] " Daniel Vetter 2019-11-20 17:11 ` Ville Syrjälä 1 sibling, 2 replies; 14+ messages in thread From: Daniel Vetter @ 2019-11-20 16:43 UTC (permalink / raw) To: Ville Syrjala; +Cc: intel-gfx, Benjamin Gaignard, dri-devel On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Now that we've constrained the clipped source rectangle such > that it can't have negative dimensions doing the same for the > dst rectangle seems appropriate. Should at least result in > the clipped src and dst rectangles being a bit more consistent > with each other. > > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> selftests for this stuff? Looks like the prime example, write testcase proving code is busted, fix it, everyone celebrate? -Daniel > --- > drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c > index 7762b6e9278d..229325fcf333 100644 > --- a/drivers/gpu/drm/drm_rect.c > +++ b/drivers/gpu/drm/drm_rect.c > @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) > } > EXPORT_SYMBOL(drm_rect_intersect); > > -static u32 clip_scaled(u32 src, u32 dst, u32 clip) > +static u32 clip_scaled(int src, int dst, int *clip) > { > u64 tmp; > > /* Only clip what we have. Keeps the result bounded as well. */ > - clip = min(clip, dst); > + *clip = min(*clip, dst); > > - tmp = mul_u32_u32(src, dst - clip); > + tmp = mul_u32_u32(src, dst - *clip); > > /* > * Round toward 1.0 when clipping so that we don't accidentally > @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, > diff = clip->x1 - dst->x1; > if (diff > 0) { > u32 new_src_w = clip_scaled(drm_rect_width(src), > - drm_rect_width(dst), diff); > + drm_rect_width(dst), &diff); > > src->x1 = src->x2 - new_src_w; > - dst->x1 = clip->x1; > + dst->x1 += diff; > } > diff = clip->y1 - dst->y1; > if (diff > 0) { > u32 new_src_h = clip_scaled(drm_rect_height(src), > - drm_rect_height(dst), diff); > + drm_rect_height(dst), &diff); > > src->y1 = src->y2 - new_src_h; > - dst->y1 = clip->y1; > + dst->y1 += diff; > } > diff = dst->x2 - clip->x2; > if (diff > 0) { > u32 new_src_w = clip_scaled(drm_rect_width(src), > - drm_rect_width(dst), diff); > + drm_rect_width(dst), &diff); > > src->x2 = src->x1 + new_src_w; > - dst->x2 = clip->x2; > + dst->x2 -= diff; > } > diff = dst->y2 - clip->y2; > if (diff > 0) { > u32 new_src_h = clip_scaled(drm_rect_height(src), > - drm_rect_height(dst), diff); > + drm_rect_height(dst), &diff); > > src->y2 = src->y1 + new_src_h; > - dst->y2 = clip->y2; > + dst->y2 -= diff; > } > > return drm_rect_visible(dst); > -- > 2.23.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 16:43 ` Daniel Vetter @ 2019-11-20 16:43 ` Daniel Vetter 2019-11-20 17:11 ` Ville Syrjälä 1 sibling, 0 replies; 14+ messages in thread From: Daniel Vetter @ 2019-11-20 16:43 UTC (permalink / raw) To: Ville Syrjala; +Cc: intel-gfx, Benjamin Gaignard, dri-devel On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Now that we've constrained the clipped source rectangle such > that it can't have negative dimensions doing the same for the > dst rectangle seems appropriate. Should at least result in > the clipped src and dst rectangles being a bit more consistent > with each other. > > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> selftests for this stuff? Looks like the prime example, write testcase proving code is busted, fix it, everyone celebrate? -Daniel > --- > drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c > index 7762b6e9278d..229325fcf333 100644 > --- a/drivers/gpu/drm/drm_rect.c > +++ b/drivers/gpu/drm/drm_rect.c > @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) > } > EXPORT_SYMBOL(drm_rect_intersect); > > -static u32 clip_scaled(u32 src, u32 dst, u32 clip) > +static u32 clip_scaled(int src, int dst, int *clip) > { > u64 tmp; > > /* Only clip what we have. Keeps the result bounded as well. */ > - clip = min(clip, dst); > + *clip = min(*clip, dst); > > - tmp = mul_u32_u32(src, dst - clip); > + tmp = mul_u32_u32(src, dst - *clip); > > /* > * Round toward 1.0 when clipping so that we don't accidentally > @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, > diff = clip->x1 - dst->x1; > if (diff > 0) { > u32 new_src_w = clip_scaled(drm_rect_width(src), > - drm_rect_width(dst), diff); > + drm_rect_width(dst), &diff); > > src->x1 = src->x2 - new_src_w; > - dst->x1 = clip->x1; > + dst->x1 += diff; > } > diff = clip->y1 - dst->y1; > if (diff > 0) { > u32 new_src_h = clip_scaled(drm_rect_height(src), > - drm_rect_height(dst), diff); > + drm_rect_height(dst), &diff); > > src->y1 = src->y2 - new_src_h; > - dst->y1 = clip->y1; > + dst->y1 += diff; > } > diff = dst->x2 - clip->x2; > if (diff > 0) { > u32 new_src_w = clip_scaled(drm_rect_width(src), > - drm_rect_width(dst), diff); > + drm_rect_width(dst), &diff); > > src->x2 = src->x1 + new_src_w; > - dst->x2 = clip->x2; > + dst->x2 -= diff; > } > diff = dst->y2 - clip->y2; > if (diff > 0) { > u32 new_src_h = clip_scaled(drm_rect_height(src), > - drm_rect_height(dst), diff); > + drm_rect_height(dst), &diff); > > src->y2 = src->y1 + new_src_h; > - dst->y2 = clip->y2; > + dst->y2 -= diff; > } > > return drm_rect_visible(dst); > -- > 2.23.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 16:43 ` Daniel Vetter 2019-11-20 16:43 ` [Intel-gfx] " Daniel Vetter @ 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 17:11 ` Ville Syrjälä ` (2 more replies) 1 sibling, 3 replies; 14+ messages in thread From: Ville Syrjälä @ 2019-11-20 17:11 UTC (permalink / raw) To: Daniel Vetter; +Cc: intel-gfx, Benjamin Gaignard, dri-devel On Wed, Nov 20, 2019 at 05:43:40PM +0100, Daniel Vetter wrote: > On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Now that we've constrained the clipped source rectangle such > > that it can't have negative dimensions doing the same for the > > dst rectangle seems appropriate. Should at least result in > > the clipped src and dst rectangles being a bit more consistent > > with each other. > > > > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > selftests for this stuff? Looks like the prime example, write testcase > proving code is busted, fix it, everyone celebrate? Yeah, seems like a good idea. Though I'll have to figure out if it's actually broken or not ;) Hmm. Ouch. There's seems to be a div by zero lurking in there if dst_w/h == 0. I wonder why nothing has hit that. > -Daniel > > > --- > > drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- > > 1 file changed, 11 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c > > index 7762b6e9278d..229325fcf333 100644 > > --- a/drivers/gpu/drm/drm_rect.c > > +++ b/drivers/gpu/drm/drm_rect.c > > @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) > > } > > EXPORT_SYMBOL(drm_rect_intersect); > > > > -static u32 clip_scaled(u32 src, u32 dst, u32 clip) > > +static u32 clip_scaled(int src, int dst, int *clip) > > { > > u64 tmp; > > > > /* Only clip what we have. Keeps the result bounded as well. */ > > - clip = min(clip, dst); > > + *clip = min(*clip, dst); > > > > - tmp = mul_u32_u32(src, dst - clip); > > + tmp = mul_u32_u32(src, dst - *clip); > > > > /* > > * Round toward 1.0 when clipping so that we don't accidentally > > @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, > > diff = clip->x1 - dst->x1; > > if (diff > 0) { > > u32 new_src_w = clip_scaled(drm_rect_width(src), > > - drm_rect_width(dst), diff); > > + drm_rect_width(dst), &diff); > > > > src->x1 = src->x2 - new_src_w; > > - dst->x1 = clip->x1; > > + dst->x1 += diff; > > } > > diff = clip->y1 - dst->y1; > > if (diff > 0) { > > u32 new_src_h = clip_scaled(drm_rect_height(src), > > - drm_rect_height(dst), diff); > > + drm_rect_height(dst), &diff); > > > > src->y1 = src->y2 - new_src_h; > > - dst->y1 = clip->y1; > > + dst->y1 += diff; > > } > > diff = dst->x2 - clip->x2; > > if (diff > 0) { > > u32 new_src_w = clip_scaled(drm_rect_width(src), > > - drm_rect_width(dst), diff); > > + drm_rect_width(dst), &diff); > > > > src->x2 = src->x1 + new_src_w; > > - dst->x2 = clip->x2; > > + dst->x2 -= diff; > > } > > diff = dst->y2 - clip->y2; > > if (diff > 0) { > > u32 new_src_h = clip_scaled(drm_rect_height(src), > > - drm_rect_height(dst), diff); > > + drm_rect_height(dst), &diff); > > > > src->y2 = src->y1 + new_src_h; > > - dst->y2 = clip->y2; > > + dst->y2 -= diff; > > } > > > > return drm_rect_visible(dst); > > -- > > 2.23.0 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Ville Syrjälä Intel _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 17:11 ` Ville Syrjälä @ 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 19:55 ` Benjamin GAIGNARD 2019-11-22 17:25 ` Ville Syrjälä 2 siblings, 0 replies; 14+ messages in thread From: Ville Syrjälä @ 2019-11-20 17:11 UTC (permalink / raw) To: Daniel Vetter; +Cc: intel-gfx, Benjamin Gaignard, dri-devel On Wed, Nov 20, 2019 at 05:43:40PM +0100, Daniel Vetter wrote: > On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Now that we've constrained the clipped source rectangle such > > that it can't have negative dimensions doing the same for the > > dst rectangle seems appropriate. Should at least result in > > the clipped src and dst rectangles being a bit more consistent > > with each other. > > > > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > selftests for this stuff? Looks like the prime example, write testcase > proving code is busted, fix it, everyone celebrate? Yeah, seems like a good idea. Though I'll have to figure out if it's actually broken or not ;) Hmm. Ouch. There's seems to be a div by zero lurking in there if dst_w/h == 0. I wonder why nothing has hit that. > -Daniel > > > --- > > drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- > > 1 file changed, 11 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c > > index 7762b6e9278d..229325fcf333 100644 > > --- a/drivers/gpu/drm/drm_rect.c > > +++ b/drivers/gpu/drm/drm_rect.c > > @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) > > } > > EXPORT_SYMBOL(drm_rect_intersect); > > > > -static u32 clip_scaled(u32 src, u32 dst, u32 clip) > > +static u32 clip_scaled(int src, int dst, int *clip) > > { > > u64 tmp; > > > > /* Only clip what we have. Keeps the result bounded as well. */ > > - clip = min(clip, dst); > > + *clip = min(*clip, dst); > > > > - tmp = mul_u32_u32(src, dst - clip); > > + tmp = mul_u32_u32(src, dst - *clip); > > > > /* > > * Round toward 1.0 when clipping so that we don't accidentally > > @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, > > diff = clip->x1 - dst->x1; > > if (diff > 0) { > > u32 new_src_w = clip_scaled(drm_rect_width(src), > > - drm_rect_width(dst), diff); > > + drm_rect_width(dst), &diff); > > > > src->x1 = src->x2 - new_src_w; > > - dst->x1 = clip->x1; > > + dst->x1 += diff; > > } > > diff = clip->y1 - dst->y1; > > if (diff > 0) { > > u32 new_src_h = clip_scaled(drm_rect_height(src), > > - drm_rect_height(dst), diff); > > + drm_rect_height(dst), &diff); > > > > src->y1 = src->y2 - new_src_h; > > - dst->y1 = clip->y1; > > + dst->y1 += diff; > > } > > diff = dst->x2 - clip->x2; > > if (diff > 0) { > > u32 new_src_w = clip_scaled(drm_rect_width(src), > > - drm_rect_width(dst), diff); > > + drm_rect_width(dst), &diff); > > > > src->x2 = src->x1 + new_src_w; > > - dst->x2 = clip->x2; > > + dst->x2 -= diff; > > } > > diff = dst->y2 - clip->y2; > > if (diff > 0) { > > u32 new_src_h = clip_scaled(drm_rect_height(src), > > - drm_rect_height(dst), diff); > > + drm_rect_height(dst), &diff); > > > > src->y2 = src->y1 + new_src_h; > > - dst->y2 = clip->y2; > > + dst->y2 -= diff; > > } > > > > return drm_rect_visible(dst); > > -- > > 2.23.0 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 17:11 ` Ville Syrjälä @ 2019-11-20 19:55 ` Benjamin GAIGNARD 2019-11-20 19:55 ` [Intel-gfx] " Benjamin GAIGNARD 2019-11-22 17:25 ` Ville Syrjälä 2 siblings, 1 reply; 14+ messages in thread From: Benjamin GAIGNARD @ 2019-11-20 19:55 UTC (permalink / raw) To: Ville Syrjälä, Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org On 11/20/19 6:11 PM, Ville Syrjälä wrote: > On Wed, Nov 20, 2019 at 05:43:40PM +0100, Daniel Vetter wrote: >> On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: >>> From: Ville Syrjälä <ville.syrjala@linux.intel.com> >>> >>> Now that we've constrained the clipped source rectangle such >>> that it can't have negative dimensions doing the same for the >>> dst rectangle seems appropriate. Should at least result in >>> the clipped src and dst rectangles being a bit more consistent >>> with each other. >>> >>> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> >>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> >> selftests for this stuff? Looks like the prime example, write testcase >> proving code is busted, fix it, everyone celebrate? > Yeah, seems like a good idea. Though I'll have to figure out if it's > actually broken or not ;) > > Hmm. Ouch. There's seems to be a div by zero lurking in there if > dst_w/h == 0. I wonder why nothing has hit that. At least W=1 warnings have disappear with these patches ;-) Benjamin >> -Daniel >> >>> --- >>> drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- >>> 1 file changed, 11 insertions(+), 11 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c >>> index 7762b6e9278d..229325fcf333 100644 >>> --- a/drivers/gpu/drm/drm_rect.c >>> +++ b/drivers/gpu/drm/drm_rect.c >>> @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) >>> } >>> EXPORT_SYMBOL(drm_rect_intersect); >>> >>> -static u32 clip_scaled(u32 src, u32 dst, u32 clip) >>> +static u32 clip_scaled(int src, int dst, int *clip) >>> { >>> u64 tmp; >>> >>> /* Only clip what we have. Keeps the result bounded as well. */ >>> - clip = min(clip, dst); >>> + *clip = min(*clip, dst); >>> >>> - tmp = mul_u32_u32(src, dst - clip); >>> + tmp = mul_u32_u32(src, dst - *clip); >>> >>> /* >>> * Round toward 1.0 when clipping so that we don't accidentally >>> @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, >>> diff = clip->x1 - dst->x1; >>> if (diff > 0) { >>> u32 new_src_w = clip_scaled(drm_rect_width(src), >>> - drm_rect_width(dst), diff); >>> + drm_rect_width(dst), &diff); >>> >>> src->x1 = src->x2 - new_src_w; >>> - dst->x1 = clip->x1; >>> + dst->x1 += diff; >>> } >>> diff = clip->y1 - dst->y1; >>> if (diff > 0) { >>> u32 new_src_h = clip_scaled(drm_rect_height(src), >>> - drm_rect_height(dst), diff); >>> + drm_rect_height(dst), &diff); >>> >>> src->y1 = src->y2 - new_src_h; >>> - dst->y1 = clip->y1; >>> + dst->y1 += diff; >>> } >>> diff = dst->x2 - clip->x2; >>> if (diff > 0) { >>> u32 new_src_w = clip_scaled(drm_rect_width(src), >>> - drm_rect_width(dst), diff); >>> + drm_rect_width(dst), &diff); >>> >>> src->x2 = src->x1 + new_src_w; >>> - dst->x2 = clip->x2; >>> + dst->x2 -= diff; >>> } >>> diff = dst->y2 - clip->y2; >>> if (diff > 0) { >>> u32 new_src_h = clip_scaled(drm_rect_height(src), >>> - drm_rect_height(dst), diff); >>> + drm_rect_height(dst), &diff); >>> >>> src->y2 = src->y1 + new_src_h; >>> - dst->y2 = clip->y2; >>> + dst->y2 -= diff; >>> } >>> >>> return drm_rect_visible(dst); >>> -- >>> 2.23.0 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx >> -- >> Daniel Vetter >> Software Engineer, Intel Corporation >> http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 19:55 ` Benjamin GAIGNARD @ 2019-11-20 19:55 ` Benjamin GAIGNARD 0 siblings, 0 replies; 14+ messages in thread From: Benjamin GAIGNARD @ 2019-11-20 19:55 UTC (permalink / raw) To: Ville Syrjälä, Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org On 11/20/19 6:11 PM, Ville Syrjälä wrote: > On Wed, Nov 20, 2019 at 05:43:40PM +0100, Daniel Vetter wrote: >> On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: >>> From: Ville Syrjälä <ville.syrjala@linux.intel.com> >>> >>> Now that we've constrained the clipped source rectangle such >>> that it can't have negative dimensions doing the same for the >>> dst rectangle seems appropriate. Should at least result in >>> the clipped src and dst rectangles being a bit more consistent >>> with each other. >>> >>> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> >>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> >> selftests for this stuff? Looks like the prime example, write testcase >> proving code is busted, fix it, everyone celebrate? > Yeah, seems like a good idea. Though I'll have to figure out if it's > actually broken or not ;) > > Hmm. Ouch. There's seems to be a div by zero lurking in there if > dst_w/h == 0. I wonder why nothing has hit that. At least W=1 warnings have disappear with these patches ;-) Benjamin >> -Daniel >> >>> --- >>> drivers/gpu/drm/drm_rect.c | 22 +++++++++++----------- >>> 1 file changed, 11 insertions(+), 11 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c >>> index 7762b6e9278d..229325fcf333 100644 >>> --- a/drivers/gpu/drm/drm_rect.c >>> +++ b/drivers/gpu/drm/drm_rect.c >>> @@ -52,14 +52,14 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct drm_rect *r2) >>> } >>> EXPORT_SYMBOL(drm_rect_intersect); >>> >>> -static u32 clip_scaled(u32 src, u32 dst, u32 clip) >>> +static u32 clip_scaled(int src, int dst, int *clip) >>> { >>> u64 tmp; >>> >>> /* Only clip what we have. Keeps the result bounded as well. */ >>> - clip = min(clip, dst); >>> + *clip = min(*clip, dst); >>> >>> - tmp = mul_u32_u32(src, dst - clip); >>> + tmp = mul_u32_u32(src, dst - *clip); >>> >>> /* >>> * Round toward 1.0 when clipping so that we don't accidentally >>> @@ -92,34 +92,34 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct drm_rect *dst, >>> diff = clip->x1 - dst->x1; >>> if (diff > 0) { >>> u32 new_src_w = clip_scaled(drm_rect_width(src), >>> - drm_rect_width(dst), diff); >>> + drm_rect_width(dst), &diff); >>> >>> src->x1 = src->x2 - new_src_w; >>> - dst->x1 = clip->x1; >>> + dst->x1 += diff; >>> } >>> diff = clip->y1 - dst->y1; >>> if (diff > 0) { >>> u32 new_src_h = clip_scaled(drm_rect_height(src), >>> - drm_rect_height(dst), diff); >>> + drm_rect_height(dst), &diff); >>> >>> src->y1 = src->y2 - new_src_h; >>> - dst->y1 = clip->y1; >>> + dst->y1 += diff; >>> } >>> diff = dst->x2 - clip->x2; >>> if (diff > 0) { >>> u32 new_src_w = clip_scaled(drm_rect_width(src), >>> - drm_rect_width(dst), diff); >>> + drm_rect_width(dst), &diff); >>> >>> src->x2 = src->x1 + new_src_w; >>> - dst->x2 = clip->x2; >>> + dst->x2 -= diff; >>> } >>> diff = dst->y2 - clip->y2; >>> if (diff > 0) { >>> u32 new_src_h = clip_scaled(drm_rect_height(src), >>> - drm_rect_height(dst), diff); >>> + drm_rect_height(dst), &diff); >>> >>> src->y2 = src->y1 + new_src_h; >>> - dst->y2 = clip->y2; >>> + dst->y2 -= diff; >>> } >>> >>> return drm_rect_visible(dst); >>> -- >>> 2.23.0 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx >> -- >> Daniel Vetter >> Software Engineer, Intel Corporation >> http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 19:55 ` Benjamin GAIGNARD @ 2019-11-22 17:25 ` Ville Syrjälä 2019-11-22 17:25 ` [Intel-gfx] " Ville Syrjälä 2 siblings, 1 reply; 14+ messages in thread From: Ville Syrjälä @ 2019-11-22 17:25 UTC (permalink / raw) To: Daniel Vetter; +Cc: intel-gfx, Benjamin Gaignard, dri-devel On Wed, Nov 20, 2019 at 07:11:38PM +0200, Ville Syrjälä wrote: > On Wed, Nov 20, 2019 at 05:43:40PM +0100, Daniel Vetter wrote: > > On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > > > Now that we've constrained the clipped source rectangle such > > > that it can't have negative dimensions doing the same for the > > > dst rectangle seems appropriate. Should at least result in > > > the clipped src and dst rectangles being a bit more consistent > > > with each other. > > > > > > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > selftests for this stuff? Looks like the prime example, write testcase > > proving code is busted, fix it, everyone celebrate? > > Yeah, seems like a good idea. Though I'll have to figure out if it's > actually broken or not ;) I *think* the only problem is that the clip can result in a visible source rectangle when this happens. The dst rectangle will still be correctly invisible so hopefully not a big deal. But I guess we might as well fix it, and I can do a selftest which makes sure both src and dst come out invisible. > > Hmm. Ouch. There's seems to be a div by zero lurking in there if > dst_w/h == 0. I wonder why nothing has hit that. Definitely real. I'll fix it and toss in a selftest. -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place 2019-11-22 17:25 ` Ville Syrjälä @ 2019-11-22 17:25 ` Ville Syrjälä 0 siblings, 0 replies; 14+ messages in thread From: Ville Syrjälä @ 2019-11-22 17:25 UTC (permalink / raw) To: Daniel Vetter; +Cc: intel-gfx, Benjamin Gaignard, dri-devel On Wed, Nov 20, 2019 at 07:11:38PM +0200, Ville Syrjälä wrote: > On Wed, Nov 20, 2019 at 05:43:40PM +0100, Daniel Vetter wrote: > > On Wed, Nov 20, 2019 at 06:25:12PM +0200, Ville Syrjala wrote: > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > > > Now that we've constrained the clipped source rectangle such > > > that it can't have negative dimensions doing the same for the > > > dst rectangle seems appropriate. Should at least result in > > > the clipped src and dst rectangles being a bit more consistent > > > with each other. > > > > > > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > selftests for this stuff? Looks like the prime example, write testcase > > proving code is busted, fix it, everyone celebrate? > > Yeah, seems like a good idea. Though I'll have to figure out if it's > actually broken or not ;) I *think* the only problem is that the clip can result in a visible source rectangle when this happens. The dst rectangle will still be correctly invisible so hopefully not a big deal. But I guess we might as well fix it, and I can do a selftest which makes sure both src and dst come out invisible. > > Hmm. Ouch. There's seems to be a div by zero lurking in there if > dst_w/h == 0. I wonder why nothing has hit that. Definitely real. I'll fix it and toss in a selftest. -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/rect: Keep the scaled clip bounded 2019-11-20 16:25 [PATCH 1/2] drm/rect: Keep the scaled clip bounded Ville Syrjala 2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala 2019-11-20 16:25 ` [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place Ville Syrjala @ 2019-11-20 22:01 ` Patchwork 2019-11-20 22:01 ` [Intel-gfx] " Patchwork 2 siblings, 1 reply; 14+ messages in thread From: Patchwork @ 2019-11-20 22:01 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: series starting with [1/2] drm/rect: Keep the scaled clip bounded URL : https://patchwork.freedesktop.org/series/69760/ State : success == Summary == CI Bug Log - changes from CI_DRM_7391 -> Patchwork_15349 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/index.html Known issues ------------ Here are the changes found in Patchwork_15349 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_suspend@basic-s3: - fi-cml-s: [PASS][1] -> [DMESG-WARN][2] ([fdo#111764]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-cml-s/igt@gem_exec_suspend@basic-s3.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-cml-s/igt@gem_exec_suspend@basic-s3.html * igt@i915_selftest@live_hangcheck: - fi-hsw-4770r: [PASS][3] -> [DMESG-FAIL][4] ([fdo#111991]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-hsw-4770r/igt@i915_selftest@live_hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-hsw-4770r/igt@i915_selftest@live_hangcheck.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [PASS][5] -> [FAIL][6] ([fdo#111407]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html #### Possible fixes #### * igt@gem_exec_gttfill@basic: - {fi-tgl-u}: [INCOMPLETE][7] ([fdo#111593]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-tgl-u/igt@gem_exec_gttfill@basic.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-tgl-u/igt@gem_exec_gttfill@basic.html * igt@gem_exec_suspend@basic-s0: - fi-bsw-n3050: [DMESG-WARN][9] ([fdo#112120]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-bsw-n3050/igt@gem_exec_suspend@basic-s0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-bsw-n3050/igt@gem_exec_suspend@basic-s0.html * igt@i915_pm_rpm@module-reload: - fi-skl-6770hq: [FAIL][11] ([fdo#108511]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html * igt@i915_selftest@live_gem_contexts: - fi-bsw-nick: [INCOMPLETE][13] ([fdo# 111542]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html * igt@i915_selftest@live_gt_heartbeat: - fi-cml-u2: [DMESG-FAIL][15] -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-cml-u2/igt@i915_selftest@live_gt_heartbeat.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-cml-u2/igt@i915_selftest@live_gt_heartbeat.html * igt@kms_frontbuffer_tracking@basic: - fi-icl-guc: [FAIL][17] ([fdo#103167]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-icl-guc/igt@kms_frontbuffer_tracking@basic.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-icl-guc/igt@kms_frontbuffer_tracking@basic.html #### Warnings #### * igt@i915_pm_rpm@basic-rte: - fi-kbl-guc: [FAIL][19] ([fdo#112223]) -> [SKIP][20] ([fdo#109271]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo# 111542]: https://bugs.freedesktop.org/show_bug.cgi?id= 111542 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109964]: https://bugs.freedesktop.org/show_bug.cgi?id=109964 [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407 [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593 [fdo#111764]: https://bugs.freedesktop.org/show_bug.cgi?id=111764 [fdo#111991]: https://bugs.freedesktop.org/show_bug.cgi?id=111991 [fdo#112120]: https://bugs.freedesktop.org/show_bug.cgi?id=112120 [fdo#112223]: https://bugs.freedesktop.org/show_bug.cgi?id=112223 [fdo#112298]: https://bugs.freedesktop.org/show_bug.cgi?id=112298 Participating hosts (50 -> 45) ------------------------------ Missing (5): fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_7391 -> Patchwork_15349 CI-20190529: 20190529 CI_DRM_7391: b1ab9c981bd51b363b57dd7eb713640494a5a6c1 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5299: 65fed6a79adea14f7bef6d55530da47d7731d370 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_15349: 908e785bfecd7e11afa68beae2545b41b516e7e0 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 908e785bfecd drm/rect: Keep the clipped dst rectangle in place 9abc16d49c1f drm/rect: Keep the scaled clip bounded == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/rect: Keep the scaled clip bounded 2019-11-20 22:01 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/rect: Keep the scaled clip bounded Patchwork @ 2019-11-20 22:01 ` Patchwork 0 siblings, 0 replies; 14+ messages in thread From: Patchwork @ 2019-11-20 22:01 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: series starting with [1/2] drm/rect: Keep the scaled clip bounded URL : https://patchwork.freedesktop.org/series/69760/ State : success == Summary == CI Bug Log - changes from CI_DRM_7391 -> Patchwork_15349 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/index.html Known issues ------------ Here are the changes found in Patchwork_15349 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_suspend@basic-s3: - fi-cml-s: [PASS][1] -> [DMESG-WARN][2] ([fdo#111764]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-cml-s/igt@gem_exec_suspend@basic-s3.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-cml-s/igt@gem_exec_suspend@basic-s3.html * igt@i915_selftest@live_hangcheck: - fi-hsw-4770r: [PASS][3] -> [DMESG-FAIL][4] ([fdo#111991]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-hsw-4770r/igt@i915_selftest@live_hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-hsw-4770r/igt@i915_selftest@live_hangcheck.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [PASS][5] -> [FAIL][6] ([fdo#111407]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html #### Possible fixes #### * igt@gem_exec_gttfill@basic: - {fi-tgl-u}: [INCOMPLETE][7] ([fdo#111593]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-tgl-u/igt@gem_exec_gttfill@basic.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-tgl-u/igt@gem_exec_gttfill@basic.html * igt@gem_exec_suspend@basic-s0: - fi-bsw-n3050: [DMESG-WARN][9] ([fdo#112120]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-bsw-n3050/igt@gem_exec_suspend@basic-s0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-bsw-n3050/igt@gem_exec_suspend@basic-s0.html * igt@i915_pm_rpm@module-reload: - fi-skl-6770hq: [FAIL][11] ([fdo#108511]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html * igt@i915_selftest@live_gem_contexts: - fi-bsw-nick: [INCOMPLETE][13] ([fdo# 111542]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html * igt@i915_selftest@live_gt_heartbeat: - fi-cml-u2: [DMESG-FAIL][15] -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-cml-u2/igt@i915_selftest@live_gt_heartbeat.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-cml-u2/igt@i915_selftest@live_gt_heartbeat.html * igt@kms_frontbuffer_tracking@basic: - fi-icl-guc: [FAIL][17] ([fdo#103167]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-icl-guc/igt@kms_frontbuffer_tracking@basic.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-icl-guc/igt@kms_frontbuffer_tracking@basic.html #### Warnings #### * igt@i915_pm_rpm@basic-rte: - fi-kbl-guc: [FAIL][19] ([fdo#112223]) -> [SKIP][20] ([fdo#109271]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7391/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo# 111542]: https://bugs.freedesktop.org/show_bug.cgi?id= 111542 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109964]: https://bugs.freedesktop.org/show_bug.cgi?id=109964 [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407 [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593 [fdo#111764]: https://bugs.freedesktop.org/show_bug.cgi?id=111764 [fdo#111991]: https://bugs.freedesktop.org/show_bug.cgi?id=111991 [fdo#112120]: https://bugs.freedesktop.org/show_bug.cgi?id=112120 [fdo#112223]: https://bugs.freedesktop.org/show_bug.cgi?id=112223 [fdo#112298]: https://bugs.freedesktop.org/show_bug.cgi?id=112298 Participating hosts (50 -> 45) ------------------------------ Missing (5): fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_7391 -> Patchwork_15349 CI-20190529: 20190529 CI_DRM_7391: b1ab9c981bd51b363b57dd7eb713640494a5a6c1 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5299: 65fed6a79adea14f7bef6d55530da47d7731d370 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_15349: 908e785bfecd7e11afa68beae2545b41b516e7e0 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 908e785bfecd drm/rect: Keep the clipped dst rectangle in place 9abc16d49c1f drm/rect: Keep the scaled clip bounded == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15349/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2019-11-22 17:25 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-11-20 16:25 [PATCH 1/2] drm/rect: Keep the scaled clip bounded Ville Syrjala 2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala 2019-11-20 16:25 ` [PATCH 2/2] drm/rect: Keep the clipped dst rectangle in place Ville Syrjala 2019-11-20 16:25 ` [Intel-gfx] " Ville Syrjala 2019-11-20 16:43 ` Daniel Vetter 2019-11-20 16:43 ` [Intel-gfx] " Daniel Vetter 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 17:11 ` Ville Syrjälä 2019-11-20 19:55 ` Benjamin GAIGNARD 2019-11-20 19:55 ` [Intel-gfx] " Benjamin GAIGNARD 2019-11-22 17:25 ` Ville Syrjälä 2019-11-22 17:25 ` [Intel-gfx] " Ville Syrjälä 2019-11-20 22:01 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/rect: Keep the scaled clip bounded Patchwork 2019-11-20 22:01 ` [Intel-gfx] " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox