~emersion/public-inbox

1

wlr_output_commit: Tried to commit when a frame is pending

Tudor Roman
Details
Message ID
<d769215e-7699-8883-4f60-4dfd70dfd03d@gmail.com>
DKIM signature
pass
Download raw message
Hello,

I am currently learning wlroots and I got stuck on this issue.

I am learning by trying to recreate/reimplement tinywl in C++, studying
each encountered function.

For some reason, on my laptop (with intel graphics), the following error
happens in one in two frames:

2020-01-22 13:07:22 - [types/wlr_output.c:434] Tried to commit when a
frame is pending

It does not happen on my desktop, which has nvidia proprietary graphics.
I am running the compositor in an X11 window.

I tried for many hours to find the problem and I couldn't get to any
conclusion. The rendering code is identical to tinywl's. Tinywl and sway
do not show this error.

I even read wlroots code to see when a frame gets pending and when it's
not. It didn't help me.

Can you help me with this? The code is here:
https://git.sr.ht/~tudor/cardboard/tree/master/cardboard/Output.cpp#L29

--

Thank you very much,

Tudor Roman
Details
Message ID
<uQI3OUooJ5jP9zFqX3Ec90eNvVBt62JT24ly63NBa5Auh4BgQXjxBKcbRBkaA4GE79HDSO1U9q0FppovURdTF9vIO5pL5yFvrVNDSzU0_9Q=@emersion.fr>
In-Reply-To
<d769215e-7699-8883-4f60-4dfd70dfd03d@gmail.com> (view parent)
DKIM signature
pass
Download raw message
On Thursday, January 23, 2020 9:17 PM, Tudor Roman <tudurom@gmail.com> wrote:

> Hello,
>
> I am currently learning wlroots and I got stuck on this issue.
>
> I am learning by trying to recreate/reimplement tinywl in C++, studying
> each encountered function.
>
> For some reason, on my laptop (with intel graphics), the following error
> happens in one in two frames:
>
> 2020-01-22 13:07:22 - [types/wlr_output.c:434] Tried to commit when a
> frame is pending
>
> It does not happen on my desktop, which has nvidia proprietary graphics.
> I am running the compositor in an X11 window.
>
> I tried for many hours to find the problem and I couldn't get to any
> conclusion. The rendering code is identical to tinywl's. Tinywl and sway
> do not show this error.
>
> I even read wlroots code to see when a frame gets pending and when it's
> not. It didn't help me.
>
> Can you help me with this? The code is here:
> https://git.sr.ht/~tudor/cardboard/tree/master/cardboard/Output.cpp#L29

This error typically means you're submitting a frame outside of the
output "frame" event handler. Checking for all wlr_output_commit calls
might help.