virtgpu_crosdomain: Always use _USE_CROSS_DEVICE (when available)

This is required for dma-buf sharing, which is a thing that can happen
for sharing across processes even if it is the same GPU device involved
on both ends.  (Also, anything that gralloc allocates needs to be dmabuf
exportable, so not setting _USE_CROSS_DEVICE is just plain wrong.)

This fixes hangs in deqp-cts when using cross-domain virtgpu backend
(rather than the virgl backend)

BUG=b:230100768
TEST=Run deqp-cts

Change-Id: Ic9204feb0af52ef4a25bcfd554425cb8cd3f3fe1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3696038
Tested-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Rob Clark <robdclark@chromium.org>
Auto-Submit: Rob Clark <robdclark@chromium.org>
This commit is contained in:
Rob Clark 2022-06-08 10:15:30 -07:00 committed by Chromeos LUCI
parent f08bb293f6
commit 9527781c92

View file

@ -366,7 +366,7 @@ static int cross_domain_bo_create(struct bo *bo, uint32_t width, uint32_t height
if (use_flags & BO_USE_SW_MASK)
blob_flags |= VIRTGPU_BLOB_FLAG_USE_MAPPABLE;
if (params[param_cross_device].value && (use_flags & BO_USE_NON_GPU_HW))
if (params[param_cross_device].value)
blob_flags |= VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE;
/// It may be possible to have host3d blobs and handles from guest memory at the same time.