On 2024/05/02 4:20, Dmitry Osipenko wrote:
On 4/27/24 08:52, Akihiko Odaki wrote:
On 2024/04/24 19:30, Dmitry Osipenko wrote:
On 4/19/24 12:18, Akihiko Odaki wrote:
@@ -61,6 +61,10 @@ struct virtio_gpu_simple_resource {
int dmabuf_fd;
uint8_t *remapped;
+ MemoryRegion *mr;
+ bool async_unmap_completed;
+ bool async_unmap_in_progress;
+
Don't add fields to virtio_gpu_simple_resource but instead create a
struct that embeds virtio_gpu_simple_resource in virtio-gpu-virgl.c.
Please give a justification. I'd rather rename
virtio_gpu_simple_resource s/_simple//. Simple resource already supports
blob and the added fields are directly related to the blob. Don't see
why another struct is needed.
Because mapping is only implemented in virtio-gpu-gl while blob itself
is implemented also in virtio-gpu.
Rutubaga maps blobs and it should do unmapping blobs asynchronously as
well, AFAICT.
Right. It makes sense to put mr in struct virtio_gpu_simple_resource in
preparation for such a situation.
Based on this discussion, I think it is fine to put mr either in struct
virtio_gpu_simple_resource or a distinct struct. However if you put mr
in struct virtio_gpu_simple_resource, the logic that manages
MemoryRegion should also be moved to virtio-gpu.c for consistency.