Hi, On Tue, Jan 21, 2020 at 3:44 PM Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > > > > > Can't this problem be solved by adding "offset" field in virtio_video_mem_entry? > > > > > > > > struct virtio_video_mem_entry { > > > > le64 addr; > > > > le32 length; > > > > le32 offset; > > > > u8 padding[4]; > > > > }; > > > > > > > > Here, "addr" must be the same in every mem_entry for (1) hardware. > > > > > > No. virtio_video_mem_entry is basically a scatter list entry, you use > > > an *array* of these entries to describe your buffer (unless you are > > > using CMA due to hardware requirements, in this special case you have > > > only one entry in your array). > > > > I see. I forgot about scatter list. > > However, I'm still not sure about the usage for CMA. > > if we're using CMA for a multiplanar format, how can the device know > > where the second plane start from? > > In my understanding, the number of entries in this case should be the > > same with the number of planes and > > "entries[0].addr + entries[0].length == entries[1].addr" should hold. > > With the one-buffer-per-frame model you could add a plane_offsets[4] > field to virtio_video_resource_create. > > The virtio_video_mem_entry array describes the whole buffer for all > planes, the plane_offsets array says where the individual planes start > inside the buffer. Got it. It makes sense to have plane_offsets[] separately. Thanks! Best regards, Keiichi > > cheers, > Gerd > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx > For additional commands, e-mail: virtio-dev-help@xxxxxxxxxxxxxxxxxxxx > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel