Lines Matching refs:view
98 struct panvk_image_view *view; in panvk_per_arch() local
100 view = vk_image_view_create(&device->vk, false, pCreateInfo, in panvk_per_arch()
101 pAllocator, sizeof(*view)); in panvk_per_arch()
102 if (view == NULL) in panvk_per_arch()
105 view->pview = (struct pan_image_view) { in panvk_per_arch()
107 .format = vk_format_to_pipe_format(view->vk.view_format), in panvk_per_arch()
108 .dim = panvk_view_type_to_mali_tex_dim(view->vk.view_type), in panvk_per_arch()
110 .first_level = view->vk.base_mip_level, in panvk_per_arch()
111 .last_level = view->vk.base_mip_level + in panvk_per_arch()
112 view->vk.level_count - 1, in panvk_per_arch()
113 .first_layer = view->vk.base_array_layer, in panvk_per_arch()
114 .last_layer = view->vk.base_array_layer + in panvk_per_arch()
115 view->vk.layer_count - 1, in panvk_per_arch()
117 panvk_convert_swizzle(&view->vk.swizzle, view->pview.swizzle); in panvk_per_arch()
121 if (view->vk.usage & in panvk_per_arch()
124 GENX(panfrost_estimate_texture_payload_size)(&view->pview) + in panvk_per_arch()
127 view->bo = panfrost_bo_create(pdev, bo_size, 0, "Texture descriptor"); in panvk_per_arch()
129 STATIC_ASSERT(sizeof(view->descs.tex) >= pan_size(TEXTURE)); in panvk_per_arch()
130 GENX(panfrost_new_texture)(pdev, &view->pview, &view->descs.tex, &view->bo->ptr); in panvk_per_arch()
133 if (view->vk.usage & VK_IMAGE_USAGE_STORAGE_BIT) { in panvk_per_arch()
134 uint8_t *attrib_buf = (uint8_t *)view->descs.img_attrib_buf; in panvk_per_arch()
138 view->pview.first_level, in panvk_per_arch()
139 is_3d ? 0 : view->pview.first_layer, in panvk_per_arch()
140 is_3d ? view->pview.first_layer : 0); in panvk_per_arch()
146 cfg.stride = util_format_get_blocksize(view->pview.format); in panvk_per_arch()
152 unsigned level = view->pview.first_level; in panvk_per_arch()
157 view->pview.dim == MALI_TEXTURE_DIMENSION_3D ? in panvk_per_arch()
159 (view->pview.last_layer - view->pview.first_layer + 1); in panvk_per_arch()
168 *pView = panvk_image_view_to_handle(view); in panvk_per_arch()
181 struct panvk_buffer_view *view = in panvk_per_arch() local
182 vk_object_zalloc(&device->vk, pAllocator, sizeof(*view), in panvk_per_arch()
185 if (!view) in panvk_per_arch()
188 view->fmt = vk_format_to_pipe_format(pCreateInfo->format); in panvk_per_arch()
194 unsigned blksz = util_format_get_blocksize(view->fmt); in panvk_per_arch()
195 view->elems = size / blksz; in panvk_per_arch()
201 view->bo = panfrost_bo_create(pdev, bo_size, 0, "Texture descriptor"); in panvk_per_arch()
203 pan_pack(&view->bo->ptr.cpu, SURFACE_WITH_STRIDE, cfg) { in panvk_per_arch()
207 pan_pack(&view->descs.tex, TEXTURE, cfg) { in panvk_per_arch()
209 cfg.format = pdev->formats[view->fmt].hw; in panvk_per_arch()
210 cfg.width = view->elems; in panvk_per_arch()
216 cfg.surfaces = view->bo->ptr.gpu; in panvk_per_arch()
222 uint8_t *attrib_buf = (uint8_t *)view->descs.img_attrib_buf; in panvk_per_arch()
228 cfg.size = view->elems * blksz; in panvk_per_arch()
233 cfg.s_dimension = view->elems; in panvk_per_arch()
236 cfg.row_stride = view->elems * blksz; in panvk_per_arch()
240 *pView = panvk_buffer_view_to_handle(view); in panvk_per_arch()