Lines Matching defs:image

514     * the image.  (On Gfx11 and earlier, the mapping was provided via
515 * RENDER_SURFACE_STATE so each image had its own main -> CCS mapping.)
1750 /** Struct representing a sampled image descriptor
1753 * combined image/sampler descriptors.
1756 /** Bindless image handle
1761 uint32_t image;
1782 /** Struct representing a storage image descriptor */
1784 /** Bindless image handles
1813 /** The descriptor contains auxiliary image layout data */
1815 /** The descriptor contains auxiliary image layout data */
1821 /** Storage image handles */
1823 /** Storage image handles */
2171 /** For a storage image, whether it requires a lowered surface */
3373 * Return the aspect's plane relative to all_aspects. For an image, for
3374 * instance, all_aspects would be the set of aspects in the image. For
3375 * an image view, all_aspects would be the subset of aspects represented
3386 /* Because we always put image and view planes in aspect-bit-order, the
3392 #define anv_foreach_image_aspect_bit(b, image, aspects) \
3393 u_foreach_bit(b, vk_image_expand_aspect_mask(&(image)->vk, aspects))
3455 * Disjoint bindings into which each portion of the image will be bound.
3458 * portions of the image to different memory objects or regions. For most
3467 * Used if and only if image is not multi-planar disjoint. Bound by
3473 * Used if and only if image is multi-planar disjoint. Bound by
3527 * final image creation until bind time.
3533 * must be released when the image is destroyed.
3540 * For details on the image's memory layout, see check_memory_bindings().
3580 * The base aux usage for this image. For color images, this can be
3592 * Whether this image can be fast cleared with non-zero clear colors.
3610 anv_image_is_externally_shared(const struct anv_image *image)
3612 return image->vk.drm_format_mod != DRM_FORMAT_MOD_INVALID ||
3613 image->vk.external_handle_types != 0;
3617 anv_image_has_private_binding(const struct anv_image *image)
3620 image->bindings[ANV_IMAGE_MEMORY_BINDING_PRIVATE];
3641 anv_image_aspect_to_plane(const struct anv_image *image,
3644 return anv_aspect_to_plane(image->vk.aspects, aspect);
3647 /* Returns the number of auxiliary buffer levels attached to an image. */
3649 anv_image_aux_levels(const struct anv_image * const image,
3652 uint32_t plane = anv_image_aspect_to_plane(image, aspect);
3653 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_NONE)
3656 return image->vk.mip_levels;
3659 /* Returns the number of auxiliary buffer layers attached to an image. */
3661 anv_image_aux_layers(const struct anv_image * const image,
3665 assert(image);
3668 assert(miplevel < image->vk.mip_levels);
3670 if (miplevel >= anv_image_aux_levels(image, aspect)) {
3677 return MAX2(image->vk.array_layers, image->vk.extent.depth >> miplevel);
3681 anv_image_address(const struct anv_image *image,
3684 const struct anv_image_binding *binding = &image->bindings[mem_range->binding];
3695 const struct anv_image *image,
3698 assert(image->vk.aspects & (VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV |
3701 uint32_t plane = anv_image_aspect_to_plane(image, aspect);
3703 &image->planes[plane].fast_clear_memory_range;
3705 return anv_image_address(image, mem_range);
3710 const struct anv_image *image,
3714 anv_image_get_clear_color_addr(device, image, aspect);
3724 const struct anv_image *image,
3728 assert(level < anv_image_aux_levels(image, aspect));
3729 assert(array_layer < anv_image_aux_layers(image, aspect, level));
3730 UNUSED uint32_t plane = anv_image_aspect_to_plane(image, aspect);
3731 assert(image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E);
3738 if (image->vk.image_type == VK_IMAGE_TYPE_3D) {
3740 offset += anv_minify(image->vk.extent.depth, l) * 4;
3742 offset += level * image->vk.array_layers * 4;
3747 assert(offset < image->planes[plane].fast_clear_memory_range.size);
3750 anv_image_get_fast_clear_type_addr(device, image, aspect),
3757 const struct anv_image *image)
3759 if (!(image->vk.aspects & VK_IMAGE_ASPECT_DEPTH_BIT))
3769 if (image->vk.image_type == VK_IMAGE_TYPE_3D)
3781 return image->vk.samples == 1;
3787 const struct anv_image *image)
3789 assert(image->vk.aspects == VK_IMAGE_ASPECT_COLOR_BIT);
3791 anv_image_aspect_to_plane(image, VK_IMAGE_ASPECT_COLOR_BIT);
3793 assert(isl_aux_usage_has_mcs(image->planes[plane].aux_usage));
3795 const struct anv_surface *anv_surf = &image->planes[plane].primary_surface;
3811 const struct anv_image *image,
3815 isl_aux_usage_has_ccs(image->planes[plane].aux_usage);
3820 const struct anv_image *image,
3829 const struct anv_image *image,
3837 const struct anv_image *image,
3860 const struct anv_image *image,
3866 const struct anv_image *image,
3873 const struct anv_image *image,
3881 const struct anv_image *image,
3890 const struct anv_image *image,
3897 const struct anv_image *image,
3903 const struct anv_image *image,
3910 const struct anv_image * const image,
3933 const struct anv_image *image; /**< VkImageViewCreateInfo::image */
3942 * RENDER_SURFACE_STATE when using image as a sampler surface with an
3943 * image layout of SHADER_READ_ONLY_OPTIMAL or
3949 * RENDER_SURFACE_STATE when using image as a sampler surface with an
3950 * image layout of GENERAL.
3955 * RENDER_SURFACE_STATE when using image as a storage image. Separate
3974 const struct anv_image *image,
3994 VkResult anv_image_init(struct anv_device *device, struct anv_image *image,
3997 void anv_image_finish(struct anv_image *image);
4000 struct anv_image *image,