Home | History | Annotate | Download | only in vc4

Lines Matching refs:rsc

40 vc4_resource_bo_alloc(struct vc4_resource *rsc)
42 struct pipe_resource *prsc = &rsc->base.b;
48 rsc,
49 rsc->slices[0].size,
50 rsc->slices[0].offset,
51 rsc->slices[0].offset +
52 rsc->slices[0].size +
53 rsc->cube_map_stride * (prsc->array_size - 1));
57 rsc->slices[0].offset +
58 rsc->slices[0].size +
59 rsc->cube_map_stride * (prsc->array_size - 1),
62 vc4_bo_unreference(&rsc->bo);
63 rsc->bo = bo;
78 struct vc4_resource *rsc;
81 rsc = vc4_resource(trans->ss_resource);
82 slice = &rsc->slices[0];
84 rsc = vc4_resource(ptrans->resource);
85 slice = &rsc->slices[ptrans->level];
89 vc4_store_tiled_image(rsc->bo->map + slice->offset +
90 ptrans->box.z * rsc->cube_map_stride,
93 slice->tiling, rsc->cpp,
152 struct vc4_resource *rsc = vc4_resource(prsc);
173 if (vc4_resource_bo_alloc(rsc)) {
197 rsc->writes++;
198 rsc->initialized_buffers = ~0;
254 rsc = vc4_resource(prsc);
265 buf = vc4_bo_map_unsynchronized(rsc->bo);
267 buf = vc4_bo_map(rsc->bo);
275 struct vc4_resource_slice *slice = &rsc->slices[level];
276 if (rsc->tiled) {
277 uint32_t utile_w = vc4_utile_width(rsc->cpp);
278 uint32_t utile_h = vc4_utile_height(rsc->cpp);
337 ptrans->stride = ptrans->box.width * rsc->cpp;
345 ptrans->box.z * rsc->cube_map_stride,
347 slice->tiling, rsc->cpp,
351 box_start_x * rsc->cpp +
359 ptrans->box.x / util_format_get_blockwidth(format) * rsc->cpp +
360 ptrans->box.z * rsc->cube_map_stride;
373 struct vc4_resource *rsc = vc4_resource(prsc);
374 pipe_resource_reference(&rsc->shadow_parent, NULL);
375 vc4_bo_unreference(&rsc->bo);
376 free(rsc);
384 struct vc4_resource *rsc = vc4_resource(prsc);
386 return vc4_screen_bo_get_handle(pscreen, rsc->bo, rsc->slices[0].stride,
399 vc4_setup_slices(struct vc4_resource *rsc)
401 struct pipe_resource *prsc = &rsc->base.b;
412 uint32_t utile_w = vc4_utile_width(rsc->cpp);
413 uint32_t utile_h = vc4_utile_height(rsc->cpp);
416 struct vc4_resource_slice *slice = &rsc->slices[i];
427 if (!rsc->tiled) {
438 rsc->cpp)) {
452 slice->stride = (level_width * rsc->cpp *
465 "rsc setup %p (format %s: vc4 %d), %dx%d: "
467 rsc,
469 rsc->vc4_format,
481 uint32_t page_align_offset = (align(rsc->slices[0].offset, 4096) -
482 rsc->slices[0].offset);
485 rsc->slices[i].offset += page_align_offset;
492 rsc->cube_map_stride = align(rsc->slices[0].offset +
493 rsc->slices[0].size, 4096);
501 struct vc4_resource *rsc = CALLOC_STRUCT(vc4_resource);
502 if (!rsc)
504 struct pipe_resource *prsc = &rsc->base.b;
511 rsc->base.vtbl = &vc4_resource_vtbl;
513 rsc->cpp = util_format_get_blocksize(tmpl->format);
515 rsc->cpp = sizeof(uint32_t);
517 assert(rsc->cpp);
519 return rsc;
525 struct vc4_resource *rsc = vc4_resource(prsc);
528 if (!rsc->tiled) {
544 struct vc4_resource *rsc = vc4_resource_setup(pscreen, tmpl);
545 struct pipe_resource *prsc = &rsc->base.b;
556 rsc->tiled = false;
558 rsc->tiled = true;
562 rsc->vc4_format = get_resource_texture_format(prsc);
564 vc4_setup_slices(rsc);
565 if (!vc4_resource_bo_alloc(rsc))
580 struct vc4_resource *rsc = vc4_resource_setup(pscreen, tmpl);
581 struct pipe_resource *prsc = &rsc->base.b;
582 struct vc4_resource_slice *slice = &rsc->slices[0];
584 align(prsc->width0, vc4_utile_width(rsc->cpp)) * rsc->cpp;
586 if (!rsc)
604 rsc->tiled = false;
605 rsc->bo = vc4_screen_bo_from_handle(pscreen, handle);
606 if (!rsc->bo)
612 rsc->vc4_format = get_resource_texture_format(prsc);
616 "rsc import %p (format %d), %dx%d: "
618 rsc, rsc->vc4_format,
636 struct vc4_resource *rsc = vc4_resource(ptex);
656 surface->offset = (rsc->slices[level].offset +
657 psurf->u.tex.first_layer * rsc->cube_map_stride);
658 surface->tiling = rsc->slices[level].tiling;
674 struct vc4_resource *rsc = vc4_resource(prsc);
675 uint32_t *map = vc4_bo_map(rsc->bo);
676 uint32_t stride = rsc->slices[0].stride / 4;
684 if (rsc->vc4_format != VC4_TEXTURE_TYPE_RGBA32R) {
771 struct vc4_resource *rsc = vc4_resource(prsc);
777 uint32_t *tile = (vc4_bo_map(rsc->bo) +