+static void
+genX(cmd_buffer_fill_att_surf_states)(struct anv_cmd_buffer *cmd_buffer,
+ const struct anv_render_pass *pass,
+ const struct anv_framebuffer *framebuffer)
+{
+ const struct isl_device *isl_dev = &cmd_buffer->device->isl_dev;
+ struct anv_cmd_state *state = &cmd_buffer->state;
+
+ isl_null_fill_state(isl_dev, state->null_surface_state.map,
+ isl_extent3d(framebuffer->width,
+ framebuffer->height,
+ framebuffer->layers));
+
+ for (uint32_t i = 0; i < pass->attachment_count; ++i) {
+ struct anv_image_view *iview = state->attachments[i].image_view;
+
+ union isl_color_value clear_color = { .u32 = { 0, } };
+ if (vk_format_is_color(pass->attachments[i].format)) {
+ if (state->attachments[i].fast_clear) {
+ anv_clear_color_from_att_state(&clear_color,
+ &state->attachments[i], iview);
+ }
+
+ anv_image_fill_surface_state(cmd_buffer->device,
+ iview->image,
+ VK_IMAGE_ASPECT_COLOR_BIT,
+ &iview->planes[0].isl,
+ ISL_SURF_USAGE_RENDER_TARGET_BIT,
+ state->attachments[i].aux_usage,
+ &clear_color,
+ 0,
+ &state->attachments[i].color,
+ NULL);
+
+ add_surface_state_relocs(cmd_buffer, state->attachments[i].color);
+ }
+
+ if (need_input_attachment_state(&pass->attachments[i])) {
+ anv_image_fill_surface_state(cmd_buffer->device,
+ iview->image,
+ VK_IMAGE_ASPECT_COLOR_BIT,
+ &iview->planes[0].isl,
+ ISL_SURF_USAGE_TEXTURE_BIT,
+ state->attachments[i].input_aux_usage,
+ &clear_color,
+ 0,
+ &state->attachments[i].input,
+ NULL);
+
+ add_surface_state_relocs(cmd_buffer, state->attachments[i].input);
+ }
+ }
+}
+