Home | History | Annotate | Download | only in intel

Lines Matching refs:block

92 struct block {
93 struct block *next, *prev;
97 * Marks that the block is currently in the aperture and has yet to be
102 * Marks that the block is currently fenced (being used by rendering)
107 /** Fence cookie for the block. */
131 struct block on_hardware;
136 struct block fenced;
141 struct block lru;
222 struct block *block;
420 * Allocate a memory manager block for the buffer.
428 struct block *block = (struct block *)calloc(sizeof *block, 1);
432 if (!block)
437 block->mem = mmAllocMem(bufmgr_fake->heap, sz, align_log2, 0);
438 if (!block->mem) {
439 free(block);
443 DRMINITLISTHEAD(block);
446 DRMLISTADDTAIL(block, &bufmgr_fake->lru);
448 block->virtual = (uint8_t *) bufmgr_fake->virtual +
449 block->mem->ofs - bufmgr_fake->low_offset;
450 block->bo = bo;
452 bo_fake->block = block;
460 free_block(drm_intel_bufmgr_fake *bufmgr_fake, struct block *block,
464 DBG("free block %p %08x %d %d\n", block, block->mem->ofs,
465 block->on_hardware, block->fenced);
467 if (!block)
470 bo_fake = (drm_intel_bo_fake *) block->bo;
476 memcpy(bo_fake->backing_store, block->virtual, block->bo->size);
481 if (block->on_hardware) {
482 block->bo = NULL;
483 } else if (block->fenced) {
484 block->bo = NULL;
487 DRMLISTDEL(block);
489 mmFreeMem(block->mem);
490 free(block);
542 struct block *block, *tmp;
546 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
547 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
552 if (block->fence && max_fence && !FENCE_LTE(block->fence,
557 bo_fake->block = NULL;
559 free_block(bufmgr_fake, block, 0);
569 struct block *block, *tmp;
573 DRMLISTFOREACHSAFEREVERSE(block, tmp, &bufmgr_fake->lru) {
574 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
580 bo_fake->block = NULL;
582 free_block(bufmgr_fake, block, 0);
595 struct block *block, *tmp;
599 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->fenced) {
600 assert(block->fenced);
602 if (_fence_test(bufmgr_fake, block->fence)) {
604 block->fenced = 0;
606 if (!block->bo) {
608 block->mem->ofs, block->mem->size);
609 DRMLISTDEL(block);
610 mmFreeMem(block->mem);
611 free(block);
614 block->mem->ofs, block->mem->size);
615 DRMLISTDEL(block);
616 DRMLISTADDTAIL(block, &bufmgr_fake->lru);
625 block->mem->ofs, block->mem->size, block->fence,
638 struct block *block, *tmp;
640 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->on_hardware) {
641 DBG("Fence block %p (sz 0x%x ofs %x buf %p) with fence %d\n",
642 block, block->mem->size, block->mem->ofs, block->bo, fence);
643 block->fence = fence;
645 block->on_hardware = 0;
646 block->fenced = 1;
650 DRMLISTDEL(block);
651 DRMLISTADDTAIL(block, &bufmgr_fake->fenced);
664 assert(bo_fake->block == NULL);
750 if (bo_fake->block == NULL || !bo_fake->block->fenced)
753 _fence_wait_internal(bufmgr_fake, bo_fake->block->fence);
775 struct block *block, *tmp;
794 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
795 assert(_fence_test(bufmgr_fake, block->fence));
796 set_dirty(block->bo);
931 if (bo_fake->block)
932 free_block(bufmgr_fake, bo_fake->block, 1);
1030 if (!bo_fake->block && !evict_and_alloc_block(bo)) {
1035 assert(bo_fake->block);
1039 bo_fake->block->fenced) {
1044 bo->virtual = bo_fake->block->virtual;
1053 if ((bo_fake->card_dirty == 1) && bo_fake->block) {
1054 if (bo_fake->block->fenced)
1059 bo_fake->block->virtual,
1060 bo_fake->block->bo->size);
1141 struct block *block, *tmp;
1146 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->on_hardware) {
1147 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
1149 block->on_hardware = 0;
1150 free_block(bufmgr_fake, block, 0);
1151 bo_fake->block = NULL;
1183 if (!bo_fake->block && !evict_and_alloc_block(bo)) {
1190 assert(bo_fake->block);
1191 assert(bo_fake->block->bo == &bo_fake->bo);
1193 bo->offset = bo_fake->block->mem->ofs;
1198 bo_fake->name, bo->size, bo_fake->block->mem->ofs);
1212 memcpy(bo_fake->block->virtual, bo_fake->backing_store,
1215 memset(bo_fake->block->virtual, 0, bo->size);
1220 bo_fake->block->fenced = 0;
1221 bo_fake->block->on_hardware = 1;
1222 DRMLISTDEL(bo_fake->block);
1223 DRMLISTADDTAIL(bo_fake->block, &bufmgr_fake->on_hardware);
1543 struct block *block, *tmp;
1562 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
1563 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
1567 free_block(bufmgr_fake, block, 0);
1568 bo_fake->block = NULL;