Lines Matching defs:plane
62 uint32_t plane;
72 * don't handle queries of the modifier's "aux plane" here.
76 plane = aspect - VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT;
78 plane = anv_image_aspect_to_plane(image, aspect);
81 return &image->bindings[ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane];
325 * Do hardware limitations require the image plane to use a shadow surface?
331 * If the image plane is a separate stencil plane and if the user provided
375 uint32_t plane,
381 if (!isl_aux_usage_has_fast_clears(image->planes[plane].aux_usage))
392 image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E)
404 enum isl_format img_format = image->planes[plane].primary_surface.isl.format;
410 plane, image->vk.tiling);
596 * In order to avoid having multiple clear colors for a single plane of an
646 uint32_t plane)
649 assert(image->planes[plane].aux_usage != ISL_AUX_USAGE_NONE &&
661 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E) {
671 ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane;
688 &image->planes[plane].fast_clear_memory_range);
703 uint32_t plane,
715 assert(!anv_surface_is_valid(&image->planes[plane].aux_surface));
754 &image->planes[plane].primary_surface.isl,
755 &image->planes[plane].aux_surface.isl);
760 &image->planes[plane].primary_surface.isl,
761 &image->planes[plane].aux_surface.isl)) {
762 image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ;
775 image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ_CCS_WT;
778 image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ_CCS;
781 result = add_surface(device, image, &image->planes[plane].aux_surface,
782 ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane,
787 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_HIZ_CCS_WT)
788 return add_aux_state_tracking_buffer(device, image, plane);
795 &image->planes[plane].primary_surface.isl,
799 image->planes[plane].aux_usage = ISL_AUX_USAGE_STC_CCS;
810 /* The image may alias a plane of a multiplanar image. Above we ban
825 &image->planes[plane].primary_surface.isl,
827 &image->planes[plane].aux_surface.isl,
836 image->planes[plane].aux_usage = ISL_AUX_USAGE_CCS_E;
841 image->planes[plane].aux_surface.isl.size_B = 0;
844 image->planes[plane].aux_usage = ISL_AUX_USAGE_CCS_D;
849 ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane;
855 result = add_surface(device, image, &image->planes[plane].aux_surface,
861 return add_aux_state_tracking_buffer(device, image, plane);
865 &image->planes[plane].primary_surface.isl,
866 &image->planes[plane].aux_surface.isl);
870 image->planes[plane].aux_usage = ISL_AUX_USAGE_MCS;
872 result = add_surface(device, image, &image->planes[plane].aux_surface,
873 ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane,
878 return add_aux_state_tracking_buffer(device, image, plane);
887 uint32_t plane,
895 &image->planes[plane].shadow_surface.isl,
915 return add_surface(device, image, &image->planes[plane].shadow_surface,
916 ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane,
929 uint32_t plane,
936 struct anv_surface *anv_surf = &image->planes[plane].primary_surface;
960 image->planes[plane].aux_usage = ISL_AUX_USAGE_NONE;
963 ANV_IMAGE_MEMORY_BINDING_PLANE_0 + plane, offset);
1042 const struct anv_image_plane *plane = &image->planes[p];
1044 /* The binding that must contain the plane's primary surface. */
1057 .test_surface = &plane->primary_surface,
1061 if (anv_surface_is_valid(&plane->shadow_surface)) {
1063 .test_surface = &plane->shadow_surface,
1068 if (anv_surface_is_valid(&plane->aux_surface)) {
1088 .test_surface = &plane->aux_surface,
1093 if (plane->fast_clear_memory_range.size > 0) {
1110 assert(plane->fast_clear_memory_range.alignment == 4096);
1112 .test_range = &plane->fast_clear_memory_range,
1166 const struct anv_image_plane *plane = &image->planes[i];
1168 isl_format_get_layout(plane->primary_surface.isl.format);
1174 assert(!anv_surface_is_valid(&plane->shadow_surface));
1184 if (plane->aux_usage != isl_mod_info->aux_usage) {
1213 const uint32_t plane = anv_image_aspect_to_plane(image, aspect);
1215 anv_get_format_plane(devinfo, image->vk.format, plane, image->vk.tiling);
1231 result = add_primary_surface(device, image, plane, plane_format,
1238 result = add_shadow_surface(device, image, plane, plane_format,
1249 result = add_aux_surface_if_supported(device, image, plane, plane_format,
1283 * a bad plane layout. However, the spec does require
1286 * Most validation of plane layout occurs in add_surface().
1292 * - Format plane count must be 1.
1293 * - Memory plane count must be 2.
1295 * - Each format plane must map to a distint memory plane.
1311 /* Reject special values in the app-provided plane layouts. */
1331 const uint32_t plane = anv_image_aspect_to_plane(image, aspect);
1333 anv_get_format_plane(devinfo, image->vk.format, plane, image->vk.tiling);
1334 const VkSubresourceLayout *primary_layout = &drm_info->pPlaneLayouts[plane];
1336 result = add_primary_surface(device, image, plane,
1347 result = add_aux_surface_if_supported(device, image, plane,
1516 * clears for each plane.
1747 * the single plane specified in VkImagePlaneMemoryRequirementsInfo. If
1959 /* On platforms that use implicit CCS, if the plane's bo lacks implicit
1960 * CCS then disable compression on the plane.
2054 const uint32_t plane =
2056 surface = &image->planes[plane].primary_surface;
2113 const uint32_t plane = anv_image_aspect_to_plane(image, aspect);
2116 const enum isl_aux_usage aux_usage = image->planes[plane].aux_usage;
2120 assert(image->planes[plane].primary_surface.isl.tiling != ISL_TILING_LINEAR);
2305 const uint32_t plane = anv_image_aspect_to_plane(image, aspect);
2310 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_NONE)
2322 assert(image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_D);
2328 return image->planes[plane].aux_usage;
2342 return image->planes[plane].aux_usage;
2374 const uint32_t plane = anv_image_aspect_to_plane(image, aspect);
2377 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_NONE)
2399 if (!image->planes[plane].can_non_zero_fast_clear)
2407 } else if (image->planes[plane].aux_usage == ISL_AUX_USAGE_MCS ||
2408 image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E) {
2411 if (!image->planes[plane].can_non_zero_fast_clear)
2476 const uint32_t plane = anv_image_aspect_to_plane(image, aspect);
2478 const struct anv_surface *surface = &image->planes[plane].primary_surface,
2479 *aux_surface = &image->planes[plane].aux_surface;
2489 if (anv_surface_is_valid(&image->planes[plane].shadow_surface) &&
2494 assert(image->planes[plane].shadow_surface.isl.tiling != ISL_TILING_LINEAR);
2495 surface = &image->planes[plane].shadow_surface;
2501 if (anv_surface_is_valid(&image->planes[plane].shadow_surface) &&
2505 surface = &image->planes[plane].shadow_surface;
2840 for (uint32_t plane = 0; plane < iview->n_planes; plane++) {
2845 if (iview->planes[plane].optimal_sampler_surface_state.state.offset) {
2847 iview->planes[plane].optimal_sampler_surface_state.state);
2850 if (iview->planes[plane].general_sampler_surface_state.state.offset) {
2852 iview->planes[plane].general_sampler_surface_state.state);
2855 if (iview->planes[plane].storage_surface_state.state.offset) {
2857 iview->planes[plane].storage_surface_state.state);
2860 if (iview->planes[plane].lowered_storage_surface_state.state.offset) {
2862 iview->planes[plane].lowered_storage_surface_state.state);