Lines Matching defs:sctx

33 bool si_cs_is_buffer_referenced(struct si_context *sctx, struct pb_buffer *buf,
36 return sctx->ws->cs_is_buffer_referenced(&sctx->gfx_cs, buf, usage);
39 void *si_buffer_map(struct si_context *sctx, struct si_resource *resource,
42 return sctx->ws->buffer_map(sctx->ws, resource->buf, &sctx->gfx_cs, usage);
250 static bool si_invalidate_buffer(struct si_context *sctx, struct si_resource *buf)
267 if (si_cs_is_buffer_referenced(sctx, buf->buf, RADEON_USAGE_READWRITE) ||
268 !sctx->ws->buffer_wait(sctx->ws, buf->buf, 0, RADEON_USAGE_READWRITE)) {
270 si_alloc_resource(sctx->screen, buf);
271 si_rebind_buffer(sctx, &buf->b.b);
284 struct si_context *sctx = (struct si_context *)ctx;
288 radeon_bo_reference(sctx->screen->ws, &sdst->buf, ssrc->buf);
298 si_rebind_buffer(sctx, dst);
300 util_idalloc_mt_free(&sctx->screen->buffer_ids, delete_buffer_id);
305 struct si_context *sctx = (struct si_context *)ctx;
310 (void)si_invalidate_buffer(sctx, buf);
318 struct si_context *sctx = (struct si_context *)ctx;
324 transfer = slab_zalloc(&sctx->pool_transfers_unsync);
326 transfer = slab_zalloc(&sctx->pool_transfers);
341 struct si_context *sctx = (struct si_context *)ctx;
393 if (si_invalidate_buffer(sctx, buf)) {
411 si_cs_is_buffer_referenced(sctx, buf->buf, RADEON_USAGE_READWRITE) ||
412 !sctx->ws->buffer_wait(sctx->ws, buf->buf, 0, RADEON_USAGE_READWRITE)) {
423 uploader = sctx->tc->base.stream_uploader;
425 uploader = sctx->b.stream_uploader;
428 sctx->screen->info.tcc_cache_line_size, &offset,
456 si_copy_buffer(sctx, &staging->b.b, resource, box->x % SI_MAP_BUFFER_ALIGNMENT,
459 data = si_buffer_map(sctx, staging, usage & ~PIPE_MAP_UNSYNCHRONIZED);
472 data = si_buffer_map(sctx, buf, usage);
484 struct si_context *sctx = (struct si_context *)ctx;
493 si_copy_buffer(sctx, transfer->resource, &stransfer->staging->b.b, box->x, src_offset,
515 struct si_context *sctx = (struct si_context *)ctx;
523 sctx->ws->buffer_unmap(sctx->ws, si_resource(stransfer->b.b.resource)->buf);
535 slab_free(&sctx->pool_transfers, transfer);
763 void si_init_buffer_functions(struct si_context *sctx)
765 sctx->b.invalidate_resource = si_invalidate_resource;
766 sctx->b.buffer_map = si_buffer_transfer_map;
767 sctx->b.transfer_flush_region = si_buffer_flush_region;
768 sctx->b.buffer_unmap = si_buffer_transfer_unmap;
769 sctx->b.texture_subdata = u_default_texture_subdata;
770 sctx->b.buffer_subdata = si_buffer_subdata;
771 sctx->b.resource_commit = si_resource_commit;