Joel Pilon(deleted)
|
RE: Using KD_WINDOWPROPERTY_FREEZE_QNX with patch 1.5.15.2856 in Foundry27
|
Joel Pilon(deleted)
08/26/2010 3:50 PM
post64677
|
RE: Using KD_WINDOWPROPERTY_FREEZE_QNX with patch 1.5.15.2856 in Foundry27
With that version of CM it's not possible to atomically update window properties with a post.
-Joel
-----Original Message-----
From: Gervais Mulongoy [mailto:community-noreply@qnx.com]
Sent: Thu 8/26/2010 3:45 PM
To: cwm-graphics
Subject: Using KD_WINDOWPROPERTY_FREEZE_QNX with patch 1.5.15.2856 in Foundry27
Hello,
The customer is trying to implement a smooth scrolling algorithm where they need to swap buffers and change window
properties such as KD_WINDOWPROPERTY_SOURCE_POSITION_QNX in one step without intermediate states becoming visible on the
display (basically they want the algo to be atomic). To that end, they began testing and ran into an issue that can be
distilled into the test case below.
They use the following steps in a test program (ie. gles1-kd-gears) in a loop:
1) Render something
2) Call kdSetWindowPropertybv(window, KD_WINDOWPROPERTY_FREEZE_QNX, true)
3) Call eglSwapBuffers()
4) Call kdSetWindowPropertybv(window, KD_WINDOWPROPERTY_FREEZE_QNX, false)
The first iteration of the loop behaves as expected (the display stays black), but any subsequent iteration
eglSwapBuffers() doesn't return, and the process becomes unresponsive.
My first question, is it correct to use the freeze property in the way described above?
Second, since this is a patch on F27, is the freeze property fully implemented in the patch?
Third, do we have any other (better) mechanisms they could use to implement their smooth scrolling?
My apologies if this is already documented somewhere and I missed the obvious.
Thanks
_______________________________________________
CWM/OpenKODE
http://community.qnx.com/sf/go/post64676
|
|
|
Etienne Belanger(deleted)
|
RE: Using KD_WINDOWPROPERTY_FREEZE_QNX with patch 1.5.15.2856 in Foundry27
|
Etienne Belanger(deleted)
08/27/2010 8:59 AM
post64751
|
RE: Using KD_WINDOWPROPERTY_FREEZE_QNX with patch 1.5.15.2856 in Foundry27
The freeze property suspends the handling of posts from a window.
Therefore, eglSwapBuffers will block when it runs out of buffers. After
the first post, the client only has 1 buffer, so setting a freeze will
cause eglSwapBuffers to block until the freeze is removed. The property
was added as a big hammer for delegates that want to stop apps from
updating. Not as a way of getting atomic operations. We implemented some
form of atomic operations, probably on a different branch.
-Etienne Belanger
-----Original Message-----
From: Gervais Mulongoy [mailto:community-noreply@qnx.com]
Sent: August 26, 2010 3:45 PM
To: cwm-graphics
Subject: Using KD_WINDOWPROPERTY_FREEZE_QNX with patch 1.5.15.2856 in
Foundry27
Hello,
The customer is trying to implement a smooth scrolling algorithm where
they need to swap buffers and change window properties such as
KD_WINDOWPROPERTY_SOURCE_POSITION_QNX in one step without intermediate
states becoming visible on the display (basically they want the algo to
be atomic). To that end, they began testing and ran into an issue that
can be distilled into the test case below.
They use the following steps in a test program (ie. gles1-kd-gears) in a
loop:
1) Render something
2) Call kdSetWindowPropertybv(window, KD_WINDOWPROPERTY_FREEZE_QNX,
true)
3) Call eglSwapBuffers()
4) Call kdSetWindowPropertybv(window, KD_WINDOWPROPERTY_FREEZE_QNX,
false)
The first iteration of the loop behaves as expected (the display stays
black), but any subsequent iteration eglSwapBuffers() doesn't return,
and the process becomes unresponsive.
My first question, is it correct to use the freeze property in the way
described above?
Second, since this is a patch on F27, is the freeze property fully
implemented in the patch?
Third, do we have any other (better) mechanisms they could use to
implement their smooth scrolling?
My apologies if this is already documented somewhere and I missed the
obvious.
Thanks
_______________________________________________
CWM/OpenKODE
http://community.qnx.com/sf/go/post64676
|
|
|