From: Sean Paul seanpaul@chromium.org
I ran across this last week when I was trying to get this function to work. It's useful to have the scale values in the log upon failure.
Signed-off-by: Sean Paul seanpaul@chromium.org --- drivers/gpu/drm/drm_atomic_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 2c23a48482da..1725546d5105 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -758,7 +758,8 @@ int drm_atomic_helper_check_plane_state(struct drm_plane_state *plane_state, hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale); if (hscale < 0 || vscale < 0) { - DRM_DEBUG_KMS("Invalid scaling of plane\n"); + DRM_DEBUG_KMS("Invalid scaling of plane (%d/%d)\n", + hscale, vscale); drm_rect_debug_print("src: ", &plane_state->src, true); drm_rect_debug_print("dst: ", &plane_state->dst, false); return -ERANGE;
On Wed, Sep 05, 2018 at 04:46:01PM -0400, Sean Paul wrote:
From: Sean Paul seanpaul@chromium.org
I ran across this last week when I was trying to get this function to work. It's useful to have the scale values in the log upon failure.
Signed-off-by: Sean Paul seanpaul@chromium.org
Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch
drivers/gpu/drm/drm_atomic_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 2c23a48482da..1725546d5105 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -758,7 +758,8 @@ int drm_atomic_helper_check_plane_state(struct drm_plane_state *plane_state, hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale); if (hscale < 0 || vscale < 0) {
DRM_DEBUG_KMS("Invalid scaling of plane\n");
DRM_DEBUG_KMS("Invalid scaling of plane (%d/%d)\n",
drm_rect_debug_print("src: ", &plane_state->src, true); drm_rect_debug_print("dst: ", &plane_state->dst, false); return -ERANGE;hscale, vscale);
-- Sean Paul, Software Engineer, Google / Chromium OS
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Wed, Sep 05, 2018 at 04:46:01PM -0400, Sean Paul wrote:
From: Sean Paul seanpaul@chromium.org
I ran across this last week when I was trying to get this function to work. It's useful to have the scale values in the log upon failure.
Signed-off-by: Sean Paul seanpaul@chromium.org
drivers/gpu/drm/drm_atomic_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 2c23a48482da..1725546d5105 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -758,7 +758,8 @@ int drm_atomic_helper_check_plane_state(struct drm_plane_state *plane_state, hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale); if (hscale < 0 || vscale < 0) {
DRM_DEBUG_KMS("Invalid scaling of plane\n");
DRM_DEBUG_KMS("Invalid scaling of plane (%d/%d)\n",
hscale, vscale);
I think it's just going to be -ERANGE for at least one of them. So not quite sure what extra benefit we get from this. What might be more helpful is printing the actual computed scale factor and the min/max.
drm_rect_debug_print("src: ", &plane_state->src, true); drm_rect_debug_print("dst: ", &plane_state->dst, false); return -ERANGE;
-- Sean Paul, Software Engineer, Google / Chromium OS
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Thu, Sep 06, 2018 at 02:30:24PM +0300, Ville Syrjälä wrote:
On Wed, Sep 05, 2018 at 04:46:01PM -0400, Sean Paul wrote:
From: Sean Paul seanpaul@chromium.org
I ran across this last week when I was trying to get this function to work. It's useful to have the scale values in the log upon failure.
Signed-off-by: Sean Paul seanpaul@chromium.org
drivers/gpu/drm/drm_atomic_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 2c23a48482da..1725546d5105 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -758,7 +758,8 @@ int drm_atomic_helper_check_plane_state(struct drm_plane_state *plane_state, hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale); if (hscale < 0 || vscale < 0) {
DRM_DEBUG_KMS("Invalid scaling of plane\n");
DRM_DEBUG_KMS("Invalid scaling of plane (%d/%d)\n",
hscale, vscale);
I think it's just going to be -ERANGE for at least one of them. So not quite sure what extra benefit we get from this. What might be more helpful is printing the actual computed scale factor and the min/max.
Good point, it will tell you which scale is invalid, but not necessarily why. I'll tweak the args for drm_rect_calc_*scale to return -errno and pass *scale by pointer.
v2 incoming
Sean
drm_rect_debug_print("src: ", &plane_state->src, true); drm_rect_debug_print("dst: ", &plane_state->dst, false); return -ERANGE;
-- Sean Paul, Software Engineer, Google / Chromium OS
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
-- Ville Syrjälä Intel
dri-devel@lists.freedesktop.org