Lines Matching refs:iview
1811 radv_image_view_make_descriptor(struct radv_image_view *iview, struct radv_device *device, in radv_image_view_make_descriptor() argument
1817 struct radv_image *image = iview->image; in radv_image_view_make_descriptor()
1819 bool is_stencil = iview->aspect_mask == VK_IMAGE_ASPECT_STENCIL_BIT; in radv_image_view_make_descriptor()
1825 descriptor = &iview->storage_descriptor; in radv_image_view_make_descriptor()
1827 descriptor = &iview->descriptor; in radv_image_view_make_descriptor()
1836 hw_level = iview->base_mip; in radv_image_view_make_descriptor()
1838 device, image, is_storage_image, iview->type, vk_format, components, hw_level, in radv_image_view_make_descriptor()
1839 hw_level + iview->level_count - 1, iview->base_layer, in radv_image_view_make_descriptor()
1840 iview->base_layer + iview->layer_count - 1, in radv_image_view_make_descriptor()
1841 vk_format_get_plane_width(image->vk_format, plane_id, iview->extent.width), in radv_image_view_make_descriptor()
1842 vk_format_get_plane_height(image->vk_format, plane_id, iview->extent.height), in radv_image_view_make_descriptor()
1843 iview->extent.depth, descriptor->plane_descriptors[descriptor_plane_id], in radv_image_view_make_descriptor()
1849 base_level_info = &plane->surface.u.legacy.zs.stencil_level[iview->base_mip]; in radv_image_view_make_descriptor()
1851 base_level_info = &plane->surface.u.legacy.level[iview->base_mip]; in radv_image_view_make_descriptor()
1857 si_set_mutable_tex_desc_fields(device, image, base_level_info, plane_id, iview->base_mip, in radv_image_view_make_descriptor()
1858 iview->base_mip, blk_w, is_stencil, is_storage_image, in radv_image_view_make_descriptor()
1906 const struct radv_image_view *iview) in radv_image_view_can_fast_clear() argument
1910 if (!iview) in radv_image_view_can_fast_clear()
1912 image = iview->image; in radv_image_view_can_fast_clear()
1919 if (iview->base_layer > 0 || iview->layer_count != image->info.array_size) in radv_image_view_can_fast_clear()
1923 if (!radv_image_extent_compare(image, &iview->extent)) in radv_image_view_can_fast_clear()
1930 radv_image_view_init(struct radv_image_view *iview, struct radv_device *device, in radv_image_view_init() argument
1938 vk_object_base_init(&device->vk, &iview->base, VK_OBJECT_TYPE_IMAGE_VIEW); in radv_image_view_init()
1953 iview->image = image; in radv_image_view_init()
1954 iview->type = pCreateInfo->viewType; in radv_image_view_init()
1955 iview->plane_id = radv_plane_from_aspect(pCreateInfo->subresourceRange.aspectMask); in radv_image_view_init()
1956 iview->aspect_mask = pCreateInfo->subresourceRange.aspectMask; in radv_image_view_init()
1957 iview->base_layer = range->baseArrayLayer; in radv_image_view_init()
1958 iview->layer_count = radv_get_layerCount(image, range); in radv_image_view_init()
1959 iview->base_mip = range->baseMipLevel; in radv_image_view_init()
1960 iview->level_count = radv_get_levelCount(image, range); in radv_image_view_init()
1962 iview->vk_format = pCreateInfo->format; in radv_image_view_init()
1966 if (iview->vk_format == VK_FORMAT_UNDEFINED) in radv_image_view_init()
1967 iview->vk_format = image->vk_format; in radv_image_view_init()
1972 if (iview->aspect_mask == VK_IMAGE_ASPECT_STENCIL_BIT) { in radv_image_view_init()
1973 if (vk_format_has_stencil(iview->vk_format)) in radv_image_view_init()
1974 iview->vk_format = vk_format_stencil_only(iview->vk_format); in radv_image_view_init()
1975 } else if (iview->aspect_mask == VK_IMAGE_ASPECT_DEPTH_BIT) { in radv_image_view_init()
1976 if (vk_format_has_depth(iview->vk_format)) in radv_image_view_init()
1977 iview->vk_format = vk_format_depth_only(iview->vk_format); in radv_image_view_init()
1981 iview->extent = (VkExtent3D){ in radv_image_view_init()
1987 iview->extent = (VkExtent3D){ in radv_image_view_init()
1994 if (iview->vk_format != image->planes[iview->plane_id].format) { in radv_image_view_init()
1995 unsigned view_bw = vk_format_get_blockwidth(iview->vk_format); in radv_image_view_init()
1996 unsigned view_bh = vk_format_get_blockheight(iview->vk_format); in radv_image_view_init()
2000 iview->extent.width = round_up_u32(iview->extent.width * view_bw, img_bw); in radv_image_view_init()
2001 iview->extent.height = round_up_u32(iview->extent.height * view_bh, img_bh); in radv_image_view_init()
2030 vk_format_is_compressed(image->vk_format) && !vk_format_is_compressed(iview->vk_format)) { in radv_image_view_init()
2034 if (iview->level_count > 1) { in radv_image_view_init()
2035 iview->extent.width = iview->image->planes[0].surface.u.gfx9.base_mip_width; in radv_image_view_init()
2036 iview->extent.height = iview->image->planes[0].surface.u.gfx9.base_mip_height; in radv_image_view_init()
2047 iview->extent.width = CLAMP(lvl_width, iview->extent.width, in radv_image_view_init()
2048 iview->image->planes[0].surface.u.gfx9.base_mip_width); in radv_image_view_init()
2049 iview->extent.height = CLAMP(lvl_height, iview->extent.height, in radv_image_view_init()
2050 iview->image->planes[0].surface.u.gfx9.base_mip_height); in radv_image_view_init()
2055 iview->support_fast_clear = radv_image_view_can_fast_clear(device, iview); in radv_image_view_init()
2058 iview->aspect_mask == VK_IMAGE_ASPECT_COLOR_BIT) { in radv_image_view_init()
2059 plane_count = vk_format_get_plane_count(iview->vk_format); in radv_image_view_init()
2065 VkFormat format = vk_format_get_plane_format(iview->vk_format, i); in radv_image_view_init()
2066 radv_image_view_make_descriptor(iview, device, format, &pCreateInfo->components, false, in radv_image_view_init()
2067 disable_compression, enable_compression, iview->plane_id + i, in radv_image_view_init()
2069 radv_image_view_make_descriptor(iview, device, format, &pCreateInfo->components, true, in radv_image_view_init()
2070 disable_compression, enable_compression, iview->plane_id + i, in radv_image_view_init()
2076 radv_image_view_finish(struct radv_image_view *iview) in radv_image_view_finish() argument
2078 vk_object_base_finish(&iview->base); in radv_image_view_finish()
2341 RADV_FROM_HANDLE(radv_image_view, iview, _iview); in radv_DestroyImageView()
2343 if (!iview) in radv_DestroyImageView()
2346 radv_image_view_finish(iview); in radv_DestroyImageView()
2347 vk_free2(&device->vk.alloc, pAllocator, iview); in radv_DestroyImageView()