Module: Mesa Branch: staging/21.1 Commit: 12dcbe0f6ff576b68a9fb14ad22a049d86e59800 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12dcbe0f6ff576b68a9fb14ad22a049d86e59800
Author: Boris Brezillon <[email protected]> Date: Fri Apr 23 09:24:50 2021 +0200 panfrost: Relax the stride check when importing resources Imported resources will not necessarily have their line stride aligned on 64 bytes, and things prove to work just fine even on Bifrost, so let's relax the condition and drop the comment stating that Bifrost needs pixel lines to be aligned on 64 bytes. Reported-by: Icecream95 <[email protected]> Suggested-by: Icecream95 <[email protected]> Fixes: 051d62cf0410 ("panfrost: Add a pan_image_layout_init() helper") Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10423> (cherry picked from commit 6b036d13502c8aff12b382af0bab5c7680ee24fd) --- .pick_status.json | 2 +- src/panfrost/lib/pan_texture.c | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index b1bd8f299bb..e7d76c25baf 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -301,7 +301,7 @@ "description": "panfrost: Relax the stride check when importing resources", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "051d62cf041054bf0fdbd0ae5d2160d1b02e0203" }, diff --git a/src/panfrost/lib/pan_texture.c b/src/panfrost/lib/pan_texture.c index b42efa68af1..bb4f78cab35 100644 --- a/src/panfrost/lib/pan_texture.c +++ b/src/panfrost/lib/pan_texture.c @@ -625,20 +625,15 @@ pan_image_layout_init(const struct panfrost_device *dev, /* Compute the would-be stride */ unsigned stride = bytes_per_pixel * effective_width; - /* On Bifrost, pixel lines have to be aligned on 64 bytes otherwise - * we end up with DATA_INVALID faults. That doesn't seem to be - * mandatory on Midgard, but we keep the alignment for performance. - */ - if (linear) - stride = ALIGN_POT(stride, 64); - if (explicit_layout) { /* Make sure the explicit stride is valid */ - if (explicit_layout->line_stride < stride || - (explicit_layout->line_stride & 63)) + if (explicit_layout->line_stride < stride) return false; stride = explicit_layout->line_stride; + } else if (linear) { + /* Keep lines alignment on 64 byte for performance */ + stride = ALIGN_POT(stride, 64); } slice->line_stride = stride; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
