After some more checking, it seems the problem is in here: 
`vn_cs_encoder_reserve_internal`, as this is the only place where a vn_cs_encoder 
can grow with `vn_cs_encoder_add_buffer`. For the buffer_count to be 0, this must 
mean that this is never called. The vn_cs_encoder assigned to a ring is always 
initialized with `VN_CS_ENCODER_STORAGE_SHMEM_ARRAY` (see `vn_instance_init_ring`). 
Therefore, the only way for `vn_cs_encoder_add_buffer` to never be called is if 
`virtgpu_ioctl_resource_create_blob` in `virtgpu_shmem_create` returns 0. 
Unfortunately, I can't narrow it down from here, because there are two cases where 
this can be true: either `virtgpu_ioctl(gpu, 
DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB, &args)` has an error or 
`args.bo_handle` is `0` (that is, it's never set by the ioctl call). I'm leaning 
towards the first case being true; however, the second case can be true as 
bo_handle is never referenced by QEMU, so it's possible it's never set. I'm hoping 
for a little assistance on how to continue.

Reply via email to