<div dir="ltr"><div class="gmail_extra"><div><div data-smartmail="gmail_signature">Hi Klaus,</div></div>
<br><div class="gmail_quote">2016-08-08 11:17 GMT+02:00 Klaus Espenlaub <span dir="ltr"><<a href="mailto:klaus.espenlaub@oracle.com" target="_blank">klaus.espenlaub@oracle.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Alizée,<span><br>
<br>
On 02.08.2016 16:35, Alizée Penel wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Hi,<br>
<br>
I am working for Genymobile which produces Genymotion Android emulator<br>
(<a href="https://www.genymotion.com/features/" rel="noreferrer" target="_blank">https://www.genymotion.com/fe<wbr>atures/</a>), based on VirtualBox.<br>
<br>
For performance needs, we have to implement a VirtualBox shared memory<br>
driver between guests and the host. We will intent to develop a driver<br>
comparable to the QEMU pipe, implemented by the Google team<br>
(<a href="https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/docs/ANDROID-QEMU-PIPE.TXT" rel="noreferrer" target="_blank">https://android.googlesource.<wbr>com/platform/external/qemu/+/e<wbr>mu-master-dev/docs/ANDROID-QEM<wbr>U-PIPE.TXT</a>).<br>
<br>
We may need a little help from you.<br>
<br>
Would you be interested by this feature ? If we develop a such driver,<br>
would you put it upstream ?<br>
</blockquote>
<br></span>
It is interesting, but in the end we'd prefer a generic (not Android specific) solution here, which helps improving the 2D/3D handling by any VM. The Android/QEMU pipe is pretty special, in the sense that it is usable for both graphics and generic other functionality.<br></blockquote><div><br></div><div>Actually, what we need most is a high bandwidth and low latency channel between the host and guests for our OpenGL stream. It seems we are on the same wavelength for that. </div><div><br></div><div>What we have in mind is using pipes as endpoints. Given how we handle 2D/3D rendering, we need endpoints to be accessible from the userlands (host and guests). This is why this channel could be used for other functionalities and not only for the display.<br></div><div><br></div><div>Our specific use case is Windows, MacOS and Linux for the host side and Android for the guest side.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Right now it's too early to decide if the solution would be worth upstreaming. As long as it doesn't have negative effects on existing code or guest coverage I hope that the quality of what you're doing is good enough to integrate it. We don't want to make anyone's life unnecessarily difficult, and having features in the 'official' VirtualBox release is normally in the best interest of all users.</blockquote><div><br></div><div>Then, we will wait for your decision when we submit our patches but we are aware if we want our device to be upstreamed, we will need to add the missing components on guest side, in the guest additions for Linux, Windows and Mac, obviously.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
As far went our researches in VirtualBox sources, it seems that HGSMI<br>
interface is what we need. Am I wrong ?<br>
</blockquote>
<br></span>
HGSMI is a solution specific to the graphics device which works using shared memory, and is actively used there for 3D accel with the existing device emulation and drivers inside the VM.<br>
<br>
Of course you can use it for doing more than graphics, but it's pushing the software architecture a little. Using HGSMI is only possible if the VGA device is active.<br></blockquote><div><br></div><div><div>Do you mind if we "extract" HGSMI from graphic devices in order to be also usable for others devices ? Or do you have another idea about this matter ?</div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Klaus<br>
______________________________<wbr>_________________<br>
vbox-dev mailing list<br>
<a href="mailto:vbox-dev@virtualbox.org" target="_blank">vbox-dev@virtualbox.org</a><br>
<a href="https://www.virtualbox.org/mailman/listinfo/vbox-dev" rel="noreferrer" target="_blank">https://www.virtualbox.org/mai<wbr>lman/listinfo/vbox-dev</a><br>
</blockquote></div><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">-- <br>Alizée PENEL<br>Software Engineer<br><a href="mailto:apenel@genymobile.com" target="_blank">apenel@genymobile.com</a><br><a href="http://www.genymobile.com/" target="_blank">www.genymobile.com</a><br></div></div>