| /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/nouveau/ |
| nouveau_mm.c | 53 mm_slab_alloc(struct mm_slab *slab) 57 if (slab->free == 0) 60 for (i = 0; i < (slab->count + 31) / 32; ++i) { 61 b = ffs(slab->bits[i]) - 1; 64 assert(n < slab->count); 65 slab->free--; 66 slab->bits[i] &= ~(1 << b); 74 mm_slab_free(struct mm_slab *slab, int i) 76 assert(i < slab->count); 77 slab->bits[i / 32] |= 1 << (i % 32) 123 struct mm_slab *slab; local 169 struct mm_slab *slab; local 219 struct mm_slab *slab = (struct mm_slab *)alloc->priv; local 269 struct mm_slab *slab, *next; local [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/gallium/drivers/nouveau/ |
| nouveau_mm.c | 53 mm_slab_alloc(struct mm_slab *slab) 57 if (slab->free == 0) 60 for (i = 0; i < (slab->count + 31) / 32; ++i) { 61 b = ffs(slab->bits[i]) - 1; 64 assert(n < slab->count); 65 slab->free--; 66 slab->bits[i] &= ~(1 << b); 74 mm_slab_free(struct mm_slab *slab, int i) 76 assert(i < slab->count); 77 slab->bits[i / 32] |= 1 << (i % 32) 123 struct mm_slab *slab; local 168 struct mm_slab *slab; local 219 struct mm_slab *slab = (struct mm_slab *)alloc->priv; local 269 struct mm_slab *slab, *next; local [all...] |
| /xsrc/external/mit/MesaLib/dist/src/gallium/auxiliary/pipebuffer/ |
| pb_slab.c | 33 /* All slab allocations from the same heap and with the same size belong 43 * The intention is to keep serving allocations from the same slab as long 46 * Due to a race in new slab allocation, additional slabs in this list 56 struct pb_slab *slab = entry->slab; local 59 list_add(&entry->head, &slab->free); 60 slab->num_free++; 62 /* Add slab to the group's list if it isn't already linked. */ 63 if (!list_is_linked(&slab->head)) { 65 list_addtail(&slab->head, &group->slabs) 113 struct pb_slab *slab; local [all...] |
| pb_bufmgr_slab.c | 54 * Buffer in a slab. 62 struct pb_slab *slab; member in struct:pb_slab_buffer 68 /** Offset relative to the start of the slab buffer. */ 74 * Slab -- a contiguous piece of memory. 111 * Alignment, usage to be used to allocate the slab buffers. 134 * This buffer manager just dispatches buffer allocations to the appropriate slab 135 * manager, according to the requested buffer size, or by passes the slab 186 * Delete a buffer from the slab delayed list and put 187 * it on the slab FREE list. 193 struct pb_slab *slab = buf->slab local 296 struct pb_slab *slab; local 373 struct pb_slab *slab; local [all...] |
| pb_slab.h | 31 * Helper library for carving out smaller allocations (called "(slab) entries") 56 /* Descriptor of a slab entry. 64 struct pb_slab *slab; /* the slab that contains this buffer */ member in struct:pb_slab_entry 69 /* Descriptor of a slab from which many entries are carved out. 83 /* Callback function that is called when a new slab needs to be allocated 87 * of entries. All entries that belong to the slab must be added to the free 98 /* Callback function that is called when all entries of a slab have been freed. 100 * The callback must free the slab and all its entries. It must not call any of 109 /* Manager of slab allocations. The user of this utility library should embe [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/gallium/auxiliary/pipebuffer/ |
| pb_slab.c | 33 /* All slab allocations from the same heap and with the same size belong 43 * The intention is to keep serving allocations from the same slab as long 46 * Due to a race in new slab allocation, additional slabs in this list 56 struct pb_slab *slab = entry->slab; local 59 LIST_ADD(&entry->head, &slab->free); 60 slab->num_free++; 62 /* Add slab to the group's list if it isn't already linked. */ 63 if (!slab->head.next) { 65 LIST_ADDTAIL(&slab->head, &group->slabs) 103 struct pb_slab *slab; local [all...] |
| pb_bufmgr_slab.c | 54 * Buffer in a slab. 62 struct pb_slab *slab; member in struct:pb_slab_buffer 68 /** Offset relative to the start of the slab buffer. */ 78 * Slab -- a contiguous piece of memory. 115 * Alignment, usage to be used to allocate the slab buffers. 138 * This buffer manager just dispatches buffer allocations to the appropriate slab 139 * manager, according to the requested buffer size, or by passes the slab 190 * Delete a buffer from the slab delayed list and put 191 * it on the slab FREE list. 197 struct pb_slab *slab = buf->slab local 301 struct pb_slab *slab; local 378 struct pb_slab *slab; local [all...] |
| pb_slab.h | 31 * Helper library for carving out smaller allocations (called "(slab) entries") 55 /* Descriptor of a slab entry. 63 struct pb_slab *slab; /* the slab that contains this buffer */ member in struct:pb_slab_entry 67 /* Descriptor of a slab from which many entries are carved out. 81 /* Callback function that is called when a new slab needs to be allocated 85 * of entries. All entries that belong to the slab must be added to the free 96 /* Callback function that is called when all entries of a slab have been freed. 98 * The callback must free the slab and all its entries. It must not call any of 107 /* Manager of slab allocations. The user of this utility library should embe [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/gallium/winsys/amdgpu/drm/ |
| amdgpu_bo.h | 75 } slab; member in union:amdgpu_winsys_bo::__anon4595 93 amdgpu_bo_handle bo; /* NULL for slab entries and sparse buffers */ 135 void amdgpu_bo_slab_free(void *priv, struct pb_slab *slab); 144 struct amdgpu_slab *amdgpu_slab(struct pb_slab *slab) 146 return (struct amdgpu_slab *)slab;
|
| amdgpu_bo.c | 175 assert(bo->bo && "must not be called for slab entries"); 215 assert(bo->bo); /* slab buffers have a separate vtbl */ 352 real = bo->u.slab.real; 394 real = bo->bo ? bo : bo->u.slab.real; 594 bo = container_of(entry, bo, u.slab.entry); 601 /* Find the correct slab allocator for the given size. */ 619 pb_slab_free(get_slabs(bo->ws, bo->base.size), &bo->u.slab.entry); 632 struct amdgpu_slab *slab = CALLOC_STRUCT(amdgpu_slab); local 638 if (!slab) 641 /* Determine the slab buffer size. * 715 struct amdgpu_slab *slab = amdgpu_slab(pslab); local [all...] |
| /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/zink/ |
| zink_bo.c | 85 /* Find the correct slab allocator for the given size. */ 97 /* Return the power of two size of a slab entry matching the input size. */ 107 /* Return the slab entry alignment. */ 150 struct zink_bo *bo = container_of(entry, struct zink_bo, u.slab.entry); 158 struct zink_slab *slab = zink_slab(pslab); local 159 ASSERTED unsigned slab_size = slab->buffer->base.size; 161 assert(slab->base.num_entries * slab->entry_size <= slab_size); 162 FREE(slab->entries); 163 zink_bo_unref(screen, slab->buffer) 830 struct zink_slab *slab = CALLOC_STRUCT(zink_slab); local [all...] |
| zink_bo.h | 78 } slab; member in union:zink_bo::__anon2054 187 return bo->mem ? bo->mem : bo->u.slab.real->mem; 193 return bo->mem ? bo->base.size : bo->u.slab.real->base.size;
|
| /xsrc/external/mit/MesaLib.old/dist/src/gallium/winsys/radeon/drm/ |
| radeon_drm_bo.h | 53 } slab; member in union:radeon_bo::__anon4602 59 uint32_t handle; /* 0 for slab entries */ 87 void radeon_bo_slab_free(void *priv, struct pb_slab *slab);
|
| radeon_drm_bo.c | 81 for (num_idle = 0; num_idle < bo->u.slab.num_fences; ++num_idle) { 82 if (radeon_real_bo_is_busy(bo->u.slab.fences[num_idle])) { 86 radeon_bo_reference(&bo->u.slab.fences[num_idle], NULL); 88 memmove(&bo->u.slab.fences[0], &bo->u.slab.fences[num_idle], 89 (bo->u.slab.num_fences - num_idle) * sizeof(bo->u.slab.fences[0])); 90 bo->u.slab.num_fences -= num_idle; 111 while (bo->u.slab.num_fences) { 113 radeon_bo_reference(&fence, bo->u.slab.fences[0]) 777 struct radeon_slab *slab = CALLOC_STRUCT(radeon_slab); local 832 struct radeon_slab *slab = (struct radeon_slab *)pslab; local [all...] |
| radeon_drm_cs.h | 40 } slab; member in union:radeon_bo_item::__anon4605 123 index = cs->csc->slab_buffers[index].u.slab.real_idx;
|
| radeon_drm_cs.c | 299 real_idx = radeon_lookup_or_add_real_buffer(cs, bo->u.slab.real); 323 item->u.slab.real_idx = real_idx; 360 index = cs->csc->slab_buffers[index].u.slab.real_idx; 493 /* Add the given fence to a slab buffer fence list. 512 for (unsigned src = 0; src < bo->u.slab.num_fences; ++src) { 513 if (bo->u.slab.fences[src]->num_cs_references) { 514 bo->u.slab.fences[dst] = bo->u.slab.fences[src]; 517 radeon_bo_reference(&bo->u.slab.fences[src], NULL); 520 bo->u.slab.num_fences = dst [all...] |
| /xsrc/external/mit/MesaLib/dist/src/gallium/winsys/amdgpu/drm/ |
| amdgpu_bo.h | 81 } slab; member in union:amdgpu_winsys_bo::__anon2260 95 amdgpu_bo_handle bo; /* NULL for slab entries and sparse buffers */ 141 void amdgpu_bo_slab_free(struct amdgpu_winsys *ws, struct pb_slab *slab); 150 struct amdgpu_slab *amdgpu_slab(struct pb_slab *slab) 152 return (struct amdgpu_slab *)slab;
|
| amdgpu_bo.c | 171 assert(bo->bo && "must not be called for slab entries"); 232 assert(bo->bo); /* slab buffers have a separate vtbl */ 376 real = bo->u.slab.real; 416 real = bo->bo ? bo : bo->u.slab.real; 627 struct amdgpu_winsys_bo *bo = container_of(entry, struct amdgpu_winsys_bo, u.slab.entry); 637 /* Find the correct slab allocator for the given size. */ 651 assert(bo->base.size <= bo->u.slab.entry.entry_size); 654 bo->base.size > bo->u.slab.entry.entry_size / 2); 655 return bo->u.slab.entry.entry_size - bo->base.size; 673 pb_slab_free(slabs, &bo->u.slab.entry) 708 struct amdgpu_slab *slab = CALLOC_STRUCT(amdgpu_slab); local 834 struct amdgpu_slab *slab = amdgpu_slab(pslab); local [all...] |
| /xsrc/external/mit/MesaLib/dist/src/gallium/winsys/radeon/drm/ |
| radeon_drm_bo.c | 81 for (num_idle = 0; num_idle < bo->u.slab.num_fences; ++num_idle) { 82 if (radeon_real_bo_is_busy(bo->u.slab.fences[num_idle])) { 86 radeon_ws_bo_reference(&bo->u.slab.fences[num_idle], NULL); 88 memmove(&bo->u.slab.fences[0], &bo->u.slab.fences[num_idle], 89 (bo->u.slab.num_fences - num_idle) * sizeof(bo->u.slab.fences[0])); 90 bo->u.slab.num_fences -= num_idle; 111 while (bo->u.slab.num_fences) { 113 radeon_ws_bo_reference(&fence, bo->u.slab.fences[0]) 778 struct radeon_slab *slab = CALLOC_STRUCT(radeon_slab); local 834 struct radeon_slab *slab = (struct radeon_slab *)pslab; local [all...] |
| radeon_drm_bo.h | 53 } slab; member in union:radeon_bo::__anon2267 59 uint32_t handle; /* 0 for slab entries */ 87 void radeon_bo_slab_free(void *priv, struct pb_slab *slab);
|
| radeon_drm_cs.h | 45 } slab; member in union:radeon_bo_item::__anon2270 127 index = cs->csc->slab_buffers[index].u.slab.real_idx;
|
| radeon_drm_cs.c | 327 real_idx = radeon_lookup_or_add_real_buffer(cs, bo->u.slab.real); 351 item->u.slab.real_idx = real_idx; 388 index = cs->csc->slab_buffers[index].u.slab.real_idx; 522 /* Add the given fence to a slab buffer fence list. 541 for (unsigned src = 0; src < bo->u.slab.num_fences; ++src) { 542 if (bo->u.slab.fences[src]->num_cs_references) { 543 bo->u.slab.fences[dst] = bo->u.slab.fences[src]; 546 radeon_ws_bo_reference(&bo->u.slab.fences[src], NULL); 549 bo->u.slab.num_fences = dst [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/amd/vulkan/ |
| radv_shader.c | 385 list_for_each_entry(struct radv_shader_slab, slab, &device->shader_slabs, slabs) { 387 list_for_each_entry(struct radv_shader_variant, s, &slab->shaders, slab_list) { 389 shader->bo = slab->bo; 393 return slab->ptr + offset; 397 if (slab->size - offset >= shader->code_size) { 398 shader->bo = slab->bo; 400 list_addtail(&shader->slab_list, &slab->shaders); 402 return slab->ptr + offset; 407 struct radv_shader_slab *slab = calloc(1, sizeof(struct radv_shader_slab)); local 409 slab->size = 256 * 1024 [all...] |
| /xsrc/external/mit/MesaLib/dist/src/gallium/drivers/iris/ |
| iris_bufmgr.c | 186 /** The BO representing the entire slab */ 189 /** Array of iris_bo structs representing BOs allocated out of this slab */ 555 unreachable("should have found a valid slab for this size"); 558 /* Return the power of two size of a slab entry matching the input size. */ 568 /* Return the slab entry alignment. */ 583 struct iris_bo *bo = container_of(entry, struct iris_bo, slab.entry); 592 struct iris_slab *slab = (void *) pslab; local 595 assert(!slab->bo->aux_map_address); 597 /* Since we're freeing the whole slab, all buffers allocated out of it 603 struct iris_bo *bo = &slab->entries[i] 632 struct iris_slab *slab = calloc(1, sizeof(struct iris_slab)); local [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/gallium/drivers/panfrost/ |
| pan_resource.c | 566 mem->slab.num_entries = slab_size / entry_size; 567 mem->slab.num_free = mem->slab.num_entries; 569 LIST_INITHEAD(&mem->slab.free); 570 for (unsigned i = 0; i < mem->slab.num_entries; ++i) { 571 /* Create a slab entry */ 575 entry->base.slab = &mem->slab; 578 LIST_ADDTAIL(&entry->base.head, &mem->slab.free); 586 return &mem->slab; [all...] |