Hi

On Mon, Jun 26, 2023 at 9:49 PM Kim, Dongwon <dongwon....@intel.com> wrote:

> Hi Marc-André Lureau,
>
> On 6/26/2023 4:56 AM, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Jun 21, 2023 at 11:53 PM Dongwon Kim <dongwon....@intel.com>
> > wrote:
> >
> >     x and y offsets and width and height of the scanout texture
> >     is not correctly configured in case guest scanout frame is
> >     dmabuf.
> >
> >     Cc: Gerd Hoffmann <kra...@redhat.com>
> >     Cc: Marc-André Lureau <marcandre.lur...@redhat.com>
> >     Cc: Vivek Kasireddy <vivek.kasire...@intel.com>
> >     Signed-off-by: Dongwon Kim <dongwon....@intel.com>
> >
> >
> > I find this a bit confusing, and I don't know how to actually test it.
> >
> > The only place where scanout_{width, height} are set is
> > virtio_gpu_create_dmabuf() and there, they have the same values as
> > width and height. it's too easy to get confused with the values imho.
>
> Yes, scanout_width/height are same as width/height as far as there is
> only one guest display exist. But they will be different in case there
> multiple displays on the guest side, configured in extended mode (when
> the guest is running Xorg).
>
> In this case, blob for the guest display is same for scanout 1 and 2 but
> each scanout will have different offset and scanout_width/scanout_height
> to reference a sub region in the same blob(dmabuf).
>
> I added x/y/scanout_width/scanout_height with a previous commit:
>
> commit e86a93f55463c088aa0b5260e915ffbf9f86c62b
> Author: Dongwon Kim <dongwon....@intel.com>
> Date:   Wed Nov 3 23:51:52 2021 -0700
>
>      virtio-gpu: splitting one extended mode guest fb into n-scanouts
>
> > I find the terminology we use for ScanoutTexture much clearer. It uses
> > backing_{width, height} instead, which indicates quite clearly that
> > the usual x/y/w/h are for the sub-region to be shown.
> yeah agreed. Then dmabuf->width/height should be changed to
> dmabuf->backing_width/height and dmabuf->width/height will be replacing
> dmabuf->scanout_width/scanout_height. I guess this is what you meant,
> right?
>

right, can you send a new patch?
thanks


> > I think we should have a preliminary commit that renames
> > scanout_{width, height}.
> >
> > Please give some help/hints on how to actually test this code too.
>
> So this patch is just to make things look consistent in the code level.
> Having offset (0,0) in this function call for all different scanouts
> didn't look right to me. This code change won't make anything done
> differently though. So no test is applicable.
>
> >
> > Thanks!
> >
> >
> >     ---
> >      ui/gtk-egl.c     | 3 ++-
> >      ui/gtk-gl-area.c | 3 ++-
> >      2 files changed, 4 insertions(+), 2 deletions(-)
> >
> >     diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
> >     index 19130041bc..e99e3b0d8c 100644
> >     --- a/ui/gtk-egl.c
> >     +++ b/ui/gtk-egl.c
> >     @@ -257,7 +257,8 @@ void
> >     gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
> >
> >          gd_egl_scanout_texture(dcl, dmabuf->texture,
> >                                 dmabuf->y0_top, dmabuf->width,
> >     dmabuf->height,
> >     -                           0, 0, dmabuf->width, dmabuf->height);
> >     +                           dmabuf->x, dmabuf->y,
> >     dmabuf->scanout_width,
> >     +                           dmabuf->scanout_height);
> >
> >          if (dmabuf->allow_fences) {
> >              vc->gfx.guest_fb.dmabuf = dmabuf;
> >     diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c
> >     index c384a1516b..1605818bd1 100644
> >     --- a/ui/gtk-gl-area.c
> >     +++ b/ui/gtk-gl-area.c
> >     @@ -299,7 +299,8 @@ void
> >     gd_gl_area_scanout_dmabuf(DisplayChangeListener *dcl,
> >
> >          gd_gl_area_scanout_texture(dcl, dmabuf->texture,
> >                                     dmabuf->y0_top, dmabuf->width,
> >     dmabuf->height,
> >     -                               0, 0, dmabuf->width, dmabuf->height);
> >     +                               dmabuf->x, dmabuf->y,
> >     dmabuf->scanout_width,
> >     +                               dmabuf->scanout_height);
> >
> >          if (dmabuf->allow_fences) {
> >              vc->gfx.guest_fb.dmabuf = dmabuf;
> >     --
> >     2.34.1
> >
> >
> >
> >
> > --
> > Marc-André Lureau
>


-- 
Marc-André Lureau

Reply via email to