Module: Mesa Branch: main Commit: 7bcb22363935431f1c8886608d9a77b3503fc5b4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7bcb22363935431f1c8886608d9a77b3503fc5b4
Author: Joshua Watt <[email protected]> Date: Tue Jul 27 11:41:53 2021 -0500 v3d, vc4: Fix dmabuf import for non-scanout buffers Failure to create a buffer for scanout should not be fatal when importing a buffer. Buffers allocated from a render-only device may not be able to scanned out directly but can still be used for other rendering purposes (e.g. as a texture). Signed-off-by: Joshua Watt <[email protected]> Reviewed-by: Simon Ser <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12081> --- src/broadcom/ci/piglit-v3d-rpi4-fails.txt | 2 +- src/gallium/drivers/v3d/v3d_resource.c | 13 +++++-------- src/gallium/drivers/vc4/vc4_resource.c | 3 --- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/broadcom/ci/piglit-v3d-rpi4-fails.txt b/src/broadcom/ci/piglit-v3d-rpi4-fails.txt index 89c03381967..f335cf8f016 100644 --- a/src/broadcom/ci/piglit-v3d-rpi4-fails.txt +++ b/src/broadcom/ci/piglit-v3d-rpi4-fails.txt @@ -208,7 +208,7 @@ spec@ext_framebuffer_object@fbo-blending-formats,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB10,Fail spec@ext_framebuffer_object@getteximage-formats init-by-clear-and-render,Fail spec@ext_framebuffer_object@getteximage-formats init-by-rendering,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-export-tex,Crash +spec@ext_image_dma_buf_import@ext_image_dma_buf_import-export-tex,Fail spec@ext_packed_depth_stencil@texwrap formats bordercolor,Fail spec@ext_packed_depth_stencil@texwrap formats bordercolor@GL_DEPTH24_STENCIL8- border color only,Fail spec@ext_packed_depth_stencil@texwrap formats bordercolor-swizzled,Fail diff --git a/src/gallium/drivers/v3d/v3d_resource.c b/src/gallium/drivers/v3d/v3d_resource.c index 96dfcddf69d..62da3147620 100644 --- a/src/gallium/drivers/v3d/v3d_resource.c +++ b/src/gallium/drivers/v3d/v3d_resource.c @@ -432,10 +432,11 @@ v3d_resource_get_handle(struct pipe_screen *pscreen, return v3d_bo_flink(bo, &whandle->handle); case WINSYS_HANDLE_TYPE_KMS: if (screen->ro) { - assert(rsc->scanout); - bool ok = renderonly_get_handle(rsc->scanout, whandle); - whandle->stride = rsc->slices[0].stride; - return ok; + if (renderonly_get_handle(rsc->scanout, whandle)) { + whandle->stride = rsc->slices[0].stride; + return true; + } + return false; } whandle->handle = bo->handle; return true; @@ -928,10 +929,6 @@ v3d_resource_from_handle(struct pipe_screen *pscreen, renderonly_create_gpu_import_for_resource(prsc, screen->ro, NULL); - if (!rsc->scanout) { - fprintf(stderr, "Failed to create scanout resource.\n"); - goto fail; - } } if (rsc->tiled && whandle->stride != slice->stride) { diff --git a/src/gallium/drivers/vc4/vc4_resource.c b/src/gallium/drivers/vc4/vc4_resource.c index 8ecfb9507e6..af61c4860b8 100644 --- a/src/gallium/drivers/vc4/vc4_resource.c +++ b/src/gallium/drivers/vc4/vc4_resource.c @@ -320,7 +320,6 @@ vc4_resource_get_handle(struct pipe_screen *pscreen, return vc4_bo_flink(rsc->bo, &whandle->handle); case WINSYS_HANDLE_TYPE_KMS: if (screen->ro) { - assert(rsc->scanout); return renderonly_get_handle(rsc->scanout, whandle); } whandle->handle = rsc->bo->handle; @@ -689,8 +688,6 @@ vc4_resource_from_handle(struct pipe_screen *pscreen, renderonly_create_gpu_import_for_resource(prsc, screen->ro, NULL); - if (!rsc->scanout) - goto fail; } if (rsc->tiled && whandle->stride != slice->stride) { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
