freedreno/drm/virtio: Fix SHAREABLE+MAPPABLE
authorRob Clark <robdclark@chromium.org>
Tue, 12 Apr 2022 17:24:16 +0000 (10:24 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 27 Apr 2022 23:10:00 +0000 (23:10 +0000)
A shareable bo should also be mappable if FD_BO_NOMAP is not set.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16086>

src/freedreno/drm/virtio/virtio_bo.c

index ff11168..2cf21b2 100644 (file)
@@ -422,9 +422,12 @@ virtio_bo_new(struct fd_device *dev, uint32_t size, uint32_t flags)
       if (flags & (FD_BO_SHARED | FD_BO_SCANOUT)) {
          args.blob_flags = VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE |
                VIRTGPU_BLOB_FLAG_USE_SHAREABLE;
-      } else if (!(flags & FD_BO_NOMAP)) {
-         args.blob_flags = VIRTGPU_BLOB_FLAG_USE_MAPPABLE;
       }
+
+      if (!(flags & FD_BO_NOMAP)) {
+         args.blob_flags |= VIRTGPU_BLOB_FLAG_USE_MAPPABLE;
+      }
+
       args.blob_id = p_atomic_inc_return(&virtio_dev->next_blob_id);
       args.cmd = VOID2U64(&req);
       args.cmd_size = sizeof(req);