}
void
-anv_dump_add_framebuffer(struct anv_cmd_buffer *cmd_buffer,
- struct anv_framebuffer *fb)
+anv_dump_add_attachments(struct anv_cmd_buffer *cmd_buffer)
{
if (!dump_lock(ANV_DUMP_FRAMEBUFFERS_BIT))
return;
unsigned dump_idx = dump_count++;
- for (unsigned i = 0; i < fb->attachment_count; i++) {
- struct anv_image_view *iview = fb->attachments[i];
+ for (unsigned i = 0; i < cmd_buffer->state.pass->attachment_count; i++) {
+ struct anv_image_view *iview = cmd_buffer->state.attachments[i].image_view;
uint32_t b;
for_each_bit(b, iview->image->aspects) {
VkImageAspectFlagBits aspect = (1 << b);
- char suffix;
+ const char *suffix;
switch (aspect) {
- case VK_IMAGE_ASPECT_COLOR_BIT: suffix = 'c'; break;
- case VK_IMAGE_ASPECT_DEPTH_BIT: suffix = 'd'; break;
- case VK_IMAGE_ASPECT_STENCIL_BIT: suffix = 's'; break;
+ case VK_IMAGE_ASPECT_COLOR_BIT: suffix = "c"; break;
+ case VK_IMAGE_ASPECT_DEPTH_BIT: suffix = "d"; break;
+ case VK_IMAGE_ASPECT_STENCIL_BIT: suffix = "s"; break;
+ case VK_IMAGE_ASPECT_PLANE_0_BIT: suffix = "c0"; break;
+ case VK_IMAGE_ASPECT_PLANE_1_BIT: suffix = "c1"; break;
+ case VK_IMAGE_ASPECT_PLANE_2_BIT: suffix = "c2"; break;
default:
unreachable("Invalid aspect");
}
- char *filename = ralloc_asprintf(dump_ctx, "framebuffer%04d-%d%c.ppm",
+ char *filename = ralloc_asprintf(dump_ctx, "attachment%04d-%d%s.ppm",
dump_idx, i, suffix);
+ unsigned plane = anv_image_aspect_to_plane(iview->image->aspects, aspect);
dump_add_image(cmd_buffer, (struct anv_image *)iview->image, aspect,
- iview->isl.base_level, iview->isl.base_array_layer,
+ iview->planes[plane].isl.base_level,
+ iview->planes[plane].isl.base_array_layer,
filename);
}
}