First import
[xorg_rtime.git] / xorg-server-1.4 / hw / dmx / doc / html / dmxsync_8c.html
blob76a940dd903cd997c57e59081a2ed7d6880fc987
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
5 <title>File Index</title>
6 <link href="doxygen.css" rel="stylesheet" type="text/css">
7 </head>
8 <body>
9 <!-- Generated by Doxygen 1.3.4 -->
10 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
11 <h1>dmxsync.c File Reference</h1><code>#include "<a class="el" href="dmx_8h-source.html">dmx.h</a>"</code><br>
12 <code>#include "<a class="el" href="dmxsync_8h-source.html">dmxsync.h</a>"</code><br>
13 <code>#include "<a class="el" href="dmxstat_8h-source.html">dmxstat.h</a>"</code><br>
14 <code>#include "<a class="el" href="dmxlog_8h-source.html">dmxlog.h</a>"</code><br>
15 <code>#include &lt;sys/time.h&gt;</code><br>
16 <table border=0 cellpadding=0 cellspacing=0>
17 <tr><td></td></tr>
18 <tr><td colspan=2><br><h2>Functions</h2></td></tr>
19 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="dmxsync_8c.html#a7">dmxSyncActivate</a> (const char *interval)</td></tr>
21 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="dmxsync_8c.html#a8">dmxSyncInit</a> (void)</td></tr>
23 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="dmxsync_8c.html#a9">dmxSync</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, Bool now)</td></tr>
25 </table>
26 <hr><a name="_details"></a><h2>Detailed Description</h2>
27 The DMX server code is written to call <a class="el" href="dmxsync_8c.html#a9">dmxSync()</a> whenever an XSync() might be necessary. However, since XSync() requires a two way communication with the other X server, eliminating unnecessary XSync() calls is a key performance optimization. Support for this optimization is provided here. Statistics about XSync() calls and latency are gathered in #dmxstat.c.<p>
28 During the initial conversion from calling XSync() immediately to the XSync() batching method implemented in this file, it was noted that, out of more than 300 <em>x11perf</em> tests, 8 tests became more than 100 times faster, with 68 more than 50X faster, 114 more than 10X faster, and 181 more than 2X faster.<hr><h2>Function Documentation</h2>
29 <a class="anchor" name="a9" doxytag="dmxsync.c::dmxSync" ></a><p>
30 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
31 <tr>
32 <td class="mdRow">
33 <table cellpadding="0" cellspacing="0" border="0">
34 <tr>
35 <td class="md" nowrap valign="top"> void dmxSync </td>
36 <td class="md" valign="top">(&nbsp;</td>
37 <td class="md" nowrap valign="top"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&nbsp;</td>
38 <td class="mdname" nowrap> <em>dmxScreen</em>, </td>
39 </tr>
40 <tr>
41 <td></td>
42 <td></td>
43 <td class="md" nowrap>Bool&nbsp;</td>
44 <td class="mdname" nowrap> <em>now</em></td>
45 </tr>
46 <tr>
47 <td></td>
48 <td class="md">)&nbsp;</td>
49 <td class="md" colspan="2"></td>
50 </tr>
52 </table>
53 </td>
54 </tr>
55 </table>
56 <table cellspacing=5 cellpadding=0 border=0>
57 <tr>
58 <td>
59 &nbsp;
60 </td>
61 <td>
63 <p>
64 Request an XSync() to the display used by <em>dmxScreen</em>. If <em>now</em> is TRUE, call XSync() immediately instead of waiting for the next XSync() batching point. Note that if XSync() batching was deselected with <a class="el" href="dmxsync_8c.html#a7">dmxSyncActivate()</a> before <a class="el" href="dmxsync_8c.html#a8">dmxSyncInit()</a> was called, then no XSync() batching is performed and this function always calles XSync() immediately.<p>
65 (Note that this function uses TimerSet but works correctly in the face of a server generation. See the source for details.)<p>
66 If <em>dmxScreen</em> is <em>NULL</em>, then all pending syncs will be flushed immediately. </td>
67 </tr>
68 </table>
69 <a class="anchor" name="a7" doxytag="dmxsync.c::dmxSyncActivate" ></a><p>
70 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
71 <tr>
72 <td class="mdRow">
73 <table cellpadding="0" cellspacing="0" border="0">
74 <tr>
75 <td class="md" nowrap valign="top"> void dmxSyncActivate </td>
76 <td class="md" valign="top">(&nbsp;</td>
77 <td class="md" nowrap valign="top">const char *&nbsp;</td>
78 <td class="mdname1" valign="top" nowrap> <em>interval</em> </td>
79 <td class="md" valign="top">&nbsp;)&nbsp;</td>
80 <td class="md" nowrap></td>
81 </tr>
83 </table>
84 </td>
85 </tr>
86 </table>
87 <table cellspacing=5 cellpadding=0 border=0>
88 <tr>
89 <td>
90 &nbsp;
91 </td>
92 <td>
94 <p>
95 Request the XSync() batching optimization with the specified <em>interval</em> (in mS). If the <em>interval</em> is 0, 100mS is used. If the <em>interval</em> is less than 0, then the XSync() batching optimization is not requested (e.g., so the -syncbatch -1 command line option can turn off the default 100mS XSync() batching).<p>
96 Note that the parameter to this routine is a string, since it will usually be called from <a class="el" href="dmxinit_8c.html#a40">ddxProcessArgument</a> in #dmxinit.c </td>
97 </tr>
98 </table>
99 <a class="anchor" name="a8" doxytag="dmxsync.c::dmxSyncInit" ></a><p>
100 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
101 <tr>
102 <td class="mdRow">
103 <table cellpadding="0" cellspacing="0" border="0">
104 <tr>
105 <td class="md" nowrap valign="top"> void dmxSyncInit </td>
106 <td class="md" valign="top">(&nbsp;</td>
107 <td class="md" nowrap valign="top">void&nbsp;</td>
108 <td class="mdname1" valign="top" nowrap> </td>
109 <td class="md" valign="top">&nbsp;)&nbsp;</td>
110 <td class="md" nowrap></td>
111 </tr>
113 </table>
114 </td>
115 </tr>
116 </table>
117 <table cellspacing=5 cellpadding=0 border=0>
118 <tr>
119 <td>
120 &nbsp;
121 </td>
122 <td>
125 Initialize the XSync() batching optimization, but only if <a class="el" href="dmxsync_8h.html#a0">dmxSyncActivate</a> was last called with a non-negative value. </td>
126 </tr>
127 </table>
128 <hr>
129 <address>
130 <small>
131 Generated June 29, 2004 for <a
132 href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
133 <a href="http://www.doxygen.org/index.html">doxygen</a>
134 1.3.4.
135 </small>
136 </addres>
137 </hr>
138 </body>
139 </html>