lima: relax checks of imported BO

We don't need stride of imported buffer to be equal to calculated
stride if the buffer is linear.

Fixes #3070

Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9646>
This commit is contained in:
Vasily Khoruzhick 2021-03-16 23:41:03 -07:00 committed by Marge Bot
parent b06f121fcc
commit 5762aa4e56

View file

@ -351,8 +351,26 @@ lima_resource_from_handle(struct pipe_screen *pscreen,
stride = util_format_get_stride(pres->format, width);
size = util_format_get_2d_size(pres->format, stride, height);
if (res->levels[0].stride != stride || res->bo->size < size) {
debug_error("import buffer not properly aligned\n");
if (res->tiled && res->levels[0].stride != stride) {
fprintf(stderr, "tiled imported buffer has mismatching stride: %d (BO) != %d (expected)",
res->levels[0].stride, stride);
goto err_out;
}
if (!res->tiled && (res->levels[0].stride % 8)) {
fprintf(stderr, "linear imported buffer stride is not aligned to 8 bytes: %d\n",
res->levels[0].stride);
}
if (!res->tiled && res->levels[0].stride < stride) {
fprintf(stderr, "linear imported buffer stride is smaller than minimal: %d (BO) < %d (min)",
res->levels[0].stride, stride);
goto err_out;
}
if (res->bo->size < size) {
fprintf(stderr, "imported bo size is smaller than expected: %d (BO) < %d (expected)\n",
res->bo->size, size);
goto err_out;
}