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