mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
virtio-gpu: Factor out update scanout
Creating a small helper function for updating the scanout will be useful in the next patch where this needs to be done early in do_set_scanout before returning. Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com> Message-Id: <20210526231429.1045476-13-vivek.kasireddy@intel.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
5752519e93
commit
81cd9f7108
1 changed files with 23 additions and 12 deletions
|
@ -556,6 +556,28 @@ static void virtio_unref_resource(pixman_image_t *image, void *data)
|
||||||
pixman_image_unref(data);
|
pixman_image_unref(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void virtio_gpu_update_scanout(VirtIOGPU *g,
|
||||||
|
uint32_t scanout_id,
|
||||||
|
struct virtio_gpu_simple_resource *res,
|
||||||
|
struct virtio_gpu_rect *r)
|
||||||
|
{
|
||||||
|
struct virtio_gpu_simple_resource *ores;
|
||||||
|
struct virtio_gpu_scanout *scanout;
|
||||||
|
|
||||||
|
scanout = &g->parent_obj.scanout[scanout_id];
|
||||||
|
ores = virtio_gpu_find_resource(g, scanout->resource_id);
|
||||||
|
if (ores) {
|
||||||
|
ores->scanout_bitmask &= ~(1 << scanout_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
res->scanout_bitmask |= (1 << scanout_id);
|
||||||
|
scanout->resource_id = res->resource_id;
|
||||||
|
scanout->x = r->x;
|
||||||
|
scanout->y = r->y;
|
||||||
|
scanout->width = r->width;
|
||||||
|
scanout->height = r->height;
|
||||||
|
}
|
||||||
|
|
||||||
static void virtio_gpu_do_set_scanout(VirtIOGPU *g,
|
static void virtio_gpu_do_set_scanout(VirtIOGPU *g,
|
||||||
uint32_t scanout_id,
|
uint32_t scanout_id,
|
||||||
struct virtio_gpu_framebuffer *fb,
|
struct virtio_gpu_framebuffer *fb,
|
||||||
|
@ -563,7 +585,6 @@ static void virtio_gpu_do_set_scanout(VirtIOGPU *g,
|
||||||
struct virtio_gpu_rect *r,
|
struct virtio_gpu_rect *r,
|
||||||
uint32_t *error)
|
uint32_t *error)
|
||||||
{
|
{
|
||||||
struct virtio_gpu_simple_resource *ores;
|
|
||||||
struct virtio_gpu_scanout *scanout;
|
struct virtio_gpu_scanout *scanout;
|
||||||
uint8_t *data;
|
uint8_t *data;
|
||||||
|
|
||||||
|
@ -623,17 +644,7 @@ static void virtio_gpu_do_set_scanout(VirtIOGPU *g,
|
||||||
scanout->ds);
|
scanout->ds);
|
||||||
}
|
}
|
||||||
|
|
||||||
ores = virtio_gpu_find_resource(g, scanout->resource_id);
|
virtio_gpu_update_scanout(g, scanout_id, res, r);
|
||||||
if (ores) {
|
|
||||||
ores->scanout_bitmask &= ~(1 << scanout_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
res->scanout_bitmask |= (1 << scanout_id);
|
|
||||||
scanout->resource_id = res->resource_id;
|
|
||||||
scanout->x = r->x;
|
|
||||||
scanout->y = r->y;
|
|
||||||
scanout->width = r->width;
|
|
||||||
scanout->height = r->height;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void virtio_gpu_set_scanout(VirtIOGPU *g,
|
static void virtio_gpu_set_scanout(VirtIOGPU *g,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue