// att->store_op = pCreateInfo->pAttachments[i].storeOp;
// att->stencil_store_op = pCreateInfo->pAttachments[i].stencilStoreOp;
- if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
- if (anv_format_is_color(att->format)) {
+ if (anv_format_is_color(att->format)) {
+ if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
++pass->num_color_clear_attachments;
- } else if (att->format->depth_format) {
+ }
+ } else {
+ if (att->format->depth_format &&
+ att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
pass->has_depth_clear_attachment = true;
}
- } else if (att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
- assert(att->format->has_stencil);
- pass->has_stencil_clear_attachment = true;
+
+ if (att->format->has_stencil &&
+ att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
+ assert(att->format->has_stencil);
+ pass->has_stencil_clear_attachment = true;
+ }
}
}
for (uint32_t i = 0; i < pass->attachment_count; i++) {
const struct anv_render_pass_attachment *att = &pass->attachments[i];
- if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
- if (anv_format_is_color(att->format)) {
+ if (anv_format_is_color(att->format)) {
+ if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
instance_data[layer] = (struct clear_instance_data) {
.vue_header = {
.RTAIndex = i,
};
color_attachments[layer] = i;
layer++;
- } else if (att->format->depth_format) {
+ }
+ } else {
+ if (att->format->depth_format &&
+ att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
assert(ds_attachment == VK_ATTACHMENT_UNUSED);
ds_attachment = i;
ds_clear_value = clear_values[ds_attachment].depthStencil;
}
- } else if (att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
- assert(att->format->has_stencil);
- anv_finishme("stencil clear");
+
+ if (att->format->has_stencil &&
+ att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) {
+ anv_finishme("stencil clear");
+ }
}
}