Bug 77260 - getting stuck before eglswapbuffers in app without wl_shell and wl_registry components
Summary: getting stuck before eglswapbuffers in app without wl_shell and wl_registry c...
Status: RESOLVED INVALID
Alias: None
Product: Wayland
Classification: Unclassified
Component: wayland (show other bugs)
Version: 1.4.0
Hardware: All All
: highest blocker
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-10 05:48 UTC by Rohit Nandan
Modified: 2014-04-10 09:43 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Rohit Nandan 2014-04-10 05:48:52 UTC
I am developing a opengles app and it works fine when I use wl_shell and wl_registry but not able execute glclearcolour when I didn't use them.
Can you provide me theory beside it and why I'm blocked.In documentation you didn't mentioned any such mandatory usage of wl_shell and wl_registry.
Comment 1 Pekka Paalanen 2014-04-10 06:21:50 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?
Comment 2 Rohit Nandan 2014-04-10 08:45:45 UTC
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.
>
>
Comment 3 Pekka Paalanen 2014-04-10 09:00:53 UTC
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?
Comment 4 Rohit Nandan 2014-04-10 09:37:50 UTC
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.
>
>
Comment 5 Pekka Paalanen 2014-04-10 09:43:33 UTC
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.