summaryrefslogtreecommitdiff
path: root/exa/exa.h
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2006-03-15 00:13:52 +0000
committerEric Anholt <anholt@freebsd.org>2006-03-15 00:13:52 +0000
commita90cff266cc81993ed804fb320c1dbfe5e0d4787 (patch)
tree4c8b498a6404156e09a9cbdeb4206466815e3049 /exa/exa.h
parent693e42114f1127528448126d78a5209dd1198d8d (diff)
Add more doxygen documentation, including notes on WaitMarker() and
MarkSync() that I noticed were needed while reading the VIA driver.
Diffstat (limited to 'exa/exa.h')
-rw-r--r--exa/exa.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/exa/exa.h b/exa/exa.h
index d4d660bf7..2cb200854 100644
--- a/exa/exa.h
+++ b/exa/exa.h
@@ -564,6 +564,11 @@ typedef struct _ExaDriver {
* data with the CPU, but is not important in the current incarnation of
* EXA.
*
+ * Note that drivers should call exaMarkSync() when they have done some
+ * acceleration, rather than their own MarkSync() handler, as otherwise EXA
+ * will be unaware of the driver's acceleration and not sync to it during
+ * fallbacks.
+ *
* MarkSync() is optional.
*/
int (*MarkSync) (ScreenPtr pScreen);
@@ -574,6 +579,10 @@ typedef struct _ExaDriver {
* meaningless, and all rendering by the hardware should be completed before
* WaitMarker() returns.
*
+ * Note that drivers should call exaWaitSync() to wait for all acceleration
+ * to finish, as otherwise EXA will be unaware of the driver having
+ * synchronized, resulting in excessive WaitMarker() calls.
+ *
* WaitMarker() is required of all drivers.
*/
void (*WaitMarker) (ScreenPtr pScreen, int marker);