Lines Matching refs:usage
200 COND(prsc->usage & PIPE_USAGE_STAGING, FD_BO_CACHED_COHERENT) |
305 translate_usage(unsigned usage)
309 if (usage & PIPE_MAP_READ)
312 if (usage & PIPE_MAP_WRITE)
320 unsigned usage)
324 if (pending(rsc, !!(usage & PIPE_MAP_WRITE)))
327 if (resource_busy(rsc, translate_usage(usage)))
334 unsigned usage);
606 tmpl.usage = PIPE_USAGE_STAGING;
674 unsigned usage) assert_dt
676 if (usage & PIPE_MAP_WRITE) {
708 if (ptrans->usage & PIPE_MAP_WRITE)
713 if (!(ptrans->usage & PIPE_MAP_UNSYNCHRONIZED)) {
731 invalidate_resource(struct fd_resource *rsc, unsigned usage) assert_dt
733 bool needs_flush = pending(rsc, !!(usage & PIPE_MAP_WRITE));
734 unsigned op = translate_usage(usage);
747 unsigned level, unsigned usage,
770 if (usage & PIPE_MAP_READ) {
784 unsigned usage, const struct pipe_box *box,
801 return resource_transfer_map_staging(pctx, prsc, level, usage, box, trans);
807 if (usage & PIPE_MAP_WRITE)
820 unsigned level, unsigned usage,
836 usage &= ~PIPE_MAP_READ;
845 return resource_transfer_map_staging(pctx, prsc, level, usage, box, trans);
846 } else if ((usage & PIPE_MAP_READ) && !fd_bo_is_cached(rsc->bo)) {
847 perf_debug_ctx(ctx, "wc readback: prsc=%p, level=%u, usage=%x, box=%dx%d+%d,%d",
848 prsc, level, usage, box->width, box->height, box->x, box->y);
851 if (usage & PIPE_MAP_DISCARD_WHOLE_RESOURCE) {
852 invalidate_resource(rsc, usage);
854 unsigned op = translate_usage(usage);
855 bool needs_flush = pending(rsc, !!(usage & PIPE_MAP_WRITE));
869 if (ctx->screen->reorder && busy && !(usage & PIPE_MAP_READ) &&
870 (usage & PIPE_MAP_DISCARD_RANGE)) {
883 flush_resource(ctx, rsc, usage);
913 flush_resource(ctx, rsc, usage);
928 return resource_transfer_map_unsync(pctx, prsc, level, usage, box, trans);
933 unsigned usage, const struct pipe_box *box)
935 * thread are protected by !(usage & TC_TRANSFER_MAP_THREADED_UNSYNC):
939 if (usage & TC_TRANSFER_MAP_NO_INVALIDATE) {
940 usage &= ~PIPE_MAP_DISCARD_WHOLE_RESOURCE;
943 if (usage & TC_TRANSFER_MAP_THREADED_UNSYNC)
944 usage |= PIPE_MAP_UNSYNCHRONIZED;
946 if (!(usage &
948 if (ctx->in_shadow && !(usage & PIPE_MAP_READ)) {
949 usage |= PIPE_MAP_UNSYNCHRONIZED;
950 } else if ((usage & PIPE_MAP_WRITE) && (rsc->b.b.target == PIPE_BUFFER) &&
956 usage |= PIPE_MAP_UNSYNCHRONIZED;
960 return usage;
965 unsigned level, unsigned usage,
974 DBG("prsc=%p, level=%u, usage=%x, box=%dx%d+%d,%d", prsc, level, usage,
977 if ((usage & PIPE_MAP_DIRECTLY) && rsc->layout.tile_mode) {
982 if (usage & TC_TRANSFER_MAP_THREADED_UNSYNC) {
993 usage = improve_transfer_map_usage(ctx, rsc, usage, box);
997 ptrans->usage = usage;
1003 if (usage & PIPE_MAP_UNSYNCHRONIZED) {
1004 ret = resource_transfer_map_unsync(pctx, prsc, level, usage, box, trans);
1006 ret = resource_transfer_map(pctx, prsc, level, usage, box, trans);
1061 unsigned usage)
1169 if (tmpl->usage != PIPE_USAGE_STAGING)
1321 * create_with_modifiers() doesn't give us usage flags, so we have to
1383 struct winsys_handle *handle, unsigned usage)