Summary: | getting stuck before eglswapbuffers in app without wl_shell and wl_registry components | ||
---|---|---|---|
Product: | Wayland | Reporter: | Rohit Nandan <pulkitnandan> |
Component: | wayland | Assignee: | Wayland bug list <wayland-bugs> |
Status: | RESOLVED INVALID | QA Contact: | |
Severity: | blocker | ||
Priority: | highest | CC: | pulkitnandan |
Version: | 1.4.0 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Rohit Nandan
2014-04-10 05:48:52 UTC
I am puzzled about your question. To create an EGLSurface, you will need to create a wl_surface as the first step. You cannot do that without creating a wl_registry, binding to wl_compositor, and sending a wl_compositor request to create the wl_surface. Furthermore, the wl_surface will not be mapped until you tell the server what it is. You are creating a top-level window, so you have to use wl_shell or xdg_shell to say it is a top-level window. To access wl_shell or xdg_shell, you again need wl_registry. If you do not tell the server what the wl_surface is for, the surface will never be mapped, and hence wl_surface.frame callbacks will never fire. EGL will internally wait for the frame callback of the previous eglSwapBuffers, if you have swap interval greater than 0. So, without mapping a surface, EGL can indeed get stuck, because the frames you render will never get to screen. But I still do not understand how you could ever work without wl_registry. Are you not telling the whole story, like are you using a toolkit of some kind? Or are you trying to do off-screen rendering without a real window? What EGL implementation are you using? On what platform? What do you mean by blocked, exactly? Have a gdb backtrace? EGL 1.4, ubuntu 12.04 ,x64. Had no info of shell and registry On Thu, Apr 10, 2014 at 11:51 AM, <bugzilla-daemon@freedesktop.org> wrote: > *Comment # 1 <https://bugs.freedesktop.org/show_bug.cgi?id=77260#c1> on > bug 77260 <https://bugs.freedesktop.org/show_bug.cgi?id=77260> from Pekka > Paalanen <ppaalanen@gmail.com> * > > I am puzzled about your question. > > To create an EGLSurface, you will need to create a wl_surface as the first > step. You cannot do that without creating a wl_registry, binding to > wl_compositor, and sending a wl_compositor request to create the wl_surface. > > Furthermore, the wl_surface will not be mapped until you tell the server what > it is. You are creating a top-level window, so you have to use wl_shell or > xdg_shell to say it is a top-level window. To access wl_shell or xdg_shell, you > again need wl_registry. > > If you do not tell the server what the wl_surface is for, the surface will > never be mapped, and hence wl_surface.frame callbacks will never fire. EGL will > internally wait for the frame callback of the previous eglSwapBuffers, if you > have swap interval greater than 0. So, without mapping a surface, EGL can > indeed get stuck, because the frames you render will never get to screen. > > But I still do not understand how you could ever work without wl_registry. Are > you not telling the whole story, like are you using a toolkit of some kind? Or > are you trying to do off-screen rendering without a real window? > > What EGL implementation are you using? On what platform? > > What do you mean by blocked, exactly? Have a gdb backtrace? > > ------------------------------ > You are receiving this mail because: > > - You are on the CC list for the bug. > - You reported the bug. > > Let me put it in simpler terms: To write your program, you have to know about wl_registry or use a toolkit. The program would not even compile, if you did not do that. If you still have a problem, can you show the source code of your program? Nopes its proprietary On Thu, Apr 10, 2014 at 2:30 PM, <bugzilla-daemon@freedesktop.org> wrote: > *Comment # 3 <https://bugs.freedesktop.org/show_bug.cgi?id=77260#c3> on > bug 77260 <https://bugs.freedesktop.org/show_bug.cgi?id=77260> from Pekka > Paalanen <ppaalanen@gmail.com> * > > Let me put it in simpler terms: > > To write your program, you have to know about wl_registry or use a toolkit. The > program would not even compile, if you did not do that. > > If you still have a problem, can you show the source code of your program? > > ------------------------------ > You are receiving this mail because: > > - You are on the CC list for the bug. > - You reported the bug. > > Closing as invalid. Cannot guess what the user doing, so cannot establish a bug. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.