Lines Matching refs:plane
131 uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect);
132 return &image->planes[plane].surface;
136 add_surface(struct anv_image *image, struct anv_surface *surf, uint32_t plane)
141 surf->offset = align_u32(image->planes[plane].size,
146 /* Determine plane's offset only once when the first surface is added. */
147 if (image->planes[plane].size == 0)
148 image->planes[plane].offset = image->size;
152 image->planes[plane].size = (surf->offset + surf->isl.size_B) - image->planes[plane].offset;
155 image->planes[plane].alignment = MAX2(image->planes[plane].alignment,
197 * In order to avoid having multiple clear colors for a single plane of an
246 uint32_t plane,
250 assert(image->planes[plane].aux_surface.isl.size_B > 0 &&
258 assert((image->planes[plane].offset + image->planes[plane].size) % 4 == 0);
260 /* This buffer should be at the very end of the plane. */
262 assert(image->planes[plane].size ==
263 (image->planes[plane].offset + image->planes[plane].size));
266 (image->planes[plane].offset + image->planes[plane].size));
277 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E) {
286 image->planes[plane].fast_clear_state_offset =
287 image->planes[plane].offset + image->planes[plane].size;
289 image->planes[plane].size += state_size;
315 const unsigned plane = anv_image_aspect_to_plane(image->aspects, aspect);
318 struct anv_surface *anv_surf = &image->planes[plane].surface;
356 image->planes[plane].aux_usage = ISL_AUX_USAGE_NONE;
358 add_surface(image, anv_surf, plane);
368 ok = isl_surf_init(&dev->isl_dev, &image->planes[plane].shadow_surface.isl,
387 add_surface(image, &image->planes[plane].shadow_surface, plane);
413 assert(image->planes[plane].aux_surface.isl.size_B == 0);
415 &image->planes[plane].surface.isl,
416 &image->planes[plane].aux_surface.isl);
418 add_surface(image, &image->planes[plane].aux_surface, plane);
419 image->planes[plane].aux_usage = ISL_AUX_USAGE_HIZ;
439 assert(image->planes[plane].aux_surface.isl.size_B == 0);
441 &image->planes[plane].surface.isl,
442 &image->planes[plane].aux_surface.isl, 0);
457 image->planes[plane].aux_surface.isl.size_B = 0;
461 add_surface(image, &image->planes[plane].aux_surface, plane);
462 add_aux_state_tracking_buffer(image, plane, dev);
474 image->planes[plane].aux_usage = ISL_AUX_USAGE_CCS_E;
480 assert(image->planes[plane].aux_surface.isl.size_B == 0);
482 &image->planes[plane].surface.isl,
483 &image->planes[plane].aux_surface.isl);
485 add_surface(image, &image->planes[plane].aux_surface, plane);
486 add_aux_state_tracking_buffer(image, plane, dev);
487 image->planes[plane].aux_usage = ISL_AUX_USAGE_MCS;
491 assert((image->planes[plane].offset + image->planes[plane].size) == image->size);
493 /* Upper bound of the last surface should be smaller than the plane's
496 assert((MAX2(image->planes[plane].surface.offset,
497 image->planes[plane].aux_surface.offset) +
498 (image->planes[plane].aux_surface.isl.size_B > 0 ?
499 image->planes[plane].aux_surface.isl.size_B :
500 image->planes[plane].surface.isl.size_B)) <=
501 (image->planes[plane].offset + image->planes[plane].size));
503 if (image->planes[plane].aux_surface.isl.size_B) {
504 /* assert(image->planes[plane].fast_clear_state_offset == */
505 /* (image->planes[plane].aux_surface.offset + image->planes[plane].aux_surface.isl.size_B)); */
506 assert(image->planes[plane].fast_clear_state_offset <
507 (image->planes[plane].offset + image->planes[plane].size));
762 uint32_t plane,
766 assert(!image->planes[plane].bo_is_owned);
769 image->planes[plane].address = ANV_NULL_ADDRESS;
773 image->planes[plane].address = (struct anv_address) {
871 uint32_t plane =
873 anv_image_bind_memory_plane(device, image, plane, mem, memoryOffset);
917 uint32_t plane =
920 .bo = swapchain_image->planes[plane].address.bo,
922 anv_image_bind_memory_plane(device, image, plane,
942 uint32_t plane =
944 anv_image_bind_memory_plane(device, image, plane,
1024 uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect);
1029 if (image->planes[plane].aux_surface.isl.size_B == 0)
1066 assert(image->planes[plane].aux_usage == ISL_AUX_USAGE_HIZ);
1070 return image->planes[plane].aux_usage;
1086 return image->planes[plane].aux_usage;
1109 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_NONE) {
1113 assert(image->planes[plane].aux_usage != ISL_AUX_USAGE_CCS_D);
1114 return image->planes[plane].aux_usage;
1156 uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect);
1159 if (image->planes[plane].aux_surface.isl.size_B == 0)
1210 if (image->planes[plane].aux_usage == ISL_AUX_USAGE_MCS ||
1211 image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E)
1256 uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect);
1258 const struct anv_surface *surface = &image->planes[plane].surface,
1259 *aux_surface = &image->planes[plane].aux_surface;
1269 if (image->planes[plane].shadow_surface.isl.size_B > 0 &&
1274 assert(image->planes[plane].shadow_surface.isl.tiling != ISL_TILING_LINEAR);
1275 surface = &image->planes[plane].shadow_surface;
1295 anv_address_add(image->planes[plane].address, surface->offset);
1382 aux_address = anv_address_add(image->planes[plane].address,
1551 * the image view, it only has a single plane.
1687 for (uint32_t plane = 0; plane < iview->n_planes; plane++) {
1688 if (iview->planes[plane].optimal_sampler_surface_state.state.alloc_size > 0) {
1690 iview->planes[plane].optimal_sampler_surface_state.state);
1693 if (iview->planes[plane].general_sampler_surface_state.state.alloc_size > 0) {
1695 iview->planes[plane].general_sampler_surface_state.state);
1698 if (iview->planes[plane].storage_surface_state.state.alloc_size > 0) {
1700 iview->planes[plane].storage_surface_state.state);
1703 if (iview->planes[plane].writeonly_storage_surface_state.state.alloc_size > 0) {
1705 iview->planes[plane].writeonly_storage_surface_state.state);
1865 uint32_t plane = anv_image_aspect_to_plane(image->aspects, sanitized_mask);
1866 return &image->planes[plane].surface;