On Thu, Oct 21, 2021 at 4:52 AM Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > > On Thu, Oct 21, 2021 at 11:55:47AM +0200, Maksym Wezdecki wrote: > > I get your point. However, we need to make resource_create ioctl, > > in order to create corresponding resource on the host. > > That used to be the case but isn't true any more with the new > blob resources. virglrenderer allows to create gpu objects > via execbuffer. Those gpu objects can be linked to a > virtio-gpu resources, but it's optional. In your case you > would do that only for your staging buffer. The other textures > (which you fill with a host-side copy from the staging buffer) > do not need a virtio-gpu resource in the first place. That's however a breaking change to the virgl protocol. All virgl commands expect res ids rather than blob ids. Using VIRTGPU_BLOB_MEM_HOST3D could in theory work. But there are a few occasions where virglrenderer expects there to be guest storage. There are also readbacks that we need to support. We might end up using VIRTGPU_BLOB_MEM_HOST3D_GUEST, where pin-on-demand is still desirable. For this patch, I think the uapi change can be simplified. It can be a new param plus a new field in drm_virtgpu_execbuffer __u64 bo_flags; /* pointer to an array of size num_bo_handles, or NULL */ The other changes do not seem needed. > > take care, > Gerd >