<div dir="ltr">Hi, Daniel<div>Thanks for your response!<br><div>Talking about v4l's virtual gpu driver?  Could you please tell some more informations. is this driver in </div><div><a href="http://git.linuxtv.org/cgit.cgi/media_tree.git">git.linuxtv.org/cgit.cgi/media_tree.git</a>  </div>
</div><div>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.</div><div><br></div><div>Best wishes</div><div>Derek</div></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 25, 2014 at 6:12 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">
<div class="HOEnZb"><div class="h5">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 allows you<br>
> to use compute/tablet/smartphone as a second monitor for your 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 was<br>
> trying to make a further step on windows, I realized it is difficult for an<br>
> individual, as it is not open source and also without technical support<br>
> from Microsoft.<br>
><br>
> Then I want to move to linux, and I found Ilija Hadzic's post about Virtual<br>
> CRTCs. his post is here:<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 CRTCs<br>
> (configurable by user) instead of only those CRTCs that represent real<br>
> hardware.<br>
> It is very useful not only for VirtualMonitor, but also<br>
> VNC/Virtualization/USB display etc. based on this implementation those<br>
> application will be able to take full advantage of the physical graphic<br>
> card(3D acceleration).<br>
><br>
> I want raise Ilijia's original question agian, if anybody in this community<br>
> think Virtual CRTCs is useful, and willing to work together to make a<br>
> further progress.<br>
> My thought is if can implement a driver independent layer between dri and<br>
> vendor specific GPU driver, with some general API. maybe implement this<br>
> based one vendor related GPU first? e.g. based on Ilijia's implementation<br>
> for Radeon as a daemon?<br>
><br>
> GPU driver is not my expertise, If some expert from this community think<br>
> this feature is interesting, and willing to initiate a project for this<br>
> feature, that will be great. Then people can work and discuss together.<br>
><br>
> Any comments regarding to Virtual CRTC or VirtualMonitor are very welcome.<br>
> Thanks.<br>
<br>
</div></div>I think the concept is overall sound (haven't looked at the old patches in<br>
detail).For the actual implementation I think a separate virtual drm driver is now<br>
the better approach, since with dma-buf and soon native fence support we<br>
can do this now properly.<br>
<br>
And especially now that we have multi-gpu support in X it should 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 I<br>
guess the driver-private ioctl interface to make that magic work will be<br>
key.<br>
<br>
A (configurable) virtual gpu should also be really useful for automated<br>
testing, e.g. of hot-plug and unplug (both drm core and userspace). The<br>
v4l folks have such a driver (recently massively revamped for 3.18) and it<br>
looks extremely useful.<br>
<br>
For the configuration interface I guess a few simple module options to 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 with<br>
some quick patches and chat with people on #dri-devel on freenode irc.<br>
<br>
Cheers, Daniel<br>
<span class="HOEnZb"><font color="#888888">--<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>
</font></span></blockquote></div><br></div>