Ilija Hadzic's Virtual CRTCs feature discuss

Daniel Vetter daniel at ffwll.ch
Wed Aug 27 10:54:06 PDT 2014


Please don't drop mailing lists, especially when you've dug out some
good information like the stuff below. Readding dri-devel.
-Danel

On Wed, Aug 27, 2014 at 7:21 PM, Derek <derek0883 at gmail.com> wrote:
> Hi Daniel
> Thanks, Hans Verkuil's git repository is here
> git://linuxtv.org/hverkuil/media_tree.git. branch name vivid2.
> his slide is here:
> http://events.linuxfoundation.org/sites/events/files/slides/v4l2-testing.pdf
> And I'm agree that it isn't for virtual drm driver.
>
> I found that there are two virtual drm driver in kernel source code.
> first one is vmwgfx      driver/gpu/drm/vmwgfx
> according to
> http://mesa3d.org/vmware-guest.html
> This driver gives a Linux virtual machine access to the host's GPU for
> hardware-accelerated 3D.
>
> another one is gxl  drivers/gpu/drm/gxl
> It is for readhat virtualization KVM + spice.
>
> and seems drm infrastructure support virtual driver already. just search
> DRM_MODE_ENCODER_VIRTUAL/DRM_MODE_CONNECTOR_VIRTUAL
>
> both driver need user space XServer driver support.
>
> I will take a look these drivers find out if i can use similar driver to
> create virtual CRTC based on drm without extra userspace xserver driver. and
> develop a virtualMonitor which allow you to use compute, tablet, smartphone
> as a second monitor for your primary computer.  an example page is
> http://virtualmonitor.github.io
>
> Thanks a lots
>
> Best wishes
> Derek
>
>
>
> On Tue, Aug 26, 2014 at 1:18 AM, Daniel Vetter <daniel at ffwll.ch> wrote:
>>
>> On Mon, Aug 25, 2014 at 12:02:09PM -0700, Derek wrote:
>> > Hi, Daniel
>> > Thanks for your response!
>> > Talking about v4l's virtual gpu driver?  Could you please tell some more
>> > informations. is this driver in
>> > git.linuxtv.org/cgit.cgi/media_tree.git
>> > I want to take a look this driver. but I can't find it in their git
>> > repository. Or is there any introduction post related this driver?
>> > Thanks.
>>
>> It isn't merged yet afaik, but Hans Verkuil has made a nice presentation
>> about it at LinuxCon. Unfortunately the linuxcon page doesn't even have
>> the slides afaics.
>>
>>
>> http://lccona14.sched.org/event/2e156d3ce84309b2932f2e7a512904e0#.U_xCcjSmXmE
>>
>> The driver was called vidid (there's an older one called vidi apparently).
>> But I don't think it's a good model for a virtual drm driver, if that's
>> why you want to look at it. Just mentioned it to show that there's lots of
>> uses for virtual drivers.
>> -Daniel
>>
>> >
>> > Best wishes
>> > Derek
>> >
>> >
>> > On Mon, Aug 25, 2014 at 6:12 AM, Daniel Vetter <daniel at ffwll.ch> wrote:
>> >
>> > > On Mon, Aug 18, 2014 at 03:35:16PM -0700, Derek wrote:
>> > > > Hi every one
>> > > > I'm currently working on VirtualMonitor in my leisure time. It
>> > > > allows you
>> > > > to use compute/tablet/smartphone as a second monitor for your
>> > > > primary
>> > > > computer. please refer to http://virtualmonitor.github.io for more
>> > > > information. Currently I have released very basic version for
>> > > > windows2000-windows7 to demonstrate the project is feasible. When I
>> > > > was
>> > > > trying to make a further step on windows, I realized it is difficult
>> > > > for
>> > > an
>> > > > individual, as it is not open source and also without technical
>> > > > support
>> > > > from Microsoft.
>> > > >
>> > > > Then I want to move to linux, and I found Ilija Hadzic's post about
>> > > Virtual
>> > > > CRTCs. his post is here:
>> > > >
>> > >
>> > > http://lists.freedesktop.org/archives/dri-devel/2011-November/015975.html
>> > > > In his implementation, GPU driver can create arbitrary number of
>> > > > CRTCs
>> > > > (configurable by user) instead of only those CRTCs that represent
>> > > > real
>> > > > hardware.
>> > > > It is very useful not only for VirtualMonitor, but also
>> > > > VNC/Virtualization/USB display etc. based on this implementation
>> > > > those
>> > > > application will be able to take full advantage of the physical
>> > > > graphic
>> > > > card(3D acceleration).
>> > > >
>> > > > I want raise Ilijia's original question agian, if anybody in this
>> > > community
>> > > > think Virtual CRTCs is useful, and willing to work together to make
>> > > > a
>> > > > further progress.
>> > > > My thought is if can implement a driver independent layer between
>> > > > dri and
>> > > > vendor specific GPU driver, with some general API. maybe implement
>> > > > this
>> > > > based one vendor related GPU first? e.g. based on Ilijia's
>> > > > implementation
>> > > > for Radeon as a daemon?
>> > > >
>> > > > GPU driver is not my expertise, If some expert from this community
>> > > > think
>> > > > this feature is interesting, and willing to initiate a project for
>> > > > this
>> > > > feature, that will be great. Then people can work and discuss
>> > > > together.
>> > > >
>> > > > Any comments regarding to Virtual CRTC or VirtualMonitor are very
>> > > welcome.
>> > > > Thanks.
>> > >
>> > > I think the concept is overall sound (haven't looked at the old
>> > > patches in
>> > > detail).For the actual implementation I think a separate virtual drm
>> > > driver is now
>> > > the better approach, since with dma-buf and soon native fence support
>> > > we
>> > > can do this now properly.
>> > >
>> > > And especially now that we have multi-gpu support in X it should
>> > > integrate
>> > > almost seamlessly into X (and other display managers with multi-gpu
>> > > support). Instead of requering special support in all drivers.
>> > >
>> > > Another thing for which iirc no one ever proposed a decent solution is
>> > > synchronization to consumers of the frontbuffers for virtual gpus. So
>> > > I
>> > > guess the driver-private ioctl interface to make that magic work will
>> > > be
>> > > key.
>> > >
>> > > A (configurable) virtual gpu should also be really useful for
>> > > automated
>> > > testing, e.g. of hot-plug and unplug (both drm core and userspace).
>> > > The
>> > > v4l folks have such a driver (recently massively revamped for 3.18)
>> > > and it
>> > > looks extremely useful.
>> > >
>> > > For the configuration interface I guess a few simple module options to
>> > > get
>> > > started should be enough, eventually we can switch to configfs (or
>> > > similar) to be able to configure and create/destroy virtual gpus at
>> > > runtime.
>> > >
>> > > Just my random thoughts, probably good to kickstart the discussion
>> > > with
>> > > some quick patches and chat with people on #dri-devel on freenode irc.
>> > >
>> > > Cheers, Daniel
>> > > --
>> > > Daniel Vetter
>> > > Software Engineer, Intel Corporation
>> > > +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>> > >
>>
>> --
>> Daniel Vetter
>> Software Engineer, Intel Corporation
>> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>
>



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list