summaryrefslogtreecommitdiff
path: root/src/i830_driver.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-06-09 10:03:08 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-06-09 10:03:29 +0100
commit8c1a8d22978f143044cc3cd0ff2ade5736ee9d48 (patch)
treeda63b3fd81cd3fd00fcb758afa3f16feff4f54b1 /src/i830_driver.c
parent994aa1ef571ac2ab05f6588f9068d33b536c7a37 (diff)
Revert "xp:trapezoids"
This reverts commit f429fb9d872950705e11171d0e7407fb7673c786. An experimental patch I forgot was on my main branch as I was bugfixing. ARGH!
Diffstat (limited to 'src/i830_driver.c')
-rw-r--r--src/i830_driver.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index b7717c79..eed755c4 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -824,6 +824,31 @@ enum pipe {
PIPE_B,
};
+/**
+ * Intialiazes the hardware for the 3D pipeline use in the 2D driver.
+ *
+ * Some state caching is performed to avoid redundant state emits. This
+ * function is also responsible for marking the state as clobbered for DRI
+ * clients.
+ */
+void IntelEmitInvarientState(ScrnInfoPtr scrn)
+{
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+ /* If we've emitted our state since the last clobber by another client,
+ * skip it.
+ */
+ if (intel->last_3d != LAST_3D_OTHER)
+ return;
+
+ if (!IS_I965G(intel)) {
+ if (IS_I9XX(intel))
+ I915EmitInvarientState(scrn);
+ else
+ I830EmitInvarientState(scrn);
+ }
+}
+
static void
I830BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
{