virtio-gpu: update old resource too.
When switching scanout from one resource to another we must update the scanout_bitmask field for both new (set bit) and old (clear bit) resource. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 20180702162443.16796-3-kraxel@redhat.com
This commit is contained in:
parent
da566a18a7
commit
c806cfa036
@ -590,7 +590,7 @@ static void virtio_unref_resource(pixman_image_t *image, void *data)
|
||||
static void virtio_gpu_set_scanout(VirtIOGPU *g,
|
||||
struct virtio_gpu_ctrl_command *cmd)
|
||||
{
|
||||
struct virtio_gpu_simple_resource *res;
|
||||
struct virtio_gpu_simple_resource *res, *ores;
|
||||
struct virtio_gpu_scanout *scanout;
|
||||
pixman_format_code_t format;
|
||||
uint32_t offset;
|
||||
@ -664,6 +664,11 @@ static void virtio_gpu_set_scanout(VirtIOGPU *g,
|
||||
dpy_gfx_replace_surface(g->scanout[ss.scanout_id].con, scanout->ds);
|
||||
}
|
||||
|
||||
ores = virtio_gpu_find_resource(g, scanout->resource_id);
|
||||
if (ores) {
|
||||
ores->scanout_bitmask &= ~(1 << ss.scanout_id);
|
||||
}
|
||||
|
||||
res->scanout_bitmask |= (1 << ss.scanout_id);
|
||||
scanout->resource_id = ss.resource_id;
|
||||
scanout->x = ss.r.x;
|
||||
|
Loading…
Reference in New Issue
Block a user