Lines Matching refs:bufmgr_fake

53 	if (bufmgr_fake->bufmgr.debug)			\
149 * bufmgr_fake.
163 * bufmgr_fake.
224 static int clear_fenced(drm_intel_bufmgr_fake *bufmgr_fake,
251 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
253 bufmgr_fake->fence_emit = emit;
254 bufmgr_fake->fence_wait = wait;
255 bufmgr_fake->fence_priv = priv;
259 _fence_emit_internal(drm_intel_bufmgr_fake *bufmgr_fake)
264 if (bufmgr_fake->fence_emit != NULL) {
265 seq = bufmgr_fake->fence_emit(bufmgr_fake->fence_priv);
270 ret = drmCommandWriteRead(bufmgr_fake->fd, DRM_I915_IRQ_EMIT,
282 _fence_wait_internal(drm_intel_bufmgr_fake *bufmgr_fake, int seq)
289 if (bufmgr_fake->fence_wait != NULL) {
290 bufmgr_fake->fence_wait(seq, bufmgr_fake->fence_priv);
291 clear_fenced(bufmgr_fake, seq);
374 hw_seq = *bufmgr_fake->last_dispatch;
380 ret = drmCommandWrite(bufmgr_fake->fd, DRM_I915_IRQ_WAIT,
383 kernel_lied = (ret == 0) && (seq - *bufmgr_fake->last_dispatch <
388 && (seq - *bufmgr_fake->last_dispatch > 0x40000000))
392 if ((ret == -EBUSY) && (hw_seq != *bufmgr_fake->last_dispatch))
404 clear_fenced(bufmgr_fake, seq);
408 _fence_test(drm_intel_bufmgr_fake *bufmgr_fake, unsigned fence)
412 return fence == 0 || FENCE_LTE(fence, bufmgr_fake->last_fence);
422 drm_intel_bufmgr_fake *bufmgr_fake =
433 block->mem = mmAllocMem(bufmgr_fake->heap, sz, align_log2, 0);
442 DRMLISTADDTAIL(block, &bufmgr_fake->lru);
444 block->virtual = (uint8_t *) bufmgr_fake->virtual +
445 block->mem->ofs - bufmgr_fake->low_offset;
456 free_block(drm_intel_bufmgr_fake *bufmgr_fake, struct block *block,
493 drm_intel_bufmgr_fake *bufmgr_fake =
521 drm_intel_bufmgr_fake *bufmgr_fake =
536 evict_lru(drm_intel_bufmgr_fake *bufmgr_fake, unsigned int max_fence)
542 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
555 free_block(bufmgr_fake, block, 0);
563 evict_mru(drm_intel_bufmgr_fake *bufmgr_fake)
569 DRMLISTFOREACHSAFEREVERSE(block, tmp, &bufmgr_fake->lru) {
578 free_block(bufmgr_fake, block, 0);
589 clear_fenced(drm_intel_bufmgr_fake *bufmgr_fake, unsigned int fence_cookie)
594 bufmgr_fake->last_fence = fence_cookie;
595 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->fenced) {
598 if (_fence_test(bufmgr_fake, block->fence)) {
612 DRMLISTADDTAIL(block, &bufmgr_fake->lru);
622 bufmgr_fake->last_fence);
632 fence_blocks(drm_intel_bufmgr_fake *bufmgr_fake, unsigned fence)
636 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->on_hardware) {
647 DRMLISTADDTAIL(block, &bufmgr_fake->fenced);
650 assert(DRMLISTEMPTY(&bufmgr_fake->on_hardware));
656 drm_intel_bufmgr_fake *bufmgr_fake =
670 if (!bufmgr_fake->thrashing) {
671 while (evict_lru(bufmgr_fake, 0))
678 if (bufmgr_fake->thrashing)
679 bufmgr_fake->thrashing = 20;
685 while (!DRMLISTEMPTY(&bufmgr_fake->fenced)) {
686 uint32_t fence = bufmgr_fake->fenced.next->fence;
687 _fence_wait_internal(bufmgr_fake, fence);
693 if (!DRMLISTEMPTY(&bufmgr_fake->on_hardware)) {
694 while (!DRMLISTEMPTY(&bufmgr_fake->fenced)) {
695 uint32_t fence = bufmgr_fake->fenced.next->fence;
696 _fence_wait_internal(bufmgr_fake, fence);
699 if (!bufmgr_fake->thrashing) {
702 bufmgr_fake->thrashing = 20;
708 while (evict_mru(bufmgr_fake))
725 drm_intel_bufmgr_fake_wait_idle(drm_intel_bufmgr_fake *bufmgr_fake)
729 cookie = _fence_emit_internal(bufmgr_fake);
730 _fence_wait_internal(bufmgr_fake, cookie);
742 drm_intel_bufmgr_fake *bufmgr_fake =
749 _fence_wait_internal(bufmgr_fake, bo_fake->block->fence);
755 drm_intel_bufmgr_fake *bufmgr_fake =
758 pthread_mutex_lock(&bufmgr_fake->lock);
760 pthread_mutex_unlock(&bufmgr_fake->lock);
770 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
773 pthread_mutex_lock(&bufmgr_fake->lock);
775 bufmgr_fake->need_fence = 1;
776 bufmgr_fake->fail = 0;
782 drm_intel_bufmgr_fake_wait_idle(bufmgr_fake);
787 assert(DRMLISTEMPTY(&bufmgr_fake->fenced));
788 assert(DRMLISTEMPTY(&bufmgr_fake->on_hardware));
790 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
791 assert(_fence_test(bufmgr_fake, block->fence));
795 pthread_mutex_unlock(&bufmgr_fake->lock);
804 drm_intel_bufmgr_fake *bufmgr_fake;
807 bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
826 bo_fake->id = ++bufmgr_fake->buf_nr;
869 drm_intel_bufmgr_fake *bufmgr_fake;
872 bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
885 bo_fake->id = ++bufmgr_fake->buf_nr;
899 drm_intel_bufmgr_fake *bufmgr_fake =
903 pthread_mutex_lock(&bufmgr_fake->lock);
905 pthread_mutex_unlock(&bufmgr_fake->lock);
919 drm_intel_bufmgr_fake *bufmgr_fake =
928 free_block(bufmgr_fake, bo_fake->block, 1);
946 drm_intel_bufmgr_fake *bufmgr_fake =
949 pthread_mutex_lock(&bufmgr_fake->lock);
951 pthread_mutex_unlock(&bufmgr_fake->lock);
964 drm_intel_bufmgr_fake *bufmgr_fake =
968 pthread_mutex_lock(&bufmgr_fake->lock);
987 pthread_mutex_unlock(&bufmgr_fake->lock);
997 drm_intel_bufmgr_fake *bufmgr_fake =
1004 drm_intel_bufmgr_fake_wait_idle(bufmgr_fake);
1011 * nested display loops, and it is used internally in bufmgr_fake
1028 bufmgr_fake->fail = 1;
1070 drm_intel_bufmgr_fake *bufmgr_fake =
1074 pthread_mutex_lock(&bufmgr_fake->lock);
1076 pthread_mutex_unlock(&bufmgr_fake->lock);
1084 drm_intel_bufmgr_fake *bufmgr_fake =
1106 drm_intel_bufmgr_fake *bufmgr_fake =
1110 pthread_mutex_lock(&bufmgr_fake->lock);
1112 pthread_mutex_unlock(&bufmgr_fake->lock);
1135 drm_intel_fake_kick_all_locked(drm_intel_bufmgr_fake *bufmgr_fake)
1139 bufmgr_fake->performed_rendering = 0;
1142 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->on_hardware) {
1146 free_block(bufmgr_fake, block, 0);
1158 drm_intel_bufmgr_fake *bufmgr_fake;
1161 bufmgr_fake = (drm_intel_bufmgr_fake *) bo->bufmgr;
1167 * This is not so much of a problem for bufmgr_fake, but TTM refuses,
1174 bufmgr_fake->need_fence = 1;
1180 bufmgr_fake->fail = 1;
1202 drm_intel_bufmgr_fake_wait_idle(bufmgr_fake);
1219 DRMLISTADDTAIL(bo_fake->block, &bufmgr_fake->on_hardware);
1222 bufmgr_fake->need_fence = 1;
1230 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
1233 cookie = _fence_emit_internal(bufmgr_fake);
1234 fence_blocks(bufmgr_fake, cookie);
1242 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
1244 pthread_mutex_destroy(&bufmgr_fake->lock);
1245 mmDestroy(bufmgr_fake->heap);
1254 drm_intel_bufmgr_fake *bufmgr_fake =
1261 pthread_mutex_lock(&bufmgr_fake->lock);
1289 if (bufmgr_fake->debug) {
1300 pthread_mutex_unlock(&bufmgr_fake->lock);
1331 drm_intel_bufmgr_fake *bufmgr_fake =
1378 bufmgr_fake->performed_rendering = 1;
1387 drm_intel_bufmgr_fake *bufmgr_fake =
1419 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
1421 bufmgr_fake->exec = exec;
1422 bufmgr_fake->exec_priv = priv;
1429 drm_intel_bufmgr_fake *bufmgr_fake =
1436 pthread_mutex_lock(&bufmgr_fake->lock);
1438 bufmgr_fake->performed_rendering = 0;
1447 if (bufmgr_fake->fail == 1) {
1450 drm_intel_fake_kick_all_locked(bufmgr_fake);
1451 bufmgr_fake->fail = 0;
1454 mmDumpMemInfo(bufmgr_fake->heap);
1459 if (bufmgr_fake->exec != NULL) {
1460 ret = bufmgr_fake->exec(bo, used, bufmgr_fake->exec_priv);
1462 pthread_mutex_unlock(&bufmgr_fake->lock);
1474 (bufmgr_fake->fd, DRM_I915_BATCHBUFFER, &batch,
1477 pthread_mutex_unlock(&bufmgr_fake->lock);
1486 pthread_mutex_unlock(&bufmgr_fake->lock);
1501 drm_intel_bufmgr_fake *bufmgr_fake =
1517 if (sz > bufmgr_fake->size) {
1519 sz / 1024, bufmgr_fake->size / 1024);
1524 bufmgr_fake->size / 1024);
1538 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
1541 pthread_mutex_lock(&bufmgr_fake->lock);
1543 bufmgr_fake->need_fence = 1;
1544 bufmgr_fake->fail = 0;
1550 drm_intel_bufmgr_fake_wait_idle(bufmgr_fake);
1555 assert(DRMLISTEMPTY(&bufmgr_fake->fenced));
1556 assert(DRMLISTEMPTY(&bufmgr_fake->on_hardware));
1558 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
1563 free_block(bufmgr_fake, block, 0);
1567 pthread_mutex_unlock(&bufmgr_fake->lock);
1575 drm_intel_bufmgr_fake *bufmgr_fake = (drm_intel_bufmgr_fake *) bufmgr;
1577 bufmgr_fake->last_dispatch = (volatile int *)last_dispatch;
1585 drm_intel_bufmgr_fake *bufmgr_fake;
1587 bufmgr_fake = calloc(1, sizeof(*bufmgr_fake));
1589 if (pthread_mutex_init(&bufmgr_fake->lock, NULL) != 0) {
1590 free(bufmgr_fake);
1595 DRMINITLISTHEAD(&bufmgr_fake->fenced);
1596 DRMINITLISTHEAD(&bufmgr_fake->on_hardware);
1597 DRMINITLISTHEAD(&bufmgr_fake->lru);
1599 bufmgr_fake->low_offset = low_offset;
1600 bufmgr_fake->virtual = low_virtual;
1601 bufmgr_fake->size = size;
1602 bufmgr_fake->heap = mmInit(low_offset, size);
1605 bufmgr_fake->bufmgr.bo_alloc = drm_intel_fake_bo_alloc;
1606 bufmgr_fake->bufmgr.bo_alloc_for_render = drm_intel_fake_bo_alloc;
1607 bufmgr_fake->bufmgr.bo_alloc_tiled = drm_intel_fake_bo_alloc_tiled;
1608 bufmgr_fake->bufmgr.bo_reference = drm_intel_fake_bo_reference;
1609 bufmgr_fake->bufmgr.bo_unreference = drm_intel_fake_bo_unreference;
1610 bufmgr_fake->bufmgr.bo_map = drm_intel_fake_bo_map;
1611 bufmgr_fake->bufmgr.bo_unmap = drm_intel_fake_bo_unmap;
1612 bufmgr_fake->bufmgr.bo_subdata = drm_intel_fake_bo_subdata;
1613 bufmgr_fake->bufmgr.bo_wait_rendering =
1615 bufmgr_fake->bufmgr.bo_emit_reloc = drm_intel_fake_emit_reloc;
1616 bufmgr_fake->bufmgr.destroy = drm_intel_fake_destroy;
1617 bufmgr_fake->bufmgr.bo_exec = drm_intel_fake_bo_exec;
1618 bufmgr_fake->bufmgr.check_aperture_space =
1620 bufmgr_fake->bufmgr.debug = 0;
1622 bufmgr_fake->fd = fd;
1623 bufmgr_fake->last_dispatch = (volatile int *)last_dispatch;
1625 return &bufmgr_fake->bufmgr;