Lines Matching full:image
51 unreachable("invalid image type"); in sanitize_image_extent()
57 struct vk_image *image, in vk_image_init() argument
60 vk_object_base_init(device, &image->base, VK_OBJECT_TYPE_IMAGE); in vk_image_init()
75 image->create_flags = pCreateInfo->flags; in vk_image_init()
76 image->image_type = pCreateInfo->imageType; in vk_image_init()
77 vk_image_set_format(image, pCreateInfo->format); in vk_image_init()
78 image->extent = sanitize_image_extent(pCreateInfo->imageType, in vk_image_init()
80 image->mip_levels = pCreateInfo->mipLevels; in vk_image_init()
81 image->array_layers = pCreateInfo->arrayLayers; in vk_image_init()
82 image->samples = pCreateInfo->samples; in vk_image_init()
83 image->tiling = pCreateInfo->tiling; in vk_image_init()
84 image->usage = pCreateInfo->usage; in vk_image_init()
86 if (image->aspects & VK_IMAGE_ASPECT_STENCIL_BIT) { in vk_image_init()
90 image->stencil_usage = in vk_image_init()
94 image->stencil_usage = 0; in vk_image_init()
100 image->external_handle_types = ext_mem_info->handleTypes; in vk_image_init()
102 image->external_handle_types = 0; in vk_image_init()
106 image->wsi_legacy_scanout = wsi_info && wsi_info->scanout; in vk_image_init()
109 image->drm_format_mod = ((1ULL << 56) - 1) /* DRM_FORMAT_MOD_INVALID */; in vk_image_init()
116 assert(image->format == VK_FORMAT_UNDEFINED); in vk_image_init()
117 assert(image->external_handle_types & in vk_image_init()
119 image->android_external_format = ext_format->externalFormat; in vk_image_init()
121 image->android_external_format = 0; in vk_image_init()
132 struct vk_image *image = in vk_image_create() local
135 if (image == NULL) in vk_image_create()
138 vk_image_init(device, image, pCreateInfo); in vk_image_create()
140 return image; in vk_image_create()
144 vk_image_finish(struct vk_image *image) in vk_image_finish() argument
146 vk_object_base_finish(&image->base); in vk_image_finish()
152 struct vk_image *image) in vk_image_destroy() argument
154 vk_object_free(device, alloc, image); in vk_image_destroy()
163 VK_FROM_HANDLE(vk_image, image, _image); in vk_common_GetImageDrmFormatModifierPropertiesEXT()
168 assert(image->tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT); in vk_common_GetImageDrmFormatModifierPropertiesEXT()
169 pProperties->drmFormatModifier = image->drm_format_mod; in vk_common_GetImageDrmFormatModifierPropertiesEXT()
176 vk_image_set_format(struct vk_image *image, VkFormat format) in vk_image_set_format() argument
178 image->format = format; in vk_image_set_format()
179 image->aspects = vk_format_aspects(format); in vk_image_set_format()
183 vk_image_usage(const struct vk_image *image, in vk_image_usage() argument
186 assert(!(aspect_mask & ~image->aspects)); in vk_image_usage()
190 * "If the image was has a depth-stencil format and was created with in vk_image_usage()
207 return image->stencil_usage; in vk_image_usage()
210 return image->usage & image->stencil_usage; in vk_image_usage()
213 return image->usage; in vk_image_usage()
223 /** Expands the given aspect mask relative to the image
225 * If the image has color plane aspects VK_IMAGE_ASPECT_COLOR_BIT has been
226 * requested, this returns the aspects of the underlying image.
238 * for an image of format VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM.
241 vk_image_expand_aspect_mask(const struct vk_image *image, in vk_image_expand_aspect_mask() argument
245 assert(image->aspects & VK_IMAGE_ASPECT_ANY_COLOR_MASK_MESA); in vk_image_expand_aspect_mask()
246 return image->aspects; in vk_image_expand_aspect_mask()
248 assert(aspect_mask && !(aspect_mask & ~image->aspects)); in vk_image_expand_aspect_mask()
267 VK_FROM_HANDLE(vk_image, image, pCreateInfo->image); in vk_image_view_init()
270 image_view->image = image; in vk_image_view_init()
276 assert(image->image_type == VK_IMAGE_TYPE_1D); in vk_image_view_init()
280 if (image->create_flags & VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT) in vk_image_view_init()
281 assert(image->image_type == VK_IMAGE_TYPE_3D); in vk_image_view_init()
283 assert(image->image_type == VK_IMAGE_TYPE_2D); in vk_image_view_init()
286 assert(image->image_type == VK_IMAGE_TYPE_3D); in vk_image_view_init()
290 assert(image->image_type == VK_IMAGE_TYPE_2D); in vk_image_view_init()
291 assert(image->create_flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT); in vk_image_view_init()
294 unreachable("Invalid image view type"); in vk_image_view_init()
304 vk_format_is_depth_or_stencil(image->format) && in vk_image_view_init()
308 assert(util_format_get_blocksize(vk_format_to_pipe_format(image->format)) == in vk_image_view_init()
313 vk_image_expand_aspect_mask(image, range->aspectMask); in vk_image_view_init()
317 * "If the image has a multi-planar format and in vk_image_view_init()
318 * subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, and image in vk_image_view_init()
326 * be identical to the image format, and the sampler to be used with the in vk_image_view_init()
327 * image view must enable sampler Y′CBCR conversion." in vk_image_view_init()
332 if ((image->aspects & VK_IMAGE_ASPECT_PLANE_1_BIT) && in vk_image_view_init()
334 assert(pCreateInfo->format == image->format); in vk_image_view_init()
342 assert(pCreateInfo->format == image->format); in vk_image_view_init()
344 if (!(image->create_flags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT)) in vk_image_view_init()
345 assert(pCreateInfo->format == image->format); in vk_image_view_init()
360 * "If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and in vk_image_view_init()
361 * the image has a multi-planar format, and if in vk_image_view_init()
364 * must be compatible with the corresponding plane of the image, and the in vk_image_view_init()
365 * sampler to be used with the image view must not enable sampler Y′CBCR in vk_image_view_init()
384 assert(range->baseMipLevel < image->mip_levels); in vk_image_view_init()
387 image_view->level_count = vk_image_subresource_level_count(image, range); in vk_image_view_init()
389 image_view->layer_count = vk_image_subresource_layer_count(image, range); in vk_image_view_init()
392 vk_image_mip_level_extent(image, image_view->base_mip_level); in vk_image_view_init()
395 <= image->mip_levels); in vk_image_view_init()
396 switch (image->image_type) { in vk_image_view_init()
402 <= image->array_layers); in vk_image_view_init()
410 /* If we are creating a color view from a depth/stencil image we compute in vk_image_view_init()
414 vk_image_usage(image, image->aspects) : in vk_image_view_init()
415 vk_image_usage(image, image_view->aspects); in vk_image_view_init()
492 unreachable("Invalid image layout."); in vk_image_layout_is_read_only()
495 unreachable("Invalid image layout."); in vk_image_layout_is_read_only()
613 unreachable("Invalid image layout."); in vk_image_layout_to_usage_flags()
616 unreachable("Invalid image layout."); in vk_image_layout_to_usage_flags()