diff mbox series

virtio-gpu: add a FIXME for virtio_gpu_load()

Message ID 20230515132518.1025853-1-marcandre.lureau@redhat.com
State New
Headers show
Series virtio-gpu: add a FIXME for virtio_gpu_load() | expand

Commit Message

Marc-André Lureau May 15, 2023, 1:25 p.m. UTC
From: Marc-André Lureau <marcandre.lureau@redhat.com>

It looks like the virtio_gpu_load() does not compute and set the offset,
the same way virtio_gpu_set_scanout() does. This probably results in
incorrect display until the scanout/framebuffer is updated again, I
guess we should fix it, although I haven't checked this yet.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/display/virtio-gpu.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Michael S. Tsirkin May 18, 2023, 9:35 p.m. UTC | #1
On Mon, May 15, 2023 at 05:25:18PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> It looks like the virtio_gpu_load() does not compute and set the offset,
> the same way virtio_gpu_set_scanout() does. This probably results in
> incorrect display until the scanout/framebuffer is updated again, I
> guess we should fix it, although I haven't checked this yet.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

I guess it's a way to ping Gerd ;)
Better to just fix it though, no?

> ---
>  hw/display/virtio-gpu.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
> index 66ac9b6cc5..66cddd94d9 100644
> --- a/hw/display/virtio-gpu.c
> +++ b/hw/display/virtio-gpu.c
> @@ -1289,6 +1289,7 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
>      /* load & apply scanout state */
>      vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1);
>      for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
> +        /* FIXME: should take scanout.r.{x,y} into account */
>          scanout = &g->parent_obj.scanout[i];
>          if (!scanout->resource_id) {
>              continue;
> -- 
> 2.40.1
Marc-André Lureau May 24, 2023, 10:50 a.m. UTC | #2
Hi Michael

On Fri, May 19, 2023 at 1:35 AM Michael S. Tsirkin <mst@redhat.com> wrote:

> On Mon, May 15, 2023 at 05:25:18PM +0400, marcandre.lureau@redhat.com
> wrote:
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > It looks like the virtio_gpu_load() does not compute and set the offset,
> > the same way virtio_gpu_set_scanout() does. This probably results in
> > incorrect display until the scanout/framebuffer is updated again, I
> > guess we should fix it, although I haven't checked this yet.
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> I guess it's a way to ping Gerd ;)
> Better to just fix it though, no?
>

Indeed, it's just lack of time and priority, and also figure out a good way
to test this.

thanks


> > ---
> >  hw/display/virtio-gpu.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
> > index 66ac9b6cc5..66cddd94d9 100644
> > --- a/hw/display/virtio-gpu.c
> > +++ b/hw/display/virtio-gpu.c
> > @@ -1289,6 +1289,7 @@ static int virtio_gpu_load(QEMUFile *f, void
> *opaque, size_t size,
> >      /* load & apply scanout state */
> >      vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1);
> >      for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
> > +        /* FIXME: should take scanout.r.{x,y} into account */
> >          scanout = &g->parent_obj.scanout[i];
> >          if (!scanout->resource_id) {
> >              continue;
> > --
> > 2.40.1
>
>
>
diff mbox series

Patch

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 66ac9b6cc5..66cddd94d9 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1289,6 +1289,7 @@  static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
     /* load & apply scanout state */
     vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1);
     for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
+        /* FIXME: should take scanout.r.{x,y} into account */
         scanout = &g->parent_obj.scanout[i];
         if (!scanout->resource_id) {
             continue;