All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Deepak Rawat <drawat.floss@gmail.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>,
	linux-hyperv@vger.kernel.org,
	Stephen Hemminger <sthemmin@microsoft.com>,
	David Airlie <airlied@linux.ie>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	dri-devel@lists.freedesktop.org,
	Michael Kelley <mikelley@microsoft.com>,
	Jork Loeser <jloeser@microsoft.com>, Wei Hu <weh@microsoft.com>,
	K Y Srinivasan <kys@microsoft.com>
Subject: Re: [RFC PATCH 1/2] drm/hyperv: Add DRM driver for hyperv synthetic video device
Date: Tue, 23 Jun 2020 11:42:25 +0200	[thread overview]
Message-ID: <20200623094225.GJ20149@phenom.ffwll.local> (raw)
In-Reply-To: <f6923296368dc676df10e75593ebc18575efc476.camel@gmail.com>

On Mon, Jun 22, 2020 at 03:20:34PM -0700, Deepak Rawat wrote:
> On Mon, 2020-06-22 at 14:46 +0200, Gerd Hoffmann wrote:
> >   Hi,
> > 
> > > +/* Should be done only once during init and resume */
> > > +static int synthvid_update_vram_location(struct hv_device *hdev,
> > > +					  phys_addr_t vram_pp)
> > > +{
> > > +	struct hyperv_device *hv = hv_get_drvdata(hdev);
> > > +	struct synthvid_msg *msg = (struct synthvid_msg *)hv->init_buf;
> > > +	unsigned long t;
> > > +	int ret = 0;
> > > +
> > > +	memset(msg, 0, sizeof(struct synthvid_msg));
> > > +	msg->vid_hdr.type = SYNTHVID_VRAM_LOCATION;
> > > +	msg->vid_hdr.size = sizeof(struct synthvid_msg_hdr) +
> > > +		sizeof(struct synthvid_vram_location);
> > > +	msg->vram.user_ctx = msg->vram.vram_gpa = vram_pp;
> > > +	msg->vram.is_vram_gpa_specified = 1;
> > > +	synthvid_send(hdev, msg);
> > 
> > That suggests it is possible to define multiple framebuffers in vram,
> > then pageflip by setting vram.vram_gpa.  If that is the case I'm
> > wondering whenever vram helpers are a better fit maybe?  You don't
> > have
> > to blit each and every display update then.
> 
> Thanks for the review. Unfortunately only the first vmbus message take
> effect and subsequent calls are ignored. I originally implemented using
> vram helpers but I figured out calling this vmbus message again won't
> change the vram location.

I think that needs a very big comment. Maybe even enforce that with a
"vram_gpa_set" boolean in the device structure, and complain if we try to
do that twice.

Also I guess congrats to microsoft for defining things like that :-/
-Daniel

> 
> > 
> > FYI: cirrus goes the blit route because (a) the amount of vram is
> > very
> > small so trying to store multiple framebuffers there is out of
> > question,
> > and (b) cirrus converts formats on the fly to hide some hardware
> > oddities.
> > 
> > take care,
> >   Gerd
> > 
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch>
To: Deepak Rawat <drawat.floss@gmail.com>
Cc: linux-hyperv@vger.kernel.org,
	Stephen Hemminger <sthemmin@microsoft.com>,
	David Airlie <airlied@linux.ie>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	dri-devel@lists.freedesktop.org,
	Michael Kelley <mikelley@microsoft.com>,
	Jork Loeser <jloeser@microsoft.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Wei Hu <weh@microsoft.com>,
	K Y Srinivasan <kys@microsoft.com>
Subject: Re: [RFC PATCH 1/2] drm/hyperv: Add DRM driver for hyperv synthetic video device
Date: Tue, 23 Jun 2020 11:42:25 +0200	[thread overview]
Message-ID: <20200623094225.GJ20149@phenom.ffwll.local> (raw)
In-Reply-To: <f6923296368dc676df10e75593ebc18575efc476.camel@gmail.com>

On Mon, Jun 22, 2020 at 03:20:34PM -0700, Deepak Rawat wrote:
> On Mon, 2020-06-22 at 14:46 +0200, Gerd Hoffmann wrote:
> >   Hi,
> > 
> > > +/* Should be done only once during init and resume */
> > > +static int synthvid_update_vram_location(struct hv_device *hdev,
> > > +					  phys_addr_t vram_pp)
> > > +{
> > > +	struct hyperv_device *hv = hv_get_drvdata(hdev);
> > > +	struct synthvid_msg *msg = (struct synthvid_msg *)hv->init_buf;
> > > +	unsigned long t;
> > > +	int ret = 0;
> > > +
> > > +	memset(msg, 0, sizeof(struct synthvid_msg));
> > > +	msg->vid_hdr.type = SYNTHVID_VRAM_LOCATION;
> > > +	msg->vid_hdr.size = sizeof(struct synthvid_msg_hdr) +
> > > +		sizeof(struct synthvid_vram_location);
> > > +	msg->vram.user_ctx = msg->vram.vram_gpa = vram_pp;
> > > +	msg->vram.is_vram_gpa_specified = 1;
> > > +	synthvid_send(hdev, msg);
> > 
> > That suggests it is possible to define multiple framebuffers in vram,
> > then pageflip by setting vram.vram_gpa.  If that is the case I'm
> > wondering whenever vram helpers are a better fit maybe?  You don't
> > have
> > to blit each and every display update then.
> 
> Thanks for the review. Unfortunately only the first vmbus message take
> effect and subsequent calls are ignored. I originally implemented using
> vram helpers but I figured out calling this vmbus message again won't
> change the vram location.

I think that needs a very big comment. Maybe even enforce that with a
"vram_gpa_set" boolean in the device structure, and complain if we try to
do that twice.

Also I guess congrats to microsoft for defining things like that :-/
-Daniel

> 
> > 
> > FYI: cirrus goes the blit route because (a) the amount of vram is
> > very
> > small so trying to store multiple framebuffers there is out of
> > question,
> > and (b) cirrus converts formats on the fly to hide some hardware
> > oddities.
> > 
> > take care,
> >   Gerd
> > 
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-06-23  9:42 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-22 11:06 [RFC PATCH 0/2] DRM driver for hyper-v synthetic video device Deepak Rawat
2020-06-22 11:06 ` Deepak Rawat
2020-06-22 11:06 ` [RFC PATCH 1/2] drm/hyperv: Add DRM driver for hyperv " Deepak Rawat
2020-06-22 11:06   ` Deepak Rawat
2020-06-22 12:46   ` Gerd Hoffmann
2020-06-22 12:46     ` Gerd Hoffmann
2020-06-22 22:20     ` Deepak Rawat
2020-06-22 22:20       ` Deepak Rawat
2020-06-23  9:42       ` Daniel Vetter [this message]
2020-06-23  9:42         ` Daniel Vetter
2020-06-23 16:17         ` Gerd Hoffmann
2020-06-23 16:17           ` Gerd Hoffmann
2020-06-25  0:47           ` Deepak Rawat
2020-06-25  0:47             ` Deepak Rawat
2020-06-22 15:19   ` Sam Ravnborg
2020-06-22 15:19     ` Sam Ravnborg
2020-06-22 22:43     ` Deepak Rawat
2020-06-22 22:43       ` Deepak Rawat
2020-06-23  7:59     ` Thomas Zimmermann
2020-06-23  7:59       ` Thomas Zimmermann
2020-06-23  9:12       ` Deepak Rawat
2020-06-23  9:12         ` Deepak Rawat
2020-06-23  9:19         ` Thomas Zimmermann
2020-06-23  9:19           ` Thomas Zimmermann
2020-06-22 18:45   ` kernel test robot
2020-06-23  2:31   ` Dexuan Cui
2020-06-23  2:31     ` Dexuan Cui
2020-06-23  6:48     ` Deepak Rawat
2020-06-23  6:48       ` Deepak Rawat
2020-06-23 21:58       ` Dexuan Cui
2020-06-23 21:58         ` Dexuan Cui
2020-06-22 11:06 ` [RFC PATCH 2/2] MAINTAINERS: Add maintainer for hyperv " Deepak Rawat
2020-06-22 11:06   ` Deepak Rawat
2020-06-28 23:01 ` [RFC PATCH 0/2] DRM driver for hyper-v synthetic " Daniel Vetter
2020-06-28 23:01   ` Daniel Vetter
2020-09-10  8:19 [RFC PATCH 1/2] drm/hyperv: Add DRM driver for hyperv " Tang, Shaofeng
2020-09-11  0:38 ` Deepak Rawat
2020-11-15  9:14   ` Thomas Zimmermann
2020-11-15 17:55     ` Deepak Rawat
2020-11-15 18:58       ` Thomas Zimmermann
2020-11-16  9:58         ` Daniel Vetter
2020-11-16 16:36           ` Deepak Rawat
2020-09-28 15:58 Marcin Skarbek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200623094225.GJ20149@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=airlied@linux.ie \
    --cc=drawat.floss@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=haiyangz@microsoft.com \
    --cc=jloeser@microsoft.com \
    --cc=kraxel@redhat.com \
    --cc=kys@microsoft.com \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=mikelley@microsoft.com \
    --cc=sthemmin@microsoft.com \
    --cc=weh@microsoft.com \
    --cc=wei.liu@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.