Lines Matching refs:rsc
46 vc5_debug_resource_layout(struct vc5_resource *rsc, const char *caller) in vc5_debug_resource_layout() argument
51 struct pipe_resource *prsc = &rsc->base; in vc5_debug_resource_layout()
56 caller, rsc, in vc5_debug_resource_layout()
59 rsc->bo->offset, in vc5_debug_resource_layout()
60 rsc->bo->offset + rsc->bo->size - 1); in vc5_debug_resource_layout()
74 struct vc5_resource_slice *slice = &rsc->slices[i]; in vc5_debug_resource_layout()
76 int level_width = slice->stride / rsc->cpp; in vc5_debug_resource_layout()
82 caller, rsc, in vc5_debug_resource_layout()
91 rsc->bo->offset + slice->offset); in vc5_debug_resource_layout()
96 vc5_resource_bo_alloc(struct vc5_resource *rsc) in vc5_resource_bo_alloc() argument
98 struct pipe_resource *prsc = &rsc->base; in vc5_resource_bo_alloc()
105 rsc->slices[0].offset + in vc5_resource_bo_alloc()
106 rsc->slices[0].size + in vc5_resource_bo_alloc()
107 rsc->cube_map_stride * layers - 1, in vc5_resource_bo_alloc()
110 vc5_bo_unreference(&rsc->bo); in vc5_resource_bo_alloc()
111 rsc->bo = bo; in vc5_resource_bo_alloc()
112 vc5_debug_resource_layout(rsc, "alloc"); in vc5_resource_bo_alloc()
127 struct vc5_resource *rsc = vc5_resource(ptrans->resource); in vc5_resource_transfer_unmap() local
128 struct vc5_resource_slice *slice = &rsc->slices[ptrans->level]; in vc5_resource_transfer_unmap()
131 vc5_store_tiled_image(rsc->bo->map + slice->offset + in vc5_resource_transfer_unmap()
132 ptrans->box.z * rsc->cube_map_stride, in vc5_resource_transfer_unmap()
135 slice->tiling, rsc->cpp, in vc5_resource_transfer_unmap()
136 u_minify(rsc->base.height0, in vc5_resource_transfer_unmap()
155 struct vc5_resource *rsc = vc5_resource(prsc); in vc5_resource_transfer_map() local
175 rsc->bo->private) { in vc5_resource_transfer_map()
180 if (vc5_resource_bo_alloc(rsc)) { in vc5_resource_transfer_map()
207 rsc->writes++; in vc5_resource_transfer_map()
208 rsc->initialized_buffers = ~0; in vc5_resource_transfer_map()
231 buf = vc5_bo_map_unsynchronized(rsc->bo); in vc5_resource_transfer_map()
233 buf = vc5_bo_map(rsc->bo); in vc5_resource_transfer_map()
249 struct vc5_resource_slice *slice = &rsc->slices[level]; in vc5_resource_transfer_map()
250 if (rsc->tiled) { in vc5_resource_transfer_map()
257 ptrans->stride = ptrans->box.width * rsc->cpp; in vc5_resource_transfer_map()
265 ptrans->box.z * rsc->cube_map_stride, in vc5_resource_transfer_map()
267 slice->tiling, rsc->cpp, in vc5_resource_transfer_map()
268 rsc->base.height0, in vc5_resource_transfer_map()
278 ptrans->box.x * rsc->cpp + in vc5_resource_transfer_map()
279 ptrans->box.z * rsc->cube_map_stride; in vc5_resource_transfer_map()
292 struct vc5_resource *rsc = vc5_resource(prsc); in vc5_resource_destroy() local
294 vc5_bo_unreference(&rsc->bo); in vc5_resource_destroy()
295 free(rsc); in vc5_resource_destroy()
305 struct vc5_resource *rsc = vc5_resource(prsc); in vc5_resource_get_handle() local
306 struct vc5_bo *bo = rsc->bo; in vc5_resource_get_handle()
308 whandle->stride = rsc->slices[0].stride; in vc5_resource_get_handle()
331 vc5_setup_slices(struct vc5_resource *rsc) in vc5_setup_slices() argument
333 struct pipe_resource *prsc = &rsc->base; in vc5_setup_slices()
339 uint32_t utile_w = vc5_utile_width(rsc->cpp); in vc5_setup_slices()
340 uint32_t utile_h = vc5_utile_height(rsc->cpp); in vc5_setup_slices()
352 struct vc5_resource_slice *slice = &rsc->slices[i]; in vc5_setup_slices()
371 if (!rsc->tiled) { in vc5_setup_slices()
374 level_width = align(level_width, 64 / rsc->cpp); in vc5_setup_slices()
407 slice->stride = level_width * rsc->cpp; in vc5_setup_slices()
421 uint32_t page_align_offset = (align(rsc->slices[0].offset, 4096) - in vc5_setup_slices()
422 rsc->slices[0].offset); in vc5_setup_slices()
425 rsc->slices[i].offset += page_align_offset; in vc5_setup_slices()
431 rsc->cube_map_stride = align(rsc->slices[0].offset + in vc5_setup_slices()
432 rsc->slices[0].size, 64); in vc5_setup_slices()
440 struct vc5_resource *rsc = CALLOC_STRUCT(vc5_resource); in vc5_resource_setup() local
441 if (!rsc) in vc5_resource_setup()
443 struct pipe_resource *prsc = &rsc->base; in vc5_resource_setup()
451 rsc->cpp = util_format_get_blocksize(prsc->format); in vc5_resource_setup()
464 rsc->cpp = 4; in vc5_resource_setup()
467 rsc->cpp = 8; in vc5_resource_setup()
470 rsc->cpp = 16; in vc5_resource_setup()
475 assert(rsc->cpp); in vc5_resource_setup()
477 return rsc; in vc5_resource_setup()
500 struct vc5_resource *rsc = vc5_resource_setup(pscreen, tmpl); in vc5_resource_create_with_modifiers() local
501 struct pipe_resource *prsc = &rsc->base; in vc5_resource_create_with_modifiers()
529 rsc->tiled = should_tile; in vc5_resource_create_with_modifiers()
533 rsc->tiled = true; in vc5_resource_create_with_modifiers()
535 rsc->tiled = false; in vc5_resource_create_with_modifiers()
541 rsc->internal_format = prsc->format; in vc5_resource_create_with_modifiers()
543 vc5_setup_slices(rsc); in vc5_resource_create_with_modifiers()
544 if (!vc5_resource_bo_alloc(rsc)) in vc5_resource_create_with_modifiers()
568 struct vc5_resource *rsc = vc5_resource_setup(pscreen, tmpl); in vc5_resource_from_handle() local
569 struct pipe_resource *prsc = &rsc->base; in vc5_resource_from_handle()
570 struct vc5_resource_slice *slice = &rsc->slices[0]; in vc5_resource_from_handle()
572 if (!rsc) in vc5_resource_from_handle()
577 rsc->tiled = false; in vc5_resource_from_handle()
596 rsc->bo = vc5_bo_open_name(screen, in vc5_resource_from_handle()
600 rsc->bo = vc5_bo_open_dmabuf(screen, in vc5_resource_from_handle()
610 if (!rsc->bo) in vc5_resource_from_handle()
613 vc5_setup_slices(rsc); in vc5_resource_from_handle()
614 vc5_debug_resource_layout(rsc, "import"); in vc5_resource_from_handle()
646 struct vc5_resource *rsc = vc5_resource(ptex); in vc5_create_surface() local
655 struct vc5_resource_slice *slice = &rsc->slices[level]; in vc5_create_surface()
658 if (rsc->separate_stencil) in vc5_create_surface()
659 separate_stencil_slice = &rsc->separate_stencil->slices[level]; in vc5_create_surface()
673 psurf->u.tex.first_layer * rsc->cube_map_stride); in vc5_create_surface()
679 rsc->separate_stencil->cube_map_stride); in vc5_create_surface()
711 (2 * vc5_utile_height(rsc->cpp))); in vc5_create_surface()
717 (2 * vc5_utile_height(rsc->separate_stencil->cpp))); in vc5_create_surface()
755 struct vc5_resource *rsc = vc5_resource(prsc); in vc5_resource_get_stencil() local
757 return &rsc->separate_stencil->base; in vc5_resource_get_stencil()