summaryrefslogtreecommitdiff
path: root/src/i830_accel.c
diff options
context:
space:
mode:
authorOwain G. Ainsworth <oga@openbsd.org>2010-07-18 16:01:48 +0100
committerOwain G. Ainsworth <oga@openbsd.org>2010-07-18 16:01:48 +0100
commit9290ad77c5eef438ba02fc26334fd85ab3caa009 (patch)
treea2ac0f1be6786545821e7aa75ecbf4bbc332a1f4 /src/i830_accel.c
parent09c5b49b691132d0085c29b74decb45e0d4215e9 (diff)
parentb2f4de3b7fb73bd51b1fd1b2b044862839c9a6ea (diff)
Merge branch 'bleeding_edge-oga' into 2.9.1-oga
Conflicts: src/i830_display.c This has now been commited to cvs, so the branch gets pulled.
Diffstat (limited to 'src/i830_accel.c')
-rw-r--r--src/i830_accel.c71
1 files changed, 1 insertions, 70 deletions
diff --git a/src/i830_accel.c b/src/i830_accel.c
index 0b9195f3..df4f58db 100644
--- a/src/i830_accel.c
+++ b/src/i830_accel.c
@@ -46,80 +46,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "i830_ring.h"
#include "i915_drm.h"
-unsigned long intel_get_pixmap_offset(PixmapPtr pixmap)
-{
- ScreenPtr pScreen = pixmap->drawable.pScreen;
- ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
- intel_screen_private *intel = intel_get_screen_private(scrn);
-
- return (unsigned long)pixmap->devPrivate.ptr -
- (unsigned long)intel->FbBase;
-}
-
unsigned long intel_get_pixmap_pitch(PixmapPtr pixmap)
{
return (unsigned long)pixmap->devKind;
}
-int
-I830WaitLpRing(ScrnInfoPtr scrn, int n, int timeout_millis)
-{
- intel_screen_private *intel = intel_get_screen_private(scrn);
- I830RingBuffer *ring = &intel->ring;
- int iters = 0;
- unsigned int start = 0;
- unsigned int now = 0;
- int last_head = 0;
- unsigned int first = 0;
-
- /* If your system hasn't moved the head pointer in 2 seconds, I'm going to
- * call it crashed.
- */
- if (timeout_millis == 0)
- timeout_millis = 2000;
-
- if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) {
- ErrorF("I830WaitLpRing %d\n", n);
- first = GetTimeInMillis();
- }
-
- while (ring->space < n) {
- ring->head = INREG(LP_RING + RING_HEAD) & I830_HEAD_MASK;
- ring->space = ring->head - (ring->tail + 8);
-
- if (ring->space < 0)
- ring->space += ring->mem->size;
-
- iters++;
- now = GetTimeInMillis();
- if (start == 0 || now < start || ring->head != last_head) {
- if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
- if (now > start)
- ErrorF("space: %d wanted %d\n", ring->space, n);
- start = now;
- last_head = ring->head;
- } else if (now - start > timeout_millis) {
- ErrorF("Error in I830WaitLpRing(), timeout for %d seconds\n",
- timeout_millis/1000);
- ErrorF("space: %d wanted %d\n", ring->space, n);
- intel->uxa_driver = NULL;
- FatalError("lockup\n");
- }
-
- DELAY(10);
- }
-
- if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) {
- now = GetTimeInMillis();
- if (now - first) {
- ErrorF("Elapsed %u ms\n", now - first);
- ErrorF("space: %d wanted %d\n", ring->space, n);
- }
- }
-
- return iters;
-}
-
void i830_debug_flush(ScrnInfoPtr scrn)
{
intel_screen_private *intel = intel_get_screen_private(scrn);
@@ -128,7 +59,7 @@ void i830_debug_flush(ScrnInfoPtr scrn)
intel_batch_emit_flush(scrn);
if (intel->debug_flush & DEBUG_FLUSH_BATCHES)
- intel_batch_submit(scrn);
+ intel_batch_submit(scrn, FALSE);
}
/* The following function sets up the supported acceleration. Call it