<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:????
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi Pekka<br><br><br>Thank you very much for your reply.<br><br><pre>>It would definitely be easier if you only need one EGLDisplay, and<br>>can use the EGLNativeWindowType argument of eglCreateWindowSurface() to<br>>choose the target output for the EGLSurface. In this case the required<br>>modifications would be limited to your version of compositor-fbdev.c.</pre>Now,i have adopted above solution.<br><br>Best regards.<br><br>Andy<br><div>> Date: Fri, 10 Oct 2014 09:29:24 +0300<br>> From: ppaalanen@gmail.com<br>> To: williamyang13@hotmail.com<br>> CC: wayland-devel@lists.freedesktop.org<br>> Subject: Re: Question about multi-displays control on wayland protocolþ<br>> <br>> On Fri, 10 Oct 2014 03:35:28 +0000<br>> Yang Andy <williamyang13@hotmail.com> wrote:<br>> <br>> > Hi Pekka<br>> > <br>> > Thank you very much for your reply.<br>> > <br>> > I got your meaning,but i have another question.<br>> > <br>> > Is there any necessary for modify weston/compositor?<br>> > <br>> > Because i investigate source code[compositor-fbdev.c],and find that compositor open device [/dev/fb0].<br>> > <br>> > It seems that the compositor is constant with /dev/fb0,how does compositor direct surfaces to specific outputs(fb0/fb1...)<br>> > <br>> <br>> Right, if you have multiple monitors attached, the legacy fbdev<br>> interface is not going to be enough at all. Therefore you cannot use<br>> compositor-fbdev.c. Even the EGL support in compositor-fbdev.c is a far<br>> stretch we do not really like, because fbdev should just die.<br>> <br>> The recommended solution is to move to a kernel DRM driver, and use the<br>> compositor-drm.c backend. I understand it might not be feasible for<br>> you, if you don't have a DRM driver and an EGL stack to go with it, but<br>> that is the direction you should be pushing for in the long run.<br>> <br>> If you really are stuck with using fbdev, you will need to write (fork)<br>> and maintain your own fbdev backend.<br>> <br>> I'm not sure how your EGL integration would work, because obviously<br>> EGL_DEFAULT_DISPLAY cannot specify which output to target. Probably<br>> your proprietary EGL stack has proprietary ways to choose the right<br>> /dev/fb* to target, but for that too you will need to modify the<br>> existing code in Weston.<br>> <br>> If you need several EGLdisplays, e.g. one per /dev/fb*, then you may<br>> need to modify Weston even more, because I don't think it supports<br>> multiple renderer instances at the same time, and currently gl-renderer<br>> assumes a single EGLDisplay. Furthermore, if you create multiple<br>> EGLDisplays, then initializing EGL_WL_bind_wayland_display extension<br>> properly may be an issue: will you initialize it for each EGLDisplay<br>> separately, or for just one? Both ways cause side-effects that your EGL<br>> stack needs to correctly handle, and they are probably unexpected (not<br>> implemented or never tested), so proceed with caution.<br>> <br>> It would definitely be easier if you only need one EGLDisplay, and<br>> can use the EGLNativeWindowType argument of eglCreateWindowSurface() to<br>> choose the target output for the EGLSurface. In this case the required<br>> modifications would be limited to your version of compositor-fbdev.c.<br>> <br>> It all depends on the EGL implementation you have.<br>> <br>> If you could use compositor-drm.c, it would all just work without<br>> modifications.<br>> <br>> <br>> Thanks,<br>> pq<br></div>                                    </div></body>
</html>