Lines Matching refs:sparse

52  * sparse buffer.
337 list_for_each_entry(struct zink_sparse_backing, backing, &bo->u.sparse.backing, list) {
367 assert(bo->u.sparse.num_backing_pages < DIV_ROUND_UP(bo->base.size, ZINK_SPARSE_BUFFER_PAGE_SIZE));
371 bo->base.size - (uint64_t)bo->u.sparse.num_backing_pages * ZINK_SPARSE_BUFFER_PAGE_SIZE);
390 list_add(&best_backing->list, &bo->u.sparse.backing);
391 bo->u.sparse.num_backing_pages += pages;
414 bo->u.sparse.num_backing_pages -= backing->bo->base.size / ZINK_SPARSE_BUFFER_PAGE_SIZE;
494 while (!list_is_empty(&bo->u.sparse.backing)) {
496 container_of(bo->u.sparse.backing.next,
500 FREE(bo->u.sparse.commitments);
516 /* We use 32-bit page numbers; refuse to attempt allocating sparse buffers
536 bo->u.sparse.num_va_pages = DIV_ROUND_UP(size, ZINK_SPARSE_BUFFER_PAGE_SIZE);
537 bo->u.sparse.commitments = CALLOC(bo->u.sparse.num_va_pages,
538 sizeof(*bo->u.sparse.commitments));
539 if (!bo->u.sparse.commitments)
542 list_inithead(&bo->u.sparse.backing);
556 /* pull in sparse flag */
729 VkBindSparseInfo sparse = {0};
730 sparse.sType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
731 sparse.bufferBindCount = res->obj->storage_buffer ? 2 : 1;
732 sparse.waitSemaphoreCount = !!wait;
733 sparse.pWaitSemaphores = &wait;
734 sparse.signalSemaphoreCount = 1;
735 sparse.pSignalSemaphores = &sem;
742 sparse.pBufferBinds = sparse_bind;
753 VkResult ret = VKSCR(QueueBindSparse)(screen->queue_sparse, 1, &sparse, VK_NULL_HANDLE);
770 struct zink_sparse_commitment *comm = bo->u.sparse.commitments;
864 fprintf(stderr, "zink: leaking sparse backing memory\n");
878 VkBindSparseInfo sparse = {0};
879 sparse.sType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
880 sparse.imageBindCount = 1;
881 sparse.waitSemaphoreCount = !!wait;
882 sparse.pWaitSemaphores = &wait;
883 sparse.signalSemaphoreCount = 1;
884 sparse.pSignalSemaphores = &sem;
890 sparse.pImageBinds = &sparse_ibind;
892 VkResult ret = VKSCR(QueueBindSparse)(screen->queue_sparse, 1, &sparse, VK_NULL_HANDLE);
903 VkBindSparseInfo sparse = {0};
904 sparse.sType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
905 sparse.imageOpaqueBindCount = 1;
906 sparse.waitSemaphoreCount = !!wait;
907 sparse.pWaitSemaphores = &wait;
908 sparse.signalSemaphoreCount = 1;
909 sparse.pSignalSemaphores = &sem;
914 sparse.pImageOpaqueBinds = &sparse_bind;
918 mem_bind.size = MIN2(ZINK_SPARSE_BUFFER_PAGE_SIZE, res->sparse.imageMipTailSize - offset);
924 VkResult ret = VKSCR(QueueBindSparse)(screen->queue_sparse, 1, &sparse, VK_NULL_HANDLE);
949 gwidth = res->sparse.formatProperties.imageGranularity.width;
950 gheight = res->sparse.formatProperties.imageGranularity.height;
951 gdepth = res->sparse.formatProperties.imageGranularity.depth;
954 struct zink_sparse_commitment *comm = bo->u.sparse.commitments;
1025 if (level >= res->sparse.imageMipTailFirstLod) {
1026 uint32_t offset = res->sparse.imageMipTailOffset + d * res->sparse.imageMipTailStride;
1073 if (level >= res->sparse.imageMipTailFirstLod) {
1074 uint32_t offset = res->sparse.imageMipTailOffset + d * res->sparse.imageMipTailStride;
1091 fprintf(stderr, "zink: leaking sparse backing memory\n");
1110 fprintf(stderr, "zink: leaking sparse backing memory\n");