Lines Matching refs:usage
34 enum radeon_bo_usage usage) in si_cs_is_buffer_referenced() argument
36 return sctx->ws->cs_is_buffer_referenced(&sctx->gfx_cs, buf, usage); in si_cs_is_buffer_referenced()
40 unsigned usage) in si_buffer_map() argument
42 return sctx->ws->buffer_map(sctx->ws, resource->buf, &sctx->gfx_cs, usage); in si_buffer_map()
56 switch (res->b.b.usage) { in si_init_resource_fields()
311 unsigned usage, const struct pipe_box *box, in si_buffer_get_transfer() argument
318 if (usage & PIPE_MAP_THREAD_SAFE) in si_buffer_get_transfer()
320 else if (usage & TC_TRANSFER_MAP_THREADED_UNSYNC) in si_buffer_get_transfer()
328 transfer->b.b.usage = usage; in si_buffer_get_transfer()
340 unsigned level, unsigned usage, const struct pipe_box *box, in si_buffer_transfer_map() argument
361 usage |= PIPE_MAP_PERSISTENT; in si_buffer_transfer_map()
362 if (usage & PIPE_MAP_ONCE) in si_buffer_transfer_map()
363 usage |= RADEON_MAP_TEMPORARY; in si_buffer_transfer_map()
367 if (!(usage & (PIPE_MAP_UNSYNCHRONIZED | TC_TRANSFER_MAP_NO_INFER_UNSYNCHRONIZED)) && in si_buffer_transfer_map()
368 usage & PIPE_MAP_WRITE && !buf->b.is_shared && in si_buffer_transfer_map()
370 usage |= PIPE_MAP_UNSYNCHRONIZED; in si_buffer_transfer_map()
374 if (usage & PIPE_MAP_DISCARD_RANGE && box->x == 0 && box->width == resource->width0) { in si_buffer_transfer_map()
375 usage |= PIPE_MAP_DISCARD_WHOLE_RESOURCE; in si_buffer_transfer_map()
382 if (usage & (PIPE_MAP_DISCARD_WHOLE_RESOURCE | PIPE_MAP_DISCARD_RANGE) && in si_buffer_transfer_map()
383 !(usage & PIPE_MAP_PERSISTENT) && in si_buffer_transfer_map()
385 usage &= ~(PIPE_MAP_DISCARD_WHOLE_RESOURCE | PIPE_MAP_UNSYNCHRONIZED); in si_buffer_transfer_map()
386 usage |= PIPE_MAP_DISCARD_RANGE; in si_buffer_transfer_map()
390 if (usage & PIPE_MAP_DISCARD_WHOLE_RESOURCE && in si_buffer_transfer_map()
391 !(usage & (PIPE_MAP_UNSYNCHRONIZED | TC_TRANSFER_MAP_NO_INVALIDATE))) { in si_buffer_transfer_map()
392 assert(usage & PIPE_MAP_WRITE); in si_buffer_transfer_map()
396 usage |= PIPE_MAP_UNSYNCHRONIZED; in si_buffer_transfer_map()
399 usage |= PIPE_MAP_DISCARD_RANGE; in si_buffer_transfer_map()
403 if (usage & PIPE_MAP_DISCARD_RANGE && in si_buffer_transfer_map()
404 ((!(usage & (PIPE_MAP_UNSYNCHRONIZED | PIPE_MAP_PERSISTENT))) || in si_buffer_transfer_map()
406 assert(usage & PIPE_MAP_WRITE); in si_buffer_transfer_map()
422 if (usage & TC_TRANSFER_MAP_THREADED_UNSYNC) in si_buffer_transfer_map()
433 return si_buffer_get_transfer(ctx, resource, usage, box, ptransfer, data, staging, in si_buffer_transfer_map()
440 usage |= PIPE_MAP_UNSYNCHRONIZED; in si_buffer_transfer_map()
444 else if (((usage & PIPE_MAP_READ) && !(usage & PIPE_MAP_PERSISTENT) && in si_buffer_transfer_map()
449 assert(!(usage & (TC_TRANSFER_MAP_THREADED_UNSYNC | PIPE_MAP_THREAD_SAFE))); in si_buffer_transfer_map()
459 data = si_buffer_map(sctx, staging, usage & ~PIPE_MAP_UNSYNCHRONIZED); in si_buffer_transfer_map()
466 return si_buffer_get_transfer(ctx, resource, usage, box, ptransfer, data, staging, 0); in si_buffer_transfer_map()
472 data = si_buffer_map(sctx, buf, usage); in si_buffer_transfer_map()
478 return si_buffer_get_transfer(ctx, resource, usage, box, ptransfer, data, NULL, 0); in si_buffer_transfer_map()
505 if ((transfer->usage & required_usage) == required_usage) { in si_buffer_flush_region()
518 if (transfer->usage & PIPE_MAP_WRITE && !(transfer->usage & PIPE_MAP_FLUSH_EXPLICIT)) in si_buffer_transfer_unmap()
521 if (transfer->usage & (PIPE_MAP_ONCE | RADEON_MAP_TEMPORARY) && in si_buffer_transfer_unmap()
529 if (transfer->usage & PIPE_MAP_THREAD_SAFE) { in si_buffer_transfer_unmap()
540 unsigned usage, unsigned offset, unsigned size, const void *data) in si_buffer_subdata() argument
546 usage |= PIPE_MAP_WRITE; in si_buffer_subdata()
548 if (!(usage & PIPE_MAP_DIRECTLY)) in si_buffer_subdata()
549 usage |= PIPE_MAP_DISCARD_RANGE; in si_buffer_subdata()
552 map = si_buffer_transfer_map(ctx, buffer, 0, usage, &box, &transfer); in si_buffer_subdata()
604 unsigned usage, unsigned size, unsigned alignment) in pipe_aligned_buffer_create() argument
612 buffer.usage = usage; in pipe_aligned_buffer_create()
622 unsigned usage, unsigned size, unsigned alignment) in si_aligned_buffer_create() argument
624 return si_resource(pipe_aligned_buffer_create(screen, flags, usage, size, alignment)); in si_aligned_buffer_create()